{ "info": { "author": "Remik Ziemlinski", "author_email": "first.last@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "Overview\n========\ndtrange has multi-calendar datetime, date and time range iterators.\n\nFeatures\n--------\n* Half-open or closed bounds.\n* Non-uniform step date units, such as leap years and months.\n* Alternative calendars: 360, all-leap, no-leap, gregorian, julian\n* Ordinals (total days) for all calendar dates.\n* Fraction arithmetic.\n* [lower, upper) bounds search.\n* Python 2 & 3.\n\nExamples\n========\n\nDatetime\n--------\n\n from datetime import datetime, timedelta\n from dtrange import dtrange\n\n start = datetime(2000, 1, 1)\n stop = datetime(2020, 2, 1)\n step = timedelta(1)\n\n for it in dtrange(start, stop, step, endpoint=True):\n print(it)\n\n for units in ['y', 'm', 'w', 'd', 'h', 'min', 's', 'ms', 'us']:\n for it in dtrange(start, stop, step=1, units=units):\n print(units,it)\n\n for it in dtrange(start, stop, n=10):\n print(it)\n\n for it in dtrange(start, step, n=10):\n print(it)\n\n for units in ['y', 'm', 'w', 'd', 'h', 'min', 's', 'ms', 'us']:\n for it in dtrange(start, step=1, units=units, n=10):\n print(units,it)\n\n from dtrange import dtfraction\n \n print(dtfraction(datetime(2000,1,1), datetime(2001,1,1), datetime(2002,1,1)))\n \nDate\n----\n from datetime import date, timedelta\n from dtrange import drange\n\n start = date(2000, 1, 1)\n stop = date(2005, 2, 1)\n step = timedelta(days=1)\n\n for calendar in ['360', 'gregorian', 'julian', 'leap', 'noleap']:\n for it in drange(start, stop, step, calendar=calendar):\n print(calendar,it)\n\n from dtrange import dfraction\n \n print(dfraction(date(2000,1,1), date(2001,1,1), date(2002,1,1)))\n\nTime\n----\n from datetime import time, timedelta\n from dtrange import trange\n\n start = time(0, 0, 0)\n stop = time(0, 1, 0)\n step = timedelta(seconds=1)\n\n for it in trange(start, stop, step):\n print(it)\n\n from dtrange import tfraction\n \n print(tfraction(time(1,1,1), time(2,1,1), time(3,1,1)))\n\nTesting\n=======\n\n make test\n\nInstallation\n============\n\nFrom PyPi.\n\n pip install dtrange\n\nFrom tarball.\n\n python setup.py install\n\nLicense\n=======\n\ndtrange Copyright (C) 2016 Remik Ziemlinski\n\nThis program comes with ABSOLUTELY NO WARRANTY.\nThis is free software, and you are welcome to redistribute it under the\nconditions of the GPLv3 license.", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/rsmz/dtrange/archive/dtrange-1.2.2.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://www.github.com/rsmz/dtrange", "keywords": null, "license": "GPLv3", "maintainer": null, "maintainer_email": null, "name": "dtrange", "package_url": "https://pypi.org/project/dtrange/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/dtrange/", "project_urls": { "Download": "https://github.com/rsmz/dtrange/archive/dtrange-1.2.2.tar.gz", "Homepage": "https://www.github.com/rsmz/dtrange" }, "release_url": "https://pypi.org/project/dtrange/1.2.2/", "requires_dist": null, "requires_python": null, "summary": "Multi-calendar datetime, date, and time range iterators.", "version": "1.2.2" }, "last_serial": 1954672, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "43fcbeb505e4f9be6ac62b70bed567fd", "sha256": "c400b6b5b19ac529587405a45caea2aed715700e393d4a7e460cd92d3a2b25cf" }, "downloads": -1, "filename": "dtrange-1.0.0.tar.gz", "has_sig": false, "md5_digest": "43fcbeb505e4f9be6ac62b70bed567fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3229, "upload_time": "2016-02-05T18:23:43", "url": "https://files.pythonhosted.org/packages/4d/d8/d7d54117f1f02c8c09c1ab7e7725230e029900edb7c1f802d6f2c0e7189b/dtrange-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "d7580189464669280c48e28d598d783b", "sha256": "a8e03dbc31d6c8a3cfb37a6268eb82888d66e9989eb7c680f3d4770b25bcf072" }, "downloads": -1, "filename": "dtrange-1.1.0.tar.gz", "has_sig": false, "md5_digest": "d7580189464669280c48e28d598d783b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5442, "upload_time": "2016-02-10T17:02:53", "url": "https://files.pythonhosted.org/packages/5e/89/99c4946f0551ff78398be50d5f6450a0915288415bd6efe813ff06db6db6/dtrange-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "1399184af8572d3a3986e7d59cadcf09", "sha256": "84cbba73e909b5db29cf750e610ad2ff4fa531cda7fc0d2db2350081b484bf40" }, "downloads": -1, "filename": "dtrange-1.1.1.tar.gz", "has_sig": false, "md5_digest": "1399184af8572d3a3986e7d59cadcf09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5633, "upload_time": "2016-02-10T17:10:14", "url": "https://files.pythonhosted.org/packages/ab/ba/667cd8d74fec939321dca3dae0f7d401a2c5716959530c5e530a0e628ed5/dtrange-1.1.1.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "12103f5c651705e84d9331cc994a4319", "sha256": "c4ee593c722c720f870327c61a84809ccec092bfdad5abeebb9b8b6751a15812" }, "downloads": -1, "filename": "dtrange-1.2.0.tar.gz", "has_sig": false, "md5_digest": "12103f5c651705e84d9331cc994a4319", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7327, "upload_time": "2016-02-11T01:55:14", "url": "https://files.pythonhosted.org/packages/6a/04/764d5a057b47128be4cc9ebdd373b04dc49434b7aabbf6fbd46f33f5ee4e/dtrange-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "e16ad4b8ef4004e85d78c351b42a5278", "sha256": "248319a6933ed3f96d5bf149d16c10fcc81bbaad2437c129aa80b1ceb783cfe1" }, "downloads": -1, "filename": "dtrange-1.2.1.tar.gz", "has_sig": false, "md5_digest": "e16ad4b8ef4004e85d78c351b42a5278", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7844, "upload_time": "2016-02-11T16:27:29", "url": "https://files.pythonhosted.org/packages/c8/f5/6c1fb811df9b51ad6d6504b9023b99e59a18f94b4a9e166fb9bef39c75e7/dtrange-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "d4ed3b68ba7baa6303e5ea3fa1765c6e", "sha256": "66bd0b7d341d67672b495c9d9969f7066fae7999215a70de35408f10c8a4cd9a" }, "downloads": -1, "filename": "dtrange-1.2.2.tar.gz", "has_sig": false, "md5_digest": "d4ed3b68ba7baa6303e5ea3fa1765c6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6359, "upload_time": "2016-02-13T17:56:31", "url": "https://files.pythonhosted.org/packages/43/45/265aaa2b40bb17c4835f8210ba7c0a2e058dda3f443181cd3c14aeae077a/dtrange-1.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d4ed3b68ba7baa6303e5ea3fa1765c6e", "sha256": "66bd0b7d341d67672b495c9d9969f7066fae7999215a70de35408f10c8a4cd9a" }, "downloads": -1, "filename": "dtrange-1.2.2.tar.gz", "has_sig": false, "md5_digest": "d4ed3b68ba7baa6303e5ea3fa1765c6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6359, "upload_time": "2016-02-13T17:56:31", "url": "https://files.pythonhosted.org/packages/43/45/265aaa2b40bb17c4835f8210ba7c0a2e058dda3f443181cd3c14aeae077a/dtrange-1.2.2.tar.gz" } ] }