diff options
| author | Benson Muite <benson_muite@emailplus.org> | 2023-07-24 11:45:26 +0300 |
|---|---|---|
| committer | Benson Muite <benson_muite@emailplus.org> | 2023-07-24 14:33:34 +0300 |
| commit | a9f340fba196f9420e95ae9711a7f1a6f2f220dd (patch) | |
| tree | 1bfd66d1a8d6e8dabf60fd179fc718a4c0eb615b /lib/extensions/base.py | |
| parent | 440e8e80748645e1073a5fe50c64fe61a2248eff (diff) | |
Drop stringcase dependency
Diffstat (limited to 'lib/extensions/base.py')
| -rw-r--r-- | lib/extensions/base.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/lib/extensions/base.py b/lib/extensions/base.py index 3c16a11c..2218a6b5 100644 --- a/lib/extensions/base.py +++ b/lib/extensions/base.py @@ -7,7 +7,6 @@ import os import inkex from lxml.etree import Comment -from stringcase import snakecase from ..commands import is_command, layer_commands from ..elements import EmbroideryElement, nodes_to_elements @@ -32,7 +31,21 @@ class InkstitchExtension(inkex.EffectExtension): @classmethod def name(cls): - return snakecase(cls.__name__) + # Create a table to do replacements of other separating characters + chars2underscore = ("-", ".", " ", "\t", "\n", "\r", "\v", "\f") + table = dict((ord(c), "_") for c in chars2underscore) + # Add underscores before any uppercase letters except the first + snakecasename = cls.__name__ + for i in range(len(snakecasename)-1): + if snakecasename[i+1].isupper() and snakecasename[i].islower(): + table.update({ord(snakecasename[i+1]): "_"+snakecasename[i+1]}) + # Replace characters + snakecasename = snakecasename.translate(table) + # Ensure leading character is not an underscore + if snakecasename[0] == "_": + snakecasename = snakecasename[1:] + # Transform all characters to lowercase + return snakecasename.lower() def hide_all_layers(self): for g in self.document.getroot().findall(SVG_GROUP_TAG): |
