python-jgrapht 1.5.0.0rc1

18 views
Skip to first unread message

Dimitrios Michail

unread,
Jun 18, 2020, 10:15:43 AM6/18/20
to jgrapht-dev

After quite some time and effort we are finally close to a release.

All platforms builds are currently working (https://github.com/ftsamis did that part of the work), which means that we now 
support 64-bit versions of python 3.6, 3.7, 3.8 times manylinux2010, macosx and windows.

If you have access to some mac or windows platform, please test it. A simple `pip install jgrapht` should work out-of-the box. On 
linux the only requirement is that `pip>=19.0`. 

The release candidate version is `1.5.0.0rc1`. If it based on the 1.5.0 release of the backend. For now I used a semver with an 
extra .x part to designate that we track the 1.5.0 release of the backend, but also allow releases, bugfixes, new features independently.
This might need to be revisited if people start contributing stuff directly in the python version.

Except from these changes, I have made some significant changes in the graph support. It has two main graph implementations 
  - (default) graph 
  - property graph

The (default) graph is oriented towards scientific (algorithmic) workloads. Vertices and edges are integers. Importers/exporters are fully
supported with vertex/edge attributes using callback functions, just like in our java importers/exporters. We also have support for sparse graphs.
Additional attributes must be externally kept by the users using dictionaries. 

The property graph. This is a graph which allows the use of any python hashable as a vertex or edge (created either directly or using suppliers just like in Java).
Moreover, it provides support for storing vertex and edge properties/attributes inside the graph. Importers/exporters recognize such implementations
and create automatically the necessary callbacks for vertex/edge properties/attributes.  Note that this is a python implementation, which wraps a (default) graph, 
and thus it incurs a performance penalty.  This implementation is oriented towards less scientific workloads.
It borrows the name from the graph databases. In that context a property graph is usually a "labeled multi-graph where both nodes and edges can contain pairs of the form property-value".

Full documentation with tutorial, example and docs is available at:


Test coverage is currently at 96%. 

Feedback is welcome. 

Cheers, 
Dimitrios

P.S. I also plan to write a medium post, to announce the library.







John Sichi

unread,
Jun 19, 2020, 9:26:16 PM6/19/20
to jgrapht-dev
I was able to successfully test on Linux.  (I don't have access to any mac/windows at the moment.)

Note that for too-old pip versions, it still tries to go ahead and build (and then fails if the necessary tools aren't installed), so some kind of precheck to fail fast would be good.

Let me know once the medium post is out so I can use it for the announcement in the JGraphT Facebook page.

Dimitrios Michail

unread,
Jun 29, 2020, 1:18:19 PM6/29/20
to jgrapht-dev

Finally released the first version (1.5.0.0).  I rewrote some parts and reverted the use of the "property-graph" as it related to 
much to the graph database and people start asking for cypher queries.

I instead used the term any-hashable graph for the graph that can have any Python hashable as vertex/edge. 


Here is the link to the medium post for the announcement: 



Cheers, 
Dimitrios

John Sichi

unread,
Jun 29, 2020, 6:18:14 PM6/29/20
to jgrapht-dev
Awesome...I've sent out announcements on jgrapht-users, jgrapht-announce, and the FB page.

I was going to add links on the website too, and then I noticed that the website didn't get updated for the Java 1.5.0 release.  Joris, were you planning to do that, or should I go ahead with it myself?  I think it's worth a "Python bindings now available!" link at the top of the page, not just in the News section.

Joris Kinable

unread,
Jun 30, 2020, 2:42:01 AM6/30/20
to John Sichi, jgrapht-dev
Website issue should be fixed now.
@John: could you add the appropriate jgrapht-python links and news? I agree that this should also be somewhere at the top of the page.

--
You received this message because you are subscribed to the Google Groups "jgrapht-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jgrapht-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jgrapht-dev/7b86b7ac-4a96-4588-bffd-fdf11da7c4c0o%40googlegroups.com.

John Sichi

unread,
Jul 1, 2020, 5:22:24 PM7/1/20
to jgrapht-dev
I've updated the site with the links and news, including the paper as well.
To unsubscribe from this group and stop receiving emails from it, send an email to jgrapht-dev+unsubscribe@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages