Skip to main content

Build Status

Python-JGraphT

Python bindings of the JGraphT graph library.

The JGraphT is a free Java class library that provides mathematical graph-theory objects and algorithms. It contains very efficient and generic graph data-structures along with a sizeable collection of sophisticated algorithms. The library is written with stability, performance and interoperability in mind. It includes algorithms encountered in diverse application domains such as path planning, routing, network analysis, combinatorial optimization, computational biology, and others.

While the original library is written in Java, this package uses a native build provided by the jgrapht-capi project. The native build is in the form of a shared library, created by GraalVM.

The result is a native self-contained library with no dependency on the JVM!

Installing

We automatically build 64-bit wheels for python versions 3.6, 3.7, and 3.8 on Linux, Windows and MacOSX. For linux we use PEP 571 which means that pip version must be >= 19.0.

Thus, on a recent machine, installation should be as easy as:

pip install jgrapht

If your pip version is older than 19.0 you will need to upgrade:

pip install --upgrade pip
pip install jgrapht

If you want to use virtualenv or venv module, you can write:

python -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install jgrapht

Installation on the user directory is also possible:

pip install --upgrade pip
pip install --user jgrapht

Documentation

Automatically generated documentation with a tutorial and examples can be found at https://python-jgrapht.readthedocs.io/.

Citing

Are you using the software in your research? We would appreciate if you cite the following publication:

@article{jgrapht,
  title = {{J}{G}raph{T}--{A} {J}ava {L}ibrary for {G}raph {D}ata {S}tructures and {A}lgorithms},
  author = {Michail, Dimitrios and Kinable, Joris and Naveh, Barak and Sichi, John V.},
  year = {2020},
  issue_date = {May 2020},
  publisher = {Association for Computing Machinery},
  address = {New York, NY, USA},
  volume = {46},
  number = {2},
  journal = {ACM Trans. Math. Softw.},
  month = may,
  articleno = {16},
  numpages = {29},
}

Building

The jgrapht-capi project is included in the sources as a git submodule in folder vendor/source/jgrapht-capi. You need to either initialize the submodule by hand, or you can pass option --recurse-submodules when cloning this repository.

The following pieces of software are required for the build to succeed:

  • GraalVM 20.0 with Java 11 support
  • Native Image component from GraalVM
  • Maven Java build tool
  • GNU C compiler or clang
  • CMake
  • Python 3.6 and above
  • SWIG 3 and above

If all the above are installed properly, building should be as simple as

python setup.py build

For Windows you will need Microsoft Visual C++ (MSVC) 2017 15.5.5 or later. Build the system using the proper Developer Command Prompt for your version of Visual Studio. This means x64 Native Tools Command Prompt. Use Visual Studio 2017 or later.

Install

Install using

pip install .

Develop

Since the library contains parts which are written in C that need to be compiled before use, make sure you have the necessary compilers and development headers installed. Compiled code means that additional steps are required in order to import from the development sources. Using the following commands you can setup an in-place development environment:

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

This allows you to import the in-place build from the repository base directory. If you want it to also be visible outside the base dir, you have to adjust the PYTHONPATH accordingly. Note also that the above commands call python setup.py develop. Instead of adjusting PYTHONPATH, this installs a .egg-link file into your site-packages as well as adjusts the easy-install.pth there, so its a more permanent operation.

Tests

Execute the tests by giving

pip install -r requirements/test.txt
pytest

Building the docs

pip install -r requirements/doc.txt
cd docs && make html

License

This library may be used under the terms of either the

or the

As a recipient, you may choose which license to receive the code under. A copy of the EPL license and the LPGL license is included in this repository.

Please note that this library is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Please refer to the license for details.

SPDX-License-Identifier: LGPL-2.1-or-later OR EPL-2.0

Author

(C) Copyright 2020, by Dimitrios Michail

Enjoy!

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jgrapht-1.5.0.0.tar.gz (337.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

jgrapht-1.5.0.0-cp38-cp38-win_amd64.whl (9.8 MB view details)

Uploaded CPython 3.8Windows x86-64

jgrapht-1.5.0.0-cp38-cp38-manylinux2010_x86_64.whl (10.3 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

jgrapht-1.5.0.0-cp38-cp38-macosx_10_13_x86_64.whl (9.2 MB view details)

Uploaded CPython 3.8macOS 10.13+ x86-64

jgrapht-1.5.0.0-cp37-cp37m-win_amd64.whl (9.8 MB view details)

Uploaded CPython 3.7mWindows x86-64

jgrapht-1.5.0.0-cp37-cp37m-manylinux2010_x86_64.whl (10.3 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

jgrapht-1.5.0.0-cp37-cp37m-macosx_10_13_x86_64.whl (9.2 MB view details)

Uploaded CPython 3.7mmacOS 10.13+ x86-64

jgrapht-1.5.0.0-cp36-cp36m-win_amd64.whl (9.8 MB view details)

Uploaded CPython 3.6mWindows x86-64

jgrapht-1.5.0.0-cp36-cp36m-manylinux2010_x86_64.whl (10.3 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ x86-64

jgrapht-1.5.0.0-cp36-cp36m-macosx_10_13_x86_64.whl (9.2 MB view details)

Uploaded CPython 3.6mmacOS 10.13+ x86-64

File details

Details for the file jgrapht-1.5.0.0.tar.gz.

File metadata

  • Download URL: jgrapht-1.5.0.0.tar.gz
  • Upload date:
  • Size: 337.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.9.1 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/2.7.12

File hashes

Hashes for jgrapht-1.5.0.0.tar.gz
Algorithm Hash digest
SHA256 182ebcbbfdc99a902f6395f9e45b93cfbf5ae6a41df6b69c9f84a9c560fc9744
MD5 f482ed86e0db55d62a08a0935bcdc46a
BLAKE2b-256 6e1494aeda368a8072d22e83cff9fef2a5d04f9d5d827c3689323d378b670de3

See more details on using hashes here.

File details

Details for the file jgrapht-1.5.0.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: jgrapht-1.5.0.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 9.8 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.0

File hashes

Hashes for jgrapht-1.5.0.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 2b94cf423d7d8f7981f8d586b25b547c430870ee1229a8ed9be3e323fc5781a6
MD5 6dce1ff7450549c35bc0e5e1ba407f5c
BLAKE2b-256 38f46babe42fa446914049e4f7f075ace11894744687822ee7e91c60e1d3aefb

See more details on using hashes here.

File details

Details for the file jgrapht-1.5.0.0-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: jgrapht-1.5.0.0-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 10.3 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.9.1 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/2.7.12

File hashes

Hashes for jgrapht-1.5.0.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 de6b8bcfba3be45e40ec64b7050495ab262fab677cb9be23d7bb943917109fb7
MD5 c9c5af19f9ce60918c4e0b12528f1ed3
BLAKE2b-256 5830651d676a250316547d3ef43436395f22d64ceec3c7f4e0399cf6d822fb1d

See more details on using hashes here.

File details

Details for the file jgrapht-1.5.0.0-cp38-cp38-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: jgrapht-1.5.0.0-cp38-cp38-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 9.2 MB
  • Tags: CPython 3.8, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.5

File hashes

Hashes for jgrapht-1.5.0.0-cp38-cp38-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 4841ad8f6fd34e039ed32de7fec470a8533d2ef827517c286de5fb26cb24f8f7
MD5 cf65854c3d6c449336f8b521fff5a8a6
BLAKE2b-256 f529df24470969160e506eb4a890b697ac0bfc8e80c77ce0b2ef126100dcc977

See more details on using hashes here.

File details

Details for the file jgrapht-1.5.0.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: jgrapht-1.5.0.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 9.8 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.0

File hashes

Hashes for jgrapht-1.5.0.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 44c559d66028391a6bc3f07b031a6a0bd3c686f2b8c5767a482cee4cdec6f5b4
MD5 f02b515c6ad1b9b4c60102fd17dab26f
BLAKE2b-256 b5b0b2b99b185c1efb316208a5ac53a0e7078e8ff3c20348a905bda79f720529

See more details on using hashes here.

File details

Details for the file jgrapht-1.5.0.0-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: jgrapht-1.5.0.0-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 10.3 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.9.1 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/2.7.12

File hashes

Hashes for jgrapht-1.5.0.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 57a15a523daf5f5cae79530a89303ceef95c355cf7b825baf337ad98678f90ff
MD5 1f68109f0758fb7c27732a6dd57dbdef
BLAKE2b-256 7bdfcb5b2d92d47f2e099e0c56edb9aab036021ec4e75169dbaf492321f5a906

See more details on using hashes here.

File details

Details for the file jgrapht-1.5.0.0-cp37-cp37m-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: jgrapht-1.5.0.0-cp37-cp37m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 9.2 MB
  • Tags: CPython 3.7m, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.5

File hashes

Hashes for jgrapht-1.5.0.0-cp37-cp37m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 9720c5476f7afc901dbd2fe365d17b55432346a75b2e952a47ed8993a5026411
MD5 921cd33eadcef575cd0eb79abf389b6b
BLAKE2b-256 30120558011a42ef158d449069cd40332dc720f3d4c20cb84b1a9079c1fadcdd

See more details on using hashes here.

File details

Details for the file jgrapht-1.5.0.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: jgrapht-1.5.0.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 9.8 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.0

File hashes

Hashes for jgrapht-1.5.0.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 9b8a045be3f7ab12a3b6f4dfb5be2be1f169cdc40981df53b9300a535ff6b3af
MD5 2bf644df16a8cdcd1318c3161b6686ce
BLAKE2b-256 48c8f10897ea0744728be58896728692a1627b884fe9958d3f760cb3e2e82d3a

See more details on using hashes here.

File details

Details for the file jgrapht-1.5.0.0-cp36-cp36m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: jgrapht-1.5.0.0-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 10.3 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.9.1 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/2.7.12

File hashes

Hashes for jgrapht-1.5.0.0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 b76a2cb800153695326c7f02f0c5760a731f730eff979aa37f4b0992e001573a
MD5 f6e121771fe6c22215e9d72bceb619a6
BLAKE2b-256 4865ace83f1cb9b6229f64a0bce158960959b0c32e51cce2db44772b78e5d377

See more details on using hashes here.

File details

Details for the file jgrapht-1.5.0.0-cp36-cp36m-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: jgrapht-1.5.0.0-cp36-cp36m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 9.2 MB
  • Tags: CPython 3.6m, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.5

File hashes

Hashes for jgrapht-1.5.0.0-cp36-cp36m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d146073e0cd2df4fc259d7e6048e8c10371ab846e4fba99b52578f37f4c2a27b
MD5 4182c634a19b3dbefac8d60eae72073f
BLAKE2b-256 7294769149dcf1bbc491459382e1c073ebc67a724047800e69fb22b4932d9df1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page