libSBML Python API
5.18.0
|
This class of objects is defined by libSBML only and has no direct equivalent in terms of SBML components. This class is not prescribed by the SBML specifications, although it is used to implement features defined in SBML.
The SBMLExtension class is a component of the libSBML package extension mechanism. It is an abstract class that is extended by each package extension implementation.
LibSBML defines a number of classes that developers of package extensions can use to implement support for an SBML Level 3 package. These classes make it easier to extend libSBML objects with new attributes and/or subobjects as needed by a particular Level 3 package. Three overall categories of classes make up libSBML's facilities for implementing package extensions. There are (1) classes that serve as base classes meant to be subclassed, (2) template classes meant to be instantiated rather than subclassed, and (3) support classes that provide utility features. A given package implementation for libSBML will take the form of code using these and other libSBML classes, placed in a subdirectory of src/sbml/packages/
.
The basic libSBML distribution includes a number of package extensions implementing support for officially-endorsed SBML Level 3 packages; among these are Flux Balance Constraints ('fbc'), Hierarchical Model Composition ('comp'), Layout ('layout'), and Qualitative Models ('qual'). They can serve as working examples for developers working to implement other packages.
Extensions in libSBML can currently only be implemented in C++ or C; there is no mechanism to implement them first in languages such as Java or Python. However, once implemented in C++ or C, language interfaces can be generated semi-automatically using the framework in place in libSBML. (The approach is based on using SWIG and facilities in libSBML's build system.)
This has the following consequence. If an application queries for the presence of Layout in an SBML Level 2 document by testing only for the existence of the plugin object, it will always get a positive result; in other words, the presence of a Layout extension object is not an indication of whether a read-in Level 2 document does or does not use SBML Layout. Instead, callers have to query explicitly for the existence of layout information. An example of such a query is the following code:
The special, always-available Level 2 Layout behavior was motivated by a desire to support legacy applications. In SBML Level 3, the Layout package uses the normal SBML Level 3 scheme of requiring declarations on the SBML document element. This means that upon reading a model, libSBML knows right away whether it contains layout information. In SBML Level 2, there is no top-level declaration because layout is stored as annotations in the body of the model. Detecting the presence of layout information when reading a Level 2 model requires parsing the annotations. For efficiency reasons, libSBML normally does not parse annotations automatically when reading a model. However, applications that predated the introduction of Level 3 Layout and the updated version of libSBML never had to do anything special to enable parsing layout; the facilities were always available for every Level 2 model as long as libSBML was compiled with Layout support. To avoid burdening developers of legacy applications with the need to modify their software, libSBML provides backward compatibility by always preloading the Layout package extension when reading Level 2 models. The same applies to the creation of Level 2 models: with the plugin-oriented libSBML, applications normally would have to take deliberate steps to activate package code, instantiate objects, manage namespaces, and so on. LibSBML again loads the Layout package plugin automatically when creating a Level 2 model, thereby making the APIs available to legacy applications without further work on their part.
Public Member Functions | |
def | clone (self) |
Creates and returns a deep copy of this SBMLExtension object. More... | |
def | getLevel (self, uri) |
Returns the SBML Level associated with the given XML namespace URI. More... | |
def | getName (self) |
Returns the nickname of this package. More... | |
def | getNumOfSBasePlugins (self) |
Returns the number of SBasePluginCreatorBase objects stored in this object. More... | |
def | getNumOfSupportedPackageURI (self) |
Returns the number of supported package namespace URIs. More... | |
def | getPackageVersion (self, uri) |
Returns the package version associated with the given XML namespace URI. More... | |
def | getSBMLExtensionNamespaces (self, uri) |
Returns a specialized SBMLNamespaces object corresponding to a given namespace URI. More... | |
def | getStringFromTypeCode (self, typeCode) |
Returns a string representation of a type code. More... | |
def | getSupportedPackageURI (self, n) |
Returns the nth XML namespace URI. More... | |
def | getURI (self, sbmlLevel, sbmlVersion, pkgVersion) |
Returns the XML namespace URI for a given Level and Version. More... | |
def | getVersion (self, uri) |
Returns the SBML Version associated with the given XML namespace URI. More... | |
def | isEnabled (self) |
Returns True if this package is enabled. More... | |
def | isInUse (self, doc) |
Indicates whether this extension is being used by the given SBMLDocument. More... | |
def | isSupported (self, uri) |
Returns True if the given XML namespace URI is supported by this package extension. More... | |
def | setEnabled (self, isEnabled) |
Enable or disable this package. More... | |
def libsbml.SBMLExtension.clone | ( | self | ) |
Creates and returns a deep copy of this SBMLExtension object.
clone() SBMLExtension
def libsbml.SBMLExtension.getLevel | ( | self, | |
uri | |||
) |
Returns the SBML Level associated with the given XML namespace URI.
getLevel(string uri) long
uri | the string of URI that represents a version of the package. |
def libsbml.SBMLExtension.getName | ( | self | ) |
Returns the nickname of this package.
getName() string
This returns the short-form name of an SBML Level 3 package implemented by a given SBMLExtension-derived class. Examples of such names are 'layout', 'fbc', etc.
def libsbml.SBMLExtension.getNumOfSBasePlugins | ( | self | ) |
Returns the number of SBasePluginCreatorBase objects stored in this object.
getNumOfSBasePlugins() int
def libsbml.SBMLExtension.getNumOfSupportedPackageURI | ( | self | ) |
Returns the number of supported package namespace URIs.
getNumOfSupportedPackageURI() long
def libsbml.SBMLExtension.getPackageVersion | ( | self, | |
uri | |||
) |
Returns the package version associated with the given XML namespace URI.
getPackageVersion(string uri) long
uri | the string of URI that represents a version of this package. |
def libsbml.SBMLExtension.getSBMLExtensionNamespaces | ( | self, | |
uri | |||
) |
Returns a specialized SBMLNamespaces object corresponding to a given namespace URI.
getSBMLExtensionNamespaces(string uri) SBMLNamespaces
LibSBML package extensions each define a subclass of SBMLNamespaces.
The present method returns the appropriate object corresponding to the given XML namespace URI in argument uri
.
uri | the namespace URI that represents one of versions of the package implemented in this extension. |
None
if the given uri
is not defined in the corresponding package.def libsbml.SBMLExtension.getStringFromTypeCode | ( | self, | |
typeCode | |||
) |
Returns a string representation of a type code.
getStringFromTypeCode(int typeCode) string *
This method takes a numerical type code typeCode
for a component object implemented by this package extension, and returns a string representing that type code.
typeCode | the type code to turn into a string. |
typeCode
.def libsbml.SBMLExtension.getSupportedPackageURI | ( | self, | |
n | |||
) |
Returns the nth XML namespace URI.
getSupportedPackageURI(long n) string
n | the index number of the namespace URI being sought. |
def libsbml.SBMLExtension.getURI | ( | self, | |
sbmlLevel, | |||
sbmlVersion, | |||
pkgVersion | |||
) |
Returns the XML namespace URI for a given Level and Version.
getURI(long sbmlLevel, long sbmlVersion, long pkgVersion) string
sbmlLevel | the SBML Level. |
sbmlVersion | the SBML Version. |
pkgVersion | the version of the package. |
def libsbml.SBMLExtension.getVersion | ( | self, | |
uri | |||
) |
Returns the SBML Version associated with the given XML namespace URI.
getVersion(string uri) long
uri | the string of URI that represents a version of the package. |
def libsbml.SBMLExtension.isEnabled | ( | self | ) |
Returns True
if this package is enabled.
isEnabled() bool
True
if this package is enabled, False
otherwise. def libsbml.SBMLExtension.isInUse | ( | self, | |
doc | |||
) |
Indicates whether this extension is being used by the given SBMLDocument.
isInUse(SBMLDocument doc) bool
The default implementation returns True
. This means that when a document had this extension enabled, it will not be possible to convert it to SBML Level 2 as we cannot make sure that the extension can be converted.
doc | the SBML document to test. |
def libsbml.SBMLExtension.isSupported | ( | self, | |
uri | |||
) |
Returns True
if the given XML namespace URI is supported by this package extension.
isSupported(string uri) bool
True
if the given XML namespace URI (equivalent to a package version) is supported by this package extension, False
otherwise. def libsbml.SBMLExtension.setEnabled | ( | self, | |
isEnabled | |||
) |
Enable or disable this package.
setEnabled(bool isEnabled) bool
isEnabled | flag indicating whether to enable (if True ) or disable (False ) this package extension. |
True
if this call succeeded; False
otherwise.