CEP8
Status | Active |
Author | Kyle Mandli <kyle.mandli@gmail.com> |
Created | March 19th, 2015 |
Updated | March 19th, 2015 |
Discussion | Issue #60 |
Implementation |
We have a bit of an issue with handling I/O throughout the Clawpack packages. The particular problem includes the reimplementation of a number of ways for implementing I/O, in particular in VisClaw, that has lead to difficult to diagnose bugs. This CEP is intended to address this problem by attempting to create an object which can store the needed state and options of I/O handling and provide a uniform interface to interfacing with the all the types of files that are handled in Clawpack.
Currently there is a preliminary interface to such as object suggested in PR 508. This is clearly an early prototype and we hope that over time this specification can be more specific.
- [] What should the name of the object be? Suggested
IOController
orPancakes
- [] What should the exposed API be (the one that all the other packages would call)?
- [] What state is needed for this object to do what it needs?
- [] What I/O files (fort.q, fort.t, fort.p, fort.*, fort.gauges, etc.) should this object handle?
This could be made backwards compatible with replacement of old (and deprecated by this CEP) functions that accomplished the same things with calls to the new object. This will probably not be completely backwards compatible as options to some of these functions would otherwise override the function signature inputs in general.