Use unidecode to handle unicode characters in constant names (#1080)

This commit is contained in:
Henry Baldursson 2020-02-08 17:21:25 +00:00 committed by GitHub
parent 55a03ba716
commit 9a19447213
3 changed files with 7 additions and 1 deletions

View File

@ -1,4 +1,5 @@
import re
from unidecode import unidecode
# Adapted from this response in Stackoverflow
@ -18,4 +19,4 @@ def to_snake_case(name):
def to_const(string):
return re.sub(r"[\W|^]+", "_", string).upper() # noqa
return re.sub(r"[\W|^]+", "_", unidecode(string)).upper()

View File

@ -21,3 +21,7 @@ def test_camel_case():
def test_to_const():
assert to_const('snakes $1. on a "#plane') == "SNAKES_1_ON_A_PLANE"
def test_to_const_unicode():
assert to_const("Skoða þetta unicode stöff") == "SKODA_THETTA_UNICODE_STOFF"

View File

@ -86,6 +86,7 @@ setup(
"graphql-core>=3.0.0,<4",
"graphql-relay>=3.0.0,<4",
"aniso8601>=6,<9",
"unidecode>=1.1.1,<2",
],
tests_require=tests_require,
extras_require={"test": tests_require, "dev": dev_requires},