You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When the imported file calling config is for example on the D: drive, the recurrent function that searches its parent folders will eventually reach D:/. Unfortunately, the check that's meant to stop the recursion considers the drive of the working directory (say, C:/) to be the top folder in some circumstances. The offending lines are these:
This results in a silent crash of whatever code is running, but only when the working directory is on a drive different than the drive where the file using config is, I think? It also only happens in IPython, which may be handling working directories differently. This made it quite amusing to diagnose (I was using a different library that imports decouple), and I presume it may make it difficult to reproduce easily.
I suggest replacing the check with:
os.path.normcase(parent) !=os.path.normcase(path)
which will catch if the parent is the same as the current path more explicitly.
The text was updated successfully, but these errors were encountered:
Ah, the different behaviour under Python and IPython is because on my machine Python correctly raises the RecursionError, which gets caught by the try ... except block in _load, but in IPython the recursion Exception is not raised correctly and the process crashes. This seems to be an issue in IPython: ipython/ipython#12197
So it's both a problem of the recursion happening and IPython handling it badly.
jdranczewski
added a commit
to jdranczewski/python-decouple
that referenced
this issue
Nov 25, 2024
When the imported file calling
config
is for example on the D: drive, the recurrent function that searches its parent folders will eventually reach D:/. Unfortunately, the check that's meant to stop the recursion considers the drive of the working directory (say, C:/) to be the top folder in some circumstances. The offending lines are these:python-decouple/decouple.py
Lines 220 to 223 in 0573e6f
This results in a silent crash of whatever code is running, but only when the working directory is on a drive different than the drive where the file using
config
is, I think? It also only happens in IPython, which may be handling working directories differently. This made it quite amusing to diagnose (I was using a different library that importsdecouple
), and I presume it may make it difficult to reproduce easily.I suggest replacing the check with:
which will catch if the parent is the same as the current path more explicitly.
The text was updated successfully, but these errors were encountered: