Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 1.5.0.3 instead.
Reason given by maintainers: Minor issues with importing new subpackages.

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.2.tar.gz (347.9 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.2-cp38-cp38-win_amd64.whl (9.1 MB view details)

Uploaded CPython 3.8Windows x86-64

jgrapht-1.5.0.2-cp38-cp38-manylinux2010_x86_64.whl (9.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

jgrapht-1.5.0.2-cp38-cp38-macosx_10_13_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.8macOS 10.13+ x86-64

jgrapht-1.5.0.2-cp37-cp37m-win_amd64.whl (9.1 MB view details)

Uploaded CPython 3.7mWindows x86-64

jgrapht-1.5.0.2-cp37-cp37m-manylinux2010_x86_64.whl (9.8 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

jgrapht-1.5.0.2-cp37-cp37m-macosx_10_13_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.7mmacOS 10.13+ x86-64

jgrapht-1.5.0.2-cp36-cp36m-win_amd64.whl (9.1 MB view details)

Uploaded CPython 3.6mWindows x86-64

jgrapht-1.5.0.2-cp36-cp36m-manylinux2010_x86_64.whl (9.8 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ x86-64

jgrapht-1.5.0.2-cp36-cp36m-macosx_10_13_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.6mmacOS 10.13+ x86-64

File details

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

File metadata

  • Download URL: jgrapht-1.5.0.2.tar.gz
  • Upload date:
  • Size: 347.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.6.1 requests/2.25.0 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/2.7.12

File hashes

Hashes for jgrapht-1.5.0.2.tar.gz
Algorithm Hash digest
SHA256 e2d715f86db11f23497329c175f7b862d16af1fdc32f3427cf083cbe4d205b34
MD5 c89c611cfd5d0401f7045c08573bc46c
BLAKE2b-256 c10d7d99658c1db93b1c5091142adc47c9e6981b841a036a37660acef4bcb275

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jgrapht-1.5.0.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 9.1 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.8.2

File hashes

Hashes for jgrapht-1.5.0.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 0f9f8610645afae6f7fc21ae011926bfaebbe48e39b680f2547def99cd9e08df
MD5 e31d7cb12fe83276daf434bba192f6db
BLAKE2b-256 586d2a66b468089637370d8880e83368e0a6313497d511623a84fe2c3f8426d6

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jgrapht-1.5.0.2-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 70d8214f46d82433e7ae9417bcb3351983aae6528aadba047465d80135dd5d33
MD5 0c624bed720c9f3d0e066f4d7ef634a9
BLAKE2b-256 efd61cc9e00b7a8849afb31524aa1dd891377578d1fec1c3e4662e9cfa6c7213

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jgrapht-1.5.0.2-cp38-cp38-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 9.0 MB
  • Tags: CPython 3.8, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.9.0

File hashes

Hashes for jgrapht-1.5.0.2-cp38-cp38-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 12465c5d5ab445945e2be294b2da95c71060c59b63c5400d4606ec816cbb6f87
MD5 79db10fd82ab90671bfc7ed8aca229a1
BLAKE2b-256 138454776d3a2447dbb8a49d752fde8354b90c8f2ffffb8369d7af2f62b21e82

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jgrapht-1.5.0.2-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 9.1 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.8.2

File hashes

Hashes for jgrapht-1.5.0.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 c256a523c29f8e49f498cf0ad0787343d076394a167bb95933571511e4a3c64f
MD5 471ef4eb825ab3222c9c3a9fe50b6826
BLAKE2b-256 460c39f31b1fbe91762d446d90f928be6584ed557f964021ba23d39b675da216

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jgrapht-1.5.0.2-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 4b9a7ae19f787f62befe1b5721b9a3a0ce92f0ff4007baf88cbd58068dab4378
MD5 6be0f5638519bbca2b8d519298e45c7b
BLAKE2b-256 8151104d49e0145fc1242fd7c70772ab13eab85e984a6fd8378b7c2c86a87bb5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jgrapht-1.5.0.2-cp37-cp37m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 9.0 MB
  • Tags: CPython 3.7m, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.9.0

File hashes

Hashes for jgrapht-1.5.0.2-cp37-cp37m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 54e6c1127842cab2c3847f516c0991bce8d317fac49254b411b60dfd3b0d3e72
MD5 76188f936d44b0404ec22cd7350061cb
BLAKE2b-256 9fe129732f97b93ca2ccdcd94adebaf4b68ba694daed153dfe236cf1a8f45c41

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jgrapht-1.5.0.2-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 9.1 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.8.2

File hashes

Hashes for jgrapht-1.5.0.2-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 414a0ac4faaf32a4bd05b0dee18be7c075268727598713f3e17228dc8f7a6799
MD5 b53eb896f1085a064e9450ed23dfb4d2
BLAKE2b-256 255d0aba401fb689f58cf09e5c4482d9b20244966d7b4baba6da5bee00a54893

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jgrapht-1.5.0.2-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 1843283b400aa461b76f0c57ea85eca3b8e92cdd885f7753ea998013c13a56a5
MD5 f14f1eb2965d94fa359ca419c3245939
BLAKE2b-256 7e14990afbd6d98cc4a19927eb505ebbe40e33db5b5af2e4eaebc1ca1b833b81

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jgrapht-1.5.0.2-cp36-cp36m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 9.0 MB
  • Tags: CPython 3.6m, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.9.0

File hashes

Hashes for jgrapht-1.5.0.2-cp36-cp36m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 8acb177280ae41a35698c699daca2adc3b04a9d5a92ddab54cd1cd78e92fa904
MD5 ebbb1d05a89966aef23d32b5ed899bb6
BLAKE2b-256 2a1789def71942b1f0e49ba62a731a870b84c3bed5b522af1efdda6404fd07fd

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 Sentry Error logging StatusPage Status page