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": "#/$defs/TechnoteTable"
      }
   },
   "$defs": {
      "Contributor": {
         "description": "Data about a contributor.\n\nA ``Contributor`` is the same as a ``Person``, with the addition of the\n`role` attribute.",
         "properties": {
            "name": {
               "$ref": "#/$defs/PersonName"
            },
            "internal_id": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "An internal identifier for the person.",
               "title": "Internal Id"
            },
            "orcid": {
               "anyOf": [
                  {
                     "format": "uri",
                     "maxLength": 2083,
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The ORCiD of the person (https://orcid.org).",
               "title": "Orcid"
            },
            "affiliations": {
               "description": "The person's affiliations.",
               "items": {
                  "$ref": "#/$defs/Organization"
               },
               "title": "Affiliations",
               "type": "array"
            },
            "email": {
               "anyOf": [
                  {
                     "format": "email",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Contact email associated with the person.",
               "title": "Email"
            },
            "role": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/ZenodoRole"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "the contributor's role."
            },
            "note": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Note describing the contribution.",
               "title": "Note"
            }
         },
         "required": [
            "name"
         ],
         "title": "Contributor",
         "type": "object"
      },
      "IntersphinxTable": {
         "description": "Intersphinx configuration in the ``[technote.sphinx]`` table.",
         "properties": {
            "projects": {
               "additionalProperties": {
                  "format": "uri",
                  "maxLength": 2083,
                  "minLength": 1,
                  "type": "string"
               },
               "description": "Mapping of projects and their URLs.",
               "title": "Projects",
               "type": "object"
            }
         },
         "title": "IntersphinxTable",
         "type": "object"
      },
      "LicenseTable": {
         "description": "A model for ``[technote.license]`` in ``technote.toml``, which\ndescribes the content's license.",
         "properties": {
            "id": {
               "description": "The SPDX license ID. See https://spdx.org/licenses/.",
               "examples": [
                  "CC-BY-SA-4.0"
               ],
               "title": "Id",
               "type": "string"
            }
         },
         "required": [
            "id"
         ],
         "title": "LicenseTable",
         "type": "object"
      },
      "Link": {
         "description": "A model for a web link.",
         "properties": {
            "url": {
               "description": "The URL of the link.",
               "format": "uri",
               "maxLength": 2083,
               "minLength": 1,
               "title": "Url",
               "type": "string"
            },
            "title": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The title of the link, if available.",
               "title": "Title"
            }
         },
         "required": [
            "url"
         ],
         "title": "Link",
         "type": "object"
      },
      "LinkcheckTable": {
         "description": "Linkcheck builder configurations in the ``[technote.sphinx]`` table.",
         "properties": {
            "ignore": {
               "description": "Regular expressions of URLs to skip checking links",
               "items": {
                  "type": "string"
               },
               "title": "Ignore",
               "type": "array"
            }
         },
         "title": "LinkcheckTable",
         "type": "object"
      },
      "Organization": {
         "description": "Model for describing an organization (often as an affiliation).",
         "properties": {
            "internal_id": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "A user-specific identifier for an organization.",
               "title": "Internal Id"
            },
            "ror": {
               "anyOf": [
                  {
                     "format": "uri",
                     "maxLength": 2083,
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The ROR (ror.org) identifier of the institution.",
               "title": "Ror"
            },
            "name": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The display name of the institution.",
               "title": "Name"
            },
            "address": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The address of the institution.",
               "title": "Address"
            },
            "url": {
               "anyOf": [
                  {
                     "format": "uri",
                     "maxLength": 2083,
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The homepage of the institution.",
               "title": "Url"
            }
         },
         "title": "Organization",
         "type": "object"
      },
      "Person": {
         "description": "Model for describing a person related to the technote.",
         "properties": {
            "name": {
               "$ref": "#/$defs/PersonName"
            },
            "internal_id": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "An internal identifier for the person.",
               "title": "Internal Id"
            },
            "orcid": {
               "anyOf": [
                  {
                     "format": "uri",
                     "maxLength": 2083,
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The ORCiD of the person (https://orcid.org).",
               "title": "Orcid"
            },
            "affiliations": {
               "description": "The person's affiliations.",
               "items": {
                  "$ref": "#/$defs/Organization"
               },
               "title": "Affiliations",
               "type": "array"
            },
            "email": {
               "anyOf": [
                  {
                     "format": "email",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Contact email associated with the person.",
               "title": "Email"
            }
         },
         "required": [
            "name"
         ],
         "title": "Person",
         "type": "object"
      },
      "PersonName": {
         "description": "A person's name.",
         "properties": {
            "family_names": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The person's family name (last name in western culture).",
               "title": "Family Names"
            },
            "given_names": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The person's given name (first name in western culture).",
               "title": "Given Names"
            },
            "name": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The person's name, an alternative to specifying surname and given names.",
               "title": "Name"
            }
         },
         "title": "PersonName",
         "type": "object"
      },
      "SphinxTable": {
         "description": "The ``[technote.sphinx]`` table permits Sphinx project configuration.",
         "properties": {
            "nitpicky": {
               "default": false,
               "description": "Escalate warnings to build errors.",
               "title": "Nitpicky",
               "type": "boolean"
            },
            "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).",
               "items": {
                  "maxItems": 2,
                  "minItems": 2,
                  "prefixItems": [
                     {
                        "type": "string"
                     },
                     {
                        "type": "string"
                     }
                  ],
                  "type": "array"
               },
               "title": "Nitpick Ignore",
               "type": "array"
            },
            "nitpick_ignore_regex": {
               "description": "Same as ``nitpick_ignore``, but both type and target are interpreted as regular expressions.",
               "items": {
                  "maxItems": 2,
                  "minItems": 2,
                  "prefixItems": [
                     {
                        "type": "string"
                     },
                     {
                        "type": "string"
                     }
                  ],
                  "type": "array"
               },
               "title": "Nitpick Ignore Regex",
               "type": "array"
            },
            "extensions": {
               "description": "Additional Sphinx extensions to use in the build.",
               "items": {
                  "type": "string"
               },
               "title": "Extensions",
               "type": "array"
            },
            "intersphinx": {
               "allOf": [
                  {
                     "$ref": "#/$defs/IntersphinxTable"
                  }
               ],
               "description": "Intersphinx configurations."
            },
            "linkcheck": {
               "allOf": [
                  {
                     "$ref": "#/$defs/LinkcheckTable"
                  }
               ],
               "description": "Link check builder settings."
            }
         },
         "title": "SphinxTable",
         "type": "object"
      },
      "TechnoteState": {
         "description": "Standardized states for a technote.\n\n.. mermaid::\n\n   flowchart LR\n     draft --> stable\n     stable --> draft\n     stable --> deprecated\n     draft --> deprecated",
         "enum": [
            "draft",
            "stable",
            "deprecated",
            "other"
         ],
         "title": "TechnoteState",
         "type": "string"
      },
      "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.",
         "properties": {
            "state": {
               "allOf": [
                  {
                     "$ref": "#/$defs/TechnoteState"
                  }
               ],
               "description": "The state of a document, from a controlled vocabulary."
            },
            "note": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "An explanation of the state.",
               "title": "Note"
            },
            "supersceding_urls": {
               "description": "URLs to documents/webpages that superscede this technote.",
               "items": {
                  "$ref": "#/$defs/Link"
               },
               "title": "Supersceding Urls",
               "type": "array"
            }
         },
         "required": [
            "state"
         ],
         "title": "TechnoteStatus",
         "type": "object"
      },
      "TechnoteTable": {
         "description": "The root table for technote configuration, ``[technote]`` in\n``technote.toml`` (`TechnoteToml`).",
         "properties": {
            "id": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "An internal identifier for the technote.",
               "examples": [
                  "SQR-000"
               ],
               "title": "Id"
            },
            "series_id": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "An internal identifier for a series this technote belongs to.",
               "examples": [
                  "SQR"
               ],
               "title": "Series Id"
            },
            "date_created": {
               "anyOf": [
                  {
                     "format": "date",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Date when the technote was created.",
               "title": "Date Created"
            },
            "date_updated": {
               "anyOf": [
                  {
                     "format": "date",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Date when the technote was updated.",
               "title": "Date Updated"
            },
            "version": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The current version of the technote.",
               "title": "Version"
            },
            "doi": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "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.",
               "title": "Doi"
            },
            "title": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The technote's title. Normally the title is derived from the document's source.",
               "title": "Title"
            },
            "canonical_url": {
               "anyOf": [
                  {
                     "format": "uri",
                     "maxLength": 2083,
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The URL where this technote is published.",
               "examples": [
                  "https://sqr-000.lsst.io/"
               ],
               "title": "Canonical Url"
            },
            "github_url": {
               "anyOf": [
                  {
                     "format": "uri",
                     "maxLength": 2083,
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The URL of the GitHub repository hosting this technote.",
               "title": "Github Url"
            },
            "github_default_branch": {
               "default": "main",
               "description": "The default branch of the GitHub repository.",
               "title": "Github Default Branch",
               "type": "string"
            },
            "status": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/TechnoteStatus"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The status of the technote."
            },
            "license": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/LicenseTable"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The specification of a content license."
            },
            "authors": {
               "description": "The authors of the technote.",
               "items": {
                  "$ref": "#/$defs/Person"
               },
               "title": "Authors",
               "type": "array"
            },
            "contributors": {
               "description": "Additional persons involved.",
               "items": {
                  "$ref": "#/$defs/Contributor"
               },
               "title": "Contributors",
               "type": "array"
            },
            "sphinx": {
               "$ref": "#/$defs/SphinxTable"
            }
         },
         "title": "TechnoteTable",
         "type": "object"
      },
      "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"
         ],
         "title": "ZenodoRole",
         "type": "string"
      }
   },
   "required": [
      "technote"
   ]
}

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