Full Software Redesign
Opened this issue · 1 comments
- To address the issue in #98, I think a rewrite of the code is necessary so that the confidence interval calculations and Monte Carlo runs are in one place. It's difficult to do that right now because some of the software design is cumbersome. The main issues I have are in the readability of the code and organization of the functions and classes with non-standard Python naming schemes. It would be easier to maintain and contribute other Python package managers if we adhered to some of the standard practices followed by other open source projects like scipy or numpy or even scikit-rf. This is an outline of the organization that I had in mind:
measurement/
__init__.py ... constructor for the measurement module
-> resfit/
----> __init__.py ... constructor for the resfit module
----> resonator.py ... class definitions for fitting (delete fit_functions.py)
----> fileio.py ... replace process_files.py and make object-oriented file IO easier to maintain
----> fitting.py ... replace all files with fit with a single object-oriented file that handles the fits
----> plotting.py ... decouple the plotting and visualization from the fitting code
----> test/ ... unit testing to test each software component separately and together
--------> resonator_test.py ... tests the resonator classes and functions exhaustively
--------> fitting_test.py ... tests the fitting classes and functions
--------> plotting_test.py ... tests the plotting classes and functions
- A similar structure for the other submodules of the
measurement
module. We could add this module to pip or anaconda or another software repository so that folks can grab the latest stable release of the code without visiting the github page. Zlatko did this for pyEPR.
This is redundant with the software reorganization proposed by @nickkprice in #109