From a9f340fba196f9420e95ae9711a7f1a6f2f220dd Mon Sep 17 00:00:00 2001 From: Benson Muite Date: Mon, 24 Jul 2023 11:45:26 +0300 Subject: Drop stringcase dependency --- lib/extensions/base.py | 17 +++++++++++++++-- requirements.txt | 1 - 2 files changed, 15 insertions(+), 3 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): diff --git a/requirements.txt b/requirements.txt index 7697d508..14d72270 100644 --- a/requirements.txt +++ b/requirements.txt @@ -18,7 +18,6 @@ requests # we need already submitted fixes - so let's grab them from the github repository colormath @ git+https://github.com/gtaylor/python-colormath.git@4a076831fd5136f685aa7143db81eba27b2cd19a -stringcase flask>=2.2.0 fonttools trimesh>=3.15.2 -- cgit v1.2.3