PhysicsOfMobility/ridepy

Update project directory structure

fxjung opened this issue · 1 comments

There are a few things I don't like with how the historically grown project structure has evolved, namely inconsistencies and unclear situations:

  • ridepy/util:
    • Inconsistent: the cython/c++ transport space is defined in there, not in data_structures_cython, where it should be
    • Confusing name: Most of the things inside there are not actually utilities. The name was historically chosen to differentiate the spaces, request generators etc. in there from the core of the simulator.
  • The mix of cythonic directories/packages and python modules in ridepy/ which represent the core of the whole thing makes it confusing for new users to separate it from the non-core packages like util and extras.
  • extras contains partially stuff that actually should go into the ridepy_extras repository, and partially stuff that is pretty universally and project-independently useful, like SimSet.
  • Unclear: ridepy/cpp -- should it stay this way?

Possible solution:

  • Clean out extras, rename it to util
  • Rename util to something that represents its "batteries-included" purpose. Any ideas?
  • Move all the core stuff, including the c++/cython def of TransportSpace to e.g. ridepy/core

As this is interface-breaking, we should try to find a nice solution and not act hastily.

@debsankha

My proposal to reorganise the code would be:
Separate teh C++, Cython and Python world by creating in the ridepy directory 3 subdirectories:

  • cpp
  • cython
  • python

Inside each of these subdirectories, all RidePy stuff in the given language is located. In this way, one can have in ridepy/cpp a C++ styled C++ library, in ridepy/cython a Cython styled Cython library and in ridepy/python a Python styled Python library.

In this case, the need to differ e.g. C++ code from Cython generated C++ files by complicated filename conventions is obsolete.