{ "info": { "author": "David Seddon", "author_email": "david@seddonym.me", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.11", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "Framework :: Django :: 2.0", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": "===================\ndjango-yearlessdate\n===================\n\nProvides a Django model and form fields for dates that do not include years.\n\nOne use case is to collect birthdays without requiring the year of birth.\n\n|build-status| |python-versions| |django-versions| |wheel| |license|\n\nPrerequisites\n=============\n\n- Django 1.8 - 1.11, 2.0\n- Python 2.7, 3.6\n\n(Other versions may function, but are untested.)\n\nInstallation\n============\n\n.. code-block:: console\n\n pip install django-yearlessdate\n\nUsage\n=====\n\nThe package provides two model fields, ``YearlessDateField`` and ``YearField``.\n\nYearlessDateField\n-----------------\n\n``YearlessDateField`` stores a date without a year: January 1st, for example.\n\nIts default widget consists of two dropdowns, one for a day and one for the month.\n\nIt will only allow potentially valid dates. For example, a user won't be able to set\nthe date to April 31st. February 29th is counted as a valid date.\n\nHere's an example ``models.py`` that declares a model with a required yearless date::\n\n from django.db import models\n from djangoyearlessdate.models import YearlessDateField\n \n class MyModel(models.Model):\n birthday = YearlessDateField()\n\nThe values of ``YearlessDateField`` on the model instances can be accessed like so:\n\n>>> a = MyModel.objects.get(id=1)\n>>> a\n\n>>> a.birthday.day\n4\n>>> a.birthday.month\n8\n>>> print a.birthday\n4 August\n\nThey can also be compared or sorted as would be expected, for example:\n\n>>> m = MyModel.objects.all() \n>>> m\n[, ]\n>>> m[0].birthday > m[1].birthday\nTrue\n>>> m.order_by('birthday')\n[, ]\n\nYearField\n---------\n\n``YearField`` is a very simple model field that stores the year as an integer,\nand ensures the year provided lies between 1900 and 2200::\n\n from django.db import models\n from djangoyearlessdate.models import YearField\n\n class MyModel(models.Model):\n year = YearField(null=True, blank=True)\n\nUse of ``YearField`` is *not recommended* due to its lack of configurability.\nYou're almost certainly better of using a ``SmallIntegerField`` in combination\nwith a ``MinValueValidator`` and a ``MaxValueValidator``.\n\nRunning tests\n=============\n\nSetup\n-----\n\n1. Ensure you have a recent version of tox installed.\n2. Clone this repo.\n\nRunning tests\n-------------\n\nFrom the root of this repo, simply run:\n\n.. code-block:: console\n\n tox\n\n.. |build-status| image:: https://img.shields.io/circleci/project/github/seddonym/django-yearlessdate/master.svg\n :alt: Build status\n :target: https://circleci.com/gh/seddonym/django-yearlessdate\n\n.. |python-versions| image:: https://img.shields.io/pypi/pyversions/django-yearlessdate.svg\n :alt: Python versions\n :target: http://pypi.python.org/pypi/django-yearlessdate/\n\n.. |django-versions| image:: https://img.shields.io/pypi/djversions/django-yearlessdate.svg\n :alt: Django compatibility\n :target: http://pypi.python.org/pypi/django-yearlessdate/\n\n.. |wheel| image:: https://img.shields.io/pypi/wheel/django-yearlessdate.svg\n :alt: django-yearlessdate can be installed via wheel\n :target: http://pypi.python.org/pypi/django-yearlessdate/\n\n.. |license| image:: https://img.shields.io/pypi/l/django-yearlessdate.svg\n :alt: django-yearlessdate can be installed via wheel\n :target: http://pypi.python.org/pypi/django-yearlessdate/", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/seddonym/django-yearlessdate/", "keywords": "django date yearlessdate", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "django-yearlessdate", "package_url": "https://pypi.org/project/django-yearlessdate/", "platform": "any", "project_url": "https://pypi.org/project/django-yearlessdate/", "project_urls": { "Homepage": "http://github.com/seddonym/django-yearlessdate/" }, "release_url": "https://pypi.org/project/django-yearlessdate/1.3.1/", "requires_dist": null, "requires_python": "", "summary": "Django field for storing dates without years.", "version": "1.3.1" }, "last_serial": 4663374, "releases": { "0.1-beta": [ { "comment_text": "", "digests": { "md5": "c58e301fa5e104c131ef6fd88415ae20", "sha256": "75486a1857dd2a881414778a135bf69ad7051411176e4c202b3c7af2d7d8651f" }, "downloads": -1, "filename": "django-yearlessdate-0.1-beta.tar.gz", "has_sig": false, "md5_digest": "c58e301fa5e104c131ef6fd88415ae20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2401, "upload_time": "2012-11-13T11:47:03", "url": "https://files.pythonhosted.org/packages/03/d4/9c52946106e09ac5c6319c975088cebb96bd17365bf196a1d172205aa957/django-yearlessdate-0.1-beta.tar.gz" } ], "0.2-beta": [ { "comment_text": "", "digests": { "md5": "e10bd8f9f21a64b636c307a8ac54534c", "sha256": "17f18c24ff8aa692a3c458bb37333a9440f166eaccb5dda6323fb2a5d5ce0726" }, "downloads": -1, "filename": "django-yearlessdate-0.2-beta.tar.gz", "has_sig": false, "md5_digest": "e10bd8f9f21a64b636c307a8ac54534c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2328, "upload_time": "2012-11-20T15:06:29", "url": "https://files.pythonhosted.org/packages/99/42/42ba9880f3656572ef1765cac0024b5c8c5e3ea256dc8e9e823ffa3875b3/django-yearlessdate-0.2-beta.tar.gz" } ], "0.3-beta": [ { "comment_text": "", "digests": { "md5": "1c1ac84e862357886e17df163b9572a5", "sha256": "cbb32aebd88c369938c85681068980df2de1faaf5d0b2eddfb92bd23827abcd8" }, "downloads": -1, "filename": "django-yearlessdate-0.3-beta.tar.gz", "has_sig": false, "md5_digest": "1c1ac84e862357886e17df163b9572a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2421, "upload_time": "2013-05-28T13:52:42", "url": "https://files.pythonhosted.org/packages/66/ad/f8703fca764ab75e3de6b7903be9a37fa86c0e9be1da2a287be325226e7e/django-yearlessdate-0.3-beta.tar.gz" } ], "0.4-beta": [ { "comment_text": "", "digests": { "md5": "ee0841bf9e720e2a02a2afd80dbc0147", "sha256": "c112b48804b5bef8c6eea751d4a6dd24f864b8e0517b765e59c9bac96855f183" }, "downloads": -1, "filename": "django_yearlessdate-0.4_beta-py2-none-any.whl", "has_sig": false, "md5_digest": "ee0841bf9e720e2a02a2afd80dbc0147", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 3882, "upload_time": "2018-05-09T14:52:51", "url": "https://files.pythonhosted.org/packages/10/9a/0e7d643f0f96510a36b73d414dbb94167a95578d3ca799a40294d72415d5/django_yearlessdate-0.4_beta-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4aff01ae762331ababf89a38bdda7de7", "sha256": "83dde27e72359e3acb7cfc909f1d794dc9caa86ef59c77c2777e6a9d38bf5d44" }, "downloads": -1, "filename": "django-yearlessdate-0.4-beta.tar.gz", "has_sig": false, "md5_digest": "4aff01ae762331ababf89a38bdda7de7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3294, "upload_time": "2018-05-09T14:52:53", "url": "https://files.pythonhosted.org/packages/33/fa/69ea91bbbd88cf32e8416900244db5222014a2b730c6c97ad89e755c61f1/django-yearlessdate-0.4-beta.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "c4b3e0bd5751d6bd1e7fbf722548b654", "sha256": "a5571d353352e99a5fd0638f34288013a7134f191ee0c7c01aecc66f020aca67" }, "downloads": -1, "filename": "django_yearlessdate-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c4b3e0bd5751d6bd1e7fbf722548b654", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4688, "upload_time": "2018-05-09T15:56:16", "url": "https://files.pythonhosted.org/packages/d9/dd/47ce3714372b74da0826450e3d0559d94a9955d316a24d70c006b5d2da32/django_yearlessdate-1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c362d843abcdd89d14a30b76110ee3e1", "sha256": "7f99b7197683d7b84e9b5b87054e4bdfd0fc8411c2b9b6063192bd24caf0456d" }, "downloads": -1, "filename": "django-yearlessdate-1.0.tar.gz", "has_sig": false, "md5_digest": "c362d843abcdd89d14a30b76110ee3e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3701, "upload_time": "2018-05-09T15:56:17", "url": "https://files.pythonhosted.org/packages/59/ae/d9f8b548877eb4f8304b62016fc7096d1940b969157a9dde408b55830798/django-yearlessdate-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "1e28052a185d7c450f742092b272d047", "sha256": "47df346104bd8b5bb13c8ceea058cd5c197cffc66a03ff57a916d1493abe4bdb" }, "downloads": -1, "filename": "django_yearlessdate-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1e28052a185d7c450f742092b272d047", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5253, "upload_time": "2018-05-10T09:31:18", "url": "https://files.pythonhosted.org/packages/23/23/28862d0f9d130970e7884bf26d78e1ebbb8617857f8d4aa5d429a39722a5/django_yearlessdate-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b7ed4e37f5667a1b66eeb1d4b84c2a2", "sha256": "f0327c84300a46e91aa71202883016de54ab1c411c92e5570edb2aefdd2b865a" }, "downloads": -1, "filename": "django-yearlessdate-1.0.1.tar.gz", "has_sig": false, "md5_digest": "2b7ed4e37f5667a1b66eeb1d4b84c2a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4511, "upload_time": "2018-05-10T09:31:19", "url": "https://files.pythonhosted.org/packages/4c/ed/82868571d15260b32b3919db754ec4d52bb4fba5eef2ac395e80899db1d1/django-yearlessdate-1.0.1.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "16ef461f52464faa3c7f3e6ed7df2e31", "sha256": "a53bf3d5559b74884abd0a17a9fed0dda8f6d794c1c2d591f6c68ff61be679ae" }, "downloads": -1, "filename": "django_yearlessdate-1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "16ef461f52464faa3c7f3e6ed7df2e31", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5249, "upload_time": "2018-05-10T09:56:15", "url": "https://files.pythonhosted.org/packages/62/19/df92e5e0cb044fd4f3803cfa9192a138bdab0e2999c3b0d2149a7cd70622/django_yearlessdate-1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b47042aa59fc9ceed61631e125c59ad", "sha256": "35ac19d1eeee97e73dd01a7e9462ea02e01e3ab4e960bfd069e746b7016fbf05" }, "downloads": -1, "filename": "django-yearlessdate-1.1.tar.gz", "has_sig": false, "md5_digest": "8b47042aa59fc9ceed61631e125c59ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4542, "upload_time": "2018-05-10T09:56:17", "url": "https://files.pythonhosted.org/packages/87/3a/d1d3adce1c911c993e00062e0b11d24449e790b0086ed97878e97331797f/django-yearlessdate-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "faa194411d6a8f3ea009e46a197e0396", "sha256": "a70f3c88e861c53bd7ec204612ff0758e138a2b33f999c94980148b9dbbbe6e2" }, "downloads": -1, "filename": "django_yearlessdate-1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "faa194411d6a8f3ea009e46a197e0396", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5257, "upload_time": "2018-08-03T16:58:20", "url": "https://files.pythonhosted.org/packages/c3/6d/47034156cec3c9ad9eea9486e3e6bf1c88b62ab088d3359074943a67ce60/django_yearlessdate-1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9893491a3ecbfd319f00a252c1009b67", "sha256": "bbc179e2d0b05b18da16a6380fd36e3c5ccf5c28742925df14740c101fac51c6" }, "downloads": -1, "filename": "django-yearlessdate-1.2.tar.gz", "has_sig": false, "md5_digest": "9893491a3ecbfd319f00a252c1009b67", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4467, "upload_time": "2018-08-03T16:58:21", "url": "https://files.pythonhosted.org/packages/59/99/7bb45cd9bb5c4d00061a2af66f28c668b9bc778a5d9c6733b7d8581aa26a/django-yearlessdate-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "7a78d4625fa43f0df5e286530439d852", "sha256": "06010e343ee33153d51ab6a1f68e8246b3a17aa6890ddee679739bdf1307954f" }, "downloads": -1, "filename": "django_yearlessdate-1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7a78d4625fa43f0df5e286530439d852", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5287, "upload_time": "2018-08-04T12:37:31", "url": "https://files.pythonhosted.org/packages/92/3e/66519f56eeb8cf389ec9d8996473120df5bb70ed1a49bef1c5c09635839d/django_yearlessdate-1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1c523d8f36dfbc172deb6cf55ea117ff", "sha256": "83a94dd87d63f6d7077438202f17ddbda7ad9ab67e94831fb095aaf10b245b04" }, "downloads": -1, "filename": "django-yearlessdate-1.3.tar.gz", "has_sig": false, "md5_digest": "1c523d8f36dfbc172deb6cf55ea117ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4501, "upload_time": "2018-08-04T12:37:33", "url": "https://files.pythonhosted.org/packages/36/03/02fe3118fa085eb600efa417f7bd643b42805b67fefb843fccc706b06e16/django-yearlessdate-1.3.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "06424d2c3a72d518a895c6df62f7bf1a", "sha256": "03dfa9f7e0267ed05015896e698a81df982b68c203ec5256565897d0578e08b0" }, "downloads": -1, "filename": "django-yearlessdate-1.3.1.tar.gz", "has_sig": false, "md5_digest": "06424d2c3a72d518a895c6df62f7bf1a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4622, "upload_time": "2019-01-05T13:43:02", "url": "https://files.pythonhosted.org/packages/40/63/f4b7c02b6662e152025710e90e110660c116db40c95e469b6c2e885bbeeb/django-yearlessdate-1.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "06424d2c3a72d518a895c6df62f7bf1a", "sha256": "03dfa9f7e0267ed05015896e698a81df982b68c203ec5256565897d0578e08b0" }, "downloads": -1, "filename": "django-yearlessdate-1.3.1.tar.gz", "has_sig": false, "md5_digest": "06424d2c3a72d518a895c6df62f7bf1a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4622, "upload_time": "2019-01-05T13:43:02", "url": "https://files.pythonhosted.org/packages/40/63/f4b7c02b6662e152025710e90e110660c116db40c95e469b6c2e885bbeeb/django-yearlessdate-1.3.1.tar.gz" } ] }