{
"info": {
"author": "Michael Barr",
"author_email": "micbarr+developer@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 5 - Production/Stable",
"Environment :: Web Environment",
"Framework :: Django",
"Framework :: Django :: 1.11",
"Framework :: Django :: 2.0",
"Framework :: Django :: 2.1",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Topic :: Database",
"Topic :: Software Development :: Libraries"
],
"description": "Django Timezone Utils: Time Zone Utilities For Models\n=====================================================\n\n.. image:: https://img.shields.io/pypi/v/django-timezone-utils.svg?maxAge=2592000\n :target: https://pypi.python.org/pypi/django-timezone-utils/\n :alt: Latest Version\n\n.. image:: https://travis-ci.org/michaeljohnbarr/django-timezone-utils.png?branch=master\n :target: https://travis-ci.org/michaeljohnbarr/django-timezone-utils\n :alt: Test Status\n\n.. image:: https://coveralls.io/repos/michaeljohnbarr/django-timezone-utils/badge.svg\n :target: https://coveralls.io/r/michaeljohnbarr/django-timezone-utils\n :alt: Coverage Status\n\n.. image:: https://landscape.io/github/michaeljohnbarr/django-timezone-utils/master/landscape.png\n :target: https://landscape.io/github/michaeljohnbarr/django-timezone-utils\n :alt: Code Health\n\n.. image:: https://img.shields.io/pypi/pyversions/django-timezone-utils.svg?maxAge=2592000\n :target: https://pypi.python.org/pypi/django-timezone-utils/\n :alt: Supported Python versions\n\n.. image:: https://img.shields.io/pypi/l/django-timezone-utils.svg?maxAge=2592000\n :target: https://pypi.python.org/pypi/django-timezone-utils/\n :alt: License\n\n.. image:: https://img.shields.io/pypi/status/django-timezone-utils.svg?maxAge=2592000\n :target: https://pypi.python.org/pypi/django-timezone-utils/\n :alt: Development Status\n\n\n**django-timezone-utils** adds automatic time zone conversions and support\nutilities to Django.\n\nSuggestions, constructive criticism, and feedback are certainly\nwelcomed and appreciated.\n\nDocumentation\n-------------\n\nDocumentation for django-timezone-utils is available at `Read the Docs `_.\n\nInspiration\n-----------\n\nOn multiple occasions, I have had the need to store time zone information to the\none model, then base another model's datetime on that time zone. If you have\never had to deal with this, you will know how complicated this can be.\n\nI created these fields to ease the process of manipulating times based on\nanother field's or models timezone choice. Instead of having to remember to use\n``Model.clean``, we can now create the models with the validation built\ninto the model field.\n\n\nQuick Example\n-------------\n\n.. code-block:: python\n\n from datetime import datetime\n from timezone_utils.fields import LinkedTZDateTimeField, TimeZoneField\n from timezone_utils.choices import PRETTY_ALL_TIMEZONES_CHOICES\n\n class Location(models.Model):\n # ...\n timezone = TimeZoneField(choices=PRETTY_ALL_TIMEZONES_CHOICES)\n\n\n def get_location_timezone(obj):\n \"\"\"Returns the Location.timezone field from above\"\"\"\n\n return obj.location.timezone\n\n\n class LocationReport(models.Model):\n # ...\n location = models.ForeignKey('app_label.Location', related_name='reports')\n\n # Populates from the Location.timezone\n timestamp = LinkedTZDateTimeField(populate_from=get_location_timezone)\n\n\n class LocationPeriod(models.Model):\n # ...\n location = models.ForeignKey('app_label.Location', related_name='periods')\n\n # Sets the time to 12:00am in the location.timezone\n start = LinkedTZDateTimeField(\n populate_from=get_location_timezone,\n time_override=datetime.min.time()\n )\n\n # Sets the time to 11:59:59.99999pm in the location.timezone\n end = LinkedTZDateTimeField(\n populate_from=get_location_timezone,\n time_override=datetime.max.time()\n )\n\n\nContributors\n------------\n\n* `Michael Barr `_\n* `Kosei Kitahara `_\n* `Alex Kamedov `_\n* `Pi Delport `_\n\nChangelog\n---------\n- 0.13 Fixed error for Python 3 on PyPi.\n- 0.12 Add support for Django 2.1. Support Python 3.7. Drop support for Django 1.8.\n- 0.11 Removed reference to django.db.models.fields.subclassing.SubfieldBase, which means that only Django 1.8+ is now supported. Removed support for Python versions < 2.6. The Django 1.6 series was the last to support Python 2.6. Added testing support for Django 1.10. Changed development status from Beta to Production/Stable.\n- 0.10 Added testing support for Python 3.5 and Django 1.9.\n- 0.9 Corrected a bug to where ``time_override`` caused invalid date due to not converting to the correct timezone first. Refactored conversion code. Added testing support for Django 1.8. Removed Django from setup requirements - the onus of having a supported version of Django is on the developer.\n- 0.8 Corrected a bug to where ``time_override`` caused invalid date due to not converting to the correct timezone first. Added choices ``GROUPED_ALL_TIMEZONES_CHOICES`` and ``GROUPED_COMMON_TIMEZONES_CHOICES`` to the documentation.\n- 0.7 Corrected a bug where datetime.max.time() resulted in incorrect date/time. Changed tests to compare time_override models via string to prevent future regressions. Added choices ``GROUPED_ALL_TIMEZONES_CHOICES`` and ``GROUPED_COMMON_TIMEZONES_CHOICES``.\n- 0.6 Added RTD documentation. LinkedTZDateTimeField now returns the datetime object in the overidden timezone and time.\n- 0.5 Bug fix: time override on datetime.min.time() failed to set time properly\n- 0.4 Removed support for Python 2.5\n- 0.3 Code cleanup.\n- 0.2 Multiple bug fixes based on testing.\n- 0.1 Initial release.\n\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://github.com/michaeljohnbarr/django-timezone-utils/",
"keywords": "",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "django-timezone-utils",
"package_url": "https://pypi.org/project/django-timezone-utils/",
"platform": "any",
"project_url": "https://pypi.org/project/django-timezone-utils/",
"project_urls": {
"Homepage": "http://github.com/michaeljohnbarr/django-timezone-utils/"
},
"release_url": "https://pypi.org/project/django-timezone-utils/0.13/",
"requires_dist": [
"pytz",
"django (>=1.11)"
],
"requires_python": "",
"summary": "Time Zone Utilities for Django Models",
"version": "0.13"
},
"last_serial": 4326866,
"releases": {
"0.10": [
{
"comment_text": "",
"digests": {
"md5": "c2c9efd5ed3f53516fc861a9b7beb31f",
"sha256": "25bb3f09fc57f05030533cbfebc0d266be444236469fc0982d61d8fa22f568b8"
},
"downloads": -1,
"filename": "django-timezone-utils-0.10.tar.gz",
"has_sig": false,
"md5_digest": "c2c9efd5ed3f53516fc861a9b7beb31f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7801,
"upload_time": "2016-05-16T13:05:26",
"url": "https://files.pythonhosted.org/packages/82/25/40671f7fc031d9f95850a2c4cb91272be50180ba7c150db57906b00ceb34/django-timezone-utils-0.10.tar.gz"
}
],
"0.11": [
{
"comment_text": "",
"digests": {
"md5": "4914479d4b9439962b435075dc50370f",
"sha256": "ce105acacbb57d73aecb8f36d00f25c11a1015f3246866cf6848f35bad86832d"
},
"downloads": -1,
"filename": "django-timezone-utils-0.11.tar.gz",
"has_sig": false,
"md5_digest": "4914479d4b9439962b435075dc50370f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7706,
"upload_time": "2016-10-31T03:40:23",
"url": "https://files.pythonhosted.org/packages/63/af/5a1710b489f41e73c0c3aa6a1e141d868b75d8390f73a455616820b326a8/django-timezone-utils-0.11.tar.gz"
}
],
"0.13": [
{
"comment_text": "",
"digests": {
"md5": "0c1d420e474d503cba4be6253cfc7487",
"sha256": "543a29fbef1ed253a262e1078bd404010240c16716243864e65082bf2b7162e5"
},
"downloads": -1,
"filename": "django_timezone_utils-0.13-py2-none-any.whl",
"has_sig": false,
"md5_digest": "0c1d420e474d503cba4be6253cfc7487",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 8854,
"upload_time": "2018-09-26T00:06:42",
"url": "https://files.pythonhosted.org/packages/5e/44/2b9e1aaa577924263d6d9220251f82a612cc6f57a2d2b4fe316bf24faae5/django_timezone_utils-0.13-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5a05e803dd1c89eea3c88a55879fc4c8",
"sha256": "c35529e7f1d32249add1c0286ba9afffe00cbe22e2d59a0e9dc413bd2aedfb9e"
},
"downloads": -1,
"filename": "django_timezone_utils-0.13-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "5a05e803dd1c89eea3c88a55879fc4c8",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 9696,
"upload_time": "2018-10-01T05:23:03",
"url": "https://files.pythonhosted.org/packages/bd/82/517436e3826d4ba8981e6e7c0a29961cb2e5e801852bf4abd3ffd16ecc0a/django_timezone_utils-0.13-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "67ec4c497452893337f6ddbbfab78636",
"sha256": "23cb2fe38c8d813f6e8f033f2f5cec87fa7ae63e9737a6d8d032f997254d4044"
},
"downloads": -1,
"filename": "django_timezone_utils-0.13-py3-none-any.whl",
"has_sig": false,
"md5_digest": "67ec4c497452893337f6ddbbfab78636",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 8855,
"upload_time": "2018-09-26T00:06:44",
"url": "https://files.pythonhosted.org/packages/35/3f/863f20de67971c26de9e96cb8271b85a9ad303b20ccd350f8c5bcd9ef49c/django_timezone_utils-0.13-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "fe3c6d77caa02c67213d8749c6d6863d",
"sha256": "be06d41e0d12f6279f5a1e10ab01c41723ed495754bf12f6ff735baa8aeee863"
},
"downloads": -1,
"filename": "django-timezone-utils-0.13.tar.gz",
"has_sig": false,
"md5_digest": "fe3c6d77caa02c67213d8749c6d6863d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7935,
"upload_time": "2018-10-01T05:23:04",
"url": "https://files.pythonhosted.org/packages/e3/98/bde04ad755628d2e5d175344db42d849349a3e516e6cd3f9a706d0cc71de/django-timezone-utils-0.13.tar.gz"
}
],
"0.2": [
{
"comment_text": "",
"digests": {
"md5": "1440cbc69e2cedbb112ccf45e72922cd",
"sha256": "c46ab72b915dd714bbcfc59859fa5beae769380fcfe5e6df0d28851c446ca15b"
},
"downloads": -1,
"filename": "django-timezone-utils-0.2.tar.gz",
"has_sig": false,
"md5_digest": "1440cbc69e2cedbb112ccf45e72922cd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7513,
"upload_time": "2015-02-05T07:40:47",
"url": "https://files.pythonhosted.org/packages/d0/2f/7c6dbc082ea2fbd9f92fa818bffc11de4438fa5aed3558d72d3a4cffd17a/django-timezone-utils-0.2.tar.gz"
}
],
"0.3": [
{
"comment_text": "",
"digests": {
"md5": "ddb6d7a33e3daaf432bb9f80abe8ce03",
"sha256": "8168d9a90d2a44f5d8cd293e3ef50109be2129a1b23b8d6123a094808b7857ff"
},
"downloads": -1,
"filename": "django-timezone-utils-0.3.tar.gz",
"has_sig": false,
"md5_digest": "ddb6d7a33e3daaf432bb9f80abe8ce03",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7717,
"upload_time": "2015-02-05T18:08:00",
"url": "https://files.pythonhosted.org/packages/89/99/f323d86b1156c87836b1cfd3ce0405adebc1eb3bbc5af2ab36b54fcac933/django-timezone-utils-0.3.tar.gz"
}
],
"0.4": [
{
"comment_text": "",
"digests": {
"md5": "908ecc6be14525242f4c895ac9f53ae0",
"sha256": "fb8c22edce0bf973361fd3a3a06702dcc16d2c34a3f781e045e74d802c21927b"
},
"downloads": -1,
"filename": "django-timezone-utils-0.4.tar.gz",
"has_sig": false,
"md5_digest": "908ecc6be14525242f4c895ac9f53ae0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7837,
"upload_time": "2015-02-06T02:47:31",
"url": "https://files.pythonhosted.org/packages/13/09/de395a326da0222ed11b69e932024aace77e6cccb92dd02c0ddc1efb8c7e/django-timezone-utils-0.4.tar.gz"
}
],
"0.5": [
{
"comment_text": "",
"digests": {
"md5": "5caf9bf70a54db759e678a45d0ea0d1d",
"sha256": "08241b201042d076d1dd34f0a9f939f1387c086833fb3f4933e8ba45c661b61a"
},
"downloads": -1,
"filename": "django-timezone-utils-0.5.tar.gz",
"has_sig": false,
"md5_digest": "5caf9bf70a54db759e678a45d0ea0d1d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8005,
"upload_time": "2015-02-10T21:13:23",
"url": "https://files.pythonhosted.org/packages/37/71/901dc61c13d69a8f47e34be68c5cd7f20f0fc9baa721959e4fd1d3ce2b7b/django-timezone-utils-0.5.tar.gz"
}
],
"0.6": [
{
"comment_text": "",
"digests": {
"md5": "9458e51dae9f28dfd6afc64830123420",
"sha256": "99c5aadfa37b1278ec1bdad6d4733bc125bf4cad79300c00109e4b2fa11a894d"
},
"downloads": -1,
"filename": "django-timezone-utils-0.6.tar.gz",
"has_sig": false,
"md5_digest": "9458e51dae9f28dfd6afc64830123420",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6928,
"upload_time": "2015-02-19T09:39:12",
"url": "https://files.pythonhosted.org/packages/57/e5/118d349d7ca8ab3426ede500c7c5919f8e5c2e0c7373fb1ddd789e8e3a99/django-timezone-utils-0.6.tar.gz"
}
],
"0.7": [
{
"comment_text": "",
"digests": {
"md5": "3847826da99c51d9c50a68bb09e86c5d",
"sha256": "b0b065ca364e1f1bf64e140f93f6a41d85d353e82644aeea8ffb913b0e855152"
},
"downloads": -1,
"filename": "django-timezone-utils-0.7.tar.gz",
"has_sig": false,
"md5_digest": "3847826da99c51d9c50a68bb09e86c5d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7261,
"upload_time": "2015-02-24T21:03:06",
"url": "https://files.pythonhosted.org/packages/e6/bf/a372b8eeed83100d38e840b981cf39a6ced159c25924029a8ed3cf18d26a/django-timezone-utils-0.7.tar.gz"
}
],
"0.8": [
{
"comment_text": "",
"digests": {
"md5": "78ba361f277ad5fb40e26fe7edcb061c",
"sha256": "5157c9facd35399af23d7c47deaa4f40a091099063dd1ec6d24683c2729dcfd7"
},
"downloads": -1,
"filename": "django-timezone-utils-0.8.tar.gz",
"has_sig": false,
"md5_digest": "78ba361f277ad5fb40e26fe7edcb061c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7338,
"upload_time": "2015-02-27T20:00:45",
"url": "https://files.pythonhosted.org/packages/8f/d6/90c4375857b22e4488e32e6ec1eae25139ad36ff4960f157eacd6fe9f132/django-timezone-utils-0.8.tar.gz"
}
],
"0.9": [
{
"comment_text": "",
"digests": {
"md5": "f83ef1e1f1c9a90a28c753f69f90e540",
"sha256": "464555e376f3730e2fded14f8605612d1436ed9fe965846669ca7120970cbd19"
},
"downloads": -1,
"filename": "django-timezone-utils-0.9.tar.gz",
"has_sig": false,
"md5_digest": "f83ef1e1f1c9a90a28c753f69f90e540",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7784,
"upload_time": "2015-05-05T13:34:20",
"url": "https://files.pythonhosted.org/packages/74/8f/734b03bffa1f3ad512eb85d96ef223b925976c661cda26b90c29d359d396/django-timezone-utils-0.9.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "0c1d420e474d503cba4be6253cfc7487",
"sha256": "543a29fbef1ed253a262e1078bd404010240c16716243864e65082bf2b7162e5"
},
"downloads": -1,
"filename": "django_timezone_utils-0.13-py2-none-any.whl",
"has_sig": false,
"md5_digest": "0c1d420e474d503cba4be6253cfc7487",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 8854,
"upload_time": "2018-09-26T00:06:42",
"url": "https://files.pythonhosted.org/packages/5e/44/2b9e1aaa577924263d6d9220251f82a612cc6f57a2d2b4fe316bf24faae5/django_timezone_utils-0.13-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5a05e803dd1c89eea3c88a55879fc4c8",
"sha256": "c35529e7f1d32249add1c0286ba9afffe00cbe22e2d59a0e9dc413bd2aedfb9e"
},
"downloads": -1,
"filename": "django_timezone_utils-0.13-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "5a05e803dd1c89eea3c88a55879fc4c8",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 9696,
"upload_time": "2018-10-01T05:23:03",
"url": "https://files.pythonhosted.org/packages/bd/82/517436e3826d4ba8981e6e7c0a29961cb2e5e801852bf4abd3ffd16ecc0a/django_timezone_utils-0.13-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "67ec4c497452893337f6ddbbfab78636",
"sha256": "23cb2fe38c8d813f6e8f033f2f5cec87fa7ae63e9737a6d8d032f997254d4044"
},
"downloads": -1,
"filename": "django_timezone_utils-0.13-py3-none-any.whl",
"has_sig": false,
"md5_digest": "67ec4c497452893337f6ddbbfab78636",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 8855,
"upload_time": "2018-09-26T00:06:44",
"url": "https://files.pythonhosted.org/packages/35/3f/863f20de67971c26de9e96cb8271b85a9ad303b20ccd350f8c5bcd9ef49c/django_timezone_utils-0.13-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "fe3c6d77caa02c67213d8749c6d6863d",
"sha256": "be06d41e0d12f6279f5a1e10ab01c41723ed495754bf12f6ff735baa8aeee863"
},
"downloads": -1,
"filename": "django-timezone-utils-0.13.tar.gz",
"has_sig": false,
"md5_digest": "fe3c6d77caa02c67213d8749c6d6863d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7935,
"upload_time": "2018-10-01T05:23:04",
"url": "https://files.pythonhosted.org/packages/e3/98/bde04ad755628d2e5d175344db42d849349a3e516e6cd3f9a706d0cc71de/django-timezone-utils-0.13.tar.gz"
}
]
}