{ "info": { "author": "Inti Ocean", "author_email": "me@inti.co", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License" ], "description": "=======\nPyinter\n=======\n..\n\n |latestversion| |downloads| |masterstatus| |mastercover| |issuecount|\n\n..\n\nPyinter is a small and simple library written in Python for performing interval and discontinous range arithmetic.\n\n.. code-block:: pycon\n\n >>> pyinter.openclosed(1.1, 12)\n (1.1, 12]\n >>> discontinous_range = pyinter.IntervalSet([pyinter.closedopen(5, 10), pyinter.closed(22, 23)])\n >>> discontinous_range\n IntervalSet([5, 10), [22, 23])\n >>> 7 in discontinous_range\n True\n >>> 10 in discontinous_range\n False # This isn't in the range as it is an open interval which doesn't include its end points\n\n\nFeatures\n--------\n\n- interval objects which can be\n\n - unioned\n - intersected\n - easily constructed using helper functions: *open, closed, openclosed and closedopen*\n\n- interval sets which can be\n\n - unioned\n - intersected\n\n\nInstallation\n------------\n\nTo install Pyinter, simply:\n\n.. code-block:: bash\n\n $ pip install pyinter\n\nOr, if you absolutely must:\n\n.. code-block:: bash\n\n $ easy_install pyinter\n\nBut I'm told you really shouldn't do that.\n\n\nDocumentation\n-------------\n\nDocumentation is available at http://pyinter.readthedocs.org.\n\n\nContribute\n----------\nContributions or suggestions for improvements are welcome.\n\n\n.. |masterstatus| image:: http://img.shields.io/travis/intiocean/pyinter/master.svg?style=flat\n :target: https://travis-ci.org/intiocean/pyinter\n :alt: Release Build Status\n\n.. |developstatus| image:: http://img.shields.io/travis/intiocean/pyinter/develop.svg?style=flat\n :target: https://travis-ci.org/intiocean/pyinter\n :alt: Development Build Status\n\n.. |latestversion| image:: http://img.shields.io/pypi/v/pyinter.svg?style=flat\n :target: https://pypi.python.org/pypi/pyinter\n :alt: Latest Version\n\n.. |downloads| image:: http://img.shields.io/pypi/dw/pyinter.svg?style=flat\n :target: https://pypi.python.org/pypi/pyinter\n :alt: Downloads per Week\n\n.. |mastercover| image:: http://img.shields.io/coveralls/intiocean/pyinter/master.svg?style=flat\n :target: https://travis-ci.org/intiocean/pyinter\n :alt: Release Test Coverage\n\n.. |developcover| image:: http://img.shields.io/coveralls/intiocean/pyinter/develop.svg?style=flat\n :target: https://travis-ci.org/intiocean/pyinter\n :alt: Development Test Coverage\n\n.. |issuecount| image:: http://img.shields.io/github/issues/intiocean/pyinter.svg?style=flat\n :target: https://github.com/intiocean/pyinter/issues\n :alt: Github Issues\n\n\n.. :changelog:\n\nRelease History\n---------------\n0.2.0 (2019-05-14)\n++++++++++++++++++\n- Fix: The interval of 2 identical numbers equals the empty set if one of the boundaries is open #20\n- Improvement: Add lower and upper properties and replace method which works similarly to date.replace #19\n\n0.1.9 (2015-08-01)\n++++++++++++++++++\n- Fix empty interval types so that empty intervals could be compared with other intervals\n- Add method `copy()` to create new `Interval` instances with the same bounds and values as the `Interval` being copied\n- Fix method `overlaps` on `Interval` and add tests for it!\n\n0.1.8 (2015-07-14)\n++++++++++++++++++\n- Fix formatting in README.rst as pypi isn't rendering it properly.\n\n0.1.7 (2015-07-14)\n++++++++++++++++++\n- Fix `|` and `&` in the documentation.\n- Implement subtraction of `Interval`'s and `IntervalSet`'s\n- Add method `empty()` to detect empty `Interval` objects.\n- Fix, each infinity should always equal itself.\n\n0.1.6 (2014-05-11)\n++++++++++++++++++\n- Add a complement function\n- Fix bug with using & and | for `union()` and `intersection()`\n- Increase test coverage!\n\n0.1.5 (2013-12-13)\n++++++++++++++++++\n- Fix the `__all__` list so that you can `from pyinter import *`.\n- Change classes to new style classes (inheriting from object)\n- Added an `add()` function to the `IntervalSet` class. This will add (union) an Interval inplace. (similarly to `set().add()`)\n- The optional iterable of Interval objects passed when initialising an `IntervalSet` is now added Interval by Interval so that initialising with overlapping intervals works as expected.\n\n0.1.4 (2013-11-16)\n++++++++++++++++++\n- Fix formatting in HISTORY.rst which was stopping the pypi page rendering it.\n\n0.1.3 (2013-11-16)\n++++++++++++++++++\n- Removed \\*.md from the MANIFEST file as it warns when installing that no files matching \\*.md are found.\n- Fix allowing an IntervalSet to be initialised with a generator.\n\n0.1.2 (2013-10-12)\n++++++++++++++++++\n- Fixed the rendering of the README on pypi (hopefully!) by converting it from a .md file to a .rst file.\n\n0.1.1 (2013-10-09)\n++++++++++++++++++\n- Adding Manifest file to fix the pypi release. This was broken because the README.md was not being included in the source distribution but setup.py had a reference to this file and therefore failed to run.\n\n0.1.0 (2013-07-03)\n++++++++++++++++++\n- Initial release\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/intiocean/pyinter", "keywords": "interval range discontinuous-range union intersection", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pyinter", "package_url": "https://pypi.org/project/pyinter/", "platform": "", "project_url": "https://pypi.org/project/pyinter/", "project_urls": { "Homepage": "https://github.com/intiocean/pyinter" }, "release_url": "https://pypi.org/project/pyinter/0.2.0/", "requires_dist": null, "requires_python": "", "summary": "An interval package for Python.", "version": "0.2.0" }, "last_serial": 5268197, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "f4120ef3ca96110b2c6ec50e0cbcf290", "sha256": "f08994e141ed908fad005c7a5d33eafa659514fd65f27aaf51e1f1935b793519" }, "downloads": -1, "filename": "pyinter-0.1.tar.gz", "has_sig": false, "md5_digest": "f4120ef3ca96110b2c6ec50e0cbcf290", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5230, "upload_time": "2013-07-03T17:09:06", "url": "https://files.pythonhosted.org/packages/71/2a/8cdbe7a345ca543baff27a1b509e7db92fbd14e7a69586566a066a0611d3/pyinter-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "90910e8e7f8352011e2162fd4b19e933", "sha256": "12f0f2a2472ab2abe21a822ebe8149c216f9150d1a8275c9f56f4156bdc2bc99" }, "downloads": -1, "filename": "pyinter-0.1.1.tar.gz", "has_sig": false, "md5_digest": "90910e8e7f8352011e2162fd4b19e933", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12513, "upload_time": "2013-10-09T21:13:59", "url": "https://files.pythonhosted.org/packages/11/0e/4422c6519e4b35de6e28ae25284fe33eca3988668921d0abf02ece37eba3/pyinter-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "114c62e400e5f22c3e17d42011a6274e", "sha256": "f67c2ea6ab94f279aa34bf93267abdcbe10bb2338d7ece6dcdd08df0a58594f1" }, "downloads": -1, "filename": "pyinter-0.1.2.tar.gz", "has_sig": false, "md5_digest": "114c62e400e5f22c3e17d42011a6274e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12567, "upload_time": "2013-10-12T16:49:49", "url": "https://files.pythonhosted.org/packages/72/b3/abe49c9bd43000aea85b7146c1154c04262047574af0c3a72c7e43fc314f/pyinter-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "f6c4723216b4a8aefd8af15907040c41", "sha256": "fb71e916cd108a1d7bab6b4c576b7b9a82e5c1687330113ea0f44ea7c4d61568" }, "downloads": -1, "filename": "pyinter-0.1.3.tar.gz", "has_sig": false, "md5_digest": "f6c4723216b4a8aefd8af15907040c41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13026, "upload_time": "2013-11-16T23:00:28", "url": "https://files.pythonhosted.org/packages/a2/1e/2b908efe4820720cc31f8c26c9a764385ca41992804972b5748f69cb7aaf/pyinter-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "7b159d7861c49fdf5c7fb9b0adfc6659", "sha256": "6057de8cbd862bf6e3eff9efd8452be8cfeaf4cdafb2964cf7d2280150a089ab" }, "downloads": -1, "filename": "pyinter-0.1.4.tar.gz", "has_sig": false, "md5_digest": "7b159d7861c49fdf5c7fb9b0adfc6659", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13052, "upload_time": "2013-11-17T00:17:56", "url": "https://files.pythonhosted.org/packages/30/32/b848364823adb42f8b9e5448750938d2b89f874706ee3ad4e800a4017bbd/pyinter-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "3dd9427c4362af0f1fd05fc91ae4d04f", "sha256": "b12f982eaa78b3561704e2583cf926a282e0ad8e8dcb8b25d94eb6f6540920b2" }, "downloads": -1, "filename": "pyinter-0.1.5.tar.gz", "has_sig": false, "md5_digest": "3dd9427c4362af0f1fd05fc91ae4d04f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13857, "upload_time": "2013-12-13T07:36:57", "url": "https://files.pythonhosted.org/packages/99/b9/44a3eefd85530dab43180a3929254c89dc3b01d4de17648ff0de6be4ca8b/pyinter-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "c09250265d40c2f173d38cba0732651a", "sha256": "58848592f41e4272aa7d2ec8a5699ebbc4db9d066efbafd4596eb695c91ca41c" }, "downloads": -1, "filename": "pyinter-0.1.6.tar.gz", "has_sig": false, "md5_digest": "c09250265d40c2f173d38cba0732651a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15451, "upload_time": "2014-05-11T17:48:11", "url": "https://files.pythonhosted.org/packages/71/97/d79353d35ec7c4169764934b3b1c7407f5c9bcc7996d4c1e7baa148e754c/pyinter-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "2618381098f0d62becc249bf1f213503", "sha256": "996c17fd04bc1a5e01a6060385e7cc6234e8b6125b34357ba4a80727169a754e" }, "downloads": -1, "filename": "pyinter-0.1.7.tar.gz", "has_sig": false, "md5_digest": "2618381098f0d62becc249bf1f213503", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17944, "upload_time": "2015-07-13T20:56:14", "url": "https://files.pythonhosted.org/packages/e9/14/e1d3966f3e18e4ce305fbb96cc38f9743195b6dea311bb22b46bde9786dd/pyinter-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "1c69eda90a4ac501338e4ac533bd95b0", "sha256": "3080ac14c78d4537c3e2741865ab05848d7f221afb6aa828305582c40ac2e1ab" }, "downloads": -1, "filename": "pyinter-0.1.8.tar.gz", "has_sig": false, "md5_digest": "1c69eda90a4ac501338e4ac533bd95b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18001, "upload_time": "2015-07-13T21:15:09", "url": "https://files.pythonhosted.org/packages/4a/70/e72404a2a18c6524e21c229d73f82f78a3857bd3f0cf670f26b941b5f5e1/pyinter-0.1.8.tar.gz" } ], "0.1.9": [], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a6a02fd410ca0f551f1751c9a7449f5f", "sha256": "c0c1717bef2b8c781776f97861133b27224d558169aa4bd2845d26868d7957bd" }, "downloads": -1, "filename": "pyinter-0.2.0.tar.gz", "has_sig": false, "md5_digest": "a6a02fd410ca0f551f1751c9a7449f5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20338, "upload_time": "2019-05-14T15:57:07", "url": "https://files.pythonhosted.org/packages/3b/29/1c8a681f14ace0adc782064af97e2476c80e01ee14f570dec6f1b66f869b/pyinter-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a6a02fd410ca0f551f1751c9a7449f5f", "sha256": "c0c1717bef2b8c781776f97861133b27224d558169aa4bd2845d26868d7957bd" }, "downloads": -1, "filename": "pyinter-0.2.0.tar.gz", "has_sig": false, "md5_digest": "a6a02fd410ca0f551f1751c9a7449f5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20338, "upload_time": "2019-05-14T15:57:07", "url": "https://files.pythonhosted.org/packages/3b/29/1c8a681f14ace0adc782064af97e2476c80e01ee14f570dec6f1b66f869b/pyinter-0.2.0.tar.gz" } ] }