=========
TSPLIB 95
=========
.. image:: https://img.shields.io/pypi/v/tsplib95.svg
:target: https://pypi.python.org/pypi/tsplib95
:alt: Available on PyPI
.. image:: https://img.shields.io/travis/rhgrant10/tsplib95.svg
:target: https://travis-ci.org/rhgrant10/tsplib95
:alt: Continuous Integration
.. image:: https://codecov.io/gh/rhgrant10/tsplib95/branch/master/graph/badge.svg
:target: https://codecov.io/gh/rhgrant10/tsplib95
:alt: Code Coverage
.. image:: https://readthedocs.org/projects/tsplib95/badge/?version=latest
:target: https://tsplib95.readthedocs.io/?badge=latest
:alt: Documentation Status
TSPLIB 95 is a library for working with TSPLIB 95 files.
* Free software: Apache Software License 2.0
* Documentation: https://tsplib95.readthedocs.io.
Features
--------
- **read** and **write** TSPLIB95 file format like a boss
- easily **convert** problems into ``networkx.Graph`` instances
- supports **all** fields in the original standard
- allows completely **custom** field and problem declarations
It 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 nonetheless.
Credits
-------
See TSPLIB_ for original details, including file format specification, C++ code, and sample problems.
This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage
.. _TSPLIB: http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/
=======
History
=======
0.7.1 (2020-05-08)
------------------
* Bugfix for ``StandardProblem.get_nodes`` ignoring node indices specified in demands
0.7.0 (2020-04-18)
------------------
* Refactored the models to unify the ``Problem`` and ``Solution`` classes into the new ``StandardProblem`` class.
* 93% test coverage, including distance functions, parsing functions, and rendering functions.
* You can finally *write* problems in TSPLIB95 format! Render to text, write to file, or save to filepath.
* Parsing text, reading files, and loading filepaths are all now supported.
* Deprecated the old loading utils.
* Custom problems now supported by allowing you to define your own fields.
* Library exceptions for parsing and rendering.
* Numerous bugfixes for the distance functions (ATT, XRAY*, GEO).
* Improved the CLI to use a pager and proper column tabulation.
* Made some progress modernizing the FORTRAN code for xray problems.
* Added codecoverage metrics and badge.
0.6.1 (2020-01-04)
------------------
* Fix bug that caused the parser to ignore the first line of a file
0.6.0 (2019-10-19)
------------------
* Changes to the conversion into a ``networkx.Graph``:
* Depot, demand, and fixed edge data have been removed from graph metadata.
Depot and demand data is now associated with individual nodes like fixed edge
data was (and still is).
* Add a ``normalized`` parameter to allow nodes to be renamed as zero-index
integers when obtaining a ``networkx.Graph``.
* Depots, demands, node coordinates, and display data fields now default to
empty containers rather than ``None``.
* Fixed twine/PyPI warning about long description mime type
0.5.0 (2019-10-02)
------------------
* New loaders that take just the text - no file necessary!
* Invalid keywords now result in a ``ParsingError``
* Update the CLI to catch and gracefully handle ``ParsingError``
* Fixed a bug when trying to amend an exception with line information
0.4.0 (2019-09-21)
------------------
* All expected parsing errors are now raised as ``ParsingError`` rather than the base ``Exception`` type.
* Fix name of distance paramter to distances.geographical. Previously it was "diameter" but was used as a radius. It is now "radius".
* Relax restriction on networkx version (now ``~=2.1``)
* Add documentation for each problem field
* Other minor documentation changes
* Add offical 3.7 support
* Add missing history entry for v0.3.3
* Remove some dead code
0.3.3 (2019-03-24)
------------------
* Fix parsing bug for key-value lines whose value itself contains colons
0.3.2 (2018-10-07)
------------------
* Fix bug in ``Problem.is_complete`` that produced a ``TypeError`` when run
* Fix bug in ``Problem.is_depictable`` that produced a ``TypeError`` when run
* Fix bug in ``Problem.get_display`` that produced an ``AttributeError`` when run
* Added some unit tests for the ``Problem`` class
* Added some unit tests for the ``parser`` module
0.3.1 (2018-10-03)
------------------
* Fix bug in ``Problem.is_weighted`` that caused problems with defined nodes
coords to use the unit distance function
0.3.0 (2018-08-12)
------------------
* Added XRAY1 and XRAY2 implementations
* Simplified some of the matrix code
0.2.0 (2018-08-12)
------------------
* Implement column-wise matrices
* Add a utiltiy for loading an unknown file
* Fix bug in the ATT distance function
* Update the CLI to use the models
* Document a bunch-o-stuff
* Switch to RTD sphinx theme
* Move most utilties into utils
0.1.0 (2018-08-12)
------------------
* First release on PyPI.
Raw data
{
"_id": null,
"home_page": "https://github.com/rhgrant10/tsplib95",
"name": "tsplib95",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "tsplib95",
"author": "Robert Grant",
"author_email": "rhgrant10@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/c6/81/47396cc0c5879d64525dc652966dcf32360a838c5c1f7b38676c9919593b/tsplib95-0.7.1.tar.gz",
"platform": "",
"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 :alt: Available on PyPI\n\n.. image:: https://img.shields.io/travis/rhgrant10/tsplib95.svg\n :target: https://travis-ci.org/rhgrant10/tsplib95\n :alt: Continuous Integration\n\n.. image:: https://codecov.io/gh/rhgrant10/tsplib95/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/rhgrant10/tsplib95\n :alt: Code Coverage\n\n.. image:: https://readthedocs.org/projects/tsplib95/badge/?version=latest\n :target: https://tsplib95.readthedocs.io/?badge=latest\n :alt: Documentation Status\n\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\nFeatures\n--------\n\n- **read** and **write** TSPLIB95 file format like a boss\n- easily **convert** problems into ``networkx.Graph`` instances\n- supports **all** fields in the original standard\n- allows completely **custom** field and problem declarations\n\nIt also has a CLI program to print a tabular summary of one or more TSPLIB95\nfiles... no idea why anyone would want that, but there you have it nonetheless.\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: http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/\n\n\n\n=======\nHistory\n=======\n\n0.7.1 (2020-05-08)\n------------------\n\n* Bugfix for ``StandardProblem.get_nodes`` ignoring node indices specified in demands\n\n\n0.7.0 (2020-04-18)\n------------------\n\n* Refactored the models to unify the ``Problem`` and ``Solution`` classes into the new ``StandardProblem`` class.\n* 93% test coverage, including distance functions, parsing functions, and rendering functions.\n* You can finally *write* problems in TSPLIB95 format! Render to text, write to file, or save to filepath.\n* Parsing text, reading files, and loading filepaths are all now supported.\n* Deprecated the old loading utils.\n* Custom problems now supported by allowing you to define your own fields.\n* Library exceptions for parsing and rendering.\n* Numerous bugfixes for the distance functions (ATT, XRAY*, GEO).\n* Improved the CLI to use a pager and proper column tabulation.\n* Made some progress modernizing the FORTRAN code for xray problems.\n* Added codecoverage metrics and badge.\n\n\n0.6.1 (2020-01-04)\n------------------\n\n* Fix bug that caused the parser to ignore the first line of a file\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",
"bugtrack_url": null,
"license": "Apache Software License 2.0",
"summary": "TSPLIB95 works with TSPLIB95 files.",
"version": "0.7.1",
"project_urls": {
"Homepage": "https://github.com/rhgrant10/tsplib95"
},
"split_keywords": [
"tsplib95"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a02bb1932d3674758ec5f49afa72d4519334a5ac2aac4d96cfd416eb872a1959",
"md5": "a30542ee99a1871dc74d6ba2de99457d",
"sha256": "c481638e293baaa62134b491477aa5b2681e552e4dc28a6106ca1e157ae59184"
},
"downloads": -1,
"filename": "tsplib95-0.7.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a30542ee99a1871dc74d6ba2de99457d",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 25022,
"upload_time": "2020-05-08T19:01:44",
"upload_time_iso_8601": "2020-05-08T19:01:44.208336Z",
"url": "https://files.pythonhosted.org/packages/a0/2b/b1932d3674758ec5f49afa72d4519334a5ac2aac4d96cfd416eb872a1959/tsplib95-0.7.1-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c68147396cc0c5879d64525dc652966dcf32360a838c5c1f7b38676c9919593b",
"md5": "70b3c851c658fc9228c89f34f277be84",
"sha256": "3da80175dfb0478b967b87c508f75def47371188b6401b719441f2cedc817e00"
},
"downloads": -1,
"filename": "tsplib95-0.7.1.tar.gz",
"has_sig": false,
"md5_digest": "70b3c851c658fc9228c89f34f277be84",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 512627,
"upload_time": "2020-05-08T19:01:46",
"upload_time_iso_8601": "2020-05-08T19:01:46.126029Z",
"url": "https://files.pythonhosted.org/packages/c6/81/47396cc0c5879d64525dc652966dcf32360a838c5c1f7b38676c9919593b/tsplib95-0.7.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2020-05-08 19:01:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rhgrant10",
"github_project": "tsplib95",
"travis_ci": true,
"coveralls": false,
"github_actions": false,
"tox": true,
"lcname": "tsplib95"
}