mirror of
				https://github.com/aykhans/AzSuicideDataVisualization.git
				synced 2025-10-30 09:49:57 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			519 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			519 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Metadata-Version: 2.1
 | |
| Name: tzlocal
 | |
| Version: 4.2
 | |
| Summary: tzinfo object for the local timezone
 | |
| Home-page: UNKNOWN
 | |
| Author: Lennart Regebro
 | |
| Author-email: regebro@gmail.com
 | |
| License: MIT
 | |
| Project-URL: Source code, https://github.com/regebro/tzlocal
 | |
| Project-URL: Issue tracker, https://github.com/regebro/tzlocal/issues
 | |
| Keywords: timezone
 | |
| Platform: UNKNOWN
 | |
| Classifier: Development Status :: 5 - Production/Stable
 | |
| Classifier: License :: OSI Approved :: MIT License
 | |
| Classifier: Operating System :: Microsoft :: Windows
 | |
| Classifier: Operating System :: Unix
 | |
| Classifier: Operating System :: MacOS :: MacOS X
 | |
| Classifier: Programming Language :: Python :: 3
 | |
| Classifier: Programming Language :: Python :: 3 :: Only
 | |
| Classifier: Programming Language :: Python :: 3.6
 | |
| Classifier: Programming Language :: Python :: 3.7
 | |
| Classifier: Programming Language :: Python :: 3.8
 | |
| Classifier: Programming Language :: Python :: 3.9
 | |
| Requires-Python: >=3.6
 | |
| Requires-Dist: pytz-deprecation-shim
 | |
| Requires-Dist: tzdata ; platform_system == "Windows"
 | |
| Requires-Dist: backports.zoneinfo ; python_version < "3.9"
 | |
| Provides-Extra: devenv
 | |
| Requires-Dist: black ; extra == 'devenv'
 | |
| Requires-Dist: pyroma ; extra == 'devenv'
 | |
| Requires-Dist: pytest-cov ; extra == 'devenv'
 | |
| Requires-Dist: zest.releaser ; extra == 'devenv'
 | |
| Provides-Extra: test
 | |
| Requires-Dist: pytest-mock (>=3.3) ; extra == 'test'
 | |
| Requires-Dist: pytest (>=4.3) ; extra == 'test'
 | |
| 
 | |
| tzlocal
 | |
| =======
 | |
| 
 | |
| API CHANGE!
 | |
| -----------
 | |
| 
 | |
| With version 3.0 of tzlocal, tzlocal no longer returned `pytz` objects, but
 | |
| `zoneinfo` objects, which has a different API. Since 4.0, it now restored
 | |
| partial compatibility for `pytz` users through Paul Ganssle's
 | |
| `pytz_deprecation_shim`.
 | |
| 
 | |
| tzlocal 4.0 also adds an official function `get_localzone_name()` to get only
 | |
| the timezone name, instead of a timezone object. On unix, it can raise an
 | |
| error if you don't have a timezone name configured, where `get_localzone()`
 | |
| will succeed, so only use that if you need the timezone name.
 | |
| 
 | |
| 4.0 also adds way more information on what is going wrong in your
 | |
| configuration when the configuration files are unclear or contradictory.
 | |
| 
 | |
| 
 | |
| Info
 | |
| ----
 | |
| 
 | |
| This Python module returns a ``tzinfo`` object (with a pytz_deprecation_shim,
 | |
| for pytz compatibility) with the local timezone information, under Unix and
 | |
| Windows.
 | |
| 
 | |
| It requires Python 3.6 or later, and will use the ``backports.tzinfo``
 | |
| package, for Python 3.6 to 3.8.
 | |
| 
 | |
| This module attempts to fix a glaring hole in the ``pytz`` and ``zoneinfo``
 | |
| modules, that there is no way to get the local timezone information, unless
 | |
| you know the zoneinfo name, and under several Linux distros that's hard or
 | |
| impossible to figure out.
 | |
| 
 | |
| With ``tzlocal`` you only need to call ``get_localzone()`` and you will get a
 | |
| ``tzinfo`` object with the local time zone info. On some Unices you will
 | |
| still not get to know what the timezone name is, but you don't need that when
 | |
| you have the tzinfo file. However, if the timezone name is readily available
 | |
| it will be used.
 | |
| 
 | |
| 
 | |
| Supported systems
 | |
| -----------------
 | |
| 
 | |
| These are the systems that are in theory supported:
 | |
| 
 | |
|  * Windows 2000 and later
 | |
| 
 | |
|  * Any unix-like system with a ``/etc/localtime`` or ``/usr/local/etc/localtime``
 | |
| 
 | |
| If you have one of the above systems and it does not work, it's a bug.
 | |
| Please report it.
 | |
| 
 | |
| Please note that if you are getting a time zone called ``local``, this is not
 | |
| a bug, it's actually the main feature of ``tzlocal``, that even if your
 | |
| system does NOT have a configuration file with the zoneinfo name of your time
 | |
| zone, it will still work.
 | |
| 
 | |
| You can also use ``tzlocal`` to get the name of your local timezone, but only
 | |
| if your system is configured to make that possible. ``tzlocal`` looks for the
 | |
| timezone name in ``/etc/timezone``, ``/var/db/zoneinfo``,
 | |
| ``/etc/sysconfig/clock`` and ``/etc/conf.d/clock``. If your
 | |
| ``/etc/localtime`` is a symlink it can also extract the name from that
 | |
| symlink.
 | |
| 
 | |
| If you need the name of your local time zone, then please make sure your
 | |
| system is properly configured to allow that.
 | |
| 
 | |
| If your unix system doesn't have a timezone configured, tzlocal will default
 | |
| to UTC.
 | |
| 
 | |
| 
 | |
| Usage
 | |
| -----
 | |
| 
 | |
| Load the local timezone:
 | |
| 
 | |
|     >>> from tzlocal import get_localzone
 | |
|     >>> tz = get_localzone()
 | |
|     >>> tz
 | |
|     <DstTzInfo 'Europe/Warsaw' WMT+1:24:00 STD>
 | |
| 
 | |
| Create a local datetime:
 | |
| 
 | |
|     >>> from datetime import datetime
 | |
|     >>> dt = datetime(2015, 4, 10, 7, 22, tzinfo=tz)
 | |
|     >>> dt
 | |
|     datetime.datetime(2015, 4, 10, 7, 22, tzinfo=<DstTzInfo 'Europe/Warsaw' CEST+2:00:00 DST>)
 | |
| 
 | |
| Lookup another timezone with ``zoneinfo`` (``backports.zoneinfo`` on Python 3.8 or earlier):
 | |
| 
 | |
|     >>> from zoneinfo import ZoneInfo
 | |
|     >>> eastern = ZoneInfo('US/Eastern')
 | |
| 
 | |
| Convert the datetime:
 | |
| 
 | |
|     >>> dt.astimezone(eastern)
 | |
|     datetime.datetime(2015, 4, 10, 1, 22, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)
 | |
| 
 | |
| If you just want the name of the local timezone, use `get_localzone_name()`:
 | |
| 
 | |
|     >>> from tzlocal import get_localzone_name
 | |
|     >>> get_localzone_name()
 | |
|     "Europe/Warsaw"
 | |
| 
 | |
| Please note that under Unix, `get_localzone_name()` may fail if there is no zone
 | |
| configured, where `get_localzone()` would generally succeed.
 | |
| 
 | |
| 
 | |
| Development
 | |
| -----------
 | |
| 
 | |
| To create a development environment, create a virtualenv and make a development installation::
 | |
| 
 | |
|     $ virtualenv ve
 | |
|     $ source ve/bin/activation (Win32: .\ve\Scripts\activate)
 | |
|     (ve) $ pip install -e .[test,devenv]
 | |
| 
 | |
| To run tests, just use pytest, coverage is nice as well::
 | |
| 
 | |
|     (ve) $ pytest --cov=tzlocal
 | |
| 
 | |
| 
 | |
| 
 | |
| Maintainer
 | |
| ----------
 | |
| 
 | |
| * Lennart Regebro, regebro@gmail.com
 | |
| 
 | |
| Contributors
 | |
| ------------
 | |
| 
 | |
| * Marc Van Olmen
 | |
| * Benjamen Meyer
 | |
| * Manuel Ebert
 | |
| * Xiaokun Zhu
 | |
| * Cameris
 | |
| * Edward Betts
 | |
| * McK KIM
 | |
| * Cris Ewing
 | |
| * Ayala Shachar
 | |
| * Lev Maximov
 | |
| * Jakub Wilk
 | |
| * John Quarles
 | |
| * Preston Landers
 | |
| * Victor Torres
 | |
| * Jean Jordaan
 | |
| * Zackary Welch
 | |
| * Mickaël Schoentgen
 | |
| * Gabriel Corona
 | |
| * Alex Grönholm
 | |
| * Julin S
 | |
| * Miroslav Šedivý
 | |
| * revansSZ
 | |
| * Sam Treweek
 | |
| 
 | |
| (Sorry if I forgot someone)
 | |
| 
 | |
| License
 | |
| -------
 | |
| 
 | |
| * MIT https://opensource.org/licenses/MIT
 | |
| 
 | |
| Changes
 | |
| =======
 | |
| 
 | |
| 4.2 (2022-04-02)
 | |
| ----------------
 | |
| 
 | |
| - If TZ environment variable is set to /etc/localhost, and that's a link to
 | |
|   a zoneinfo file, then tzlocal will now find the timezone name, and not
 | |
|   just return a localtime TZ object.
 | |
| 
 | |
| 
 | |
| 4.1 (2021-10-29)
 | |
| ----------------
 | |
| 
 | |
| - No changes from 4.1b1.
 | |
| 
 | |
| 
 | |
| 4.1b1 (2021-10-28)
 | |
| ------------------
 | |
| 
 | |
| - It turns out a lot of Linux distributions make the links between zoneinfo
 | |
|   aliases backwards, so instead of linking GB to Europe/London it actually
 | |
|   links the other way. When /etc/localtime then links to Europe/London, and you
 | |
|   also have a config file saying Europe/London, the code that checks if
 | |
|   /etc/localtime is a symlink ends up at GB instead of Europe/London and
 | |
|   we get an error, as it thinks GB and Europe/London are different zones.
 | |
| 
 | |
|   So now we check the symlink of all timezones in the uniqueness test. We still
 | |
|   return the name in the config file, though, so you would only get GB or Zulu
 | |
|   returned as the time zone instead of Europe/London or UTC if your only
 | |
|   configuration is the /etc/localtime symlink, as that's checked last, and
 | |
|   tzlocal will return the first configuration found.
 | |
| 
 | |
| - The above change also means that GMT and UTC are no longer seen as synonyms,
 | |
|   as zoneinfo does not see them as synonyms. This might be controversial,
 | |
|   but you just have to live with it. Pick one and stay with it. ;-)
 | |
| 
 | |
| 
 | |
| 4.0.2 (2021-10-26)
 | |
| ------------------
 | |
| 
 | |
| - Improved the error message when you had a conflict including a
 | |
|   /etc/localtime symlink.
 | |
| 
 | |
| 
 | |
| 4.0.1 (2021-10-19)
 | |
| ------------------
 | |
| 
 | |
| - A long time bug in Ubuntu docker images seem to not get fixed,
 | |
|   so I added a workaround.
 | |
| 
 | |
| 
 | |
| 4.0.1b1 (2021-10-18)
 | |
| --------------------
 | |
| 
 | |
| - Handle UCT and Zulu as synonyms for UTC, while treating GMT and
 | |
|   UTC as different.
 | |
| 
 | |
| 
 | |
| 4.0 (2021-10-18)
 | |
| ----------------
 | |
| 
 | |
| - No changes.
 | |
| 
 | |
| 
 | |
| 4.0b5 (2021-10-18)
 | |
| ------------------
 | |
| 
 | |
| - Fixed a bug in the Windows DST support.
 | |
| 
 | |
| 
 | |
| 4.0b4 (2021-10-18)
 | |
| ------------------
 | |
| 
 | |
| - Added support for turning off DST in Windows. That only works in
 | |
|   whole hour timezones, and honestly, if you need to turn off DST,
 | |
|   you should just use UTC as a timezone.
 | |
| 
 | |
| 
 | |
| 4.0b3 (2021-10-08)
 | |
| ------------------
 | |
| 
 | |
| - Returning pytz_deprecation_shim zones to lower the surprise for pytz users.
 | |
| 
 | |
| - The Windows OS environment variable 'TZ' will allow an override for
 | |
|   setting the timezone. The override timezone will be asserted for
 | |
|   timezone validity bit not compared against the systems timezone offset.
 | |
|   This allows for overriding the timezone when running tests.
 | |
| 
 | |
| - Dropped support for Windows 2000, XP and Vista, supports Windows 7, 8 and 10.
 | |
| 
 | |
| 
 | |
| 4.0b2 (2021-09-26)
 | |
| ------------------
 | |
| 
 | |
| - Big refactor; Implemented get_localzone_name() functions.
 | |
| 
 | |
| - Adding a Windows OS environment variable 'TZ' will allow an override for
 | |
|   setting the timezone (also see 4.0b3).
 | |
| 
 | |
| 
 | |
| 4.0b1 (2021-08-21)
 | |
| ------------------
 | |
| 
 | |
| - Now finds and compares all the configs (under Unix-like systems) and
 | |
|   tells you what files it found and how they conflict. This should make
 | |
|   it a lot easier to figure out what goes wrong.
 | |
| 
 | |
| 
 | |
| 3.0 (2021-08-13)
 | |
| ----------------
 | |
| 
 | |
| - Modernized the packaging, moving to setup.cfg etc.
 | |
| 
 | |
| - Handles if the text config files incorrectly is a TZ file. (revanSZ)
 | |
| 
 | |
| 
 | |
| 3.0b1 (2020-09-21)
 | |
| ------------------
 | |
| 
 | |
| - Dropped Python 2 support
 | |
| - Switched timezone provider from pytz to zoneinfo (PEP 615)
 | |
| 
 | |
| 
 | |
| 2.1 (2020-05-08)
 | |
| ----------------
 | |
| 
 | |
| - No changes.
 | |
| 
 | |
| 
 | |
| 2.1b1 (2020-02-08)
 | |
| ------------------
 | |
| 
 | |
| - The is_dst flag is wrong for Europe/Dublin on some Unix releases.
 | |
|   I changed to another way of determining if DST is in effect or not.
 | |
| 
 | |
| - Added support for Python 3.7 and 3.8. Dropped 3.5 although it still works.
 | |
| 
 | |
| 
 | |
| 2.0.0 (2019-07-23)
 | |
| ------------------
 | |
| 
 | |
| - No differences since 2.0.0b3
 | |
| 
 | |
| Major differences since 1.5.1
 | |
| .............................
 | |
| 
 | |
| - When no time zone configuration can be find, tzlocal now return UTC.
 | |
|   This is a major difference from 1.x, where an exception would be raised.
 | |
|   This change is because Docker images often have no configuration at all,
 | |
|   and the unix utilities will then default to UTC, so we follow that.
 | |
| 
 | |
| - If tzlocal on Unix finds a timezone name in a /etc config file, then
 | |
|   tzlocal now verifies that the timezone it fouds has the same offset as
 | |
|   the local computer is configured with. If it doesn't, something is
 | |
|   configured incorrectly. (Victor Torres, regebro)
 | |
| 
 | |
| - Get timezone via Termux `getprop` wrapper on Android. It's not officially
 | |
|   supported because we can't test it, but at least we make an effort.
 | |
|   (Jean Jordaan)
 | |
| 
 | |
| Minor differences and bug fixes
 | |
| ...............................
 | |
| 
 | |
| - Skip comment lines when parsing /etc/timezone. (Edward Betts)
 | |
| 
 | |
| - Don't load timezone from current directory. (Gabriel Corona)
 | |
| 
 | |
| - Now verifies that the config files actually contain something before
 | |
|   reading them. (Zackary Welch, regebro)
 | |
| 
 | |
| - Got rid of a BytesWarning (Mickaël Schoentgen)
 | |
| 
 | |
| - Now handles if config file paths exists, but are directories.
 | |
| 
 | |
| - Moved tests out from distributions
 | |
| 
 | |
| - Support wheels
 | |
| 
 | |
| 
 | |
| 1.5.1 (2017-12-01)
 | |
| ------------------
 | |
| 
 | |
| - 1.5 had a bug that slipped through testing, fixed that,
 | |
|   increased test coverage.
 | |
| 
 | |
| 
 | |
| 1.5 (2017-11-30)
 | |
| ----------------
 | |
| 
 | |
| - No longer treats macOS as special, but as a unix.
 | |
| 
 | |
| - get_windows_info.py is renamed to update_windows_mappings.py
 | |
| 
 | |
| - Windows mappings now also contain mappings from deprecated zoneinfo names.
 | |
|   (Preston-Landers, regebro)
 | |
| 
 | |
| 
 | |
| 1.4 (2017-04-18)
 | |
| ----------------
 | |
| 
 | |
| - I use MIT on my other projects, so relicensing.
 | |
| 
 | |
| 
 | |
| 1.4b1 (2017-04-14)
 | |
| ------------------
 | |
| 
 | |
| - Dropping support for Python versions nobody uses (2.5, 3.1, 3.2), adding 3.6
 | |
|   Python 3.1 and 3.2 still works, 2.5 has been broken for some time.
 | |
| 
 | |
| - Ayalash's OS X fix didn't work on Python 2.7, fixed that.
 | |
| 
 | |
| 
 | |
| 1.3.2 (2017-04-12)
 | |
| ------------------
 | |
| 
 | |
| - Ensure closing of subprocess on OS X (ayalash)
 | |
| 
 | |
| - Removed unused imports (jwilk)
 | |
| 
 | |
| - Closes stdout and stderr to get rid of ResourceWarnings (johnwquarles)
 | |
| 
 | |
| - Updated Windows timezones (axil)
 | |
| 
 | |
| 
 | |
| 1.3 (2016-10-15)
 | |
| ----------------
 | |
| 
 | |
| - #34: Added support for /var/db/zoneinfo
 | |
| 
 | |
| 
 | |
| 1.2.2 (2016-03-02)
 | |
| ------------------
 | |
| 
 | |
| - #30: Fixed a bug on OS X.
 | |
| 
 | |
| 
 | |
| 1.2.1 (2016-02-28)
 | |
| ------------------
 | |
| 
 | |
| - Tests failed if TZ was set in the environment. (EdwardBetts)
 | |
| 
 | |
| - Replaces os.popen() with subprocess.Popen() for OS X to
 | |
|   handle when systemsetup doesn't exist. (mckabi, cewing)
 | |
| 
 | |
| 
 | |
| 1.2 (2015-06-14)
 | |
| ----------------
 | |
| 
 | |
| - Systemd stores no time zone name, forcing us to look at the name of the file
 | |
|   that localtime symlinks to. (cameris)
 | |
| 
 | |
| 
 | |
| 1.1.2 (2014-10-18)
 | |
| ------------------
 | |
| 
 | |
| - Timezones that has 3 items did not work on Mac OS X.
 | |
|   (Marc Van Olmen)
 | |
| 
 | |
| - Now doesn't fail if the TZ environment variable isn't an Olsen time zone.
 | |
| 
 | |
| - Some timezones on Windows can apparently be empty (perhaps the are deleted).
 | |
|   Now these are ignored.
 | |
|   (Xiaokun Zhu)
 | |
| 
 | |
| 
 | |
| 1.1.1 (2014-01-29)
 | |
| ------------------
 | |
| 
 | |
| - I forgot to add Etc/UTC as an alias for Etc/GMT.
 | |
| 
 | |
| 
 | |
| 1.1 (2014-01-28)
 | |
| ----------------
 | |
| 
 | |
| - Adding better support for OS X.
 | |
| 
 | |
| - Added support to map from tzdata/Olsen names to Windows names.
 | |
|   (Thanks to Benjamen Meyer).
 | |
| 
 | |
| 
 | |
| 1.0 (2013-05-29)
 | |
| ----------------
 | |
| 
 | |
| - Fixed some more cases where spaces needs replacing with underscores.
 | |
| 
 | |
| - Better handling of misconfigured /etc/timezone.
 | |
| 
 | |
| - Better error message on Windows if we can't find a timezone at all.
 | |
| 
 | |
| 
 | |
| 0.3 (2012-09-13)
 | |
| ----------------
 | |
| 
 | |
| - Windows 7 support.
 | |
| 
 | |
| - Python 2.5 supported; because it only needed a __future__ import.
 | |
| 
 | |
| - Python 3.3 tested, it worked.
 | |
| 
 | |
| - Got rid of relative imports, because I don't actually like them,
 | |
|   so I don't know why I used them in the first place.
 | |
| 
 | |
| - For each Windows zone, use the default zoneinfo zone, not the last one.
 | |
| 
 | |
| 
 | |
| 0.2 (2012-09-12)
 | |
| ----------------
 | |
| 
 | |
| - Python 3 support.
 | |
| 
 | |
| 
 | |
| 0.1 (2012-09-11)
 | |
| ----------------
 | |
| 
 | |
| - Initial release.
 | |
| 
 | |
| 
 | 
