Inconsistency with os.environ and str/unicode in Python 2
bbc2 opened this issue · 3 comments
In Python 2, os.environ is a map with str keys and str values, not unicode. Unfortunately, values loaded with Python-dotenv are unicode.
Example with test.py:
import os
import dotenv
dotenv.load_dotenv()
print(type(os.environ["foo"]))and .env:
foo=barResults:
> python test.py
<type 'unicode'>
> env foo=bar python test.py
<type 'str'>
I think that it's probably not worth fixing given Python 2's upcoming end of life, but I'm pointing this out here because this might justify turning off some Mypy type warnings for Python 2.
Apparently, this was fixed on Windows thanks to #101, but that fix probably accidentally went away with later MRs.
this might justify turning off some Mypy type warnings for Python 2
Actually, that's a terrible idea! I just found a bug with Unicode and Python 2 hidden behind a # type: ignore. To be more precise, this bug is fairly recent (version 0.10.0) whereas the str/unicode inconsistency pointed out in this issue has existed for a long time (at least since version 0.9.0). I'll open a separate issue.
Released the fix in v0.10.2, thanks! 🎉