libSBML Python API
5.11.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.
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, args) |
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) |
Core class for SBML Level 3 package plug-ins. More... | |
def | getNumOfSupportedPackageURI (self) |
Returns the number of supported package namespace URIs. More... | |
def | getPackageVersion (self, args) |
Returns the package version associated with the given XML namespace URI. More... | |
def | getSBMLExtensionNamespaces (self, args) |
Returns a specialized SBMLNamespaces object corresponding to a given namespace URI. More... | |
def | getStringFromTypeCode (self, args) |
Returns a string representation of a type code. More... | |
def | getSupportedPackageURI (self, args) |
Returns the nth XML namespace URI. More... | |
def | getURI (self, args) |
Returns the XML namespace URI for a given Level and Version. More... | |
def | getVersion (self, args) |
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, args) |
Indicates whether this extension is being used by the given SBMLDocument. More... | |
def | isSupported (self, args) |
Returns True if the given XML namespace URI is supported by this package extension. More... | |
def | setEnabled (self, args) |
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, | |
args | |||
) |
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 | ) |
Core class for SBML Level 3 package plug-ins.
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.
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.
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, | |
args | |||
) |
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, | |
args | |||
) |
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, | |
args | |||
) |
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, | |
args | |||
) |
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, | |
args | |||
) |
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, | |
args | |||
) |
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, | |
args | |||
) |
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, | |
args | |||
) |
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, | |
args | |||
) |
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.