pypi i tsplib95


Library for working with TSPLIB files.

by Robert Grant

0.7.1 (see all)License:Apache Software License 2.0
pypi i tsplib95



.. 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.


  • 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.


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/



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.


3yrs ago








3yrs ago
3yrs ago
3yrs ago
3yrs ago
No alternatives found

Rate & Review

No reviews found
Be the first to rate