Metadata#

class biotite.structure.io.mol.Metadata(metadata=None)[source]#

Bases: MutableMapping

Additional nonstructural data in an SD record.

The metadata is stored as key-value pairs. As SDF allows multiple different identifiers for keys, the keys are represented by Metadata.Key.

Parameters:
metadatadict, optional

The metadata as key-value pairs. Keys are instances of Metadata.Key. Alternatively, keys can be given as strings, in which case the string is used as the Metadata.Key.name. Values are strings. Line breaks in values are allowed.

Notes

Key names may only contain alphanumeric characters, underscores and periods.

Examples

>>> metadata = Metadata({
...     "foo": "Lorem ipsum",
...     Metadata.Key(number=42, name="bar"): "dolor sit amet,\nconsectetur"
... })
>>> print(metadata)
> <foo>
Lorem ipsum

> DT42 <bar>
dolor sit amet,
consectetur

>>> print(metadata["foo"])
Lorem ipsum
>>> # Strings can be only used for access, if the key contains only a name
>>> print("bar" in metadata)
False
>>> print(metadata[Metadata.Key(number=42, name="bar")])
dolor sit amet,
consectetur
class Key(*, number: ... = None, name: ... = None, registry_internal: ... = None, registry_external: ... = None)#

Bases: object

A metadata key.

Parameters:
numberint, optional

number of the field in the database.

namestr, optional

Name of the field. May only contain alphanumeric characters, underscores and periods.

registry_internalint, optional

Internal registry number.

registry_externalstr, optional

External registry number.

Attributes:
number, name, registry_internal, registry_external

The same as the parameters.

static deserialize(text)#

Create an object by deserializing the given text content.

Parameters:
contentstr

The content to be deserialized.

serialize()#

Convert this object into text content.

Returns:
contentstr

The serialized content.

static deserialize(text)#

Create an object by deserializing the given text content.

Parameters:
contentstr

The content to be deserialized.

serialize()#

Convert this object into text content.

Returns:
contentstr

The serialized content.