{ "info": { "author": "rezemika", "author_email": "reze.mika@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: GNU Affero General Public License v3", "Natural Language :: French", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: Other/Nonlisted Topic", "Topic :: Utilities" ], "description": "Humanized Opening Hours - A parser for the opening_hours fields from OSM\n========================================================================\n\n**Humanized Opening Hours** is a Python 3 module allowing a simple usage of the opening_hours fields used in OpenStreetMap.\n\nAny pull request (following PEP-8) is more than welcome!\n\n```python\n>>> import humanized_opening_hours as hoh\n>>> field = \"Mo-Fr 06:00-21:00; Sa,Su 08:00-12:00\"\n>>> oh = hoh.OHParser(field)\n>>> oh.is_open()\nTrue\n>>> oh.next_change()\ndatetime.datetime(2017, 12, 24, 12, 0)\n>>> print(oh.render().plaintext_week_description())\n\"\"\"\nMonday: 06:00 - 21:00\nTuesday: 06:00 - 21:00\nWednesday: 06:00 - 21:00\nThursday: 06:00 - 21:00\nFriday: 06:00 - 21:00\nSaturday: 08:00 - 12:00\nSunday: 08:00 - 12:00\n\"\"\"\n>>> print('\\n'.join(oh.render().full_description()))\n\"\"\"\nMonday to Friday: 06:00 to 21:00.\nSaturday and Sunday: 08:00 to 12:00.\n\"\"\"\n```\n\n**This module is still in development and bugs may occur. If you discover one, please create an issue.**\n\n# Installation\n\nThis library is so small, you can include it directly into your project.\nAlso, it is available on PyPi.\n\n $ pip3 install osm-humanized-opening-hours\n\n# How to use it\n\nThe only mandatory argument to give to the constructor is the field, which must be a string.\n\n```python\n>>> import humanized_opening_hours as hoh\n>>> field = \"Mo-Fr 06:00-21:00; Sa,Su 07:00-21:00\"\n>>> \n>>> oh = hoh.OHParser(field)\n>>> oh.is_open()\nTrue\n```\n\n## Basic methods\n\nTo know if the facility is open at the present time. Returns a boolean.\nCan take a datetime.datetime moment to check for another time.\n\n```python\n>>> oh.is_open()\nTrue\n```\n\n-----\n\nTo know at which time the facility status (open / closed) will change.\nReturns a datetime.datetime object.\nCan take a datetime.datetime moment to check for another time.\nIf we are on December 24 before 21:00 / 09:00PM...\n\n```python\n>>> oh.next_change()\ndatetime.datetime(2017, 12, 24, 21, 0, tzinfo=)\n```\n\nFor consecutive days fully open (\"Mo-Fr 00:00-24:00\"), you can allow recursion with the \"allow_recursion\" parameter to get the true next change, but it will raise a \"RecursionError\" with \"24/7\" fields.\n\n```python\n>>> oh = hoh.OHParser(\"Mo-Fr 00:00-24:00\")\n>>> oh.next_change(allow_recursion=False)\ndatetime.datetime(2018, 1, 8, 0, 0, tzinfo=)\n>>> oh.next_change(allow_recursion=True)\ndatetime.datetime(2018, 1, 11, 23, 59, 59, 999999, tzinfo=)\n```\n\n-----\n\nYou can get a sanitized version of the field given to the constructor with the *sanitize* staticmethod or the **sanitized_field** attribute.\n\n```python\n>>> field = \"mo-su 0930-2000;jan off\"\n>>> print(hoh.OHParser.sanitize(field))\n\"Mo-Su 09:30-20:00; Jan off\"\n```\n\nIf you try to parse a field which is invalid or contains a pattern which is not supported, an `humanized_opening_hours.exceptions.ParseError` (inheriting from `humanized_opening_hours.exceptions.HOHError`) will be raised.\nIf the field contains a period which spans over midnight (like `Mo-Fr 20:00-02:00`), a `humanized_opening_hours.exceptions.SpanOverMidnight` exception (also inheriting from `HOHError`) will be raised, because this is not supported yet.\n\n## Solar hours\n\nIf the field contains solar hours, here is how to deal with them.\n\nFirst of all, you can easily know if you need to set them by checking the `OHParser.needs_solar_hours_setting` variable.\nIf one of its values is `True`, you need to set them in the `solar_hours` dict with `datetime.time` objects.\n\nFor example, if you know that the sunrise is at 08:00 and the sunset at 20:00, you can do this:\n\n```python\noh.solar_hours[\"sunrise\"] = datetime.time(8, 0)\noh.solar_hours[\"sunset\"] = datetime.time(20, 0)\n```\n\n**If you try to do something with a field requiring setting without setting it, you will get a \"SolarHoursNotSetError\".**\n\nAttention, except if the facility is on the equator, this setting will be valid only for a short period.\n\n## Have nice schedules\n\nThe `OHRenderer` class allows you to get various representations of the schedules.\nIts `__init__` method takes an OHParser object in argument, and two optional arguments:\n\n- `universal` (bool) : allows to have human-readable descriptions without having to parse the solar hours (True default).\n- `locale_name` (str) : the language to use (\"en\" default), which can be changed with the `set_locale()` method.\n\nIt has several methods to retrieve useful informations.\n\nThis object can also be created from an OHParser instance with its `render()` method.\n\n```python\nohr = oh.render(universal=False)\n```\n\nShorter, you can get it directly from a field with the `render_field()` function.\n\n```python\nohr = hoh.render_field(field, universal=False)\n```\n\n### Locales management\n\nThe `available_locales()` method returns a list of the available locales (strings).\n\nThe `set_locale()` method allows to set a new locale for rendering. It takes a single argument: the locale_name.\n\n### get_human_names\n\nReturns a dict of lists with the names of months and weekdays in the current locale.\n\nExample:\n\n```python\n>>> ohr.get_human_names()\n{\n 'months': [\n 'January', 'February', 'March',\n 'April', 'May', 'June', 'July',\n 'August', 'September', 'October',\n 'November', 'December'\n ],\n 'days': [\n 'Monday', 'Tuesday', 'Wednesday',\n 'Thursday', 'Friday', 'Saturday',\n 'Sunday'\n ]\n}\n```\n\n### time_before_next_change\n\nReturns a humanized delay before the next change in opening status.\n\n```python\n>>> ohr.time_before_next_change()\n\"in 3 hours\"\n>>> ohr.time_before_next_change(word=False)\n\"3 hours\"\n```\n\n### plaintext_week_description\n\nReturns a plaintext description of the schedules of a week.\nThis method takes either a `datetime.date` object or a list of `datetime.date` objects.\nIn the first case, it is converted into a list of the days in the same week.\nIt can also take no parameter, so the described week will be the current one.\n\n```python\n>>> ohr.plaintext_week_description()\n\"\"\"\nMonday: 08:00 - 19:00\nTuesday: 08:00 - 19:00\nWednesday: 08:00 - 19:00\nThursday: 08:00 - 19:00\nFriday: 08:00 - 19:00\nSaturday: 08:00 - 12:00\nSunday: closed\n\"\"\"\n```\n\n### full_description\n\nReturns a list of strings (sentences) describing the whole field.\n\n```python\n# Field: \"Mo-Fr 10:00-19:00; Sa 10:00-12:00; Dec 25 off\"\n>>> print(' '.join(oh.render().full_description()))\n\"Monday to Friday: 10:00 to 19:00. Saturday: 10:00 to 12:00. 25 December: closed.\"\n```\n\nYou can get the same result with the `field_description()` function, which takes the field and an optional `locale_name` parameter.\n\n## Objects\n\nApart the main HumanizedOpeningHours class, HOH provides four other objects:\n- `Day` : a weekday, or public or schoold holidays;\n- `Period` : a period with two `Moment` objects : a beginning and an end;\n- `MomentKind` : the kind of a period;\n- `Moment` : a moment in time, which can be a beginning or an end of a period.\n\n### Day\n\nAttributes:\n- `periods` (list) : a list of `Period` objects included in this day;\n- `date` (datetime.date) : the date of the day;\n- `is_PH` (bool) : True if the day is a public holiday;\n- `is_SH` (bool) : True if the day is a school holiday.\n\n```python\n# To know whether there is / are opening period(s) in this day.\n>>> day.opens_today()\nTrue\n```\n\nYou can get a Day in two ways. Firstly with the `get_day()` method of OHParser, which takes a `datetime.date` object.\nYou can also use slicing with `datetime.date` object(s). It also supports stepping (with an integer).\n\n```python\n>>> oh[datetime.date.today()]\n''\n\n>>> oh[datetime.date(2018, 1, 1):datetime.date(2018, 1, 3)]\n['', '', '']\n```\n\n### Period\n\nAttributes:\n- `beginning` (Moment object) : the beginning of the period;\n- `end` (Moment object) : the end of the period.\n\n```python\n# To know if a period contains a solar hour, use the `is_variable()` method.\n>>> period.is_variable()\ndatetime.timedelta(0, 10800)\n\n# Know if a datetime.time object is between the beginning and the end of this period (i.e. it is open at this time).\n>>> moment = datetime.time(18, 30)\n>>> moment in period\nTrue\n```\n\n### MomentKind\n\nA simple Enum with the following values:\n- `NORMAL`;\n- `SUNRISE`;\n- `SUNSET`;\n- `DAWN`;\n- `DUSK`.\n\n### Moment\n\nAttributes:\n- `kind` (MomentKind) : the kind of this moment;\n\n```python\n# Gets a datetime.time object (localized on UTC), or None if the moment is variable.\n>>> moment.time()\ndatetime.time(18, 30, tzinfo=)\n```\n\n# Supported field formats\n\nHere are the field formats officialy supported and tested (examples).\n\n```\n24/7\nMo 10:00-20:00\nMo-Fr 10:00-20:00\nSa,Su 10:00-20:00\nSu,PH off # or \"closed\"\n10:00-20:00\nsunrise-sunset # or \"dawn\" / \"dusk\"\n(sunrise+01:00)-20:00\nJan 10:00-20:00\nJan-Feb 10:00-20:00\nJan,Dec 10:00-20:00\nJan Mo 10:00-20:00\nJan,Feb Mo 10:00-20:00\nJan-Feb Mo 10:00-20:00\nJan Mo-Fr 10:00-20:00\nJan,Feb Mo-Fr 10:00-20:00\nJan-Feb Mo-Fr 10:00-20:00\nSH Mo 10:00-20:00\nSH Mo-Fr 10:00-20:00\neaster 10:00-20:00\neaster +1 day 10:00-20:00\neaster +2 days 10:00-20:00\n```\n\nThe following formats are NOT supported yet and their parsing will raise a ParseError.\n\n```\n20:00-02:00 # Span over midnight.\nyears\nweeks\nSu[1] 10:00-20:00\nSH,PH Mo-Fr 10:00-20:00\nSH,PH Mo-Fr,Su 10:00-20:00\nJan-Feb,Aug Mo-Fr,Su 10:00-20:00\n```\n\n# Performances\n\nHOH uses the module [Lark](https://github.com/erezsh/lark) (with the LALR parser) to parse the fields.\nIt takes about 0.0005 seconds to parse a basic field, 0.05 seconds to parse a hundred, and 0.4 for a thousand.\n\n# Dependencies\n\nThis module requires the following modules, which can be installed with `pip3`.\n\n```python\nlark-parser\npytz\nbabel\n```\n\n# Licence\n\nThis module is published under the AGPLv3 license, the terms of which can be found in the [LICENCE](LICENCE) file.\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/rezemika/humanized_opening_hours", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "osm-humanized-opening-hours", "package_url": "https://pypi.org/project/osm-humanized-opening-hours/", "platform": "", "project_url": "https://pypi.org/project/osm-humanized-opening-hours/", "project_urls": { "Homepage": "http://github.com/rezemika/humanized_opening_hours" }, "release_url": "https://pypi.org/project/osm-humanized-opening-hours/0.6.2/", "requires_dist": [ "pytz", "lark-parser", "babel" ], "requires_python": "", "summary": "A parser for the opening_hours fields from OpenStreetMap.", "version": "0.6.2" }, "last_serial": 4552332, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "2835395f0c4de8b20fb0216fd663b35e", "sha256": "2469622640a094324b36262e67a958cde782f7ced959edbd166ec2b71ee4875b" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.1.0.tar.gz", "has_sig": false, "md5_digest": "2835395f0c4de8b20fb0216fd663b35e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17030, "upload_time": "2017-08-05T13:24:47", "url": "https://files.pythonhosted.org/packages/92/e5/43d33773efffebc763bbbf1c7620191cc35e6b0844e0dd08a8b5664a066a/osm_humanized_opening_hours-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "acfe36f0e1c3dfc8149447389f4e5641", "sha256": "e1ff3620a53bbcfe543b8a42fe757c1ea5040e3176ec4359a53c1550b34abf9b" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.1.1-py3.5.egg", "has_sig": false, "md5_digest": "acfe36f0e1c3dfc8149447389f4e5641", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 26701, "upload_time": "2017-08-06T10:34:44", "url": "https://files.pythonhosted.org/packages/23/93/d582345725e25908c09977d5704e384a9f000a7699e7a7561a1ba4a2aa16/osm_humanized_opening_hours-0.1.1-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "fac4f687350f2a1381d9af7b05dd4284", "sha256": "0b050d13597c2c9d15e50385dc352af645012ba12e86f9f59cd82541b115dd2e" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.1.1.tar.gz", "has_sig": false, "md5_digest": "fac4f687350f2a1381d9af7b05dd4284", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17124, "upload_time": "2017-08-06T10:34:46", "url": "https://files.pythonhosted.org/packages/93/27/a1ebf0288ada7945216caddeb46aef626d774d1cb0c5067432887041a053/osm_humanized_opening_hours-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "9d62b6a5d2730797ed49cb937b13d9f6", "sha256": "22e93c08432279207f3b7d6d298c0005b77bba55a42dfd33756488aab7391ced" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.2.0.tar.gz", "has_sig": false, "md5_digest": "9d62b6a5d2730797ed49cb937b13d9f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21765, "upload_time": "2017-09-17T17:45:04", "url": "https://files.pythonhosted.org/packages/29/f3/0d3fa79ac040bd576baedbdeb1e29322889e9688099fd4b138505073ead7/osm_humanized_opening_hours-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "7024cdcc5e051361b34c3e4dc283ade4", "sha256": "fd4f96fac8cc60c0142e5fb77860b80424568762ce358f866b91e8fa010e5a3d" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7024cdcc5e051361b34c3e4dc283ade4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 39524, "upload_time": "2017-11-25T12:19:44", "url": "https://files.pythonhosted.org/packages/c1/8e/cdee3866d532623b05052c9db8ab5c41a9c2cb2bcea09dab186d015773a7/osm_humanized_opening_hours-0.3.0-py3-none-any.whl" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "a1d02042ebef16f3d6e8c71f2d491272", "sha256": "207d217abc7d891c4835e132275f957af0bc6bdb0e3875f434990a9755297b68" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.4.0-py3.5.egg", "has_sig": false, "md5_digest": "a1d02042ebef16f3d6e8c71f2d491272", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 40659, "upload_time": "2018-02-05T20:55:33", "url": "https://files.pythonhosted.org/packages/92/00/8ed005b263435633af541c53fdc2512900d39ea80bae7356193b77d8e487/osm_humanized_opening_hours-0.4.0-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "4918c9983df021047dda35ff617923bd", "sha256": "da28d8bd3318b1a193cecae48858eec170965797a1269b3d1a6e1b6b5e945ebb" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.4.0.tar.gz", "has_sig": false, "md5_digest": "4918c9983df021047dda35ff617923bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18892, "upload_time": "2018-02-05T20:55:35", "url": "https://files.pythonhosted.org/packages/e6/fb/cba1c8ba07342a3259d569577710b68066b3aa6c71ede4c0e51ffa44e771/osm_humanized_opening_hours-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "6d354a05ee4eca22f653aa31a4b92018", "sha256": "39c4669cbb945d4ffc385633944e673126df5491becaa5136b999db4ba65125d" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6d354a05ee4eca22f653aa31a4b92018", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23770, "upload_time": "2018-02-05T20:55:37", "url": "https://files.pythonhosted.org/packages/f3/2a/b3d059232470b07a7a3b431420e03bb156df5f54dc4bce1a183314149dfb/osm_humanized_opening_hours-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "757503b2e146346eaf375dd3fbdd7ced", "sha256": "e577ad79ba1b1dd37bf3c89f91e5e93d9b91c97d93a9ecd23409196bd5b466c6" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.4.1.tar.gz", "has_sig": false, "md5_digest": "757503b2e146346eaf375dd3fbdd7ced", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19468, "upload_time": "2018-02-05T20:55:40", "url": "https://files.pythonhosted.org/packages/a4/d5/54eadc2080713deeaf1ccfabfbf0ad8b466dc7124494ad1e86ad4dc60468/osm_humanized_opening_hours-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "fd777a8cf66e9e67702332813098e288", "sha256": "83459555bf803c540220628a6c4b7949b07a8b5e3ee476894a4226c4d9e8732d" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "fd777a8cf66e9e67702332813098e288", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26092, "upload_time": "2018-02-13T20:31:44", "url": "https://files.pythonhosted.org/packages/2d/ec/d56a5ac00c4d56a497c295c87716b994167ee1b7495a203f413ee8afd897/osm_humanized_opening_hours-0.4.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ee77cd78ee2c503e4928fa387e3555f7", "sha256": "2347194ecd0304b1b6bfce99174dabcb121598bdf245a1d661fd5d9369d9cc03" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.4.2.tar.gz", "has_sig": false, "md5_digest": "ee77cd78ee2c503e4928fa387e3555f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21891, "upload_time": "2018-02-13T20:31:47", "url": "https://files.pythonhosted.org/packages/58/f8/fc2b864d49a3d6fba1abfc88af2f7024c10e16ac731493880987fd6ab301/osm_humanized_opening_hours-0.4.2.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "d8333d6328b6db5691c2b6c0c2866970", "sha256": "6b65ec0a5eaeefabf3977a25c5c2804cb6e0d10ca6a24cf89e5846af244d6b2b" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d8333d6328b6db5691c2b6c0c2866970", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26867, "upload_time": "2018-03-18T11:49:31", "url": "https://files.pythonhosted.org/packages/14/38/cc5c462b12b2d13d786281a4ce2b766279ec0fea3c1b724a34f0d351e8cd/osm_humanized_opening_hours-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aedca07003b58ed8751c3a8e23b252b2", "sha256": "c6d8c6afb834b1f38771d26e9c6eb776700f61e57306a96534f54ee774855808" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.5.0.tar.gz", "has_sig": false, "md5_digest": "aedca07003b58ed8751c3a8e23b252b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20923, "upload_time": "2018-03-18T11:49:41", "url": "https://files.pythonhosted.org/packages/8b/1f/e34289a568a6c793c96f2d4a5d7d97c1fb16e96a06a190d2aacfed50a5b3/osm_humanized_opening_hours-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "821c85c412d02451ebe466f06c14c60e", "sha256": "831e881f06f1d710fe1618278b5435c761e517a9a39eec7a1eaa33536bdc0996" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "821c85c412d02451ebe466f06c14c60e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30606, "upload_time": "2018-04-24T21:40:17", "url": "https://files.pythonhosted.org/packages/8b/4f/7462056855d731e22a3a332494cd15b4f99232598dd306fe2105134156a0/osm_humanized_opening_hours-0.6.0-py3-none-any.whl" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "08dc42d6452e477777aaa014881107f2", "sha256": "88c9a8d399cc9006688b451addfa5357a1aaacbe62d6acb1e70e543f405a1970" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "08dc42d6452e477777aaa014881107f2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30608, "upload_time": "2018-06-08T15:19:09", "url": "https://files.pythonhosted.org/packages/ec/69/91d1b8adaef9cc5479d310e7dfa8b28cbe31b673ddd61b6189c619aa9c9c/osm_humanized_opening_hours-0.6.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c960a5f182ade5724a54a500ef77b1e", "sha256": "f75728e7a04dce81c5789d64a81e4a44937dabe9c41431fc2166e9e7e6588e67" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.6.1.tar.gz", "has_sig": false, "md5_digest": "4c960a5f182ade5724a54a500ef77b1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24445, "upload_time": "2018-06-08T15:19:11", "url": "https://files.pythonhosted.org/packages/b2/69/bc785de43513ad9ca6739b893c2368a7916d943e687f79157cda266ef44b/osm_humanized_opening_hours-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "c1137f9f7e00289457a39b383b035aff", "sha256": "327e1db0f87bb8242901b977236e6572dc75746547f6196f1bf4d442796dbe72" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.6.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c1137f9f7e00289457a39b383b035aff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30605, "upload_time": "2018-06-14T20:17:27", "url": "https://files.pythonhosted.org/packages/94/ad/59ab62be4988963baf12acea4a47fa4f36f20fcc3baa467ea5105c024933/osm_humanized_opening_hours-0.6.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ca90658a0f127c64edd36a80c8c74b57", "sha256": "0bf6eac962fda54e73260d400ece72d84b857150f6bf6b839b514075b3641120" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.6.2.tar.gz", "has_sig": false, "md5_digest": "ca90658a0f127c64edd36a80c8c74b57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24465, "upload_time": "2018-06-14T20:17:29", "url": "https://files.pythonhosted.org/packages/8a/96/2df7dd71ed3a00cc9ac765d262c229ed83127354e3f789686b34388c7ee2/osm_humanized_opening_hours-0.6.2.tar.gz" } ], "1.0.0a1": [ { "comment_text": "", "digests": { "md5": "b6fd9ff72b50abe6722da3e4c13c6d59", "sha256": "285d9100e762efc6b1c6faaf3b2e46768cde17d56df0a2211cb28372c57e368b" }, "downloads": -1, "filename": "osm_humanized_opening_hours-1.0.0a1-py3-none-any.whl", "has_sig": false, "md5_digest": "b6fd9ff72b50abe6722da3e4c13c6d59", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34796, "upload_time": "2018-06-23T18:59:17", "url": "https://files.pythonhosted.org/packages/28/3e/2023da7e93775a18f6577164adfe9909cbbad5204cd80b488df908f6b48c/osm_humanized_opening_hours-1.0.0a1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ce9c961979594a0d7d90e4d9c764e99", "sha256": "31e37a66067f24d91249004a57f6c74485fbbfd8a662f0b7b17108759d658156" }, "downloads": -1, "filename": "osm_humanized_opening_hours-1.0.0a1.tar.gz", "has_sig": false, "md5_digest": "7ce9c961979594a0d7d90e4d9c764e99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29363, "upload_time": "2018-06-23T18:59:19", "url": "https://files.pythonhosted.org/packages/76/bb/0b05de7a112b449e8a7ced53e33437fe068e1f8187be6ffdaae47701ec19/osm_humanized_opening_hours-1.0.0a1.tar.gz" } ], "1.0.0a2": [ { "comment_text": "", "digests": { "md5": "1bb7df270ac1666e537cce4fd6e2ff86", "sha256": "7fbd4631a83f2c7e84376fdcdfafb848bc359c2b40081a75d92a7bfffd736f85" }, "downloads": -1, "filename": "osm_humanized_opening_hours-1.0.0a2-py3-none-any.whl", "has_sig": false, "md5_digest": "1bb7df270ac1666e537cce4fd6e2ff86", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 31236, "upload_time": "2018-06-25T12:53:16", "url": "https://files.pythonhosted.org/packages/59/79/ce9f5ad8fb2b8212bd0c918ab3484ca6dcea67a35e6225f1b7d037139c36/osm_humanized_opening_hours-1.0.0a2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "220ac4b4ec5c0a734363f4006fe3b078", "sha256": "69fc46303cea277120040b6738f2a2ed523841d20d72edf1c24e892d51eeea94" }, "downloads": -1, "filename": "osm_humanized_opening_hours-1.0.0a2.tar.gz", "has_sig": false, "md5_digest": "220ac4b4ec5c0a734363f4006fe3b078", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27792, "upload_time": "2018-06-25T12:53:18", "url": "https://files.pythonhosted.org/packages/4f/71/4d714873c494bf52c1c161cae67909943e0fd9f04b0ca7d424e0221fed0a/osm_humanized_opening_hours-1.0.0a2.tar.gz" } ], "1.0.0a3": [ { "comment_text": "", "digests": { "md5": "95e8f7ac85c1bc096ad65225c3998383", "sha256": "61bfa1e675a80539f554056aa06d0830f66bec1964e66358a29445f1d2cb1d8d" }, "downloads": -1, "filename": "osm_humanized_opening_hours-1.0.0a3-py3-none-any.whl", "has_sig": false, "md5_digest": "95e8f7ac85c1bc096ad65225c3998383", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34132, "upload_time": "2018-06-28T15:39:29", "url": "https://files.pythonhosted.org/packages/7b/0c/30e55f87649f50e349b3ee4f43f678935c3a40c9d08e60ef6f0d4c2f9629/osm_humanized_opening_hours-1.0.0a3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "afaf8b3a89451048770e632987fba6b0", "sha256": "bfed45c75d87b5aa5ca665d4167881e4a4d09160b08d57595bc2354a3475bbcc" }, "downloads": -1, "filename": "osm_humanized_opening_hours-1.0.0a3.tar.gz", "has_sig": false, "md5_digest": "afaf8b3a89451048770e632987fba6b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31086, "upload_time": "2018-06-28T15:39:31", "url": "https://files.pythonhosted.org/packages/17/a0/aa2b6ac58611d78469eb07bcd857e42cd6147207d68a9fc8c7db269c00fc/osm_humanized_opening_hours-1.0.0a3.tar.gz" } ], "1.0.0a4": [ { "comment_text": "", "digests": { "md5": "a85aabbac3a94dc2f22281cd7ce39cc9", "sha256": "769b53484bab63f0c43b44ed62953615e42eed51dd2d772297c9d79d9bc01829" }, "downloads": -1, "filename": "osm_humanized_opening_hours-1.0.0a4-py3-none-any.whl", "has_sig": false, "md5_digest": "a85aabbac3a94dc2f22281cd7ce39cc9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 35510, "upload_time": "2018-07-10T12:54:06", "url": "https://files.pythonhosted.org/packages/b0/93/5f105b97f184073b6afc1c61c67d391359602ad36ee69fa4b928095979e1/osm_humanized_opening_hours-1.0.0a4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "622795e0cdf8dbfe58d36d813ea58d82", "sha256": "543b695e0fb67f148998320086991f7b6bfff2fd6a5442ade6faebcb37f6acbf" }, "downloads": -1, "filename": "osm_humanized_opening_hours-1.0.0a4.tar.gz", "has_sig": false, "md5_digest": "622795e0cdf8dbfe58d36d813ea58d82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32544, "upload_time": "2018-07-10T12:54:08", "url": "https://files.pythonhosted.org/packages/17/35/4ec7666abf2fbb5fba9dc39060011c8369101a4a1f88a30a55c9bfa02fef/osm_humanized_opening_hours-1.0.0a4.tar.gz" } ], "1.0.0a5": [ { "comment_text": "", "digests": { "md5": "0f5c787e099f7f5db9e19106c83ad1f1", "sha256": "7041be3fb717abaa9d75be0db316748fec43ffcb248fb6dc2264493f80b042ff" }, "downloads": -1, "filename": "osm_humanized_opening_hours-1.0.0a5-py3-none-any.whl", "has_sig": false, "md5_digest": "0f5c787e099f7f5db9e19106c83ad1f1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 35618, "upload_time": "2018-07-15T11:37:44", "url": "https://files.pythonhosted.org/packages/d2/01/11303736b7f6e5766bf195a2996de3c43e9a575af25d7f53842a5859156f/osm_humanized_opening_hours-1.0.0a5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0719a320f1012cd4cf2ae18bca789a02", "sha256": "91fd423d831adb8169df7a9c712b310b8105cef15c45f32482da8bab538929b0" }, "downloads": -1, "filename": "osm_humanized_opening_hours-1.0.0a5.tar.gz", "has_sig": false, "md5_digest": "0719a320f1012cd4cf2ae18bca789a02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32942, "upload_time": "2018-07-15T11:37:46", "url": "https://files.pythonhosted.org/packages/ce/c8/976e94bf768afccfa5f360323c6c5eb8795d56de20f78960145d99476a50/osm_humanized_opening_hours-1.0.0a5.tar.gz" } ], "1.0.0b1": [ { "comment_text": "", "digests": { "md5": "0ad01161b6b79e14bbc8045b0d82ac03", "sha256": "5556fb5ce59a2437a33237e95886918584317d71ea14ecc5f60e0831d6177dfb" }, "downloads": -1, "filename": "osm_humanized_opening_hours-1.0.0b1-py3-none-any.whl", "has_sig": false, "md5_digest": "0ad01161b6b79e14bbc8045b0d82ac03", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 36127, "upload_time": "2018-08-09T19:28:15", "url": "https://files.pythonhosted.org/packages/bc/10/7c55742165b080b573dc786c2b06fabe69c2b51ed254f84d372e4bb38e5c/osm_humanized_opening_hours-1.0.0b1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "504d346ef008abf720368dc1cc4d43e3", "sha256": "28602bf70402963fd84dd3f87fa602662cc4cb81a8c086d8f2b3d0dee8115ab8" }, "downloads": -1, "filename": "osm_humanized_opening_hours-1.0.0b1.tar.gz", "has_sig": false, "md5_digest": "504d346ef008abf720368dc1cc4d43e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33312, "upload_time": "2018-08-09T19:28:17", "url": "https://files.pythonhosted.org/packages/6c/6b/44bb49df29edf0976defed3619ef8a7b5a29c1335b61289f39072deba5e9/osm_humanized_opening_hours-1.0.0b1.tar.gz" } ], "1.0.0b2": [ { "comment_text": "", "digests": { "md5": "ea06f5b679064938988e43d4143221a8", "sha256": "75d44cd9237ba8c79cec4bbc05a6984f165791073b139540932d7c624dd5c54a" }, "downloads": -1, "filename": "osm_humanized_opening_hours-1.0.0b2-py3-none-any.whl", "has_sig": false, "md5_digest": "ea06f5b679064938988e43d4143221a8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 44531, "upload_time": "2018-10-28T14:38:29", "url": "https://files.pythonhosted.org/packages/de/87/15c1a269630e7d26cea59a26550ae4ad93ec32f8a3576be94f14b83d9e01/osm_humanized_opening_hours-1.0.0b2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f51fd7dfa2c4443b33e825c414b3b4f2", "sha256": "8380430cc4342ce1dc3b2aa4c1dea1136aec20ae42101bb4e8cfcfec2aa68486" }, "downloads": -1, "filename": "osm_humanized_opening_hours-1.0.0b2.tar.gz", "has_sig": false, "md5_digest": "f51fd7dfa2c4443b33e825c414b3b4f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36866, "upload_time": "2018-10-28T14:38:32", "url": "https://files.pythonhosted.org/packages/4e/ff/1d8203122a6e4ad8226fc33691ebe0c38a4b7e236e66e6d42f009b5afe9f/osm_humanized_opening_hours-1.0.0b2.tar.gz" } ], "1.0.0b3": [ { "comment_text": "", "digests": { "md5": "76f2cecf1e5c63bee6a2860d377dde33", "sha256": "c0fd975553af2774014c40c64c4f30ae6611027be57aa9dc4c22abb60018f284" }, "downloads": -1, "filename": "osm_humanized_opening_hours-1.0.0b3-py3-none-any.whl", "has_sig": false, "md5_digest": "76f2cecf1e5c63bee6a2860d377dde33", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 44657, "upload_time": "2018-12-02T12:04:49", "url": "https://files.pythonhosted.org/packages/52/3a/87c9f93fcfba1294c8ead004939af41a30b06c26222da6f986c1aac1dde1/osm_humanized_opening_hours-1.0.0b3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "564a80be4b7f199a346a1006d76e0876", "sha256": "41506e6925569b27fe63d3de801c284dab86b3b45d34a63717417429a68c9933" }, "downloads": -1, "filename": "osm_humanized_opening_hours-1.0.0b3.tar.gz", "has_sig": false, "md5_digest": "564a80be4b7f199a346a1006d76e0876", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36903, "upload_time": "2018-12-02T12:04:52", "url": "https://files.pythonhosted.org/packages/90/c8/cc1677eca35d3430bc819c770cd11141c74759e85c4aa9b0acaabd71b6c0/osm_humanized_opening_hours-1.0.0b3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c1137f9f7e00289457a39b383b035aff", "sha256": "327e1db0f87bb8242901b977236e6572dc75746547f6196f1bf4d442796dbe72" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.6.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c1137f9f7e00289457a39b383b035aff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30605, "upload_time": "2018-06-14T20:17:27", "url": "https://files.pythonhosted.org/packages/94/ad/59ab62be4988963baf12acea4a47fa4f36f20fcc3baa467ea5105c024933/osm_humanized_opening_hours-0.6.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ca90658a0f127c64edd36a80c8c74b57", "sha256": "0bf6eac962fda54e73260d400ece72d84b857150f6bf6b839b514075b3641120" }, "downloads": -1, "filename": "osm_humanized_opening_hours-0.6.2.tar.gz", "has_sig": false, "md5_digest": "ca90658a0f127c64edd36a80c8c74b57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24465, "upload_time": "2018-06-14T20:17:29", "url": "https://files.pythonhosted.org/packages/8a/96/2df7dd71ed3a00cc9ac765d262c229ed83127354e3f789686b34388c7ee2/osm_humanized_opening_hours-0.6.2.tar.gz" } ] }