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
Importing extractcode.libarchive2 has unexpected side effects on the caller, especially when used as a library inside a larger project.
In my specific case, the base application is running with the Europe/Berlin timezone, as this is my local time. After having executed some extraction code involving the aforementioned module, my timezone is set to UTC. This only became obvious because my logging showed that processing the archive finished nearly two hours before starting the process.
# NOTE: this is important to avoid timezone differences
os.environ['TZ'] ='UTC'
set_env_with_tz()
# NOTE: this is important to avoid locale-specific errors on various OS
locale.setlocale(locale.LC_ALL, '')
In my opinion, libraries should not change such stuff globally without any warning.
Edit: It seems like these aspects are not covered by unit tests as well, which makes evaluating alternatives or removing these lines harder.
The text was updated successfully, but these errors were encountered:
stefan6419846
changed the title
Side effects when importing extractcode.libarchive2 as library
Side effects on locale and timezone when importing extractcode.libarchive2 as library
Oct 4, 2024
Thanks. This is unfortunate as setting the UTC timezone was done to get a better time from archives across test runners at least. We should avoid this but I still may want that at least for tests? Outside of tests, this may be less critical
Importing
extractcode.libarchive2
has unexpected side effects on the caller, especially when used as a library inside a larger project.In my specific case, the base application is running with the
Europe/Berlin
timezone, as this is my local time. After having executed some extraction code involving the aforementioned module, my timezone is set to UTC. This only became obvious because my logging showed that processing the archive finished nearly two hours before starting the process.The reason is
extractcode/src/extractcode/libarchive2.py
Lines 135 to 143 in db9dd08
Edit: It seems like these aspects are not covered by unit tests as well, which makes evaluating alternatives or removing these lines harder.
The text was updated successfully, but these errors were encountered: