{ "info": { "author": "righ", "author_email": "righ.m9@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Topic :: Software Development" ], "description": ".. image:: https://circleci.com/gh/righ/typedate.svg?style=svg\n :target: https://circleci.com/gh/righ/typedate\n\nRequirements\n============\n\n- Python 2.7\n- Python 3.3 or later\n\n- Tested with 2.7, 3.7\n\nInstallation\n============\n\n.. code-block:: sh\n\n $ pip install typedate\n\nTypes\n=====\nThis library provides 3 classes parsing string, and outputting object related to time.\n\n:TypeDate: Date (and time) parser parses string. Time format, timezone and timedelta are specified when it is made.\n:TypeDelta: Delta parser parses numbers with time units separeted a space. It will be interpreted as delta function arguments.\n:TypeZone: Timezone parser parses timezone string. \n\nUsage\n=====\nFor example, use the classes with `argparse` as follows:\n\n.. code-block:: python\n\n #!/usr/bin/env python\n from datetime import datetime\n from typedate import TypeDate, TypeDelta, TypeZone\n \n if __name__ == '__main__':\n import argparse\n parser = argparse.ArgumentParser()\n\n # datetime parsing\n parser.add_argument(\"--datetime1\", type=TypeDate('%Y%m%d'))\n parser.add_argument(\"--datetime2\", type=TypeDate(timezone='Asia/Tokyo'))\n parser.add_argument(\"--datetime3\", type=TypeDate(timezone='+09:00'))\n parser.add_argument(\"--datetime4\", type=TypeDate(timedelta='1years -2months 3days 4hours 5minute 6seconds'))\n\n # timezone parsing\n parser.add_argument(\"--timezone1\", type=TypeZone())\n parser.add_argument(\"--timezone2\", type=TypeZone())\n parser.add_argument(\"--timezone3\", type=TypeZone(callback=lambda tz: datetime(2018, 7, 14, tzinfo=tz)))\n\n # timedelta parsing\n ## if python-dateutil installed, used automatically dateutil.relativedelta.relativedelta else datetime.timedelta.\n parser.add_argument(\"--defaultdelta\", type=TypeDelta())\n\n ## it can be specified by cls argument.\n from datetime import timedelta\n from dateutil.relativedelta import relativedelta\n parser.add_argument(\"--timedelta\", type=TypeDelta(cls=timedelta))\n parser.add_argument(\"--relativedelta\", type=TypeDelta(cls=relativedelta))\n\n args = parser.parse_args()\n print('datetime1:\\t', args.datetime1, type(args.datetime1))\n print('datetime2:\\t', args.datetime2, type(args.datetime2))\n print('datetime3:\\t', args.datetime3, type(args.datetime3))\n print('datetime4:\\t', args.datetime4, type(args.datetime4))\n\n print('timezone1:\\t', args.timezone1, type(args.timezone1))\n print('timezone2:\\t', args.timezone2, type(args.timezone2))\n print('dt with tz3:\\t', args.timezone3, type(args.timezone3))\n\n print('defaultdelta:\\t', args.defaultdelta, type(args.defaultdelta))\n print('timedelta:\\t', args.timedelta, type(args.timedelta))\n print('relativedelta:\\t', args.relativedelta, type(args.relativedelta))\n\nSaving a file like above as `command.py`, and execute it as follows.\n\n.. code-block:: sh\n\n $ python command.py \\\n --datetime1='19880522' \\\n --datetime2='2016-01-01' \\\n --datetime3='2016/01/01' \\\n --datetime4='01/01 00:00 2016' \\\n --timezone1='-0500' \\\n --timezone2='Asia/Tokyo' \\\n --timezone3='04:00' \\\n --defaultdelta='1years -2months 3days 4hours 5minutes 6seconds' \\\n --timedelta='3days 4hours 5minutes 6seconds' \\\n --relativedelta='1years -2months 3days 4hours 5minutes 6seconds'\n\n datetime1: 1988-05-22 00:00:00 \n datetime2: 2016-01-01 00:00:00+09:00 \n datetime3: 2016-01-01 00:00:00+09:00 \n datetime4: 2016-11-04 04:05:06 \n timezone1: -05:00 \n timezone2: Asia/Tokyo \n dt with tz3: 2018-07-14 00:00:00+04:00 \n defaultdelta: relativedelta(years=+1, months=-2, days=+3, hours=+4, minutes=+5, seconds=+6) \n timedelta: 3 days, 4:05:06 \n relativedelta: relativedelta(years=+1, months=-2, days=+3, hours=+4, minutes=+5, seconds=+6) \n\nHistory\n==========\n1.1.x\n-----\nAdded a callback argument to each types. \n\nIt is able to return other values using originally value.\n\n1.0.x\n-----\n* first release", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/righ/typedate", "keywords": "argparse,date,datetime,timedelta,timezone", "license": "Apache Software License 2.0", "maintainer": "", "maintainer_email": "", "name": "typedate", "package_url": "https://pypi.org/project/typedate/", "platform": "", "project_url": "https://pypi.org/project/typedate/", "project_urls": { "Homepage": "https://github.com/righ/typedate" }, "release_url": "https://pypi.org/project/typedate/1.1.1/", "requires_dist": null, "requires_python": "", "summary": "Parsers related time for argparse", "version": "1.1.1" }, "last_serial": 4061534, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "a4a921d4e5fdbc998a5a04c131730e3f", "sha256": "b5a13a81fb2c9c34fdd463020fe8f96920421d2b1db5dc817ee4c25f3d296c2a" }, "downloads": -1, "filename": "typedate-1.0.0.tar.gz", "has_sig": false, "md5_digest": "a4a921d4e5fdbc998a5a04c131730e3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3934, "upload_time": "2016-05-05T06:48:50", "url": "https://files.pythonhosted.org/packages/1e/ce/041a6cd8e2f06a996570bfea356fc3a9d26cbc26019184293b1a8d910ef9/typedate-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "739f796df606a9307ccafbc45143c4ed", "sha256": "372ce17fc9f73d20b547feb5b6d81b5ba994b40635d5d07d48d81a00991d7575" }, "downloads": -1, "filename": "typedate-1.0.1.tar.gz", "has_sig": false, "md5_digest": "739f796df606a9307ccafbc45143c4ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4100, "upload_time": "2018-07-13T17:31:21", "url": "https://files.pythonhosted.org/packages/21/8a/810300596cd503e86a192cfdac3b39d02c69c5dadef2f8513199375e2d6f/typedate-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "00c39fb326673b373b8f38d182a64c4f", "sha256": "f1e4603c061a357620a51864d10d5fd6c544ae8f785e389f2e800f8c0e4e4e48" }, "downloads": -1, "filename": "typedate-1.1.0.tar.gz", "has_sig": false, "md5_digest": "00c39fb326673b373b8f38d182a64c4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4374, "upload_time": "2018-07-14T17:04:55", "url": "https://files.pythonhosted.org/packages/ed/92/e1565749410ecd0dd42f9abe7c4b29b42c3c64cc3dfc5b153df66911dc30/typedate-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "dbe998cf8695f5592adf9f528be320ca", "sha256": "21d55dd01065203c7011a8caccd9414b4ee2059e084fb618e4535ba3547d8ad7" }, "downloads": -1, "filename": "typedate-1.1.1.tar.gz", "has_sig": false, "md5_digest": "dbe998cf8695f5592adf9f528be320ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4432, "upload_time": "2018-07-14T17:08:08", "url": "https://files.pythonhosted.org/packages/f8/ee/3a5ba343c017c747915843fc61cef5464753a707f010f8ac0553c26e0434/typedate-1.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dbe998cf8695f5592adf9f528be320ca", "sha256": "21d55dd01065203c7011a8caccd9414b4ee2059e084fb618e4535ba3547d8ad7" }, "downloads": -1, "filename": "typedate-1.1.1.tar.gz", "has_sig": false, "md5_digest": "dbe998cf8695f5592adf9f528be320ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4432, "upload_time": "2018-07-14T17:08:08", "url": "https://files.pythonhosted.org/packages/f8/ee/3a5ba343c017c747915843fc61cef5464753a707f010f8ac0553c26e0434/typedate-1.1.1.tar.gz" } ] }