== 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 ([http://www.pytables.org PyTables], [http://en.wikipedia.org/wiki/Microsoft_Excel Excel], [http://en.wikipedia.org/wiki/DBASE 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 [http://www.pytables.org PyTables] as intermediate storage * more ...