Skip to main content

Build Status

Python-JGraphT

Python bindings for 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. They can be directly downloaded from PyPI or using pip. 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/. This includes full API docs, tutorials and examples.

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 can be done using

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.1.tar.gz (338.5 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.1-cp38-cp38-win_amd64.whl (8.7 MB view details)

Uploaded CPython 3.8Windows x86-64

jgrapht-1.5.0.1-cp38-cp38-manylinux2010_x86_64.whl (10.4 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

jgrapht-1.5.0.1-cp38-cp38-macosx_10_13_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.8macOS 10.13+ x86-64

jgrapht-1.5.0.1-cp37-cp37m-win_amd64.whl (8.7 MB view details)

Uploaded CPython 3.7mWindows x86-64

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

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

jgrapht-1.5.0.1-cp37-cp37m-macosx_10_13_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.7mmacOS 10.13+ x86-64

jgrapht-1.5.0.1-cp36-cp36m-win_amd64.whl (8.7 MB view details)

Uploaded CPython 3.6mWindows x86-64

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

Uploaded CPython 3.6mmanylinux: glibc 2.12+ x86-64

jgrapht-1.5.0.1-cp36-cp36m-macosx_10_13_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.6mmacOS 10.13+ x86-64

File details

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

File metadata

  • Download URL: jgrapht-1.5.0.1.tar.gz
  • Upload date:
  • Size: 338.5 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.50.2 CPython/2.7.12

File hashes

Hashes for jgrapht-1.5.0.1.tar.gz
Algorithm Hash digest
SHA256 9f5febd0718c14a2219caf94393302c5c099dfadb5141d22b5137363c49eefd5
MD5 8cea446294ce8c3b55b1257737e1fba7
BLAKE2b-256 502ecadee24ecdbc9ce836ab10638b3234cf1e506d179b2cbb59eaa13da62ac1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jgrapht-1.5.0.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 8.7 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.50.2 CPython/3.8.2

File hashes

Hashes for jgrapht-1.5.0.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 91133fc3c1fcc6f0943ed4ea005fe39431a6ec0257a0294d2a0111a2f2ed7c12
MD5 46202ed850609c8e424c0327a5e11f0f
BLAKE2b-256 4eb7f4cb0cebc8ac2f541f700ccbe391b50f0867c3190d26190b4366ce415a75

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jgrapht-1.5.0.1-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 10.4 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.50.2 CPython/2.7.12

File hashes

Hashes for jgrapht-1.5.0.1-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 91e2f18e4eb9dc74767ba0d8c38d1b3a6326a2b08a0b59bcaecff88b784dc916
MD5 df4dc318f85858267938c8c90af53382
BLAKE2b-256 ff240b9da70130a2e736e8043b23fd0522de3d118cc24e13e244cef08f2b9a68

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jgrapht-1.5.0.1-cp38-cp38-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 9.1 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/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

File hashes

Hashes for jgrapht-1.5.0.1-cp38-cp38-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 59bccb3a2e356706d92b09e283e560e597d8710fe2da4af4ef8207a2b08b3bd1
MD5 c820cc93115d0440463940f0c93637f8
BLAKE2b-256 bc9f8ff196c46f9b13a3eb84895fb95c56dd3c507534c9cc3ffcaf4e68d72140

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jgrapht-1.5.0.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 8.7 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.50.2 CPython/3.8.2

File hashes

Hashes for jgrapht-1.5.0.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 6388e8a78a56a0d5f7e3289fecd28fa9b9bf05868e505c838121db8dd0de9b53
MD5 bc567c99a1a80c6233c0bb4b638e4413
BLAKE2b-256 c8a1634a751a61585f7c110ed40211c9bedfac1b0e5267734bcdd7695e00ad11

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jgrapht-1.5.0.1-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.50.2 CPython/2.7.12

File hashes

Hashes for jgrapht-1.5.0.1-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 fb6ee5442ffb08ec9f244e23f93b32cc43df923f3f5a2ee31b59518e523fa55c
MD5 d7aac132c8542c9431e3f7e335a6086e
BLAKE2b-256 c01df525a31926eab00c7919e42f7a270cb5c4185a14c967342ce40250cf6e71

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jgrapht-1.5.0.1-cp37-cp37m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 9.1 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/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

File hashes

Hashes for jgrapht-1.5.0.1-cp37-cp37m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 f84b238060203fd495e55e40d6babed0b9745b00a77af245b7bb399985b0efa9
MD5 e7d902e5bb942a3cd6b9049e56bc4986
BLAKE2b-256 8ea5508737c6132bdb74b3a7c7540dce9dc3677cba5864f0070b4b64cf31e89f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jgrapht-1.5.0.1-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 8.7 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.50.2 CPython/3.8.2

File hashes

Hashes for jgrapht-1.5.0.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 3a45e1bbc6c1c23e2dad04dd235e0a6809d8b81deca508f74197fcd9eb3d0cad
MD5 70d74a4ed6c521a43fe58f35b5e70e4d
BLAKE2b-256 36f405ea11e82e23b4f59d33b935405c4d529dd5492dc0a86c86983a0ca3c6b7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jgrapht-1.5.0.1-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.50.2 CPython/2.7.12

File hashes

Hashes for jgrapht-1.5.0.1-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 e03d46046dbcda8b942f2823238b741b674deed37eef9c4e8d64c6a6020357fa
MD5 7305e99d549d95fab3b0dca0165eb0d7
BLAKE2b-256 1239d2ebc2c528d2565b21e3cff6471b454047cd6abac8f4aa02709e2b2f5c18

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jgrapht-1.5.0.1-cp36-cp36m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 9.1 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/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

File hashes

Hashes for jgrapht-1.5.0.1-cp36-cp36m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 580740db9c4f48119af8c4c3f73287c43b970597851c2203346ba22b7d52a72e
MD5 84eb90f69370677a2485e9140c3e07ec
BLAKE2b-256 94a765e21e88d838744681d1668c676b568cbd12a529258e42015eb3151db523

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