{ "info": { "author": "Robert Grant", "author_email": "rhgrant10@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only" ], "description": "=========\nTSPLIB 95\n=========\n\n\n.. image:: https://img.shields.io/pypi/v/tsplib95.svg\n :target: https://pypi.python.org/pypi/tsplib95\n\n.. image:: https://img.shields.io/travis/rhgrant10/tsplib95.svg\n :target: https://travis-ci.org/rhgrant10/tsplib95\n\n.. image:: https://readthedocs.org/projects/tsplib95/badge/?version=latest\n :target: https://tsplib95.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n\nTSPLIB 95 is a library for working with TSPLIB 95 files.\n\n* Free software: Apache Software License 2.0\n* Documentation: https://tsplib95.readthedocs.io.\n\nFor now...\n\n* the documentation is not complete\n* only 3.6+ is supported\n\nFeatures\n--------\n\n- read and use the TSPLIB95 file format like a boss\n- easily convert problems into ``networkx.Graph`` instances\n- supports and implements the following ``EDGE_WEIGHT_TYPE`` s\n\n - ``EXPLICIT``\n - ``EUC_2D``\n - ``EUC_3D``\n - ``MAX_2D``\n - ``MAX_3D``\n - ``MAN_2D``\n - ``MAN_3D``\n - ``CEIL_2D``\n - ``GEO``\n - ``ATT``\n - ``XRAY1``\n - ``XRAY2``\n\n- supports the following ``EDGE_WEIGHT_FORMAT`` s\n\n - ``FULL_MATRIX``\n - ``UPPER_ROW``\n - ``LOWER_ROW``\n - ``UPPER_DIAG_ROW``\n - ``LOWER_DIAG_ROW``\n - ``UPPER_COL``\n - ``LOWER_COL``\n - ``UPPER_DIAG_COL``\n - ``LOWER_DIAG_COL``\n\n- supports ``SPECIAL`` ``FUNCTION`` edge weights too\n\nIt also has a CLI program to print a tabular summary of one or more TSPLIB95 files. No idea why anyone would want that, but there you have it.\n\n\nCredits\n-------\n\nSee TSPLIB_ for original details, including file format specification, C++ code, and sample problems.\n\nThis package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage\n\n.. _TSPLIB: https://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/index.html\n\n\n=======\nHistory\n=======\n\n0.6.0 (2019-10-19)\n------------------\n\n* Changes to the conversion into a ``networkx.Graph``:\n\n * Depot, demand, and fixed edge data have been removed from graph metadata.\n Depot and demand data is now associated with individual nodes like fixed edge\n data was (and still is).\n * Add a ``normalized`` parameter to allow nodes to be renamed as zero-index\n integers when obtaining a ``networkx.Graph``.\n\n* Depots, demands, node coordinates, and display data fields now default to\n empty containers rather than ``None``.\n* Fixed twine/PyPI warning about long description mime type\n\n\n0.5.0 (2019-10-02)\n------------------\n\n* New loaders that take just the text - no file necessary!\n* Invalid keywords now result in a ``ParsingError``\n* Update the CLI to catch and gracefully handle ``ParsingError``\n* Fixed a bug when trying to amend an exception with line information\n\n\n0.4.0 (2019-09-21)\n------------------\n\n* All expected parsing errors are now raised as ``ParsingError`` rather than the base ``Exception`` type.\n* Fix name of distance paramter to distances.geographical. Previously it was \"diameter\" but was used as a radius. It is now \"radius\".\n* Relax restriction on networkx version (now ``~=2.1``)\n* Add documentation for each problem field\n* Other minor documentation changes\n* Add offical 3.7 support\n* Add missing history entry for v0.3.3\n* Remove some dead code\n\n0.3.3 (2019-03-24)\n------------------\n\n* Fix parsing bug for key-value lines whose value itself contains colons\n\n0.3.2 (2018-10-07)\n------------------\n\n* Fix bug in ``Problem.is_complete`` that produced a ``TypeError`` when run\n* Fix bug in ``Problem.is_depictable`` that produced a ``TypeError`` when run\n* Fix bug in ``Problem.get_display`` that produced an ``AttributeError`` when run\n* Added some unit tests for the ``Problem`` class\n* Added some unit tests for the ``parser`` module\n\n0.3.1 (2018-10-03)\n------------------\n\n* Fix bug in ``Problem.is_weighted`` that caused problems with defined nodes\n coords to use the unit distance function\n\n0.3.0 (2018-08-12)\n------------------\n\n* Added XRAY1 and XRAY2 implementations\n* Simplified some of the matrix code\n\n0.2.0 (2018-08-12)\n------------------\n\n* Implement column-wise matrices\n* Add a utiltiy for loading an unknown file\n* Fix bug in the ATT distance function\n* Update the CLI to use the models\n* Document a bunch-o-stuff\n* Switch to RTD sphinx theme\n* Move most utilties into utils\n\n0.1.0 (2018-08-12)\n------------------\n\n* First release on PyPI.\n\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/rhgrant10/tsplib95", "keywords": "tsplib95", "license": "Apache Software License 2.0", "maintainer": "", "maintainer_email": "", "name": "tsplib95", "package_url": "https://pypi.org/project/tsplib95/", "platform": "", "project_url": "https://pypi.org/project/tsplib95/", "project_urls": { "Homepage": "https://github.com/rhgrant10/tsplib95" }, "release_url": "https://pypi.org/project/tsplib95/0.6.0/", "requires_dist": [ "Click (>=6.0)", "networkx (~=2.1)" ], "requires_python": "", "summary": "TSPLIB95 works with TSPLIB95 files.", "version": "0.6.0" }, "last_serial": 6001848, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "85d6d0d067851f82808d9d703406f65b", "sha256": "248906539c77189e7ccfaa7b6827eb6d429795f243f34dc2f1ba2029eaa214dd" }, "downloads": -1, "filename": "tsplib95-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "85d6d0d067851f82808d9d703406f65b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13144, "upload_time": "2018-08-12T20:11:12", "url": "https://files.pythonhosted.org/packages/5e/36/8865096750850e1c3f848525cc918aabca89f2f1eb9de4bdfbbeb9c9b2c7/tsplib95-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5f088443b85ef6cd92269c52eaf11301", "sha256": "38eb2aaca3f4116ecafe3c599b38fb8f71e59ac6144150fe1b85f1eb2c959ad4" }, "downloads": -1, "filename": "tsplib95-0.1.0.tar.gz", "has_sig": false, "md5_digest": "5f088443b85ef6cd92269c52eaf11301", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21657, "upload_time": "2018-08-12T20:11:14", "url": "https://files.pythonhosted.org/packages/52/7d/7cdb3bd371361010557a7ccb3f02e120ab582836e020fdfb0c31afd6e7bd/tsplib95-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "1d3bd2f26ca181b3c513354f00ebb719", "sha256": "43e8844db63f97911f52be27e98fd8c56a0cee7a174e8cf986bc49082d3f56cb" }, "downloads": -1, "filename": "tsplib95-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1d3bd2f26ca181b3c513354f00ebb719", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13018, "upload_time": "2018-08-12T23:31:41", "url": "https://files.pythonhosted.org/packages/13/5e/2fa936f2f395f6d58ef1d26716414faaa20f291341d3cca7c8e1b9b83865/tsplib95-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "30dab5f3cb82c3282c9601545d331877", "sha256": "81273b7e1aa6b632db145efd12305544a50c6d06d728a9eb2bd8056cca02ed7b" }, "downloads": -1, "filename": "tsplib95-0.2.0.tar.gz", "has_sig": false, "md5_digest": "30dab5f3cb82c3282c9601545d331877", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22420, "upload_time": "2018-08-12T23:31:43", "url": "https://files.pythonhosted.org/packages/33/ad/28193235bc38e097e975d7b40517033a3c7e0bfaad8706d8995d28a526a2/tsplib95-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "330ef383828f42798a7bdcb39f528a91", "sha256": "4fe0297c66f0a4a5fc782752fe1e073786694047eff652407854e49492f3fe73" }, "downloads": -1, "filename": "tsplib95-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "330ef383828f42798a7bdcb39f528a91", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13650, "upload_time": "2018-08-13T05:35:38", "url": "https://files.pythonhosted.org/packages/a3/36/0366a11456f38490ddc068384eca6941b13e2c5ad2a9e0618587a9a4a86b/tsplib95-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "03db0ee376455c1c2d2619b7081bb599", "sha256": "26010428e791c3b5df235acf00eebefbabbac090a74dde86818a3267aea19e5c" }, "downloads": -1, "filename": "tsplib95-0.3.0.tar.gz", "has_sig": false, "md5_digest": "03db0ee376455c1c2d2619b7081bb599", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23049, "upload_time": "2018-08-13T05:35:40", "url": "https://files.pythonhosted.org/packages/c8/3b/f613a415a8c6bcf439244b101bc75110652141e5831189436a661f32d1a3/tsplib95-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "43d6ad8aaf611770246271af1f104de9", "sha256": "1d54c33f44ed037486aaf565d23e3f1d3d5ebed0e972ac4e2052dace072d644d" }, "downloads": -1, "filename": "tsplib95-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "43d6ad8aaf611770246271af1f104de9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13779, "upload_time": "2018-10-04T04:22:06", "url": "https://files.pythonhosted.org/packages/c0/d5/b90881b1d1af5792041fffdae36da5f7340b67a7029bde7f7d2c79eecbc6/tsplib95-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "27ba407f481276d0c807e13aaf1aed3b", "sha256": "c4ae69c0548e4d9846edd159af391b5d430d51e44dcba4e7c9d46c479a2d3559" }, "downloads": -1, "filename": "tsplib95-0.3.1.tar.gz", "has_sig": false, "md5_digest": "27ba407f481276d0c807e13aaf1aed3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23859, "upload_time": "2018-10-04T04:22:08", "url": "https://files.pythonhosted.org/packages/72/99/189fb17c6d3b52f95a02006f91bce96e9eaf7b8ade9b4b4601e208ef3d90/tsplib95-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "5ce3f8a2ce81ada3baba6e5f8b660389", "sha256": "a7672f7b9d1ae06c80639a6585e71c79c0459a7dc0eb9babf51e302fe3552d51" }, "downloads": -1, "filename": "tsplib95-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5ce3f8a2ce81ada3baba6e5f8b660389", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13984, "upload_time": "2018-10-07T19:11:22", "url": "https://files.pythonhosted.org/packages/d1/4f/6a1cb104ce9b400eed7690641230fab1515bd475f2dd86d4a3a73f677e3b/tsplib95-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2c78ab7f32d649f6b9ce83fd9131d81d", "sha256": "e0e6905a35f29234de496a874905413b9c9ce437a8d572e95351cc255c16be83" }, "downloads": -1, "filename": "tsplib95-0.3.2.tar.gz", "has_sig": false, "md5_digest": "2c78ab7f32d649f6b9ce83fd9131d81d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24560, "upload_time": "2018-10-07T19:11:23", "url": "https://files.pythonhosted.org/packages/8e/1d/e263472264c1ce9ec7dc10c5478d5a9e586c08fa733000f481ca6d7467b5/tsplib95-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "9331a9197cada350c14dbd1a12b176fa", "sha256": "87f1236949a15da00c8febb4c190be62363682c7a784d7e94a05c2a27c342e7e" }, "downloads": -1, "filename": "tsplib95-0.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9331a9197cada350c14dbd1a12b176fa", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13987, "upload_time": "2019-03-25T06:02:07", "url": "https://files.pythonhosted.org/packages/90/9f/5fbf6118d00719cc4688b175a04da09b89c3780db6b0c55bc646a20a6a07/tsplib95-0.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b3a9065c7354cef44e766a7c0fa0cb4", "sha256": "a0a77b4d0596b7f3d05f6237b29aedb71b39124b80da4f5b15cf7dda19237f2a" }, "downloads": -1, "filename": "tsplib95-0.3.3.tar.gz", "has_sig": false, "md5_digest": "8b3a9065c7354cef44e766a7c0fa0cb4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19510, "upload_time": "2019-03-25T06:02:09", "url": "https://files.pythonhosted.org/packages/bc/54/519e4898c4370ad98c661f4df41f140eb509c2700beece125c617e05c4e8/tsplib95-0.3.3.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "5581969b71252b49c7f00d40500667b7", "sha256": "708ac10dde51123ae830e17267fdb8562e5d455ed874130cdcd8f58d03c1a5bb" }, "downloads": -1, "filename": "tsplib95-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5581969b71252b49c7f00d40500667b7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14849, "upload_time": "2019-09-21T21:06:27", "url": "https://files.pythonhosted.org/packages/ab/2b/90bd3084358e29913b46c93c45791a43d31ac4773f2399d50a328e368725/tsplib95-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c304e8b91c2f2c3d26fafe4f4720e7d2", "sha256": "9e503998a39037210b87340134a55b22c69e17482aaa6ce0f9a96549c9060bff" }, "downloads": -1, "filename": "tsplib95-0.4.0.tar.gz", "has_sig": false, "md5_digest": "c304e8b91c2f2c3d26fafe4f4720e7d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26251, "upload_time": "2019-09-21T21:06:28", "url": "https://files.pythonhosted.org/packages/fb/c7/656f5846e952ce062c3fd6e8fa864e96f118089352f3a15bfd63717d9cb3/tsplib95-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "15d125fc61339b57846d60c0927babce", "sha256": "6fbcd604ab40cfc3601c646950a600cbb610ba1983b9cb07fcf1c4ff3fb566ae" }, "downloads": -1, "filename": "tsplib95-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "15d125fc61339b57846d60c0927babce", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15294, "upload_time": "2019-10-03T13:43:35", "url": "https://files.pythonhosted.org/packages/aa/14/3586c7451228f1145fa7de783297b07376a1a1af388ca69df7952eba6bd9/tsplib95-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b6eb6523402001f0be037373366d56e8", "sha256": "6ae18b9afe2e7e74532fffc571b6f614d75eb0aa24c237e0310989b44640827b" }, "downloads": -1, "filename": "tsplib95-0.5.0.tar.gz", "has_sig": false, "md5_digest": "b6eb6523402001f0be037373366d56e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27069, "upload_time": "2019-10-03T13:43:37", "url": "https://files.pythonhosted.org/packages/1f/52/e5fb1aff27e6ba6ac6feafd44288d85ad3fce8917a832307b1149af0273d/tsplib95-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "42b0126c8252b773e2a1ae4abe910a83", "sha256": "ae999e95e8f072052bbceaf71a0c1a37ba6ecccc12059bcbfbb2ce31c390b5e4" }, "downloads": -1, "filename": "tsplib95-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "42b0126c8252b773e2a1ae4abe910a83", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16146, "upload_time": "2019-10-20T03:56:30", "url": "https://files.pythonhosted.org/packages/e9/5f/93af8d4f9126740bf33d26209cd6f7db81e5db9f540b7c2a62f6f533a52a/tsplib95-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6230df857114afd08334eb4287a00bf", "sha256": "a11dcbf9881aaf2bc57d94c5efe05d6ca97ab46ea98c6ef06a4c22311c344d33" }, "downloads": -1, "filename": "tsplib95-0.6.0.tar.gz", "has_sig": false, "md5_digest": "f6230df857114afd08334eb4287a00bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28400, "upload_time": "2019-10-20T03:56:32", "url": "https://files.pythonhosted.org/packages/34/56/44c50005eb98395a93e08872bc739b03e1c27333a7d4eb99e013ab39c846/tsplib95-0.6.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "42b0126c8252b773e2a1ae4abe910a83", "sha256": "ae999e95e8f072052bbceaf71a0c1a37ba6ecccc12059bcbfbb2ce31c390b5e4" }, "downloads": -1, "filename": "tsplib95-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "42b0126c8252b773e2a1ae4abe910a83", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16146, "upload_time": "2019-10-20T03:56:30", "url": "https://files.pythonhosted.org/packages/e9/5f/93af8d4f9126740bf33d26209cd6f7db81e5db9f540b7c2a62f6f533a52a/tsplib95-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6230df857114afd08334eb4287a00bf", "sha256": "a11dcbf9881aaf2bc57d94c5efe05d6ca97ab46ea98c6ef06a4c22311c344d33" }, "downloads": -1, "filename": "tsplib95-0.6.0.tar.gz", "has_sig": false, "md5_digest": "f6230df857114afd08334eb4287a00bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28400, "upload_time": "2019-10-20T03:56:32", "url": "https://files.pythonhosted.org/packages/34/56/44c50005eb98395a93e08872bc739b03e1c27333a7d4eb99e013ab39c846/tsplib95-0.6.0.tar.gz" } ] }