Contributor#

pydantic model technote.sources.tomlsettings.Contributor#

Data about a contributor.

A Contributor is the same as a Person, with the addition of the role attribute.

Parameters:

data (Any) –

Show JSON schema
{
   "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": "#/$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"
      }
   },
   "$defs": {
      "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"
      },
      "PersonName": {
         "description": "A person's name.",
         "properties": {
            "family": {
               "description": "The person's family name (last name in western culture).",
               "title": "Family",
               "type": "string"
            },
            "given": {
               "description": "The person's given name (first name in western culture).",
               "title": "Given",
               "type": "string"
            }
         },
         "required": [
            "family",
            "given"
         ],
         "title": "PersonName",
         "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": [
      "name"
   ]
}

Fields:
Validators:
field note: str | None = None#

Note describing the contribution.

field role: ZenodoRole | None = None#

the contributor’s role.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.