Author: bugman Date: Sat Nov 4 06:12:26 2006 New Revision: 2732 URL: http://svn.gna.org/viewcvs/relax?rev=2732&view=rev Log: Creation of a planning document for the relax data model redesign. This is still in draft form and will need a lot of work, including the addition of URLs to the mailing list archives. Added: 1.3/docs/data_model_redesign Added: 1.3/docs/data_model_redesign URL: http://svn.gna.org/viewcvs/relax/1.3/docs/data_model_redesign?rev=2732&view=auto ============================================================================== --- 1.3/docs/data_model_redesign (added) +++ 1.3/docs/data_model_redesign Sat Nov 4 06:12:26 2006 @@ -1,0 +1,44 @@ +###################################################### +# The relax data model redesign -- planning document # +###################################################### + + +# Preparation. +############## + + +* Firstly release relax version 1.3.0 prior to any changes (to allow a functional version which handles RNA better, has the tensor PDB representation code, etc). + +* Redesign 'self.relax.data'. + +* Rename 'prompt/run.py' to 'prompt/pipe.py'. Rename 'generic_fns/runs.py' to 'generic_fns/pipes.py'. + +* Create the data pipe looping function for the 'pipes' argument (http://???). + +* Create the spin loop function (http://???). + +* Create a function for returning specific spin data. + + + +# The incremental changes. +########################## + +The following are the steps to be taken for the function to function, file to file incremental conversion of the old system to the new system. For each function: + +* Rewrite the function docstring expanding to better describe what the function is doing. Convert to the epytext format for describing what data is input, what data is returned, etc. + +* User function docstrings should not be converted to epytext format. The variable __doctype__ should be set to 'plaintext' just after each docstring so that the API documentation can properly interpret the docstring. + +* Write a unit test for the function. This must be done prior to modifying the code. + +* Remove all the 'run' arguments and the code accessing it. + +* Add the 'pipes' argument to each user function in the 'prompt' directory to allow looping over a number of data pipes (http://?). + +* Use the following code at the start if 'self.relax.data' is accessed by the function: +----- +# Alias the data for the current data pipe. +data = self.relax.data[self.relax.pipe] +----- +Then access the object 'data' throughout the function.