To do
This is a collection of things that need to be done. The order doesn't imply any priority. These tasks may be turned into tickets and assigned to milestones.
Tasks in Progress
- write unit tests
- define API --> partially done
- write documentation, tutorial etc.
develop plugin system for custom readers/writes (do thorough research on existing plugin systems)registry that stores functions in a dictionary implemented- write example applications that use PyModelData (there are two, with an older version though --> update)
Next Tasks
- open function for format modules
- exception handling for open function
- exception handling for !INCLUDE
- allow specifying of data types for non-yaml formats, i.e. each column may have a data type
Shorter Term Tasks
- check for entries in data that are not in default
- add property require for keywords that should not work with default values
- implement more readers/writers for other formats (PyTables, Excel, dBase)
- add checks and conversions for physical units
Longer Term Tasks
- use ordered dict as default in YAML (makes writing back in the order of reading possible --> round-trip) --> patch to YAML
- maybe allow unlimited nesting levels in data (there are only two levels now)
- make dump aware of numpy arrays
- allow lazy reading of large files (use generators/iterators)
- write desktop GUI (prerequisite: round-trip)
- write web GUI (prerequisite: round-trip)
- make list with projects/applications/models that use PyModeldata
- idea: access to model data via SQLite database or use PyTables as intermediate storage
- more ...
