diff options
| author | Benson Muite <benson_muite@emailplus.org> | 2023-07-27 12:28:55 +0300 |
|---|---|---|
| committer | Benson Muite <benson_muite@emailplus.org> | 2023-07-27 12:50:04 +0300 |
| commit | 298ea484bdd801a5ad1a46326873d8b1b13aa52d (patch) | |
| tree | 58e142324aadf9a4261e9ff067e0908ffd093d11 /lib/extensions/base.py | |
| parent | a9f340fba196f9420e95ae9711a7f1a6f2f220dd (diff) | |
Use simpler and clearer code
Retain UTF8 compatibility but convert only CamelCase
to snake_case assuming not space characters
Diffstat (limited to 'lib/extensions/base.py')
| -rw-r--r-- | lib/extensions/base.py | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/lib/extensions/base.py b/lib/extensions/base.py index 2218a6b5..bd1049de 100644 --- a/lib/extensions/base.py +++ b/lib/extensions/base.py @@ -31,21 +31,17 @@ class InkstitchExtension(inkex.EffectExtension): @classmethod def name(cls): - # 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 + # Convert CamelCase to snake_case 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() + underscores = 0 + # First character is lower case + snakecasename = snakecasename[0].lower() + snakecasename[1:] + for i in range(len(snakecasename) - 1): + if snakecasename[i + 1 + underscores].isupper() and snakecasename[i + underscores].islower(): + snakecasename = snakecasename.replace(snakecasename[i + 1 + underscores], + "_" + snakecasename[i + 1 + underscores].lower()) + underscores += 1 + return snakecasename def hide_all_layers(self): for g in self.document.getroot().findall(SVG_GROUP_TAG): |
