summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBenson Muite <benson_muite@emailplus.org>2023-07-24 11:45:26 +0300
committerBenson Muite <benson_muite@emailplus.org>2023-07-24 14:33:34 +0300
commita9f340fba196f9420e95ae9711a7f1a6f2f220dd (patch)
tree1bfd66d1a8d6e8dabf60fd179fc718a4c0eb615b /lib
parent440e8e80748645e1073a5fe50c64fe61a2248eff (diff)
Drop stringcase dependency
Diffstat (limited to 'lib')
-rw-r--r--lib/extensions/base.py17
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):