DDI-Codebook Processing

The DDI-Codebook module provides functionality for reading and processing DDI-Codebook 2.5 XML documents in Python.

The module is designed to be flexible and accommodate various versions of DDI-Codebook, including slightly invalid DDI documents that are sometimes found in practice. The package is primarily intended for reading and processing existing DDI documents, not for creating new DDI-XML or validation.

Overview

DDI-Codebook is the lightweight version of the DDI standard, intended primarily to document simple survey data. This specification has been widely adopted around the globe by statistical agencies, data producers, archives, research centers, and international organizations.

Basic Usage

Load a DDI-Codebook document:

from dartfx.ddi import ddicodebook

# Load from file
my_codebook = ddicodebook.loadxml('mycodebook.xml')

# Load from XML string
my_codebook = ddicodebook.loadxmlstring(xml_content)

Accessing Study Metadata

# Access study description
study = my_codebook.studyDscr

# Get title
if study and study.citation and study.citation.titlStmt:
    title = study.citation.titlStmt.titl.content

# Get abstract
if study and study.stdyInfo:
    abstract = study.stdyInfo.abstract.content if study.stdyInfo.abstract else None

Working with Variables

# Access data description
if my_codebook.dataDscr:
    for var in my_codebook.dataDscr.var:
        print(f"Variable: {var.name}")
        print(f"Label: {var.labl.content if var.labl else 'No label'}")
        print(f"Format: {var.varFormat.type if var.varFormat else 'Unknown'}")

        # Access categories/codes
        if var.catgry:
            print("Categories:")
            for cat in var.catgry:
                value = cat.catValu.content if cat.catValu else "No value"
                label = cat.labl.content if cat.labl else "No label"
                print(f"  {value}: {label}")

Working with Files

# Access file descriptions
if my_codebook.fileDscr:
    for file_desc in my_codebook.fileDscr:
        file_info = file_desc.fileTxt
        print(f"File: {file_info.fileName}")
        print(f"Format: {file_info.format}")

        # Access file statistics if available
        if hasattr(file_desc, 'fileCont') and file_desc.fileCont:
            print(f"Records: {file_desc.fileCont.dimensns.caseQnty}")

Error Handling

The module is designed to be robust when dealing with incomplete or slightly malformed DDI documents:

try:
    codebook = ddicodebook.loadxml('problematic_file.xml')

    # Safely access potentially missing elements
    title = "No title"
    if (codebook.studyDscr and
        codebook.studyDscr.citation and
        codebook.studyDscr.citation.titlStmt and
        codebook.studyDscr.citation.titlStmt.titl):
        title = codebook.studyDscr.citation.titlStmt.titl.content

except Exception as e:
    print(f"Error loading codebook: {e}")

Implementation Notes

  • Based on DDI-Codebook version 2.5 schema

  • Class names match the complex types defined in DDI-Codebook

  • Property names match the DDI-Codebook element names

  • Type annotations are used to determine DDI property types

  • All classes inherit from a base baseElementType class

  • The module handles XML namespace issues automatically

Performance Considerations

For large DDI-Codebook documents:

  • The entire document is loaded into memory

  • Use streaming approaches for very large files if needed

  • Consider processing variables in batches for memory efficiency

API Reference

Classes to read and process a DDI-Codebook XML document.

This package is at this time not intended to be used for validation or quality assurance purpose, just as a quick and easy way to load and process existing DDI-C documents in Python.

It is also not designed to create DDI from scratch.

Author:

Pascal Heus (pascal.heus@postman.com)

Contributors:

<be_the_first!>

Version: 0.5.0

How to use::

from dartfx.ddi import codebook my_codebook = codebook.loadxml(filename)

Implementation notes:
  • Based on the version 2.5 of the schema

  • The name of the classes match the complex types defined in DDI-C

  • The name of the classes properties must match the DDI-C element names

  • Type annotations are used to determine the type of the DDI properties

  • The bulk of the work is done in the baseElementType class, from which all other classes inherit

  • An ‘options’ parameter is passed to all class constructors, but is for future use

Roadmap:
  • Extensive testing

  • Add element specific helper methods to facilite processing

Pending DDI 2.5 issues/bugs:
  • dataCollType/sources is not repeatable which seems to be a bug

  • dataFingerprintType (used in filedscr) does not derive from baseElementType and uses xs:string instead of stringType

  • codeListSchemeURN in controlledVocabUsedType has no type (should be stringType)

  • usageType does not derive from baseElementType, and neither do the underlying elements.

References

class dartfx.ddi.ddicodebook.AuthEntyType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, affiliation=None, **data)[source]

Bases: simpleTextType

affiliation: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.ConOpsType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, agency=None, **data)[source]

Bases: simpleTextType

agency: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.CubeCoordType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, coordNo=None, coordVal=None, coordValRef=None, **data)[source]

Bases: baseElementType

coordNo: str | None
coordVal: str | None
coordValRef: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.IDNoType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, agency=None, level=None, **data)[source]

Bases: simpleTextType

agency: str | None
level: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.XmlAttribute(name, value=None, datatype=<class 'str'>, options=None)[source]

Bases: object

A simple structure to hold the name, value, and potentially other characteristics of an attribute.

__init__(name, value=None, datatype=<class 'str'>, options=None)[source]
class dartfx.ddi.ddicodebook.abstractTextType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

from_xml_element(element)[source]

Override method to stop driling down and capture underlying mixed content as text

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.abstractType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, date=None, contentType=None, **data)[source]

Bases: simpleTextAndDateType

contentType: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.accsPlacType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, URI=None, **data)[source]

Bases: simpleTextType

URI: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.anlyInfoType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

EstSmpErr: list[simpleTextType]
dataAppr: list[dataApprType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

respRate: list[simpleTextType]
class dartfx.ddi.ddicodebook.anlyUnitType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, concept=None, txt=None, unit=None, **data)[source]

Bases: conceptualTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

unit: str | None
class dartfx.ddi.ddicodebook.attributeType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, varRef=None, **data)[source]

Bases: stringType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.authorizingAgencyType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, varRef=None, affiliation=None, abbr=None, **data)[source]

Bases: stringType

abbr: str | None
affiliation: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.backwardType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, qstn=None, **data)[source]

Bases: simpleTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

qstn: str | None
class dartfx.ddi.ddicodebook.baseElementType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: BaseModel

The base class all DDI elements are based on.

All the parsing and processing is done in this base class.

__init__(options=None, **data)[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

property attributes: dict[str, XmlAttribute]
content: str | None
ddiCodebookUrn: str | None
ddiLifecycleUrn: str | None
dump(name='codeBook', level=0, max_level=99, indent=3)[source]

Dumps the content to the console.

Useful for debugging/development purposes.

Uses ANSI escape code for coloring See https://www.lihaoyi.com/post/BuildyourownCommandLinewithANSIescapecodes.html

elementVersion: str | None
elementVersionDate: str | None
from_xml_element(element)[source]

Initializes the object from an XML element.

get_annotations()[source]

Helper function to parse annotated class properties. REIMPLEMENTED for Pydantic fields

id: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

xml_lang: str | None
class dartfx.ddi.ddicodebook.biblCitType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, format=None, **data)[source]

Bases: simpleTextType

format: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.boundPolyType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

polygon: list[polygonType]
class dartfx.ddi.ddicodebook.catLevelType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, levelnm=None, geoMap=None, **data)[source]

Bases: baseElementType

geoMap: str | None
levelnm: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.catStatType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, type=None, otherType=None, URI=None, methrefs=None, wgtd=None, wgt_var=None, weight=None, sdatrefs=None, **data)[source]

Bases: simpleTextType

URI: str | None
methrefs: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

otherType: str | None
sdatrefs: str | None
type: str | None
weight: str | None
wgt_var: str | None
wgtd: str | None
class dartfx.ddi.ddicodebook.catgryGrpType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

catGrp: str | None
catStat: list[catStatType]
catgry: str | None
compl: str | None
excls: str | None
labl: list[lablType]
levelnm: str | None
levelno: str | None
missType: str | None
missing: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

txt: list[txtType]
class dartfx.ddi.ddicodebook.catgryType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

catStat: list[catStatType]
catValu: simpleTextType | None
catgry: str | None
country: str | None
excls: str | None
property is_missing
labl: list[lablType]
level: str | None
missType: str | None
missing: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

mrow: mrowType | None
sdatrefs: str | None
txt: list[txtType]
class dartfx.ddi.ddicodebook.citationType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

MARCURI: str | None
biblCit: list[biblCitType]
distStmt: distStmtType | None
holdings: list[holdingsType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

notes: list[notesType]
prodStmt: prodStmtType | None
rspStmt: rspStmtType | None
serStmt: list[serStmtType]
titlStmt: titlStmtType | None
verStmt: list[verStmtType]
class dartfx.ddi.ddicodebook.cleanOpsType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, agency=None, **data)[source]

Bases: simpleTextType

agency: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.codeBookType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

codeBookAgency: str | None
dataDscr: list[dataDscrType]
docDscr: list[docDscrType]
fileDscr: list[fileDscrType]
get_abstract()[source]

Returns the abstract from the study description if it exists.

get_alternate_title()[source]

Returns the alternate title from the study description if it exists.

get_data_dictionary(file_id=None, name_regex=None, label_regex=None, categories=False, questions=False)[source]

Generates a all-in-one data dictionary from the variable descriptions.

Supports various filtering and rendering options.

Parameters:
  • file_id (str | None) – filter to a specific file identifier (var/@files attribute matching fileDscr/@ID)

  • name_regex (str | None) – a regular expression to match variable names

  • label_regex (str | None) – a regular expression to match variable names

  • categories (bool) – whether to include categories in the data dictionary

  • questions (bool) – whether to include questions in the data dictionary

get_files()[source]

Returns the files and their documented infornation.

get_subtitle()[source]

Returns the subtitle of the study.

get_title()[source]

Returns the title of the study.

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

otherMat: list[otherMatType]
search_variables(_file_id=None, _name=None, _label=None, _has_catgry=None, _has_qstn=None)[source]

Search variables in the codebook

stdyDscr: list[stdyDscrType]
version: str | None
class dartfx.ddi.ddicodebook.codingInstructionsType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

command: list[commandType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

relatedProcesses: str | None
txt: list[txtType]
type: str | None
class dartfx.ddi.ddicodebook.cohortType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

catRef: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

range: list[rangeType]
value: str | None
class dartfx.ddi.ddicodebook.collDateType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, date=None, event=None, cycle=None, **data)[source]

Bases: simpleTextAndDateType

cycle: str | None
event: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.collectorTrainingType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, type=None, **data)[source]

Bases: simpleTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type: str | None
class dartfx.ddi.ddicodebook.commandType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, varRef=None, formalLanguage=None, **data)[source]

Bases: stringType

formalLanguage: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.conceptType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, vocab=None, vocabUri=None, **data)[source]

Bases: simpleTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

vocab: str | None
vocabUri: str | None
class dartfx.ddi.ddicodebook.conceptualTextType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, concept=None, txt=None, **data)[source]

Bases: abstractTextType

concept: conceptType | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

txt: txtType | None
class dartfx.ddi.ddicodebook.confDecType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, required=None, formNo=None, URI=None, **data)[source]

Bases: simpleTextType

URI: str | None
formNo: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

required: str | None
class dartfx.ddi.ddicodebook.contactType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, affiliation=None, URI=None, email=None, **data)[source]

Bases: simpleTextType

URI: str | None
affiliation: str | None
email: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.controlledVocabUsedType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

codeListAgencyName: stringType | None
codeListID: stringType | None
codeListName: stringType | None
codeListSchemeURN: stringType | None
codeListURN: stringType | None
codeListVersionID: stringType | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

usage: list[usageType]
class dartfx.ddi.ddicodebook.custodianType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, varRef=None, affiliation=None, abbr=None, **data)[source]

Bases: stringType

abbr: str | None
affiliation: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.dataAccsType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

notes: list[notesType]
setAvail: list[setAvailType]
useStmt: list[useStmtType]
class dartfx.ddi.ddicodebook.dataApprType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, type=None, **data)[source]

Bases: simpleTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type: str | None
class dartfx.ddi.ddicodebook.dataCollType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

ConOps: list[ConOpsType]
actMin: list[simpleTextType]
cleanOps: list[cleanOpsType]
collMode: list[conceptualTextType]
collSitu: list[simpleTextType]
collectorTraining: list[collectorTrainingType]
dataCollector: list[dataCollectorType]
deviat: list[simpleTextType]
frequenc: list[frequencType]
instrumentDevelopment: list[instrumentDevelopmentType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

resInstru: list[resInstruType]
sampProc: list[conceptualTextType]
sampleFrame: list[sampleFrameType]
sources: list[sourcesType]
targetSampleSize: list[conceptualTextType]
timeMeth: list[timeMethType]
weight: list[simpleTextType]
class dartfx.ddi.ddicodebook.dataCollectorType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, concept=None, txt=None, abbr=None, affiliation=None, role=None, **data)[source]

Bases: conceptualTextType

abbr: str | None
affiliation: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

role: str | None
class dartfx.ddi.ddicodebook.dataDscrType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

nCube: list[nCubeType]
nCubeGrp: list[nCubeGrpType]
notes: list[notesType]
var: list[varType]
varGrp: list[varGrpType]
class dartfx.ddi.ddicodebook.dataFingerprintType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, digitalFingerprintValue=None, algorithmSpecification=None, algorithmversion=None, **data)[source]

Bases: baseElementType

algorithmSpecification: stringType | None
algorithmversion: stringType | None
digitalFingerprintValue: stringType | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.dataItemType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

CubeCoord: list[CubeCoordType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

nCubeRef: str | None
physLoc: list[physLocType]
varRef: str | None
class dartfx.ddi.ddicodebook.dataKindType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, concept=None, txt=None, type=None, **data)[source]

Bases: conceptualTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type: str | None
class dartfx.ddi.ddicodebook.dataProcessingType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, type=None, **data)[source]

Bases: simpleTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type: str | None
class dartfx.ddi.ddicodebook.dateType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: abstractTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.depositrType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, abbr=None, affiliation=None, **data)[source]

Bases: simpleTextType

abbr: str | None
affiliation: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.derivationType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

drvcmd: list[drvcmdType]
drvdesc: list[simpleTextType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

var: str | None
class dartfx.ddi.ddicodebook.developmentActivityType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

description: list[simpleTextType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

outcome: list[simpleTextType]
participant: list[participantType]
resource: list[resourceType]
type: str | None
class dartfx.ddi.ddicodebook.dimensnsType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, caseQnty=<factory>, varQnty=<factory>, logRecL=<factory>, recPrCase=<factory>, recNumTot=<factory>, **data)[source]

Bases: baseElementType

caseQnty: list[simpleTextType]
logRecL: list[simpleTextType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

recNumTot: list[simpleTextType]
recPrCase: list[simpleTextType]
varQnty: list[simpleTextType]
class dartfx.ddi.ddicodebook.distStmtType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, distrbtr=<factory>, contact=<factory>, depositr=<factory>, depDate=<factory>, distDate=<factory>, **data)[source]

Bases: baseElementType

contact: list[contactType]
depDate: list[simpleTextAndDateType]
depositr: list[depositrType]
distDate: list[simpleTextAndDateType]
distrbtr: list[distrbtrType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.distrbtrType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, abbr=None, affiliation=None, URI=None, **data)[source]

Bases: simpleTextType

URI: str | None
abbr: str | None
affiliation: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.dmnsType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

cohort: list[cohortType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

rank: str | None
varRef: str | None
class dartfx.ddi.ddicodebook.docDscrType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

citation: citationType | None
controlledVocabUsed: list[controlledVocabUsedType]
docSrc: list[docSrcType]
docStatus: list[simpleTextType]
guide: list[simpleTextType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

notes: list[notesType]
class dartfx.ddi.ddicodebook.docSrcType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

MARCURI: str | None
biblCit: list[biblCitType]
distStmt: distStmtType | None
holdngs: list[holdingsType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

notes: list[notesType]
prodStmt: prodStmtType | None
rspStmt: rspStmtType | None
serStmt: list[serStmtType]
titlStmt: titlStmtType | None
verStmt: list[verStmtType]
class dartfx.ddi.ddicodebook.drvcmdType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, syntax=None, **data)[source]

Bases: simpleTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

syntax: str | None
class dartfx.ddi.ddicodebook.embargoType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, date=None, event=None, format=None, **data)[source]

Bases: simpleTextAndDateType

event: str | None
format: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.evaluatorType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, varRef=None, affiliation=None, abbr=None, role=None, **data)[source]

Bases: stringType

abbr: str | None
affiliation: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

role: str | None
class dartfx.ddi.ddicodebook.eventDateType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, event=None, **data)[source]

Bases: dateType

event: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.exPostEvaluationType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, evaluator=<factory>, evaluationProcess=<factory>, outcomes=<factory>, completionDate=None, type=None, **data)[source]

Bases: baseElementType

completionDate: str | None
evaluationProcess: list[simpleTextType]
evaluator: list[evaluatorType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

outcomes: list[simpleTextType]
type: str | None
class dartfx.ddi.ddicodebook.fileDscrType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

URI: str | None
access: str | None
fileTxt: list[fileTxtType]
locMap: locMapType | None
methrefs: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

notes: list[notesType]
pubrefs: str | None
sdatrefs: str | None
class dartfx.ddi.ddicodebook.fileStrcType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

fileStrcRef: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

notes: list[notesType]
otherType: str | None
recGrp: list[recGrpType]
type: str | None
class dartfx.ddi.ddicodebook.fileTxtType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

ProcStat: list[simpleTextType]
dataChck: list[simpleTextType]
dataFingerprint: list[dataFingerprintType]
dataMsng: list[simpleTextType]
dimensns: dimensnsType | None
fileCitation: citationType | None
fileCont: simpleTextType | None
fileName: list[simpleTextType]
filePlac: list[simpleTextType]
fileStr: fileStrcType | None
fileType: list[fileTypeType]
format: list[simpleTextType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

software: list[softwareType]
verStmt: list[verStmtType]
class dartfx.ddi.ddicodebook.fileTypeType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, charset=None, **data)[source]

Bases: simpleTextType

charset: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.forwardType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, qstn=None, **data)[source]

Bases: simpleTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

qstn: str | None
class dartfx.ddi.ddicodebook.frameUnitType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

isPrimary: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

txt: list[txtType]
unitType: unitTypeType | None
class dartfx.ddi.ddicodebook.frequencType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, freq=None, **data)[source]

Bases: simpleTextType

freq: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.fundAgType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, abbr=None, role=None, **data)[source]

Bases: simpleTextType

abbr: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

role: str | None
class dartfx.ddi.ddicodebook.geoBndBoxType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, westBL=None, eastBL=None, northBL=None, southBL=None, **data)[source]

Bases: baseElementType

eastBL: phraseType | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

northBL: phraseType | None
southBL: phraseType | None
westBL: phraseType | None
class dartfx.ddi.ddicodebook.geoMapType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, URI=None, mapFormat=None, levelno=None, **data)[source]

Bases: baseElementType

URI: str | None
levelno: str | None
mapFormat: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

dartfx.ddi.ddicodebook.get_mixed_content(element)[source]

Returns the mixed content of an XML element as a concatenated and potentially multiline string.

This is to avoid having to implement/parse various text formatting options supported by DDI-C such as XHTML or forms.

dartfx.ddi.ddicodebook.get_xml_base_name(tag)[source]

Extracts the base name of an XML element, removing the namespace.

class dartfx.ddi.ddicodebook.grantNoType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, agency=None, role=None, **data)[source]

Bases: simpleTextType

agency: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

role: str | None
class dartfx.ddi.ddicodebook.holdingsType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, location=None, callno=None, URI=None, media=None, **data)[source]

Bases: simpleTextType

URI: str | None
callno: str | None
location: str | None
media: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.instrumentDevelopmentType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, type=None, **data)[source]

Bases: simpleTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type: str | None
class dartfx.ddi.ddicodebook.invalrngType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

item: list[itemType]
key: list[tableAndTextType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

notes: list[notesType]
range: list[rangeType]
class dartfx.ddi.ddicodebook.itemType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, UNITS=None, VALUE=None, **data)[source]

Bases: baseElementType

UNITS: str | None
VALUE: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.keywordType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, vocab=None, vocabURI=None, **data)[source]

Bases: simpleTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

vocab: str | None
vocabURI: str | None
class dartfx.ddi.ddicodebook.lablType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, level=None, vendor=None, country=None, sdatrefs=None, **data)[source]

Bases: simpleTextType

country: str | None
level: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

sdatrefs: str | None
vendor: str | None
dartfx.ddi.ddicodebook.loadxml(file)[source]

Loads a DDI codebook from an XML file.

dartfx.ddi.ddicodebook.loadxmlstring(xmlstring)[source]

Loads a DDI codebook from an XML string.

class dartfx.ddi.ddicodebook.locMapType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

dataItem: list[dataItemType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.locationType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, StartPos=None, EndPos=None, width=None, RecSegNo=None, field=None, locMap=None, **data)[source]

Bases: baseElementType

EndPos: str | None
RecSegNo: str | None
StartPos: str | None
field: str | None
locMap: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

width: str | None
class dartfx.ddi.ddicodebook.materialReferenceType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: abstractTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.measureType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, varRef=None, aggrMeth=None, otherAggrMeth=None, measUnit=None, scale=None, origin=None, additivity=None, **data)[source]

Bases: baseElementType

additivity: str | None
aggrMeth: str | None
measUnit: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

origin: str | None
otherAggrMeth: str | None
scale: str | None
varRef: str | None
class dartfx.ddi.ddicodebook.methodType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

anlyInfo: list[anlyInfoType]
codingInstructions: list[codingInstructionsType]
dataColl: list[dataCollType]
dataProcessing: list[dataProcessingType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

notes: list[notesType]
stdyClas: list[stdyClasType]
class dartfx.ddi.ddicodebook.miType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, varRef=None, **data)[source]

Bases: phraseType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.mrowType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, mi=<factory>, **data)[source]

Bases: baseElementType

mi: list[miType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.nCubeGrpType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

access: str | None
concept: list[conceptType]
defntn: list[simpleTextType]
labl: list[lablType]
methrefs: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

nCube: str | None
nCubeGrp: str | None
name: str | None
notes: list[notesType]
otherType: str | None
pubrefs: str | None
sdatrefs: str | None
txt: list[txtType]
type: str | None
universe: list[universeType]
class dartfx.ddi.ddicodebook.nCubeType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

access: str | None
anlysUnit: list[simpleTextType]
cellQnty: str | None
dmns: list[dmnsType]
dmnsQnty: str | None
embargo: list[embargoType]
imputation: list[simpleTextType]
labl: list[lablType]
location: list[locationType]
measure: list[measureType]
methrefs: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str | None
notes: list[notesType]
pubrefs: str | None
purpose: list[purposeType]
respUnit: list[simpleTextType]
sdatrefs: str | None
security: list[simpleTextAndDateType]
txt: list[txtType]
universe: list[universeType]
verStmt: list[verStmtType]
class dartfx.ddi.ddicodebook.nationType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, concept=None, txt=None, abbr=None, **data)[source]

Bases: conceptualTextType

abbr: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.notesType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, table=None, type=None, subject=None, level=None, resp=None, sdatrefs=None, parent=None, sameNote=None, **data)[source]

Bases: tableAndTextType

level: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

parent: str | None
resp: str | None
sameNote: str | None
sdatrefs: str | None
subject: str | None
type: str | None
class dartfx.ddi.ddicodebook.othIdType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, type=None, role=None, affiliation=None, **data)[source]

Bases: simpleTextType

affiliation: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

role: str | None
type: str | None
class dartfx.ddi.ddicodebook.otherMatType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

URI: str | None
citation: citationType | None
labl: list[lablType]
level: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

notes: list[notesType]
otherMat: list[otherMatType]
table: list[tableType]
txt: list[txtType]
type: str | None
class dartfx.ddi.ddicodebook.othrStdyMatType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

othRefs: list[materialReferenceType]
relMat: list[relMatType]
relPubl: list[materialReferenceType]
relStdy: list[materialReferenceType]
class dartfx.ddi.ddicodebook.participantType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, varRef=None, affiliation=None, abbr=None, role=None, **data)[source]

Bases: stringType

abbr: str | None
affiliation: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

role: str | None
class dartfx.ddi.ddicodebook.phraseType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, varRef=None, **data)[source]

Bases: simpleTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

varRef: str | None
class dartfx.ddi.ddicodebook.physLocType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, type=None, recRef=None, startPos=None, width=None, endPos=None, **data)[source]

Bases: baseElementType

endPos: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

recRef: str | None
startPos: str | None
type: str | None
width: str | None
class dartfx.ddi.ddicodebook.pointType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, gringLat=None, gringLon=None, **data)[source]

Bases: baseElementType

gringLat: phraseType | None
gringLon: phraseType | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.polygonType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, point=<factory>, **data)[source]

Bases: baseElementType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

point: list[pointType]
class dartfx.ddi.ddicodebook.prodStmtType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

copyright: list[simpleTextType]
fundAg: list[fundAgType]
grantNo: list[grantNoType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

prodDate: list[simpleTextAndDateType]
prodPlace: list[simpleTextType]
producer: list[producerType]
software: list[softwareType]
class dartfx.ddi.ddicodebook.producerType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, abbr=None, affiliation=None, role=None, **data)[source]

Bases: simpleTextType

abbr: str | None
affiliation: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

role: str | None
class dartfx.ddi.ddicodebook.purposeType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, sdatrefs=None, methrefs=None, pubrefs=None, URI=None, **data)[source]

Bases: simpleTextType

URI: str | None
methrefs: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

pubrefs: str | None
sdatrefs: str | None
class dartfx.ddi.ddicodebook.qstnLitType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, callno=None, label=None, media=None, type=None, **data)[source]

Bases: simpleTextType

callno: str | None
label: str | None
media: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type: str | None
class dartfx.ddi.ddicodebook.qstnType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

backward: backwardType | None
forward: forwardType | None
ivuInstr: simpleTextType | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

otherResponseDomainType: str | None
postQTxt: simpleTextType | None
preQTxt: simpleTextType | None
qstn: str | None
qstnLit: qstnLitType | None
responseDomainType: str | None
sdatrefs: str | None
seqNo: str | None
var: str | None
class dartfx.ddi.ddicodebook.qualityStatementType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

otherQualityStatement: list[simpleTextType]
standardsCompliance: list[standardsComplianceType]
class dartfx.ddi.ddicodebook.rangeType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, UNITS=None, min=None, minExclusive=None, max=None, maxExclusive=None, **data)[source]

Bases: baseElementType

UNITS: str | None
max: str | None
maxExclusive: str | None
min: str | None
minExclusive: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.recDimnsnType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, varQnty=None, caseQnty=None, logRecL=None, level=None, **data)[source]

Bases: baseElementType

caseQnty: simpleTextType | None
level: str | None
logRecL: simpleTextType | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

varQnty: simpleTextType | None
class dartfx.ddi.ddicodebook.recGrpType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, labl=<factory>, recDimnsn=None, recGrp=None, rectype=None, keyvar=None, rtypeloc=None, type=None, **data)[source]

Bases: baseElementType

keyvar: str | None
labl: list[lablType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

recDimnsn: recDimnsnType | None
recGrp: str | None
rectype: str | None
rtypeloc: str | None
type: str | None
class dartfx.ddi.ddicodebook.relMatType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, sdatrefs=None, **data)[source]

Bases: materialReferenceType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

sdatrefs: str | None
class dartfx.ddi.ddicodebook.resInstruType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, concept=None, txt=None, type=None, **data)[source]

Bases: conceptualTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type: str | None
class dartfx.ddi.ddicodebook.resourceType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, dataSrc=<factory>, srgOrig=<factory>, srcChar=<factory>, srcDocu=<factory>, **data)[source]

Bases: baseElementType

dataSrc: list[simpleTextType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

srcChar: list[simpleTextType]
srcDocu: list[simpleTextType]
srgOrig: list[conceptualTextType]
class dartfx.ddi.ddicodebook.rspStmtType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, AuthEnty=<factory>, othId=<factory>, **data)[source]

Bases: baseElementType

AuthEnty: list[AuthEntyType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

othId: list[othIdType]
class dartfx.ddi.ddicodebook.sampleFrameType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

custodian: list[custodianType]
frameUnit: list[frameUnitType]
labl: list[lablType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

referencePeriod: list[eventDateType]
sampleFrameName: list[stringType]
txt: list[txtType]
universe: list[universeType]
updateProcedure: list[simpleTextType]
useStmt: list[useStmtType]
validPeriod: list[eventDateType]
class dartfx.ddi.ddicodebook.selectorType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, varRef=None, **data)[source]

Bases: stringType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.serNameType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, abbr=None, **data)[source]

Bases: simpleTextType

abbr: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.serStmtType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, serName=<factory>, serInfo=<factory>, URI=None, **data)[source]

Bases: baseElementType

URI: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

serInfo: list[simpleTextType]
serName: list[serNameType]
class dartfx.ddi.ddicodebook.setAvailType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, accsPlac=<factory>, origArch=<factory>, avlStatus=<factory>, collSize=<factory>, complete=<factory>, fileQnty=<factory>, notes=<factory>, **data)[source]

Bases: baseElementType

accsPlac: list[accsPlacType]
avlStatus: list[simpleTextType]
collSize: list[simpleTextType]
complete: list[simpleTextType]
fileQnty: list[simpleTextType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

notes: list[notesType]
origArch: list[simpleTextType]
class dartfx.ddi.ddicodebook.simpleTextAndDateType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, date=None, **data)[source]

Bases: simpleTextType

date: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.simpleTextType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: abstractTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.softwareType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, date=None, version=None, **data)[source]

Bases: simpleTextAndDateType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

version: str | None
class dartfx.ddi.ddicodebook.sourcesType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

dataSrc: list[simpleTextType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

sourceCitation: list[citationType]
sources: list[sourcesType]
srcChar: list[simpleTextType]
srcDocu: list[simpleTextType]
srcOrig: list[conceptualTextType]
class dartfx.ddi.ddicodebook.specPermType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, required=None, formNo=None, URI=None, **data)[source]

Bases: simpleTextType

URI: str | None
formNo: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

required: str | None
class dartfx.ddi.ddicodebook.specificElementType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, varRef=None, refs=None, authorizedCodeValue=None, **data)[source]

Bases: stringType

authorizedCodeValue: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

refs: str | None
class dartfx.ddi.ddicodebook.standardNameType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, varRef=None, date=None, version=None, URI=None, **data)[source]

Bases: stringType

URI: str | None
date: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

version: str | None
class dartfx.ddi.ddicodebook.standardType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

producer: list[producerType]
standardName: list[standardNameType]
class dartfx.ddi.ddicodebook.standardsComplianceType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

complianceDescription: list[simpleTextType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

standard: standardType | None
class dartfx.ddi.ddicodebook.stdCatgryType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, date=None, URI=None, **data)[source]

Bases: simpleTextAndDateType

URI: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.stdyClasType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, type=None, **data)[source]

Bases: simpleTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type: str | None
class dartfx.ddi.ddicodebook.stdyDscrType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

access: str | None
citation: list[citationType]
dataAccs: list[dataAccsType]
method: list[methodType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

notes: list[notesType]
othrStdyMat: list[othrStdyMatType]
stdyInfo: list[stdyInfoType]
studyAuthorization: list[studyAuthorizationType]
studyDevelopment: list[studyDevelopmentType]
class dartfx.ddi.ddicodebook.stdyInfoType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

abstract: list[abstractType]
exPostEvaluation: list[exPostEvaluationType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

notes: list[notesType]
qualityStatement: list[qualityStatementType]
studyBudget: list[simpleTextType]
subject: list[subjectType]
sumDscr: list[sumDscrType]
class dartfx.ddi.ddicodebook.stringType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, varRef=None, **data)[source]

Bases: abstractTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

varRef: str | None
class dartfx.ddi.ddicodebook.studyAuthorizationType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, authorizingAgency=<factory>, authorzingStatement=<factory>, date=None, **data)[source]

Bases: baseElementType

authorizingAgency: list[authorizingAgencyType]
authorzingStatement: list[simpleTextType]
date: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.studyDevelopmentType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, developmentActivity=<factory>, **data)[source]

Bases: baseElementType

developmentActivity: list[developmentActivityType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.subjectType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

keyword: list[keywordType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

topcClass: list[topcClasType]
class dartfx.ddi.ddicodebook.sumDscrType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

anlyUnit: list[anlyUnitType]
boundPoly: list[boundPolyType]
collDate: list[collDateType]
dataKind: list[dataKindType]
geoBndBox: list[geoBndBoxType]
geogCover: list[conceptualTextType]
geogUnit: list[conceptualTextType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

nation: list[nationType]
timePrd: list[timePrdType]
universe: list[universeType]
class dartfx.ddi.ddicodebook.sumStatType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, wgtd=None, wgt_var=None, weight=None, type=None, otherType=None, **data)[source]

Bases: simpleTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

otherType: str | None
type: str | None
weight: str | None
wgt_var: str | None
wgtd: str | None
class dartfx.ddi.ddicodebook.tableAndTextType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, table=None, **data)[source]

Bases: abstractTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

table: tableType | None
class dartfx.ddi.ddicodebook.tableType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, frame=None, colsep=None, rowsep=None, pgwide=None, **data)[source]

Bases: baseElementType

colsep: str | None
frame: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

pgwide: str | None
rowsep: str | None
class dartfx.ddi.ddicodebook.timeMethType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, concept=None, txt=None, method=None, **data)[source]

Bases: conceptualTextType

method: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.timePrdType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, date=None, event=None, cycle=None, **data)[source]

Bases: simpleTextAndDateType

cycle: str | None
event: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.titlStmtType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, titl=None, subTitl=<factory>, altTitl=<factory>, parTitl=<factory>, IDNo=<factory>, **data)[source]

Bases: baseElementType

IDNo: list[IDNoType]
altTitl: list[simpleTextType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

parTitl: list[simpleTextType]
subTitl: list[simpleTextType]
titl: simpleTextType | None
class dartfx.ddi.ddicodebook.topcClasType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, vocab=None, vocabURI=None, **data)[source]

Bases: simpleTextType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

vocab: str | None
vocabURI: str | None
class dartfx.ddi.ddicodebook.txtType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, table=None, level=None, sdatrefs=None, **data)[source]

Bases: tableAndTextType

level: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

sdatrefs: str | None
class dartfx.ddi.ddicodebook.unitTypeType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, varRef=None, numberOfUnits=None, **data)[source]

Bases: stringType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

numberOfUnits: str | None
class dartfx.ddi.ddicodebook.universeType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, concept=None, txt=None, level=None, clusion=None, **data)[source]

Bases: conceptualTextType

clusion: str | None
level: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.usageType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, selector=None, specificElement=None, attribute=None, **data)[source]

Bases: baseElementType

attribute: attributeType | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

selector: selectorType | None
specificElement: specificElementType | None
class dartfx.ddi.ddicodebook.useStmtType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, confDec=<factory>, specPerm=<factory>, restrctn=<factory>, contact=<factory>, citReq=<factory>, deposReq=<factory>, conditions=<factory>, disclaimer=<factory>, **data)[source]

Bases: baseElementType

citReq: list[simpleTextType]
conditions: list[simpleTextType]
confDec: list[confDecType]
contact: list[contactType]
deposReq: list[simpleTextType]
disclaimer: list[simpleTextType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

restrctn: list[simpleTextType]
specPerm: list[specPermType]
class dartfx.ddi.ddicodebook.valrngType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, item=<factory>, range=<factory>, key=<factory>, notes=<factory>, **data)[source]

Bases: baseElementType

item: list[itemType]
key: list[tableAndTextType]
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

notes: list[notesType]
range: list[rangeType]
class dartfx.ddi.ddicodebook.varFormatType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, type=None, formatname=None, schema=None, otherSchema=None, **data)[source]

Bases: simpleTextType

formatname: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

otherSchema: str | None
schema_: str | None
type: str | None
class dartfx.ddi.ddicodebook.varGrpType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, labl=<factory>, txt=<factory>, concept=<factory>, defntn=<factory>, universe=<factory>, notes=<factory>, type=None, otherType=None, var=None, varGrp=None, name=None, sdatrefs=None, methrefs=None, pubrefs=None, access=None, nCube=None, **data)[source]

Bases: baseElementType

access: str | None
concept: list[conceptType]
defntn: list[simpleTextType]
labl: list[lablType]
methrefs: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

nCube: str | None
name: str | None
notes: list[notesType]
otherType: str | None
pubrefs: str | None
sdatrefs: str | None
txt: list[txtType]
type: str | None
universe: list[universeType]
var: str | None
varGrp: str | None
class dartfx.ddi.ddicodebook.varType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

access: str | None
additivity: str | None
aggrMeth: str | None
anlysUnit: list[conceptualTextType]
catLevel: list[catLevelType]
catQnty: str | None
catgry: list[catgryType]
catgryGrp: list[catgryGrpType]
codInstr: list[simpleTextType]
concept: list[conceptType]
dcml: str | None
derivation: derivationType | None
embargo: list[embargoType]
files: str | None
geoMap: list[geoMapType]
geoVocab: str | None
geog: str | None
get_catgry_checksum(_include_code=True, _include_label=True, _method=None)[source]
get_label()[source]
get_name()[source]
imputation: list[simpleTextType]
intrvl: str | None
invalrng: list[invalrngType]
labl: list[lablType]
location: list[locationType]
methrefs: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property n_catgry: int
property n_missing_catgry: int
property n_non_missing_catgry: int
name: str | None
nature: str | None
notes: list[notesType]
origin: str | None
othAggrMeth: str | None
otherAdditivity: str | None
otherRepresentationType: str | None
pubrefs: str | None
qstn: list[qstnType]
rectype: str | None
representationType: str | None
respUnit: list[simpleTextType]
scale: str | None
sdatrefs: str | None
security: list[simpleTextAndDateType]
stdCatgry: list[stdCatgryType]
sumStat: list[sumStatType]
temporal: str | None
totlresp: list[simpleTextType]
txt: list[txtType]
undocCod: list[simpleTextType]
universe: list[universeType]
valrng: list[valrngType]
varFormat: varFormatType | None
var_qstn: str | None
vendor: str | None
verStmt: list[verStmtType]
weight: str | None
wgt: str | None
wgt_var: str | None
class dartfx.ddi.ddicodebook.verRespType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, affiliation=None, **data)[source]

Bases: simpleTextType

affiliation: str | None
model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class dartfx.ddi.ddicodebook.verStmtType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, **data)[source]

Bases: baseElementType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

notes: list[notesType]
verResp: list[verRespType]
version: list[versionType]
class dartfx.ddi.ddicodebook.versionType(options=None, *, ID=None, xml_lang=None, elementVersion=None, elementVersionDate=None, ddiLifecycleUrn=None, ddiCodebookUrn=None, content=None, date=None, type=None, **data)[source]

Bases: simpleTextAndDateType

model_config = {'arbitrary_types_allowed': True, 'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type: str | None