uranusjr commented on a change in pull request #19257:
URL: https://github.com/apache/airflow/pull/19257#discussion_r738459952
##########
File path: airflow/models/dag.py
##########
@@ -368,8 +369,11 @@ def __init__(
DeprecationWarning,
stacklevel=2,
)
-
- validate_key(dag_id)
+
+ if not is_ascii(dag_id):
+ # slugify dag id
+ dag_id = slugify(dag_id, lowercase=False)
Review comment:
One problem with that is pip doesn't automatically uninstall packages
with module name conflicts, so if someone does
```
pip install airflow==2.2.0
# Later...
pip install --upgrade airflow
```
They'd end up with a broken `python-slugify` package in `site-packages`.
Likely not a big deal, but I'm not sure it's worth it.
Actually, peeking into how python-slugify's implementation, I'm thinking
maybe just straight-up calling `unidecode` would yield a good enough (better?)
result:
```pycon
>>> import re
>>> import text_unidecode
>>> text = 'dag_你好_cześć'
>>> re.sub(r'[^-\w]+', '-', text_unidecode.unidecode(text))
'dag_Ni-Hao-_czesc'
```
Which is basically what sligify does internally anyway.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]