Usage
package require pyman
pyman addPath pathName
This will add pathName to
the list of directories that Python searches for where to find Python module
files to be imported. This is roughly akin to lappend of a
directory to Tcl's auto_path variable or doing a ::tcl::tm::path add to
add a directory to the directories searched for module files.
pyman import ?-namespace nsName? pythonModuleFileName
This will import the Python module and analize the module using the Python
introspection tools. The following will be done:
- A namespace to contail the Tcl functions and class wrapers for the
functions and class will be created. If the -namesapce option
was present than its value, nsName, will be used. Otherwise the
namespace will be named ::pyman::pythonModuleName where
pythonModuleName is the name of the Python module that was
imported.
- For each function found in the module, a Tcl wrapper function will be
generated that take the same arguments and will call the Python function and
return its results.
- For each class found in the module, a TclOO wrapper class will be
generated. This class will have the same methods with the same arguments
as the public methods in the Python class.
- Creation of a new TclOO object of this class will result in a Python object
of the same class being created.
- (Not yet implemented) Calls to class methods of
the class will call static methods of the Python class.
- Calls to instance methods of the class will call instance methods of the
corresponding Python object instances.
- Instance attributes can be accessed via the following special methods:
- _attributes ?pattern? -- Get a list of attributes that match
the glob style pattern and their allowed
values. The default for pattern is
"*".
- _getAttribute attributeName -- Return the value of the
named attribute.
- _setAttribute attributeName value -- Set the named
attribute to the specified value. (Note: not all attributes can be modified).
- The Tcl programmer is allowed to add additional methods and/
or variables to the
TclOO class and/or instances of
the class, these will only be visble from Tcl.