No edit summary
No edit summary
Line 21: Line 21:


=== Purpose ===
=== Purpose ===
*increase code sharing,
*increase code sharing, at a module level,
*increase relevance to Python users,
*increase relevance to Python users,
*increase portability of code written, beyond Pippy and Sugar,
*increase portability of code written, beyond Pippy and Sugar,
Line 27: Line 27:
=== Data ===
=== Data ===
A running Pippy instance will contain the following data:
A running Pippy instance will contain the following data:
*zero or more modules (either pure python modules, packages, or distutil source distributions, though not a sugar bundle),
*zero or more modules,
**(either pure python modules, packages, or distutil source distributions, though not a sugar bundle),
*each module will include zero, one (pure python modules) or more (packages or distutil source distributions) source files,
*each module will include zero, one (pure python modules) or more (packages or distutil source distributions) source files,
*each module will include a source file setup.py capable of creating the python zip bundle output, but unless the user has asked to edit the setup.py, it will not be shown, instead a default will be used, maintained by Pippy,
*each module will include a source file setup.py capable of creating the python distutil source distribution output, but unless the user has asked to edit the setup.py, it will not be shown, instead a default will be used, created and maintained by Pippy,


A shared Pippy will contain the same data as above on each laptop.
A shared Pippy will contain the same data as above on each laptop.
Line 35: Line 36:
=== Input ===
=== Input ===
Pippy may read from:
Pippy may read from:
*a saved instance of Pippy, in the journal,
*a saved instance of Pippy, in the journal, by activation only,
*a module (python zip bundle) in the journal, (which may have come from a teacher, another learner, or a server),
*a module in the journal, (which may have come from a teacher, another learner, or a server), usign the object chooser,
*example modules included with Pippy,
**in pure python module form, as a single source file,
**in distutil source distribution form, as multiple source files inside a tar or zip container,
*pristine example modules included with Pippy, using a button and an example chooser.


=== Output ===
=== Output ===
Pippy may write to:
Pippy may write to:
*a saved instance of Pippy, in the journal,
*a saved instance of Pippy, in the journal,
**(activation of this journal entry: run the Pippy activity and present exactly what was visible at the time the saved instance was created)
*a pure python module, in the journal,
*a module (python zip bundle) in the journal.
**represented as a single source file,
**(activation of this journal entry: run the Pippy activity in an execution only mode that behaves in the same way as the "run" button, displaying a VTE (only if stdout is written to, or stdin is read from), and if not exiting immediately, without creating a journal entry,)
*a package module, in the journal,
**represented as a distutils source distribution in tar or zip container.
 
=== Activation ===
 
Pippy may be activated from a journal entry:
*a saved instance of Pippy, which will start the Pippy activity and present exactly what was visible at the time the saved instance was created,
*a pure python module or package module, which will start the Pippy activity in an execution only mode that behaves in the same way as the "run" button, displaying a VTE (only if stdout is written to, or stdin is read from), and if not exiting immediately, without creating a journal entry.


=== Display ===
=== Display ===