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.
- Inconsistent: the cython/c++ transport space is defined in there, not in
- 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 likeutil
andextras
. extras
contains partially stuff that actually should go into theridepy_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 toutil
- 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.
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.