{ "info": { "author": "Scaleway", "author_email": "opensource@scaleway.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Networking" ], "description": "Port Range\n==========\n\nLike Python's standard library `ipaddress package `_, but `for ports `_.\n\nStable release: |release| |versions| |license| |dependencies|\n\nDevelopment: |build| |coverage| |quality|\n\n.. |release| image:: https://img.shields.io/pypi/v/port-range.svg\n :target: https://pypi.python.org/pypi/port-range\n :alt: Last release\n.. |versions| image:: https://img.shields.io/pypi/pyversions/port-range.svg\n :target: https://pypi.python.org/pypi/port-range\n :alt: Python versions\n.. |license| image:: https://img.shields.io/pypi/l/port-range.svg\n :target: https://opensource.org/licenses/BSD-2-Clause\n :alt: Software license\n.. |dependencies| image:: https://requires.io/github/scaleway/port-range/requirements.svg?branch=master\n :target: https://requires.io/github/scaleway/port-range/requirements/?branch=master\n :alt: Requirements freshness\n.. |build| image:: https://travis-ci.org/scaleway/port-range.svg?branch=develop\n :target: https://travis-ci.org/scaleway/port-range\n :alt: Unit-tests status\n.. |coverage| image:: https://codecov.io/gh/scaleway/port-range/branch/develop/graph/badge.svg\n :target: https://codecov.io/github/scaleway/port-range?branch=develop\n :alt: Coverage Status\n.. |quality| image:: https://scrutinizer-ci.com/g/scaleway/port-range/badges/quality-score.png?b=develop\n :target: https://scrutinizer-ci.com/g/scaleway/port-range/?branch=develop\n :alt: Code Quality\n\n\nFeatures\n--------\n\nSupport CIDR-like notation:\n\n.. code-block:: python\n\n >>> from port_range import PortRange\n >>> pr = PortRange('1027/15')\n >>> pr.port_from\n 1027\n >>> pr.port_to\n 1028\n >>> pr.bounds\n (1027, 1028)\n\nParse and normalize port ranges:\n\n.. code-block:: python\n\n >>> pr = PortRange(' 4242-42 ')\n >>> pr.bounds\n (42, 4242)\n >>> str(pr)\n '42-4242'\n\nEnforce strong validation in ``strict`` mode:\n\n.. code-block:: python\n\n >>> PortRange(' 4242-42 ', strict=True)\n Traceback (most recent call last):\n File \"\", line 1, in \n File \"port_range/__init__.py\", line 62, in __init__\n self.port_from, self.port_to = self.parse(port_range)\n File \"port_range/__init__.py\", line 109, in parse\n raise ValueError(\"Invalid reversed port range.\")\n ValueError: Invalid reversed port range.\n\nAccess to decimal-representation properties:\n\n.. code-block:: python\n\n >>> pr = PortRange('1027/15')\n >>> pr.base\n 1027\n >>> pr.prefix\n 15\n >>> pr.mask\n 1\n >>> pr.offset\n 3\n\n\nLicense\n-------\n\nThis software is licensed under the `BSD 2-Clause License`_.\n\n.. _BSD 2-Clause License: https://github.com/scaleway/port-range/blob/develop/LICENSE.rst\n\n\n`Changes for v2.2.0 (2019-09-19) `_\n---------------------------------------------------------------------------------------------------\n\n * Fix Travis build\n * Implement equality and hash operators \n * Fix deprecated collections warning\n\n\n`Full changelog `_.\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/scaleway/port-range", "keywords": "port,network,tcp,cidr,ip,protocol,udp,internet", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "port-range", "package_url": "https://pypi.org/project/port-range/", "platform": "", "project_url": "https://pypi.org/project/port-range/", "project_urls": { "Homepage": "https://github.com/scaleway/port-range" }, "release_url": "https://pypi.org/project/port-range/2.2.0/", "requires_dist": [ "bumpversion ; extra == 'develop'", "isort ; extra == 'develop'", "readme-renderer ; extra == 'develop'", "setuptools (>=24.2.1wheel) ; extra == 'develop'", "coverage ; extra == 'tests'", "nose ; extra == 'tests'", "pycodestyle (>=2.1.0) ; extra == 'tests'", "pylint ; extra == 'tests'" ], "requires_python": ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*", "summary": "Port range with support of CIDR-like notation.", "version": "2.2.0" }, "last_serial": 5855944, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "4cd477649ec5fc809f26ec4f4c7f40cd", "sha256": "8ebbd178adfe175c97879459550118fca767ee19636c929545033cd554f7e7a1" }, "downloads": -1, "filename": "port_range-1.0.0-py2.7.egg", "has_sig": false, "md5_digest": "4cd477649ec5fc809f26ec4f4c7f40cd", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 5755, "upload_time": "2014-12-11T12:49:16", "url": "https://files.pythonhosted.org/packages/38/db/5620b61d155a6002915ddee0d21f2de90eace37d71d715549ca732ee21c5/port_range-1.0.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "749b75347f73b72da3bf4c929a548f24", "sha256": "8d797f3ef25fde86eceb2cbd0644b99f44f45dc430244429f9fcd375e6b160e6" }, "downloads": -1, "filename": "port_range-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "749b75347f73b72da3bf4c929a548f24", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 7734, "upload_time": "2014-12-11T12:49:24", "url": "https://files.pythonhosted.org/packages/d7/60/d9e55a30849d0efae27dac683cd9cfabfc19e8e9c38b23d5ccdacbab2e8b/port_range-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f1bfd8855e664e088175f2b90a5c6a91", "sha256": "90349a00be3c131a93316112bfa3c3ade23a1ef1fafba508c10677f6e0b2daa0" }, "downloads": -1, "filename": "port-range-1.0.0.tar.gz", "has_sig": false, "md5_digest": "f1bfd8855e664e088175f2b90a5c6a91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6187, "upload_time": "2014-12-11T12:48:55", "url": "https://files.pythonhosted.org/packages/b3/46/569541fe543413cb63e6ac1fd803180cf9271881d8a7d5cd576079a37a69/port-range-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "39ca92c518c377e0e6c4db073dc1e814", "sha256": "d4fb4e2cce892e4d45e7c546917bb3f95432c281e79b5ba45eba131353cf25fc" }, "downloads": -1, "filename": "port_range-1.0.1-py2.7.egg", "has_sig": false, "md5_digest": "39ca92c518c377e0e6c4db073dc1e814", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 6042, "upload_time": "2015-03-26T08:34:38", "url": "https://files.pythonhosted.org/packages/7c/b4/7fe33e535bb0f08cb31f80fe6e5f5ab6bb2f8d27426c7fd7b0d2cbb261db/port_range-1.0.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "dcfe5abd5058524b87901832823fdefb", "sha256": "9e0cf460f7791d537e84ef6fba83b0c82b61201667dbf504feb17b1b92c4d4e9" }, "downloads": -1, "filename": "port_range-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "dcfe5abd5058524b87901832823fdefb", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8079, "upload_time": "2015-03-26T08:34:41", "url": "https://files.pythonhosted.org/packages/65/4f/8be988c58165b5730632feeb3f3eafff7a04e91b4b231b553dc5276ea7a8/port_range-1.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2bc2f04c11f1e4e14b35902666dcb1b9", "sha256": "4d9b226c7617450c9c14bac1dc5aab41b44a5acac34328fe3525b8a17184a39a" }, "downloads": -1, "filename": "port-range-1.0.1.tar.gz", "has_sig": false, "md5_digest": "2bc2f04c11f1e4e14b35902666dcb1b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6316, "upload_time": "2015-03-26T08:34:35", "url": "https://files.pythonhosted.org/packages/9e/07/fccb44255612672568e4c1b2b15786368b5157fdd52bfab052c4c4d92580/port-range-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "32d1b7a0080db2c5eb841c43a29cc5e9", "sha256": "670ff0cb5598b39f637046d0befda4bf23c1a83dc4e1e34e46aada8814611a24" }, "downloads": -1, "filename": "port_range-1.0.2-py2.7.egg", "has_sig": false, "md5_digest": "32d1b7a0080db2c5eb841c43a29cc5e9", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 6060, "upload_time": "2015-04-07T09:56:50", "url": "https://files.pythonhosted.org/packages/95/26/039e00e8e10686aa385275e2242d7acbff19faa31ea097f688fb3ce926a8/port_range-1.0.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "55117fb3e2797e8cca892c86815ead23", "sha256": "437104d6ea2cd3dbee981971a0bd9aaa59c8219aa4c1c251175cdb35cf32b5c8" }, "downloads": -1, "filename": "port_range-1.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "55117fb3e2797e8cca892c86815ead23", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8117, "upload_time": "2015-04-07T09:56:53", "url": "https://files.pythonhosted.org/packages/13/42/213072d7e489823cf51d98d8cc84ac1150e6c2aaf65f388cd804890d14a5/port_range-1.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f936ff30d91137f3c62636fc077ec0c", "sha256": "29a108b246e391ac8e0edefffc8f69902aa0e0e97d6f50556a79c22ed80e0c0f" }, "downloads": -1, "filename": "port-range-1.0.2.tar.gz", "has_sig": false, "md5_digest": "6f936ff30d91137f3c62636fc077ec0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6351, "upload_time": "2015-04-07T09:56:47", "url": "https://files.pythonhosted.org/packages/36/88/a004e5a686c059dace7f199ade831c75f1ca69ca22e96fbbcfc2c5be2be6/port-range-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "509e3376209bdc345d0bbbbf3e3b15cb", "sha256": "67407064540be33a950ecb41eb6cde4f8555bb028dbedeb4d3eaf63e8952405e" }, "downloads": -1, "filename": "port_range-1.0.3-py2.7.egg", "has_sig": false, "md5_digest": "509e3376209bdc345d0bbbbf3e3b15cb", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 6208, "upload_time": "2015-04-10T16:33:13", "url": "https://files.pythonhosted.org/packages/2f/be/02605a46f96a24ba9798ca6b8afe37a631549371f49c0accf90b32be5093/port_range-1.0.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "94ae2fb9ba4f47ae93e17590be2c3ea2", "sha256": "abb6b0e8f7437e0de24149f7dad8ecd34f1c6401065859e9f47850326f69712d" }, "downloads": -1, "filename": "port_range-1.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "94ae2fb9ba4f47ae93e17590be2c3ea2", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8315, "upload_time": "2015-04-10T16:33:16", "url": "https://files.pythonhosted.org/packages/af/22/eb81c22855ce07e72119c2f88eea7ba4ab3fc9d15cffb89fdbd892ac18eb/port_range-1.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b83941bfbbd76f2ed41843a31dfbc8f8", "sha256": "e902601b066eca78f39093d63833db1711c57f2c2661d17fad6fb1018e917dc7" }, "downloads": -1, "filename": "port-range-1.0.3.tar.gz", "has_sig": false, "md5_digest": "b83941bfbbd76f2ed41843a31dfbc8f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6528, "upload_time": "2015-04-10T16:33:09", "url": "https://files.pythonhosted.org/packages/ee/c4/691a61bfb37875619a40f449a82aed80cde9ee3cbda239b3d24a2305415b/port-range-1.0.3.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "924c85f8e3c2229c926ea6733dd289d7", "sha256": "3099ee1cf65e0ebf4be1394a8b51afdeaaac281b2b5334490041abec528454d6" }, "downloads": -1, "filename": "port_range-1.0.5-py2.7.egg", "has_sig": false, "md5_digest": "924c85f8e3c2229c926ea6733dd289d7", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 6543, "upload_time": "2015-11-23T13:27:11", "url": "https://files.pythonhosted.org/packages/51/b6/040b6c0264b149aa21462e7ff8db0ca0ede36250688a874f720830d55b78/port_range-1.0.5-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "cbeb7535e8750dc8229fbb97b0a9c6cd", "sha256": "454676f018e5c38524d8e3bf08d90d5f94b85e053c3516b3eef0fa009d4bd1ce" }, "downloads": -1, "filename": "port_range-1.0.5-py2-none-any.whl", "has_sig": false, "md5_digest": "cbeb7535e8750dc8229fbb97b0a9c6cd", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8875, "upload_time": "2015-11-23T13:27:16", "url": "https://files.pythonhosted.org/packages/32/9a/79d15a7bdf41353733e9a98087600deb0d40310a0e920bd9742b87e8aea5/port_range-1.0.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b8f85601f36ebfe9d1203c701811b31", "sha256": "008adbcbb1e0c3dfd43915f6dde296588d3ea76ad5ad43e10c8de528510aabf2" }, "downloads": -1, "filename": "port-range-1.0.5.tar.gz", "has_sig": false, "md5_digest": "6b8f85601f36ebfe9d1203c701811b31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6849, "upload_time": "2015-11-23T13:26:59", "url": "https://files.pythonhosted.org/packages/34/af/b3609612ab8b67479c717d5e3df36968a5402759ac3932f14a92d5fc16c7/port-range-1.0.5.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "fee3ee9e685c72da857bdb9a837a939b", "sha256": "07b9ffd102c894391af6036699f2d9abc84234867fc3ad56e8eb394b7f738e26" }, "downloads": -1, "filename": "port_range-2.0.0-py2.7.egg", "has_sig": false, "md5_digest": "fee3ee9e685c72da857bdb9a837a939b", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 7753, "upload_time": "2016-12-19T07:57:04", "url": "https://files.pythonhosted.org/packages/d4/85/2b1cddbd8c5c7cfab2c81c39666382431d5ac3e0251fe56a55d2de6cc87a/port_range-2.0.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "84cc0395ce9694caa6633d04ea581eb1", "sha256": "d9ef86a954c5a6ad0668181d0ff414e1caa94f11a767ea3dec1a4f57b9a2755a" }, "downloads": -1, "filename": "port_range-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "84cc0395ce9694caa6633d04ea581eb1", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10554, "upload_time": "2016-12-19T07:57:05", "url": "https://files.pythonhosted.org/packages/fc/c7/7b2310ef1cea5e12a0e90d0dedd1886c4c83ee52d621a0747b9e0ac5dcbb/port_range-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e7894b713e3ce52928f1e4be6792c7ef", "sha256": "d003f20e06c0df15cf4f47983f327cad4522c6a8b9cf4aadb42f05aef5a0614f" }, "downloads": -1, "filename": "port-range-2.0.0.tar.gz", "has_sig": false, "md5_digest": "e7894b713e3ce52928f1e4be6792c7ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9374, "upload_time": "2016-12-19T07:57:02", "url": "https://files.pythonhosted.org/packages/70/45/2282b2ed1b75c80205d080ebaf93d717ce0e793c08ceddb69a36a884f07e/port-range-2.0.0.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "727d319662dfa2a7e51991f55c5b048e", "sha256": "f722ec83fbc39e23bb7c2d192acce26a48574111b6e417672a8a1df9e57d5a82" }, "downloads": -1, "filename": "port_range-2.1.0-py2.7.egg", "has_sig": false, "md5_digest": "727d319662dfa2a7e51991f55c5b048e", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 7343, "upload_time": "2017-08-02T09:31:35", "url": "https://files.pythonhosted.org/packages/46/08/8e3f8dd429e266cfd79f808b7b3ff3334de17ecdcd0e8dd6c738ee079864/port_range-2.1.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "d4970b55004e413b609e19fb18587bdb", "sha256": "0423344c79a97b3ff3eee14155bfdb8741830911e2890161960716989b88cdf4" }, "downloads": -1, "filename": "port_range-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d4970b55004e413b609e19fb18587bdb", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9751, "upload_time": "2017-08-02T09:31:36", "url": "https://files.pythonhosted.org/packages/cd/9d/10249726c6d8a2c33b6262c92444549355e78aac61c29d3d3b50d71919b7/port_range-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae86e6cd71af132e74856004fb011a8d", "sha256": "30c1b17902cd3a748c1bac2e4a7b8997990e5a26f372cf76f6d940530de78b29" }, "downloads": -1, "filename": "port-range-2.1.0.tar.gz", "has_sig": false, "md5_digest": "ae86e6cd71af132e74856004fb011a8d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9356, "upload_time": "2017-08-02T09:31:33", "url": "https://files.pythonhosted.org/packages/5a/9e/5db7bed7ceba896050f7ee353aa1c68a42f23c130d7b762eeccb62829e3d/port-range-2.1.0.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "e87afdb4260febe8734324ef93692168", "sha256": "872f97b8086e3eb790cc2a3162b429d58d51d5e96f180d42ac0188def1964086" }, "downloads": -1, "filename": "port_range-2.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e87afdb4260febe8734324ef93692168", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*", "size": 8752, "upload_time": "2019-09-19T12:33:59", "url": "https://files.pythonhosted.org/packages/45/91/455c904ed8cf8d8118dc113bb9e88beedbbde7967fd9f9587b0af6f2aab8/port_range-2.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dfda31f2f24c2b96066c2f7b55558b4d", "sha256": "07731cfd49f366bd2b39ec84db60daf6fc2da0b30a9bc5fc4d7737dc8c3f6f38" }, "downloads": -1, "filename": "port_range-2.2.0-py3.7.egg", "has_sig": false, "md5_digest": "dfda31f2f24c2b96066c2f7b55558b4d", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*", "size": 13670, "upload_time": "2019-09-19T12:34:01", "url": "https://files.pythonhosted.org/packages/9d/56/57f20245c1a2d37d8d126c01b422abd8243a57de88978328cd4733c17340/port_range-2.2.0-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "3627ce51876522c2a39bff5b08d09a01", "sha256": "9f82644e3a2597ad24dcb8bb29688d7af042b4b83f8f476640eb726f30d6ef21" }, "downloads": -1, "filename": "port-range-2.2.0.tar.gz", "has_sig": false, "md5_digest": "3627ce51876522c2a39bff5b08d09a01", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*", "size": 9639, "upload_time": "2019-09-19T12:34:05", "url": "https://files.pythonhosted.org/packages/ea/3b/7ffc718e1555b98d7ba2b22e63435f40f041050d60918b16107d3cb2e377/port-range-2.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e87afdb4260febe8734324ef93692168", "sha256": "872f97b8086e3eb790cc2a3162b429d58d51d5e96f180d42ac0188def1964086" }, "downloads": -1, "filename": "port_range-2.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e87afdb4260febe8734324ef93692168", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*", "size": 8752, "upload_time": "2019-09-19T12:33:59", "url": "https://files.pythonhosted.org/packages/45/91/455c904ed8cf8d8118dc113bb9e88beedbbde7967fd9f9587b0af6f2aab8/port_range-2.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dfda31f2f24c2b96066c2f7b55558b4d", "sha256": "07731cfd49f366bd2b39ec84db60daf6fc2da0b30a9bc5fc4d7737dc8c3f6f38" }, "downloads": -1, "filename": "port_range-2.2.0-py3.7.egg", "has_sig": false, "md5_digest": "dfda31f2f24c2b96066c2f7b55558b4d", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*", "size": 13670, "upload_time": "2019-09-19T12:34:01", "url": "https://files.pythonhosted.org/packages/9d/56/57f20245c1a2d37d8d126c01b422abd8243a57de88978328cd4733c17340/port_range-2.2.0-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "3627ce51876522c2a39bff5b08d09a01", "sha256": "9f82644e3a2597ad24dcb8bb29688d7af042b4b83f8f476640eb726f30d6ef21" }, "downloads": -1, "filename": "port-range-2.2.0.tar.gz", "has_sig": false, "md5_digest": "3627ce51876522c2a39bff5b08d09a01", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*", "size": 9639, "upload_time": "2019-09-19T12:34:05", "url": "https://files.pythonhosted.org/packages/ea/3b/7ffc718e1555b98d7ba2b22e63435f40f041050d60918b16107d3cb2e377/port-range-2.2.0.tar.gz" } ] }