The networkx project is, I think, a project which pathpy might look to be highly compatible with, since its users are among the most likely to use pathpy. To that end it would be useful to refactor the api to be in line with the PEP8 style guide as well as separating the algorithms working on the various objects from those objects (i.e. get_betweeness_preference for Paths becomes a function and not a method).
Here are a few daring proposals (just my opinion 😁) that in part would break backward compatibility 💥
I have already implemented some of these changes and kept the functionality equal to the current pathpy implementation (thanks to unit tests) (see here).
Sorry for long post.
The
networkxproject is, I think, a project whichpathpymight look to be highly compatible with, since its users are among the most likely to usepathpy. To that end it would be useful to refactor the api to be in line with the PEP8 style guide as well as separating the algorithms working on the various objects from those objects (i.e.get_betweeness_preferenceforPathsbecomes a function and not a method).Here are a few daring proposals (just my opinion 😁) that in part would break backward compatibility 💥
getSequence()becomessequence())Paths,HigherOrderNetwork,MarkovSequenceandTemporalNetwork) into aclassessub-module (i.e. a folder) (inspired by structure of networkx)algorithmssumodules__init__.pythe additional level in the file hierachy would not be visible to the user.pathpy.betweenness_preference(paths_inst)instead ofpaths_inst.betweenness_preference()the latter behavior can still be maintained if desirednxequivalent an vice versanxnxloggingmodule in the python standard library instead of the current custom implementation (Log)I have already implemented some of these changes and kept the functionality equal to the current pathpy implementation (thanks to unit tests) (see here).
Sorry for long post.