Read SDMX file formats¶
SDMX-ML¶
sdmx.reader.xml
supports the several types of SDMX-ML messages.
Implementation details:
The collections of
StructureMessage
(e.g.StructureMessage.codelist
) are implemented bysdmx
asDictLike
, withstr
keys, for convenience; the standard would imply these could be other collections, such as a simplelist
. The format of the keys in each collection depends on the content of the message parsed byreader.xml
:Simply
{object.id}
(IdentifiableArtefact.id
) of the contained objects, if these are unique;Otherwise
{maintainer.id}:{object.id}
(using theAgency
id) if these are unique;Otherwise
{maintainer.id}:{object.id}({object.version})
(using theVersionableArtefact.version
).
This ensures that all objects in a parsed message are accessible.
SDMX-ML v2.1 reader.
- class sdmx.reader.xml.v21.Reader[source]¶
SDMX-ML 2.1 reader.
- format: ClassVar['types.ModuleType'] = <module 'sdmx.format.xml.v21' from '/home/docs/checkouts/readthedocs.org/user_builds/sdmx1/envs/stable/lib/python3.13/site-packages/sdmx/format/xml/v21.py'>[source]¶
Reference to the module defining the format read.
- media_types: ClassVar[list[MediaType]] = [application/vnd.sdmx.generic+xml; version=2.1, application/vnd.sdmx.genericdata+xml; version=2.1, application/vnd.sdmx.genericmetadata+xml; version=2.1, application/vnd.sdmx.generictimeseriesdata+xml; version=2.1, application/vnd.sdmx.schema+xml; version=2.1, application/vnd.sdmx.structure+xml; version=2.1, application/vnd.sdmx.structurespecificdata+xml; version=2.1, application/vnd.sdmx.structurespecificmetadata+xml; version=2.1, application/vnd.sdmx.structurespecifictimeseriesdata+xml; version=2.1, application/xml; version=2.1, text/xml; version=2.1][source]¶
List of media types, used by
handles()
.
- model: ClassVar['types.ModuleType'] = <module 'sdmx.model.v21' from '/home/docs/checkouts/readthedocs.org/user_builds/sdmx1/envs/stable/lib/python3.13/site-packages/sdmx/model/v21.py'>[source]¶
Reference to the module defining the information model read.
- parser: ClassVar[dict[tuple[QName, str], Callable]] = {(<lxml.etree.QName object>, 'end'): <function _as_end>, (<lxml.etree.QName object>, 'start'): <function _as_start>, (<lxml.etree.QName object>, 'end'): <function _group_ss>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _obs_ss>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _rv>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _md_report>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _series_ss>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _tov>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _a>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _localization>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ms>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _localization>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _p>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ms>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _localization>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _p>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): <function _st>, (<lxml.etree.QName object>, 'end'): <function _localization>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _tr>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _avs>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _group>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _key1>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _obs>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _key1>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _series>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _key1>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _footer>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _contact_end>, (<lxml.etree.QName object>, 'start'): <function _contact_start>, (<lxml.etree.QName object>, 'end'): <function _ds_end>, (<lxml.etree.QName object>, 'start'): <function _ds_start>, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _localization>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): <function _message>, (<lxml.etree.QName object>, 'end'): <function _datetime>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): <function _message>, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): <function _message>, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): <function _message>, (<lxml.etree.QName object>, 'end'): <function _header>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _mds_end>, (<lxml.etree.QName object>, 'start'): <function _mds_start>, (<lxml.etree.QName object>, 'end'): <function _datetime>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _header_org>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _datetime>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _datetime>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _localization>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _header_org>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _localization>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _header_structure>, (<lxml.etree.QName object>, 'start'): <function _message>, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): <function _message>, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): <function _message>, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): <function _message>, (<lxml.etree.QName object>, 'end'): <function _structures>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _as_end>, (<lxml.etree.QName object>, 'start'): <function _as_start>, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _rv>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _md_report>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ra>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _tov>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _item_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ar>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _cat>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _item_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _item_start>, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _item_map>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ismap_end>, (<lxml.etree.QName object>, 'start'): <function _ismap_start>, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _concept>, (<lxml.etree.QName object>, 'start'): <function _item_start>, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _contact_end>, (<lxml.etree.QName object>, 'start'): <function _contact_start>, (<lxml.etree.QName object>, 'end'): <function _cc>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _rep>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _cr>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ct>, (<lxml.etree.QName object>, 'start'): <function _item_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _item_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _dks>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _item_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _structure_end>, (<lxml.etree.QName object>, 'start'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _localization>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _facet>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _vtlm_from>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function _hc>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _hcl>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _h>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function _icl>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _key0>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function _l>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _rep>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function _structure_end>, (<lxml.etree.QName object>, 'start'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _np>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ar_kind>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _localization>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _rs>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ss>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _facet>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function _vtlm_to>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _trans>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ts>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _udo>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _vtlm>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None}[source]¶
Mapping from (QName, [“start”, “end”]) to a function that parses the element/event or else None (no parsing).
- sdmx.reader.xml.v21.add_mds_events(reader: Reader, mds: MetadataStructureDefinition)[source]¶
Add parser events for structure-specific metadata.
SDMX-ML 3.0.0 reader.
- class sdmx.reader.xml.v30.Reader[source]¶
SDMX-ML 3.0 reader.
- format: ClassVar['types.ModuleType'] = <module 'sdmx.format.xml.v30' from '/home/docs/checkouts/readthedocs.org/user_builds/sdmx1/envs/stable/lib/python3.13/site-packages/sdmx/format/xml/v30.py'>[source]¶
Reference to the module defining the format read.
- media_types: ClassVar[list[MediaType]] = [application/vnd.sdmx.data+xml; version=3.0.0, application/vnd.sdmx.structure+xml; version=3.0.0][source]¶
List of media types, used by
handles()
.
- model: ClassVar['types.ModuleType'] = <module 'sdmx.model.v30' from '/home/docs/checkouts/readthedocs.org/user_builds/sdmx1/envs/stable/lib/python3.13/site-packages/sdmx/model/v30.py'>[source]¶
Reference to the module defining the information model read.
- parser: ClassVar[dict[tuple[QName, str], Callable]] = {(<lxml.etree.QName object>, 'end'): <function _as_end>, (<lxml.etree.QName object>, 'start'): <function _as_start>, (<lxml.etree.QName object>, 'end'): <function _complex>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _group_ss>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _obs_ss>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _rv>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _md_report>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _series_ss>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _tov>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _complex_value>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _a>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _localization>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ms>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _localization>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _p>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ms>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _localization>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _p>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): <function _st>, (<lxml.etree.QName object>, 'end'): <function _localization>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _tr>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _avs>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _group>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _key1>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _obs>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _key1>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _series>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _key1>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _footer>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _contact_end>, (<lxml.etree.QName object>, 'start'): <function _contact_start>, (<lxml.etree.QName object>, 'end'): <function _ds_end>, (<lxml.etree.QName object>, 'start'): <function _ds_start>, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _localization>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): <function _message>, (<lxml.etree.QName object>, 'end'): <function _datetime>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): <function _message>, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): <function _message>, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): <function _message>, (<lxml.etree.QName object>, 'end'): <function _header>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _mds_end>, (<lxml.etree.QName object>, 'start'): <function _mds_start>, (<lxml.etree.QName object>, 'end'): <function _datetime>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _header_org>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _datetime>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _datetime>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _localization>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _header_org>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _localization>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _header_structure>, (<lxml.etree.QName object>, 'start'): <function _message>, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): <function _message>, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): <function _message>, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): <function _message>, (<lxml.etree.QName object>, 'end'): <function _structures>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _as_end>, (<lxml.etree.QName object>, 'start'): <function _as_start>, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _rv>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _md_report>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ra>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _tov>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _item_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ar>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _cat>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _item_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _item_start>, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _item_map>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _cl>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _cl_ext>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ismap_end>, (<lxml.etree.QName object>, 'start'): <function _ismap_start>, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _concept>, (<lxml.etree.QName object>, 'start'): <function _item_start>, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _contact_end>, (<lxml.etree.QName object>, 'start'): <function _contact_start>, (<lxml.etree.QName object>, 'end'): <function _cc>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _rep>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _cr>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ct>, (<lxml.etree.QName object>, 'start'): <function _item_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _cc>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _item_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _dks>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _item_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _structure_end>, (<lxml.etree.QName object>, 'start'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _localization>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _facet>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _code_selection>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _vtlm_from>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _item_start>, (<lxml.etree.QName object>, 'end'): <function _ggc_end>, (<lxml.etree.QName object>, 'start'): <function _item_start>, (<lxml.etree.QName object>, 'end'): <function _ggcl>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function _hc>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _hcl>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _h>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function _icl>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _code_selection>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _key0>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function _ms>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _l>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _rep>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _mv>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _structure_end>, (<lxml.etree.QName object>, 'start'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _np>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ar_kind>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ar_kind>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _localization>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _rs>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ss>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ref>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _facet>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _component_start>, (<lxml.etree.QName object>, 'end'): <function _vtlm_to>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _trans>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _ts>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _udo>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): <function _item_start>, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _vtlm>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function XMLEventReader.possible_reference.<locals>.decorator.<locals>.wrapped>, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): None, (<lxml.etree.QName object>, 'start'): None, (<lxml.etree.QName object>, 'end'): <function _text>, (<lxml.etree.QName object>, 'start'): None}[source]¶
Mapping from (QName, [“start”, “end”]) to a function that parses the element/event or else None (no parsing).
SDMX-JSON¶
SDMX-JSON v2.1 reader
- class sdmx.reader.json.Reader[source]¶
Read SDMX-JSON and expose it as instances from
sdmx.model
.- binary_content_startswith: ClassVar[bytes | None] = b'{'[source]¶
First byte(s) of file or response body content, used by
handles()
.
- convert(data, structure=None, **kwargs)[source]¶
Convert data to an instance of an SDMX Message subclass.
- Parameters:
data (
file-like
) – Message content.structure –
DataStructure
orMetadataStructure
for aid in reading source.
- Returns:
An instance of a Message subclass.
- Return type:
- classmethod detect(content)[source]¶
Detect whether the reader can handle content.
Deprecated since version 2.20.0: Use
handles()
instead.
- media_types: ClassVar[list[MediaType]] = [application/vnd.sdmx.data+json; version=1.0.0, application/vnd.sdmx.structure+json; version=1.0.0, application/vnd.sdmx.draft-sdmx-json+json; version=1.0.0, draft-sdmx-json; version=1.0.0, text/json; version=1.0.0][source]¶
List of media types, used by
handles()
.
SDMX-CSV¶
sdmx.reader.csv
supports SDMX-CSV 2.0.0, corresponding to SDMX 3.0.0.
See SDMX-CSV for differences between versions of the SDMX-CSV file format.
Implementation details:
Reader.inspect_header()
inspects the header line in the CSV input and constructs a set ofHandler
instances, one for each field appearing in the particular file. Some of these handlers do actually process the contents of the field, but silently discard it; for example, whenlabels="name"
, the name fields are not processed.Reader.handle_row()
is applied to every record in the CSV input. Each Handler is applied to its respective field. Everyhandle_row()
call constructs a singleObservation
.Reader.read_message()
assembles the resulting observations into one or moreDataSets
. SDMX-CSV 2.0.0 specifies a mix of codes such as “I” (ActionType.information
) and “D” (ActionType.delete
) in the “ACTION” field for each observation in the same file, whereas the SDMX IM specifies thataction
is an attribute of an entire DataSet.Reader
groups all observations into 1 or more DataSet instances, according to their respective “ACTION” field values.
Currently reader.csv
has the following limitations:
Reader.read_message()
generates SDMX 3.0.0 (model.v30
) artefacts such asv30.DataSet
, since these correspond to the supported SDMX-CSV 2.0.0 format. It is not currently supported to generate SDMX 2.1 artefacts such asv21.DataSet
.Currently only a single :class`.v30.Dataflow` or
v30.DataStructureDefinition
can be supplied toReader.read_message()
. The SDMX-CSV 2.0.0 format supports mixing data flows and data structures in the same message. Such messages can be read withsdmx
, but the resulting data sets will only correspond to the given data flow.
- class sdmx.reader.csv.AttributeValue(attribute, multi: bool)[source]¶
Bases:
Handler
Handle a
v30.AttributeValue
for oneDataAttribute
.The attribute value is attached to the obs.
- class sdmx.reader.csv.Custom(header: str)[source]¶
Bases:
Handler
Handler for custom columns.
Currently values are ignored.
Todo
Store as
Annotation
or temporary attribute values on obs.
- class sdmx.reader.csv.DataFrameConverter[source]¶
Bases:
Converter
- convert(data: pandas.DataFrame, structure=None, **kwargs) sdmx.message.DataMessage [source]¶
Convert data to an instance of an SDMX Message subclass.
- class sdmx.reader.csv.Handler[source]¶
Bases:
ABC
Base class for
Reader.handlers
.
- class sdmx.reader.csv.Name[source]¶
Bases:
Handler
Handler for
Options.labels == "name"
columns.Does nothing; the values are not stored.
- class sdmx.reader.csv.ObsKey[source]¶
Bases:
NotHandled
“OBS_KEY” columns are currently not handled.
- class sdmx.reader.csv.ObsValue(measure, **kwargs)[source]¶
Bases:
Handler
Handle the :attr:`Observation.value <.BaseObservation.value>.
In line with
model.v30
, multiple values (for data structures with multiple measures) are currently not handled.
- class sdmx.reader.csv.Options(labels: ~typing.Literal['both', 'id', 'name'] = 'id', key: ~typing.Literal['both', 'none', 'obs', 'series'] = 'none', custom_columns: list[bytes] = <factory>, delimiter: str = ', ', delimiter_sub: str = '')[source]¶
Bases:
object
SDMX-CSV 2.0.0 format options.
- custom_columns: list[bytes][source]¶
“Custom columns” detected by
Reader.inspect_header()
.
- class sdmx.reader.csv.Reader[source]¶
Bases:
BaseReader
Read SDMX-CSV.
- handlers: Sequence[Handler][source]¶
Handlers for individual fields in a CSV record. This collection has exactly the same number of handlers as columns in the data passed to
convert()
.
- inspect_header(header: list[str]) None [source]¶
Inspect the SDMX-CSV header and determine the format
Options
.- Raises:
ValueError – if the data contain malformed SDMX-CSV 2.0.0.
- class sdmx.reader.csv.SeriesKey[source]¶
Bases:
NotHandled
“SERIES_KEY” columns are currently not handled.
Reader API¶
- sdmx.reader.CONVERTER = [<class 'sdmx.reader.csv.DataFrameConverter'>, <class 'sdmx.reader.csv.Reader'>, <class 'sdmx.reader.json.Reader'>, <class 'sdmx.reader.xml.Reader'>][source]¶
All converters. Application code may extend this collection with custom sub-classes of
Converter
.
- sdmx.reader.READERS = [<class 'sdmx.reader.csv.Reader'>, <class 'sdmx.reader.json.Reader'>, <class 'sdmx.reader.xml.Reader'>][source]¶
Only Readers for standard SDMX formats.
- sdmx.reader.detect_content_reader(content) type[sdmx.reader.base.BaseReader] [source]¶
Return a reader class for
bytes
content.Deprecated since version 2.20.0: Use
get_reader()
instead.
- sdmx.reader.get_converter(data: Any, kwargs: dict | None = None) type[sdmx.reader.base.Converter] [source]¶
Identify a
Converter
orReader
for data.For each class in
CONVERTER
, theConverter.handles()
orBaseReader.handles()
method is called with data and kwargs.data may include:
bytes
—same behaviour as deprecateddetect_content_reader()
.requests.Response
—same behaviour as deprecatedget_reader_for_media_type()
.pathlib.Path
—same behaviour as deprecatedget_reader_for_path()
.
…or, anything else that is handled by a class listed in
CONVERTER
.- Raises:
ValueError – if none of the Converter classes can convert data and kwargs to SDMX.
- sdmx.reader.get_reader(data: ~typing.Any, kwargs: dict | None = None, _classes: list[type[sdmx.reader.base.BaseReader]] = [<class 'sdmx.reader.csv.Reader'>, <class 'sdmx.reader.json.Reader'>, <class 'sdmx.reader.xml.Reader'>]) type[sdmx.reader.base.BaseReader] [source]¶
Identify a
Reader
for data.Identical to
get_converter()
, except onlyREADERS
for SDMX standard formats are returned.
- sdmx.reader.get_reader_for_media_type(value) type[sdmx.reader.base.BaseReader] [source]¶
Return a reader class for HTTP content/media type value.
Deprecated since version 2.20.0: Use
get_reader()
instead.
- sdmx.reader.get_reader_for_path(path) type[sdmx.reader.base.BaseReader] [source]¶
Return a reader class for file path.
Deprecated since version 2.20.0: Use
get_reader()
instead.
- sdmx.reader.read_sdmx(filename_or_obj: bytes | str | Path | io.IOBase | io.BufferedReader, format: str | None = None, **kwargs) sdmx.message.Message [source]¶
Read a
Message
from a path, file, or stream in an SDMX standard format.To identify whether filename_or_obj contains SDMX-CSV, SDMX-JSON, or SDMX-ML,
BaseReader.handles()
is called.- Parameters:
filename_or_obj –
may include:
str
orpathlib.Path
: path to a particular file.bytes
: raw/binary SDMX content.io.IOBase
: a buffer, opened file, or other I/O object containing binary SDMX content.
format (
'CSV'
,'XML'
, or'JSON'
, optional) – force handling filename_or_obj as if it had the given extension, even ifhandles()
fails to match.structure –
Structure
,StructureUsage
, or other information used by aBaseReader
to interpret the content of filename_or_obj. For example, theDataStructureDefinition
for a structure-specific SDMX-ML message.
- sdmx.reader.to_sdmx(data, **kwargs) sdmx.message.Message [source]¶
Convert data in non-SDMX formats and data structures to SDMX
Message
.Unlike
read_sdmx()
, which handles only the standard SDMX formats SDMX-CSV, SDMX-JSON, and SDMX-ML, this method can will process any Python data structure handled by a knownCONVERTER
.
- class sdmx.reader.base.Converter[source]¶
Base class for conversion to
sdmx
objects.- convert(data: Any, **kwargs) sdmx.message.Message [source]¶
Convert data to an instance of an SDMX Message subclass.
- class sdmx.reader.base.BaseReader[source]¶
Converter of file or binary data in standard SDMX formats.
- binary_content_startswith: ClassVar[bytes | None] = None[source]¶
First byte(s) of file or response body content, used by
handles()
.
- convert(data, structure: sdmx.model.common.Structure | None = None, **kwargs)[source]¶
Convert data to an instance of an SDMX Message subclass.
- Parameters:
data (
file-like
) – Message content.structure –
DataStructure
orMetadataStructure
for aid in reading source.
- Returns:
An instance of a Message subclass.
- Return type:
- classmethod detect(content: bytes) bool [source]¶
Detect whether the reader can handle content.
Deprecated since version 2.20.0: Use
handles()
instead.
- classmethod handles(data, kwargs)[source]¶
Return
True
if the Reader can convert data using kwargs.The default implementation checks for any of the following conditions:
data is
pathlib.Path
and has one of the Reader’ssuffixes
. The match is case-insensitive.data is
requests.Response
and itsheaders
include acontent-type
that is matched by one of theMediaTypes
in the Reader’media_types
.data is
bytes
,io.IOBase
, orio.BufferedReader
and starts with the class’binary_content_startswith
(if any). For theio
classes, this check is performed by ‘peeking’ at the content without changing the position in the file for a later call toconvert()
.