tsplib95


Nametsplib95 JSON
Version 0.7.1 PyPI version JSON
download
home_pagehttps://github.com/rhgrant10/tsplib95
SummaryTSPLIB95 works with TSPLIB95 files.
upload_time2020-05-08 19:01:46
maintainer
docs_urlNone
authorRobert Grant
requires_python
licenseApache Software License 2.0
keywords tsplib95
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage No coveralls.
            =========
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"
}
        
Elapsed time: 0.25933s