TechnoteToml#

pydantic model technote.config.TechnoteToml#

A model of a technote.toml configuration file.

Parameters:

data (Any) –

Show JSON schema
{
   "title": "TechnoteToml",
   "description": "A model of a ``technote.toml`` configuration file.",
   "type": "object",
   "properties": {
      "technote": {
         "$ref": "#/definitions/TechnoteTable"
      }
   },
   "required": [
      "technote"
   ],
   "definitions": {
      "TechnoteState": {
         "title": "TechnoteState",
         "description": "Standardized states for a technote.\n\n    .. mermaid::\n\n       flowchart LR\n         planning --> active\n         active --> stable\n         stable --> active\n         stable --> deprecated\n         active --> deprecated\n    ",
         "enum": [
            "planning",
            "active",
            "stable",
            "deprecated",
            "other"
         ],
         "type": "string"
      },
      "TechnoteStatus": {
         "title": "TechnoteStatus",
         "description": "A model for the technote's status.\n\nStatus is intended to describe whether a document is in planning,\nactive writing, stable, or deprecated/supersceded stages of its lifecycle.\nIt's not intended for fine-grained status, such as describing a work ticket\nthat's in progress or in review.",
         "type": "object",
         "properties": {
            "state": {
               "description": "The state of a document, from a controlled vocabulary.",
               "allOf": [
                  {
                     "$ref": "#/definitions/TechnoteState"
                  }
               ]
            },
            "note": {
               "title": "Note",
               "description": "An explanation of the state.",
               "type": "string"
            },
            "supersceding_urls": {
               "title": "Supersceding Urls",
               "description": "URLs to documents/webpages that superscede this technote.",
               "type": "array",
               "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 2083,
                  "format": "uri"
               }
            }
         },
         "required": [
            "state"
         ]
      },
      "LicenseTable": {
         "title": "LicenseTable",
         "description": "A model for ``[technote.license]`` in ``technote.toml``, which\ndescribes the content's license.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "The SPDX license ID. See https://spdx.org/licenses/.",
               "examples": "CC-BY-SA-4.0",
               "type": "string"
            }
         },
         "required": [
            "id"
         ]
      },
      "PersonName": {
         "title": "PersonName",
         "description": "A person's name.",
         "type": "object",
         "properties": {
            "family_names": {
               "title": "Family Names",
               "description": "The person's family name (last name in western culture).",
               "type": "string"
            },
            "given_names": {
               "title": "Given Names",
               "description": "The person's given name (first name in western culture).",
               "type": "string"
            },
            "name": {
               "title": "Name",
               "description": "The person's name, an alternative to specifying surname and given names.",
               "type": "string"
            }
         }
      },
      "Organization": {
         "title": "Organization",
         "description": "Model for describing an organization (often as an affiliation).",
         "type": "object",
         "properties": {
            "internal_id": {
               "title": "Internal Id",
               "description": "A user-specific identifier for an organization.",
               "type": "string"
            },
            "ror": {
               "title": "Ror",
               "description": "The ROR (ror.org) identifier of the institution.",
               "minLength": 1,
               "maxLength": 2083,
               "format": "uri",
               "type": "string"
            },
            "name": {
               "title": "Name",
               "description": "The display name of the institution.",
               "type": "string"
            },
            "address": {
               "title": "Address",
               "description": "The address of the institution.",
               "type": "string"
            },
            "url": {
               "title": "Url",
               "description": "The homepage of the institution.",
               "minLength": 1,
               "maxLength": 2083,
               "format": "uri",
               "type": "string"
            }
         }
      },
      "Person": {
         "title": "Person",
         "description": "Model for describing a person related to the technote.",
         "type": "object",
         "properties": {
            "name": {
               "$ref": "#/definitions/PersonName"
            },
            "internal_id": {
               "title": "Internal Id",
               "description": "An internal identifier for the person.",
               "type": "string"
            },
            "orcid": {
               "title": "Orcid",
               "description": "The ORCiD of the person (https://orcid.org).",
               "minLength": 1,
               "maxLength": 2083,
               "format": "uri",
               "type": "string"
            },
            "affiliations": {
               "title": "Affiliations",
               "description": "The person's affiliations.",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/Organization"
               }
            },
            "email": {
               "title": "Email",
               "description": "Contact email associated with the person.",
               "type": "string",
               "format": "email"
            }
         },
         "required": [
            "name"
         ]
      },
      "ZenodoRole": {
         "title": "ZenodoRole",
         "description": "The role of a contributor in a Zenodo record.",
         "enum": [
            "ContactPerson",
            "DataCollector",
            "DataCurator",
            "DataManager",
            "Distributor",
            "Editor",
            "Funder",
            "HostingInstitution",
            "Producer",
            "ProjectLeader",
            "ProjectManager",
            "ProjectMember",
            "RegistrationAgency",
            "RegistrationAuthority",
            "RelatedPerson",
            "Researcher",
            "ResearchGroup",
            "RightsHolder",
            "Supervisor",
            "Sponsor",
            "WorkPackageLeader",
            "Other"
         ],
         "type": "string"
      },
      "Contributor": {
         "title": "Contributor",
         "description": "Data about a contributor.\n\nA ``Contributor`` is the same as a ``Person``, with the addition of the\n`role` attribute.",
         "type": "object",
         "properties": {
            "name": {
               "$ref": "#/definitions/PersonName"
            },
            "internal_id": {
               "title": "Internal Id",
               "description": "An internal identifier for the person.",
               "type": "string"
            },
            "orcid": {
               "title": "Orcid",
               "description": "The ORCiD of the person (https://orcid.org).",
               "minLength": 1,
               "maxLength": 2083,
               "format": "uri",
               "type": "string"
            },
            "affiliations": {
               "title": "Affiliations",
               "description": "The person's affiliations.",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/Organization"
               }
            },
            "email": {
               "title": "Email",
               "description": "Contact email associated with the person.",
               "type": "string",
               "format": "email"
            },
            "role": {
               "description": "the contributor's role.",
               "allOf": [
                  {
                     "$ref": "#/definitions/ZenodoRole"
                  }
               ]
            },
            "note": {
               "title": "Note",
               "description": "Note describing the contribution.",
               "type": "string"
            }
         },
         "required": [
            "name"
         ]
      },
      "IntersphinxTable": {
         "title": "IntersphinxTable",
         "description": "Intersphinx configuration in the ``[technote.sphinx]`` table.",
         "type": "object",
         "properties": {
            "projects": {
               "title": "Projects",
               "description": "Mapping of projects and their URLs.",
               "type": "object",
               "additionalProperties": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 2083,
                  "format": "uri"
               }
            }
         }
      },
      "LinkcheckTable": {
         "title": "LinkcheckTable",
         "description": "Linkcheck builder configurations in the ``[technote.sphinx]`` table.",
         "type": "object",
         "properties": {
            "ignore": {
               "title": "Ignore",
               "description": "Regular expressions of URLs to skip checking links",
               "type": "array",
               "items": {
                  "type": "string"
               }
            }
         }
      },
      "SphinxTable": {
         "title": "SphinxTable",
         "description": "The ``[technote.sphinx]`` table permits Sphinx project configuration.",
         "type": "object",
         "properties": {
            "nitpicky": {
               "title": "Nitpicky",
               "description": "Escalate warnings to build errors.",
               "default": false,
               "type": "boolean"
            },
            "nitpick_ignore": {
               "title": "Nitpick Ignore",
               "description": "Errors to ignore. First item is the type (like a role or directive) and the second is the target (like the argument to the role).",
               "type": "array",
               "items": {
                  "type": "array",
                  "minItems": 2,
                  "maxItems": 2,
                  "items": [
                     {
                        "type": "string"
                     },
                     {
                        "type": "string"
                     }
                  ]
               }
            },
            "nitpick_ignore_regex": {
               "title": "Nitpick Ignore Regex",
               "description": "Same as ``nitpick_ignore``, but both type and target are interpreted as regular expressions.",
               "type": "array",
               "items": {
                  "type": "array",
                  "minItems": 2,
                  "maxItems": 2,
                  "items": [
                     {
                        "type": "string"
                     },
                     {
                        "type": "string"
                     }
                  ]
               }
            },
            "extensions": {
               "title": "Extensions",
               "description": "Additional Sphinx extensions to use in the build.",
               "type": "array",
               "items": {
                  "type": "string"
               }
            },
            "intersphinx": {
               "title": "Intersphinx",
               "description": "Intersphinx configurations.",
               "allOf": [
                  {
                     "$ref": "#/definitions/IntersphinxTable"
                  }
               ]
            },
            "linkcheck": {
               "title": "Linkcheck",
               "description": "Link check builder settings.",
               "allOf": [
                  {
                     "$ref": "#/definitions/LinkcheckTable"
                  }
               ]
            }
         }
      },
      "TechnoteTable": {
         "title": "TechnoteTable",
         "description": "The root table for technote configuration, ``[technote]`` in\n``technote.toml`` (`TechnoteToml`).",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "An internal identifier for the technote.",
               "examples": "SQR-000",
               "type": "string"
            },
            "series_id": {
               "title": "Series Id",
               "description": "An internal identifier for a series this technote belongs to.",
               "examples": "SQR",
               "type": "string"
            },
            "date_created": {
               "title": "Date Created",
               "description": "Date when the technote was created.",
               "type": "string",
               "format": "date"
            },
            "date_updated": {
               "title": "Date Updated",
               "description": "Date when the technote was updated.",
               "type": "string",
               "format": "date"
            },
            "version": {
               "title": "Version",
               "description": "The current version of the technote.",
               "type": "string"
            },
            "doi": {
               "title": "Doi",
               "description": "The most-relevant DOI that identifies this technote. This can be a pre-registerered DOI (i.e. for Zenodo) so that the DOI can be present in the released technote source.",
               "type": "string"
            },
            "title": {
               "title": "Title",
               "description": "The technote's title. Normally the title is derived from the document's source.",
               "type": "string"
            },
            "canonical_url": {
               "title": "Canonical Url",
               "description": "The URL where this technote is published.",
               "examples": "https://sqr-000.lsst.io",
               "minLength": 1,
               "maxLength": 2083,
               "format": "uri",
               "type": "string"
            },
            "github_url": {
               "title": "Github Url",
               "description": "The URL of the GitHub repository hosting this technote.",
               "minLength": 1,
               "maxLength": 2083,
               "format": "uri",
               "type": "string"
            },
            "github_default_branch": {
               "title": "Github Default Branch",
               "description": "The default branch of the GitHub repository.",
               "default": "main",
               "type": "string"
            },
            "status": {
               "title": "Status",
               "description": "The status of the technote.",
               "allOf": [
                  {
                     "$ref": "#/definitions/TechnoteStatus"
                  }
               ]
            },
            "license": {
               "title": "License",
               "description": "The specification of a content license.",
               "allOf": [
                  {
                     "$ref": "#/definitions/LicenseTable"
                  }
               ]
            },
            "authors": {
               "title": "Authors",
               "description": "The authors of the technote.",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/Person"
               }
            },
            "contributors": {
               "title": "Contributors",
               "description": "Additional persons involved.",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/Contributor"
               }
            },
            "sphinx": {
               "$ref": "#/definitions/SphinxTable"
            }
         }
      }
   }
}

Fields:
field technote: TechnoteTable [Required]#
classmethod parse_toml(content)#

Load a technote.toml file from the project directory.

Parameters:

content (str) – The string content of a technote.toml file.

Returns:

The parsed TechnoteToml.

Return type:

TechnoteToml