{ "info": { "author": "Andreas Runfalk", "author_email": "andreas@runfalk.se", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "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 :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Utilities" ], "description": "Spans\n=====\n|test-status| |test-coverage| |documentation-status| |pypi-version| |py-versions| |license|\n\nSpans is a pure Python implementation of PostgreSQL's\n`range types `_.\nRange types are convenient when working with intervals of any kind. Every time\nyou've found yourself working with date_start and date_end, an interval may have\nbeen what you were actually looking for.\n\nSpans has successfully been used in production since its first release\n30th August, 2013.\n\n\nInstallation\n------------\nSpans exists on PyPI.\n\n.. code-block:: bash\n\n $ pip install Spans\n\n`Documentation `_ is hosted on Read the\nDocs.\n\n\nExample\n-------\nImagine you are building a calendar and want to display all weeks that overlaps\nthe current month. Normally you have to do some date trickery to achieve this,\nsince the month's bounds may be any day of the week. With Spans' set-like\noperations and shortcuts the problem becomes a breeze.\n\nWe start by importing ``date`` and ``daterange``\n\n.. code-block:: python\n\n >>> from datetime import date\n >>> from spans import daterange\n\nUsing ``daterange.from_month`` we can get range representing January in the year\n2000\n\n.. code-block:: python\n\n >>> month = daterange.from_month(2000, 1)\n >>> month\n daterange(datetime.date(2000, 1, 1), datetime.date(2000, 2, 1))\n\nNow we can calculate the ranges for the weeks where the first and last day of\nmonth are\n\n.. code-block:: python\n\n >>> start_week = daterange.from_date(month.lower, period=\"week\")\n >>> end_week = daterange.from_date(month.last, period=\"week\")\n >>> start_week\n daterange(datetime.date(1999, 12, 27), datetime.date(2000, 1, 3))\n >>> end_week\n daterange(datetime.date(2000, 1, 31), datetime.date(2000, 2, 7))\n\nUsing a union we can express the calendar view.\n\n.. code-block:: python\n\n >>> start_week.union(month).union(end_week)\n daterange(datetime.date(1999, 12, 27), datetime.date(2000, 2, 7))\n\nDo you want to know more? Head over to the\n`documentation `_.\n\n\nUse with Psycopg2\n-----------------\nTo use these range types with Psycopg2 the\n`PsycoSpans `_.\n\n\nMotivation\n----------\nFor a project of mine I started using PostgreSQL's ``tsrange`` type and needed\nan equivalent in Python. These range types attempt to mimick PostgreSQL's\nbehavior in every way. Deviating from it is considered as a bug and should be\nreported.\n\n\nContribute\n----------\nI appreciate all the help I can get! Some things to think about:\n\n- If it's a simple fix, such as documentation or trivial bug fix, please file\n an issue or submit a pull request. Make sure to only touch lines relevant to\n the issue. I don't accept pull requests that simply reformat the code to be\n PEP8-compliant. To me the history of the repository is more important.\n- If it's a feature request or a non-trivial bug, always open an issue first to\n discuss the matter. It would be a shame if good work went to waste because a\n pull request doesn't fit the scope of this project.\n\nPull requests are credited in the change log which is displayed on PyPI and the\ndocumentaion on Read the Docs.\n\n\n.. |test-status| image:: https://travis-ci.org/runfalk/spans.svg\n :alt: Test status\n :scale: 100%\n :target: https://travis-ci.org/runfalk/spans\n\n.. |test-coverage| image:: https://codecov.io/github/runfalk/spans/coverage.svg?branch=master\n :alt: Test coverage\n :scale: 100%\n :target: https://codecov.io/github/runfalk/spans?branch=master\n\n.. |documentation-status| image:: https://readthedocs.org/projects/spans/badge/\n :alt: Documentation status\n :scale: 100%\n :target: http://spans.readthedocs.org/en/latest/\n\n.. |pypi-version| image:: https://badge.fury.io/py/Spans.svg\n :alt: PyPI version status\n :scale: 100%\n :target: https://pypi.python.org/pypi/Spans/\n\n.. |py-versions| image:: https://img.shields.io/pypi/pyversions/Spans.svg\n :alt: Python version\n :scale: 100%\n :target: https://pypi.python.org/pypi/Spans/\n\n.. |license| image:: https://img.shields.io/github/license/runfalk/spans.svg\n :alt: MIT License\n :scale: 100%\n :target: https://github.com/runfalk/spans/blob/master/LICENSE\n\n.. Include changelog on PyPI\n\nChangelog\n=========\nVersion are structured like the following: ``..``. The\nfirst `0.1` release does not properly adhere to this. Unless explicitly stated,\nchanges are made by `Andreas Runfalk `_.\n\n\nVersion 1.1.0\n-------------\nReleased on 2nd June, 2019\n\nThis release changes a lot of internal implementation details that should\nprevent methods from not handling unbounded ranges correctly in the future.\n\n- Added validation to ensure unbounded ranges are never inclusive\n- Changed ``__repr__`` for ranges to be more similar to proper Python syntax.\n The old representation looked like mismatched parentheses. For instance\n ``floatrange((,10.0])`` becomes ``floatrange(upper=10.0, upper_inc=True)``\n- Dropped Python 3.3 support since it's been EOL for almost two years. It\n probably still works but it is no longer tested\n- Fixed pickling of empty range sets not working\n (`bug #14 `_)\n- Fixed ``union()`` not working properly with unbounded\n ranges\n- Fixed lowerly unbounded ranges improperly being lower inclusive\n- Fixed ``startswith()`` and\n ``endsbefore()`` being not handling empty ranges\n\n\nVersion 1.0.2\n-------------\nReleased on 22th February, 2019\n\n- Fixed ``union()`` when ``upper_inc`` is set to ``True``\n (`bug #11 `_,\n `Michael Krahe `_)\n\n\nVersion 1.0.1\n-------------\nReleased on 31st January, 2018\n\n- Fixed ``PartialOrderingMixin`` not using ``__slots__``\n (`bug #10 `_)\n\n\nVersion 1.0.0\n-------------\nReleased on 8th June, 2017\n\n- Added ``NotImplemented`` for ``<<`` and ``>>`` operators when there is a type\n mismatch\n- Added ``|`` operator for unions of ``Range`` and\n ``NotImplemented`` support for ``RangeSet``\n- Added ``&`` operator for intersections of ``Range`` and\n ``NotImplemented`` support for ``RangeSet``\n- Added ``-`` operator for differences of ``Range`` and\n ``NotImplemented`` support for ``RangeSet``\n- Added ``reversed()`` iterator support for ``DiscreteRange``\n- Fixed overlap with empty range incorrectly returns ``True``\n (`bug #7 `_)\n- Fixed issue with ``contains()`` for scalars on unbounded\n ranges\n- Fixed type check for ``right_of()``\n- Fixed type check for ``contains()``\n- Fixed type check for ``union()``\n- Fixed type check for ``intersection()``\n- Fixed type check for ``difference()``\n- Fixed infinite iterators not being supported for\n ``DiscreteRange``\n\n\nVersion 0.5.0\n-------------\nReleased on 16th April, 2017\n\nThis release is a preparation for a stable 1.0 release.\n\n- Fixed comparison operators when working with empty or unbounded ranges. They\n would previously raise exceptions. Ranges are now partially ordered instead of\n totally ordered\n- Added more unit tests\n- Renamed classes to match `PEP8 `_ conventions. This does not apply\n to classes that works on built-in that does not follow `PEP8 `_.\n- Refactored ``left_of()``\n- Refactored ``overlap()``\n- Refactored ``union()``\n\n\nVersion 0.4.0\n-------------\nReleased on 20th March, 2017\n\nThis release is called 0.4.1 on PyPI because I messed up the upload.\n\n- Added new argument to ``from_date()`` for working\n with different kinds of date intervals. The argument accepts a period of either\n ``\"day\"`` (default), ``\"week\"`` (ISO week), ``\"american_week\"`` (starts on\n sunday), ``\"month\"``, ``\"quarter\"`` or ``\"year\"``.\n- Added new methods to ``daterange`` for working with different\n kinds of date intervals:\n ``from_week()``,\n ``from_month()``,\n ``from_quarter()`` and\n ``from_year()``.\n- Added a new class ``PeriodRange`` for working with periods\n like weeks, months, quarters or years. It inherits all methods from\n ``daterange`` and is aware of its own period type. It\n allows things like getting the previous or next week.\n- Fixed ``daterange`` not accepting subclasses of ``date``\n (`bug #5 `_)\n- Fixed some broken doctests\n- Moved unit tests to `pytest `_\n- Removed `Tox `_ config\n- Minor documentation tweaks\n\n\nVersion 0.3.0\n-------------\nReleased on 26th August, 2016\n\n- Added documentation for ``__iter__()``\n- Fixed intersection of multiple range sets not working correctly\n (`bug #3 `_)\n- Fixed iteration of ``RangeSet`` returning an empty range\n when ``RangeSet`` is empty\n (`bug #4 `_)\n\n.. warning::\n This change is backwards incompatible to code that expect range sets to\n always return at least one set when iterating.\n\n\nVersion 0.2.1\n-------------\nReleased on 27th June, 2016\n\n- Fixed ``RangeSet`` not returning ``NotImplemented`` when\n comparing to classes that are not sub classes of ``RangeSet``, pull request\n `#2 `_\n (`Michael Krahe `_)\n- Updated license in ``setup.py`` to follow\n `recommendations `_\n by PyPA\n\n\nVersion 0.2.0\n-------------\nReleased on 22nd December, 2015\n\n- Added ``__len__()`` to range sets\n (`Michael Krahe `_)\n- Added ``contains()`` to range sets\n (`Michael Krahe `_)\n- Added `Sphinx `_ style doc strings to all methods\n- Added proper Sphinx documentation\n- Added unit tests for uncovered parts, mostly error checking\n- Added `wheel `_ to PyPI along with\n source distribution\n- Fixed a potential bug where comparing ranges of different types would result\n in an infinite loop\n- Changed meta class implementation for range sets to allow more mixins for\n custom range sets\n\n\nVersion 0.1.4\n-------------\nReleased on 15th May, 2015\n\n- Added ``.last`` property to\n ``DiscreteRange``\n- Added ``from_date()`` helper to\n ``daterange``\n- Added more unit tests\n- Improved pickle implementation\n- Made type checking more strict for date ranges to prevent ``datetime`` from\n being allowed in ``daterange``\n\n\nVersion 0.1.3\n-------------\nReleased on 27th February, 2015\n\n- Added ``offset()`` to some range types\n- Added ``offset()`` to some range set\n types\n- Added sanity checks to range boundaries\n- Fixed incorrect ``__slots__`` usage, resulting in ``__slots__`` not being used\n on most ranges\n- Fixed pickling of ranges and range sets\n- Simplified creation of new range sets, by the use of the meta class\n ``MetaRangeSet``\n\n\nVersion 0.1.2\n-------------\nReleased on 13th June, 2014\n\n- Fix for inproper version detection on Ubuntu's bundled Python interpreter\n\n\nVersion 0.1.1\n-------------\nReleased on 12th June, 2014\n\n- Readme fixes\n- Syntax highlighting for PyPI page\n\n\nVersion 0.1.0\n-------------\nReleased on 30th August, 2013\n\n- 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": "https://www.github.com/runfalk/spans", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "Spans", "package_url": "https://pypi.org/project/Spans/", "platform": "", "project_url": "https://pypi.org/project/Spans/", "project_urls": { "Homepage": "https://www.github.com/runfalk/spans" }, "release_url": "https://pypi.org/project/Spans/1.1.0/", "requires_dist": [ "codecov ; extra == 'dev'", "pytest (>=3.0) ; extra == 'dev'", "pytest-cov ; extra == 'dev'", "twine ; extra == 'dev'", "Sphinx ; (python_version!='3.3') and extra == 'dev'", "sphinx-rtd-theme ; (python_version!='3.3') and extra == 'dev'" ], "requires_python": "", "summary": "Continuous set support for Python", "version": "1.1.0" }, "last_serial": 5347520, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "7222965c0f981d35a07874b4f8e7cfd7", "sha256": "c399769173b7332e1730487d362ae5e4dee3cbaa2c2b330bc29c540969b22cb4" }, "downloads": -1, "filename": "Spans-0.1.0.tar.gz", "has_sig": false, "md5_digest": "7222965c0f981d35a07874b4f8e7cfd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14469, "upload_time": "2013-08-30T11:12:19", "url": "https://files.pythonhosted.org/packages/af/2c/c236f6db8054680319feb24bf27bed24def6691d0fc59e681549fb62d1fd/Spans-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "4fcc3c4788ec3033f1e00ba76b1eaf7d", "sha256": "8986e389555f18d7c38e0e630a637cb8667ea157c1b208162b0b28f49566ad10" }, "downloads": -1, "filename": "Spans-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4fcc3c4788ec3033f1e00ba76b1eaf7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14506, "upload_time": "2014-06-12T14:52:00", "url": "https://files.pythonhosted.org/packages/66/6a/b473de2930fee02c8c4636b0253c9fa0bdc944b6e0a417666bc01fa29aa8/Spans-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "bbec746778b7c1ef7cf4d3e1e35ce2b2", "sha256": "00eb3304e8f005fab4022d415430f2b7852a13551ebf03138ce810d9dba62c67" }, "downloads": -1, "filename": "Spans-0.1.2.tar.gz", "has_sig": false, "md5_digest": "bbec746778b7c1ef7cf4d3e1e35ce2b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14506, "upload_time": "2014-06-13T11:47:58", "url": "https://files.pythonhosted.org/packages/c9/c3/6538c7398a6f844affa4b3c875d1f17879a78e9ace5fbb000f342f30bc41/Spans-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "5db492f8c32d65d30c9ff5194606089f", "sha256": "00759385c902821f7b02b0b3dde4d7b50cf7bc936a5180897aa99389e6c545cc" }, "downloads": -1, "filename": "Spans-0.1.3.tar.gz", "has_sig": false, "md5_digest": "5db492f8c32d65d30c9ff5194606089f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16266, "upload_time": "2015-02-27T17:38:49", "url": "https://files.pythonhosted.org/packages/97/cb/7caf390bf8e644dee0e4283a2df48e382924b90929e00b5d8716b28ffb5c/Spans-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "3c6e9f8deaeebb89769a648b0144ad97", "sha256": "ac6ecedc644d0354ce8e588a911f9d9969aefb68a96caef43b922fa823fc3567" }, "downloads": -1, "filename": "Spans-0.1.4.tar.gz", "has_sig": false, "md5_digest": "3c6e9f8deaeebb89769a648b0144ad97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17022, "upload_time": "2015-05-15T18:33:29", "url": "https://files.pythonhosted.org/packages/44/82/be4c9e53c175063ed76f8bcee26c0ab65df75307848f5475dbf29f35638e/Spans-0.1.4.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "2ca2e03edf165fece9f21b8754f30849", "sha256": "8f090cbad7ac727e55fcb20b3e20dea26c4948186f38796e0dc3815cb110ac2c" }, "downloads": -1, "filename": "Spans-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2ca2e03edf165fece9f21b8754f30849", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 20853, "upload_time": "2015-12-22T16:54:45", "url": "https://files.pythonhosted.org/packages/c9/8e/1bec791b858295cbf82468bea88755c74ba090d866a7909a9a2785774576/Spans-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2a0a83d2b038cdbb7ab63a0c32edf661", "sha256": "7b92144b4818f83e246101f9fe7523325d564ce0fb094089394a1b5f13b87933" }, "downloads": -1, "filename": "Spans-0.2.0.tar.gz", "has_sig": false, "md5_digest": "2a0a83d2b038cdbb7ab63a0c32edf661", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25293, "upload_time": "2015-12-22T16:54:36", "url": "https://files.pythonhosted.org/packages/44/c5/911e28360881005c80aa3e43228de32929a7363871b36f97c04498da05ff/Spans-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "1198b6e879579d8c9976dba98e3ec421", "sha256": "e9116efe10a00299ad20d9442752db2975175506f3b323e21f7c29b00406d5b4" }, "downloads": -1, "filename": "Spans-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1198b6e879579d8c9976dba98e3ec421", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19712, "upload_time": "2016-06-27T08:44:12", "url": "https://files.pythonhosted.org/packages/26/e8/f2216a62ffec7257171d427edae9ac1aa9db86ae71e396f2a596cdb42347/Spans-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "390c2d0694839576eff8843d894e5c88", "sha256": "738079f8d4238791e5ae0bfd06b65a9045c06dfabebd3328dd869f676af46dc0" }, "downloads": -1, "filename": "Spans-0.2.1.tar.gz", "has_sig": false, "md5_digest": "390c2d0694839576eff8843d894e5c88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27754, "upload_time": "2016-06-27T08:44:17", "url": "https://files.pythonhosted.org/packages/38/f3/61961474db3394359ac99155d4265d4b85470e2cb98429402f767fbbee3b/Spans-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "b2069ecdcb1c575cb40b2574c051d60a", "sha256": "bb51e47d31ba6f3f2dde148dcd074fe4f94f97e32d221a6821a8caaa7ed1c1d7" }, "downloads": -1, "filename": "Spans-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b2069ecdcb1c575cb40b2574c051d60a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 20442, "upload_time": "2016-08-26T12:09:51", "url": "https://files.pythonhosted.org/packages/81/e8/44442f129124a44ac33741fa07c063268ce6982e198362a6464b14653ba9/Spans-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15119bb14fc92fea754ea99104879c02", "sha256": "d17d36dc240525e97eae26ff68b63b8a9dc6581e4668581f6e189c24ea50f201" }, "downloads": -1, "filename": "Spans-0.3.0.tar.gz", "has_sig": false, "md5_digest": "15119bb14fc92fea754ea99104879c02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28714, "upload_time": "2016-08-26T12:09:48", "url": "https://files.pythonhosted.org/packages/74/73/2d0192f38a8caad9ab439210ef943825312902cc9280c9b73a196b5be719/Spans-0.3.0.tar.gz" } ], "0.4.0": [], "0.4.1": [ { "comment_text": "", "digests": { "md5": "56414010a5505b08f760029f61096d24", "sha256": "e3948d4cd8a45c930852849edd9c622fb7a9741a610006b63a7f6e7099553188" }, "downloads": -1, "filename": "Spans-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "56414010a5505b08f760029f61096d24", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23990, "upload_time": "2017-03-20T15:51:51", "url": "https://files.pythonhosted.org/packages/c5/d7/75653eb05fc2be10b259765adfedf7cfd7c8dadb23beee2a855b8143bdb4/Spans-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8c9b9a83f35c1f0a6651d76bffb7ee22", "sha256": "56ff77f5904f146402e40995b65c2a47a89e06ea641ac73e2f9308c939cc84d3" }, "downloads": -1, "filename": "Spans-0.4.1.tar.gz", "has_sig": false, "md5_digest": "8c9b9a83f35c1f0a6651d76bffb7ee22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29145, "upload_time": "2017-03-20T15:51:52", "url": "https://files.pythonhosted.org/packages/f1/4b/99390a5805ef01475e771d99ca30e4180ef80d20863dff147ce41743bd34/Spans-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "a84ba7ed47414db7ae5bb66b35528197", "sha256": "d30275b221aa26558ebb3ba65b5ab1903f6ea16ec59e18e1e553e8f65f33d9de" }, "downloads": -1, "filename": "Spans-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a84ba7ed47414db7ae5bb66b35528197", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25676, "upload_time": "2017-04-16T10:55:00", "url": "https://files.pythonhosted.org/packages/8b/e5/8a5ab61be3cc8e454465fb009aa8fe85b8bac9d0e0c976b6e79c51f23ab3/Spans-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3a207308e2b3ef9516e8bedfecac56f6", "sha256": "ae7c8a253245851bb1d6047e799e8afbcd7b43ddba4a65979e5b20d20cb0b6ad" }, "downloads": -1, "filename": "Spans-0.5.0.tar.gz", "has_sig": false, "md5_digest": "3a207308e2b3ef9516e8bedfecac56f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42861, "upload_time": "2017-04-16T10:55:02", "url": "https://files.pythonhosted.org/packages/6e/27/ab415178147b3ecb5d42bc82996d09eaa21ad86e93b2006de872eae541df/Spans-0.5.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "7457706f78f4e95fc2883743bc826c09", "sha256": "4e3ec69a87982ba673780390155d5b200200df5161fcf9d992461b478e22520d" }, "downloads": -1, "filename": "Spans-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7457706f78f4e95fc2883743bc826c09", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26600, "upload_time": "2017-06-08T08:22:29", "url": "https://files.pythonhosted.org/packages/66/f1/2aa8d4fb32050d921e6d965dcb35c4df635ac5881c400ed202f342e8bd34/Spans-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5002695b5c14eff343291d42ac1c038f", "sha256": "5ea9bcea02e28856ee754267530f89d09cd8d7897fa85aa4b65fb435ecf499bd" }, "downloads": -1, "filename": "Spans-1.0.0.tar.gz", "has_sig": false, "md5_digest": "5002695b5c14eff343291d42ac1c038f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44654, "upload_time": "2017-06-08T08:22:30", "url": "https://files.pythonhosted.org/packages/ba/9d/cb78b57e46248da2928a2b82416044a952e00ac511181c7937d480d0c919/Spans-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "182779f34fc90196212a04c098de7fcd", "sha256": "a12de0a4f57551eda4daad963745f9a90b39a90698c051e1c67631ad81927f4d" }, "downloads": -1, "filename": "Spans-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "182779f34fc90196212a04c098de7fcd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26748, "upload_time": "2018-01-31T09:48:23", "url": "https://files.pythonhosted.org/packages/b1/8c/dc9efa661222d13ceb8d29e4bda502360bf2b8ac3bbfddd15e0494efa114/Spans-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f99903127f6c09c6384a8808cbe2a03a", "sha256": "78e95c08f5dc2653f86b173b425411456c8219218fb6a22805523ee64ff06957" }, "downloads": -1, "filename": "Spans-1.0.1.tar.gz", "has_sig": false, "md5_digest": "f99903127f6c09c6384a8808cbe2a03a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45013, "upload_time": "2018-01-31T09:48:24", "url": "https://files.pythonhosted.org/packages/4f/00/8952775aac4fce5b38f93422abce9256bb15d8c7944871774f53bee4c1b4/Spans-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "d45f3c5b9da749d3adfd08bac0b6e4c3", "sha256": "bfd9e5a1b73161c1e9b453e27e4be3260384fda6fba9c2d40eaf0efe836f01dd" }, "downloads": -1, "filename": "Spans-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d45f3c5b9da749d3adfd08bac0b6e4c3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 22602, "upload_time": "2019-02-22T18:35:56", "url": "https://files.pythonhosted.org/packages/4c/14/224609dc9bf553be12c2d79f529dd16067326986a891d5e7c5cf1261e785/Spans-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ea77d3f316794a28949366104563dfb2", "sha256": "98a745ea894878600aab6ca4dbea2b1f0f9851215117fd02ce39100b726b75dc" }, "downloads": -1, "filename": "Spans-1.0.2.tar.gz", "has_sig": false, "md5_digest": "ea77d3f316794a28949366104563dfb2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44160, "upload_time": "2019-02-22T18:35:58", "url": "https://files.pythonhosted.org/packages/92/69/46ad428e08462a02511b88c8fef78a08b7c995162b8cdc34b5462bf78c3f/Spans-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "303c6cce80175bef6f1ad710f7999d8c", "sha256": "ffb95c5a81761d529a42781c933af452f8e6a0ee2365028deacacde62285e5b4" }, "downloads": -1, "filename": "Spans-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "303c6cce80175bef6f1ad710f7999d8c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24140, "upload_time": "2019-06-01T23:45:54", "url": "https://files.pythonhosted.org/packages/31/cf/0f88db3342e82d1f48772aa9d4986f405fd02a57b0dc1c6633bb04e0e70f/Spans-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a8387c8b2517786a09cf2b570f7f8235", "sha256": "d6d17fe12adc2b81a3c5edf38a37f118d3bebd13a8a5614369c6d04efde014a0" }, "downloads": -1, "filename": "Spans-1.1.0.tar.gz", "has_sig": false, "md5_digest": "a8387c8b2517786a09cf2b570f7f8235", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42798, "upload_time": "2019-06-01T23:45:56", "url": "https://files.pythonhosted.org/packages/71/b1/c83a5c9ba277567db2961c7b8fe12f21f04a8321979af670b1fa643e613d/Spans-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "303c6cce80175bef6f1ad710f7999d8c", "sha256": "ffb95c5a81761d529a42781c933af452f8e6a0ee2365028deacacde62285e5b4" }, "downloads": -1, "filename": "Spans-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "303c6cce80175bef6f1ad710f7999d8c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24140, "upload_time": "2019-06-01T23:45:54", "url": "https://files.pythonhosted.org/packages/31/cf/0f88db3342e82d1f48772aa9d4986f405fd02a57b0dc1c6633bb04e0e70f/Spans-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a8387c8b2517786a09cf2b570f7f8235", "sha256": "d6d17fe12adc2b81a3c5edf38a37f118d3bebd13a8a5614369c6d04efde014a0" }, "downloads": -1, "filename": "Spans-1.1.0.tar.gz", "has_sig": false, "md5_digest": "a8387c8b2517786a09cf2b570f7f8235", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42798, "upload_time": "2019-06-01T23:45:56", "url": "https://files.pythonhosted.org/packages/71/b1/c83a5c9ba277567db2961c7b8fe12f21f04a8321979af670b1fa643e613d/Spans-1.1.0.tar.gz" } ] }