Skip to content

Pendulum reports FileNotFound error when local timezone set with env var on Ubuntu #467

Open
@egbutter

Description

@egbutter
  • I am on the latest Pendulum version.

  • I have searched the issues of this repo and believe that this is not a duplicate.

  • Ubuntu 19.10 (eoan)

  • Pendulum 2.1.0

  • Timezone set via environment variable, TZ=UTC

Issue

  • Ran a test that relies on pendulum
  • Test calls pendulum.now().timestamp()
  • Expected: current seconds since epoch for local computer timezone
  • Actual: traceback below - suggests that pendulum is trying to open a file with the name "UTC" instead of using the environment variable value "UTC" to set the timezone in pendulum
Traceback (most recent call last):
  File "/home/egbutter/.pyenv/versions/xxx/bin/pytest", line 10, in <module>
    sys.exit(main())
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/_pytest/config/__init__.py", line 125, in main
    config=config
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/pluggy/manager.py", line 87, in <lambda>
    firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/pluggy/
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/_pytest/main.py", line 240, in pytest_cmdline_main
    return wrap_session(config, _main)
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/_pytest/main.py", line 213, in wrap_session
    config.notify_exception(excinfo, config.option)
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/_pytest/config/__init__.py", line 864, in notify_exception
    funcargs=True, showlocals=getattr(option, "showlocals", False), style=style
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/_pytest/_code/code.py", line 619, in getrepr
    self.type, self.value, self.traceback[0]._rawentry
  File "/home/egbutter/.pyenv/versions/3.7.5/lib/python3.7/traceback.py", line 121, in format_exception
    type(value), value, tb, limit=limit).format(chain=chain))
  File "/home/egbutter/.pyenv/versions/3.7.5/lib/python3.7/traceback.py", line 508, in __init__
    capture_locals=capture_locals)
  File "/home/egbutter/.pyenv/versions/3.7.5/lib/python3.7/traceback.py", line 363, in extract
    f.line
  File "/home/egbutter/.pyenv/versions/3.7.5/lib/python3.7/traceback.py", line 285, in line
    self._line = linecache.getline(self.filename, self.lineno).strip()
  File "/home/egbutter/.pyenv/versions/3.7.5/lib/python3.7/linecache.py", line 16, in getline
    lines = getlines(filename, module_globals)
  File "/home/egbutter/.pyenv/versions/3.7.5/lib/python3.7/linecache.py", line 47, in getlines
    return updatecache(filename, module_globals)
  File "/home/egbutter/.pyenv/versions/3.7.5/lib/python3.7/linecache.py", line 142, in updatecache
    size, mtime = stat.st_size, stat.st_mtime
  File "/home/egbutter/sandbox/modern/yyy/tests/pdf_scraper_test.py", line 13, in st_mtime
    return pendulum.now().timestamp()
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/pendulum/__init__.py", line 211, in now
    dt = _datetime.datetime.now(local_timezone())
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/pendulum/tz/__init__.py", line 60, in local_timezone
    return get_local_timezone()
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/pendulum/tz/local_timezone.py", line 35, in get_local_timezone
    tz = _get_system_timezone()
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/pendulum/tz/local_timezone.py", line 63, in _get_system_timezone
    return _get_unix_timezone()
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/pendulum/tz/local_timezone.py", line 157, in _get_unix_timezone
    return _tz_from_env(tzenv)
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/pendulum/tz/local_timezone.py", line 253, in _tz_from_env
    return TimezoneFile(tzenv)
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/pendulum/tz/timezone.py", line 370, in __init__
    tz = read_file(path)
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/pendulum/tz/zoneinfo/__init__.py", line 16, in read_file
    return Reader(extend=extend).read(path)
  File "/home/egbutter/.pyenv/versions/3.7.5/envs/xxx/lib/python3.7/site-packages/pendulum/tz/zoneinfo/reader.py", line 65, in read
    with open(file_path, "rb") as fd:
FileNotFoundError: [Errno 2] No such file or directory: 'UTC'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions