| |
- bexport(resname=None)
- bexport(resname=None) -> None
Make a module's file resources available in the module's namespace.
(This exports them, in the sense that another module will be able
to look up yourmodule.file_resource to get the file.)
If you provide no argument (resname=None), all file resources are
loaded in. If you provide the name of a resource, it alone is loaded;
if you provide the name of a resource group, all resources in that
group (and subgroups) are loaded.
In all cases, submodules are created where necessary. (So if the
resource name is 'sub.file', your module will end up with a 'dir'
submodule, if it didn't have one already.)
If you plan a submodule which contains both Python code and file
resources, you must call subimport() before bexport().
You may only call this from a sound module's top level.
- bimport(pkgname, spec=None)
- bimport(pkgname, spec=None) -> module
Import and return a Boodler sound module. You must pass the fully-
qualified module name.
You may also supply a version specification. (If you do not, you will
get the latest available version.) The spec may be a VersionSpec
object, a string (representing a VersionSpec), or a VersionNumber (to
request an exact version).
You may only call this from a sound module's top level. (When one
sound module depends on another, it generally wants to load it
immediately. This ensures that dependency problems show up right
away. The dependency tracking system in Boodler's package creator
also relies on this pattern.)
(To load packages and agents at runtime, based on user input, use
Agent.load_described().)
- get_file(filename, mod=None)
- get_file(filename, mod=None) -> File
Get a File by name, in a Boodler module. This returns a File object --
see the pinfo package -- not an open Python file.
The filename should be relative to the module root, and written
in universal form -- forward slashes only. An invalid or unsafe
filename will raise ValueError.
If no argument is given (mod=None), this gets a file from
the module itself. You may only use this form from a sound module's
top level.
If mod is an already-imported module, this gets a file from
it. You may call this form at any time.
If mod is a PackageInfo, this gets a file from the module it
describes.
- get_info(mod=None)
- get_info(mod=None) -> PackageInfo
Get the PackageInfo which describes a Boodler module.
If no argument is given (mod=None), this returns information about
the module itself. You may only use this form from a sound module's
top level.
If mod is an already-imported module, this returns information about
it. You may call this form at any time.
If mod is a PackageInfo, this returns it. (This form exists for
consistency with other functions in this package.)
- get_metadata(mod=None)
- get_metadata(mod=None) -> Metadata
Get the metadata which describes a Boodler module.
If no argument is given (mod=None), this returns metadata about
the module itself. You may only use this form from a sound module's
top level.
If mod is an already-imported module, this returns metadata about
it. You may call this form at any time.
If mod is a PackageInfo, this returns metadata from the module it
describes.
- now_building()
- now_building() -> module
Locate the module which is currently being imported. You may only call
this from a sound module's top level; it returns the very module in
whose top level it is.
This function exists because various parts of Boodler associate
information with the module, and a module might want to get that
information for itself.
- open_file(filename, binary=False, mod=None)
- open_file(filename, binary=False, mod=None) -> file
Open a file by name, in a Boodler module. This is equivalent to
get_file(filename, mod).open(binary).
The filename should be relative to the module root, and written
in universal form -- forward slashes only. An invalid or unsafe
filename will raise ValueError.
If no argument is given (mod=None), this opens a file from
the module itself. You may only use this form from a sound module's
top level.
If mod is an already-imported module, this opens a file from
it. You may call this form at any time.
If mod is a PackageInfo, this opens a file from the module it
describes.
- subimport(modname, mod=None)
- subimport(modname, mod=None) -> value or None
Import a submodule from a Boodler sound module. This replicates
the standard "import" statement. The modname may be a qualified
symbol name, or '*', or a symbol name ending with '.*'
If no argument is given (mod=None), this imports symbols from
the module itself. You may only use this form from a sound module's
top level.
If mod is an already-imported module, this imports symbols from
it. You may call this form at any time.
If mod is a PackageInfo, this imports symbols from the module it
describes.
NOTE: The exact behavior of this function may change, as I figure out
what it's good for. At the moment, the primary use is to allow
a module to import its submodules:
import package
# A top-level declaration in the module:
package.subimport('submodule')
|