From 21e7e9ca4cc841bc9b56559b23019ba70e423d8c Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Tue, 10 Mar 2026 15:46:14 -0400 Subject: [PATCH 01/25] [DATALAD RUNCMD] Auto-convert the model === Do not change lines below === { "chain": [], "cmd": "hatch run linkml-auto-converted:2linkml", "exit": 0, "extra_inputs": [], "inputs": [], "outputs": [], "pwd": "." } ^^^ Do not change lines above ^^^ --- dandischema/models.yaml | 2304 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 2304 insertions(+) create mode 100644 dandischema/models.yaml diff --git a/dandischema/models.yaml b/dandischema/models.yaml new file mode 100644 index 00000000..f4ee6540 --- /dev/null +++ b/dandischema/models.yaml @@ -0,0 +1,2304 @@ +name: dandi-schema +status: eunal:concept-status/DRAFT +id: https://schema.dandiarchive.org/s/dandi/v0.7 +version: 0.7.0 +imports: +- linkml:types +prefixes: + linkml: + prefix_prefix: linkml + prefix_reference: https://w3id.org/linkml/ + test_schema: + prefix_prefix: test_schema + prefix_reference: http://example.org/test-schema/ +default_prefix: test_schema +default_range: string +enums: + AccessType: + name: AccessType + description: An enumeration of access status options + permissible_values: + dandi:OpenAccess: + text: dandi:OpenAccess + meaning: dandi:OpenAccess + dandi:EmbargoedAccess: + text: dandi:EmbargoedAccess + meaning: dandi:EmbargoedAccess + AgeReferenceType: + name: AgeReferenceType + description: An enumeration of age reference + permissible_values: + dandi:BirthReference: + text: dandi:BirthReference + meaning: dandi:BirthReference + dandi:GestationalReference: + text: dandi:GestationalReference + meaning: dandi:GestationalReference + DigestType: + name: DigestType + description: An enumeration of checksum types + permissible_values: + dandi:md5: + text: dandi:md5 + meaning: dandi:md5 + dandi:sha1: + text: dandi:sha1 + meaning: dandi:sha1 + dandi:sha2-256: + text: dandi:sha2-256 + meaning: dandi:sha2-256 + dandi:sha3-256: + text: dandi:sha3-256 + meaning: dandi:sha3-256 + dandi:blake2b-256: + text: dandi:blake2b-256 + meaning: dandi:blake2b-256 + dandi:blake3: + text: dandi:blake3 + meaning: dandi:blake3 + dandi:dandi-etag: + text: dandi:dandi-etag + meaning: dandi:dandi-etag + dandi:dandi-zarr-checksum: + text: dandi:dandi-zarr-checksum + meaning: dandi:dandi-zarr-checksum + IdentifierType: + name: IdentifierType + description: An enumeration of identifiers + permissible_values: + dandi:doi: + text: dandi:doi + meaning: dandi:doi + dandi:orcid: + text: dandi:orcid + meaning: dandi:orcid + dandi:ror: + text: dandi:ror + meaning: dandi:ror + dandi:dandi: + text: dandi:dandi + meaning: dandi:dandi + dandi:rrid: + text: dandi:rrid + meaning: dandi:rrid + LicenseType: + name: LicenseType + description: An enumeration. + permissible_values: + spdx:CC0-1.0: + text: spdx:CC0-1.0 + meaning: spdx:CC0-1.0 + spdx:CC-BY-4.0: + text: spdx:CC-BY-4.0 + meaning: spdx:CC-BY-4.0 + ParticipantRelationType: + name: ParticipantRelationType + description: An enumeration of participant relations + permissible_values: + dandi:isChildOf: + text: dandi:isChildOf + meaning: dandi:isChildOf + dandi:isParentOf: + text: dandi:isParentOf + meaning: dandi:isParentOf + dandi:isSiblingOf: + text: dandi:isSiblingOf + meaning: dandi:isSiblingOf + dandi:isMonozygoticTwinOf: + text: dandi:isMonozygoticTwinOf + meaning: dandi:isMonozygoticTwinOf + dandi:isDizygoticTwinOf: + text: dandi:isDizygoticTwinOf + meaning: dandi:isDizygoticTwinOf + RelationType: + name: RelationType + description: An enumeration of resource relations + permissible_values: + dcite:IsCitedBy: + text: dcite:IsCitedBy + meaning: dcite:IsCitedBy + dcite:Cites: + text: dcite:Cites + meaning: dcite:Cites + dcite:IsSupplementTo: + text: dcite:IsSupplementTo + meaning: dcite:IsSupplementTo + dcite:IsSupplementedBy: + text: dcite:IsSupplementedBy + meaning: dcite:IsSupplementedBy + dcite:IsContinuedBy: + text: dcite:IsContinuedBy + meaning: dcite:IsContinuedBy + dcite:Continues: + text: dcite:Continues + meaning: dcite:Continues + dcite:Describes: + text: dcite:Describes + meaning: dcite:Describes + dcite:IsDescribedBy: + text: dcite:IsDescribedBy + meaning: dcite:IsDescribedBy + dcite:HasMetadata: + text: dcite:HasMetadata + meaning: dcite:HasMetadata + dcite:IsMetadataFor: + text: dcite:IsMetadataFor + meaning: dcite:IsMetadataFor + dcite:HasVersion: + text: dcite:HasVersion + meaning: dcite:HasVersion + dcite:IsVersionOf: + text: dcite:IsVersionOf + meaning: dcite:IsVersionOf + dcite:IsNewVersionOf: + text: dcite:IsNewVersionOf + meaning: dcite:IsNewVersionOf + dcite:IsPreviousVersionOf: + text: dcite:IsPreviousVersionOf + meaning: dcite:IsPreviousVersionOf + dcite:IsPartOf: + text: dcite:IsPartOf + meaning: dcite:IsPartOf + dcite:HasPart: + text: dcite:HasPart + meaning: dcite:HasPart + dcite:IsReferencedBy: + text: dcite:IsReferencedBy + meaning: dcite:IsReferencedBy + dcite:References: + text: dcite:References + meaning: dcite:References + dcite:IsDocumentedBy: + text: dcite:IsDocumentedBy + meaning: dcite:IsDocumentedBy + dcite:Documents: + text: dcite:Documents + meaning: dcite:Documents + dcite:IsCompiledBy: + text: dcite:IsCompiledBy + meaning: dcite:IsCompiledBy + dcite:Compiles: + text: dcite:Compiles + meaning: dcite:Compiles + dcite:IsVariantFormOf: + text: dcite:IsVariantFormOf + meaning: dcite:IsVariantFormOf + dcite:IsOriginalFormOf: + text: dcite:IsOriginalFormOf + meaning: dcite:IsOriginalFormOf + dcite:IsIdenticalTo: + text: dcite:IsIdenticalTo + meaning: dcite:IsIdenticalTo + dcite:IsReviewedBy: + text: dcite:IsReviewedBy + meaning: dcite:IsReviewedBy + dcite:Reviews: + text: dcite:Reviews + meaning: dcite:Reviews + dcite:IsDerivedFrom: + text: dcite:IsDerivedFrom + meaning: dcite:IsDerivedFrom + dcite:IsSourceOf: + text: dcite:IsSourceOf + meaning: dcite:IsSourceOf + dcite:IsRequiredBy: + text: dcite:IsRequiredBy + meaning: dcite:IsRequiredBy + dcite:Requires: + text: dcite:Requires + meaning: dcite:Requires + dcite:Obsoletes: + text: dcite:Obsoletes + meaning: dcite:Obsoletes + dcite:IsObsoletedBy: + text: dcite:IsObsoletedBy + meaning: dcite:IsObsoletedBy + dcite:IsPublishedIn: + text: dcite:IsPublishedIn + meaning: dcite:IsPublishedIn + ResourceType: + name: ResourceType + description: An enumeration of resource types + permissible_values: + dcite:Audiovisual: + text: dcite:Audiovisual + meaning: dcite:Audiovisual + dcite:Book: + text: dcite:Book + meaning: dcite:Book + dcite:BookChapter: + text: dcite:BookChapter + meaning: dcite:BookChapter + dcite:Collection: + text: dcite:Collection + meaning: dcite:Collection + dcite:ComputationalNotebook: + text: dcite:ComputationalNotebook + meaning: dcite:ComputationalNotebook + dcite:ConferencePaper: + text: dcite:ConferencePaper + meaning: dcite:ConferencePaper + dcite:ConferenceProceeding: + text: dcite:ConferenceProceeding + meaning: dcite:ConferenceProceeding + dcite:DataPaper: + text: dcite:DataPaper + meaning: dcite:DataPaper + dcite:Dataset: + text: dcite:Dataset + meaning: dcite:Dataset + dcite:Dissertation: + text: dcite:Dissertation + meaning: dcite:Dissertation + dcite:Event: + text: dcite:Event + meaning: dcite:Event + dcite:Image: + text: dcite:Image + meaning: dcite:Image + dcite:Instrument: + text: dcite:Instrument + meaning: dcite:Instrument + dcite:InteractiveResource: + text: dcite:InteractiveResource + meaning: dcite:InteractiveResource + dcite:Journal: + text: dcite:Journal + meaning: dcite:Journal + dcite:JournalArticle: + text: dcite:JournalArticle + meaning: dcite:JournalArticle + dcite:Model: + text: dcite:Model + meaning: dcite:Model + dcite:OutputManagementPlan: + text: dcite:OutputManagementPlan + meaning: dcite:OutputManagementPlan + dcite:PeerReview: + text: dcite:PeerReview + meaning: dcite:PeerReview + dcite:PhysicalObject: + text: dcite:PhysicalObject + meaning: dcite:PhysicalObject + dcite:Preprint: + text: dcite:Preprint + meaning: dcite:Preprint + dcite:Report: + text: dcite:Report + meaning: dcite:Report + dcite:Service: + text: dcite:Service + meaning: dcite:Service + dcite:Software: + text: dcite:Software + meaning: dcite:Software + dcite:Sound: + text: dcite:Sound + meaning: dcite:Sound + dcite:Standard: + text: dcite:Standard + meaning: dcite:Standard + dcite:StudyRegistration: + text: dcite:StudyRegistration + meaning: dcite:StudyRegistration + dcite:Text: + text: dcite:Text + meaning: dcite:Text + dcite:Workflow: + text: dcite:Workflow + meaning: dcite:Workflow + dcite:Other: + text: dcite:Other + meaning: dcite:Other + RoleType: + name: RoleType + description: An enumeration of roles + permissible_values: + dcite:Author: + text: dcite:Author + meaning: dcite:Author + dcite:Conceptualization: + text: dcite:Conceptualization + meaning: dcite:Conceptualization + dcite:ContactPerson: + text: dcite:ContactPerson + meaning: dcite:ContactPerson + dcite:DataCollector: + text: dcite:DataCollector + meaning: dcite:DataCollector + dcite:DataCurator: + text: dcite:DataCurator + meaning: dcite:DataCurator + dcite:DataManager: + text: dcite:DataManager + meaning: dcite:DataManager + dcite:FormalAnalysis: + text: dcite:FormalAnalysis + meaning: dcite:FormalAnalysis + dcite:FundingAcquisition: + text: dcite:FundingAcquisition + meaning: dcite:FundingAcquisition + dcite:Investigation: + text: dcite:Investigation + meaning: dcite:Investigation + dcite:Maintainer: + text: dcite:Maintainer + meaning: dcite:Maintainer + dcite:Methodology: + text: dcite:Methodology + meaning: dcite:Methodology + dcite:Producer: + text: dcite:Producer + meaning: dcite:Producer + dcite:ProjectLeader: + text: dcite:ProjectLeader + meaning: dcite:ProjectLeader + dcite:ProjectManager: + text: dcite:ProjectManager + meaning: dcite:ProjectManager + dcite:ProjectMember: + text: dcite:ProjectMember + meaning: dcite:ProjectMember + dcite:ProjectAdministration: + text: dcite:ProjectAdministration + meaning: dcite:ProjectAdministration + dcite:Researcher: + text: dcite:Researcher + meaning: dcite:Researcher + dcite:Resources: + text: dcite:Resources + meaning: dcite:Resources + dcite:Software: + text: dcite:Software + meaning: dcite:Software + dcite:Supervision: + text: dcite:Supervision + meaning: dcite:Supervision + dcite:Validation: + text: dcite:Validation + meaning: dcite:Validation + dcite:Visualization: + text: dcite:Visualization + meaning: dcite:Visualization + dcite:Funder: + text: dcite:Funder + meaning: dcite:Funder + dcite:Sponsor: + text: dcite:Sponsor + meaning: dcite:Sponsor + dcite:StudyParticipant: + text: dcite:StudyParticipant + meaning: dcite:StudyParticipant + dcite:Affiliation: + text: dcite:Affiliation + meaning: dcite:Affiliation + dcite:EthicsApproval: + text: dcite:EthicsApproval + meaning: dcite:EthicsApproval + dcite:Other: + text: dcite:Other + meaning: dcite:Other +slots: + about: + name: about + notes: + - 'pydantic2linkml: Warning: The translation is incomplete. Tagged union types + are yet to be supported.' + required: false + multivalued: true + access: + name: access + notes: + - 'pydantic2linkml: Unable to express the default factory, + at 0x7f8c96c35ea0>, in LinkML.' + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, .' + range: AccessRequirements + required: false + multivalued: true + acknowledgement: + name: acknowledgement + range: string + required: false + affiliation: + name: affiliation + range: Affiliation + required: false + multivalued: true + age: + name: age + range: PropertyValue + required: false + alleles: + name: alleles + range: Allele + required: true + multivalued: true + alleleSymbol: + name: alleleSymbol + range: string + required: false + alleleType: + name: alleleType + range: string + required: false + altName: + name: altName + range: string + required: false + multivalued: true + anatomy: + name: anatomy + range: Anatomy + required: false + multivalued: true + approach: + name: approach + range: ApproachType + required: false + multivalued: true + assayType: + name: assayType + range: AssayType + required: false + multivalued: true + assetsSummary: + name: assetsSummary + range: AssetsSummary + required: true + awardNumber: + name: awardNumber + range: string + required: false + blobDateModified: + name: blobDateModified + notes: + - 'pydantic2linkml: Unable to express the microseconds precision constraint of + truncate. LinkML lacks direct support for this restriction.' + range: datetime + required: false + cellLine: + name: cellLine + range: string + required: false + citation: + name: citation + range: string + required: true + contactPoint: + name: contactPoint + range: ContactPoint + required: false + contentSize: + name: contentSize + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema + contains a choice of type str. The choice type is yet to be supported. (core + schema: {''type'': ''union'', ''choices'': [{''type'': ''str'', ''pattern'': + ''^\\s*(\\d*\\.?\\d+)\\s*(\\w+)?''}, {''type'': ''int'', ''ge'': 0}], ''custom_error_type'': + ''byte_size'', ''custom_error_message'': ''could not parse value and unit from + byte string''}).' + required: true + contentUrl: + name: contentUrl + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation + function, .wrap_val + at 0x7f8c967983a0>.' + range: uri + required: true + multivalued: true + pattern: ^(?i:http|https)://[^\s]+$ + contributor: + name: contributor + notes: + - 'pydantic2linkml: Warning: The translation is incomplete. Tagged union types + are yet to be supported.' + required: false + multivalued: true + dataStandard: + name: dataStandard + range: StandardsType + required: false + multivalued: true + dataType: + name: dataType + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation + function, .wrap_val + at 0x7f8c96c370a0>.' + range: uri + required: false + pattern: ^(?i:http|https)://[^\s]+$ + dateCreated: + name: dateCreated + notes: + - 'pydantic2linkml: Unable to express the microseconds precision constraint of + truncate. LinkML lacks direct support for this restriction.' + range: datetime + required: false + dateModified: + name: dateModified + notes: + - 'pydantic2linkml: Unable to express the microseconds precision constraint of + truncate. LinkML lacks direct support for this restriction.' + range: datetime + required: false + datePublished: + name: datePublished + notes: + - 'pydantic2linkml: Unable to express the microseconds precision constraint of + truncate. LinkML lacks direct support for this restriction.' + range: datetime + required: true + description: + name: description + range: string + required: false + digest: + name: digest + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + - 'pydantic2linkml: Warning: The translation is incomplete. `dict` types are yet + to be supported.' + required: true + disorder: + name: disorder + range: Disorder + required: false + multivalued: true + doi: + name: doi + ifabsent: string() + range: string + required: false + pattern: ^(10\.\d{4,}/[a-z][-a-z]*\.\d{6}/\d+\.\d+\.\d+|)$ + dxdate: + name: dxdate + notes: + - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema + contains a choice of type date. The choice type is yet to be supported. (core + schema: {''type'': ''union'', ''choices'': [{''type'': ''date''}, {''type'': + ''datetime'', ''microseconds_precision'': ''truncate''}]}).' + required: false + multivalued: true + email: + name: email + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + range: string + required: false + embargoedUntil: + name: embargoedUntil + range: date + required: false + encodingFormat: + name: encodingFormat + notes: + - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema + contains a choice of type function-wrap. The choice type is yet to be supported. + (core schema: {''type'': ''union'', ''choices'': [{''type'': ''function-wrap'', + ''function'': {''type'': ''no-info'', ''function'': .wrap_val + at 0x7f8c96c372e0>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', + ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': + ''function-plain'', ''function'': >, ''info_arg'': True}}, {''type'': ''str''}]}).' + required: true + endDate: + name: endDate + notes: + - 'pydantic2linkml: Unable to express the microseconds precision constraint of + truncate. LinkML lacks direct support for this restriction.' + range: datetime + required: false + ethicsApproval: + name: ethicsApproval + range: EthicsApproval + required: false + multivalued: true + genotype: + name: genotype + notes: + - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema + contains a choice of type list. The choice type is yet to be supported. (core + schema: {''type'': ''union'', ''choices'': [{''type'': ''list'', ''items_schema'': + {''type'': ''model'', ''cls'': , + ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': + {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': + True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', + ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + ''schema'': {''type'': ''literal'', ''expected'': [''GenotypeInfo'']}, ''type'': + ''function-after''}, ''default'': ''GenotypeInfo'', ''validate_default'': True}, + ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''locus'': {''type'': + ''model-field'', ''schema'': {''type'': ''model'', ''cls'': , + ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': + {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': + True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', + ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, ''schema'': + {''type'': ''literal'', ''expected'': [''Locus'']}, ''type'': ''function-after''}, + ''default'': ''Locus'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': + {''readOnly'': True}}}, ''identifier'': {''type'': ''model-field'', ''schema'': + {''type'': ''union'', ''choices'': [{''type'': ''str''}, {''type'': ''list'', + ''items_schema'': {''type'': ''str''}}]}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Identifier for genotyping locus.''}, ''pydantic_js_extra'': + {''nskey'': ''schema''}}}, ''locusType'': {''type'': ''model-field'', ''schema'': + {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': + ''str''}}, ''default'': None}, ''metadata'': {}}}, ''model_name'': ''Locus'', + ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': + ''model_post_init'', ''config'': {''title'': ''Locus''}, ''ref'': ''dandischema.models.Locus:94399352651488'', + ''metadata'': {''pydantic_js_functions'': [>]}}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Locus at which information was extracted.''}}}, ''alleles'': + {''type'': ''model-field'', ''schema'': {''type'': ''list'', ''items_schema'': + {''type'': ''model'', ''cls'': , ''schema'': + {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': + {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': + True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', + ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + ''schema'': {''type'': ''literal'', ''expected'': [''Allele'']}, ''type'': ''function-after''}, + ''default'': ''Allele'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': + {''readOnly'': True}}}, ''identifier'': {''type'': ''model-field'', ''schema'': + {''type'': ''union'', ''choices'': [{''type'': ''str''}, {''type'': ''list'', + ''items_schema'': {''type'': ''str''}}]}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Identifier for genotyping allele.''}, ''pydantic_js_extra'': + {''nskey'': ''schema''}}}, ''alleleSymbol'': {''type'': ''model-field'', ''schema'': + {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': + ''str''}}, ''default'': None}, ''metadata'': {}}, ''alleleType'': {''type'': + ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': + ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': + {}}}, ''model_name'': ''Allele'', ''computed_fields'': []}, ''custom_init'': + False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': + {''title'': ''Allele''}, ''ref'': ''dandischema.models.Allele:94399352775296'', + ''metadata'': {''pydantic_js_functions'': [>]}}}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Information about alleles at the locus.''}}}, ''wasGeneratedBy'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''list'', ''items_schema'': + {''type'': ''model'', ''cls'': , ''schema'': + {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': + {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': + True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', + ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + ''schema'': {''type'': ''literal'', ''expected'': [''Session'']}, ''type'': + ''function-after''}, ''default'': ''Session'', ''validate_default'': True}, + ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, + ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''name'': {''type'': + ''model-field'', ''schema'': {''type'': ''str'', ''max_length'': 150}, ''metadata'': + {''pydantic_js_updates'': {''title'': ''Name of session'', ''description'': + ''The name of the logical session associated with the asset.''}, ''pydantic_js_extra'': + {''nskey'': ''schema''}}}, ''description'': {''type'': ''model-field'', ''schema'': + {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': + ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': + ''A brief description of the session.''}, ''pydantic_js_extra'': {''nskey'': + ''schema''}}}, ''startDate'': {''type'': ''model-field'', ''schema'': {''type'': + ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''datetime'', + ''microseconds_precision'': ''truncate''}}, ''default'': None}, ''metadata'': + {''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''endDate'': {''type'': ''model-field'', + ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': + {''type'': ''datetime'', ''microseconds_precision'': ''truncate''}}, ''default'': + None}, ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''wasAssociatedWith'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''list'', ''items_schema'': + {''type'': ''tagged-union'', ''choices'': {''Person'': {''function'': {''type'': + ''no-info'', ''function'': }, ''schema'': {''type'': ''model'', ''cls'': , + ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': + {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': + True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', + ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + ''schema'': {''type'': ''literal'', ''expected'': [''Person'']}, ''type'': ''function-after''}, + ''default'': ''Person'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': + {''readOnly'': True}}}, ''identifier'': {''type'': ''model-field'', ''schema'': + {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': + ''str'', ''pattern'': ''^\\d{4}-\\d{4}-\\d{4}-(\\d{3}X|\\d{4})$''}}, ''default'': + None}, ''metadata'': {''pydantic_js_updates'': {''title'': ''An ORCID identifier'', + ''description'': ''An ORCID (orcid.org) identifier for an individual.''}, ''pydantic_js_extra'': + {''nskey'': ''schema''}}}, ''name'': {''type'': ''model-field'', ''schema'': + {''type'': ''str'', ''pattern'': "^([\\w\\s\\-\\.'']+),\\s+([\\w\\s\\-\\.'']+)$"}, + ''metadata'': {''pydantic_js_updates'': {''title'': ''Use Last, First. Example: + Lovelace, Augusta Ada'', ''description'': ''Use the format: familyname, given + names ...''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''email'': {''type'': + ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': + ''nullable'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': + >}, + ''schema'': {''type'': ''str''}, ''metadata'': {''pydantic_js_functions'': [>]}, + ''type'': ''function-after''}}, ''default'': None}, ''metadata'': {''pydantic_js_extra'': + {''nskey'': ''schema''}}}, ''url'': {''type'': ''model-field'', ''schema'': + {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': + ''function-wrap'', ''function'': {''type'': ''no-info'', ''function'': .wrap_val at 0x7f8c96c36320>}, + ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, + ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': + ''function-plain'', ''function'': >, ''info_arg'': True}}}, ''default'': None}, + ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''roleName'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''list'', ''items_schema'': + {''type'': ''definition-ref'', ''schema_ref'': ''dandischema.models.RoleType:94399351385504''}}}, + ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''title'': ''Role'', + ''description'': ''Role(s) of the contributor. Multiple roles can be selected.''}, + ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''includeInCitation'': {''type'': + ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': + ''bool''}, ''default'': True}, ''metadata'': {''pydantic_js_updates'': {''title'': + ''Include contributor in citation'', ''description'': ''A flag to indicate whether + a contributor should be included when generating a citation for the item.''}, + ''pydantic_js_extra'': {''nskey'': ''dandi''}}}, ''awardNumber'': {''type'': + ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': + ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': + {''pydantic_js_updates'': {''title'': ''Identifier for an award'', ''description'': + ''Identifier associated with a sponsored or gift award.''}, ''pydantic_js_extra'': + {''nskey'': ''dandi''}}}, ''affiliation'': {''type'': ''model-field'', ''schema'': + {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': + ''list'', ''items_schema'': {''type'': ''model'', ''cls'': , + ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': + {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': + True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', + ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + ''schema'': {''type'': ''literal'', ''expected'': [''Affiliation'']}, ''type'': + ''function-after''}, ''default'': ''Affiliation'', ''validate_default'': True}, + ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''str'', ''pattern'': ''^https://ror.org/[a-z0-9]+$''}}, + ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''title'': ''A + ror.org identifier'', ''description'': ''Use an ror.org identifier for institutions.''}, + ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''name'': {''type'': ''model-field'', + ''schema'': {''type'': ''str''}, ''metadata'': {''pydantic_js_updates'': {''description'': + ''Name of organization''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, + ''model_name'': ''Affiliation'', ''computed_fields'': []}, ''custom_init'': + False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': + {''title'': ''Affiliation''}, ''ref'': ''dandischema.models.Affiliation:94399351361968'', + ''metadata'': {''pydantic_js_functions'': [>]}}}}, ''default'': None}, ''metadata'': + {''pydantic_js_updates'': {''description'': ''An organization that this person + is affiliated with.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': + ''Person'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': + False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Person''}}, + ''ref'': ''dandischema.models.Person:94399351924672'', ''metadata'': {''pydantic_js_functions'': + [>]}, + ''type'': ''function-after''}, ''Organization'': {''type'': ''definition-ref'', + ''schema_ref'': ''dandischema.models.Organization:94399348768928''}, ''Software'': + {''type'': ''model'', ''cls'': , ''schema'': + {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': + {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': + True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', + ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + ''schema'': {''type'': ''literal'', ''expected'': [''Software'']}, ''type'': + ''function-after''}, ''default'': ''Software'', ''validate_default'': True}, + ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''str'', ''pattern'': ''^RRID:.*''}}, + ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''title'': ''Research + resource identifier'', ''description'': ''RRID of the software from scicrunch.org.''}, + ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''name'': {''type'': ''model-field'', + ''schema'': {''type'': ''str''}, ''metadata'': {''pydantic_js_extra'': {''nskey'': + ''schema''}}}, ''version'': {''type'': ''model-field'', ''schema'': {''type'': + ''str''}, ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''url'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''function-wrap'', ''function'': + {''type'': ''no-info'', ''function'': .wrap_val + at 0x7f8c96c36a70>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', + ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': + ''function-plain'', ''function'': >, ''info_arg'': True}}}, ''default'': None}, + ''metadata'': {''pydantic_js_updates'': {''description'': ''Web page for the + software.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': + ''Software'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': + False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Software''}, + ''ref'': ''dandischema.models.Software:94399351823024'', ''metadata'': {''pydantic_js_functions'': + [>]}}, + ''Agent'': {''type'': ''model'', ''cls'': , + ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': + {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': + True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', + ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, ''schema'': + {''type'': ''literal'', ''expected'': [''Agent'']}, ''type'': ''function-after''}, + ''default'': ''Agent'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': + {''readOnly'': True}}}, ''identifier'': {''type'': ''model-field'', ''schema'': + {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': + ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''title'': + ''Identifier'', ''description'': ''Identifier for an agent.''}, ''pydantic_js_extra'': + {''nskey'': ''schema''}}}, ''name'': {''type'': ''model-field'', ''schema'': + {''type'': ''str''}, ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, + ''url'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''function-wrap'', ''function'': + {''type'': ''no-info'', ''function'': .wrap_val + at 0x7f8c96c368c0>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', + ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': + ''function-plain'', ''function'': >, ''info_arg'': True}}}, ''default'': None}, + ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': + ''Agent'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': + False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Agent''}, + ''ref'': ''dandischema.models.Agent:94399351861984'', ''metadata'': {''pydantic_js_functions'': + [>]}}}, + ''discriminator'': ''schemaKey'', ''strict'': False, ''from_attributes'': True, + ''metadata'': {}}}}, ''default'': None}, ''metadata'': {''pydantic_js_extra'': + {''nskey'': ''prov''}}}, ''used'': {''type'': ''model-field'', ''schema'': {''type'': + ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''list'', + ''items_schema'': {''type'': ''model'', ''cls'': , + ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': + {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': + True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', + ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + ''schema'': {''type'': ''literal'', ''expected'': [''Equipment'']}, ''type'': + ''function-after''}, ''default'': ''Equipment'', ''validate_default'': True}, + ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, + ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''name'': {''type'': + ''model-field'', ''schema'': {''type'': ''str'', ''max_length'': 150}, ''metadata'': + {''pydantic_js_updates'': {''title'': ''Title'', ''description'': ''A name for + the equipment.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''description'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, + ''metadata'': {''pydantic_js_updates'': {''description'': ''The description + of the equipment.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': + ''Equipment'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': + False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Equipment''}, + ''ref'': ''dandischema.models.Equipment:94399352248096'', ''metadata'': {''pydantic_js_functions'': + [>]}}}}, + ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': + ''A listing of equipment used for the activity.''}, ''pydantic_js_extra'': {''nskey'': + ''prov''}}}}, ''model_name'': ''Session'', ''computed_fields'': []}, ''custom_init'': + False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': + {''title'': ''Session''}, ''ref'': ''dandischema.models.Session:94399352644368'', + ''metadata'': {''pydantic_js_functions'': [>]}}}}, ''default'': None}, ''metadata'': + {''pydantic_js_updates'': {''description'': ''Information about session activity + used to determine genotype.''}, ''pydantic_js_extra'': {''nskey'': ''prov''}}}}, + ''model_name'': ''GenotypeInfo'', ''computed_fields'': []}, ''custom_init'': + False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': + {''title'': ''GenotypeInfo''}, ''ref'': ''dandischema.models.GenotypeInfo:94399353584960'', + ''metadata'': {''pydantic_js_functions'': [>]}}}, {''type'': ''str''}]}).' + required: false + hasMember: + name: hasMember + range: string + required: false + multivalued: true + id: + name: id + range: string + required: false + identifier: + name: identifier + includeInCitation: + name: includeInCitation + ifabsent: 'True' + range: boolean + required: false + keywords: + name: keywords + range: string + required: false + multivalued: true + license: + name: license + range: LicenseType + required: false + multivalued: true + locus: + name: locus + range: Locus + required: true + locusType: + name: locusType + range: string + required: false + manifestLocation: + name: manifestLocation + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation + function, .wrap_val + at 0x7f8c96c36830>.' + range: uri + required: true + multivalued: true + pattern: ^(?i:http|https)://[^\s]+$ + minimum_cardinality: 1 + maxValue: + name: maxValue + notes: + - 'pydantic2linkml: LinkML does not have support for `''+inf''`, `''-inf''`, and + `''NaN''` values. Support for these values is not translated.' + range: float + required: false + measurementTechnique: + name: measurementTechnique + range: MeasurementTechniqueType + required: false + multivalued: true + minValue: + name: minValue + notes: + - 'pydantic2linkml: LinkML does not have support for `''+inf''`, `''-inf''`, and + `''NaN''` values. Support for these values is not translated.' + range: float + required: false + name: + name: name + range: string + numberOfBytes: + name: numberOfBytes + range: integer + required: true + numberOfCells: + name: numberOfCells + range: integer + required: false + numberOfFiles: + name: numberOfFiles + range: integer + required: true + numberOfSamples: + name: numberOfSamples + range: integer + required: false + numberOfSubjects: + name: numberOfSubjects + range: integer + required: false + path: + name: path + range: string + required: true + propertyID: + name: propertyID + notes: + - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema + contains a choice of type definition-ref. The choice type is yet to be supported. + (core schema: {''type'': ''union'', ''choices'': [{''type'': ''definition-ref'', + ''schema_ref'': ''dandischema.models.IdentifierType:94399351374048''}, {''type'': + ''function-wrap'', ''function'': {''type'': ''no-info'', ''function'': .wrap_val at 0x7f8c96c17c70>}, + ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, + ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': + ''function-plain'', ''function'': >, ''info_arg'': True}}]}).' + required: false + protocol: + name: protocol + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation + function, .wrap_val + at 0x7f8c96c36f80>.' + range: uri + required: false + multivalued: true + pattern: ^(?i:http|https)://[^\s]+$ + publishedBy: + name: publishedBy + notes: + - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema + contains a choice of type function-wrap. The choice type is yet to be supported. + (core schema: {''type'': ''union'', ''choices'': [{''type'': ''function-wrap'', + ''function'': {''type'': ''no-info'', ''function'': .wrap_val + at 0x7f8c96c37a30>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', + ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': + ''function-plain'', ''function'': >, ''info_arg'': True}}, {''type'': ''model'', + ''cls'': , ''schema'': {''type'': + ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': + {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': + ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': + ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': True}}}, + ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', + ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + ''schema'': {''type'': ''literal'', ''expected'': [''PublishActivity'']}, ''type'': + ''function-after''}, ''default'': ''PublishActivity'', ''validate_default'': + True}, ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, + ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''name'': {''type'': + ''model-field'', ''schema'': {''type'': ''str'', ''max_length'': 150}, ''metadata'': + {''pydantic_js_updates'': {''title'': ''Title'', ''description'': ''The name + of the activity.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''description'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, + ''metadata'': {''pydantic_js_updates'': {''description'': ''The description + of the activity.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''startDate'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''datetime'', ''microseconds_precision'': + ''truncate''}}, ''default'': None}, ''metadata'': {''pydantic_js_extra'': {''nskey'': + ''schema''}}}, ''endDate'': {''type'': ''model-field'', ''schema'': {''type'': + ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''datetime'', + ''microseconds_precision'': ''truncate''}}, ''default'': None}, ''metadata'': + {''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''wasAssociatedWith'': {''type'': + ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': + ''nullable'', ''schema'': {''type'': ''list'', ''items_schema'': {''type'': + ''tagged-union'', ''choices'': {''Person'': {''function'': {''type'': ''no-info'', + ''function'': }, + ''schema'': {''type'': ''model'', ''cls'': , + ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': + {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': + True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', + ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + ''schema'': {''type'': ''literal'', ''expected'': [''Person'']}, ''type'': ''function-after''}, + ''default'': ''Person'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': + {''readOnly'': True}}}, ''identifier'': {''type'': ''model-field'', ''schema'': + {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': + ''str'', ''pattern'': ''^\\d{4}-\\d{4}-\\d{4}-(\\d{3}X|\\d{4})$''}}, ''default'': + None}, ''metadata'': {''pydantic_js_updates'': {''title'': ''An ORCID identifier'', + ''description'': ''An ORCID (orcid.org) identifier for an individual.''}, ''pydantic_js_extra'': + {''nskey'': ''schema''}}}, ''name'': {''type'': ''model-field'', ''schema'': + {''type'': ''str'', ''pattern'': "^([\\w\\s\\-\\.'']+),\\s+([\\w\\s\\-\\.'']+)$"}, + ''metadata'': {''pydantic_js_updates'': {''title'': ''Use Last, First. Example: + Lovelace, Augusta Ada'', ''description'': ''Use the format: familyname, given + names ...''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''email'': {''type'': + ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': + ''nullable'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': + >}, + ''schema'': {''type'': ''str''}, ''metadata'': {''pydantic_js_functions'': [>]}, + ''type'': ''function-after''}}, ''default'': None}, ''metadata'': {''pydantic_js_extra'': + {''nskey'': ''schema''}}}, ''url'': {''type'': ''model-field'', ''schema'': + {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': + ''function-wrap'', ''function'': {''type'': ''no-info'', ''function'': .wrap_val at 0x7f8c96c36320>}, + ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, + ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': + ''function-plain'', ''function'': >, ''info_arg'': True}}}, ''default'': None}, + ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''roleName'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''list'', ''items_schema'': + {''type'': ''definition-ref'', ''schema_ref'': ''dandischema.models.RoleType:94399351385504''}}}, + ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''title'': ''Role'', + ''description'': ''Role(s) of the contributor. Multiple roles can be selected.''}, + ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''includeInCitation'': {''type'': + ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': + ''bool''}, ''default'': True}, ''metadata'': {''pydantic_js_updates'': {''title'': + ''Include contributor in citation'', ''description'': ''A flag to indicate whether + a contributor should be included when generating a citation for the item.''}, + ''pydantic_js_extra'': {''nskey'': ''dandi''}}}, ''awardNumber'': {''type'': + ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': + ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': + {''pydantic_js_updates'': {''title'': ''Identifier for an award'', ''description'': + ''Identifier associated with a sponsored or gift award.''}, ''pydantic_js_extra'': + {''nskey'': ''dandi''}}}, ''affiliation'': {''type'': ''model-field'', ''schema'': + {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': + ''list'', ''items_schema'': {''type'': ''model'', ''cls'': , + ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': + {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': + True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', + ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + ''schema'': {''type'': ''literal'', ''expected'': [''Affiliation'']}, ''type'': + ''function-after''}, ''default'': ''Affiliation'', ''validate_default'': True}, + ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''str'', ''pattern'': ''^https://ror.org/[a-z0-9]+$''}}, + ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''title'': ''A + ror.org identifier'', ''description'': ''Use an ror.org identifier for institutions.''}, + ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''name'': {''type'': ''model-field'', + ''schema'': {''type'': ''str''}, ''metadata'': {''pydantic_js_updates'': {''description'': + ''Name of organization''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, + ''model_name'': ''Affiliation'', ''computed_fields'': []}, ''custom_init'': + False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': + {''title'': ''Affiliation''}, ''ref'': ''dandischema.models.Affiliation:94399351361968'', + ''metadata'': {''pydantic_js_functions'': [>]}}}}, ''default'': None}, ''metadata'': + {''pydantic_js_updates'': {''description'': ''An organization that this person + is affiliated with.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': + ''Person'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': + False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Person''}}, + ''ref'': ''dandischema.models.Person:94399351924672'', ''metadata'': {''pydantic_js_functions'': + [>]}, + ''type'': ''function-after''}, ''Organization'': {''function'': {''type'': ''no-info'', + ''function'': }, + ''schema'': {''type'': ''model'', ''cls'': , + ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': + {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': + True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', + ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + ''schema'': {''type'': ''literal'', ''expected'': [''Organization'']}, ''type'': + ''function-after''}, ''default'': ''Organization'', ''validate_default'': True}, + ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''str'', ''pattern'': ''^https://ror.org/[a-z0-9]+$''}}, + ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''title'': ''A + ror.org identifier'', ''description'': ''Use an ror.org identifier for institutions.''}, + ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''name'': {''type'': ''model-field'', + ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': + {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_extra'': + {''nskey'': ''schema''}}}, ''email'': {''type'': ''model-field'', ''schema'': + {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''function'': + {''type'': ''no-info'', ''function'': >}, ''schema'': {''type'': ''str''}, ''metadata'': + {''pydantic_js_functions'': [>]}, ''type'': ''function-after''}}, + ''default'': None}, ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, + ''url'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''function-wrap'', ''function'': + {''type'': ''no-info'', ''function'': .wrap_val + at 0x7f8c96c36560>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', + ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': + ''function-plain'', ''function'': >, ''info_arg'': True}}}, ''default'': None}, + ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''roleName'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''list'', ''items_schema'': + {''type'': ''definition-ref'', ''schema_ref'': ''dandischema.models.RoleType:94399351385504''}}}, + ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''title'': ''Role'', + ''description'': ''Role(s) of the contributor. Multiple roles can be selected.''}, + ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''includeInCitation'': {''type'': + ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': + ''bool''}, ''default'': False}, ''metadata'': {''pydantic_js_updates'': {''title'': + ''Include contributor in citation'', ''description'': ''A flag to indicate whether + a contributor should be included when generating a citation for the item''}, + ''pydantic_js_extra'': {''nskey'': ''dandi''}}}, ''awardNumber'': {''type'': + ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': + ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': + {''pydantic_js_updates'': {''title'': ''Identifier for an award'', ''description'': + ''Identifier associated with a sponsored or gift award.''}, ''pydantic_js_extra'': + {''nskey'': ''dandi''}}}, ''contactPoint'': {''type'': ''model-field'', ''schema'': + {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': + ''list'', ''items_schema'': {''type'': ''model'', ''cls'': , + ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': + {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': + True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', + ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + ''schema'': {''type'': ''literal'', ''expected'': [''ContactPoint'']}, ''type'': + ''function-after''}, ''default'': ''ContactPoint'', ''validate_default'': True}, + ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''email'': {''type'': + ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': + ''nullable'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': + >}, + ''schema'': {''type'': ''str''}, ''metadata'': {''pydantic_js_functions'': [>]}, + ''type'': ''function-after''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Email address of contact.''}, ''pydantic_js_extra'': {''nskey'': + ''schema''}}}, ''url'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', + ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''function-wrap'', + ''function'': {''type'': ''no-info'', ''function'': .wrap_val + at 0x7f8c96c34940>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', + ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': + ''function-plain'', ''function'': >, ''info_arg'': True}}}, ''default'': None}, + ''metadata'': {''pydantic_js_updates'': {''description'': ''A Web page to find + information on how to contact.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, + ''model_name'': ''ContactPoint'', ''computed_fields'': []}, ''custom_init'': + False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': + {''title'': ''ContactPoint''}, ''ref'': ''dandischema.models.ContactPoint:94399351740384'', + ''metadata'': {''pydantic_js_functions'': [>]}}}}, ''default'': None}, ''metadata'': + {''pydantic_js_updates'': {''title'': ''Organization contact information'', + ''description'': ''Contact for the organization''}, ''pydantic_js_extra'': {''nskey'': + ''schema''}}}}, ''model_name'': ''Organization'', ''computed_fields'': []}, + ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', + ''config'': {''title'': ''Organization''}}, ''ref'': ''dandischema.models.Organization:94399348768928'', + ''metadata'': {''pydantic_js_functions'': [>]}, ''type'': ''function-after''}, + ''Software'': {''type'': ''model'', ''cls'': , + ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': + {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': + True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', + ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + ''schema'': {''type'': ''literal'', ''expected'': [''Software'']}, ''type'': + ''function-after''}, ''default'': ''Software'', ''validate_default'': True}, + ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''str'', ''pattern'': ''^RRID:.*''}}, + ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''title'': ''Research + resource identifier'', ''description'': ''RRID of the software from scicrunch.org.''}, + ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''name'': {''type'': ''model-field'', + ''schema'': {''type'': ''str''}, ''metadata'': {''pydantic_js_extra'': {''nskey'': + ''schema''}}}, ''version'': {''type'': ''model-field'', ''schema'': {''type'': + ''str''}, ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''url'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''function-wrap'', ''function'': + {''type'': ''no-info'', ''function'': .wrap_val + at 0x7f8c96c36a70>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', + ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': + ''function-plain'', ''function'': >, ''info_arg'': True}}}, ''default'': None}, + ''metadata'': {''pydantic_js_updates'': {''description'': ''Web page for the + software.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': + ''Software'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': + False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Software''}, + ''ref'': ''dandischema.models.Software:94399351823024'', ''metadata'': {''pydantic_js_functions'': + [>]}}, + ''Agent'': {''type'': ''model'', ''cls'': , + ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': + {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': + True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', + ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, ''schema'': + {''type'': ''literal'', ''expected'': [''Agent'']}, ''type'': ''function-after''}, + ''default'': ''Agent'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': + {''readOnly'': True}}}, ''identifier'': {''type'': ''model-field'', ''schema'': + {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': + ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''title'': + ''Identifier'', ''description'': ''Identifier for an agent.''}, ''pydantic_js_extra'': + {''nskey'': ''schema''}}}, ''name'': {''type'': ''model-field'', ''schema'': + {''type'': ''str''}, ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, + ''url'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''function-wrap'', ''function'': + {''type'': ''no-info'', ''function'': .wrap_val + at 0x7f8c96c368c0>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', + ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': + ''function-plain'', ''function'': >, ''info_arg'': True}}}, ''default'': None}, + ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': + ''Agent'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': + False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Agent''}, + ''ref'': ''dandischema.models.Agent:94399351861984'', ''metadata'': {''pydantic_js_functions'': + [>]}}}, + ''discriminator'': ''schemaKey'', ''strict'': False, ''from_attributes'': True, + ''metadata'': {}}}}, ''default'': None}, ''metadata'': {''pydantic_js_extra'': + {''nskey'': ''prov''}}}, ''used'': {''type'': ''model-field'', ''schema'': {''type'': + ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''list'', + ''items_schema'': {''type'': ''model'', ''cls'': , + ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': + {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': + {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': + True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', + ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + ''schema'': {''type'': ''literal'', ''expected'': [''Equipment'']}, ''type'': + ''function-after''}, ''default'': ''Equipment'', ''validate_default'': True}, + ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, + ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''name'': {''type'': + ''model-field'', ''schema'': {''type'': ''str'', ''max_length'': 150}, ''metadata'': + {''pydantic_js_updates'': {''title'': ''Title'', ''description'': ''A name for + the equipment.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''description'': + {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': + {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, + ''metadata'': {''pydantic_js_updates'': {''description'': ''The description + of the equipment.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': + ''Equipment'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': + False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Equipment''}, + ''ref'': ''dandischema.models.Equipment:94399352248096'', ''metadata'': {''pydantic_js_functions'': + [>]}}}}, + ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': + ''A listing of equipment used for the activity.''}, ''pydantic_js_extra'': {''nskey'': + ''prov''}}}}, ''model_name'': ''PublishActivity'', ''computed_fields'': []}, + ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', + ''config'': {''title'': ''PublishActivity''}, ''ref'': ''dandischema.models.PublishActivity:94399352646832'', + ''metadata'': {''pydantic_js_functions'': [>]}}]}).' + required: true + relatedParticipant: + name: relatedParticipant + range: RelatedParticipant + required: false + multivalued: true + relatedResource: + name: relatedResource + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, .' + range: Resource + required: false + multivalued: true + relation: + name: relation + required: true + releaseNotes: + name: releaseNotes + range: string + required: false + repository: + name: repository + required: false + resourceType: + name: resourceType + range: ResourceType + required: false + roleName: + name: roleName + range: RoleType + required: false + multivalued: true + sameAs: + name: sameAs + required: false + multivalued: true + sampleType: + name: sampleType + range: SampleType + required: true + schemaKey: + name: schemaKey + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(DandiBaseModel) + range: string + required: false + schemaVersion: + name: schemaVersion + ifabsent: string(0.7.0) + range: string + required: false + sex: + name: sex + range: SexType + required: false + species: + name: species + range: SpeciesType + required: false + startDate: + name: startDate + notes: + - 'pydantic2linkml: Unable to express the microseconds precision constraint of + truncate. LinkML lacks direct support for this restriction.' + range: datetime + required: false + status: + name: status + range: AccessType + required: true + strain: + name: strain + range: StrainType + required: false + studyTarget: + name: studyTarget + range: string + required: false + multivalued: true + unitText: + name: unitText + range: string + required: false + url: + name: url + range: uri + required: false + pattern: ^(?i:http|https)://[^\s]+$ + used: + name: used + range: Equipment + required: false + multivalued: true + value: + name: value + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema + contains a choice of type any. The choice type is yet to be supported. (core + schema: {''type'': ''union'', ''choices'': [{''type'': ''any''}, {''type'': + ''list'', ''items_schema'': {''type'': ''any''}}]}).' + required: false + valueReference: + name: valueReference + range: PropertyValue + required: false + variableMeasured: + name: variableMeasured + required: false + multivalued: true + vendor: + name: vendor + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, .' + range: Organization + required: false + version: + name: version + range: string + required: true + wasAssociatedWith: + name: wasAssociatedWith + notes: + - 'pydantic2linkml: Warning: The translation is incomplete. Tagged union types + are yet to be supported.' + required: false + multivalued: true + wasAttributedTo: + name: wasAttributedTo + range: Participant + required: false + multivalued: true + wasDerivedFrom: + name: wasDerivedFrom + range: BioSample + required: false + multivalued: true + wasGeneratedBy: + name: wasGeneratedBy + required: false + multivalued: true +classes: + Any: + name: Any + description: Any object + class_uri: linkml:Any + AccessRequirements: + name: AccessRequirements + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the AccessRequirements + Pydantic model has changes in value in meta slots: [''ifabsent'', ''notes'', + ''range''] .' + is_a: DandiBaseModel + slots: + - contactPoint + - description + - embargoedUntil + - status + Activity: + name: Activity + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Activity Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: DandiBaseModel + slots: + - description + - endDate + - identifier + - name + - startDate + - used + - wasAssociatedWith + slot_usage: + identifier: + name: identifier + range: string + required: false + name: + name: name + notes: + - 'pydantic2linkml: LinkML does not have direct support for max length constraints. + The max length constraint of 150 is incorporated into the pattern of the + slot.' + required: true + pattern: ^(?=.{,150}$) + Affiliation: + name: Affiliation + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Affiliation Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: DandiBaseModel + slots: + - identifier + - name + slot_usage: + identifier: + name: identifier + range: string + required: false + pattern: ^https://ror.org/[a-z0-9]+$ + name: + name: name + required: true + Agent: + name: Agent + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Agent Pydantic model + has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] .' + is_a: DandiBaseModel + slots: + - identifier + - name + - url + slot_usage: + identifier: + name: identifier + range: string + required: false + name: + name: name + required: true + url: + name: url + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation + function, .wrap_val + at 0x7f8c96c368c0>.' + Allele: + name: Allele + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Allele Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: DandiBaseModel + slots: + - alleleSymbol + - alleleType + - identifier + slot_usage: + identifier: + name: identifier + notes: + - 'pydantic2linkml: Warning: The translation is incomplete. The union core + schema contains a choice of type str. The choice type is yet to be supported. + (core schema: {''type'': ''union'', ''choices'': [{''type'': ''str''}, {''type'': + ''list'', ''items_schema'': {''type'': ''str''}}]}).' + required: true + Anatomy: + name: Anatomy + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Anatomy Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: BaseType + ApproachType: + name: ApproachType + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the ApproachType Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: BaseType + AssayType: + name: AssayType + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the AssayType Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: BaseType + Asset: + name: Asset + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the id slot. The + slot representation of the id field in the Asset Pydantic model has changes + in value in meta slots: [''required''] .' + is_a: BareAsset + slots: + - contentUrl + - identifier + slot_usage: + identifier: + name: identifier + range: string + required: true + pattern: ^(?:urn:uuid:)?[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?4[0-9a-fA-F]{3}-?[89abAB][0-9a-fA-F]{3}-?[0-9a-fA-F]{12}$ + AssetsSummary: + name: AssetsSummary + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the AssetsSummary Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: DandiBaseModel + slots: + - approach + - dataStandard + - measurementTechnique + - numberOfBytes + - numberOfCells + - numberOfFiles + - numberOfSamples + - numberOfSubjects + - species + - variableMeasured + slot_usage: + species: + name: species + multivalued: true + variableMeasured: + name: variableMeasured + range: string + BareAsset: + name: BareAsset + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the access slot. + The slot representation of the access field in the BareAsset Pydantic model + has changes in value in meta slots: [''notes''] .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the BareAsset Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the wasGeneratedBy + slot. The slot representation of the wasGeneratedBy field in the BareAsset Pydantic + model lacks meta slots: [''range''] .' + is_a: CommonModel + slots: + - approach + - blobDateModified + - contentSize + - dataType + - dateModified + - digest + - encodingFormat + - measurementTechnique + - path + - sameAs + - variableMeasured + - wasAttributedTo + - wasDerivedFrom + slot_usage: + sameAs: + name: sameAs + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation + function, .wrap_val + at 0x7f8c96c37ac0>.' + range: uri + pattern: ^(?i:http|https)://[^\s]+$ + variableMeasured: + name: variableMeasured + range: PropertyValue + BaseType: + name: BaseType + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the BaseType Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes''] .' + is_a: DandiBaseModel + slots: + - identifier + - name + slot_usage: + identifier: + name: identifier + notes: + - 'pydantic2linkml: Warning: The translation is incomplete. The union core + schema contains a choice of type function-wrap. The choice type is yet to + be supported. (core schema: {''type'': ''union'', ''choices'': [{''type'': + ''function-wrap'', ''function'': {''type'': ''no-info'', ''function'': .wrap_val at 0x7f8c96c15d80>}, + ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, + ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': + ''function-plain'', ''function'': >, ''info_arg'': True}}, {''type'': + ''str'', ''pattern'': ''^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$''}], ''mode'': + ''left_to_right'', ''metadata'': {}}).' + required: false + name: + name: name + notes: + - 'pydantic2linkml: LinkML does not have direct support for max length constraints. + The max length constraint of 150 is incorporated into the pattern of the + slot.' + required: false + pattern: ^(?=.{,150}$) + BioSample: + name: BioSample + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the BioSample Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: DandiBaseModel + slots: + - anatomy + - assayType + - hasMember + - identifier + - sameAs + - sampleType + - wasAttributedTo + - wasDerivedFrom + slot_usage: + identifier: + name: identifier + range: string + required: true + sameAs: + name: sameAs + range: string + CommonModel: + name: CommonModel + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the CommonModel Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes''] .' + is_a: DandiBaseModel + slots: + - about + - access + - acknowledgement + - contributor + - description + - ethicsApproval + - keywords + - license + - name + - protocol + - relatedResource + - repository + - schemaVersion + - studyTarget + - url + - wasGeneratedBy + slot_usage: + name: + name: name + notes: + - 'pydantic2linkml: LinkML does not have direct support for max length constraints. + The max length constraint of 150 is incorporated into the pattern of the + slot.' + required: false + pattern: ^(?=.{,150}$) + repository: + name: repository + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation + function, .wrap_val + at 0x7f8c96c369e0>.' + range: uri + pattern: ^(?i:http|https)://[^\s]+$ + url: + name: url + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation + function, .wrap_val + at 0x7f8c96c34a60>.' + wasGeneratedBy: + name: wasGeneratedBy + range: Activity + ContactPoint: + name: ContactPoint + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the ContactPoint Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: DandiBaseModel + slots: + - email + - url + slot_usage: + url: + name: url + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation + function, .wrap_val + at 0x7f8c96c34940>.' + Contributor: + name: Contributor + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Contributor Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: DandiBaseModel + slots: + - awardNumber + - email + - identifier + - includeInCitation + - name + - roleName + - url + slot_usage: + identifier: + name: identifier + range: string + required: false + name: + name: name + required: false + url: + name: url + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation + function, .wrap_val + at 0x7f8c96c35f30>.' + DandiBaseModel: + name: DandiBaseModel + slots: + - id + - schemaKey + Dandiset: + name: Dandiset + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the contributor + slot. The slot representation of the contributor field in the Dandiset Pydantic + model has changes in value in meta slots: [''notes'', ''required''] .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the id slot. The + slot representation of the id field in the Dandiset Pydantic model has changes + in value in meta slots: [''required''] .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the name slot. + The slot representation of the name field in the Dandiset Pydantic model has + changes in value in meta slots: [''required''] .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the license slot. + The slot representation of the license field in the Dandiset Pydantic model + has changes in value in meta slots: [''required''] .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the description + slot. The slot representation of the description field in the Dandiset Pydantic + model has changes in value in meta slots: [''required''] .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the wasGeneratedBy + slot. The slot representation of the wasGeneratedBy field in the Dandiset Pydantic + model has changes in value in meta slots: [''range''] .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Dandiset Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: CommonModel + slots: + - assetsSummary + - citation + - dateCreated + - dateModified + - identifier + - manifestLocation + - sameAs + - version + slot_usage: + identifier: + name: identifier + range: string + required: true + pattern: ^[A-Z][-A-Z]*:\d{6}$ + sameAs: + name: sameAs + range: string + pattern: ^dandi://[A-Z][-A-Z]*/\d{6}(@(draft|\d+\.\d+\.\d+))?(/\S+)?$ + Disorder: + name: Disorder + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Disorder Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: BaseType + slots: + - dxdate + Equipment: + name: Equipment + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Equipment Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: DandiBaseModel + slots: + - description + - identifier + - name + slot_usage: + identifier: + name: identifier + range: string + required: false + name: + name: name + notes: + - 'pydantic2linkml: LinkML does not have direct support for max length constraints. + The max length constraint of 150 is incorporated into the pattern of the + slot.' + required: true + pattern: ^(?=.{,150}$) + EthicsApproval: + name: EthicsApproval + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the EthicsApproval Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: DandiBaseModel + slots: + - contactPoint + - identifier + slot_usage: + identifier: + name: identifier + range: string + required: true + GenericType: + name: GenericType + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the GenericType Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: BaseType + GenotypeInfo: + name: GenotypeInfo + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the GenotypeInfo Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: DandiBaseModel + slots: + - alleles + - locus + - wasGeneratedBy + slot_usage: + wasGeneratedBy: + name: wasGeneratedBy + range: Session + Locus: + name: Locus + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Locus Pydantic model + has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] .' + is_a: DandiBaseModel + slots: + - identifier + - locusType + slot_usage: + identifier: + name: identifier + notes: + - 'pydantic2linkml: Warning: The translation is incomplete. The union core + schema contains a choice of type str. The choice type is yet to be supported. + (core schema: {''type'': ''union'', ''choices'': [{''type'': ''str''}, {''type'': + ''list'', ''items_schema'': {''type'': ''str''}}]}).' + required: true + MeasurementTechniqueType: + name: MeasurementTechniqueType + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the MeasurementTechniqueType + Pydantic model has changes in value in meta slots: [''ifabsent'', ''notes'', + ''range''] .' + is_a: BaseType + Organization: + name: Organization + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Organization Pydantic + model has changes in value in meta slots: [''any_of'', ''ifabsent'', ''notes''] + .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the includeInCitation + slot. The slot representation of the includeInCitation field in the Organization + Pydantic model has changes in value in meta slots: [''ifabsent''] .' + is_a: Contributor + slots: + - contactPoint + slot_usage: + contactPoint: + name: contactPoint + multivalued: true + identifier: + name: identifier + pattern: ^https://ror.org/[a-z0-9]+$ + Participant: + name: Participant + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Participant Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: DandiBaseModel + slots: + - age + - altName + - cellLine + - disorder + - genotype + - identifier + - relatedParticipant + - sameAs + - sex + - species + - strain + - vendor + slot_usage: + identifier: + name: identifier + range: string + required: true + sameAs: + name: sameAs + range: string + Person: + name: Person + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Person Pydantic + model has changes in value in meta slots: [''any_of'', ''ifabsent'', ''notes''] + .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the name slot. + The slot representation of the name field in the Person Pydantic model has changes + in value in meta slots: [''required''] .' + is_a: Contributor + slots: + - affiliation + slot_usage: + identifier: + name: identifier + pattern: ^\d{4}-\d{4}-\d{4}-(\d{3}X|\d{4})$ + Project: + name: Project + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Project Pydantic + model has changes in value in meta slots: [''any_of'', ''ifabsent'', ''notes''] + .' + is_a: Activity + PropertyValue: + name: PropertyValue + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the PropertyValue Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: DandiBaseModel + slots: + - maxValue + - minValue + - propertyID + - unitText + - value + - valueReference + Publishable: + name: Publishable + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Publishable Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: DandiBaseModel + slots: + - datePublished + - publishedBy + PublishActivity: + name: PublishActivity + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the PublishActivity + Pydantic model has changes in value in meta slots: [''any_of'', ''ifabsent'', + ''notes''] .' + is_a: Activity + PublishedAsset: + name: PublishedAsset + notes: + - 'pydantic2linkml: Warning: LinkML does not support multiple inheritance. Publishable + is not specified as a parent, through the `is_a` meta slot, but as a mixin.' + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the PublishedAsset Pydantic + model has changes in value in meta slots: [''notes''] .' + is_a: Asset + mixins: + - Publishable + slot_usage: + id: + name: id + pattern: ^dandiasset:[a-f0-9]{8}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{12}$ + PublishedDandiset: + name: PublishedDandiset + notes: + - 'pydantic2linkml: Warning: LinkML does not support multiple inheritance. Publishable + is not specified as a parent, through the `is_a` meta slot, but as a mixin.' + - 'pydantic2linkml: Impossible to generate slot usage entry for the id slot. The + slot representation of the id field in the PublishedDandiset Pydantic model + has changes in value in meta slots: [''pattern''] .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the PublishedDandiset + Pydantic model has changes in value in meta slots: [''notes''] .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the url slot. + The slot representation of the url field in the PublishedDandiset Pydantic model + has changes in value in meta slots: [''notes'', ''required''] .' + is_a: Dandiset + mixins: + - Publishable + slots: + - doi + - releaseNotes + RelatedParticipant: + name: RelatedParticipant + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the RelatedParticipant + Pydantic model has changes in value in meta slots: [''ifabsent'', ''notes'', + ''range''] .' + is_a: DandiBaseModel + slots: + - identifier + - name + - relation + - url + slot_usage: + identifier: + name: identifier + range: string + required: false + name: + name: name + required: false + relation: + name: relation + range: ParticipantRelationType + url: + name: url + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation + function, .wrap_val + at 0x7f8c96c376d0>.' + Resource: + name: Resource + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Resource Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: DandiBaseModel + slots: + - identifier + - name + - relation + - repository + - resourceType + - url + slot_usage: + identifier: + name: identifier + range: string + required: false + name: + name: name + required: false + relation: + name: relation + range: RelationType + repository: + name: repository + range: string + url: + name: url + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation + function, .wrap_val + at 0x7f8c96c34040>.' + SampleType: + name: SampleType + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the SampleType Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: BaseType + Session: + name: Session + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Session Pydantic + model has changes in value in meta slots: [''any_of'', ''ifabsent'', ''notes''] + .' + is_a: Activity + SexType: + name: SexType + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the SexType Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: BaseType + Software: + name: Software + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Software Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: DandiBaseModel + slots: + - identifier + - name + - url + - version + slot_usage: + identifier: + name: identifier + range: string + required: false + pattern: ^RRID:.* + name: + name: name + required: true + url: + name: url + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation + function, .wrap_val + at 0x7f8c96c36a70>.' + SpeciesType: + name: SpeciesType + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the SpeciesType Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: BaseType + StandardsType: + name: StandardsType + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the StandardsType Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: BaseType + StrainType: + name: StrainType + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the StrainType Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + is_a: BaseType From f109ff48a6e4b5663f03f97a0080976d708172b2 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Fri, 13 Mar 2026 16:42:59 -0400 Subject: [PATCH 02/25] Now we will sanitize the converted model addresses --- dandischema/models.yaml | 64 ++++++++++++++++++++--------------------- pyproject.toml | 2 +- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/dandischema/models.yaml b/dandischema/models.yaml index f4ee6540..f7ac15c7 100644 --- a/dandischema/models.yaml +++ b/dandischema/models.yaml @@ -410,9 +410,9 @@ slots: name: access notes: - 'pydantic2linkml: Unable to express the default factory, - at 0x7f8c96c35ea0>, in LinkML.' + at 0xADDRESS>, in LinkML.' - 'pydantic2linkml: Unable to translate the logic contained in the after validation - function, .' + function, .' range: AccessRequirements required: false multivalued: true @@ -506,7 +506,7 @@ slots: notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val - at 0x7f8c967983a0>.' + at 0xADDRESS>.' range: uri required: true multivalued: true @@ -528,7 +528,7 @@ slots: notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val - at 0x7f8c96c370a0>.' + at 0xADDRESS>.' range: uri required: false pattern: ^(?i:http|https)://[^\s]+$ @@ -603,7 +603,7 @@ slots: contains a choice of type function-wrap. The choice type is yet to be supported. (core schema: {''type'': ''union'', ''choices'': [{''type'': ''function-wrap'', ''function'': {''type'': ''no-info'', ''function'': .wrap_val - at 0x7f8c96c372e0>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', + at 0xADDRESS>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': ''function-plain'', ''function'': }, ''schema'': {''type'': ''model'', ''cls'': , + at 0xADDRESS>}, ''schema'': {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': @@ -749,7 +749,7 @@ slots: {''nskey'': ''schema''}}}, ''url'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''function-wrap'', ''function'': {''type'': ''no-info'', ''function'': .wrap_val at 0x7f8c96c36320>}, + _BaseUrl.__get_pydantic_core_schema__..wrap_val at 0xADDRESS>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': @@ -826,7 +826,7 @@ slots: {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''function-wrap'', ''function'': {''type'': ''no-info'', ''function'': .wrap_val - at 0x7f8c96c36a70>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', + at 0xADDRESS>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': ''function-plain'', ''function'': .wrap_val - at 0x7f8c96c368c0>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', + at 0xADDRESS>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': ''function-plain'', ''function'': .wrap_val - at 0x7f8c96c36830>.' + at 0xADDRESS>.' range: uri required: true multivalued: true @@ -1009,7 +1009,7 @@ slots: (core schema: {''type'': ''union'', ''choices'': [{''type'': ''definition-ref'', ''schema_ref'': ''dandischema.models.IdentifierType:94399351374048''}, {''type'': ''function-wrap'', ''function'': {''type'': ''no-info'', ''function'': .wrap_val at 0x7f8c96c17c70>}, + _BaseUrl.__get_pydantic_core_schema__..wrap_val at 0xADDRESS>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': @@ -1021,7 +1021,7 @@ slots: notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val - at 0x7f8c96c36f80>.' + at 0xADDRESS>.' range: uri required: false multivalued: true @@ -1033,7 +1033,7 @@ slots: contains a choice of type function-wrap. The choice type is yet to be supported. (core schema: {''type'': ''union'', ''choices'': [{''type'': ''function-wrap'', ''function'': {''type'': ''no-info'', ''function'': .wrap_val - at 0x7f8c96c37a30>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', + at 0xADDRESS>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': ''function-plain'', ''function'': }, + ''function'': }, ''schema'': {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': @@ -1099,7 +1099,7 @@ slots: {''nskey'': ''schema''}}}, ''url'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''function-wrap'', ''function'': {''type'': ''no-info'', ''function'': .wrap_val at 0x7f8c96c36320>}, + _BaseUrl.__get_pydantic_core_schema__..wrap_val at 0xADDRESS>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': @@ -1153,7 +1153,7 @@ slots: ''ref'': ''dandischema.models.Person:94399351924672'', ''metadata'': {''pydantic_js_functions'': [>]}, ''type'': ''function-after''}, ''Organization'': {''function'': {''type'': ''no-info'', - ''function'': }, + ''function'': }, ''schema'': {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': @@ -1182,7 +1182,7 @@ slots: ''url'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''function-wrap'', ''function'': {''type'': ''no-info'', ''function'': .wrap_val - at 0x7f8c96c36560>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', + at 0xADDRESS>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': ''function-plain'', ''function'': .wrap_val - at 0x7f8c96c34940>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', + at 0xADDRESS>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': ''function-plain'', ''function'': .wrap_val - at 0x7f8c96c36a70>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', + at 0xADDRESS>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': ''function-plain'', ''function'': .wrap_val - at 0x7f8c96c368c0>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', + at 0xADDRESS>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': ''function-plain'', ''function'': .' + function, .' range: Resource required: false multivalued: true @@ -1461,7 +1461,7 @@ slots: name: vendor notes: - 'pydantic2linkml: Unable to translate the logic contained in the after validation - function, .' + function, .' range: Organization required: false version: @@ -1580,7 +1580,7 @@ classes: notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val - at 0x7f8c96c368c0>.' + at 0xADDRESS>.' Allele: name: Allele notes: @@ -1702,7 +1702,7 @@ classes: notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val - at 0x7f8c96c37ac0>.' + at 0xADDRESS>.' range: uri pattern: ^(?i:http|https)://[^\s]+$ variableMeasured: @@ -1726,7 +1726,7 @@ classes: schema contains a choice of type function-wrap. The choice type is yet to be supported. (core schema: {''type'': ''union'', ''choices'': [{''type'': ''function-wrap'', ''function'': {''type'': ''no-info'', ''function'': .wrap_val at 0x7f8c96c15d80>}, + _BaseUrl.__get_pydantic_core_schema__..wrap_val at 0xADDRESS>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, ''metadata'': {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': @@ -1806,7 +1806,7 @@ classes: notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val - at 0x7f8c96c369e0>.' + at 0xADDRESS>.' range: uri pattern: ^(?i:http|https)://[^\s]+$ url: @@ -1814,7 +1814,7 @@ classes: notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val - at 0x7f8c96c34a60>.' + at 0xADDRESS>.' wasGeneratedBy: name: wasGeneratedBy range: Activity @@ -1835,7 +1835,7 @@ classes: notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val - at 0x7f8c96c34940>.' + at 0xADDRESS>.' Contributor: name: Contributor notes: @@ -1865,7 +1865,7 @@ classes: notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val - at 0x7f8c96c35f30>.' + at 0xADDRESS>.' DandiBaseModel: name: DandiBaseModel slots: @@ -2190,7 +2190,7 @@ classes: notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val - at 0x7f8c96c376d0>.' + at 0xADDRESS>.' Resource: name: Resource notes: @@ -2225,7 +2225,7 @@ classes: notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val - at 0x7f8c96c34040>.' + at 0xADDRESS>.' SampleType: name: SampleType notes: @@ -2277,7 +2277,7 @@ classes: notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val - at 0x7f8c96c36a70>.' + at 0xADDRESS>.' SpeciesType: name: SpeciesType notes: diff --git a/pyproject.toml b/pyproject.toml index d51e4a19..5d6dcd32 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,7 @@ dependencies = [ "pydantic2linkml @ git+https://github.com/dandi/pydantic2linkml.git" ] [tool.hatch.envs.linkml-auto-converted.scripts] -2linkml = "pydantic2linkml -l INFO -O dandischema/models_overlay.yaml -o dandischema/models.yaml dandischema.models" +2linkml = "pydantic2linkml -l INFO -O dandischema/models_overlay.yaml dandischema.models | sed -e 's,0x[0-9a-ef]*,0xADDRESS,g' > dandischema/models.yaml " 2pydantic = "gen-pydantic --black dandischema/models.yaml > dandischema/models.py" [tool.setuptools.packages.find] From 7580f80ca01134d53a53f0747c3e8bec456de156 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Fri, 13 Mar 2026 18:32:09 -0400 Subject: [PATCH 03/25] more sanitization --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 5d6dcd32..1792f36e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,7 @@ dependencies = [ "pydantic2linkml @ git+https://github.com/dandi/pydantic2linkml.git" ] [tool.hatch.envs.linkml-auto-converted.scripts] -2linkml = "pydantic2linkml -l INFO -O dandischema/models_overlay.yaml dandischema.models | sed -e 's,0x[0-9a-ef]*,0xADDRESS,g' > dandischema/models.yaml " +2linkml = "pydantic2linkml -l INFO -O dandischema/models_overlay.yaml dandischema.models | sed -e 's,0x[0-9a-ef]*,0xADDRESS,g' -e 's,\\(.\\+\\):[0-9]\\+,\\1:NUMBER,g' > dandischema/models.yaml" 2pydantic = "gen-pydantic --black dandischema/models.yaml > dandischema/models.py" [tool.setuptools.packages.find] From f130f4f3e2361129f7ed3e304fef5fff5c5b5f40 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Fri, 13 Mar 2026 16:56:31 -0400 Subject: [PATCH 04/25] More Sanitization applied --- dandischema/models.yaml | 44 ++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/dandischema/models.yaml b/dandischema/models.yaml index f7ac15c7..b7aec10e 100644 --- a/dandischema/models.yaml +++ b/dandischema/models.yaml @@ -656,7 +656,7 @@ slots: {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {}}}, ''model_name'': ''Locus'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': - ''model_post_init'', ''config'': {''title'': ''Locus''}, ''ref'': ''dandischema.models.Locus:94399352651488'', + ''model_post_init'', ''config'': {''title'': ''Locus''}, ''ref'': ''dandischema.models.Locus:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Locus at which information was extracted.''}}}, ''alleles'': @@ -682,7 +682,7 @@ slots: ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {}}}, ''model_name'': ''Allele'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': - {''title'': ''Allele''}, ''ref'': ''dandischema.models.Allele:94399352775296'', + {''title'': ''Allele''}, ''ref'': ''dandischema.models.Allele:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Information about alleles at the locus.''}}}, ''wasGeneratedBy'': @@ -758,7 +758,7 @@ slots: ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''roleName'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''list'', ''items_schema'': - {''type'': ''definition-ref'', ''schema_ref'': ''dandischema.models.RoleType:94399351385504''}}}, + {''type'': ''definition-ref'', ''schema_ref'': ''dandischema.models.RoleType:NUMBER''}}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''title'': ''Role'', ''description'': ''Role(s) of the contributor. Multiple roles can be selected.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''includeInCitation'': {''type'': @@ -793,17 +793,17 @@ slots: ''Name of organization''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Affiliation'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': - {''title'': ''Affiliation''}, ''ref'': ''dandischema.models.Affiliation:94399351361968'', + {''title'': ''Affiliation''}, ''ref'': ''dandischema.models.Affiliation:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''An organization that this person is affiliated with.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Person'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Person''}}, - ''ref'': ''dandischema.models.Person:94399351924672'', ''metadata'': {''pydantic_js_functions'': + ''ref'': ''dandischema.models.Person:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}, ''type'': ''function-after''}, ''Organization'': {''type'': ''definition-ref'', - ''schema_ref'': ''dandischema.models.Organization:94399348768928''}, ''Software'': + ''schema_ref'': ''dandischema.models.Organization:NUMBER''}, ''Software'': {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': @@ -835,7 +835,7 @@ slots: software.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Software'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Software''}, - ''ref'': ''dandischema.models.Software:94399351823024'', ''metadata'': {''pydantic_js_functions'': + ''ref'': ''dandischema.models.Software:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}, ''Agent'': {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', @@ -864,7 +864,7 @@ slots: ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Agent'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Agent''}, - ''ref'': ''dandischema.models.Agent:94399351861984'', ''metadata'': {''pydantic_js_functions'': + ''ref'': ''dandischema.models.Agent:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}}, ''discriminator'': ''schemaKey'', ''strict'': False, ''from_attributes'': True, ''metadata'': {}}}}, ''default'': None}, ''metadata'': {''pydantic_js_extra'': @@ -893,20 +893,20 @@ slots: of the equipment.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Equipment'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Equipment''}, - ''ref'': ''dandischema.models.Equipment:94399352248096'', ''metadata'': {''pydantic_js_functions'': + ''ref'': ''dandischema.models.Equipment:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''A listing of equipment used for the activity.''}, ''pydantic_js_extra'': {''nskey'': ''prov''}}}}, ''model_name'': ''Session'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': - {''title'': ''Session''}, ''ref'': ''dandischema.models.Session:94399352644368'', + {''title'': ''Session''}, ''ref'': ''dandischema.models.Session:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Information about session activity used to determine genotype.''}, ''pydantic_js_extra'': {''nskey'': ''prov''}}}}, ''model_name'': ''GenotypeInfo'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': - {''title'': ''GenotypeInfo''}, ''ref'': ''dandischema.models.GenotypeInfo:94399353584960'', + {''title'': ''GenotypeInfo''}, ''ref'': ''dandischema.models.GenotypeInfo:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}}, {''type'': ''str''}]}).' required: false @@ -1007,7 +1007,7 @@ slots: - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema contains a choice of type definition-ref. The choice type is yet to be supported. (core schema: {''type'': ''union'', ''choices'': [{''type'': ''definition-ref'', - ''schema_ref'': ''dandischema.models.IdentifierType:94399351374048''}, {''type'': + ''schema_ref'': ''dandischema.models.IdentifierType:NUMBER''}, {''type'': ''function-wrap'', ''function'': {''type'': ''no-info'', ''function'': .wrap_val at 0xADDRESS>}, ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, @@ -1108,7 +1108,7 @@ slots: ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''roleName'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''list'', ''items_schema'': - {''type'': ''definition-ref'', ''schema_ref'': ''dandischema.models.RoleType:94399351385504''}}}, + {''type'': ''definition-ref'', ''schema_ref'': ''dandischema.models.RoleType:NUMBER''}}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''title'': ''Role'', ''description'': ''Role(s) of the contributor. Multiple roles can be selected.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''includeInCitation'': {''type'': @@ -1143,14 +1143,14 @@ slots: ''Name of organization''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Affiliation'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': - {''title'': ''Affiliation''}, ''ref'': ''dandischema.models.Affiliation:94399351361968'', + {''title'': ''Affiliation''}, ''ref'': ''dandischema.models.Affiliation:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''An organization that this person is affiliated with.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Person'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Person''}}, - ''ref'': ''dandischema.models.Person:94399351924672'', ''metadata'': {''pydantic_js_functions'': + ''ref'': ''dandischema.models.Person:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}, ''type'': ''function-after''}, ''Organization'': {''function'': {''type'': ''no-info'', ''function'': }, @@ -1190,7 +1190,7 @@ slots: ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''roleName'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''list'', ''items_schema'': - {''type'': ''definition-ref'', ''schema_ref'': ''dandischema.models.RoleType:94399351385504''}}}, + {''type'': ''definition-ref'', ''schema_ref'': ''dandischema.models.RoleType:NUMBER''}}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''title'': ''Role'', ''description'': ''Role(s) of the contributor. Multiple roles can be selected.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''includeInCitation'': {''type'': @@ -1235,14 +1235,14 @@ slots: information on how to contact.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''ContactPoint'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': - {''title'': ''ContactPoint''}, ''ref'': ''dandischema.models.ContactPoint:94399351740384'', + {''title'': ''ContactPoint''}, ''ref'': ''dandischema.models.ContactPoint:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''title'': ''Organization contact information'', ''description'': ''Contact for the organization''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Organization'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', - ''config'': {''title'': ''Organization''}}, ''ref'': ''dandischema.models.Organization:94399348768928'', + ''config'': {''title'': ''Organization''}}, ''ref'': ''dandischema.models.Organization:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}, ''type'': ''function-after''}, ''Software'': {''type'': ''model'', ''cls'': , @@ -1276,7 +1276,7 @@ slots: software.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Software'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Software''}, - ''ref'': ''dandischema.models.Software:94399351823024'', ''metadata'': {''pydantic_js_functions'': + ''ref'': ''dandischema.models.Software:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}, ''Agent'': {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', @@ -1305,7 +1305,7 @@ slots: ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Agent'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Agent''}, - ''ref'': ''dandischema.models.Agent:94399351861984'', ''metadata'': {''pydantic_js_functions'': + ''ref'': ''dandischema.models.Agent:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}}, ''discriminator'': ''schemaKey'', ''strict'': False, ''from_attributes'': True, ''metadata'': {}}}}, ''default'': None}, ''metadata'': {''pydantic_js_extra'': @@ -1334,13 +1334,13 @@ slots: of the equipment.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Equipment'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Equipment''}, - ''ref'': ''dandischema.models.Equipment:94399352248096'', ''metadata'': {''pydantic_js_functions'': + ''ref'': ''dandischema.models.Equipment:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''A listing of equipment used for the activity.''}, ''pydantic_js_extra'': {''nskey'': ''prov''}}}}, ''model_name'': ''PublishActivity'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', - ''config'': {''title'': ''PublishActivity''}, ''ref'': ''dandischema.models.PublishActivity:94399352646832'', + ''config'': {''title'': ''PublishActivity''}, ''ref'': ''dandischema.models.PublishActivity:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}]}).' required: true From 0a8ef6b5535adadc415ef2695ee22bccc8ab2af4 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Fri, 13 Mar 2026 17:00:21 -0400 Subject: [PATCH 05/25] Reextracted model (now less clutter and with spaces) --- dandischema/models.yaml | 369 +++++----------------------------------- 1 file changed, 45 insertions(+), 324 deletions(-) diff --git a/dandischema/models.yaml b/dandischema/models.yaml index b7aec10e..3c006b05 100644 --- a/dandischema/models.yaml +++ b/dandischema/models.yaml @@ -13,401 +13,276 @@ prefixes: prefix_reference: http://example.org/test-schema/ default_prefix: test_schema default_range: string + enums: AccessType: - name: AccessType description: An enumeration of access status options permissible_values: dandi:OpenAccess: - text: dandi:OpenAccess meaning: dandi:OpenAccess dandi:EmbargoedAccess: - text: dandi:EmbargoedAccess meaning: dandi:EmbargoedAccess AgeReferenceType: - name: AgeReferenceType description: An enumeration of age reference permissible_values: dandi:BirthReference: - text: dandi:BirthReference meaning: dandi:BirthReference dandi:GestationalReference: - text: dandi:GestationalReference meaning: dandi:GestationalReference DigestType: - name: DigestType description: An enumeration of checksum types permissible_values: dandi:md5: - text: dandi:md5 meaning: dandi:md5 dandi:sha1: - text: dandi:sha1 meaning: dandi:sha1 dandi:sha2-256: - text: dandi:sha2-256 meaning: dandi:sha2-256 dandi:sha3-256: - text: dandi:sha3-256 meaning: dandi:sha3-256 dandi:blake2b-256: - text: dandi:blake2b-256 meaning: dandi:blake2b-256 dandi:blake3: - text: dandi:blake3 meaning: dandi:blake3 dandi:dandi-etag: - text: dandi:dandi-etag meaning: dandi:dandi-etag dandi:dandi-zarr-checksum: - text: dandi:dandi-zarr-checksum meaning: dandi:dandi-zarr-checksum IdentifierType: - name: IdentifierType description: An enumeration of identifiers permissible_values: dandi:doi: - text: dandi:doi meaning: dandi:doi dandi:orcid: - text: dandi:orcid meaning: dandi:orcid dandi:ror: - text: dandi:ror meaning: dandi:ror dandi:dandi: - text: dandi:dandi meaning: dandi:dandi dandi:rrid: - text: dandi:rrid meaning: dandi:rrid LicenseType: - name: LicenseType description: An enumeration. permissible_values: spdx:CC0-1.0: - text: spdx:CC0-1.0 meaning: spdx:CC0-1.0 spdx:CC-BY-4.0: - text: spdx:CC-BY-4.0 meaning: spdx:CC-BY-4.0 ParticipantRelationType: - name: ParticipantRelationType description: An enumeration of participant relations permissible_values: dandi:isChildOf: - text: dandi:isChildOf meaning: dandi:isChildOf dandi:isParentOf: - text: dandi:isParentOf meaning: dandi:isParentOf dandi:isSiblingOf: - text: dandi:isSiblingOf meaning: dandi:isSiblingOf dandi:isMonozygoticTwinOf: - text: dandi:isMonozygoticTwinOf meaning: dandi:isMonozygoticTwinOf dandi:isDizygoticTwinOf: - text: dandi:isDizygoticTwinOf meaning: dandi:isDizygoticTwinOf RelationType: - name: RelationType description: An enumeration of resource relations permissible_values: dcite:IsCitedBy: - text: dcite:IsCitedBy meaning: dcite:IsCitedBy dcite:Cites: - text: dcite:Cites meaning: dcite:Cites dcite:IsSupplementTo: - text: dcite:IsSupplementTo meaning: dcite:IsSupplementTo dcite:IsSupplementedBy: - text: dcite:IsSupplementedBy meaning: dcite:IsSupplementedBy dcite:IsContinuedBy: - text: dcite:IsContinuedBy meaning: dcite:IsContinuedBy dcite:Continues: - text: dcite:Continues meaning: dcite:Continues dcite:Describes: - text: dcite:Describes meaning: dcite:Describes dcite:IsDescribedBy: - text: dcite:IsDescribedBy meaning: dcite:IsDescribedBy dcite:HasMetadata: - text: dcite:HasMetadata meaning: dcite:HasMetadata dcite:IsMetadataFor: - text: dcite:IsMetadataFor meaning: dcite:IsMetadataFor dcite:HasVersion: - text: dcite:HasVersion meaning: dcite:HasVersion dcite:IsVersionOf: - text: dcite:IsVersionOf meaning: dcite:IsVersionOf dcite:IsNewVersionOf: - text: dcite:IsNewVersionOf meaning: dcite:IsNewVersionOf dcite:IsPreviousVersionOf: - text: dcite:IsPreviousVersionOf meaning: dcite:IsPreviousVersionOf dcite:IsPartOf: - text: dcite:IsPartOf meaning: dcite:IsPartOf dcite:HasPart: - text: dcite:HasPart meaning: dcite:HasPart dcite:IsReferencedBy: - text: dcite:IsReferencedBy meaning: dcite:IsReferencedBy dcite:References: - text: dcite:References meaning: dcite:References dcite:IsDocumentedBy: - text: dcite:IsDocumentedBy meaning: dcite:IsDocumentedBy dcite:Documents: - text: dcite:Documents meaning: dcite:Documents dcite:IsCompiledBy: - text: dcite:IsCompiledBy meaning: dcite:IsCompiledBy dcite:Compiles: - text: dcite:Compiles meaning: dcite:Compiles dcite:IsVariantFormOf: - text: dcite:IsVariantFormOf meaning: dcite:IsVariantFormOf dcite:IsOriginalFormOf: - text: dcite:IsOriginalFormOf meaning: dcite:IsOriginalFormOf dcite:IsIdenticalTo: - text: dcite:IsIdenticalTo meaning: dcite:IsIdenticalTo dcite:IsReviewedBy: - text: dcite:IsReviewedBy meaning: dcite:IsReviewedBy dcite:Reviews: - text: dcite:Reviews meaning: dcite:Reviews dcite:IsDerivedFrom: - text: dcite:IsDerivedFrom meaning: dcite:IsDerivedFrom dcite:IsSourceOf: - text: dcite:IsSourceOf meaning: dcite:IsSourceOf dcite:IsRequiredBy: - text: dcite:IsRequiredBy meaning: dcite:IsRequiredBy dcite:Requires: - text: dcite:Requires meaning: dcite:Requires dcite:Obsoletes: - text: dcite:Obsoletes meaning: dcite:Obsoletes dcite:IsObsoletedBy: - text: dcite:IsObsoletedBy meaning: dcite:IsObsoletedBy dcite:IsPublishedIn: - text: dcite:IsPublishedIn meaning: dcite:IsPublishedIn ResourceType: - name: ResourceType description: An enumeration of resource types permissible_values: dcite:Audiovisual: - text: dcite:Audiovisual meaning: dcite:Audiovisual dcite:Book: - text: dcite:Book meaning: dcite:Book dcite:BookChapter: - text: dcite:BookChapter meaning: dcite:BookChapter dcite:Collection: - text: dcite:Collection meaning: dcite:Collection dcite:ComputationalNotebook: - text: dcite:ComputationalNotebook meaning: dcite:ComputationalNotebook dcite:ConferencePaper: - text: dcite:ConferencePaper meaning: dcite:ConferencePaper dcite:ConferenceProceeding: - text: dcite:ConferenceProceeding meaning: dcite:ConferenceProceeding dcite:DataPaper: - text: dcite:DataPaper meaning: dcite:DataPaper dcite:Dataset: - text: dcite:Dataset meaning: dcite:Dataset dcite:Dissertation: - text: dcite:Dissertation meaning: dcite:Dissertation dcite:Event: - text: dcite:Event meaning: dcite:Event dcite:Image: - text: dcite:Image meaning: dcite:Image dcite:Instrument: - text: dcite:Instrument meaning: dcite:Instrument dcite:InteractiveResource: - text: dcite:InteractiveResource meaning: dcite:InteractiveResource dcite:Journal: - text: dcite:Journal meaning: dcite:Journal dcite:JournalArticle: - text: dcite:JournalArticle meaning: dcite:JournalArticle dcite:Model: - text: dcite:Model meaning: dcite:Model dcite:OutputManagementPlan: - text: dcite:OutputManagementPlan meaning: dcite:OutputManagementPlan dcite:PeerReview: - text: dcite:PeerReview meaning: dcite:PeerReview dcite:PhysicalObject: - text: dcite:PhysicalObject meaning: dcite:PhysicalObject dcite:Preprint: - text: dcite:Preprint meaning: dcite:Preprint dcite:Report: - text: dcite:Report meaning: dcite:Report dcite:Service: - text: dcite:Service meaning: dcite:Service dcite:Software: - text: dcite:Software meaning: dcite:Software dcite:Sound: - text: dcite:Sound meaning: dcite:Sound dcite:Standard: - text: dcite:Standard meaning: dcite:Standard dcite:StudyRegistration: - text: dcite:StudyRegistration meaning: dcite:StudyRegistration dcite:Text: - text: dcite:Text meaning: dcite:Text dcite:Workflow: - text: dcite:Workflow meaning: dcite:Workflow dcite:Other: - text: dcite:Other meaning: dcite:Other RoleType: - name: RoleType description: An enumeration of roles permissible_values: dcite:Author: - text: dcite:Author meaning: dcite:Author dcite:Conceptualization: - text: dcite:Conceptualization meaning: dcite:Conceptualization dcite:ContactPerson: - text: dcite:ContactPerson meaning: dcite:ContactPerson dcite:DataCollector: - text: dcite:DataCollector meaning: dcite:DataCollector dcite:DataCurator: - text: dcite:DataCurator meaning: dcite:DataCurator dcite:DataManager: - text: dcite:DataManager meaning: dcite:DataManager dcite:FormalAnalysis: - text: dcite:FormalAnalysis meaning: dcite:FormalAnalysis dcite:FundingAcquisition: - text: dcite:FundingAcquisition meaning: dcite:FundingAcquisition dcite:Investigation: - text: dcite:Investigation meaning: dcite:Investigation dcite:Maintainer: - text: dcite:Maintainer meaning: dcite:Maintainer dcite:Methodology: - text: dcite:Methodology meaning: dcite:Methodology dcite:Producer: - text: dcite:Producer meaning: dcite:Producer dcite:ProjectLeader: - text: dcite:ProjectLeader meaning: dcite:ProjectLeader dcite:ProjectManager: - text: dcite:ProjectManager meaning: dcite:ProjectManager dcite:ProjectMember: - text: dcite:ProjectMember meaning: dcite:ProjectMember dcite:ProjectAdministration: - text: dcite:ProjectAdministration meaning: dcite:ProjectAdministration dcite:Researcher: - text: dcite:Researcher meaning: dcite:Researcher dcite:Resources: - text: dcite:Resources meaning: dcite:Resources dcite:Software: - text: dcite:Software meaning: dcite:Software dcite:Supervision: - text: dcite:Supervision meaning: dcite:Supervision dcite:Validation: - text: dcite:Validation meaning: dcite:Validation dcite:Visualization: - text: dcite:Visualization meaning: dcite:Visualization dcite:Funder: - text: dcite:Funder meaning: dcite:Funder dcite:Sponsor: - text: dcite:Sponsor meaning: dcite:Sponsor dcite:StudyParticipant: - text: dcite:StudyParticipant meaning: dcite:StudyParticipant dcite:Affiliation: - text: dcite:Affiliation meaning: dcite:Affiliation dcite:EthicsApproval: - text: dcite:EthicsApproval meaning: dcite:EthicsApproval dcite:Other: - text: dcite:Other meaning: dcite:Other + slots: about: - name: about notes: - 'pydantic2linkml: Warning: The translation is incomplete. Tagged union types are yet to be supported.' required: false multivalued: true access: - name: access notes: - 'pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.' @@ -417,80 +292,63 @@ slots: required: false multivalued: true acknowledgement: - name: acknowledgement range: string required: false affiliation: - name: affiliation range: Affiliation required: false multivalued: true age: - name: age range: PropertyValue required: false alleles: - name: alleles range: Allele required: true multivalued: true alleleSymbol: - name: alleleSymbol range: string required: false alleleType: - name: alleleType range: string required: false altName: - name: altName range: string required: false multivalued: true anatomy: - name: anatomy range: Anatomy required: false multivalued: true approach: - name: approach range: ApproachType required: false multivalued: true assayType: - name: assayType range: AssayType required: false multivalued: true assetsSummary: - name: assetsSummary range: AssetsSummary required: true awardNumber: - name: awardNumber range: string required: false blobDateModified: - name: blobDateModified notes: - 'pydantic2linkml: Unable to express the microseconds precision constraint of truncate. LinkML lacks direct support for this restriction.' range: datetime required: false cellLine: - name: cellLine range: string required: false citation: - name: citation range: string required: true contactPoint: - name: contactPoint range: ContactPoint required: false contentSize: - name: contentSize notes: - 'pydantic2linkml: Unable to translate the logic contained in the after validation function, >.' @@ -502,7 +360,6 @@ slots: byte string''}).' required: true contentUrl: - name: contentUrl notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val @@ -512,19 +369,16 @@ slots: multivalued: true pattern: ^(?i:http|https)://[^\s]+$ contributor: - name: contributor notes: - 'pydantic2linkml: Warning: The translation is incomplete. Tagged union types are yet to be supported.' required: false multivalued: true dataStandard: - name: dataStandard range: StandardsType required: false multivalued: true dataType: - name: dataType notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val @@ -533,32 +387,27 @@ slots: required: false pattern: ^(?i:http|https)://[^\s]+$ dateCreated: - name: dateCreated notes: - 'pydantic2linkml: Unable to express the microseconds precision constraint of truncate. LinkML lacks direct support for this restriction.' range: datetime required: false dateModified: - name: dateModified notes: - 'pydantic2linkml: Unable to express the microseconds precision constraint of truncate. LinkML lacks direct support for this restriction.' range: datetime required: false datePublished: - name: datePublished notes: - 'pydantic2linkml: Unable to express the microseconds precision constraint of truncate. LinkML lacks direct support for this restriction.' range: datetime required: true description: - name: description range: string required: false digest: - name: digest notes: - 'pydantic2linkml: Unable to translate the logic contained in the after validation function, >.' @@ -566,18 +415,15 @@ slots: to be supported.' required: true disorder: - name: disorder range: Disorder required: false multivalued: true doi: - name: doi ifabsent: string() range: string required: false pattern: ^(10\.\d{4,}/[a-z][-a-z]*\.\d{6}/\d+\.\d+\.\d+|)$ dxdate: - name: dxdate notes: - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema contains a choice of type date. The choice type is yet to be supported. (core @@ -586,18 +432,15 @@ slots: required: false multivalued: true email: - name: email notes: - 'pydantic2linkml: Unable to translate the logic contained in the after validation function, >.' range: string required: false embargoedUntil: - name: embargoedUntil range: date required: false encodingFormat: - name: encodingFormat notes: - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema contains a choice of type function-wrap. The choice type is yet to be supported. @@ -610,19 +453,16 @@ slots: ''pydantic.networks.AnyHttpUrl''>>, ''info_arg'': True}}, {''type'': ''str''}]}).' required: true endDate: - name: endDate notes: - 'pydantic2linkml: Unable to express the microseconds precision constraint of truncate. LinkML lacks direct support for this restriction.' range: datetime required: false ethicsApproval: - name: ethicsApproval range: EthicsApproval required: false multivalued: true genotype: - name: genotype notes: - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema contains a choice of type list. The choice type is yet to be supported. (core @@ -911,41 +751,32 @@ slots: of >]}}}, {''type'': ''str''}]}).' required: false hasMember: - name: hasMember range: string required: false multivalued: true id: - name: id range: string required: false - identifier: - name: identifier + identifier: {} includeInCitation: - name: includeInCitation ifabsent: 'True' range: boolean required: false keywords: - name: keywords range: string required: false multivalued: true license: - name: license range: LicenseType required: false multivalued: true locus: - name: locus range: Locus required: true locusType: - name: locusType range: string required: false manifestLocation: - name: manifestLocation notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val @@ -956,53 +787,42 @@ slots: pattern: ^(?i:http|https)://[^\s]+$ minimum_cardinality: 1 maxValue: - name: maxValue notes: - 'pydantic2linkml: LinkML does not have support for `''+inf''`, `''-inf''`, and `''NaN''` values. Support for these values is not translated.' range: float required: false measurementTechnique: - name: measurementTechnique range: MeasurementTechniqueType required: false multivalued: true minValue: - name: minValue notes: - 'pydantic2linkml: LinkML does not have support for `''+inf''`, `''-inf''`, and `''NaN''` values. Support for these values is not translated.' range: float required: false name: - name: name range: string numberOfBytes: - name: numberOfBytes range: integer required: true numberOfCells: - name: numberOfCells range: integer required: false numberOfFiles: - name: numberOfFiles range: integer required: true numberOfSamples: - name: numberOfSamples range: integer required: false numberOfSubjects: - name: numberOfSubjects range: integer required: false path: - name: path range: string required: true propertyID: - name: propertyID notes: - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema contains a choice of type definition-ref. The choice type is yet to be supported. @@ -1017,7 +837,6 @@ slots: ''pydantic.networks.AnyHttpUrl''>>, ''info_arg'': True}}]}).' required: false protocol: - name: protocol notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val @@ -1027,7 +846,6 @@ slots: multivalued: true pattern: ^(?i:http|https)://[^\s]+$ publishedBy: - name: publishedBy notes: - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema contains a choice of type function-wrap. The choice type is yet to be supported. @@ -1345,12 +1163,10 @@ slots: of >]}}]}).' required: true relatedParticipant: - name: relatedParticipant range: RelatedParticipant required: false multivalued: true relatedResource: - name: relatedResource notes: - 'pydantic2linkml: Unable to translate the logic contained in the after validation function, .' @@ -1358,34 +1174,26 @@ slots: required: false multivalued: true relation: - name: relation required: true releaseNotes: - name: releaseNotes range: string required: false repository: - name: repository required: false resourceType: - name: resourceType range: ResourceType required: false roleName: - name: roleName range: RoleType required: false multivalued: true sameAs: - name: sameAs required: false multivalued: true sampleType: - name: sampleType range: SampleType required: true schemaKey: - name: schemaKey notes: - 'pydantic2linkml: Unable to translate the logic contained in the after validation function, >.' @@ -1393,54 +1201,43 @@ slots: range: string required: false schemaVersion: - name: schemaVersion ifabsent: string(0.7.0) range: string required: false sex: - name: sex range: SexType required: false species: - name: species range: SpeciesType required: false startDate: - name: startDate notes: - 'pydantic2linkml: Unable to express the microseconds precision constraint of truncate. LinkML lacks direct support for this restriction.' range: datetime required: false status: - name: status range: AccessType required: true strain: - name: strain range: StrainType required: false studyTarget: - name: studyTarget range: string required: false multivalued: true unitText: - name: unitText range: string required: false url: - name: url range: uri required: false pattern: ^(?i:http|https)://[^\s]+$ used: - name: used range: Equipment required: false multivalued: true value: - name: value notes: - 'pydantic2linkml: Unable to translate the logic contained in the after validation function, >.' @@ -1450,52 +1247,44 @@ slots: ''list'', ''items_schema'': {''type'': ''any''}}]}).' required: false valueReference: - name: valueReference range: PropertyValue required: false variableMeasured: - name: variableMeasured required: false multivalued: true vendor: - name: vendor notes: - 'pydantic2linkml: Unable to translate the logic contained in the after validation function, .' range: Organization required: false version: - name: version range: string required: true wasAssociatedWith: - name: wasAssociatedWith notes: - 'pydantic2linkml: Warning: The translation is incomplete. Tagged union types are yet to be supported.' required: false multivalued: true wasAttributedTo: - name: wasAttributedTo range: Participant required: false multivalued: true wasDerivedFrom: - name: wasDerivedFrom range: BioSample required: false multivalued: true wasGeneratedBy: - name: wasGeneratedBy required: false multivalued: true + classes: Any: - name: Any description: Any object class_uri: linkml:Any AccessRequirements: - name: AccessRequirements + description: Information about access options for the dataset notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the AccessRequirements @@ -1508,7 +1297,7 @@ classes: - embargoedUntil - status Activity: - name: Activity + description: Information about the Project activity notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Activity Pydantic @@ -1525,11 +1314,9 @@ classes: - wasAssociatedWith slot_usage: identifier: - name: identifier range: string required: false name: - name: name notes: - 'pydantic2linkml: LinkML does not have direct support for max length constraints. The max length constraint of 150 is incorporated into the pattern of the @@ -1537,7 +1324,6 @@ classes: required: true pattern: ^(?=.{,150}$) Affiliation: - name: Affiliation notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Affiliation Pydantic @@ -1549,15 +1335,12 @@ classes: - name slot_usage: identifier: - name: identifier range: string required: false pattern: ^https://ror.org/[a-z0-9]+$ name: - name: name required: true Agent: - name: Agent notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Agent Pydantic model @@ -1569,20 +1352,16 @@ classes: - url slot_usage: identifier: - name: identifier range: string required: false name: - name: name required: true url: - name: url notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' Allele: - name: Allele notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Allele Pydantic @@ -1595,7 +1374,6 @@ classes: - identifier slot_usage: identifier: - name: identifier notes: - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema contains a choice of type str. The choice type is yet to be supported. @@ -1603,7 +1381,7 @@ classes: ''list'', ''items_schema'': {''type'': ''str''}}]}).' required: true Anatomy: - name: Anatomy + description: UBERON or other identifier for anatomical part studied notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Anatomy Pydantic @@ -1611,7 +1389,7 @@ classes: .' is_a: BaseType ApproachType: - name: ApproachType + description: Identifier for approach used notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the ApproachType Pydantic @@ -1619,7 +1397,7 @@ classes: .' is_a: BaseType AssayType: - name: AssayType + description: OBI based identifier for the assay(s) used notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the AssayType Pydantic @@ -1627,7 +1405,7 @@ classes: .' is_a: BaseType Asset: - name: Asset + description: Metadata used to describe an asset on the server. notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the id slot. The slot representation of the id field in the Asset Pydantic model has changes @@ -1638,12 +1416,11 @@ classes: - identifier slot_usage: identifier: - name: identifier range: string required: true pattern: ^(?:urn:uuid:)?[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?4[0-9a-fA-F]{3}-?[89abAB][0-9a-fA-F]{3}-?[0-9a-fA-F]{12}$ AssetsSummary: - name: AssetsSummary + description: Summary over assets contained in a dandiset (published or not) notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the AssetsSummary Pydantic @@ -1663,21 +1440,20 @@ classes: - variableMeasured slot_usage: species: - name: species multivalued: true variableMeasured: - name: variableMeasured range: string BareAsset: - name: BareAsset + description: Metadata used to describe an asset anywhere (local or server). Derived + from C2M2 (Level 0 and 1) and schema.org notes: - - 'pydantic2linkml: Impossible to generate slot usage entry for the access slot. - The slot representation of the access field in the BareAsset Pydantic model - has changes in value in meta slots: [''notes''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the BareAsset Pydantic model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the access slot. + The slot representation of the access field in the BareAsset Pydantic model + has changes in value in meta slots: [''notes''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the wasGeneratedBy slot. The slot representation of the wasGeneratedBy field in the BareAsset Pydantic model lacks meta slots: [''range''] .' @@ -1698,7 +1474,6 @@ classes: - wasDerivedFrom slot_usage: sameAs: - name: sameAs notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val @@ -1706,10 +1481,9 @@ classes: range: uri pattern: ^(?i:http|https)://[^\s]+$ variableMeasured: - name: variableMeasured range: PropertyValue BaseType: - name: BaseType + description: Base class for enumerated types notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the BaseType Pydantic @@ -1720,7 +1494,6 @@ classes: - name slot_usage: identifier: - name: identifier notes: - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema contains a choice of type function-wrap. The choice type is yet to @@ -1736,7 +1509,6 @@ classes: ''left_to_right'', ''metadata'': {}}).' required: false name: - name: name notes: - 'pydantic2linkml: LinkML does not have direct support for max length constraints. The max length constraint of 150 is incorporated into the pattern of the @@ -1744,7 +1516,7 @@ classes: required: false pattern: ^(?=.{,150}$) BioSample: - name: BioSample + description: Description of the sample that was studied notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the BioSample Pydantic @@ -1762,14 +1534,11 @@ classes: - wasDerivedFrom slot_usage: identifier: - name: identifier range: string required: true sameAs: - name: sameAs range: string CommonModel: - name: CommonModel notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the CommonModel Pydantic @@ -1794,7 +1563,6 @@ classes: - wasGeneratedBy slot_usage: name: - name: name notes: - 'pydantic2linkml: LinkML does not have direct support for max length constraints. The max length constraint of 150 is incorporated into the pattern of the @@ -1802,7 +1570,6 @@ classes: required: false pattern: ^(?=.{,150}$) repository: - name: repository notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val @@ -1810,16 +1577,13 @@ classes: range: uri pattern: ^(?i:http|https)://[^\s]+$ url: - name: url notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' wasGeneratedBy: - name: wasGeneratedBy range: Activity ContactPoint: - name: ContactPoint notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the ContactPoint Pydantic @@ -1831,13 +1595,11 @@ classes: - url slot_usage: url: - name: url notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' Contributor: - name: Contributor notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Contributor Pydantic @@ -1854,48 +1616,44 @@ classes: - url slot_usage: identifier: - name: identifier range: string required: false name: - name: name required: false url: - name: url notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' DandiBaseModel: - name: DandiBaseModel slots: - id - schemaKey Dandiset: - name: Dandiset + description: A body of structured information describing a DANDI dataset. notes: - - 'pydantic2linkml: Impossible to generate slot usage entry for the contributor - slot. The slot representation of the contributor field in the Dandiset Pydantic - model has changes in value in meta slots: [''notes'', ''required''] .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the description + slot. The slot representation of the description field in the Dandiset Pydantic + model has changes in value in meta slots: [''required''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the id slot. The slot representation of the id field in the Dandiset Pydantic model has changes in value in meta slots: [''required''] .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey + slot. The slot representation of the schemaKey field in the Dandiset Pydantic + model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] + .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the contributor + slot. The slot representation of the contributor field in the Dandiset Pydantic + model has changes in value in meta slots: [''notes'', ''required''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the name slot. The slot representation of the name field in the Dandiset Pydantic model has changes in value in meta slots: [''required''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the license slot. The slot representation of the license field in the Dandiset Pydantic model has changes in value in meta slots: [''required''] .' - - 'pydantic2linkml: Impossible to generate slot usage entry for the description - slot. The slot representation of the description field in the Dandiset Pydantic - model has changes in value in meta slots: [''required''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the wasGeneratedBy slot. The slot representation of the wasGeneratedBy field in the Dandiset Pydantic model has changes in value in meta slots: [''range''] .' - - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey - slot. The slot representation of the schemaKey field in the Dandiset Pydantic - model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] - .' is_a: CommonModel slots: - assetsSummary @@ -1908,16 +1666,14 @@ classes: - version slot_usage: identifier: - name: identifier range: string required: true pattern: ^[A-Z][-A-Z]*:\d{6}$ sameAs: - name: sameAs range: string pattern: ^dandi://[A-Z][-A-Z]*/\d{6}(@(draft|\d+\.\d+\.\d+))?(/\S+)?$ Disorder: - name: Disorder + description: Biolink, SNOMED, or other identifier for disorder studied notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Disorder Pydantic @@ -1927,7 +1683,6 @@ classes: slots: - dxdate Equipment: - name: Equipment notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Equipment Pydantic @@ -1940,11 +1695,9 @@ classes: - name slot_usage: identifier: - name: identifier range: string required: false name: - name: name notes: - 'pydantic2linkml: LinkML does not have direct support for max length constraints. The max length constraint of 150 is incorporated into the pattern of the @@ -1952,7 +1705,7 @@ classes: required: true pattern: ^(?=.{,150}$) EthicsApproval: - name: EthicsApproval + description: Information about ethics committee approval for project notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the EthicsApproval Pydantic @@ -1964,11 +1717,10 @@ classes: - identifier slot_usage: identifier: - name: identifier range: string required: true GenericType: - name: GenericType + description: An object to capture any type for about notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the GenericType Pydantic @@ -1976,7 +1728,6 @@ classes: .' is_a: BaseType GenotypeInfo: - name: GenotypeInfo notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the GenotypeInfo Pydantic @@ -1989,10 +1740,8 @@ classes: - wasGeneratedBy slot_usage: wasGeneratedBy: - name: wasGeneratedBy range: Session Locus: - name: Locus notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Locus Pydantic model @@ -2003,7 +1752,6 @@ classes: - locusType slot_usage: identifier: - name: identifier notes: - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema contains a choice of type str. The choice type is yet to be supported. @@ -2011,7 +1759,7 @@ classes: ''list'', ''items_schema'': {''type'': ''str''}}]}).' required: true MeasurementTechniqueType: - name: MeasurementTechniqueType + description: Identifier for measurement technique used notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the MeasurementTechniqueType @@ -2019,27 +1767,27 @@ classes: ''range''] .' is_a: BaseType Organization: - name: Organization notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the includeInCitation + slot. The slot representation of the includeInCitation field in the Organization + Pydantic model has changes in value in meta slots: [''ifabsent''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Organization Pydantic model has changes in value in meta slots: [''any_of'', ''ifabsent'', ''notes''] .' - - 'pydantic2linkml: Impossible to generate slot usage entry for the includeInCitation - slot. The slot representation of the includeInCitation field in the Organization - Pydantic model has changes in value in meta slots: [''ifabsent''] .' is_a: Contributor slots: - contactPoint slot_usage: contactPoint: - name: contactPoint multivalued: true identifier: - name: identifier pattern: ^https://ror.org/[a-z0-9]+$ Participant: - name: Participant + description: Description about the Participant or Subject studied. The Participant + or Subject can be any individual or synthesized Agent. The properties of the + Participant or Subject refers to information at the timepoint when the Participant + or Subject engaged in the production of data being described. notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Participant Pydantic @@ -2061,14 +1809,11 @@ classes: - vendor slot_usage: identifier: - name: identifier range: string required: true sameAs: - name: sameAs range: string Person: - name: Person notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Person Pydantic @@ -2082,10 +1827,8 @@ classes: - affiliation slot_usage: identifier: - name: identifier pattern: ^\d{4}-\d{4}-\d{4}-(\d{3}X|\d{4})$ Project: - name: Project notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Project Pydantic @@ -2093,7 +1836,6 @@ classes: .' is_a: Activity PropertyValue: - name: PropertyValue notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the PropertyValue Pydantic @@ -2108,7 +1850,6 @@ classes: - value - valueReference Publishable: - name: Publishable notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Publishable Pydantic @@ -2119,7 +1860,6 @@ classes: - datePublished - publishedBy PublishActivity: - name: PublishActivity notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the PublishActivity @@ -2127,7 +1867,6 @@ classes: ''notes''] .' is_a: Activity PublishedAsset: - name: PublishedAsset notes: - 'pydantic2linkml: Warning: LinkML does not support multiple inheritance. Publishable is not specified as a parent, through the `is_a` meta slot, but as a mixin.' @@ -2139,10 +1878,8 @@ classes: - Publishable slot_usage: id: - name: id pattern: ^dandiasset:[a-f0-9]{8}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{12}$ PublishedDandiset: - name: PublishedDandiset notes: - 'pydantic2linkml: Warning: LinkML does not support multiple inheritance. Publishable is not specified as a parent, through the `is_a` meta slot, but as a mixin.' @@ -2162,7 +1899,6 @@ classes: - doi - releaseNotes RelatedParticipant: - name: RelatedParticipant notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the RelatedParticipant @@ -2176,23 +1912,18 @@ classes: - url slot_usage: identifier: - name: identifier range: string required: false name: - name: name required: false relation: - name: relation range: ParticipantRelationType url: - name: url notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' Resource: - name: Resource notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Resource Pydantic @@ -2208,26 +1939,21 @@ classes: - url slot_usage: identifier: - name: identifier range: string required: false name: - name: name required: false relation: - name: relation range: RelationType repository: - name: repository range: string url: - name: url notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' SampleType: - name: SampleType + description: OBI based identifier for the sample type used notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the SampleType Pydantic @@ -2235,7 +1961,6 @@ classes: .' is_a: BaseType Session: - name: Session notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Session Pydantic @@ -2243,7 +1968,7 @@ classes: .' is_a: Activity SexType: - name: SexType + description: Identifier for the sex of the sample notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the SexType Pydantic @@ -2251,7 +1976,6 @@ classes: .' is_a: BaseType Software: - name: Software notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Software Pydantic @@ -2265,21 +1989,18 @@ classes: - version slot_usage: identifier: - name: identifier range: string required: false pattern: ^RRID:.* name: - name: name required: true url: - name: url notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' SpeciesType: - name: SpeciesType + description: Identifier for species of the sample notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the SpeciesType Pydantic @@ -2287,7 +2008,7 @@ classes: .' is_a: BaseType StandardsType: - name: StandardsType + description: Identifier for data standard used notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the StandardsType Pydantic @@ -2295,7 +2016,7 @@ classes: .' is_a: BaseType StrainType: - name: StrainType + description: Identifier for the strain of the sample notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the StrainType Pydantic From 63dd301bdcf7d828dcf56a8110cf671705caff2f Mon Sep 17 00:00:00 2001 From: Isaac To Date: Thu, 12 Mar 2026 20:07:21 -0700 Subject: [PATCH 06/25] feat: provide `prefixes` definition in the overlay file These prefixes are copied from https://github.com/dandi/schema/blob/master/releases/0.7.0/context.json --- dandischema/models_overlay.yaml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/dandischema/models_overlay.yaml b/dandischema/models_overlay.yaml index 69b1c3e2..f3e477bd 100644 --- a/dandischema/models_overlay.yaml +++ b/dandischema/models_overlay.yaml @@ -2,3 +2,27 @@ name: dandi-schema id: https://schema.dandiarchive.org/s/dandi/v0.7 version: 0.7.0 status: eunal:concept-status/DRAFT + +prefixes: + dandi: http://schema.dandiarchive.org/ + dcite: http://schema.dandiarchive.org/datacite/ + dandiasset: http://dandiarchive.org/asset/ + DANDI: http://dandiarchive.org/dandiset/ + dct: http://purl.org/dc/terms/ + owl: http://www.w3.org/2002/07/owl# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + rdfa: http://www.w3.org/ns/rdfa# + rdfs: http://www.w3.org/2000/01/rdf-schema# + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + pav: http://purl.org/pav/ + nidm: http://purl.org/nidash/nidm# + uuid: http://uuid.repronim.org/ + rs: http://schema.repronim.org/ + RRID: "https://scicrunch.org/resolver/RRID:" + ORCID: https://orcid.org/ + ROR: https://ror.org/ + PATO: http://purl.obolibrary.org/obo/PATO_ + spdx: http://spdx.org/licenses/ From f8125d002711fd03a7f6dc6598da212b2895e8b5 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Fri, 13 Mar 2026 17:05:48 -0400 Subject: [PATCH 07/25] Added linkml: prefix and sorted all the entries --- dandischema/models_overlay.yaml | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/dandischema/models_overlay.yaml b/dandischema/models_overlay.yaml index f3e477bd..d10006bc 100644 --- a/dandischema/models_overlay.yaml +++ b/dandischema/models_overlay.yaml @@ -4,25 +4,26 @@ version: 0.7.0 status: eunal:concept-status/DRAFT prefixes: - dandi: http://schema.dandiarchive.org/ - dcite: http://schema.dandiarchive.org/datacite/ dandiasset: http://dandiarchive.org/asset/ DANDI: http://dandiarchive.org/dandiset/ + dandi: http://schema.dandiarchive.org/ + dcite: http://schema.dandiarchive.org/datacite/ dct: http://purl.org/dc/terms/ + linkml: https://w3id.org/linkml/ + nidm: http://purl.org/nidash/nidm# + ORCID: https://orcid.org/ owl: http://www.w3.org/2002/07/owl# - rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + PATO: http://purl.obolibrary.org/obo/PATO_ + pav: http://purl.org/pav/ + prov: http://www.w3.org/ns/prov# rdfa: http://www.w3.org/ns/rdfa# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# rdfs: http://www.w3.org/2000/01/rdf-schema# + ROR: https://ror.org/ + RRID: "https://scicrunch.org/resolver/RRID:" + rs: http://schema.repronim.org/ schema: http://schema.org/ - xsd: http://www.w3.org/2001/XMLSchema# skos: http://www.w3.org/2004/02/skos/core# - prov: http://www.w3.org/ns/prov# - pav: http://purl.org/pav/ - nidm: http://purl.org/nidash/nidm# - uuid: http://uuid.repronim.org/ - rs: http://schema.repronim.org/ - RRID: "https://scicrunch.org/resolver/RRID:" - ORCID: https://orcid.org/ - ROR: https://ror.org/ - PATO: http://purl.obolibrary.org/obo/PATO_ spdx: http://spdx.org/licenses/ + uuid: http://uuid.repronim.org/ + xsd: http://www.w3.org/2001/XMLSchema# From 7c5077aae32b599d57d47f30b22ed845d7bf03ad Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Fri, 13 Mar 2026 17:08:12 -0400 Subject: [PATCH 08/25] Provide default prefix to be custom dandi_default --- dandischema/models_overlay.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dandischema/models_overlay.yaml b/dandischema/models_overlay.yaml index d10006bc..983cbaaf 100644 --- a/dandischema/models_overlay.yaml +++ b/dandischema/models_overlay.yaml @@ -27,3 +27,5 @@ prefixes: spdx: http://spdx.org/licenses/ uuid: http://uuid.repronim.org/ xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: dandi_default From 3485245f3097f958ddff81a4c419354da293f39c Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Fri, 13 Mar 2026 17:17:41 -0400 Subject: [PATCH 09/25] Reextracted model (now with prefixes and deterministic order of notes) --- dandischema/models.yaml | 69 +++++++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 26 deletions(-) diff --git a/dandischema/models.yaml b/dandischema/models.yaml index 3c006b05..301a1a77 100644 --- a/dandischema/models.yaml +++ b/dandischema/models.yaml @@ -5,13 +5,30 @@ version: 0.7.0 imports: - linkml:types prefixes: - linkml: - prefix_prefix: linkml - prefix_reference: https://w3id.org/linkml/ - test_schema: - prefix_prefix: test_schema - prefix_reference: http://example.org/test-schema/ -default_prefix: test_schema + dandiasset: http://dandiarchive.org/asset/ + DANDI: http://dandiarchive.org/dandiset/ + dandi: http://schema.dandiarchive.org/ + dcite: http://schema.dandiarchive.org/datacite/ + dct: http://purl.org/dc/terms/ + linkml: https://w3id.org/linkml/ + nidm: http://purl.org/nidash/nidm# + ORCID: https://orcid.org/ + owl: http://www.w3.org/2002/07/owl# + PATO: http://purl.obolibrary.org/obo/PATO_ + pav: http://purl.org/pav/ + prov: http://www.w3.org/ns/prov# + rdfa: http://www.w3.org/ns/rdfa# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + rdfs: http://www.w3.org/2000/01/rdf-schema# + ROR: https://ror.org/ + RRID: 'https://scicrunch.org/resolver/RRID:' + rs: http://schema.repronim.org/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + spdx: http://spdx.org/licenses/ + uuid: http://uuid.repronim.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: dandi_default default_range: string enums: @@ -1447,13 +1464,13 @@ classes: description: Metadata used to describe an asset anywhere (local or server). Derived from C2M2 (Level 0 and 1) and schema.org notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the access slot. + The slot representation of the access field in the BareAsset Pydantic model + has changes in value in meta slots: [''notes''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the BareAsset Pydantic model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] .' - - 'pydantic2linkml: Impossible to generate slot usage entry for the access slot. - The slot representation of the access field in the BareAsset Pydantic model - has changes in value in meta slots: [''notes''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the wasGeneratedBy slot. The slot representation of the wasGeneratedBy field in the BareAsset Pydantic model lacks meta slots: [''range''] .' @@ -1632,25 +1649,25 @@ classes: Dandiset: description: A body of structured information describing a DANDI dataset. notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the contributor + slot. The slot representation of the contributor field in the Dandiset Pydantic + model has changes in value in meta slots: [''notes'', ''required''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the description slot. The slot representation of the description field in the Dandiset Pydantic model has changes in value in meta slots: [''required''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the id slot. The slot representation of the id field in the Dandiset Pydantic model has changes in value in meta slots: [''required''] .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the license slot. + The slot representation of the license field in the Dandiset Pydantic model + has changes in value in meta slots: [''required''] .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the name slot. + The slot representation of the name field in the Dandiset Pydantic model has + changes in value in meta slots: [''required''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Dandiset Pydantic model has changes in value in meta slots: [''ifabsent'', ''notes'', ''range''] .' - - 'pydantic2linkml: Impossible to generate slot usage entry for the contributor - slot. The slot representation of the contributor field in the Dandiset Pydantic - model has changes in value in meta slots: [''notes'', ''required''] .' - - 'pydantic2linkml: Impossible to generate slot usage entry for the name slot. - The slot representation of the name field in the Dandiset Pydantic model has - changes in value in meta slots: [''required''] .' - - 'pydantic2linkml: Impossible to generate slot usage entry for the license slot. - The slot representation of the license field in the Dandiset Pydantic model - has changes in value in meta slots: [''required''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the wasGeneratedBy slot. The slot representation of the wasGeneratedBy field in the Dandiset Pydantic model has changes in value in meta slots: [''range''] .' @@ -1815,13 +1832,13 @@ classes: range: string Person: notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the name slot. + The slot representation of the name field in the Person Pydantic model has changes + in value in meta slots: [''required''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the Person Pydantic model has changes in value in meta slots: [''any_of'', ''ifabsent'', ''notes''] .' - - 'pydantic2linkml: Impossible to generate slot usage entry for the name slot. - The slot representation of the name field in the Person Pydantic model has changes - in value in meta slots: [''required''] .' is_a: Contributor slots: - affiliation @@ -1868,11 +1885,11 @@ classes: is_a: Activity PublishedAsset: notes: - - 'pydantic2linkml: Warning: LinkML does not support multiple inheritance. Publishable - is not specified as a parent, through the `is_a` meta slot, but as a mixin.' - 'pydantic2linkml: Impossible to generate slot usage entry for the schemaKey slot. The slot representation of the schemaKey field in the PublishedAsset Pydantic model has changes in value in meta slots: [''notes''] .' + - 'pydantic2linkml: Warning: LinkML does not support multiple inheritance. Publishable + is not specified as a parent, through the `is_a` meta slot, but as a mixin.' is_a: Asset mixins: - Publishable @@ -1881,8 +1898,6 @@ classes: pattern: ^dandiasset:[a-f0-9]{8}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{12}$ PublishedDandiset: notes: - - 'pydantic2linkml: Warning: LinkML does not support multiple inheritance. Publishable - is not specified as a parent, through the `is_a` meta slot, but as a mixin.' - 'pydantic2linkml: Impossible to generate slot usage entry for the id slot. The slot representation of the id field in the PublishedDandiset Pydantic model has changes in value in meta slots: [''pattern''] .' @@ -1892,6 +1907,8 @@ classes: - 'pydantic2linkml: Impossible to generate slot usage entry for the url slot. The slot representation of the url field in the PublishedDandiset Pydantic model has changes in value in meta slots: [''notes'', ''required''] .' + - 'pydantic2linkml: Warning: LinkML does not support multiple inheritance. Publishable + is not specified as a parent, through the `is_a` meta slot, but as a mixin.' is_a: Dandiset mixins: - Publishable From bff037c5939a9857d9e9607d2777bce6f6d731ea Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Fri, 13 Mar 2026 18:18:09 -0400 Subject: [PATCH 10/25] rename original models into models_orig --- dandischema/{models.py => models_orig.py} | 0 pyproject.toml | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) rename dandischema/{models.py => models_orig.py} (100%) diff --git a/dandischema/models.py b/dandischema/models_orig.py similarity index 100% rename from dandischema/models.py rename to dandischema/models_orig.py diff --git a/pyproject.toml b/pyproject.toml index 1792f36e..2d5b9137 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,8 +69,8 @@ dependencies = [ "pydantic2linkml @ git+https://github.com/dandi/pydantic2linkml.git" ] [tool.hatch.envs.linkml-auto-converted.scripts] -2linkml = "pydantic2linkml -l INFO -O dandischema/models_overlay.yaml dandischema.models | sed -e 's,0x[0-9a-ef]*,0xADDRESS,g' -e 's,\\(.\\+\\):[0-9]\\+,\\1:NUMBER,g' > dandischema/models.yaml" -2pydantic = "gen-pydantic --black dandischema/models.yaml > dandischema/models.py" +2linkml = "pydantic2linkml -l INFO -O dandischema/models_overlay.yaml dandischema.models_orig | sed -e 's,0x[0-9a-ef]*,0xADDRESS,g' -e 's,\\(.\\+\\):[0-9]\\+,\\1:NUMBER,g' > dandischema/models.yaml" +2pydantic = "gen-pydantic --black dandischema/models.yaml > dandischema/models_linkml.py" [tool.setuptools.packages.find] namespaces = true From 6bb4b52668a0b97d63c8b194db9ccccb93e7336b Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Fri, 13 Mar 2026 18:22:41 -0400 Subject: [PATCH 11/25] Adding models.py back to import from converted and some symbols from _orig for now --- dandischema/models.py | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 dandischema/models.py diff --git a/dandischema/models.py b/dandischema/models.py new file mode 100644 index 00000000..6815ca49 --- /dev/null +++ b/dandischema/models.py @@ -0,0 +1,9 @@ +from .models_linkml import * # noqa: F401,F403 +from .models_orig import DANDI_INSTANCE_URL_PATTERN # noqa: F401 + +# TODO: temporary imports of consts etc which might need to be 'redone' +# so we do not duplicate them + + +# TODO: do the extra tune ups like linking extra validations etc, +# potentially copied from models_orig.py From 725e957fad7404d5aeaf212b1b7ce89fc7c9f416 Mon Sep 17 00:00:00 2001 From: Isaac To Date: Sun, 15 Mar 2026 22:40:23 -0700 Subject: [PATCH 12/25] Expand comment for linkml-auto-converted hatch env with usage instructions Co-Authored-By: Claude Sonnet 4.6 --- pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 2d5b9137..686a9566 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -63,6 +63,9 @@ installer = "uv" python = "3.10" # Env for auto converting `dandischema.models` to LinkML schema and back to Pydantic models +# To invoke conversion scripts provided by the environment, execute the following respective commands: +# `hatch run linkml-auto-converted:2linkml` # Convert dandischema.models_orig -> dandischema/models.yaml +# `hatch run linkml-auto-converted:2pydantic` # Convert dandischema/models.yaml -> dandischema/models_linkml.py [tool.hatch.envs.linkml-auto-converted] dependencies = [ "black", # This allows `gen-pydantic` to format the generated Pydantic models with Black formatting From a2324fa3353ff5fcd132d593220658d3527586d1 Mon Sep 17 00:00:00 2001 From: Isaac To Date: Mon, 16 Mar 2026 16:57:13 -0700 Subject: [PATCH 13/25] fix: correct `default_prefix` to `dandi` There is no prefix defined as `dandi_default`. The intended default prefix is `dandi` --- dandischema/models_overlay.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dandischema/models_overlay.yaml b/dandischema/models_overlay.yaml index 983cbaaf..6bcb0144 100644 --- a/dandischema/models_overlay.yaml +++ b/dandischema/models_overlay.yaml @@ -28,4 +28,4 @@ prefixes: uuid: http://uuid.repronim.org/ xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: dandi_default +default_prefix: dandi From 21fa6826cde3a3bcc5d53cf5f7723feb615fd628 Mon Sep 17 00:00:00 2001 From: Isaac To Date: Mon, 16 Mar 2026 22:57:53 -0700 Subject: [PATCH 14/25] fix: use portable ERE sed pattern for normalizing memory addresses in models.yaml The previous BRE pattern used `\+` (GNU sed extension) which silently fails on macOS BSD sed. Switch to `-E` (extended regex) with POSIX character class `[^[:space:]]` instead of `\S` (also unsupported by BSD sed), making the normalization work on both macOS and Linux. Co-Authored-By: Claude Sonnet 4.6 --- dandischema/models.yaml | 213 ++++++++++++++++++++-------------------- pyproject.toml | 2 +- 2 files changed, 108 insertions(+), 107 deletions(-) diff --git a/dandischema/models.yaml b/dandischema/models.yaml index 301a1a77..eb3678dc 100644 --- a/dandischema/models.yaml +++ b/dandischema/models.yaml @@ -28,7 +28,7 @@ prefixes: spdx: http://spdx.org/licenses/ uuid: http://uuid.repronim.org/ xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: dandi_default +default_prefix: dandi default_range: string enums: @@ -81,10 +81,10 @@ enums: LicenseType: description: An enumeration. permissible_values: - spdx:CC0-1.0: - meaning: spdx:CC0-1.0 spdx:CC-BY-4.0: meaning: spdx:CC-BY-4.0 + spdx:CC0-1.0: + meaning: spdx:CC0-1.0 ParticipantRelationType: description: An enumeration of participant relations permissible_values: @@ -427,7 +427,7 @@ slots: digest: notes: - 'pydantic2linkml: Unable to translate the logic contained in the after validation - function, >.' + function, >.' - 'pydantic2linkml: Warning: The translation is incomplete. `dict` types are yet to be supported.' required: true @@ -484,26 +484,26 @@ slots: - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema contains a choice of type list. The choice type is yet to be supported. (core schema: {''type'': ''union'', ''choices'': [{''type'': ''list'', ''items_schema'': - {''type'': ''model'', ''cls'': , + {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + DandiBaseModel.ensure_schemakey of >}, ''schema'': {''type'': ''literal'', ''expected'': [''GenotypeInfo'']}, ''type'': ''function-after''}, ''default'': ''GenotypeInfo'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''locus'': {''type'': - ''model-field'', ''schema'': {''type'': ''model'', ''cls'': , + ''model-field'', ''schema'': {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, ''schema'': - {''type'': ''literal'', ''expected'': [''Locus'']}, ''type'': ''function-after''}, + DandiBaseModel.ensure_schemakey of >}, + ''schema'': {''type'': ''literal'', ''expected'': [''Locus'']}, ''type'': ''function-after''}, ''default'': ''Locus'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': {''type'': ''model-field'', ''schema'': {''type'': ''union'', ''choices'': [{''type'': ''str''}, {''type'': ''list'', @@ -513,19 +513,19 @@ slots: {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {}}}, ''model_name'': ''Locus'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': - ''model_post_init'', ''config'': {''title'': ''Locus''}, ''ref'': ''dandischema.models.Locus:NUMBER'', + ''model_post_init'', ''config'': {''title'': ''Locus''}, ''ref'': ''dandischema.models_orig.Locus:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}, ''metadata'': {''pydantic_js_updates'': + of >]}}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Locus at which information was extracted.''}}}, ''alleles'': {''type'': ''model-field'', ''schema'': {''type'': ''list'', ''items_schema'': - {''type'': ''model'', ''cls'': , ''schema'': + {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + DandiBaseModel.ensure_schemakey of >}, ''schema'': {''type'': ''literal'', ''expected'': [''Allele'']}, ''type'': ''function-after''}, ''default'': ''Allele'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': {''type'': ''model-field'', ''schema'': @@ -539,20 +539,20 @@ slots: ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {}}}, ''model_name'': ''Allele'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': - {''title'': ''Allele''}, ''ref'': ''dandischema.models.Allele:NUMBER'', + {''title'': ''Allele''}, ''ref'': ''dandischema.models_orig.Allele:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}}, ''metadata'': {''pydantic_js_updates'': + of >]}}}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Information about alleles at the locus.''}}}, ''wasGeneratedBy'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''list'', ''items_schema'': - {''type'': ''model'', ''cls'': , ''schema'': - {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + {''type'': ''model'', ''cls'': , + ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + DandiBaseModel.ensure_schemakey of >}, ''schema'': {''type'': ''literal'', ''expected'': [''Session'']}, ''type'': ''function-after''}, ''default'': ''Session'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': @@ -577,14 +577,14 @@ slots: {''type'': ''nullable'', ''schema'': {''type'': ''list'', ''items_schema'': {''type'': ''tagged-union'', ''choices'': {''Person'': {''function'': {''type'': ''no-info'', ''function'': }, ''schema'': {''type'': ''model'', ''cls'': , + at 0xADDRESS>}, ''schema'': {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + DandiBaseModel.ensure_schemakey of >}, ''schema'': {''type'': ''literal'', ''expected'': [''Person'']}, ''type'': ''function-after''}, ''default'': ''Person'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': {''type'': ''model-field'', ''schema'': @@ -606,16 +606,16 @@ slots: {''nskey'': ''schema''}}}, ''url'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''function-wrap'', ''function'': {''type'': ''no-info'', ''function'': .wrap_val at 0xADDRESS>}, - ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, - ''metadata'': {''pydantic_js_functions'': [.wrap_val at 0xADDRESS>}, ''schema'': + {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, ''metadata'': + {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': ''function-plain'', ''function'': >, ''info_arg'': True}}}, ''default'': None}, ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''roleName'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''list'', ''items_schema'': - {''type'': ''definition-ref'', ''schema_ref'': ''dandischema.models.RoleType:NUMBER''}}}, + {''type'': ''definition-ref'', ''schema_ref'': ''dandischema.models_orig.RoleType:NUMBER''}}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''title'': ''Role'', ''description'': ''Role(s) of the contributor. Multiple roles can be selected.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''includeInCitation'': {''type'': @@ -630,14 +630,14 @@ slots: ''Identifier associated with a sponsored or gift award.''}, ''pydantic_js_extra'': {''nskey'': ''dandi''}}}, ''affiliation'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': - ''list'', ''items_schema'': {''type'': ''model'', ''cls'': , + ''list'', ''items_schema'': {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + DandiBaseModel.ensure_schemakey of >}, ''schema'': {''type'': ''literal'', ''expected'': [''Affiliation'']}, ''type'': ''function-after''}, ''default'': ''Affiliation'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': @@ -650,25 +650,25 @@ slots: ''Name of organization''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Affiliation'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': - {''title'': ''Affiliation''}, ''ref'': ''dandischema.models.Affiliation:NUMBER'', + {''title'': ''Affiliation''}, ''ref'': ''dandischema.models_orig.Affiliation:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}}}, ''default'': None}, ''metadata'': - {''pydantic_js_updates'': {''description'': ''An organization that this person - is affiliated with.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': - ''Person'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': - False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Person''}}, - ''ref'': ''dandischema.models.Person:NUMBER'', ''metadata'': {''pydantic_js_functions'': - [>]}, - ''type'': ''function-after''}, ''Organization'': {''type'': ''definition-ref'', - ''schema_ref'': ''dandischema.models.Organization:NUMBER''}, ''Software'': - {''type'': ''model'', ''cls'': , ''schema'': - {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + of >]}}}}, ''default'': None}, + ''metadata'': {''pydantic_js_updates'': {''description'': ''An organization + that this person is affiliated with.''}, ''pydantic_js_extra'': {''nskey'': + ''schema''}}}}, ''model_name'': ''Person'', ''computed_fields'': []}, ''custom_init'': + False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': + {''title'': ''Person''}}, ''ref'': ''dandischema.models_orig.Person:NUMBER'', + ''metadata'': {''pydantic_js_functions'': [>]}, ''type'': ''function-after''}, + ''Organization'': {''type'': ''definition-ref'', ''schema_ref'': ''dandischema.models_orig.Organization:NUMBER''}, + ''Software'': {''type'': ''model'', ''cls'': , + ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + DandiBaseModel.ensure_schemakey of >}, ''schema'': {''type'': ''literal'', ''expected'': [''Software'']}, ''type'': ''function-after''}, ''default'': ''Software'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': @@ -692,17 +692,17 @@ slots: software.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Software'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Software''}, - ''ref'': ''dandischema.models.Software:NUMBER'', ''metadata'': {''pydantic_js_functions'': - [>]}}, - ''Agent'': {''type'': ''model'', ''cls'': , + ''ref'': ''dandischema.models_orig.Software:NUMBER'', ''metadata'': {''pydantic_js_functions'': + [>]}}, + ''Agent'': {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, ''schema'': - {''type'': ''literal'', ''expected'': [''Agent'']}, ''type'': ''function-after''}, + DandiBaseModel.ensure_schemakey of >}, + ''schema'': {''type'': ''literal'', ''expected'': [''Agent'']}, ''type'': ''function-after''}, ''default'': ''Agent'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': @@ -721,20 +721,20 @@ slots: ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Agent'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Agent''}, - ''ref'': ''dandischema.models.Agent:NUMBER'', ''metadata'': {''pydantic_js_functions'': - [>]}}}, + ''ref'': ''dandischema.models_orig.Agent:NUMBER'', ''metadata'': {''pydantic_js_functions'': + [>]}}}, ''discriminator'': ''schemaKey'', ''strict'': False, ''from_attributes'': True, ''metadata'': {}}}}, ''default'': None}, ''metadata'': {''pydantic_js_extra'': {''nskey'': ''prov''}}}, ''used'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''list'', - ''items_schema'': {''type'': ''model'', ''cls'': , + ''items_schema'': {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + DandiBaseModel.ensure_schemakey of >}, ''schema'': {''type'': ''literal'', ''expected'': [''Equipment'']}, ''type'': ''function-after''}, ''default'': ''Equipment'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': @@ -750,22 +750,22 @@ slots: of the equipment.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Equipment'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Equipment''}, - ''ref'': ''dandischema.models.Equipment:NUMBER'', ''metadata'': {''pydantic_js_functions'': - [>]}}}}, + ''ref'': ''dandischema.models_orig.Equipment:NUMBER'', ''metadata'': {''pydantic_js_functions'': + [>]}}}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''A listing of equipment used for the activity.''}, ''pydantic_js_extra'': {''nskey'': ''prov''}}}}, ''model_name'': ''Session'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': - {''title'': ''Session''}, ''ref'': ''dandischema.models.Session:NUMBER'', + {''title'': ''Session''}, ''ref'': ''dandischema.models_orig.Session:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}}}, ''default'': None}, ''metadata'': + of >]}}}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Information about session activity used to determine genotype.''}, ''pydantic_js_extra'': {''nskey'': ''prov''}}}}, ''model_name'': ''GenotypeInfo'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': - {''title'': ''GenotypeInfo''}, ''ref'': ''dandischema.models.GenotypeInfo:NUMBER'', + {''title'': ''GenotypeInfo''}, ''ref'': ''dandischema.models_orig.GenotypeInfo:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}}, {''type'': ''str''}]}).' + of >]}}}, {''type'': ''str''}]}).' required: false hasMember: range: string @@ -844,11 +844,11 @@ slots: - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema contains a choice of type definition-ref. The choice type is yet to be supported. (core schema: {''type'': ''union'', ''choices'': [{''type'': ''definition-ref'', - ''schema_ref'': ''dandischema.models.IdentifierType:NUMBER''}, {''type'': + ''schema_ref'': ''dandischema.models_orig.IdentifierType:NUMBER''}, {''type'': ''function-wrap'', ''function'': {''type'': ''no-info'', ''function'': .wrap_val at 0xADDRESS>}, - ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, - ''metadata'': {''pydantic_js_functions'': [.wrap_val at 0xADDRESS>}, ''schema'': + {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, ''metadata'': + {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': ''function-plain'', ''function'': >, ''info_arg'': True}}]}).' @@ -873,14 +873,14 @@ slots: of >]}, ''serialization'': {''type'': ''function-plain'', ''function'': >, ''info_arg'': True}}, {''type'': ''model'', - ''cls'': , ''schema'': {''type'': + ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + DandiBaseModel.ensure_schemakey of >}, ''schema'': {''type'': ''literal'', ''expected'': [''PublishActivity'']}, ''type'': ''function-after''}, ''default'': ''PublishActivity'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': @@ -905,14 +905,14 @@ slots: ''nullable'', ''schema'': {''type'': ''list'', ''items_schema'': {''type'': ''tagged-union'', ''choices'': {''Person'': {''function'': {''type'': ''no-info'', ''function'': }, - ''schema'': {''type'': ''model'', ''cls'': , + ''schema'': {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + DandiBaseModel.ensure_schemakey of >}, ''schema'': {''type'': ''literal'', ''expected'': [''Person'']}, ''type'': ''function-after''}, ''default'': ''Person'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': {''type'': ''model-field'', ''schema'': @@ -934,16 +934,16 @@ slots: {''nskey'': ''schema''}}}, ''url'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''function-wrap'', ''function'': {''type'': ''no-info'', ''function'': .wrap_val at 0xADDRESS>}, - ''schema'': {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, - ''metadata'': {''pydantic_js_functions'': [.wrap_val at 0xADDRESS>}, ''schema'': + {''type'': ''url'', ''allowed_schemes'': [''http'', ''https'']}, ''metadata'': + {''pydantic_js_functions'': [>]}, ''serialization'': {''type'': ''function-plain'', ''function'': >, ''info_arg'': True}}}, ''default'': None}, ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''roleName'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''list'', ''items_schema'': - {''type'': ''definition-ref'', ''schema_ref'': ''dandischema.models.RoleType:NUMBER''}}}, + {''type'': ''definition-ref'', ''schema_ref'': ''dandischema.models_orig.RoleType:NUMBER''}}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''title'': ''Role'', ''description'': ''Role(s) of the contributor. Multiple roles can be selected.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''includeInCitation'': {''type'': @@ -958,14 +958,14 @@ slots: ''Identifier associated with a sponsored or gift award.''}, ''pydantic_js_extra'': {''nskey'': ''dandi''}}}, ''affiliation'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': - ''list'', ''items_schema'': {''type'': ''model'', ''cls'': , + ''list'', ''items_schema'': {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + DandiBaseModel.ensure_schemakey of >}, ''schema'': {''type'': ''literal'', ''expected'': [''Affiliation'']}, ''type'': ''function-after''}, ''default'': ''Affiliation'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': @@ -978,25 +978,26 @@ slots: ''Name of organization''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Affiliation'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': - {''title'': ''Affiliation''}, ''ref'': ''dandischema.models.Affiliation:NUMBER'', + {''title'': ''Affiliation''}, ''ref'': ''dandischema.models_orig.Affiliation:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}}}, ''default'': None}, ''metadata'': - {''pydantic_js_updates'': {''description'': ''An organization that this person - is affiliated with.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': - ''Person'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': - False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Person''}}, - ''ref'': ''dandischema.models.Person:NUMBER'', ''metadata'': {''pydantic_js_functions'': - [>]}, - ''type'': ''function-after''}, ''Organization'': {''function'': {''type'': ''no-info'', - ''function'': }, - ''schema'': {''type'': ''model'', ''cls'': , - ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', + of >]}}}}, ''default'': None}, + ''metadata'': {''pydantic_js_updates'': {''description'': ''An organization + that this person is affiliated with.''}, ''pydantic_js_extra'': {''nskey'': + ''schema''}}}}, ''model_name'': ''Person'', ''computed_fields'': []}, ''custom_init'': + False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': + {''title'': ''Person''}}, ''ref'': ''dandischema.models_orig.Person:NUMBER'', + ''metadata'': {''pydantic_js_functions'': [>]}, ''type'': ''function-after''}, + ''Organization'': {''function'': {''type'': ''no-info'', ''function'': }, ''schema'': {''type'': + ''model'', ''cls'': , ''schema'': + {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + DandiBaseModel.ensure_schemakey of >}, ''schema'': {''type'': ''literal'', ''expected'': [''Organization'']}, ''type'': ''function-after''}, ''default'': ''Organization'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': @@ -1025,7 +1026,7 @@ slots: ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''roleName'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''list'', ''items_schema'': - {''type'': ''definition-ref'', ''schema_ref'': ''dandischema.models.RoleType:NUMBER''}}}, + {''type'': ''definition-ref'', ''schema_ref'': ''dandischema.models_orig.RoleType:NUMBER''}}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''title'': ''Role'', ''description'': ''Role(s) of the contributor. Multiple roles can be selected.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}, ''includeInCitation'': {''type'': @@ -1040,14 +1041,14 @@ slots: ''Identifier associated with a sponsored or gift award.''}, ''pydantic_js_extra'': {''nskey'': ''dandi''}}}, ''contactPoint'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': - ''list'', ''items_schema'': {''type'': ''model'', ''cls'': , + ''list'', ''items_schema'': {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + DandiBaseModel.ensure_schemakey of >}, ''schema'': {''type'': ''literal'', ''expected'': [''ContactPoint'']}, ''type'': ''function-after''}, ''default'': ''ContactPoint'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''email'': {''type'': @@ -1070,24 +1071,24 @@ slots: information on how to contact.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''ContactPoint'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': - {''title'': ''ContactPoint''}, ''ref'': ''dandischema.models.ContactPoint:NUMBER'', + {''title'': ''ContactPoint''}, ''ref'': ''dandischema.models_orig.ContactPoint:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}}}, ''default'': None}, ''metadata'': - {''pydantic_js_updates'': {''title'': ''Organization contact information'', + of >]}}}}, ''default'': None}, + ''metadata'': {''pydantic_js_updates'': {''title'': ''Organization contact information'', ''description'': ''Contact for the organization''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Organization'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', - ''config'': {''title'': ''Organization''}}, ''ref'': ''dandischema.models.Organization:NUMBER'', + ''config'': {''title'': ''Organization''}}, ''ref'': ''dandischema.models_orig.Organization:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}, ''type'': ''function-after''}, - ''Software'': {''type'': ''model'', ''cls'': , + of >]}, ''type'': ''function-after''}, + ''Software'': {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + DandiBaseModel.ensure_schemakey of >}, ''schema'': {''type'': ''literal'', ''expected'': [''Software'']}, ''type'': ''function-after''}, ''default'': ''Software'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': @@ -1111,17 +1112,17 @@ slots: software.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Software'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Software''}, - ''ref'': ''dandischema.models.Software:NUMBER'', ''metadata'': {''pydantic_js_functions'': - [>]}}, - ''Agent'': {''type'': ''model'', ''cls'': , + ''ref'': ''dandischema.models_orig.Software:NUMBER'', ''metadata'': {''pydantic_js_functions'': + [>]}}, + ''Agent'': {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, ''schema'': - {''type'': ''literal'', ''expected'': [''Agent'']}, ''type'': ''function-after''}, + DandiBaseModel.ensure_schemakey of >}, + ''schema'': {''type'': ''literal'', ''expected'': [''Agent'']}, ''type'': ''function-after''}, ''default'': ''Agent'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': @@ -1140,20 +1141,20 @@ slots: ''metadata'': {''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Agent'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Agent''}, - ''ref'': ''dandischema.models.Agent:NUMBER'', ''metadata'': {''pydantic_js_functions'': - [>]}}}, + ''ref'': ''dandischema.models_orig.Agent:NUMBER'', ''metadata'': {''pydantic_js_functions'': + [>]}}}, ''discriminator'': ''schemaKey'', ''strict'': False, ''from_attributes'': True, ''metadata'': {}}}}, ''default'': None}, ''metadata'': {''pydantic_js_extra'': {''nskey'': ''prov''}}}, ''used'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''list'', - ''items_schema'': {''type'': ''model'', ''cls'': , + ''items_schema'': {''type'': ''model'', ''cls'': , ''schema'': {''type'': ''model-fields'', ''fields'': {''id'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''type'': ''nullable'', ''schema'': {''type'': ''str''}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''Uniform resource identifier''}, ''pydantic_js_extra'': {''readOnly'': True}}}, ''schemaKey'': {''type'': ''model-field'', ''schema'': {''type'': ''default'', ''schema'': {''function'': {''type'': ''no-info'', ''function'': >}, + DandiBaseModel.ensure_schemakey of >}, ''schema'': {''type'': ''literal'', ''expected'': [''Equipment'']}, ''type'': ''function-after''}, ''default'': ''Equipment'', ''validate_default'': True}, ''metadata'': {''pydantic_js_extra'': {''readOnly'': True}}}, ''identifier'': @@ -1169,15 +1170,15 @@ slots: of the equipment.''}, ''pydantic_js_extra'': {''nskey'': ''schema''}}}}, ''model_name'': ''Equipment'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', ''config'': {''title'': ''Equipment''}, - ''ref'': ''dandischema.models.Equipment:NUMBER'', ''metadata'': {''pydantic_js_functions'': - [>]}}}}, + ''ref'': ''dandischema.models_orig.Equipment:NUMBER'', ''metadata'': {''pydantic_js_functions'': + [>]}}}}, ''default'': None}, ''metadata'': {''pydantic_js_updates'': {''description'': ''A listing of equipment used for the activity.''}, ''pydantic_js_extra'': {''nskey'': ''prov''}}}}, ''model_name'': ''PublishActivity'', ''computed_fields'': []}, ''custom_init'': False, ''root_model'': False, ''post_init'': ''model_post_init'', - ''config'': {''title'': ''PublishActivity''}, ''ref'': ''dandischema.models.PublishActivity:NUMBER'', + ''config'': {''title'': ''PublishActivity''}, ''ref'': ''dandischema.models_orig.PublishActivity:NUMBER'', ''metadata'': {''pydantic_js_functions'': [>]}}]}).' + of >]}}]}).' required: true relatedParticipant: range: RelatedParticipant @@ -1213,7 +1214,7 @@ slots: schemaKey: notes: - 'pydantic2linkml: Unable to translate the logic contained in the after validation - function, >.' + function, >.' ifabsent: string(DandiBaseModel) range: string required: false @@ -1257,7 +1258,7 @@ slots: value: notes: - 'pydantic2linkml: Unable to translate the logic contained in the after validation - function, >.' + function, >.' - 'pydantic2linkml: Warning: The translation is incomplete. The union core schema contains a choice of type any. The choice type is yet to be supported. (core schema: {''type'': ''union'', ''choices'': [{''type'': ''any''}, {''type'': diff --git a/pyproject.toml b/pyproject.toml index 686a9566..2bc8fc04 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -72,7 +72,7 @@ dependencies = [ "pydantic2linkml @ git+https://github.com/dandi/pydantic2linkml.git" ] [tool.hatch.envs.linkml-auto-converted.scripts] -2linkml = "pydantic2linkml -l INFO -O dandischema/models_overlay.yaml dandischema.models_orig | sed -e 's,0x[0-9a-ef]*,0xADDRESS,g' -e 's,\\(.\\+\\):[0-9]\\+,\\1:NUMBER,g' > dandischema/models.yaml" +2linkml = "pydantic2linkml -l INFO -O dandischema/models_overlay.yaml dandischema.models_orig | sed -e 's,0x[0-9a-ef]*,0xADDRESS,g' -E -e 's,([^[:space:]]+):[0-9]+,\\1:NUMBER,g' > dandischema/models.yaml" 2pydantic = "gen-pydantic --black dandischema/models.yaml > dandischema/models_linkml.py" [tool.setuptools.packages.find] From 78d6899f97fe4fb94f62c5142e9335abda8e86c9 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 22:13:16 +0000 Subject: [PATCH 15/25] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- dandischema/models_linkml.py | 1263 +++++++++++++++++++++++++--------- 1 file changed, 945 insertions(+), 318 deletions(-) diff --git a/dandischema/models_linkml.py b/dandischema/models_linkml.py index 2a01d944..84bbe315 100644 --- a/dandischema/models_linkml.py +++ b/dandischema/models_linkml.py @@ -1,10 +1,10 @@ from __future__ import annotations -import re -import sys from datetime import date, datetime, time from decimal import Decimal from enum import Enum +import re +import sys from typing import Any, ClassVar, Literal, Optional, Union from pydantic import ( @@ -60,29 +60,92 @@ def __contains__(self, key: str) -> bool: "imports": ["linkml:types"], "name": "dandi-schema", "prefixes": { - "DANDI": {"prefix_prefix": "DANDI", "prefix_reference": "http://dandiarchive.org/dandiset/"}, - "ORCID": {"prefix_prefix": "ORCID", "prefix_reference": "https://orcid.org/"}, - "PATO": {"prefix_prefix": "PATO", "prefix_reference": "http://purl.obolibrary.org/obo/PATO_"}, + "DANDI": { + "prefix_prefix": "DANDI", + "prefix_reference": "http://dandiarchive.org/dandiset/", + }, + "ORCID": { + "prefix_prefix": "ORCID", + "prefix_reference": "https://orcid.org/", + }, + "PATO": { + "prefix_prefix": "PATO", + "prefix_reference": "http://purl.obolibrary.org/obo/PATO_", + }, "ROR": {"prefix_prefix": "ROR", "prefix_reference": "https://ror.org/"}, - "RRID": {"prefix_prefix": "RRID", "prefix_reference": "https://scicrunch.org/resolver/RRID:"}, - "dandi": {"prefix_prefix": "dandi", "prefix_reference": "http://schema.dandiarchive.org/"}, - "dandiasset": {"prefix_prefix": "dandiasset", "prefix_reference": "http://dandiarchive.org/asset/"}, - "dcite": {"prefix_prefix": "dcite", "prefix_reference": "http://schema.dandiarchive.org/datacite/"}, - "dct": {"prefix_prefix": "dct", "prefix_reference": "http://purl.org/dc/terms/"}, - "linkml": {"prefix_prefix": "linkml", "prefix_reference": "https://w3id.org/linkml/"}, - "nidm": {"prefix_prefix": "nidm", "prefix_reference": "http://purl.org/nidash/nidm#"}, - "owl": {"prefix_prefix": "owl", "prefix_reference": "http://www.w3.org/2002/07/owl#"}, + "RRID": { + "prefix_prefix": "RRID", + "prefix_reference": "https://scicrunch.org/resolver/RRID:", + }, + "dandi": { + "prefix_prefix": "dandi", + "prefix_reference": "http://schema.dandiarchive.org/", + }, + "dandiasset": { + "prefix_prefix": "dandiasset", + "prefix_reference": "http://dandiarchive.org/asset/", + }, + "dcite": { + "prefix_prefix": "dcite", + "prefix_reference": "http://schema.dandiarchive.org/datacite/", + }, + "dct": { + "prefix_prefix": "dct", + "prefix_reference": "http://purl.org/dc/terms/", + }, + "linkml": { + "prefix_prefix": "linkml", + "prefix_reference": "https://w3id.org/linkml/", + }, + "nidm": { + "prefix_prefix": "nidm", + "prefix_reference": "http://purl.org/nidash/nidm#", + }, + "owl": { + "prefix_prefix": "owl", + "prefix_reference": "http://www.w3.org/2002/07/owl#", + }, "pav": {"prefix_prefix": "pav", "prefix_reference": "http://purl.org/pav/"}, - "prov": {"prefix_prefix": "prov", "prefix_reference": "http://www.w3.org/ns/prov#"}, - "rdf": {"prefix_prefix": "rdf", "prefix_reference": "http://www.w3.org/1999/02/22-rdf-syntax-ns#"}, - "rdfa": {"prefix_prefix": "rdfa", "prefix_reference": "http://www.w3.org/ns/rdfa#"}, - "rdfs": {"prefix_prefix": "rdfs", "prefix_reference": "http://www.w3.org/2000/01/rdf-schema#"}, - "rs": {"prefix_prefix": "rs", "prefix_reference": "http://schema.repronim.org/"}, - "schema": {"prefix_prefix": "schema", "prefix_reference": "http://schema.org/"}, - "skos": {"prefix_prefix": "skos", "prefix_reference": "http://www.w3.org/2004/02/skos/core#"}, - "spdx": {"prefix_prefix": "spdx", "prefix_reference": "http://spdx.org/licenses/"}, - "uuid": {"prefix_prefix": "uuid", "prefix_reference": "http://uuid.repronim.org/"}, - "xsd": {"prefix_prefix": "xsd", "prefix_reference": "http://www.w3.org/2001/XMLSchema#"}, + "prov": { + "prefix_prefix": "prov", + "prefix_reference": "http://www.w3.org/ns/prov#", + }, + "rdf": { + "prefix_prefix": "rdf", + "prefix_reference": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + }, + "rdfa": { + "prefix_prefix": "rdfa", + "prefix_reference": "http://www.w3.org/ns/rdfa#", + }, + "rdfs": { + "prefix_prefix": "rdfs", + "prefix_reference": "http://www.w3.org/2000/01/rdf-schema#", + }, + "rs": { + "prefix_prefix": "rs", + "prefix_reference": "http://schema.repronim.org/", + }, + "schema": { + "prefix_prefix": "schema", + "prefix_reference": "http://schema.org/", + }, + "skos": { + "prefix_prefix": "skos", + "prefix_reference": "http://www.w3.org/2004/02/skos/core#", + }, + "spdx": { + "prefix_prefix": "spdx", + "prefix_reference": "http://spdx.org/licenses/", + }, + "uuid": { + "prefix_prefix": "uuid", + "prefix_reference": "http://uuid.repronim.org/", + }, + "xsd": { + "prefix_prefix": "xsd", + "prefix_reference": "http://www.w3.org/2001/XMLSchema#", + }, }, "source_file": "dandischema/models.yaml", "status": "eunal:concept-status/DRAFT", @@ -270,9 +333,14 @@ class RoleType(str, Enum): class DandiBaseModel(ConfiguredBaseModel): - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7"}) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( + {"from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7"} + ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -309,19 +377,37 @@ class AccessRequirements(DandiBaseModel): contactPoint: Optional[ContactPoint] = Field( default=None, - json_schema_extra={"linkml_meta": {"domain_of": ["AccessRequirements", "EthicsApproval", "Organization"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["AccessRequirements", "EthicsApproval", "Organization"] + } + }, ) description: Optional[str] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AccessRequirements", "Activity", "CommonModel", "Equipment"]} + "linkml_meta": { + "domain_of": [ + "AccessRequirements", + "Activity", + "CommonModel", + "Equipment", + ] + } }, ) embargoedUntil: Optional[date] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AccessRequirements"]}} + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["AccessRequirements"]}}, + ) + status: AccessType = Field( + default=..., + json_schema_extra={"linkml_meta": {"domain_of": ["AccessRequirements"]}}, + ) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) - status: AccessType = Field(default=..., json_schema_extra={"linkml_meta": {"domain_of": ["AccessRequirements"]}}) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -354,7 +440,11 @@ class Activity(DandiBaseModel): "['ifabsent', 'notes', 'range'] ." ], "slot_usage": { - "identifier": {"name": "identifier", "range": "string", "required": False}, + "identifier": { + "name": "identifier", + "range": "string", + "required": False, + }, "name": { "name": "name", "notes": [ @@ -374,7 +464,14 @@ class Activity(DandiBaseModel): description: Optional[str] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AccessRequirements", "Activity", "CommonModel", "Equipment"]} + "linkml_meta": { + "domain_of": [ + "AccessRequirements", + "Activity", + "CommonModel", + "Equipment", + ] + } }, ) endDate: Optional[datetime] = Field( @@ -455,37 +552,42 @@ class Activity(DandiBaseModel): used: Optional[list[Equipment]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} ) - wasAssociatedWith: Optional[list[Union[Agent, Organization, Person, Software]]] = Field( + wasAssociatedWith: Optional[list[Union[Agent, Organization, Person, Software]]] = ( + Field( + default=None, + json_schema_extra={ + "linkml_meta": { + "any_of": [ + { + "notes": [ + "pydantic2linkml: Unable to translate the logic " + "contained in the after validation function, ." + ], + "range": "Person", + }, + { + "notes": [ + "pydantic2linkml: Unable to translate the logic " + "contained in the after validation function, ." + ], + "range": "Organization", + }, + {"range": "Software"}, + {"range": "Agent"}, + ], + "domain_of": ["Activity"], + } + }, + ) + ) + id: Optional[str] = Field( default=None, - json_schema_extra={ - "linkml_meta": { - "any_of": [ - { - "notes": [ - "pydantic2linkml: Unable to translate the logic " - "contained in the after validation function, ." - ], - "range": "Person", - }, - { - "notes": [ - "pydantic2linkml: Unable to translate the logic " - "contained in the after validation function, ." - ], - "range": "Organization", - }, - {"range": "Software"}, - {"range": "Agent"}, - ], - "domain_of": ["Activity"], - } - }, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -582,7 +684,10 @@ class Affiliation(DandiBaseModel): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -624,7 +729,11 @@ class Agent(DandiBaseModel): "['ifabsent', 'notes', 'range'] ." ], "slot_usage": { - "identifier": {"name": "identifier", "range": "string", "required": False}, + "identifier": { + "name": "identifier", + "range": "string", + "required": False, + }, "name": {"name": "name", "required": True}, "url": { "name": "url", @@ -706,7 +815,10 @@ class Agent(DandiBaseModel): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -749,7 +861,10 @@ class Allele(DandiBaseModel): ], "slot_usage": { "identifier": { - "any_of": [{"range": "string"}, {"multivalued": True, "range": "string"}], + "any_of": [ + {"range": "string"}, + {"multivalued": True, "range": "string"}, + ], "name": "identifier", "range": "Any", "required": True, @@ -758,13 +873,20 @@ class Allele(DandiBaseModel): } ) - alleleSymbol: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Allele"]}}) - alleleType: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Allele"]}}) + alleleSymbol: Optional[str] = Field( + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Allele"]}} + ) + alleleType: Optional[str] = Field( + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Allele"]}} + ) identifier: str = Field( default=..., json_schema_extra={ "linkml_meta": { - "any_of": [{"range": "string"}, {"multivalued": True, "range": "string"}], + "any_of": [ + {"range": "string"}, + {"multivalued": True, "range": "string"}, + ], "domain_of": [ "Activity", "Affiliation", @@ -786,7 +908,10 @@ class Allele(DandiBaseModel): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -826,32 +951,55 @@ class AssetsSummary(DandiBaseModel): ) approach: Optional[list[ApproachType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + }, ) dataStandard: Optional[list[StandardsType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary"]}} + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary"]}}, ) measurementTechnique: Optional[list[MeasurementTechniqueType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + }, + ) + numberOfBytes: int = Field( + default=..., json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary"]}} ) - numberOfBytes: int = Field(default=..., json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary"]}}) numberOfCells: Optional[int] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary"]}} + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary"]}}, + ) + numberOfFiles: int = Field( + default=..., json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary"]}} ) - numberOfFiles: int = Field(default=..., json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary"]}}) numberOfSamples: Optional[int] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary"]}} + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary"]}}, ) numberOfSubjects: Optional[int] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary"]}} + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary"]}}, ) species: Optional[list[SpeciesType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary", "Participant"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["AssetsSummary", "Participant"]} + }, ) variableMeasured: Optional[list[str]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + }, + ) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -899,7 +1047,10 @@ class BaseType(DandiBaseModel): "pattern": "^(?i:http|https)://[^\\s]+$", "range": "uri", }, - {"pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", "range": "string"}, + { + "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", + "range": "string", + }, ], "name": "identifier", "range": "Any", @@ -936,7 +1087,10 @@ class BaseType(DandiBaseModel): "pattern": "^(?i:http|https)://[^\\s]+$", "range": "uri", }, - {"pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", "range": "string"}, + { + "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", + "range": "string", + }, ], "domain_of": [ "Activity", @@ -983,7 +1137,10 @@ class BaseType(DandiBaseModel): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -1046,7 +1203,10 @@ class Anatomy(BaseType): "pattern": "^(?i:http|https)://[^\\s]+$", "range": "uri", }, - {"pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", "range": "string"}, + { + "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", + "range": "string", + }, ], "domain_of": [ "Activity", @@ -1093,7 +1253,10 @@ class Anatomy(BaseType): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -1156,7 +1319,10 @@ class ApproachType(BaseType): "pattern": "^(?i:http|https)://[^\\s]+$", "range": "uri", }, - {"pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", "range": "string"}, + { + "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", + "range": "string", + }, ], "domain_of": [ "Activity", @@ -1203,7 +1369,10 @@ class ApproachType(BaseType): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -1266,7 +1435,10 @@ class AssayType(BaseType): "pattern": "^(?i:http|https)://[^\\s]+$", "range": "uri", }, - {"pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", "range": "string"}, + { + "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", + "range": "string", + }, ], "domain_of": [ "Activity", @@ -1313,7 +1485,10 @@ class AssayType(BaseType): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -1359,7 +1534,11 @@ class BioSample(DandiBaseModel): "['ifabsent', 'notes', 'range'] ." ], "slot_usage": { - "identifier": {"name": "identifier", "range": "string", "required": True}, + "identifier": { + "name": "identifier", + "range": "string", + "required": True, + }, "sameAs": {"name": "sameAs", "range": "string"}, }, } @@ -1401,16 +1580,27 @@ class BioSample(DandiBaseModel): ) sameAs: Optional[list[str]] = Field( default=None, - json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample", "Dandiset", "Participant"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["BareAsset", "BioSample", "Dandiset", "Participant"] + } + }, + ) + sampleType: SampleType = Field( + default=..., json_schema_extra={"linkml_meta": {"domain_of": ["BioSample"]}} ) - sampleType: SampleType = Field(default=..., json_schema_extra={"linkml_meta": {"domain_of": ["BioSample"]}}) wasAttributedTo: Optional[list[Participant]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}} + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}}, ) wasDerivedFrom: Optional[list[BioSample]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}} + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}}, + ) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -1482,7 +1672,11 @@ class CommonModel(DandiBaseModel): default=None, json_schema_extra={ "linkml_meta": { - "any_of": [{"range": "Disorder"}, {"range": "Anatomy"}, {"range": "GenericType"}], + "any_of": [ + {"range": "Disorder"}, + {"range": "Anatomy"}, + {"range": "GenericType"}, + ], "domain_of": ["CommonModel"], } }, @@ -1536,7 +1730,14 @@ class CommonModel(DandiBaseModel): description: Optional[str] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AccessRequirements", "Activity", "CommonModel", "Equipment"]} + "linkml_meta": { + "domain_of": [ + "AccessRequirements", + "Activity", + "CommonModel", + "Equipment", + ] + } }, ) ethicsApproval: Optional[list[EthicsApproval]] = Field( @@ -1614,7 +1815,10 @@ class CommonModel(DandiBaseModel): }, ) schemaVersion: Optional[str] = Field( - default="0.7.0", json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)"}} + default="0.7.0", + json_schema_extra={ + "linkml_meta": {"domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)"} + }, ) studyTarget: Optional[list[str]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} @@ -1642,9 +1846,15 @@ class CommonModel(DandiBaseModel): }, ) wasGeneratedBy: Optional[list[Activity]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]} + }, + ) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -1749,13 +1959,19 @@ class BareAsset(CommonModel): "pattern": "^(?i:http|https)://[^\\s]+$", "range": "uri", }, - "variableMeasured": {"name": "variableMeasured", "range": "PropertyValue"}, + "variableMeasured": { + "name": "variableMeasured", + "range": "PropertyValue", + }, }, } ) approach: Optional[list[ApproachType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + }, ) blobDateModified: Optional[datetime] = Field( default=None, @@ -1823,7 +2039,8 @@ class BareAsset(CommonModel): "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >.", - "pydantic2linkml: Warning: The translation is incomplete. `dict` " "types are yet to be supported.", + "pydantic2linkml: Warning: The translation is incomplete. `dict` " + "types are yet to be supported.", ], } }, @@ -1850,9 +2067,14 @@ class BareAsset(CommonModel): }, ) measurementTechnique: Optional[list[MeasurementTechniqueType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + }, + ) + path: str = Field( + default=..., json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset"]}} ) - path: str = Field(default=..., json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset"]}}) sameAs: Optional[list[str]] = Field( default=None, json_schema_extra={ @@ -1868,19 +2090,28 @@ class BareAsset(CommonModel): }, ) variableMeasured: Optional[list[PropertyValue]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + }, ) wasAttributedTo: Optional[list[Participant]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}} + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}}, ) wasDerivedFrom: Optional[list[BioSample]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}} + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}}, ) about: Optional[list[Union[Anatomy, Disorder, GenericType]]] = Field( default=None, json_schema_extra={ "linkml_meta": { - "any_of": [{"range": "Disorder"}, {"range": "Anatomy"}, {"range": "GenericType"}], + "any_of": [ + {"range": "Disorder"}, + {"range": "Anatomy"}, + {"range": "GenericType"}, + ], "domain_of": ["CommonModel"], } }, @@ -1934,7 +2165,14 @@ class BareAsset(CommonModel): description: Optional[str] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AccessRequirements", "Activity", "CommonModel", "Equipment"]} + "linkml_meta": { + "domain_of": [ + "AccessRequirements", + "Activity", + "CommonModel", + "Equipment", + ] + } }, ) ethicsApproval: Optional[list[EthicsApproval]] = Field( @@ -2012,7 +2250,10 @@ class BareAsset(CommonModel): }, ) schemaVersion: Optional[str] = Field( - default="0.7.0", json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)"}} + default="0.7.0", + json_schema_extra={ + "linkml_meta": {"domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)"} + }, ) studyTarget: Optional[list[str]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} @@ -2040,9 +2281,15 @@ class BareAsset(CommonModel): }, ) wasGeneratedBy: Optional[list[Activity]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]} + }, + ) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -2202,7 +2449,10 @@ class Asset(BareAsset): }, ) approach: Optional[list[ApproachType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + }, ) blobDateModified: Optional[datetime] = Field( default=None, @@ -2270,7 +2520,8 @@ class Asset(BareAsset): "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >.", - "pydantic2linkml: Warning: The translation is incomplete. `dict` " "types are yet to be supported.", + "pydantic2linkml: Warning: The translation is incomplete. `dict` " + "types are yet to be supported.", ], } }, @@ -2297,9 +2548,14 @@ class Asset(BareAsset): }, ) measurementTechnique: Optional[list[MeasurementTechniqueType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + }, + ) + path: str = Field( + default=..., json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset"]}} ) - path: str = Field(default=..., json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset"]}}) sameAs: Optional[list[str]] = Field( default=None, json_schema_extra={ @@ -2315,19 +2571,28 @@ class Asset(BareAsset): }, ) variableMeasured: Optional[list[PropertyValue]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + }, ) wasAttributedTo: Optional[list[Participant]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}} + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}}, ) wasDerivedFrom: Optional[list[BioSample]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}} + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}}, ) about: Optional[list[Union[Anatomy, Disorder, GenericType]]] = Field( default=None, json_schema_extra={ "linkml_meta": { - "any_of": [{"range": "Disorder"}, {"range": "Anatomy"}, {"range": "GenericType"}], + "any_of": [ + {"range": "Disorder"}, + {"range": "Anatomy"}, + {"range": "GenericType"}, + ], "domain_of": ["CommonModel"], } }, @@ -2381,7 +2646,14 @@ class Asset(BareAsset): description: Optional[str] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AccessRequirements", "Activity", "CommonModel", "Equipment"]} + "linkml_meta": { + "domain_of": [ + "AccessRequirements", + "Activity", + "CommonModel", + "Equipment", + ] + } }, ) ethicsApproval: Optional[list[EthicsApproval]] = Field( @@ -2459,7 +2731,10 @@ class Asset(BareAsset): }, ) schemaVersion: Optional[str] = Field( - default="0.7.0", json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)"}} + default="0.7.0", + json_schema_extra={ + "linkml_meta": {"domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)"} + }, ) studyTarget: Optional[list[str]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} @@ -2487,9 +2762,15 @@ class Asset(BareAsset): }, ) wasGeneratedBy: Optional[list[Activity]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]} + }, + ) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -2673,7 +2954,10 @@ class ContactPoint(DandiBaseModel): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -2715,7 +2999,11 @@ class Contributor(DandiBaseModel): "['ifabsent', 'notes', 'range'] ." ], "slot_usage": { - "identifier": {"name": "identifier", "range": "string", "required": False}, + "identifier": { + "name": "identifier", + "range": "string", + "required": False, + }, "name": {"name": "name", "required": False}, "url": { "name": "url", @@ -2731,7 +3019,9 @@ class Contributor(DandiBaseModel): } ) - awardNumber: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"]}}) + awardNumber: Optional[str] = Field( + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"]}} + ) email: Optional[str] = Field( default=None, json_schema_extra={ @@ -2771,7 +3061,10 @@ class Contributor(DandiBaseModel): }, ) includeInCitation: Optional[bool] = Field( - default=True, json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"], "ifabsent": "True"}} + default=True, + json_schema_extra={ + "linkml_meta": {"domain_of": ["Contributor"], "ifabsent": "True"} + }, ) name: Optional[str] = Field( default=None, @@ -2817,7 +3110,10 @@ class Contributor(DandiBaseModel): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -2901,8 +3197,12 @@ class Dandiset(CommonModel): } ) - assetsSummary: AssetsSummary = Field(default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}}) - citation: str = Field(default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}}) + assetsSummary: AssetsSummary = Field( + default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}} + ) + citation: str = Field( + default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}} + ) dateCreated: Optional[datetime] = Field( default=None, json_schema_extra={ @@ -2971,14 +3271,25 @@ class Dandiset(CommonModel): ) sameAs: Optional[list[str]] = Field( default=None, - json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample", "Dandiset", "Participant"]}}, - ) - version: str = Field(default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset", "Software"]}}) - about: Optional[list[Union[Anatomy, Disorder, GenericType]]] = Field( + json_schema_extra={ + "linkml_meta": { + "domain_of": ["BareAsset", "BioSample", "Dandiset", "Participant"] + } + }, + ) + version: str = Field( + default=..., + json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset", "Software"]}}, + ) + about: Optional[list[Union[Anatomy, Disorder, GenericType]]] = Field( default=None, json_schema_extra={ "linkml_meta": { - "any_of": [{"range": "Disorder"}, {"range": "Anatomy"}, {"range": "GenericType"}], + "any_of": [ + {"range": "Disorder"}, + {"range": "Anatomy"}, + {"range": "GenericType"}, + ], "domain_of": ["CommonModel"], } }, @@ -3032,7 +3343,14 @@ class Dandiset(CommonModel): description: Optional[str] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AccessRequirements", "Activity", "CommonModel", "Equipment"]} + "linkml_meta": { + "domain_of": [ + "AccessRequirements", + "Activity", + "CommonModel", + "Equipment", + ] + } }, ) ethicsApproval: Optional[list[EthicsApproval]] = Field( @@ -3110,7 +3428,10 @@ class Dandiset(CommonModel): }, ) schemaVersion: Optional[str] = Field( - default="0.7.0", json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)"}} + default="0.7.0", + json_schema_extra={ + "linkml_meta": {"domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)"} + }, ) studyTarget: Optional[list[str]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} @@ -3138,9 +3459,15 @@ class Dandiset(CommonModel): }, ) wasGeneratedBy: Optional[list[Activity]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]} + }, + ) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -3185,7 +3512,9 @@ def pattern_manifestLocation(cls, v): @field_validator("sameAs") def pattern_sameAs(cls, v): - pattern = re.compile(r"^dandi://[A-Z][-A-Z]*/\d{6}(@(draft|\d+\.\d+\.\d+))?(/\S+)?$") + pattern = re.compile( + r"^dandi://[A-Z][-A-Z]*/\d{6}(@(draft|\d+\.\d+\.\d+))?(/\S+)?$" + ) if isinstance(v, list): for element in v: if isinstance(element, str) and not pattern.match(element): @@ -3300,7 +3629,10 @@ class Disorder(BaseType): "pattern": "^(?i:http|https)://[^\\s]+$", "range": "uri", }, - {"pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", "range": "string"}, + { + "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", + "range": "string", + }, ], "domain_of": [ "Activity", @@ -3347,7 +3679,10 @@ class Disorder(BaseType): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -3389,7 +3724,11 @@ class Equipment(DandiBaseModel): "['ifabsent', 'notes', 'range'] ." ], "slot_usage": { - "identifier": {"name": "identifier", "range": "string", "required": False}, + "identifier": { + "name": "identifier", + "range": "string", + "required": False, + }, "name": { "name": "name", "notes": [ @@ -3409,7 +3748,14 @@ class Equipment(DandiBaseModel): description: Optional[str] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AccessRequirements", "Activity", "CommonModel", "Equipment"]} + "linkml_meta": { + "domain_of": [ + "AccessRequirements", + "Activity", + "CommonModel", + "Equipment", + ] + } }, ) identifier: Optional[str] = Field( @@ -3461,7 +3807,10 @@ class Equipment(DandiBaseModel): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -3506,13 +3855,23 @@ class EthicsApproval(DandiBaseModel): "the EthicsApproval Pydantic model has changes in value in meta " "slots: ['ifabsent', 'notes', 'range'] ." ], - "slot_usage": {"identifier": {"name": "identifier", "range": "string", "required": True}}, + "slot_usage": { + "identifier": { + "name": "identifier", + "range": "string", + "required": True, + } + }, } ) contactPoint: Optional[ContactPoint] = Field( default=None, - json_schema_extra={"linkml_meta": {"domain_of": ["AccessRequirements", "EthicsApproval", "Organization"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["AccessRequirements", "EthicsApproval", "Organization"] + } + }, ) identifier: str = Field( default=..., @@ -3539,7 +3898,10 @@ class EthicsApproval(DandiBaseModel): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -3589,7 +3951,10 @@ class GenericType(BaseType): "pattern": "^(?i:http|https)://[^\\s]+$", "range": "uri", }, - {"pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", "range": "string"}, + { + "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", + "range": "string", + }, ], "domain_of": [ "Activity", @@ -3636,7 +4001,10 @@ class GenericType(BaseType): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -3677,16 +4045,28 @@ class GenotypeInfo(DandiBaseModel): "the GenotypeInfo Pydantic model has changes in value in meta " "slots: ['ifabsent', 'notes', 'range'] ." ], - "slot_usage": {"wasGeneratedBy": {"name": "wasGeneratedBy", "range": "Session"}}, + "slot_usage": { + "wasGeneratedBy": {"name": "wasGeneratedBy", "range": "Session"} + }, } ) - alleles: list[Allele] = Field(default=..., json_schema_extra={"linkml_meta": {"domain_of": ["GenotypeInfo"]}}) - locus: Locus = Field(default=..., json_schema_extra={"linkml_meta": {"domain_of": ["GenotypeInfo"]}}) + alleles: list[Allele] = Field( + default=..., json_schema_extra={"linkml_meta": {"domain_of": ["GenotypeInfo"]}} + ) + locus: Locus = Field( + default=..., json_schema_extra={"linkml_meta": {"domain_of": ["GenotypeInfo"]}} + ) wasGeneratedBy: Optional[list[Session]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]} + }, + ) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -3716,7 +4096,10 @@ class Locus(DandiBaseModel): ], "slot_usage": { "identifier": { - "any_of": [{"range": "string"}, {"multivalued": True, "range": "string"}], + "any_of": [ + {"range": "string"}, + {"multivalued": True, "range": "string"}, + ], "name": "identifier", "range": "Any", "required": True, @@ -3729,7 +4112,10 @@ class Locus(DandiBaseModel): default=..., json_schema_extra={ "linkml_meta": { - "any_of": [{"range": "string"}, {"multivalued": True, "range": "string"}], + "any_of": [ + {"range": "string"}, + {"multivalued": True, "range": "string"}, + ], "domain_of": [ "Activity", "Affiliation", @@ -3751,8 +4137,13 @@ class Locus(DandiBaseModel): } }, ) - locusType: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Locus"]}}) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + locusType: Optional[str] = Field( + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Locus"]}} + ) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -3802,7 +4193,10 @@ class MeasurementTechniqueType(BaseType): "pattern": "^(?i:http|https)://[^\\s]+$", "range": "uri", }, - {"pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", "range": "string"}, + { + "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", + "range": "string", + }, ], "domain_of": [ "Activity", @@ -3849,7 +4243,10 @@ class MeasurementTechniqueType(BaseType): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -3896,16 +4293,25 @@ class Organization(Contributor): ], "slot_usage": { "contactPoint": {"multivalued": True, "name": "contactPoint"}, - "identifier": {"name": "identifier", "pattern": "^https://ror.org/[a-z0-9]+$"}, + "identifier": { + "name": "identifier", + "pattern": "^https://ror.org/[a-z0-9]+$", + }, }, } ) contactPoint: Optional[list[ContactPoint]] = Field( default=None, - json_schema_extra={"linkml_meta": {"domain_of": ["AccessRequirements", "EthicsApproval", "Organization"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["AccessRequirements", "EthicsApproval", "Organization"] + } + }, + ) + awardNumber: Optional[str] = Field( + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"]}} ) - awardNumber: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"]}}) email: Optional[str] = Field( default=None, json_schema_extra={ @@ -3945,7 +4351,10 @@ class Organization(Contributor): }, ) includeInCitation: Optional[bool] = Field( - default=True, json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"], "ifabsent": "True"}} + default=True, + json_schema_extra={ + "linkml_meta": {"domain_of": ["Contributor"], "ifabsent": "True"} + }, ) name: Optional[str] = Field( default=None, @@ -3991,7 +4400,10 @@ class Organization(Contributor): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -4050,7 +4462,11 @@ class Participant(DandiBaseModel): "['ifabsent', 'notes', 'range'] ." ], "slot_usage": { - "identifier": {"name": "identifier", "range": "string", "required": True}, + "identifier": { + "name": "identifier", + "range": "string", + "required": True, + }, "sameAs": {"name": "sameAs", "range": "string"}, }, } @@ -4062,7 +4478,9 @@ class Participant(DandiBaseModel): altName: Optional[list[str]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}} ) - cellLine: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}}) + cellLine: Optional[str] = Field( + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}} + ) disorder: Optional[list[Disorder]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}} ) @@ -4070,7 +4488,10 @@ class Participant(DandiBaseModel): default=None, json_schema_extra={ "linkml_meta": { - "any_of": [{"multivalued": True, "range": "GenotypeInfo"}, {"range": "string"}], + "any_of": [ + {"multivalued": True, "range": "GenotypeInfo"}, + {"range": "string"}, + ], "domain_of": ["Participant"], } }, @@ -4105,11 +4526,20 @@ class Participant(DandiBaseModel): ) sameAs: Optional[list[str]] = Field( default=None, - json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample", "Dandiset", "Participant"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["BareAsset", "BioSample", "Dandiset", "Participant"] + } + }, + ) + sex: Optional[SexType] = Field( + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}} ) - sex: Optional[SexType] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}}) species: Optional[SpeciesType] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary", "Participant"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["AssetsSummary", "Participant"]} + }, ) strain: Optional[StrainType] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}} @@ -4127,7 +4557,10 @@ class Participant(DandiBaseModel): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -4158,14 +4591,21 @@ class Person(Contributor): "the Person Pydantic model has changes in value in meta slots: " "['any_of', 'ifabsent', 'notes'] .", ], - "slot_usage": {"identifier": {"name": "identifier", "pattern": "^\\d{4}-\\d{4}-\\d{4}-(\\d{3}X|\\d{4})$"}}, + "slot_usage": { + "identifier": { + "name": "identifier", + "pattern": "^\\d{4}-\\d{4}-\\d{4}-(\\d{3}X|\\d{4})$", + } + }, } ) affiliation: Optional[list[Affiliation]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Person"]}} ) - awardNumber: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"]}}) + awardNumber: Optional[str] = Field( + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"]}} + ) email: Optional[str] = Field( default=None, json_schema_extra={ @@ -4205,7 +4645,10 @@ class Person(Contributor): }, ) includeInCitation: Optional[bool] = Field( - default=True, json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"], "ifabsent": "True"}} + default=True, + json_schema_extra={ + "linkml_meta": {"domain_of": ["Contributor"], "ifabsent": "True"} + }, ) name: Optional[str] = Field( default=None, @@ -4251,7 +4694,10 @@ class Person(Contributor): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -4311,7 +4757,14 @@ class Project(Activity): description: Optional[str] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AccessRequirements", "Activity", "CommonModel", "Equipment"]} + "linkml_meta": { + "domain_of": [ + "AccessRequirements", + "Activity", + "CommonModel", + "Equipment", + ] + } }, ) endDate: Optional[datetime] = Field( @@ -4392,37 +4845,42 @@ class Project(Activity): used: Optional[list[Equipment]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} ) - wasAssociatedWith: Optional[list[Union[Agent, Organization, Person, Software]]] = Field( + wasAssociatedWith: Optional[list[Union[Agent, Organization, Person, Software]]] = ( + Field( + default=None, + json_schema_extra={ + "linkml_meta": { + "any_of": [ + { + "notes": [ + "pydantic2linkml: Unable to translate the logic " + "contained in the after validation function, ." + ], + "range": "Person", + }, + { + "notes": [ + "pydantic2linkml: Unable to translate the logic " + "contained in the after validation function, ." + ], + "range": "Organization", + }, + {"range": "Software"}, + {"range": "Agent"}, + ], + "domain_of": ["Activity"], + } + }, + ) + ) + id: Optional[str] = Field( default=None, - json_schema_extra={ - "linkml_meta": { - "any_of": [ - { - "notes": [ - "pydantic2linkml: Unable to translate the logic " - "contained in the after validation function, ." - ], - "range": "Person", - }, - { - "notes": [ - "pydantic2linkml: Unable to translate the logic " - "contained in the after validation function, ." - ], - "range": "Organization", - }, - {"range": "Software"}, - {"range": "Agent"}, - ], - "domain_of": ["Activity"], - } - }, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -4513,7 +4971,10 @@ class PropertyValue(DandiBaseModel): } }, ) - unitText: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["PropertyValue"]}}) + unitText: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["PropertyValue"]}}, + ) value: Optional[Any] = Field( default=None, json_schema_extra={ @@ -4530,9 +4991,13 @@ class PropertyValue(DandiBaseModel): }, ) valueReference: Optional[PropertyValue] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["PropertyValue"]}} + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["PropertyValue"]}}, + ) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -4597,7 +5062,10 @@ class Publishable(DandiBaseModel): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -4631,7 +5099,14 @@ class PublishActivity(Activity): description: Optional[str] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AccessRequirements", "Activity", "CommonModel", "Equipment"]} + "linkml_meta": { + "domain_of": [ + "AccessRequirements", + "Activity", + "CommonModel", + "Equipment", + ] + } }, ) endDate: Optional[datetime] = Field( @@ -4712,37 +5187,42 @@ class PublishActivity(Activity): used: Optional[list[Equipment]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} ) - wasAssociatedWith: Optional[list[Union[Agent, Organization, Person, Software]]] = Field( + wasAssociatedWith: Optional[list[Union[Agent, Organization, Person, Software]]] = ( + Field( + default=None, + json_schema_extra={ + "linkml_meta": { + "any_of": [ + { + "notes": [ + "pydantic2linkml: Unable to translate the logic " + "contained in the after validation function, ." + ], + "range": "Person", + }, + { + "notes": [ + "pydantic2linkml: Unable to translate the logic " + "contained in the after validation function, ." + ], + "range": "Organization", + }, + {"range": "Software"}, + {"range": "Agent"}, + ], + "domain_of": ["Activity"], + } + }, + ) + ) + id: Optional[str] = Field( default=None, - json_schema_extra={ - "linkml_meta": { - "any_of": [ - { - "notes": [ - "pydantic2linkml: Unable to translate the logic " - "contained in the after validation function, ." - ], - "range": "Person", - }, - { - "notes": [ - "pydantic2linkml: Unable to translate the logic " - "contained in the after validation function, ." - ], - "range": "Organization", - }, - {"range": "Software"}, - {"range": "Agent"}, - ], - "domain_of": ["Activity"], - } - }, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -4870,7 +5350,10 @@ class PublishedAsset(Publishable, Asset): }, ) approach: Optional[list[ApproachType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + }, ) blobDateModified: Optional[datetime] = Field( default=None, @@ -4938,7 +5421,8 @@ class PublishedAsset(Publishable, Asset): "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >.", - "pydantic2linkml: Warning: The translation is incomplete. `dict` " "types are yet to be supported.", + "pydantic2linkml: Warning: The translation is incomplete. `dict` " + "types are yet to be supported.", ], } }, @@ -4965,9 +5449,14 @@ class PublishedAsset(Publishable, Asset): }, ) measurementTechnique: Optional[list[MeasurementTechniqueType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + }, + ) + path: str = Field( + default=..., json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset"]}} ) - path: str = Field(default=..., json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset"]}}) sameAs: Optional[list[str]] = Field( default=None, json_schema_extra={ @@ -4983,19 +5472,28 @@ class PublishedAsset(Publishable, Asset): }, ) variableMeasured: Optional[list[PropertyValue]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + }, ) wasAttributedTo: Optional[list[Participant]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}} + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}}, ) wasDerivedFrom: Optional[list[BioSample]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}} + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}}, ) about: Optional[list[Union[Anatomy, Disorder, GenericType]]] = Field( default=None, json_schema_extra={ "linkml_meta": { - "any_of": [{"range": "Disorder"}, {"range": "Anatomy"}, {"range": "GenericType"}], + "any_of": [ + {"range": "Disorder"}, + {"range": "Anatomy"}, + {"range": "GenericType"}, + ], "domain_of": ["CommonModel"], } }, @@ -5049,7 +5547,14 @@ class PublishedAsset(Publishable, Asset): description: Optional[str] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AccessRequirements", "Activity", "CommonModel", "Equipment"]} + "linkml_meta": { + "domain_of": [ + "AccessRequirements", + "Activity", + "CommonModel", + "Equipment", + ] + } }, ) ethicsApproval: Optional[list[EthicsApproval]] = Field( @@ -5127,7 +5632,10 @@ class PublishedAsset(Publishable, Asset): }, ) schemaVersion: Optional[str] = Field( - default="0.7.0", json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)"}} + default="0.7.0", + json_schema_extra={ + "linkml_meta": {"domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)"} + }, ) studyTarget: Optional[list[str]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} @@ -5155,9 +5663,15 @@ class PublishedAsset(Publishable, Asset): }, ) wasGeneratedBy: Optional[list[Activity]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]} + }, + ) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -5282,7 +5796,9 @@ def pattern_url(cls, v): @field_validator("id") def pattern_id(cls, v): - pattern = re.compile(r"^dandiasset:[a-f0-9]{8}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{12}$") + pattern = re.compile( + r"^dandiasset:[a-f0-9]{8}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{12}$" + ) if isinstance(v, list): for element in v: if isinstance(element, str) and not pattern.match(element): @@ -5320,10 +5836,14 @@ class PublishedDandiset(Publishable, Dandiset): ) doi: Optional[str] = Field( - default="", json_schema_extra={"linkml_meta": {"domain_of": ["PublishedDandiset"], "ifabsent": "string()"}} + default="", + json_schema_extra={ + "linkml_meta": {"domain_of": ["PublishedDandiset"], "ifabsent": "string()"} + }, ) releaseNotes: Optional[str] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["PublishedDandiset"]}} + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["PublishedDandiset"]}}, ) datePublished: datetime = Field( default=..., @@ -5359,8 +5879,12 @@ class PublishedDandiset(Publishable, Dandiset): } }, ) - assetsSummary: AssetsSummary = Field(default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}}) - citation: str = Field(default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}}) + assetsSummary: AssetsSummary = Field( + default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}} + ) + citation: str = Field( + default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}} + ) dateCreated: Optional[datetime] = Field( default=None, json_schema_extra={ @@ -5429,14 +5953,25 @@ class PublishedDandiset(Publishable, Dandiset): ) sameAs: Optional[list[str]] = Field( default=None, - json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample", "Dandiset", "Participant"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["BareAsset", "BioSample", "Dandiset", "Participant"] + } + }, + ) + version: str = Field( + default=..., + json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset", "Software"]}}, ) - version: str = Field(default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset", "Software"]}}) about: Optional[list[Union[Anatomy, Disorder, GenericType]]] = Field( default=None, json_schema_extra={ "linkml_meta": { - "any_of": [{"range": "Disorder"}, {"range": "Anatomy"}, {"range": "GenericType"}], + "any_of": [ + {"range": "Disorder"}, + {"range": "Anatomy"}, + {"range": "GenericType"}, + ], "domain_of": ["CommonModel"], } }, @@ -5490,7 +6025,14 @@ class PublishedDandiset(Publishable, Dandiset): description: Optional[str] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AccessRequirements", "Activity", "CommonModel", "Equipment"]} + "linkml_meta": { + "domain_of": [ + "AccessRequirements", + "Activity", + "CommonModel", + "Equipment", + ] + } }, ) ethicsApproval: Optional[list[EthicsApproval]] = Field( @@ -5568,7 +6110,10 @@ class PublishedDandiset(Publishable, Dandiset): }, ) schemaVersion: Optional[str] = Field( - default="0.7.0", json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)"}} + default="0.7.0", + json_schema_extra={ + "linkml_meta": {"domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)"} + }, ) studyTarget: Optional[list[str]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} @@ -5596,9 +6141,15 @@ class PublishedDandiset(Publishable, Dandiset): }, ) wasGeneratedBy: Optional[list[Activity]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]}} + default=None, + json_schema_extra={ + "linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]} + }, + ) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -5656,7 +6207,9 @@ def pattern_manifestLocation(cls, v): @field_validator("sameAs") def pattern_sameAs(cls, v): - pattern = re.compile(r"^dandi://[A-Z][-A-Z]*/\d{6}(@(draft|\d+\.\d+\.\d+))?(/\S+)?$") + pattern = re.compile( + r"^dandi://[A-Z][-A-Z]*/\d{6}(@(draft|\d+\.\d+\.\d+))?(/\S+)?$" + ) if isinstance(v, list): for element in v: if isinstance(element, str) and not pattern.match(element): @@ -5731,7 +6284,11 @@ class RelatedParticipant(DandiBaseModel): "slots: ['ifabsent', 'notes', 'range'] ." ], "slot_usage": { - "identifier": {"name": "identifier", "range": "string", "required": False}, + "identifier": { + "name": "identifier", + "range": "string", + "required": False, + }, "name": {"name": "name", "required": False}, "relation": {"name": "relation", "range": "ParticipantRelationType"}, "url": { @@ -5793,7 +6350,10 @@ class RelatedParticipant(DandiBaseModel): }, ) relation: ParticipantRelationType = Field( - default=..., json_schema_extra={"linkml_meta": {"domain_of": ["RelatedParticipant", "Resource"]}} + default=..., + json_schema_extra={ + "linkml_meta": {"domain_of": ["RelatedParticipant", "Resource"]} + }, ) url: Optional[str] = Field( default=None, @@ -5817,7 +6377,10 @@ class RelatedParticipant(DandiBaseModel): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -5859,7 +6422,11 @@ class Resource(DandiBaseModel): "['ifabsent', 'notes', 'range'] ." ], "slot_usage": { - "identifier": {"name": "identifier", "range": "string", "required": False}, + "identifier": { + "name": "identifier", + "range": "string", + "required": False, + }, "name": {"name": "name", "required": False}, "relation": {"name": "relation", "range": "RelationType"}, "repository": {"name": "repository", "range": "string"}, @@ -5922,10 +6489,14 @@ class Resource(DandiBaseModel): }, ) relation: RelationType = Field( - default=..., json_schema_extra={"linkml_meta": {"domain_of": ["RelatedParticipant", "Resource"]}} + default=..., + json_schema_extra={ + "linkml_meta": {"domain_of": ["RelatedParticipant", "Resource"]} + }, ) repository: Optional[str] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel", "Resource"]}} + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel", "Resource"]}}, ) resourceType: Optional[ResourceType] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Resource"]}} @@ -5952,7 +6523,10 @@ class Resource(DandiBaseModel): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -6015,7 +6589,10 @@ class SampleType(BaseType): "pattern": "^(?i:http|https)://[^\\s]+$", "range": "uri", }, - {"pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", "range": "string"}, + { + "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", + "range": "string", + }, ], "domain_of": [ "Activity", @@ -6062,7 +6639,10 @@ class SampleType(BaseType): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -6109,7 +6689,14 @@ class Session(Activity): description: Optional[str] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AccessRequirements", "Activity", "CommonModel", "Equipment"]} + "linkml_meta": { + "domain_of": [ + "AccessRequirements", + "Activity", + "CommonModel", + "Equipment", + ] + } }, ) endDate: Optional[datetime] = Field( @@ -6190,37 +6777,42 @@ class Session(Activity): used: Optional[list[Equipment]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} ) - wasAssociatedWith: Optional[list[Union[Agent, Organization, Person, Software]]] = Field( + wasAssociatedWith: Optional[list[Union[Agent, Organization, Person, Software]]] = ( + Field( + default=None, + json_schema_extra={ + "linkml_meta": { + "any_of": [ + { + "notes": [ + "pydantic2linkml: Unable to translate the logic " + "contained in the after validation function, ." + ], + "range": "Person", + }, + { + "notes": [ + "pydantic2linkml: Unable to translate the logic " + "contained in the after validation function, ." + ], + "range": "Organization", + }, + {"range": "Software"}, + {"range": "Agent"}, + ], + "domain_of": ["Activity"], + } + }, + ) + ) + id: Optional[str] = Field( default=None, - json_schema_extra={ - "linkml_meta": { - "any_of": [ - { - "notes": [ - "pydantic2linkml: Unable to translate the logic " - "contained in the after validation function, ." - ], - "range": "Person", - }, - { - "notes": [ - "pydantic2linkml: Unable to translate the logic " - "contained in the after validation function, ." - ], - "range": "Organization", - }, - {"range": "Software"}, - {"range": "Agent"}, - ], - "domain_of": ["Activity"], - } - }, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -6283,7 +6875,10 @@ class SexType(BaseType): "pattern": "^(?i:http|https)://[^\\s]+$", "range": "uri", }, - {"pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", "range": "string"}, + { + "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", + "range": "string", + }, ], "domain_of": [ "Activity", @@ -6330,7 +6925,10 @@ class SexType(BaseType): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -6372,7 +6970,12 @@ class Software(DandiBaseModel): "['ifabsent', 'notes', 'range'] ." ], "slot_usage": { - "identifier": {"name": "identifier", "pattern": "^RRID:.*", "range": "string", "required": False}, + "identifier": { + "name": "identifier", + "pattern": "^RRID:.*", + "range": "string", + "required": False, + }, "name": {"name": "name", "required": True}, "url": { "name": "url", @@ -6454,8 +7057,14 @@ class Software(DandiBaseModel): } }, ) - version: str = Field(default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset", "Software"]}}) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + version: str = Field( + default=..., + json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset", "Software"]}}, + ) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -6531,7 +7140,10 @@ class SpeciesType(BaseType): "pattern": "^(?i:http|https)://[^\\s]+$", "range": "uri", }, - {"pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", "range": "string"}, + { + "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", + "range": "string", + }, ], "domain_of": [ "Activity", @@ -6578,7 +7190,10 @@ class SpeciesType(BaseType): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -6641,7 +7256,10 @@ class StandardsType(BaseType): "pattern": "^(?i:http|https)://[^\\s]+$", "range": "uri", }, - {"pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", "range": "string"}, + { + "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", + "range": "string", + }, ], "domain_of": [ "Activity", @@ -6688,7 +7306,10 @@ class StandardsType(BaseType): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ @@ -6751,7 +7372,10 @@ class StrainType(BaseType): "pattern": "^(?i:http|https)://[^\\s]+$", "range": "uri", }, - {"pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", "range": "string"}, + { + "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\\._]+$", + "range": "string", + }, ], "domain_of": [ "Activity", @@ -6798,7 +7422,10 @@ class StrainType(BaseType): } }, ) - id: Optional[str] = Field(default=None, json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}) + id: Optional[str] = Field( + default=None, + json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + ) schemaKey: Optional[str] = Field( default="DandiBaseModel", json_schema_extra={ From 991790fe3a9644638e4920c0adb9d722b95efb3f Mon Sep 17 00:00:00 2001 From: Isaac To Date: Mon, 30 Mar 2026 18:13:50 -0700 Subject: [PATCH 16/25] 'Merged' with linkml-conversion 0.12.1-59-gc0fbd02 and 2 branches --- .github/workflows/test-nonetwork.yml | 2 +- .github/workflows/test.yml | 2 +- dandischema/models.yaml | 27 +-- dandischema/models_linkml.py | 261 +++------------------------ 4 files changed, 28 insertions(+), 264 deletions(-) diff --git a/.github/workflows/test-nonetwork.yml b/.github/workflows/test-nonetwork.yml index d38e347f..ce966889 100644 --- a/.github/workflows/test-nonetwork.yml +++ b/.github/workflows/test-nonetwork.yml @@ -48,7 +48,7 @@ jobs: DANDI_TESTS_NONETWORK: 1 - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5 + uses: codecov/codecov-action@v6 with: file: ./coverage.xml flags: unittests diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b5811919..af3538a6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -86,7 +86,7 @@ jobs: run: tox -e py -- -s --cov-report=xml - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5 + uses: codecov/codecov-action@v6 with: file: ./coverage.xml flags: unittests diff --git a/dandischema/models.yaml b/dandischema/models.yaml index fa5365a9..bc6cfec0 100644 --- a/dandischema/models.yaml +++ b/dandischema/models.yaml @@ -104,10 +104,10 @@ enums: LicenseType: description: An enumeration. permissible_values: - spdx:CC0-1.0: - meaning: spdx:CC0-1.0 spdx:CC-BY-4.0: meaning: spdx:CC-BY-4.0 + spdx:CC0-1.0: + meaning: spdx:CC0-1.0 ParticipantRelationType: description: An enumeration of participant relations permissible_values: @@ -376,9 +376,6 @@ slots: range: string required: false blobDateModified: - notes: - - 'pydantic2linkml: Unable to express the microseconds precision constraint of - truncate. LinkML lacks direct support for this restriction.' range: datetime required: false cellLine: @@ -436,21 +433,12 @@ slots: required: false pattern: ^(?i:http|https)://[^\s]+$ dateCreated: - notes: - - 'pydantic2linkml: Unable to express the microseconds precision constraint of - truncate. LinkML lacks direct support for this restriction.' range: datetime required: false dateModified: - notes: - - 'pydantic2linkml: Unable to express the microseconds precision constraint of - truncate. LinkML lacks direct support for this restriction.' range: datetime required: false datePublished: - notes: - - 'pydantic2linkml: Unable to express the microseconds precision constraint of - truncate. LinkML lacks direct support for this restriction.' range: datetime required: true description: @@ -478,10 +466,7 @@ slots: multivalued: true any_of: - range: date - - notes: - - 'pydantic2linkml: Unable to express the microseconds precision constraint - of truncate. LinkML lacks direct support for this restriction.' - range: datetime + - range: datetime email: notes: - 'pydantic2linkml: Unable to translate the logic contained in the after validation @@ -503,9 +488,6 @@ slots: pattern: ^(?i:http|https)://[^\s]+$ - range: string endDate: - notes: - - 'pydantic2linkml: Unable to express the microseconds precision constraint of - truncate. LinkML lacks direct support for this restriction.' range: datetime required: false ethicsApproval: @@ -672,9 +654,6 @@ slots: range: SpeciesType required: false startDate: - notes: - - 'pydantic2linkml: Unable to express the microseconds precision constraint of - truncate. LinkML lacks direct support for this restriction.' range: datetime required: false status: diff --git a/dandischema/models_linkml.py b/dandischema/models_linkml.py index 03fdb9f7..56c1aa8b 100644 --- a/dandischema/models_linkml.py +++ b/dandischema/models_linkml.py @@ -203,8 +203,8 @@ class LicenseType(str, Enum): An enumeration. """ - spdxCOLONCC0_1FULL_STOP0 = "spdx:CC0-1.0" spdxCOLONCC_BY_4FULL_STOP0 = "spdx:CC-BY-4.0" + spdxCOLONCC0_1FULL_STOP0 = "spdx:CC0-1.0" class ParticipantRelationType(str, Enum): @@ -477,17 +477,7 @@ class Activity(DandiBaseModel): }, ) endDate: Optional[datetime] = Field( - default=None, - json_schema_extra={ - "linkml_meta": { - "domain_of": ["Activity"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} ) identifier: Optional[str] = Field( default=None, @@ -539,17 +529,7 @@ class Activity(DandiBaseModel): }, ) startDate: Optional[datetime] = Field( - default=None, - json_schema_extra={ - "linkml_meta": { - "domain_of": ["Activity"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} ) used: Optional[list[Equipment]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} @@ -1989,17 +1969,7 @@ class BareAsset(CommonModel): }, ) blobDateModified: Optional[datetime] = Field( - default=None, - json_schema_extra={ - "linkml_meta": { - "domain_of": ["BareAsset"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset"]}} ) contentSize: Union[int, str] = Field( default=..., @@ -2034,16 +2004,7 @@ class BareAsset(CommonModel): ) dateModified: Optional[datetime] = Field( default=None, - json_schema_extra={ - "linkml_meta": { - "domain_of": ["BareAsset", "Dandiset"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "Dandiset"]}}, ) digest: str = Field( default=..., @@ -2473,17 +2434,7 @@ class Asset(BareAsset): }, ) blobDateModified: Optional[datetime] = Field( - default=None, - json_schema_extra={ - "linkml_meta": { - "domain_of": ["BareAsset"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset"]}} ) contentSize: Union[int, str] = Field( default=..., @@ -2518,16 +2469,7 @@ class Asset(BareAsset): ) dateModified: Optional[datetime] = Field( default=None, - json_schema_extra={ - "linkml_meta": { - "domain_of": ["BareAsset", "Dandiset"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "Dandiset"]}}, ) digest: str = Field( default=..., @@ -3227,30 +3169,11 @@ class Dandiset(CommonModel): default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}} ) dateCreated: Optional[datetime] = Field( - default=None, - json_schema_extra={ - "linkml_meta": { - "domain_of": ["Dandiset"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}} ) dateModified: Optional[datetime] = Field( default=None, - json_schema_extra={ - "linkml_meta": { - "domain_of": ["BareAsset", "Dandiset"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "Dandiset"]}}, ) identifier: str = Field( default=..., @@ -3625,17 +3548,7 @@ class Disorder(BaseType): default=None, json_schema_extra={ "linkml_meta": { - "any_of": [ - {"range": "date"}, - { - "notes": [ - "pydantic2linkml: Unable to express the microseconds " - "precision constraint of truncate. LinkML lacks direct " - "support for this restriction." - ], - "range": "datetime", - }, - ], + "any_of": [{"range": "date"}, {"range": "datetime"}], "domain_of": ["Disorder"], } }, @@ -4804,17 +4717,7 @@ class Project(Activity): }, ) endDate: Optional[datetime] = Field( - default=None, - json_schema_extra={ - "linkml_meta": { - "domain_of": ["Activity"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} ) identifier: Optional[str] = Field( default=None, @@ -4866,17 +4769,7 @@ class Project(Activity): }, ) startDate: Optional[datetime] = Field( - default=None, - json_schema_extra={ - "linkml_meta": { - "domain_of": ["Activity"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} ) used: Optional[list[Equipment]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} @@ -5067,17 +4960,7 @@ class Publishable(DandiBaseModel): ) datePublished: datetime = Field( - default=..., - json_schema_extra={ - "linkml_meta": { - "domain_of": ["Publishable"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Publishable"]}} ) publishedBy: Union[PublishActivity, str] = Field( default=..., @@ -5149,17 +5032,7 @@ class PublishActivity(Activity): }, ) endDate: Optional[datetime] = Field( - default=None, - json_schema_extra={ - "linkml_meta": { - "domain_of": ["Activity"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} ) identifier: Optional[str] = Field( default=None, @@ -5211,17 +5084,7 @@ class PublishActivity(Activity): }, ) startDate: Optional[datetime] = Field( - default=None, - json_schema_extra={ - "linkml_meta": { - "domain_of": ["Activity"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} ) used: Optional[list[Equipment]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} @@ -5317,17 +5180,7 @@ class PublishedAsset(Publishable, Asset): ) datePublished: datetime = Field( - default=..., - json_schema_extra={ - "linkml_meta": { - "domain_of": ["Publishable"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Publishable"]}} ) publishedBy: Union[PublishActivity, str] = Field( default=..., @@ -5396,17 +5249,7 @@ class PublishedAsset(Publishable, Asset): }, ) blobDateModified: Optional[datetime] = Field( - default=None, - json_schema_extra={ - "linkml_meta": { - "domain_of": ["BareAsset"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset"]}} ) contentSize: Union[int, str] = Field( default=..., @@ -5441,16 +5284,7 @@ class PublishedAsset(Publishable, Asset): ) dateModified: Optional[datetime] = Field( default=None, - json_schema_extra={ - "linkml_meta": { - "domain_of": ["BareAsset", "Dandiset"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "Dandiset"]}}, ) digest: str = Field( default=..., @@ -5889,17 +5723,7 @@ class PublishedDandiset(Publishable, Dandiset): json_schema_extra={"linkml_meta": {"domain_of": ["PublishedDandiset"]}}, ) datePublished: datetime = Field( - default=..., - json_schema_extra={ - "linkml_meta": { - "domain_of": ["Publishable"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Publishable"]}} ) publishedBy: Union[PublishActivity, str] = Field( default=..., @@ -5929,30 +5753,11 @@ class PublishedDandiset(Publishable, Dandiset): default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}} ) dateCreated: Optional[datetime] = Field( - default=None, - json_schema_extra={ - "linkml_meta": { - "domain_of": ["Dandiset"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}} ) dateModified: Optional[datetime] = Field( default=None, - json_schema_extra={ - "linkml_meta": { - "domain_of": ["BareAsset", "Dandiset"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "Dandiset"]}}, ) identifier: str = Field( default=..., @@ -6749,17 +6554,7 @@ class Session(Activity): }, ) endDate: Optional[datetime] = Field( - default=None, - json_schema_extra={ - "linkml_meta": { - "domain_of": ["Activity"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} ) identifier: Optional[str] = Field( default=None, @@ -6811,17 +6606,7 @@ class Session(Activity): }, ) startDate: Optional[datetime] = Field( - default=None, - json_schema_extra={ - "linkml_meta": { - "domain_of": ["Activity"], - "notes": [ - "pydantic2linkml: Unable to express the microseconds precision " - "constraint of truncate. LinkML lacks direct support for this " - "restriction." - ], - } - }, + default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} ) used: Optional[list[Equipment]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} From b1da732f945d5be13523f7835ed93d9949ea957c Mon Sep 17 00:00:00 2001 From: Isaac To Date: Wed, 8 Apr 2026 10:41:46 -0700 Subject: [PATCH 17/25] 'Merged' with linkml-conversion 0.12.1-69-g0a21040 and 2 branches --- dandischema/models.yaml | 56 ++++++++++++++------- dandischema/models_linkml.py | 97 ++++++++++++++++++++++++++++++++++-- 2 files changed, 133 insertions(+), 20 deletions(-) diff --git a/dandischema/models.yaml b/dandischema/models.yaml index cd6a03a6..2d5c7712 100644 --- a/dandischema/models.yaml +++ b/dandischema/models.yaml @@ -104,10 +104,10 @@ enums: LicenseType: description: An enumeration. permissible_values: - spdx:CC-BY-4.0: - meaning: spdx:CC-BY-4.0 spdx:CC0-1.0: meaning: spdx:CC0-1.0 + spdx:CC-BY-4.0: + meaning: spdx:CC-BY-4.0 ParticipantRelationType: description: An enumeration of participant relations permissible_values: @@ -325,11 +325,6 @@ slots: - range: Anatomy - range: GenericType access: - notes: - - 'pydantic2linkml: Unable to express the default factory, - at 0xADDRESS>, in LinkML.' - - 'pydantic2linkml: Unable to translate the logic contained in the after validation - function, .' range: AccessRequirements required: false multivalued: true @@ -409,7 +404,6 @@ slots: pattern: ^(?i:http|https)://[^\s]+$ contributor: range: Any - required: false multivalued: true any_of: - notes: @@ -443,7 +437,6 @@ slots: required: true description: range: string - required: false digest: notes: - 'pydantic2linkml: Unable to translate the logic contained in the after validation @@ -507,10 +500,8 @@ slots: multivalued: true id: range: string - required: false identifier: {} includeInCitation: - ifabsent: 'True' range: boolean required: false keywords: @@ -519,7 +510,6 @@ slots: multivalued: true license: range: LicenseType - required: false multivalued: true locus: range: Locus @@ -636,11 +626,7 @@ slots: range: SampleType required: true schemaKey: - notes: - - 'pydantic2linkml: Unable to translate the logic contained in the after validation - function, >.' designates_type: true - range: string required: true schemaVersion: ifabsent: string(0.7.0) @@ -670,7 +656,6 @@ slots: required: false url: range: uri - required: false pattern: ^(?i:http|https)://[^\s]+$ used: range: Equipment @@ -740,6 +725,9 @@ classes: - description - embargoedUntil - status + slot_usage: + description: + required: false Activity: description: Information about the Project activity is_a: DandiBaseModel @@ -752,6 +740,8 @@ classes: - used - wasAssociatedWith slot_usage: + description: + required: false identifier: range: string required: false @@ -787,6 +777,7 @@ classes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' + required: false Allele: is_a: DandiBaseModel slots: @@ -943,6 +934,18 @@ classes: - url - wasGeneratedBy slot_usage: + access: + notes: + - 'pydantic2linkml: Unable to express the default factory, + at 0xADDRESS>, in LinkML.' + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, .' + contributor: + required: false + description: + required: false + license: + required: false name: required: false pattern: ^(?=.{,150}$) @@ -958,6 +961,7 @@ classes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' + required: false wasGeneratedBy: range: Activity ContactPoint: @@ -971,6 +975,7 @@ classes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' + required: false Contributor: is_a: DandiBaseModel slots: @@ -985,6 +990,8 @@ classes: identifier: range: string required: false + includeInCitation: + ifabsent: 'True' name: required: false url: @@ -992,10 +999,20 @@ classes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' + required: false DandiBaseModel: slots: - id - schemaKey + slot_usage: + id: + required: false + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(DandiBaseModel) + range: string Dandiset: description: A body of structured information describing a DANDI dataset. notes: @@ -1047,6 +1064,8 @@ classes: - identifier - name slot_usage: + description: + required: false identifier: range: string required: false @@ -1212,6 +1231,7 @@ classes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' + required: false Resource: is_a: DandiBaseModel slots: @@ -1236,6 +1256,7 @@ classes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' + required: false SampleType: description: OBI based identifier for the sample type used is_a: BaseType @@ -1263,6 +1284,7 @@ classes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' + required: false SpeciesType: description: Identifier for species of the sample is_a: BaseType diff --git a/dandischema/models_linkml.py b/dandischema/models_linkml.py index 577d87f5..9349e9bf 100644 --- a/dandischema/models_linkml.py +++ b/dandischema/models_linkml.py @@ -203,8 +203,8 @@ class LicenseType(str, Enum): An enumeration. """ - CC_BY_4FULL_STOP0 = "spdx:CC-BY-4.0" CC0_1FULL_STOP0 = "spdx:CC0-1.0" + CC_BY_4FULL_STOP0 = "spdx:CC-BY-4.0" class ParticipantRelationType(str, Enum): @@ -334,7 +334,25 @@ class RoleType(str, Enum): class DandiBaseModel(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7"} + { + "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", + "slot_usage": { + "id": {"name": "id", "required": False}, + "schemaKey": { + "ifabsent": "string(DandiBaseModel)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + "range": "string", + }, + }, + } ) id: Optional[str] = Field( @@ -347,6 +365,7 @@ class DandiBaseModel(ConfiguredBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], + "ifabsent": "string(DandiBaseModel)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, .wrap_val " "at 0xADDRESS>." ], + "required": False, }, }, } @@ -763,6 +790,7 @@ class Agent(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], + "ifabsent": "string(DandiBaseModel)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, at 0xADDRESS>, in " + "LinkML.", + "pydantic2linkml: Unable to translate the " + "logic contained in the after validation " + "function, .", + ], + }, + "contributor": {"name": "contributor", "required": False}, + "description": {"name": "description", "required": False}, + "license": {"name": "license", "required": False}, "name": {"name": "name", "pattern": "^(?=.{,150}$)", "required": False}, "repository": { "name": "repository", @@ -1504,6 +1556,7 @@ class CommonModel(DandiBaseModel): "_BaseUrl.__get_pydantic_core_schema__..wrap_val " "at 0xADDRESS>." ], + "required": False, }, "wasGeneratedBy": {"name": "wasGeneratedBy", "range": "Activity"}, }, @@ -1700,6 +1753,7 @@ class CommonModel(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], + "ifabsent": "string(DandiBaseModel)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, .wrap_val " "at 0xADDRESS>." ], + "required": False, } }, } @@ -2753,6 +2810,7 @@ class ContactPoint(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], + "ifabsent": "string(DandiBaseModel)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, .wrap_val " "at 0xADDRESS>." ], + "required": False, }, }, } @@ -2903,6 +2963,7 @@ class Contributor(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], + "ifabsent": "string(DandiBaseModel)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, .wrap_val " "at 0xADDRESS>." ], + "required": False, }, }, } @@ -5879,6 +5959,7 @@ class RelatedParticipant(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], + "ifabsent": "string(DandiBaseModel)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, .wrap_val " "at 0xADDRESS>." ], + "required": False, }, }, } @@ -6019,6 +6101,7 @@ class Resource(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], + "ifabsent": "string(DandiBaseModel)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, .wrap_val " "at 0xADDRESS>." ], + "required": False, }, }, } @@ -6492,6 +6579,7 @@ class Software(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], + "ifabsent": "string(DandiBaseModel)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, Date: Fri, 10 Apr 2026 11:48:37 -0700 Subject: [PATCH 18/25] 'Merged' with linkml-conversion 0.12.1-69-g0a21040 and 2 branches --- dandischema/models.yaml | 180 +++++++- dandischema/models_linkml.py | 786 +++++++++++++++++++++++++++++------ 2 files changed, 828 insertions(+), 138 deletions(-) diff --git a/dandischema/models.yaml b/dandischema/models.yaml index 2d5c7712..68b0757d 100644 --- a/dandischema/models.yaml +++ b/dandischema/models.yaml @@ -317,6 +317,9 @@ enums: slots: about: + description: The subject matter of the content, such as disorders, brain + anatomy. + title: Subject matter of the dataset range: Any required: false multivalued: true @@ -325,20 +328,27 @@ slots: - range: Anatomy - range: GenericType access: + title: Access information range: AccessRequirements required: false multivalued: true acknowledgement: + description: Any acknowledgments not covered by contributors or external + resources. range: string required: false affiliation: + description: An organization that this person is affiliated with. range: Affiliation required: false multivalued: true age: + description: A representation of age using ISO 8601 duration. This should + include a valueReference if anything other than date of birth is used. range: PropertyValue required: false alleles: + description: Information about alleles at the locus. range: Allele required: true multivalued: true @@ -353,6 +363,8 @@ slots: required: false multivalued: true anatomy: + description: Identifier for what organ the sample belongs to. Use the most + specific descriptor from sources such as UBERON. range: Anatomy required: false multivalued: true @@ -361,6 +373,7 @@ slots: required: false multivalued: true assayType: + description: Identifier for the assay(s) used (e.g., OBI). range: AssayType required: false multivalued: true @@ -368,12 +381,16 @@ slots: range: AssetsSummary required: true awardNumber: + description: Identifier associated with a sponsored or gift award. + title: Identifier for an award range: string required: false blobDateModified: + title: Asset file modification date and time. range: datetime required: false cellLine: + description: Cell line associated with the participant or subject. range: string required: false citation: @@ -427,6 +444,7 @@ slots: required: false pattern: ^(?i:http|https)://[^\s]+$ dateCreated: + title: Dandiset creation date and time. range: datetime required: false dateModified: @@ -438,6 +456,7 @@ slots: description: range: string digest: + title: A map of dandi digests to their values notes: - 'pydantic2linkml: Unable to translate the logic contained in the after validation function, >.' @@ -445,15 +464,20 @@ slots: to be supported.' required: true disorder: + description: Any current diagnosed disease or disorder associated with the + participant or subject. range: Disorder required: false multivalued: true doi: + title: DOI ifabsent: string() range: string required: false pattern: ^(10\.\d{4,}/[a-z][-a-z]*\.\d{6}/\d+\.\d+\.\d+|)$ dxdate: + description: Dates of diagnosis + title: Dates of diagnosis range: Any required: false multivalued: true @@ -467,9 +491,12 @@ slots: range: string required: false embargoedUntil: + description: Date on which embargo ends. + title: Embargo end date range: date required: false encodingFormat: + title: File encoding format range: Any required: true any_of: @@ -484,10 +511,12 @@ slots: range: datetime required: false ethicsApproval: + title: Ethics approvals range: EthicsApproval required: false multivalued: true genotype: + description: Genotype descriptor of participant or subject if available range: Any required: false any_of: @@ -502,16 +531,21 @@ slots: range: string identifier: {} includeInCitation: + title: Include contributor in citation range: boolean required: false keywords: + description: Keywords used to describe this content. range: string required: false multivalued: true license: + description: Licenses associated with the item. DANDI only supports a subset + of Creative Commons Licenses (creativecommons.org) applicable to datasets. range: LicenseType multivalued: true locus: + description: Locus at which information was extracted. range: Locus required: true locusType: @@ -564,6 +598,8 @@ slots: range: string required: true propertyID: + description: A commonly used identifier for the characteristic represented + by the property. For example, a known prefix like DOI or a full URL. range: Any required: false any_of: @@ -575,6 +611,8 @@ slots: range: uri pattern: ^(?i:http|https)://[^\s]+$ protocol: + description: A list of persistent URLs describing the protocol (e.g. + protocols.io, or other DOIs). notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val @@ -584,6 +622,8 @@ slots: multivalued: true pattern: ^(?i:http|https)://[^\s]+$ publishedBy: + description: The URL should contain the provenance of the publishing + process. range: Any required: true any_of: @@ -595,6 +635,8 @@ slots: pattern: ^(?i:http|https)://[^\s]+$ - range: PublishActivity relatedParticipant: + description: Information about related participants or subjects in a study + or across studies. range: RelatedParticipant required: false multivalued: true @@ -608,14 +650,19 @@ slots: relation: required: true releaseNotes: + description: The description of the release range: string required: false repository: required: false resourceType: + description: The type of resource. + title: Resource type range: ResourceType required: false roleName: + description: Role(s) of the contributor. Multiple roles can be selected. + title: Role range: RoleType required: false multivalued: true @@ -623,6 +670,8 @@ slots: required: false multivalued: true sampleType: + description: Identifier for the sample characteristics (e.g., from OBI, + Encode). range: SampleType required: true schemaKey: @@ -633,6 +682,8 @@ slots: range: string required: false sex: + description: Identifier for sex of the participant or subject if available. + (e.g. from OBI) range: SexType required: false species: @@ -642,12 +693,16 @@ slots: range: datetime required: false status: + description: The access status of the item. + title: Access status range: AccessType required: true strain: + description: Identifier for the strain of the participant or subject. range: StrainType required: false studyTarget: + description: Objectives or specific questions of the study. range: string required: false multivalued: true @@ -658,10 +713,12 @@ slots: range: uri pattern: ^(?i:http|https)://[^\s]+$ used: + description: A listing of equipment used for the activity. range: Equipment required: false multivalued: true value: + description: The value associated with this property. notes: - 'pydantic2linkml: Unable to translate the logic contained in the after validation function, >.' @@ -726,7 +783,11 @@ classes: - embargoedUntil - status slot_usage: + contactPoint: + description: Who or where to look for information about access. description: + description: Information about access requirements when embargoed or + restricted required: false Activity: description: Information about the Project activity @@ -741,11 +802,14 @@ classes: - wasAssociatedWith slot_usage: description: + description: The description of the activity. required: false identifier: range: string required: false name: + description: The name of the activity. + title: Title required: true pattern: ^(?=.{,150}$) Affiliation: @@ -755,10 +819,13 @@ classes: - name slot_usage: identifier: + description: Use an ror.org identifier for institutions. + title: A ror.org identifier range: string required: false pattern: ^https://ror.org/[a-z0-9]+$ name: + description: Name of organization required: true Agent: is_a: DandiBaseModel @@ -768,6 +835,8 @@ classes: - url slot_usage: identifier: + description: Identifier for an agent. + title: Identifier range: string required: false name: @@ -786,6 +855,7 @@ classes: - identifier slot_usage: identifier: + description: Identifier for genotyping allele. range: Any required: true any_of: @@ -806,7 +876,7 @@ classes: notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the id slot. The slot representation of the id field in the Asset Pydantic model has changes - in value in meta slots: [''required''] .' + in value in meta slots: [''description'', ''required''] .' is_a: BareAsset slots: - contentUrl @@ -865,6 +935,8 @@ classes: - wasAttributedTo - wasDerivedFrom slot_usage: + dateModified: + title: Asset (file or metadata) modification date and time sameAs: notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation @@ -874,6 +946,8 @@ classes: pattern: ^(?i:http|https)://[^\s]+$ variableMeasured: range: PropertyValue + wasAttributedTo: + description: Associated participant(s) or subject(s). BaseType: description: Base class for enumerated types is_a: DandiBaseModel @@ -882,6 +956,8 @@ classes: - name slot_usage: identifier: + description: The identifier can be any url or a compact URI, preferably + supported by identifiers.org. range: Any required: false any_of: @@ -894,6 +970,7 @@ classes: - range: string pattern: ^[a-zA-Z0-9-]+:[a-zA-Z0-9-/\._]+$ name: + description: The name of the item. required: false pattern: ^(?=.{,150}$) BioSample: @@ -914,6 +991,11 @@ classes: required: true sameAs: range: string + wasAttributedTo: + description: Participant(s) or Subject(s) associated with this sample. + wasDerivedFrom: + description: Describes the hierarchy of sample derivation or + aggregation. CommonModel: is_a: DandiBaseModel slots: @@ -941,15 +1023,21 @@ classes: - 'pydantic2linkml: Unable to translate the logic contained in the after validation function, .' contributor: + description: 'Contributors to this item: persons or organizations.' + title: Contributors required: false description: + description: A description of the item. required: false license: required: false name: + description: The name of the item. + title: Title required: false pattern: ^(?=.{,150}$) repository: + description: location of the item notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val @@ -957,6 +1045,7 @@ classes: range: uri pattern: ^(?i:http|https)://[^\s]+$ url: + description: permalink to the item notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val @@ -970,7 +1059,10 @@ classes: - email - url slot_usage: + email: + description: Email address of contact. url: + description: A Web page to find information on how to contact. notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val @@ -988,9 +1080,14 @@ classes: - url slot_usage: identifier: + description: Use a common identifier such as ORCID (orcid.org) for + people or ROR (ror.org) for institutions. + title: A common identifier range: string required: false includeInCitation: + description: A flag to indicate whether a contributor should be included + when generating a citation for the item. ifabsent: 'True' name: required: false @@ -1006,6 +1103,7 @@ classes: - schemaKey slot_usage: id: + description: Uniform resource identifier required: false schemaKey: notes: @@ -1018,10 +1116,11 @@ classes: notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the contributor slot. The slot representation of the contributor field in the Dandiset Pydantic - model has changes in value in meta slots: [''required''] .' + model has changes in value in meta slots: [''description'', ''required'', ''title''] + .' - 'pydantic2linkml: Impossible to generate slot usage entry for the description slot. The slot representation of the description field in the Dandiset Pydantic - model has changes in value in meta slots: [''required''] .' + model has changes in value in meta slots: [''description'', ''required''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the id slot. The slot representation of the id field in the Dandiset Pydantic model has changes in value in meta slots: [''required''] .' @@ -1030,7 +1129,7 @@ classes: has changes in value in meta slots: [''required''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the name slot. The slot representation of the name field in the Dandiset Pydantic model has - changes in value in meta slots: [''required''] .' + changes in value in meta slots: [''description'', ''required'', ''title''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the wasGeneratedBy slot. The slot representation of the wasGeneratedBy field in the Dandiset Pydantic model has changes in value in meta slots: [''range''] .' @@ -1045,11 +1144,17 @@ classes: - sameAs - version slot_usage: + dateModified: + title: Last modification date and time. identifier: + description: A Dandiset identifier that can be resolved by + identifiers.org. + title: Dandiset identifier range: string required: true pattern: ^[A-Z][-A-Z]*:\d{6}$ sameAs: + description: Known DANDI URLs of the Dandiset at other DANDI instances. range: string pattern: ^dandi://[A-Z][-A-Z]*/\d{6}(@(draft|\d+\.\d+\.\d+))?(/\S+)?$ Disorder: @@ -1065,11 +1170,14 @@ classes: - name slot_usage: description: + description: The description of the equipment. required: false identifier: range: string required: false name: + description: A name for the equipment. + title: Title required: true pattern: ^(?=.{,150}$) EthicsApproval: @@ -1079,7 +1187,12 @@ classes: - contactPoint - identifier slot_usage: + contactPoint: + description: Information about the ethics approval committee. identifier: + description: Approved Protocol identifier, often a number or + alphanumeric string. + title: Approved protocol identifier range: string required: true GenericType: @@ -1093,6 +1206,8 @@ classes: - wasGeneratedBy slot_usage: wasGeneratedBy: + description: Information about session activity used to determine + genotype. range: Session Locus: is_a: DandiBaseModel @@ -1101,6 +1216,7 @@ classes: - locusType slot_usage: identifier: + description: Identifier for genotyping locus. range: Any required: true any_of: @@ -1112,17 +1228,21 @@ classes: is_a: BaseType Organization: notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the identifier + slot. The slot representation of the identifier field in the Organization Pydantic + model has changes in value in meta slots: [''description'', ''title''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the includeInCitation slot. The slot representation of the includeInCitation field in the Organization - Pydantic model has changes in value in meta slots: [''ifabsent''] .' + Pydantic model has changes in value in meta slots: [''description'', ''ifabsent''] + .' is_a: Contributor slots: - contactPoint slot_usage: contactPoint: + description: Contact for the organization + title: Organization contact information multivalued: true - identifier: - pattern: ^https://ror.org/[a-z0-9]+$ Participant: description: Description about the Participant or Subject studied. The Participant or Subject can be any individual or synthesized Agent. The @@ -1148,19 +1268,31 @@ classes: range: string required: true sameAs: + description: An identifier to link participants or subjects across + datasets. range: string + species: + description: An identifier indicating the taxonomic classification of + the participant or subject. Person: notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the identifier + slot. The slot representation of the identifier field in the Person Pydantic + model has changes in value in meta slots: [''description'', ''title''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the name slot. The slot representation of the name field in the Person Pydantic model has changes in value in meta slots: [''required''] .' is_a: Contributor slots: - affiliation - slot_usage: - identifier: - pattern: ^\d{4}-\d{4}-\d{4}-(\d{3}X|\d{4})$ Project: + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the description + slot. The slot representation of the description field in the Project Pydantic + model has changes in value in meta slots: [''description''] .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the name slot. + The slot representation of the name field in the Project Pydantic model has + changes in value in meta slots: [''description'', ''title''] .' is_a: Activity PropertyValue: is_a: DandiBaseModel @@ -1196,10 +1328,11 @@ classes: notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the id slot. The slot representation of the id field in the PublishedDandiset Pydantic model - has changes in value in meta slots: [''pattern''] .' + has changes in value in meta slots: [''description'', ''pattern''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the url slot. The slot representation of the url field in the PublishedDandiset Pydantic model - has changes in value in meta slots: [''notes'', ''required''] .' + has changes in value in meta slots: [''description'', ''notes'', ''required''] + .' - 'pydantic2linkml: Warning: LinkML does not support multiple inheritance. Publishable is not specified as a parent, through the `is_a` meta slot, but as a mixin.' - 'MANUAL_NOTE: The default of the `schemaKey` field in the corresponding Pydantic @@ -1223,10 +1356,16 @@ classes: range: string required: false name: + title: Name of the participant or subject required: false relation: + description: 'Indicates how the current participant or subject is related + to the other participant or subject. This relation should satisfy: Participant/Subject + relatedParticipant/Subject.' + title: Participant or subject relation range: ParticipantRelationType url: + title: URL of the related participant or subject notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val @@ -1246,12 +1385,19 @@ classes: range: string required: false name: + title: A title of the resource required: false relation: + description: 'Indicates how the resource is related to the dataset. This relation + should satisfy: dandiset resource.' + title: Resource relation range: RelationType repository: + description: Name of the repository in which the resource is housed. + title: Name of the repository range: string url: + title: URL of the resource notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val @@ -1261,6 +1407,13 @@ classes: description: OBI based identifier for the sample type used is_a: BaseType Session: + notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the description + slot. The slot representation of the description field in the Session Pydantic + model has changes in value in meta slots: [''description''] .' + - 'pydantic2linkml: Impossible to generate slot usage entry for the name slot. + The slot representation of the name field in the Session Pydantic model has + changes in value in meta slots: [''description'', ''title''] .' is_a: Activity SexType: description: Identifier for the sex of the sample @@ -1274,12 +1427,15 @@ classes: - version slot_usage: identifier: + description: RRID of the software from scicrunch.org. + title: Research resource identifier range: string required: false pattern: ^RRID:.* name: required: true url: + description: Web page for the software. notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val diff --git a/dandischema/models_linkml.py b/dandischema/models_linkml.py index 9349e9bf..edc71bcf 100644 --- a/dandischema/models_linkml.py +++ b/dandischema/models_linkml.py @@ -337,7 +337,11 @@ class DandiBaseModel(ConfiguredBaseModel): { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "slot_usage": { - "id": {"name": "id", "required": False}, + "id": { + "description": "Uniform resource identifier", + "name": "id", + "required": False, + }, "schemaKey": { "ifabsent": "string(DandiBaseModel)", "name": "schemaKey", @@ -357,6 +361,7 @@ class DandiBaseModel(ConfiguredBaseModel): id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["DandiBaseModel"] = Field( @@ -385,12 +390,26 @@ class AccessRequirements(DandiBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", - "slot_usage": {"description": {"name": "description", "required": False}}, + "slot_usage": { + "contactPoint": { + "description": "Who or where to look for " + "information about access.", + "name": "contactPoint", + }, + "description": { + "description": "Information about access " + "requirements when embargoed or " + "restricted", + "name": "description", + "required": False, + }, + }, } ) contactPoint: Optional[ContactPoint] = Field( default=None, + description="""Who or where to look for information about access.""", json_schema_extra={ "linkml_meta": { "domain_of": ["AccessRequirements", "EthicsApproval", "Organization"] @@ -399,6 +418,7 @@ class AccessRequirements(DandiBaseModel): ) description: Optional[str] = Field( default=None, + description="""Information about access requirements when embargoed or restricted""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -412,14 +432,19 @@ class AccessRequirements(DandiBaseModel): ) embargoedUntil: Optional[date] = Field( default=None, + title="Embargo end date", + description="""Date on which embargo ends.""", json_schema_extra={"linkml_meta": {"domain_of": ["AccessRequirements"]}}, ) status: AccessType = Field( default=..., + title="Access status", + description="""The access status of the item.""", json_schema_extra={"linkml_meta": {"domain_of": ["AccessRequirements"]}}, ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["AccessRequirements"] = Field( @@ -449,19 +474,30 @@ class Activity(DandiBaseModel): { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "slot_usage": { - "description": {"name": "description", "required": False}, + "description": { + "description": "The description of the " "activity.", + "name": "description", + "required": False, + }, "identifier": { "name": "identifier", "range": "string", "required": False, }, - "name": {"name": "name", "pattern": "^(?=.{,150}$)", "required": True}, + "name": { + "description": "The name of the activity.", + "name": "name", + "pattern": "^(?=.{,150}$)", + "required": True, + "title": "Title", + }, }, } ) description: Optional[str] = Field( default=None, + description="""The description of the activity.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -503,6 +539,8 @@ class Activity(DandiBaseModel): ) name: str = Field( default=..., + title="Title", + description="""The name of the activity.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -524,7 +562,9 @@ class Activity(DandiBaseModel): default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} ) used: Optional[list[Equipment]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} + default=None, + description="""A listing of equipment used for the activity.""", + json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}}, ) wasAssociatedWith: Optional[list[Union[Agent, Organization, Person, Software]]] = ( Field( @@ -560,6 +600,7 @@ class Activity(DandiBaseModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Activity"] = Field( @@ -599,18 +640,26 @@ class Affiliation(DandiBaseModel): "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "slot_usage": { "identifier": { + "description": "Use an ror.org identifier for " "institutions.", "name": "identifier", "pattern": "^https://ror.org/[a-z0-9]+$", "range": "string", "required": False, + "title": "A ror.org identifier", + }, + "name": { + "description": "Name of organization", + "name": "name", + "required": True, }, - "name": {"name": "name", "required": True}, }, } ) identifier: Optional[str] = Field( default=None, + title="A ror.org identifier", + description="""Use an ror.org identifier for institutions.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -636,6 +685,7 @@ class Affiliation(DandiBaseModel): ) name: str = Field( default=..., + description="""Name of organization""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -655,6 +705,7 @@ class Affiliation(DandiBaseModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Affiliation"] = Field( @@ -694,9 +745,11 @@ class Agent(DandiBaseModel): "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "slot_usage": { "identifier": { + "description": "Identifier for an agent.", "name": "identifier", "range": "string", "required": False, + "title": "Identifier", }, "name": {"name": "name", "required": True}, "url": { @@ -716,6 +769,8 @@ class Agent(DandiBaseModel): identifier: Optional[str] = Field( default=None, + title="Identifier", + description="""Identifier for an agent.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -782,6 +837,7 @@ class Agent(DandiBaseModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Agent"] = Field( @@ -825,6 +881,7 @@ class Allele(DandiBaseModel): {"range": "string"}, {"multivalued": True, "range": "string"}, ], + "description": "Identifier for genotyping " "allele.", "name": "identifier", "range": "Any", "required": True, @@ -841,6 +898,7 @@ class Allele(DandiBaseModel): ) identifier: str = Field( default=..., + description="""Identifier for genotyping allele.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -870,6 +928,7 @@ class Allele(DandiBaseModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Allele"] = Field( @@ -953,6 +1012,7 @@ class AssetsSummary(DandiBaseModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["AssetsSummary"] = Field( @@ -1002,17 +1062,26 @@ class BaseType(DandiBaseModel): "range": "string", }, ], + "description": "The identifier can be any url " + "or a compact URI, preferably " + "supported by identifiers.org.", "name": "identifier", "range": "Any", "required": False, }, - "name": {"name": "name", "pattern": "^(?=.{,150}$)", "required": False}, + "name": { + "description": "The name of the item.", + "name": "name", + "pattern": "^(?=.{,150}$)", + "required": False, + }, }, } ) identifier: Optional[str] = Field( default=None, + description="""The identifier can be any url or a compact URI, preferably supported by identifiers.org.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -1054,6 +1123,7 @@ class BaseType(DandiBaseModel): ) name: Optional[str] = Field( default=None, + description="""The name of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -1073,6 +1143,7 @@ class BaseType(DandiBaseModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["BaseType"] = Field( @@ -1117,6 +1188,7 @@ class Anatomy(BaseType): identifier: Optional[str] = Field( default=None, + description="""The identifier can be any url or a compact URI, preferably supported by identifiers.org.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -1158,6 +1230,7 @@ class Anatomy(BaseType): ) name: Optional[str] = Field( default=None, + description="""The name of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -1177,6 +1250,7 @@ class Anatomy(BaseType): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Anatomy"] = Field( @@ -1221,6 +1295,7 @@ class ApproachType(BaseType): identifier: Optional[str] = Field( default=None, + description="""The identifier can be any url or a compact URI, preferably supported by identifiers.org.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -1262,6 +1337,7 @@ class ApproachType(BaseType): ) name: Optional[str] = Field( default=None, + description="""The name of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -1281,6 +1357,7 @@ class ApproachType(BaseType): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["ApproachType"] = Field( @@ -1325,6 +1402,7 @@ class AssayType(BaseType): identifier: Optional[str] = Field( default=None, + description="""The identifier can be any url or a compact URI, preferably supported by identifiers.org.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -1366,6 +1444,7 @@ class AssayType(BaseType): ) name: Optional[str] = Field( default=None, + description="""The name of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -1385,6 +1464,7 @@ class AssayType(BaseType): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["AssayType"] = Field( @@ -1433,15 +1513,31 @@ class BioSample(DandiBaseModel): "required": True, }, "sameAs": {"name": "sameAs", "range": "string"}, + "wasAttributedTo": { + "description": "Participant(s) or " + "Subject(s) associated with " + "this sample.", + "name": "wasAttributedTo", + }, + "wasDerivedFrom": { + "description": "Describes the hierarchy of " + "sample derivation or " + "aggregation.", + "name": "wasDerivedFrom", + }, }, } ) anatomy: Optional[list[Anatomy]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["BioSample"]}} + default=None, + description="""Identifier for what organ the sample belongs to. Use the most specific descriptor from sources such as UBERON.""", + json_schema_extra={"linkml_meta": {"domain_of": ["BioSample"]}}, ) assayType: Optional[list[AssayType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["BioSample"]}} + default=None, + description="""Identifier for the assay(s) used (e.g., OBI).""", + json_schema_extra={"linkml_meta": {"domain_of": ["BioSample"]}}, ) hasMember: Optional[list[str]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["BioSample"]}} @@ -1480,18 +1576,23 @@ class BioSample(DandiBaseModel): }, ) sampleType: SampleType = Field( - default=..., json_schema_extra={"linkml_meta": {"domain_of": ["BioSample"]}} + default=..., + description="""Identifier for the sample characteristics (e.g., from OBI, Encode).""", + json_schema_extra={"linkml_meta": {"domain_of": ["BioSample"]}}, ) wasAttributedTo: Optional[list[Participant]] = Field( default=None, + description="""Participant(s) or Subject(s) associated with this sample.""", json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}}, ) wasDerivedFrom: Optional[list[BioSample]] = Field( default=None, + description="""Describes the hierarchy of sample derivation or aggregation.""", json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}}, ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["BioSample"] = Field( @@ -1531,11 +1632,28 @@ class CommonModel(DandiBaseModel): "0xADDRESS>.", ], }, - "contributor": {"name": "contributor", "required": False}, - "description": {"name": "description", "required": False}, + "contributor": { + "description": "Contributors to this item: " + "persons or organizations.", + "name": "contributor", + "required": False, + "title": "Contributors", + }, + "description": { + "description": "A description of the item.", + "name": "description", + "required": False, + }, "license": {"name": "license", "required": False}, - "name": {"name": "name", "pattern": "^(?=.{,150}$)", "required": False}, + "name": { + "description": "The name of the item.", + "name": "name", + "pattern": "^(?=.{,150}$)", + "required": False, + "title": "Title", + }, "repository": { + "description": "location of the item", "name": "repository", "notes": [ "pydantic2linkml: Unable to translate " @@ -1548,6 +1666,7 @@ class CommonModel(DandiBaseModel): "range": "uri", }, "url": { + "description": "permalink to the item", "name": "url", "notes": [ "pydantic2linkml: Unable to translate the " @@ -1565,6 +1684,8 @@ class CommonModel(DandiBaseModel): about: Optional[list[Union[Anatomy, Disorder, GenericType]]] = Field( default=None, + title="Subject matter of the dataset", + description="""The subject matter of the content, such as disorders, brain anatomy.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -1578,6 +1699,7 @@ class CommonModel(DandiBaseModel): ) access: Optional[list[AccessRequirements]] = Field( default=None, + title="Access information", json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel"], @@ -1592,10 +1714,14 @@ class CommonModel(DandiBaseModel): }, ) acknowledgement: Optional[str] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Any acknowledgments not covered by contributors or external resources.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) contributor: Optional[list[Union[Organization, Person]]] = Field( default=None, + title="Contributors", + description="""Contributors to this item: persons or organizations.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -1624,6 +1750,7 @@ class CommonModel(DandiBaseModel): ) description: Optional[str] = Field( default=None, + description="""A description of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -1636,16 +1763,24 @@ class CommonModel(DandiBaseModel): }, ) ethicsApproval: Optional[list[EthicsApproval]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + title="Ethics approvals", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) keywords: Optional[list[str]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Keywords used to describe this content.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) license: Optional[list[LicenseType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Licenses associated with the item. DANDI only supports a subset of Creative Commons Licenses (creativecommons.org) applicable to datasets.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) name: Optional[str] = Field( default=None, + title="Title", + description="""The name of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -1665,6 +1800,7 @@ class CommonModel(DandiBaseModel): ) protocol: Optional[list[str]] = Field( default=None, + description="""A list of persistent URLs describing the protocol (e.g. protocols.io, or other DOIs).""", json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel"], @@ -1692,6 +1828,7 @@ class CommonModel(DandiBaseModel): ) repository: Optional[str] = Field( default=None, + description="""location of the item""", json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel", "Resource"], @@ -1711,10 +1848,13 @@ class CommonModel(DandiBaseModel): }, ) studyTarget: Optional[list[str]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Objectives or specific questions of the study.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) url: Optional[str] = Field( default=None, + description="""permalink to the item""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -1745,6 +1885,7 @@ class CommonModel(DandiBaseModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["CommonModel"] = Field( @@ -1840,6 +1981,10 @@ class BareAsset(CommonModel): "needed.", ], "slot_usage": { + "dateModified": { + "name": "dateModified", + "title": "Asset (file or metadata) " "modification date and time", + }, "sameAs": { "name": "sameAs", "notes": [ @@ -1856,6 +2001,10 @@ class BareAsset(CommonModel): "name": "variableMeasured", "range": "PropertyValue", }, + "wasAttributedTo": { + "description": "Associated participant(s) " "or subject(s).", + "name": "wasAttributedTo", + }, }, } ) @@ -1867,7 +2016,9 @@ class BareAsset(CommonModel): }, ) blobDateModified: Optional[datetime] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset"]}} + default=None, + title="Asset file modification date and time.", + json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset"]}}, ) contentSize: Union[int, str] = Field( default=..., @@ -1902,10 +2053,12 @@ class BareAsset(CommonModel): ) dateModified: Optional[datetime] = Field( default=None, + title="Asset (file or metadata) modification date and time", json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "Dandiset"]}}, ) digest: str = Field( default=..., + title="A map of dandi digests to their values", json_schema_extra={ "linkml_meta": { "domain_of": ["BareAsset"], @@ -1921,6 +2074,7 @@ class BareAsset(CommonModel): ) encodingFormat: str = Field( default=..., + title="File encoding format", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -1971,6 +2125,7 @@ class BareAsset(CommonModel): ) wasAttributedTo: Optional[list[Participant]] = Field( default=None, + description="""Associated participant(s) or subject(s).""", json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}}, ) wasDerivedFrom: Optional[list[BioSample]] = Field( @@ -1979,6 +2134,8 @@ class BareAsset(CommonModel): ) about: Optional[list[Union[Anatomy, Disorder, GenericType]]] = Field( default=None, + title="Subject matter of the dataset", + description="""The subject matter of the content, such as disorders, brain anatomy.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -1992,6 +2149,7 @@ class BareAsset(CommonModel): ) access: Optional[list[AccessRequirements]] = Field( default=None, + title="Access information", json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel"], @@ -2006,10 +2164,14 @@ class BareAsset(CommonModel): }, ) acknowledgement: Optional[str] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Any acknowledgments not covered by contributors or external resources.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) contributor: Optional[list[Union[Organization, Person]]] = Field( default=None, + title="Contributors", + description="""Contributors to this item: persons or organizations.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -2038,6 +2200,7 @@ class BareAsset(CommonModel): ) description: Optional[str] = Field( default=None, + description="""A description of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -2050,16 +2213,24 @@ class BareAsset(CommonModel): }, ) ethicsApproval: Optional[list[EthicsApproval]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + title="Ethics approvals", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) keywords: Optional[list[str]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Keywords used to describe this content.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) license: Optional[list[LicenseType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Licenses associated with the item. DANDI only supports a subset of Creative Commons Licenses (creativecommons.org) applicable to datasets.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) name: Optional[str] = Field( default=None, + title="Title", + description="""The name of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -2079,6 +2250,7 @@ class BareAsset(CommonModel): ) protocol: Optional[list[str]] = Field( default=None, + description="""A list of persistent URLs describing the protocol (e.g. protocols.io, or other DOIs).""", json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel"], @@ -2106,6 +2278,7 @@ class BareAsset(CommonModel): ) repository: Optional[str] = Field( default=None, + description="""location of the item""", json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel", "Resource"], @@ -2125,10 +2298,13 @@ class BareAsset(CommonModel): }, ) studyTarget: Optional[list[str]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Objectives or specific questions of the study.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) url: Optional[str] = Field( default=None, + description="""permalink to the item""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -2159,6 +2335,7 @@ class BareAsset(CommonModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["BareAsset"] = Field( @@ -2268,7 +2445,8 @@ class Asset(BareAsset): "notes": [ "pydantic2linkml: Impossible to generate slot usage entry for the " "id slot. The slot representation of the id field in the Asset " - "Pydantic model has changes in value in meta slots: ['required'] ." + "Pydantic model has changes in value in meta slots: ['description', " + "'required'] ." ], "slot_usage": { "identifier": { @@ -2327,7 +2505,9 @@ class Asset(BareAsset): }, ) blobDateModified: Optional[datetime] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset"]}} + default=None, + title="Asset file modification date and time.", + json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset"]}}, ) contentSize: Union[int, str] = Field( default=..., @@ -2362,10 +2542,12 @@ class Asset(BareAsset): ) dateModified: Optional[datetime] = Field( default=None, + title="Asset (file or metadata) modification date and time", json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "Dandiset"]}}, ) digest: str = Field( default=..., + title="A map of dandi digests to their values", json_schema_extra={ "linkml_meta": { "domain_of": ["BareAsset"], @@ -2381,6 +2563,7 @@ class Asset(BareAsset): ) encodingFormat: str = Field( default=..., + title="File encoding format", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -2431,6 +2614,7 @@ class Asset(BareAsset): ) wasAttributedTo: Optional[list[Participant]] = Field( default=None, + description="""Associated participant(s) or subject(s).""", json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}}, ) wasDerivedFrom: Optional[list[BioSample]] = Field( @@ -2439,6 +2623,8 @@ class Asset(BareAsset): ) about: Optional[list[Union[Anatomy, Disorder, GenericType]]] = Field( default=None, + title="Subject matter of the dataset", + description="""The subject matter of the content, such as disorders, brain anatomy.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -2452,6 +2638,7 @@ class Asset(BareAsset): ) access: Optional[list[AccessRequirements]] = Field( default=None, + title="Access information", json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel"], @@ -2466,10 +2653,14 @@ class Asset(BareAsset): }, ) acknowledgement: Optional[str] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Any acknowledgments not covered by contributors or external resources.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) contributor: Optional[list[Union[Organization, Person]]] = Field( default=None, + title="Contributors", + description="""Contributors to this item: persons or organizations.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -2498,6 +2689,7 @@ class Asset(BareAsset): ) description: Optional[str] = Field( default=None, + description="""A description of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -2510,16 +2702,24 @@ class Asset(BareAsset): }, ) ethicsApproval: Optional[list[EthicsApproval]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + title="Ethics approvals", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) keywords: Optional[list[str]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Keywords used to describe this content.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) license: Optional[list[LicenseType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Licenses associated with the item. DANDI only supports a subset of Creative Commons Licenses (creativecommons.org) applicable to datasets.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) name: Optional[str] = Field( default=None, + title="Title", + description="""The name of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -2539,6 +2739,7 @@ class Asset(BareAsset): ) protocol: Optional[list[str]] = Field( default=None, + description="""A list of persistent URLs describing the protocol (e.g. protocols.io, or other DOIs).""", json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel"], @@ -2566,6 +2767,7 @@ class Asset(BareAsset): ) repository: Optional[str] = Field( default=None, + description="""location of the item""", json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel", "Resource"], @@ -2585,10 +2787,13 @@ class Asset(BareAsset): }, ) studyTarget: Optional[list[str]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Objectives or specific questions of the study.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) url: Optional[str] = Field( default=None, + description="""permalink to the item""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -2619,6 +2824,7 @@ class Asset(BareAsset): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Asset"] = Field( @@ -2750,7 +2956,10 @@ class ContactPoint(DandiBaseModel): { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "slot_usage": { + "email": {"description": "Email address of contact.", "name": "email"}, "url": { + "description": "A Web page to find information on how " + "to contact.", "name": "url", "notes": [ "pydantic2linkml: Unable to translate the " @@ -2760,13 +2969,14 @@ class ContactPoint(DandiBaseModel): "at 0xADDRESS>." ], "required": False, - } + }, }, } ) email: Optional[str] = Field( default=None, + description="""Email address of contact.""", json_schema_extra={ "linkml_meta": { "domain_of": ["ContactPoint", "Contributor"], @@ -2780,6 +2990,7 @@ class ContactPoint(DandiBaseModel): ) url: Optional[str] = Field( default=None, + description="""A Web page to find information on how to contact.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -2802,6 +3013,7 @@ class ContactPoint(DandiBaseModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["ContactPoint"] = Field( @@ -2841,11 +3053,23 @@ class Contributor(DandiBaseModel): "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "slot_usage": { "identifier": { + "description": "Use a common identifier such as " + "ORCID (orcid.org) for people or " + "ROR (ror.org) for institutions.", "name": "identifier", "range": "string", "required": False, + "title": "A common identifier", + }, + "includeInCitation": { + "description": "A flag to indicate " + "whether a contributor " + "should be included when " + "generating a citation " + "for the item.", + "ifabsent": "True", + "name": "includeInCitation", }, - "includeInCitation": {"ifabsent": "True", "name": "includeInCitation"}, "name": {"name": "name", "required": False}, "url": { "name": "url", @@ -2863,7 +3087,10 @@ class Contributor(DandiBaseModel): ) awardNumber: Optional[str] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"]}} + default=None, + title="Identifier for an award", + description="""Identifier associated with a sponsored or gift award.""", + json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"]}}, ) email: Optional[str] = Field( default=None, @@ -2880,6 +3107,8 @@ class Contributor(DandiBaseModel): ) identifier: Optional[str] = Field( default=None, + title="A common identifier", + description="""Use a common identifier such as ORCID (orcid.org) for people or ROR (ror.org) for institutions.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -2905,6 +3134,8 @@ class Contributor(DandiBaseModel): ) includeInCitation: Optional[bool] = Field( default=True, + title="Include contributor in citation", + description="""A flag to indicate whether a contributor should be included when generating a citation for the item.""", json_schema_extra={ "linkml_meta": {"domain_of": ["Contributor"], "ifabsent": "True"} }, @@ -2929,7 +3160,10 @@ class Contributor(DandiBaseModel): }, ) roleName: Optional[list[RoleType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"]}} + default=None, + title="Role", + description="""Role(s) of the contributor. Multiple roles can be selected.""", + json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"]}}, ) url: Optional[str] = Field( default=None, @@ -2955,6 +3189,7 @@ class Contributor(DandiBaseModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Contributor"] = Field( @@ -3000,11 +3235,11 @@ class Dandiset(CommonModel): "pydantic2linkml: Impossible to generate slot usage entry for the " "contributor slot. The slot representation of the contributor field " "in the Dandiset Pydantic model has changes in value in meta slots: " - "['required'] .", + "['description', 'required', 'title'] .", "pydantic2linkml: Impossible to generate slot usage entry for the " "description slot. The slot representation of the description field " "in the Dandiset Pydantic model has changes in value in meta slots: " - "['required'] .", + "['description', 'required'] .", "pydantic2linkml: Impossible to generate slot usage entry for the " "id slot. The slot representation of the id field in the Dandiset " "Pydantic model has changes in value in meta slots: ['required'] .", @@ -3015,20 +3250,29 @@ class Dandiset(CommonModel): "pydantic2linkml: Impossible to generate slot usage entry for the " "name slot. The slot representation of the name field in the " "Dandiset Pydantic model has changes in value in meta slots: " - "['required'] .", + "['description', 'required', 'title'] .", "pydantic2linkml: Impossible to generate slot usage entry for the " "wasGeneratedBy slot. The slot representation of the wasGeneratedBy " "field in the Dandiset Pydantic model has changes in value in meta " "slots: ['range'] .", ], "slot_usage": { + "dateModified": { + "name": "dateModified", + "title": "Last modification date and time.", + }, "identifier": { + "description": "A Dandiset identifier that can " + "be resolved by identifiers.org.", "name": "identifier", "pattern": "^[A-Z][-A-Z]*:\\d{6}$", "range": "string", "required": True, + "title": "Dandiset identifier", }, "sameAs": { + "description": "Known DANDI URLs of the Dandiset at " + "other DANDI instances.", "name": "sameAs", "pattern": "^dandi://[A-Z][-A-Z]*/\\d{6}(@(draft|\\d+\\.\\d+\\.\\d+))?(/\\S+)?$", "range": "string", @@ -3044,14 +3288,19 @@ class Dandiset(CommonModel): default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}} ) dateCreated: Optional[datetime] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}} + default=None, + title="Dandiset creation date and time.", + json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}}, ) dateModified: Optional[datetime] = Field( default=None, + title="Last modification date and time.", json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "Dandiset"]}}, ) identifier: str = Field( default=..., + title="Dandiset identifier", + description="""A Dandiset identifier that can be resolved by identifiers.org.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -3092,6 +3341,7 @@ class Dandiset(CommonModel): ) sameAs: Optional[list[str]] = Field( default=None, + description="""Known DANDI URLs of the Dandiset at other DANDI instances.""", json_schema_extra={ "linkml_meta": { "domain_of": ["BareAsset", "BioSample", "Dandiset", "Participant"] @@ -3104,6 +3354,8 @@ class Dandiset(CommonModel): ) about: Optional[list[Union[Anatomy, Disorder, GenericType]]] = Field( default=None, + title="Subject matter of the dataset", + description="""The subject matter of the content, such as disorders, brain anatomy.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -3117,6 +3369,7 @@ class Dandiset(CommonModel): ) access: Optional[list[AccessRequirements]] = Field( default=None, + title="Access information", json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel"], @@ -3131,10 +3384,14 @@ class Dandiset(CommonModel): }, ) acknowledgement: Optional[str] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Any acknowledgments not covered by contributors or external resources.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) contributor: Optional[list[Union[Organization, Person]]] = Field( default=None, + title="Contributors", + description="""Contributors to this item: persons or organizations.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -3163,6 +3420,7 @@ class Dandiset(CommonModel): ) description: Optional[str] = Field( default=None, + description="""A description of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -3175,16 +3433,24 @@ class Dandiset(CommonModel): }, ) ethicsApproval: Optional[list[EthicsApproval]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + title="Ethics approvals", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) keywords: Optional[list[str]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Keywords used to describe this content.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) license: Optional[list[LicenseType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Licenses associated with the item. DANDI only supports a subset of Creative Commons Licenses (creativecommons.org) applicable to datasets.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) name: Optional[str] = Field( default=None, + title="Title", + description="""The name of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -3204,6 +3470,7 @@ class Dandiset(CommonModel): ) protocol: Optional[list[str]] = Field( default=None, + description="""A list of persistent URLs describing the protocol (e.g. protocols.io, or other DOIs).""", json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel"], @@ -3231,6 +3498,7 @@ class Dandiset(CommonModel): ) repository: Optional[str] = Field( default=None, + description="""location of the item""", json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel", "Resource"], @@ -3250,10 +3518,13 @@ class Dandiset(CommonModel): }, ) studyTarget: Optional[list[str]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Objectives or specific questions of the study.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) url: Optional[str] = Field( default=None, + description="""permalink to the item""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -3284,6 +3555,7 @@ class Dandiset(CommonModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Dandiset"] = Field( @@ -3408,6 +3680,8 @@ class Disorder(BaseType): dxdate: Optional[list[Union[date, datetime]]] = Field( default=None, + title="Dates of diagnosis", + description="""Dates of diagnosis""", json_schema_extra={ "linkml_meta": { "any_of": [{"range": "date"}, {"range": "datetime"}], @@ -3417,6 +3691,7 @@ class Disorder(BaseType): ) identifier: Optional[str] = Field( default=None, + description="""The identifier can be any url or a compact URI, preferably supported by identifiers.org.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -3458,6 +3733,7 @@ class Disorder(BaseType): ) name: Optional[str] = Field( default=None, + description="""The name of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -3477,6 +3753,7 @@ class Disorder(BaseType): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Disorder"] = Field( @@ -3515,19 +3792,30 @@ class Equipment(DandiBaseModel): { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "slot_usage": { - "description": {"name": "description", "required": False}, + "description": { + "description": "The description of the " "equipment.", + "name": "description", + "required": False, + }, "identifier": { "name": "identifier", "range": "string", "required": False, }, - "name": {"name": "name", "pattern": "^(?=.{,150}$)", "required": True}, + "name": { + "description": "A name for the equipment.", + "name": "name", + "pattern": "^(?=.{,150}$)", + "required": True, + "title": "Title", + }, }, } ) description: Optional[str] = Field( default=None, + description="""The description of the equipment.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -3566,6 +3854,8 @@ class Equipment(DandiBaseModel): ) name: str = Field( default=..., + title="Title", + description="""A name for the equipment.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -3585,6 +3875,7 @@ class Equipment(DandiBaseModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Equipment"] = Field( @@ -3627,17 +3918,27 @@ class EthicsApproval(DandiBaseModel): { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "slot_usage": { + "contactPoint": { + "description": "Information about the ethics " + "approval committee.", + "name": "contactPoint", + }, "identifier": { + "description": "Approved Protocol identifier, " + "often a number or alphanumeric " + "string.", "name": "identifier", "range": "string", "required": True, - } + "title": "Approved protocol identifier", + }, }, } ) contactPoint: Optional[ContactPoint] = Field( default=None, + description="""Information about the ethics approval committee.""", json_schema_extra={ "linkml_meta": { "domain_of": ["AccessRequirements", "EthicsApproval", "Organization"] @@ -3646,6 +3947,8 @@ class EthicsApproval(DandiBaseModel): ) identifier: str = Field( default=..., + title="Approved protocol identifier", + description="""Approved Protocol identifier, often a number or alphanumeric string.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -3671,6 +3974,7 @@ class EthicsApproval(DandiBaseModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["EthicsApproval"] = Field( @@ -3702,6 +4006,7 @@ class GenericType(BaseType): identifier: Optional[str] = Field( default=None, + description="""The identifier can be any url or a compact URI, preferably supported by identifiers.org.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -3743,6 +4048,7 @@ class GenericType(BaseType): ) name: Optional[str] = Field( default=None, + description="""The name of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -3762,6 +4068,7 @@ class GenericType(BaseType): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["GenericType"] = Field( @@ -3800,25 +4107,37 @@ class GenotypeInfo(DandiBaseModel): { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "slot_usage": { - "wasGeneratedBy": {"name": "wasGeneratedBy", "range": "Session"} + "wasGeneratedBy": { + "description": "Information about session " + "activity used to determine " + "genotype.", + "name": "wasGeneratedBy", + "range": "Session", + } }, } ) alleles: list[Allele] = Field( - default=..., json_schema_extra={"linkml_meta": {"domain_of": ["GenotypeInfo"]}} + default=..., + description="""Information about alleles at the locus.""", + json_schema_extra={"linkml_meta": {"domain_of": ["GenotypeInfo"]}}, ) locus: Locus = Field( - default=..., json_schema_extra={"linkml_meta": {"domain_of": ["GenotypeInfo"]}} + default=..., + description="""Locus at which information was extracted.""", + json_schema_extra={"linkml_meta": {"domain_of": ["GenotypeInfo"]}}, ) wasGeneratedBy: Optional[list[Session]] = Field( default=None, + description="""Information about session activity used to determine genotype.""", json_schema_extra={ "linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]} }, ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["GenotypeInfo"] = Field( @@ -3849,6 +4168,7 @@ class Locus(DandiBaseModel): {"range": "string"}, {"multivalued": True, "range": "string"}, ], + "description": "Identifier for genotyping " "locus.", "name": "identifier", "range": "Any", "required": True, @@ -3859,6 +4179,7 @@ class Locus(DandiBaseModel): identifier: str = Field( default=..., + description="""Identifier for genotyping locus.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -3891,6 +4212,7 @@ class Locus(DandiBaseModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Locus"] = Field( @@ -3922,6 +4244,7 @@ class MeasurementTechniqueType(BaseType): identifier: Optional[str] = Field( default=None, + description="""The identifier can be any url or a compact URI, preferably supported by identifiers.org.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -3963,6 +4286,7 @@ class MeasurementTechniqueType(BaseType): ) name: Optional[str] = Field( default=None, + description="""The name of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -3982,6 +4306,7 @@ class MeasurementTechniqueType(BaseType): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["MeasurementTechniqueType"] = Field( @@ -4020,23 +4345,30 @@ class Organization(Contributor): { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "notes": [ + "pydantic2linkml: Impossible to generate slot usage entry for the " + "identifier slot. The slot representation of the identifier field " + "in the Organization Pydantic model has changes in value in meta " + "slots: ['description', 'title'] .", "pydantic2linkml: Impossible to generate slot usage entry for the " "includeInCitation slot. The slot representation of the " "includeInCitation field in the Organization Pydantic model has " - "changes in value in meta slots: ['ifabsent'] ." + "changes in value in meta slots: ['description', 'ifabsent'] .", ], "slot_usage": { - "contactPoint": {"multivalued": True, "name": "contactPoint"}, - "identifier": { - "name": "identifier", - "pattern": "^https://ror.org/[a-z0-9]+$", - }, + "contactPoint": { + "description": "Contact for the organization", + "multivalued": True, + "name": "contactPoint", + "title": "Organization contact information", + } }, } ) contactPoint: Optional[list[ContactPoint]] = Field( default=None, + title="Organization contact information", + description="""Contact for the organization""", json_schema_extra={ "linkml_meta": { "domain_of": ["AccessRequirements", "EthicsApproval", "Organization"] @@ -4044,7 +4376,10 @@ class Organization(Contributor): }, ) awardNumber: Optional[str] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"]}} + default=None, + title="Identifier for an award", + description="""Identifier associated with a sponsored or gift award.""", + json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"]}}, ) email: Optional[str] = Field( default=None, @@ -4061,6 +4396,8 @@ class Organization(Contributor): ) identifier: Optional[str] = Field( default=None, + title="A common identifier", + description="""Use a common identifier such as ORCID (orcid.org) for people or ROR (ror.org) for institutions.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -4086,6 +4423,8 @@ class Organization(Contributor): ) includeInCitation: Optional[bool] = Field( default=True, + title="Include contributor in citation", + description="""A flag to indicate whether a contributor should be included when generating a citation for the item.""", json_schema_extra={ "linkml_meta": {"domain_of": ["Contributor"], "ifabsent": "True"} }, @@ -4110,7 +4449,10 @@ class Organization(Contributor): }, ) roleName: Optional[list[RoleType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"]}} + default=None, + title="Role", + description="""Role(s) of the contributor. Multiple roles can be selected.""", + json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"]}}, ) url: Optional[str] = Field( default=None, @@ -4136,6 +4478,7 @@ class Organization(Contributor): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Organization"] = Field( @@ -4155,19 +4498,6 @@ class Organization(Contributor): }, ) - @field_validator("identifier") - def pattern_identifier(cls, v): - pattern = re.compile(r"^https://ror.org/[a-z0-9]+$") - if isinstance(v, list): - for element in v: - if isinstance(element, str) and not pattern.match(element): - err_msg = f"Invalid identifier format: {element}" - raise ValueError(err_msg) - elif isinstance(v, str) and not pattern.match(v): - err_msg = f"Invalid identifier format: {v}" - raise ValueError(err_msg) - return v - @field_validator("url") def pattern_url(cls, v): pattern = re.compile(r"^(?i:http|https)://[^\s]+$") @@ -4196,25 +4526,43 @@ class Participant(DandiBaseModel): "range": "string", "required": True, }, - "sameAs": {"name": "sameAs", "range": "string"}, + "sameAs": { + "description": "An identifier to link participants " + "or subjects across datasets.", + "name": "sameAs", + "range": "string", + }, + "species": { + "description": "An identifier indicating the " + "taxonomic classification of the " + "participant or subject.", + "name": "species", + }, }, } ) age: Optional[PropertyValue] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}} + default=None, + description="""A representation of age using ISO 8601 duration. This should include a valueReference if anything other than date of birth is used.""", + json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}}, ) altName: Optional[list[str]] = Field( default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}} ) cellLine: Optional[str] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}} + default=None, + description="""Cell line associated with the participant or subject.""", + json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}}, ) disorder: Optional[list[Disorder]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}} + default=None, + description="""Any current diagnosed disease or disorder associated with the participant or subject.""", + json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}}, ) genotype: Optional[Union[GenotypeInfo, str]] = Field( default=None, + description="""Genotype descriptor of participant or subject if available""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -4251,10 +4599,13 @@ class Participant(DandiBaseModel): }, ) relatedParticipant: Optional[list[RelatedParticipant]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}} + default=None, + description="""Information about related participants or subjects in a study or across studies.""", + json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}}, ) sameAs: Optional[list[str]] = Field( default=None, + description="""An identifier to link participants or subjects across datasets.""", json_schema_extra={ "linkml_meta": { "domain_of": ["BareAsset", "BioSample", "Dandiset", "Participant"] @@ -4262,16 +4613,21 @@ class Participant(DandiBaseModel): }, ) sex: Optional[SexType] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}} + default=None, + description="""Identifier for sex of the participant or subject if available. (e.g. from OBI)""", + json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}}, ) species: Optional[SpeciesType] = Field( default=None, + description="""An identifier indicating the taxonomic classification of the participant or subject.""", json_schema_extra={ "linkml_meta": {"domain_of": ["AssetsSummary", "Participant"]} }, ) strain: Optional[StrainType] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}} + default=None, + description="""Identifier for the strain of the participant or subject.""", + json_schema_extra={"linkml_meta": {"domain_of": ["Participant"]}}, ) vendor: Optional[Organization] = Field( default=None, @@ -4288,6 +4644,7 @@ class Participant(DandiBaseModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Participant"] = Field( @@ -4313,24 +4670,27 @@ class Person(Contributor): { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "notes": [ + "pydantic2linkml: Impossible to generate slot usage entry for the " + "identifier slot. The slot representation of the identifier field " + "in the Person Pydantic model has changes in value in meta slots: " + "['description', 'title'] .", "pydantic2linkml: Impossible to generate slot usage entry for the " "name slot. The slot representation of the name field in the Person " - "Pydantic model has changes in value in meta slots: ['required'] ." + "Pydantic model has changes in value in meta slots: ['required'] .", ], - "slot_usage": { - "identifier": { - "name": "identifier", - "pattern": "^\\d{4}-\\d{4}-\\d{4}-(\\d{3}X|\\d{4})$", - } - }, } ) affiliation: Optional[list[Affiliation]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Person"]}} + default=None, + description="""An organization that this person is affiliated with.""", + json_schema_extra={"linkml_meta": {"domain_of": ["Person"]}}, ) awardNumber: Optional[str] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"]}} + default=None, + title="Identifier for an award", + description="""Identifier associated with a sponsored or gift award.""", + json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"]}}, ) email: Optional[str] = Field( default=None, @@ -4347,6 +4707,8 @@ class Person(Contributor): ) identifier: Optional[str] = Field( default=None, + title="A common identifier", + description="""Use a common identifier such as ORCID (orcid.org) for people or ROR (ror.org) for institutions.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -4372,6 +4734,8 @@ class Person(Contributor): ) includeInCitation: Optional[bool] = Field( default=True, + title="Include contributor in citation", + description="""A flag to indicate whether a contributor should be included when generating a citation for the item.""", json_schema_extra={ "linkml_meta": {"domain_of": ["Contributor"], "ifabsent": "True"} }, @@ -4396,7 +4760,10 @@ class Person(Contributor): }, ) roleName: Optional[list[RoleType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"]}} + default=None, + title="Role", + description="""Role(s) of the contributor. Multiple roles can be selected.""", + json_schema_extra={"linkml_meta": {"domain_of": ["Contributor"]}}, ) url: Optional[str] = Field( default=None, @@ -4422,6 +4789,7 @@ class Person(Contributor): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Person"] = Field( @@ -4441,19 +4809,6 @@ class Person(Contributor): }, ) - @field_validator("identifier") - def pattern_identifier(cls, v): - pattern = re.compile(r"^\d{4}-\d{4}-\d{4}-(\d{3}X|\d{4})$") - if isinstance(v, list): - for element in v: - if isinstance(element, str) and not pattern.match(element): - err_msg = f"Invalid identifier format: {element}" - raise ValueError(err_msg) - elif isinstance(v, str) and not pattern.match(v): - err_msg = f"Invalid identifier format: {v}" - raise ValueError(err_msg) - return v - @field_validator("url") def pattern_url(cls, v): pattern = re.compile(r"^(?i:http|https)://[^\s]+$") @@ -4470,11 +4825,24 @@ def pattern_url(cls, v): class Project(Activity): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7"} + { + "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", + "notes": [ + "pydantic2linkml: Impossible to generate slot usage entry for the " + "description slot. The slot representation of the description field " + "in the Project Pydantic model has changes in value in meta slots: " + "['description'] .", + "pydantic2linkml: Impossible to generate slot usage entry for the " + "name slot. The slot representation of the name field in the " + "Project Pydantic model has changes in value in meta slots: " + "['description', 'title'] .", + ], + } ) description: Optional[str] = Field( default=None, + description="""The description of the activity.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -4516,6 +4884,8 @@ class Project(Activity): ) name: str = Field( default=..., + title="Title", + description="""The name of the activity.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -4537,7 +4907,9 @@ class Project(Activity): default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} ) used: Optional[list[Equipment]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} + default=None, + description="""A listing of equipment used for the activity.""", + json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}}, ) wasAssociatedWith: Optional[list[Union[Agent, Organization, Person, Software]]] = ( Field( @@ -4573,6 +4945,7 @@ class Project(Activity): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Project"] = Field( @@ -4639,6 +5012,7 @@ class PropertyValue(DandiBaseModel): ) propertyID: Optional[Union[IdentifierType, str]] = Field( default=None, + description="""A commonly used identifier for the characteristic represented by the property. For example, a known prefix like DOI or a full URL.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -4664,6 +5038,7 @@ class PropertyValue(DandiBaseModel): ) value: Optional[Any] = Field( default=None, + description="""The value associated with this property.""", json_schema_extra={ "linkml_meta": { "any_of": [{"range": "Any"}, {"multivalued": True, "range": "Any"}], @@ -4683,6 +5058,7 @@ class PropertyValue(DandiBaseModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["PropertyValue"] = Field( @@ -4713,6 +5089,7 @@ class Publishable(DandiBaseModel): ) publishedBy: Union[PublishActivity, str] = Field( default=..., + description="""The URL should contain the provenance of the publishing process.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -4734,6 +5111,7 @@ class Publishable(DandiBaseModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Publishable"] = Field( @@ -4761,6 +5139,7 @@ class PublishActivity(Activity): description: Optional[str] = Field( default=None, + description="""The description of the activity.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -4802,6 +5181,8 @@ class PublishActivity(Activity): ) name: str = Field( default=..., + title="Title", + description="""The name of the activity.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -4823,7 +5204,9 @@ class PublishActivity(Activity): default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} ) used: Optional[list[Equipment]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} + default=None, + description="""A listing of equipment used for the activity.""", + json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}}, ) wasAssociatedWith: Optional[list[Union[Agent, Organization, Person, Software]]] = ( Field( @@ -4859,6 +5242,7 @@ class PublishActivity(Activity): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["PublishActivity"] = Field( @@ -4920,6 +5304,7 @@ class PublishedAsset(Publishable, Asset): ) publishedBy: Union[PublishActivity, str] = Field( default=..., + description="""The URL should contain the provenance of the publishing process.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -4985,7 +5370,9 @@ class PublishedAsset(Publishable, Asset): }, ) blobDateModified: Optional[datetime] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset"]}} + default=None, + title="Asset file modification date and time.", + json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset"]}}, ) contentSize: Union[int, str] = Field( default=..., @@ -5020,10 +5407,12 @@ class PublishedAsset(Publishable, Asset): ) dateModified: Optional[datetime] = Field( default=None, + title="Asset (file or metadata) modification date and time", json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "Dandiset"]}}, ) digest: str = Field( default=..., + title="A map of dandi digests to their values", json_schema_extra={ "linkml_meta": { "domain_of": ["BareAsset"], @@ -5039,6 +5428,7 @@ class PublishedAsset(Publishable, Asset): ) encodingFormat: str = Field( default=..., + title="File encoding format", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -5089,6 +5479,7 @@ class PublishedAsset(Publishable, Asset): ) wasAttributedTo: Optional[list[Participant]] = Field( default=None, + description="""Associated participant(s) or subject(s).""", json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "BioSample"]}}, ) wasDerivedFrom: Optional[list[BioSample]] = Field( @@ -5097,6 +5488,8 @@ class PublishedAsset(Publishable, Asset): ) about: Optional[list[Union[Anatomy, Disorder, GenericType]]] = Field( default=None, + title="Subject matter of the dataset", + description="""The subject matter of the content, such as disorders, brain anatomy.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -5110,6 +5503,7 @@ class PublishedAsset(Publishable, Asset): ) access: Optional[list[AccessRequirements]] = Field( default=None, + title="Access information", json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel"], @@ -5124,10 +5518,14 @@ class PublishedAsset(Publishable, Asset): }, ) acknowledgement: Optional[str] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Any acknowledgments not covered by contributors or external resources.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) contributor: Optional[list[Union[Organization, Person]]] = Field( default=None, + title="Contributors", + description="""Contributors to this item: persons or organizations.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -5156,6 +5554,7 @@ class PublishedAsset(Publishable, Asset): ) description: Optional[str] = Field( default=None, + description="""A description of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -5168,16 +5567,24 @@ class PublishedAsset(Publishable, Asset): }, ) ethicsApproval: Optional[list[EthicsApproval]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + title="Ethics approvals", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) keywords: Optional[list[str]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Keywords used to describe this content.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) license: Optional[list[LicenseType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Licenses associated with the item. DANDI only supports a subset of Creative Commons Licenses (creativecommons.org) applicable to datasets.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) name: Optional[str] = Field( default=None, + title="Title", + description="""The name of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -5197,6 +5604,7 @@ class PublishedAsset(Publishable, Asset): ) protocol: Optional[list[str]] = Field( default=None, + description="""A list of persistent URLs describing the protocol (e.g. protocols.io, or other DOIs).""", json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel"], @@ -5224,6 +5632,7 @@ class PublishedAsset(Publishable, Asset): ) repository: Optional[str] = Field( default=None, + description="""location of the item""", json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel", "Resource"], @@ -5243,10 +5652,13 @@ class PublishedAsset(Publishable, Asset): }, ) studyTarget: Optional[list[str]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Objectives or specific questions of the study.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) url: Optional[str] = Field( default=None, + description="""permalink to the item""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -5277,6 +5689,7 @@ class PublishedAsset(Publishable, Asset): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["PublishedAsset"] = Field( @@ -5427,11 +5840,11 @@ class PublishedDandiset(Publishable, Dandiset): "pydantic2linkml: Impossible to generate slot usage entry for the " "id slot. The slot representation of the id field in the " "PublishedDandiset Pydantic model has changes in value in meta " - "slots: ['pattern'] .", + "slots: ['description', 'pattern'] .", "pydantic2linkml: Impossible to generate slot usage entry for the " "url slot. The slot representation of the url field in the " "PublishedDandiset Pydantic model has changes in value in meta " - "slots: ['notes', 'required'] .", + "slots: ['description', 'notes', 'required'] .", "pydantic2linkml: Warning: LinkML does not support multiple " "inheritance. Publishable is not specified as a parent, through the " "`is_a` meta slot, but as a mixin.", @@ -5445,12 +5858,14 @@ class PublishedDandiset(Publishable, Dandiset): doi: Optional[str] = Field( default="", + title="DOI", json_schema_extra={ "linkml_meta": {"domain_of": ["PublishedDandiset"], "ifabsent": "string()"} }, ) releaseNotes: Optional[str] = Field( default=None, + description="""The description of the release""", json_schema_extra={"linkml_meta": {"domain_of": ["PublishedDandiset"]}}, ) datePublished: datetime = Field( @@ -5458,6 +5873,7 @@ class PublishedDandiset(Publishable, Dandiset): ) publishedBy: Union[PublishActivity, str] = Field( default=..., + description="""The URL should contain the provenance of the publishing process.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -5484,14 +5900,19 @@ class PublishedDandiset(Publishable, Dandiset): default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}} ) dateCreated: Optional[datetime] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}} + default=None, + title="Dandiset creation date and time.", + json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}}, ) dateModified: Optional[datetime] = Field( default=None, + title="Last modification date and time.", json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "Dandiset"]}}, ) identifier: str = Field( default=..., + title="Dandiset identifier", + description="""A Dandiset identifier that can be resolved by identifiers.org.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -5532,6 +5953,7 @@ class PublishedDandiset(Publishable, Dandiset): ) sameAs: Optional[list[str]] = Field( default=None, + description="""Known DANDI URLs of the Dandiset at other DANDI instances.""", json_schema_extra={ "linkml_meta": { "domain_of": ["BareAsset", "BioSample", "Dandiset", "Participant"] @@ -5544,6 +5966,8 @@ class PublishedDandiset(Publishable, Dandiset): ) about: Optional[list[Union[Anatomy, Disorder, GenericType]]] = Field( default=None, + title="Subject matter of the dataset", + description="""The subject matter of the content, such as disorders, brain anatomy.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -5557,6 +5981,7 @@ class PublishedDandiset(Publishable, Dandiset): ) access: Optional[list[AccessRequirements]] = Field( default=None, + title="Access information", json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel"], @@ -5571,10 +5996,14 @@ class PublishedDandiset(Publishable, Dandiset): }, ) acknowledgement: Optional[str] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Any acknowledgments not covered by contributors or external resources.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) contributor: Optional[list[Union[Organization, Person]]] = Field( default=None, + title="Contributors", + description="""Contributors to this item: persons or organizations.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -5603,6 +6032,7 @@ class PublishedDandiset(Publishable, Dandiset): ) description: Optional[str] = Field( default=None, + description="""A description of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -5615,16 +6045,24 @@ class PublishedDandiset(Publishable, Dandiset): }, ) ethicsApproval: Optional[list[EthicsApproval]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + title="Ethics approvals", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) keywords: Optional[list[str]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Keywords used to describe this content.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) license: Optional[list[LicenseType]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Licenses associated with the item. DANDI only supports a subset of Creative Commons Licenses (creativecommons.org) applicable to datasets.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) name: Optional[str] = Field( default=None, + title="Title", + description="""The name of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -5644,6 +6082,7 @@ class PublishedDandiset(Publishable, Dandiset): ) protocol: Optional[list[str]] = Field( default=None, + description="""A list of persistent URLs describing the protocol (e.g. protocols.io, or other DOIs).""", json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel"], @@ -5671,6 +6110,7 @@ class PublishedDandiset(Publishable, Dandiset): ) repository: Optional[str] = Field( default=None, + description="""location of the item""", json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel", "Resource"], @@ -5690,10 +6130,13 @@ class PublishedDandiset(Publishable, Dandiset): }, ) studyTarget: Optional[list[str]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}} + default=None, + description="""Objectives or specific questions of the study.""", + json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) url: Optional[str] = Field( default=None, + description="""permalink to the item""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -5724,6 +6167,7 @@ class PublishedDandiset(Publishable, Dandiset): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["PublishedDandiset"] = Field( @@ -5860,8 +6304,23 @@ class RelatedParticipant(DandiBaseModel): "range": "string", "required": False, }, - "name": {"name": "name", "required": False}, - "relation": {"name": "relation", "range": "ParticipantRelationType"}, + "name": { + "name": "name", + "required": False, + "title": "Name of the participant or subject", + }, + "relation": { + "description": "Indicates how the current " + "participant or subject is related " + "to the other participant or " + "subject. This relation should " + "satisfy: Participant/Subject " + " " + "relatedParticipant/Subject.", + "name": "relation", + "range": "ParticipantRelationType", + "title": "Participant or subject relation", + }, "url": { "name": "url", "notes": [ @@ -5872,6 +6331,7 @@ class RelatedParticipant(DandiBaseModel): "at 0xADDRESS>." ], "required": False, + "title": "URL of the related participant or subject", }, }, } @@ -5904,6 +6364,7 @@ class RelatedParticipant(DandiBaseModel): ) name: Optional[str] = Field( default=None, + title="Name of the participant or subject", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -5923,12 +6384,15 @@ class RelatedParticipant(DandiBaseModel): ) relation: ParticipantRelationType = Field( default=..., + title="Participant or subject relation", + description="""Indicates how the current participant or subject is related to the other participant or subject. This relation should satisfy: Participant/Subject relatedParticipant/Subject.""", json_schema_extra={ "linkml_meta": {"domain_of": ["RelatedParticipant", "Resource"]} }, ) url: Optional[str] = Field( default=None, + title="URL of the related participant or subject", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -5951,6 +6415,7 @@ class RelatedParticipant(DandiBaseModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["RelatedParticipant"] = Field( @@ -5994,9 +6459,27 @@ class Resource(DandiBaseModel): "range": "string", "required": False, }, - "name": {"name": "name", "required": False}, - "relation": {"name": "relation", "range": "RelationType"}, - "repository": {"name": "repository", "range": "string"}, + "name": { + "name": "name", + "required": False, + "title": "A title of the resource", + }, + "relation": { + "description": "Indicates how the resource is " + "related to the dataset. This " + "relation should satisfy: dandiset " + " resource.", + "name": "relation", + "range": "RelationType", + "title": "Resource relation", + }, + "repository": { + "description": "Name of the repository in which " + "the resource is housed.", + "name": "repository", + "range": "string", + "title": "Name of the repository", + }, "url": { "name": "url", "notes": [ @@ -6007,6 +6490,7 @@ class Resource(DandiBaseModel): "at 0xADDRESS>." ], "required": False, + "title": "URL of the resource", }, }, } @@ -6039,6 +6523,7 @@ class Resource(DandiBaseModel): ) name: Optional[str] = Field( default=None, + title="A title of the resource", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -6058,19 +6543,27 @@ class Resource(DandiBaseModel): ) relation: RelationType = Field( default=..., + title="Resource relation", + description="""Indicates how the resource is related to the dataset. This relation should satisfy: dandiset resource.""", json_schema_extra={ "linkml_meta": {"domain_of": ["RelatedParticipant", "Resource"]} }, ) repository: Optional[str] = Field( default=None, + title="Name of the repository", + description="""Name of the repository in which the resource is housed.""", json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel", "Resource"]}}, ) resourceType: Optional[ResourceType] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Resource"]}} + default=None, + title="Resource type", + description="""The type of resource.""", + json_schema_extra={"linkml_meta": {"domain_of": ["Resource"]}}, ) url: Optional[str] = Field( default=None, + title="URL of the resource", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -6093,6 +6586,7 @@ class Resource(DandiBaseModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Resource"] = Field( @@ -6137,6 +6631,7 @@ class SampleType(BaseType): identifier: Optional[str] = Field( default=None, + description="""The identifier can be any url or a compact URI, preferably supported by identifiers.org.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -6178,6 +6673,7 @@ class SampleType(BaseType): ) name: Optional[str] = Field( default=None, + description="""The name of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -6197,6 +6693,7 @@ class SampleType(BaseType): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["SampleType"] = Field( @@ -6232,11 +6729,24 @@ def pattern_name(cls, v): class Session(Activity): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7"} + { + "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", + "notes": [ + "pydantic2linkml: Impossible to generate slot usage entry for the " + "description slot. The slot representation of the description field " + "in the Session Pydantic model has changes in value in meta slots: " + "['description'] .", + "pydantic2linkml: Impossible to generate slot usage entry for the " + "name slot. The slot representation of the name field in the " + "Session Pydantic model has changes in value in meta slots: " + "['description', 'title'] .", + ], + } ) description: Optional[str] = Field( default=None, + description="""The description of the activity.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -6278,6 +6788,8 @@ class Session(Activity): ) name: str = Field( default=..., + title="Title", + description="""The name of the activity.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -6299,7 +6811,9 @@ class Session(Activity): default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} ) used: Optional[list[Equipment]] = Field( - default=None, json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}} + default=None, + description="""A listing of equipment used for the activity.""", + json_schema_extra={"linkml_meta": {"domain_of": ["Activity"]}}, ) wasAssociatedWith: Optional[list[Union[Agent, Organization, Person, Software]]] = ( Field( @@ -6335,6 +6849,7 @@ class Session(Activity): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Session"] = Field( @@ -6379,6 +6894,7 @@ class SexType(BaseType): identifier: Optional[str] = Field( default=None, + description="""The identifier can be any url or a compact URI, preferably supported by identifiers.org.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -6420,6 +6936,7 @@ class SexType(BaseType): ) name: Optional[str] = Field( default=None, + description="""The name of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -6439,6 +6956,7 @@ class SexType(BaseType): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["SexType"] = Field( @@ -6478,13 +6996,16 @@ class Software(DandiBaseModel): "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "slot_usage": { "identifier": { + "description": "RRID of the software from " "scicrunch.org.", "name": "identifier", "pattern": "^RRID:.*", "range": "string", "required": False, + "title": "Research resource identifier", }, "name": {"name": "name", "required": True}, "url": { + "description": "Web page for the software.", "name": "url", "notes": [ "pydantic2linkml: Unable to translate the " @@ -6501,6 +7022,8 @@ class Software(DandiBaseModel): identifier: Optional[str] = Field( default=None, + title="Research resource identifier", + description="""RRID of the software from scicrunch.org.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -6545,6 +7068,7 @@ class Software(DandiBaseModel): ) url: Optional[str] = Field( default=None, + description="""Web page for the software.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -6571,6 +7095,7 @@ class Software(DandiBaseModel): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Software"] = Field( @@ -6628,6 +7153,7 @@ class SpeciesType(BaseType): identifier: Optional[str] = Field( default=None, + description="""The identifier can be any url or a compact URI, preferably supported by identifiers.org.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -6669,6 +7195,7 @@ class SpeciesType(BaseType): ) name: Optional[str] = Field( default=None, + description="""The name of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -6688,6 +7215,7 @@ class SpeciesType(BaseType): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["SpeciesType"] = Field( @@ -6732,6 +7260,7 @@ class StandardsType(BaseType): identifier: Optional[str] = Field( default=None, + description="""The identifier can be any url or a compact URI, preferably supported by identifiers.org.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -6773,6 +7302,7 @@ class StandardsType(BaseType): ) name: Optional[str] = Field( default=None, + description="""The name of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -6792,6 +7322,7 @@ class StandardsType(BaseType): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["StandardsType"] = Field( @@ -6836,6 +7367,7 @@ class StrainType(BaseType): identifier: Optional[str] = Field( default=None, + description="""The identifier can be any url or a compact URI, preferably supported by identifiers.org.""", json_schema_extra={ "linkml_meta": { "any_of": [ @@ -6877,6 +7409,7 @@ class StrainType(BaseType): ) name: Optional[str] = Field( default=None, + description="""The name of the item.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -6896,6 +7429,7 @@ class StrainType(BaseType): ) id: Optional[str] = Field( default=None, + description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["StrainType"] = Field( From 78ec4ff3b60058c7a2d819e9e5dff49ed41a8d5a Mon Sep 17 00:00:00 2001 From: Isaac To Date: Mon, 13 Apr 2026 19:05:45 -0700 Subject: [PATCH 19/25] 'Merged' with linkml-conversion 0.12.1-70-gaeae21f and 2 branches --- dandischema/models.yaml | 221 +++++++++- dandischema/models_linkml.py | 758 ++++++++++++++++++++++++++++++----- 2 files changed, 880 insertions(+), 99 deletions(-) diff --git a/dandischema/models.yaml b/dandischema/models.yaml index 4adfd7b1..5d1e60fe 100644 --- a/dandischema/models.yaml +++ b/dandischema/models.yaml @@ -104,10 +104,10 @@ enums: LicenseType: description: An enumeration. permissible_values: - spdx:CC0-1.0: - meaning: spdx:CC0-1.0 spdx:CC-BY-4.0: meaning: spdx:CC-BY-4.0 + spdx:CC0-1.0: + meaning: spdx:CC0-1.0 ParticipantRelationType: description: An enumeration of participant relations permissible_values: @@ -676,6 +676,7 @@ slots: required: true schemaKey: designates_type: true + range: string required: true schemaVersion: ifabsent: string(0.7.0) @@ -789,6 +790,12 @@ classes: description: Information about access requirements when embargoed or restricted required: false + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(AccessRequirements) + equals_string: AccessRequirements Activity: description: Information about the Project activity is_a: DandiBaseModel @@ -812,6 +819,16 @@ classes: title: Title required: true pattern: ^(?=.{,150}$) + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(Activity) + any_of: + - equals_string: Activity + - equals_string: Project + - equals_string: Session + - equals_string: PublishActivity Affiliation: is_a: DandiBaseModel slots: @@ -827,6 +844,12 @@ classes: name: description: Name of organization required: true + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(Affiliation) + equals_string: Affiliation Agent: is_a: DandiBaseModel slots: @@ -841,6 +864,12 @@ classes: required: false name: required: true + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(Agent) + equals_string: Agent url: notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation @@ -862,15 +891,42 @@ classes: - range: string - range: string multivalued: true + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(Allele) + equals_string: Allele Anatomy: description: UBERON or other identifier for anatomical part studied is_a: BaseType + slot_usage: + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(Anatomy) + equals_string: Anatomy ApproachType: description: Identifier for approach used is_a: BaseType + slot_usage: + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(ApproachType) + equals_string: ApproachType AssayType: description: OBI based identifier for the assay(s) used is_a: BaseType + slot_usage: + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(AssayType) + equals_string: AssayType Asset: description: Metadata used to describe an asset on the server. notes: @@ -902,6 +958,12 @@ classes: - species - variableMeasured slot_usage: + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(AssetsSummary) + equals_string: AssetsSummary species: multivalued: true variableMeasured: @@ -948,6 +1010,12 @@ classes: at 0xADDRESS>.' range: uri pattern: ^(?i:http|https)://[^\s]+$ + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(Asset) + equals_string: Asset variableMeasured: range: PropertyValue wasAttributedTo: @@ -1000,6 +1068,12 @@ classes: required: true sameAs: range: string + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(BioSample) + equals_string: BioSample wasAttributedTo: description: Participant(s) or Subject(s) associated with this sample. wasDerivedFrom: @@ -1075,6 +1149,12 @@ classes: slot_usage: email: description: Email address of contact. + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(ContactPoint) + equals_string: ContactPoint url: description: A Web page to find information on how to contact. notes: @@ -1105,6 +1185,15 @@ classes: ifabsent: 'True' name: required: false + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(Contributor) + any_of: + - equals_string: Contributor + - equals_string: Organization + - equals_string: Person url: notes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation @@ -1124,7 +1213,6 @@ classes: - 'pydantic2linkml: Unable to translate the logic contained in the after validation function, >.' ifabsent: string(DandiBaseModel) - range: string Dandiset: description: A body of structured information describing a DANDI dataset. notes: @@ -1170,11 +1258,24 @@ classes: description: Known DANDI URLs of the Dandiset at other DANDI instances. range: string pattern: ^dandi://[A-Z][-A-Z]*/\d{6}(@(draft|\d+\.\d+\.\d+))?(/\S+)?$ + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(Dandiset) + equals_string: Dandiset Disorder: description: Biolink, SNOMED, or other identifier for disorder studied is_a: BaseType slots: - dxdate + slot_usage: + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(Disorder) + equals_string: Disorder Equipment: is_a: DandiBaseModel slots: @@ -1193,6 +1294,12 @@ classes: title: Title required: true pattern: ^(?=.{,150}$) + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(Equipment) + equals_string: Equipment EthicsApproval: description: Information about ethics committee approval for project is_a: DandiBaseModel @@ -1208,9 +1315,22 @@ classes: title: Approved protocol identifier range: string required: true + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(EthicsApproval) + equals_string: EthicsApproval GenericType: description: An object to capture any type for about is_a: BaseType + slot_usage: + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(GenericType) + equals_string: GenericType GenotypeInfo: is_a: DandiBaseModel slots: @@ -1218,6 +1338,12 @@ classes: - locus - wasGeneratedBy slot_usage: + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(GenotypeInfo) + equals_string: GenotypeInfo wasGeneratedBy: description: Information about session activity used to determine genotype. @@ -1236,9 +1362,22 @@ classes: - range: string - range: string multivalued: true + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(Locus) + equals_string: Locus MeasurementTechniqueType: description: Identifier for measurement technique used is_a: BaseType + slot_usage: + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(MeasurementTechniqueType) + equals_string: MeasurementTechniqueType Organization: is_a: Contributor slots: @@ -1284,6 +1423,12 @@ classes: description: An identifier to link participants or subjects across datasets. range: string + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(Participant) + equals_string: Participant species: description: An identifier indicating the taxonomic classification of the participant or subject. @@ -1318,11 +1463,28 @@ classes: - unitText - value - valueReference + slot_usage: + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(PropertyValue) + equals_string: PropertyValue Publishable: is_a: DandiBaseModel slots: - datePublished - publishedBy + slot_usage: + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(Publishable) + any_of: + - equals_string: Publishable + - equals_string: Dandiset + - equals_string: Asset PublishActivity: is_a: Activity PublishedAsset: @@ -1387,6 +1549,12 @@ classes: relatedParticipant/Subject.' title: Participant or subject relation range: ParticipantRelationType + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(RelatedParticipant) + equals_string: RelatedParticipant url: title: URL of the related participant or subject notes: @@ -1419,6 +1587,12 @@ classes: description: Name of the repository in which the resource is housed. title: Name of the repository range: string + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(Resource) + equals_string: Resource url: title: URL of the resource notes: @@ -1429,6 +1603,13 @@ classes: SampleType: description: OBI based identifier for the sample type used is_a: BaseType + slot_usage: + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(SampleType) + equals_string: SampleType Session: is_a: Activity slot_usage: @@ -1440,6 +1621,13 @@ classes: SexType: description: Identifier for the sex of the sample is_a: BaseType + slot_usage: + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(SexType) + equals_string: SexType Software: is_a: DandiBaseModel slots: @@ -1456,6 +1644,12 @@ classes: pattern: ^RRID:.* name: required: true + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(Software) + equals_string: Software url: description: Web page for the software. notes: @@ -1466,9 +1660,30 @@ classes: SpeciesType: description: Identifier for species of the sample is_a: BaseType + slot_usage: + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(SpeciesType) + equals_string: SpeciesType StandardsType: description: Identifier for data standard used is_a: BaseType + slot_usage: + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(StandardsType) + equals_string: StandardsType StrainType: description: Identifier for the strain of the sample is_a: BaseType + slot_usage: + schemaKey: + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + ifabsent: string(StrainType) + equals_string: StrainType diff --git a/dandischema/models_linkml.py b/dandischema/models_linkml.py index 256b0c44..3041c61b 100644 --- a/dandischema/models_linkml.py +++ b/dandischema/models_linkml.py @@ -203,8 +203,8 @@ class LicenseType(str, Enum): An enumeration. """ - CC0_1FULL_STOP0 = "spdx:CC0-1.0" CC_BY_4FULL_STOP0 = "spdx:CC-BY-4.0" + CC0_1FULL_STOP0 = "spdx:CC0-1.0" class ParticipantRelationType(str, Enum): @@ -353,7 +353,6 @@ class DandiBaseModel(ConfiguredBaseModel): ">." ], - "range": "string", }, }, } @@ -403,6 +402,19 @@ class AccessRequirements(DandiBaseModel): "name": "description", "required": False, }, + "schemaKey": { + "equals_string": "AccessRequirements", + "ifabsent": "string(AccessRequirements)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + }, }, } ) @@ -453,12 +465,13 @@ class AccessRequirements(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "equals_string": "AccessRequirements", + "ifabsent": "string(AccessRequirements)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.AccessRequirements'>>." ], } }, @@ -491,6 +504,24 @@ class Activity(DandiBaseModel): "required": True, "title": "Title", }, + "schemaKey": { + "any_of": [ + {"equals_string": "Activity"}, + {"equals_string": "Project"}, + {"equals_string": "Session"}, + {"equals_string": "PublishActivity"}, + ], + "ifabsent": "string(Activity)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + }, }, } ) @@ -607,14 +638,20 @@ class Activity(DandiBaseModel): default="Activity", json_schema_extra={ "linkml_meta": { + "any_of": [ + {"equals_string": "Activity"}, + {"equals_string": "Project"}, + {"equals_string": "Session"}, + {"equals_string": "PublishActivity"}, + ], "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "ifabsent": "string(Activity)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Activity'>>." ], } }, @@ -652,6 +689,19 @@ class Affiliation(DandiBaseModel): "name": "name", "required": True, }, + "schemaKey": { + "equals_string": "Affiliation", + "ifabsent": "string(Affiliation)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + }, }, } ) @@ -714,12 +764,13 @@ class Affiliation(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "equals_string": "Affiliation", + "ifabsent": "string(Affiliation)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Affiliation'>>." ], } }, @@ -752,6 +803,19 @@ class Agent(DandiBaseModel): "title": "Identifier", }, "name": {"name": "name", "required": True}, + "schemaKey": { + "equals_string": "Agent", + "ifabsent": "string(Agent)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + }, "url": { "name": "url", "notes": [ @@ -846,12 +910,13 @@ class Agent(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "equals_string": "Agent", + "ifabsent": "string(Agent)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Agent'>>." ], } }, @@ -885,7 +950,20 @@ class Allele(DandiBaseModel): "name": "identifier", "range": "Any", "required": True, - } + }, + "schemaKey": { + "equals_string": "Allele", + "ifabsent": "string(Allele)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + }, }, } ) @@ -937,12 +1015,13 @@ class Allele(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "equals_string": "Allele", + "ifabsent": "string(Allele)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Allele'>>." ], } }, @@ -958,6 +1037,19 @@ class AssetsSummary(DandiBaseModel): { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "slot_usage": { + "schemaKey": { + "equals_string": "AssetsSummary", + "ifabsent": "string(AssetsSummary)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + }, "species": {"multivalued": True, "name": "species"}, "variableMeasured": {"name": "variableMeasured", "range": "string"}, }, @@ -1021,12 +1113,13 @@ class AssetsSummary(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "equals_string": "AssetsSummary", + "ifabsent": "string(AssetsSummary)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.AssetsSummary'>>." ], } }, @@ -1195,7 +1288,24 @@ class Anatomy(BaseType): """ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7"} + { + "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", + "slot_usage": { + "schemaKey": { + "equals_string": "Anatomy", + "ifabsent": "string(Anatomy)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + } + }, + } ) identifier: Optional[str] = Field( @@ -1271,12 +1381,13 @@ class Anatomy(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(BaseType)", + "equals_string": "Anatomy", + "ifabsent": "string(Anatomy)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Anatomy'>>." ], } }, @@ -1302,7 +1413,24 @@ class ApproachType(BaseType): """ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7"} + { + "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", + "slot_usage": { + "schemaKey": { + "equals_string": "ApproachType", + "ifabsent": "string(ApproachType)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + } + }, + } ) identifier: Optional[str] = Field( @@ -1378,12 +1506,13 @@ class ApproachType(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(BaseType)", + "equals_string": "ApproachType", + "ifabsent": "string(ApproachType)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.ApproachType'>>." ], } }, @@ -1409,7 +1538,24 @@ class AssayType(BaseType): """ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7"} + { + "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", + "slot_usage": { + "schemaKey": { + "equals_string": "AssayType", + "ifabsent": "string(AssayType)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + } + }, + } ) identifier: Optional[str] = Field( @@ -1485,12 +1631,13 @@ class AssayType(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(BaseType)", + "equals_string": "AssayType", + "ifabsent": "string(AssayType)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.AssayType'>>." ], } }, @@ -1525,6 +1672,19 @@ class BioSample(DandiBaseModel): "required": True, }, "sameAs": {"name": "sameAs", "range": "string"}, + "schemaKey": { + "equals_string": "BioSample", + "ifabsent": "string(BioSample)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + }, "wasAttributedTo": { "description": "Participant(s) or " "Subject(s) associated with " @@ -1613,12 +1773,13 @@ class BioSample(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "equals_string": "BioSample", + "ifabsent": "string(BioSample)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.BioSample'>>." ], } }, @@ -2032,6 +2193,19 @@ class BareAsset(CommonModel): "pattern": "^(?i:http|https)://[^\\s]+$", "range": "uri", }, + "schemaKey": { + "equals_string": "Asset", + "ifabsent": "string(Asset)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + }, "variableMeasured": { "name": "variableMeasured", "range": "PropertyValue", @@ -2380,12 +2554,13 @@ class BareAsset(CommonModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(CommonModel)", + "equals_string": "Asset", + "ifabsent": "string(Asset)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.BareAsset'>>." ], } }, @@ -2870,12 +3045,13 @@ class Asset(BareAsset): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(CommonModel)", + "equals_string": "Asset", + "ifabsent": "string(Asset)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.BareAsset'>>." ], } }, @@ -2994,6 +3170,19 @@ class ContactPoint(DandiBaseModel): "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "slot_usage": { "email": {"description": "Email address of contact.", "name": "email"}, + "schemaKey": { + "equals_string": "ContactPoint", + "ifabsent": "string(ContactPoint)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + }, "url": { "description": "A Web page to find information on how " "to contact.", @@ -3059,12 +3248,13 @@ class ContactPoint(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "equals_string": "ContactPoint", + "ifabsent": "string(ContactPoint)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.ContactPoint'>>." ], } }, @@ -3108,6 +3298,23 @@ class Contributor(DandiBaseModel): "name": "includeInCitation", }, "name": {"name": "name", "required": False}, + "schemaKey": { + "any_of": [ + {"equals_string": "Contributor"}, + {"equals_string": "Organization"}, + {"equals_string": "Person"}, + ], + "ifabsent": "string(Contributor)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + }, "url": { "name": "url", "notes": [ @@ -3233,14 +3440,19 @@ class Contributor(DandiBaseModel): default="Contributor", json_schema_extra={ "linkml_meta": { + "any_of": [ + {"equals_string": "Contributor"}, + {"equals_string": "Organization"}, + {"equals_string": "Person"}, + ], "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "ifabsent": "string(Contributor)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Contributor'>>." ], } }, @@ -3315,6 +3527,19 @@ class Dandiset(CommonModel): "pattern": "^dandi://[A-Z][-A-Z]*/\\d{6}(@(draft|\\d+\\.\\d+\\.\\d+))?(/\\S+)?$", "range": "string", }, + "schemaKey": { + "equals_string": "Dandiset", + "ifabsent": "string(Dandiset)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + }, }, } ) @@ -3602,12 +3827,13 @@ class Dandiset(CommonModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(CommonModel)", + "equals_string": "Dandiset", + "ifabsent": "string(Dandiset)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Dandiset'>>." ], } }, @@ -3713,7 +3939,24 @@ class Disorder(BaseType): """ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7"} + { + "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", + "slot_usage": { + "schemaKey": { + "equals_string": "Disorder", + "ifabsent": "string(Disorder)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + } + }, + } ) dxdate: Optional[list[Union[date, datetime]]] = Field( @@ -3800,12 +4043,13 @@ class Disorder(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(BaseType)", + "equals_string": "Disorder", + "ifabsent": "string(Disorder)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Disorder'>>." ], } }, @@ -3847,6 +4091,19 @@ class Equipment(DandiBaseModel): "required": True, "title": "Title", }, + "schemaKey": { + "equals_string": "Equipment", + "ifabsent": "string(Equipment)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + }, }, } ) @@ -3922,12 +4179,13 @@ class Equipment(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "equals_string": "Equipment", + "ifabsent": "string(Equipment)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Equipment'>>." ], } }, @@ -3970,6 +4228,19 @@ class EthicsApproval(DandiBaseModel): "required": True, "title": "Approved protocol identifier", }, + "schemaKey": { + "equals_string": "EthicsApproval", + "ifabsent": "string(EthicsApproval)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + }, }, } ) @@ -4021,12 +4292,13 @@ class EthicsApproval(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "equals_string": "EthicsApproval", + "ifabsent": "string(EthicsApproval)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.EthicsApproval'>>." ], } }, @@ -4039,7 +4311,24 @@ class GenericType(BaseType): """ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7"} + { + "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", + "slot_usage": { + "schemaKey": { + "equals_string": "GenericType", + "ifabsent": "string(GenericType)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + } + }, + } ) identifier: Optional[str] = Field( @@ -4115,12 +4404,13 @@ class GenericType(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(BaseType)", + "equals_string": "GenericType", + "ifabsent": "string(GenericType)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.GenericType'>>." ], } }, @@ -4145,13 +4435,26 @@ class GenotypeInfo(DandiBaseModel): { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "slot_usage": { + "schemaKey": { + "equals_string": "GenotypeInfo", + "ifabsent": "string(GenotypeInfo)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + }, "wasGeneratedBy": { "description": "Information about session " "activity used to determine " "genotype.", "name": "wasGeneratedBy", "range": "Session", - } + }, }, } ) @@ -4184,12 +4487,13 @@ class GenotypeInfo(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "equals_string": "GenotypeInfo", + "ifabsent": "string(GenotypeInfo)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.GenotypeInfo'>>." ], } }, @@ -4210,7 +4514,20 @@ class Locus(DandiBaseModel): "name": "identifier", "range": "Any", "required": True, - } + }, + "schemaKey": { + "equals_string": "Locus", + "ifabsent": "string(Locus)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + }, }, } ) @@ -4259,12 +4576,13 @@ class Locus(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "equals_string": "Locus", + "ifabsent": "string(Locus)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Locus'>>." ], } }, @@ -4277,7 +4595,24 @@ class MeasurementTechniqueType(BaseType): """ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7"} + { + "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", + "slot_usage": { + "schemaKey": { + "equals_string": "MeasurementTechniqueType", + "ifabsent": "string(MeasurementTechniqueType)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + } + }, + } ) identifier: Optional[str] = Field( @@ -4353,12 +4688,13 @@ class MeasurementTechniqueType(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(BaseType)", + "equals_string": "MeasurementTechniqueType", + "ifabsent": "string(MeasurementTechniqueType)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.MeasurementTechniqueType'>>." ], } }, @@ -4528,14 +4864,19 @@ class Organization(Contributor): default="Organization", json_schema_extra={ "linkml_meta": { + "any_of": [ + {"equals_string": "Contributor"}, + {"equals_string": "Organization"}, + {"equals_string": "Person"}, + ], "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "ifabsent": "string(Contributor)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Contributor'>>." ], } }, @@ -4588,6 +4929,19 @@ class Participant(DandiBaseModel): "name": "sameAs", "range": "string", }, + "schemaKey": { + "equals_string": "Participant", + "ifabsent": "string(Participant)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + }, "species": { "description": "An identifier indicating the " "taxonomic classification of the " @@ -4709,12 +5063,13 @@ class Participant(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "equals_string": "Participant", + "ifabsent": "string(Participant)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Participant'>>." ], } }, @@ -4858,14 +5213,19 @@ class Person(Contributor): default="Person", json_schema_extra={ "linkml_meta": { + "any_of": [ + {"equals_string": "Contributor"}, + {"equals_string": "Organization"}, + {"equals_string": "Person"}, + ], "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "ifabsent": "string(Contributor)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Contributor'>>." ], } }, @@ -5029,14 +5389,20 @@ class Project(Activity): default="Project", json_schema_extra={ "linkml_meta": { + "any_of": [ + {"equals_string": "Activity"}, + {"equals_string": "Project"}, + {"equals_string": "Session"}, + {"equals_string": "PublishActivity"}, + ], "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "ifabsent": "string(Activity)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Activity'>>." ], } }, @@ -5058,7 +5424,24 @@ def pattern_name(cls, v): class PropertyValue(DandiBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7"} + { + "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", + "slot_usage": { + "schemaKey": { + "equals_string": "PropertyValue", + "ifabsent": "string(PropertyValue)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + } + }, + } ) maxValue: Optional[float] = Field( @@ -5144,12 +5527,13 @@ class PropertyValue(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "equals_string": "PropertyValue", + "ifabsent": "string(PropertyValue)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.PropertyValue'>>." ], } }, @@ -5158,7 +5542,28 @@ class PropertyValue(DandiBaseModel): class Publishable(DandiBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7"} + { + "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", + "slot_usage": { + "schemaKey": { + "any_of": [ + {"equals_string": "Publishable"}, + {"equals_string": "Dandiset"}, + {"equals_string": "Asset"}, + ], + "ifabsent": "string(Publishable)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + } + }, + } ) datePublished: datetime = Field( @@ -5195,14 +5600,19 @@ class Publishable(DandiBaseModel): default="Publishable", json_schema_extra={ "linkml_meta": { + "any_of": [ + {"equals_string": "Publishable"}, + {"equals_string": "Dandiset"}, + {"equals_string": "Asset"}, + ], "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "ifabsent": "string(Publishable)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Publishable'>>." ], } }, @@ -5326,14 +5736,20 @@ class PublishActivity(Activity): default="PublishActivity", json_schema_extra={ "linkml_meta": { + "any_of": [ + {"equals_string": "Activity"}, + {"equals_string": "Project"}, + {"equals_string": "Session"}, + {"equals_string": "PublishActivity"}, + ], "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "ifabsent": "string(Activity)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Activity'>>." ], } }, @@ -5785,9 +6201,15 @@ class PublishedAsset(Publishable, Asset): default="PublishedAsset", json_schema_extra={ "linkml_meta": { + "any_of": [ + {"equals_string": "Publishable"}, + {"equals_string": "Dandiset"}, + {"equals_string": "Asset"}, + ], "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(CommonModel)", + "equals_string": "Asset", + "ifabsent": "string(Publishable)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + ], + }, "url": { "name": "url", "notes": [ @@ -6526,12 +6967,13 @@ class RelatedParticipant(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "equals_string": "RelatedParticipant", + "ifabsent": "string(RelatedParticipant)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.RelatedParticipant'>>." ], } }, @@ -6582,6 +7024,19 @@ class Resource(DandiBaseModel): "range": "string", "title": "Name of the repository", }, + "schemaKey": { + "equals_string": "Resource", + "ifabsent": "string(Resource)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + }, "url": { "name": "url", "notes": [ @@ -6697,12 +7152,13 @@ class Resource(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "equals_string": "Resource", + "ifabsent": "string(Resource)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Resource'>>." ], } }, @@ -6728,7 +7184,24 @@ class SampleType(BaseType): """ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7"} + { + "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", + "slot_usage": { + "schemaKey": { + "equals_string": "SampleType", + "ifabsent": "string(SampleType)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + } + }, + } ) identifier: Optional[str] = Field( @@ -6804,12 +7277,13 @@ class SampleType(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(BaseType)", + "equals_string": "SampleType", + "ifabsent": "string(SampleType)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.SampleType'>>." ], } }, @@ -6960,14 +7434,20 @@ class Session(Activity): default="Session", json_schema_extra={ "linkml_meta": { + "any_of": [ + {"equals_string": "Activity"}, + {"equals_string": "Project"}, + {"equals_string": "Session"}, + {"equals_string": "PublishActivity"}, + ], "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "ifabsent": "string(Activity)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Activity'>>." ], } }, @@ -6993,7 +7473,24 @@ class SexType(BaseType): """ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7"} + { + "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", + "slot_usage": { + "schemaKey": { + "equals_string": "SexType", + "ifabsent": "string(SexType)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + } + }, + } ) identifier: Optional[str] = Field( @@ -7069,12 +7566,13 @@ class SexType(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(BaseType)", + "equals_string": "SexType", + "ifabsent": "string(SexType)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.SexType'>>." ], } }, @@ -7108,6 +7606,19 @@ class Software(DandiBaseModel): "title": "Research resource identifier", }, "name": {"name": "name", "required": True}, + "schemaKey": { + "equals_string": "Software", + "ifabsent": "string(Software)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + }, "url": { "description": "Web page for the software.", "name": "url", @@ -7208,12 +7719,13 @@ class Software(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(DandiBaseModel)", + "equals_string": "Software", + "ifabsent": "string(Software)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.Software'>>." ], } }, @@ -7252,7 +7764,24 @@ class SpeciesType(BaseType): """ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7"} + { + "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", + "slot_usage": { + "schemaKey": { + "equals_string": "SpeciesType", + "ifabsent": "string(SpeciesType)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + } + }, + } ) identifier: Optional[str] = Field( @@ -7328,12 +7857,13 @@ class SpeciesType(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(BaseType)", + "equals_string": "SpeciesType", + "ifabsent": "string(SpeciesType)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.SpeciesType'>>." ], } }, @@ -7359,7 +7889,24 @@ class StandardsType(BaseType): """ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7"} + { + "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", + "slot_usage": { + "schemaKey": { + "equals_string": "StandardsType", + "ifabsent": "string(StandardsType)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + } + }, + } ) identifier: Optional[str] = Field( @@ -7435,12 +7982,13 @@ class StandardsType(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(BaseType)", + "equals_string": "StandardsType", + "ifabsent": "string(StandardsType)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.StandardsType'>>." ], } }, @@ -7466,7 +8014,24 @@ class StrainType(BaseType): """ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7"} + { + "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", + "slot_usage": { + "schemaKey": { + "equals_string": "StrainType", + "ifabsent": "string(StrainType)", + "name": "schemaKey", + "notes": [ + "pydantic2linkml: Unable to translate " + "the logic contained in the after " + "validation function, >." + ], + } + }, + } ) identifier: Optional[str] = Field( @@ -7542,12 +8107,13 @@ class StrainType(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "ifabsent": "string(BaseType)", + "equals_string": "StrainType", + "ifabsent": "string(StrainType)", "notes": [ "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, >." + "'dandischema.models.StrainType'>>." ], } }, From b3b317c61b7675e5511772f50eb27a1ea7da4166 Mon Sep 17 00:00:00 2001 From: Isaac To Date: Mon, 11 May 2026 16:52:55 -0700 Subject: [PATCH 20/25] 'Merged' with linkml-conversion 0.12.1-93-g08e2d11 and 2 branches --- dandischema/models.yaml | 77 +++-- dandischema/models_linkml.py | 278 ++++++++++++------ dandischema/models_linkml/asset.json | 127 ++++---- dandischema/models_linkml/dandiset.json | 162 +++++----- .../models_linkml/published-asset.json | 127 ++++---- .../models_linkml/published-dandiset.json | 170 ++++++----- dandischema/models_pydantic/asset.json | 11 +- dandischema/models_pydantic/dandiset.json | 37 ++- .../models_pydantic/published-asset.json | 11 +- .../models_pydantic/published-dandiset.json | 42 ++- 10 files changed, 590 insertions(+), 452 deletions(-) diff --git a/dandischema/models.yaml b/dandischema/models.yaml index 5ed653bc..63d7ae92 100644 --- a/dandischema/models.yaml +++ b/dandischema/models.yaml @@ -875,15 +875,14 @@ classes: is_a: BaseType Asset: description: Metadata used to describe an asset on the server. - notes: - - 'pydantic2linkml: Impossible to generate slot usage entry for the id slot. The - slot representation of the id field in the Asset Pydantic model has changes - in value in constraint meta slots: [''required''] .' is_a: BareAsset slots: - contentUrl - identifier slot_usage: + id: + description: Uniform resource identifier. + required: true identifier: range: string required: true @@ -914,7 +913,8 @@ classes: notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the wasGeneratedBy slot. The slot representation of the wasGeneratedBy field in the BareAsset Pydantic - model has changes in value in constraint meta slots: [''range''] .' + model has disallowed changes in value in constraint meta slots: [''range''] + .' - 'MANUAL_NOTE: The default of the `schemaKey` field in the corresponding Pydantic model in `dandischema.models` is not the model''s name. Adjustment to the inherited `schemaKey` slot may be needed.' @@ -1116,24 +1116,10 @@ classes: Dandiset: description: A body of structured information describing a DANDI dataset. notes: - - 'pydantic2linkml: Impossible to generate slot usage entry for the contributor - slot. The slot representation of the contributor field in the Dandiset Pydantic - model has changes in value in constraint meta slots: [''required''] .' - - 'pydantic2linkml: Impossible to generate slot usage entry for the description - slot. The slot representation of the description field in the Dandiset Pydantic - model has changes in value in constraint meta slots: [''required''] .' - - 'pydantic2linkml: Impossible to generate slot usage entry for the id slot. The - slot representation of the id field in the Dandiset Pydantic model has changes - in value in constraint meta slots: [''required''] .' - - 'pydantic2linkml: Impossible to generate slot usage entry for the license slot. - The slot representation of the license field in the Dandiset Pydantic model - has changes in value in constraint meta slots: [''required''] .' - - 'pydantic2linkml: Impossible to generate slot usage entry for the name slot. - The slot representation of the name field in the Dandiset Pydantic model has - changes in value in constraint meta slots: [''required''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the wasGeneratedBy slot. The slot representation of the wasGeneratedBy field in the Dandiset Pydantic - model has changes in value in constraint meta slots: [''range''] .' + model has disallowed changes in value in constraint meta slots: [''range''] + .' is_a: CommonModel slots: - assetsSummary @@ -1145,8 +1131,26 @@ classes: - sameAs - version slot_usage: + contributor: + description: People or Organizations that have contributed to this + Dandiset. + title: Dandiset contributors + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + required: true + minimum_cardinality: 1 dateModified: title: Last modification date and time. + description: + description: A description of the Dandiset + required: true + all_of: + - pattern: ^[\s\S]{,10000}\Z + id: + required: true + pattern: ^([A-Z][-A-Z]*|[a-z][-a-z]*):\d{6}(/(draft|\d+\.\d+\.\d+))$ identifier: description: A Dandiset identifier that can be resolved by identifiers.org. @@ -1154,6 +1158,13 @@ classes: range: string required: true pattern: ^[A-Z][-A-Z]*:\d{6}$ + license: + required: true + minimum_cardinality: 1 + name: + description: A title associated with the Dandiset. + title: Dandiset title + required: true sameAs: description: Known DANDI URLs of the Dandiset at other DANDI instances. range: string @@ -1277,10 +1288,6 @@ classes: description: An identifier indicating the taxonomic classification of the participant or subject. Person: - notes: - - 'pydantic2linkml: Impossible to generate slot usage entry for the name slot. - The slot representation of the name field in the Person Pydantic model has changes - in value in constraint meta slots: [''required''] .' is_a: Contributor slots: - affiliation @@ -1289,6 +1296,11 @@ classes: description: An ORCID (orcid.org) identifier for an individual. title: An ORCID identifier pattern: ^\d{4}-\d{4}-\d{4}-(\d{3}X|\d{4})$ + name: + description: 'Use the format: familyname, given names ...' + title: 'Use Last, First. Example: Lovelace, Augusta Ada' + required: true + pattern: ^([\w\s\-\.']+),\s+([\w\s\-\.']+)$ Project: is_a: Activity slot_usage: @@ -1332,10 +1344,7 @@ classes: notes: - 'pydantic2linkml: Impossible to generate slot usage entry for the id slot. The slot representation of the id field in the PublishedDandiset Pydantic model - has changes in value in constraint meta slots: [''pattern''] .' - - 'pydantic2linkml: Impossible to generate slot usage entry for the url slot. - The slot representation of the url field in the PublishedDandiset Pydantic model - has changes in value in constraint meta slots: [''required''] .' + has disallowed changes in value in constraint meta slots: [''pattern''] .' - 'pydantic2linkml: Warning: LinkML does not support multiple inheritance. Publishable is not specified as a parent, through the `is_a` meta slot, but as a mixin.' - 'MANUAL_NOTE: The default of the `schemaKey` field in the corresponding Pydantic @@ -1347,6 +1356,16 @@ classes: slots: - doi - releaseNotes + slot_usage: + url: + description: Permalink to the Dandiset. + notes: + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, >.' + - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation + function, .wrap_val + at 0xADDRESS>.' + required: true RelatedParticipant: is_a: DandiBaseModel slots: diff --git a/dandischema/models_linkml.py b/dandischema/models_linkml.py index 36aaa338..e9a4bd0c 100644 --- a/dandischema/models_linkml.py +++ b/dandischema/models_linkml.py @@ -1754,8 +1754,8 @@ class BareAsset(CommonModel): "notes": [ "pydantic2linkml: Impossible to generate slot usage entry for the " "wasGeneratedBy slot. The slot representation of the wasGeneratedBy " - "field in the BareAsset Pydantic model has changes in value in " - "constraint meta slots: ['range'] .", + "field in the BareAsset Pydantic model has disallowed changes in " + "value in constraint meta slots: ['range'] .", "MANUAL_NOTE: The default of the `schemaKey` field in the " "corresponding Pydantic model in `dandischema.models` is not the " "model's name. Adjustment to the inherited `schemaKey` slot may be " @@ -2217,19 +2217,18 @@ class Asset(BareAsset): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", - "notes": [ - "pydantic2linkml: Impossible to generate slot usage entry for the " - "id slot. The slot representation of the id field in the Asset " - "Pydantic model has changes in value in constraint meta slots: " - "['required'] ." - ], "slot_usage": { + "id": { + "description": "Uniform resource identifier.", + "name": "id", + "required": True, + }, "identifier": { "name": "identifier", "pattern": "^(?:urn:uuid:)?[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?4[0-9a-fA-F]{3}-?[89abAB][0-9a-fA-F]{3}-?[0-9a-fA-F]{12}$", "range": "string", "required": True, - } + }, }, } ) @@ -2599,9 +2598,9 @@ class Asset(BareAsset): "linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]} }, ) - id: Optional[str] = Field( - default=None, - description="""Uniform resource identifier""", + id: str = Field( + default=..., + description="""Uniform resource identifier.""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["Asset"] = Field( @@ -2966,36 +2965,45 @@ class Dandiset(CommonModel): { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "notes": [ - "pydantic2linkml: Impossible to generate slot usage entry for the " - "contributor slot. The slot representation of the contributor field " - "in the Dandiset Pydantic model has changes in value in constraint " - "meta slots: ['required'] .", - "pydantic2linkml: Impossible to generate slot usage entry for the " - "description slot. The slot representation of the description field " - "in the Dandiset Pydantic model has changes in value in constraint " - "meta slots: ['required'] .", - "pydantic2linkml: Impossible to generate slot usage entry for the " - "id slot. The slot representation of the id field in the Dandiset " - "Pydantic model has changes in value in constraint meta slots: " - "['required'] .", - "pydantic2linkml: Impossible to generate slot usage entry for the " - "license slot. The slot representation of the license field in the " - "Dandiset Pydantic model has changes in value in constraint meta " - "slots: ['required'] .", - "pydantic2linkml: Impossible to generate slot usage entry for the " - "name slot. The slot representation of the name field in the " - "Dandiset Pydantic model has changes in value in constraint meta " - "slots: ['required'] .", "pydantic2linkml: Impossible to generate slot usage entry for the " "wasGeneratedBy slot. The slot representation of the wasGeneratedBy " - "field in the Dandiset Pydantic model has changes in value in " - "constraint meta slots: ['range'] .", + "field in the Dandiset Pydantic model has disallowed changes in " + "value in constraint meta slots: ['range'] ." ], "slot_usage": { + "contributor": { + "description": "People or Organizations that " + "have contributed to this " + "Dandiset.", + "minimum_cardinality": 1, + "name": "contributor", + "notes": [ + "pydantic2linkml: Unable to " + "translate the logic contained in " + "the after validation function, " + ">." + ], + "required": True, + "title": "Dandiset contributors", + }, "dateModified": { "name": "dateModified", "title": "Last modification date and time.", }, + "description": { + "all_of": [{"pattern": "^[\\s\\S]{,10000}\\Z"}], + "description": "A description of the Dandiset", + "name": "description", + "required": True, + }, + "id": { + "name": "id", + "pattern": "^([A-Z][-A-Z]*|[a-z][-a-z]*):\\d{6}(/(draft|\\d+\\.\\d+\\.\\d+))$", + "required": True, + }, "identifier": { "description": "A Dandiset identifier that can " "be resolved by identifiers.org.", @@ -3005,6 +3013,17 @@ class Dandiset(CommonModel): "required": True, "title": "Dandiset identifier", }, + "license": { + "minimum_cardinality": 1, + "name": "license", + "required": True, + }, + "name": { + "description": "A title associated with the Dandiset.", + "name": "name", + "required": True, + "title": "Dandiset title", + }, "sameAs": { "description": "Known DANDI URLs of the Dandiset at " "other DANDI instances.", @@ -3123,10 +3142,11 @@ class Dandiset(CommonModel): description="""Any acknowledgments not covered by contributors or external resources.""", json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) - contributor: Optional[list[Union[Organization, Person]]] = Field( - default=None, - title="Contributors", - description="""Contributors to this item: persons or organizations.""", + contributor: list[Union[Organization, Person]] = Field( + default=..., + title="Dandiset contributors", + description="""People or Organizations that have contributed to this Dandiset.""", + min_length=1, json_schema_extra={ "linkml_meta": { "any_of": [ @@ -3150,20 +3170,27 @@ class Dandiset(CommonModel): }, ], "domain_of": ["CommonModel"], + "notes": [ + "pydantic2linkml: Unable to translate the logic contained in the " + "after validation function, >." + ], } }, ) - description: Optional[str] = Field( - default=None, - description="""A description of the item.""", + description: str = Field( + default=..., + description="""A description of the Dandiset""", json_schema_extra={ "linkml_meta": { + "all_of": [{"pattern": "^[\\s\\S]{,10000}\\Z"}], "domain_of": [ "AccessRequirements", "Activity", "CommonModel", "Equipment", - ] + ], } }, ) @@ -3177,15 +3204,16 @@ class Dandiset(CommonModel): description="""Keywords used to describe this content.""", json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) - license: Optional[list[LicenseType]] = Field( - default=None, + license: list[LicenseType] = Field( + default=..., description="""Licenses associated with the item. DANDI only supports a subset of Creative Commons Licenses (creativecommons.org) applicable to datasets.""", + min_length=1, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) - name: Optional[str] = Field( - default=None, - title="Title", - description="""The name of the item.""", + name: str = Field( + default=..., + title="Dandiset title", + description="""A title associated with the Dandiset.""", json_schema_extra={ "linkml_meta": { "all_of": [{"pattern": "^[\\s\\S]{,150}\\Z"}], @@ -3289,8 +3317,8 @@ class Dandiset(CommonModel): "linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]} }, ) - id: Optional[str] = Field( - default=None, + id: str = Field( + default=..., description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) @@ -3381,6 +3409,21 @@ def pattern_url(cls, v): raise ValueError(err_msg) return v + @field_validator("id") + def pattern_id(cls, v): + pattern = re.compile( + r"^([A-Z][-A-Z]*|[a-z][-a-z]*):\d{6}(/(draft|\d+\.\d+\.\d+))$" + ) + if isinstance(v, list): + for element in v: + if isinstance(element, str) and not pattern.match(element): + err_msg = f"Invalid id format: {element}" + raise ValueError(err_msg) + elif isinstance(v, str) and not pattern.match(v): + err_msg = f"Invalid id format: {v}" + raise ValueError(err_msg) + return v + class Disorder(BaseType): """ @@ -4262,12 +4305,6 @@ class Person(Contributor): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", - "notes": [ - "pydantic2linkml: Impossible to generate slot usage entry for the " - "name slot. The slot representation of the name field in the Person " - "Pydantic model has changes in value in constraint meta slots: " - "['required'] ." - ], "slot_usage": { "identifier": { "description": "An ORCID (orcid.org) identifier " @@ -4275,7 +4312,14 @@ class Person(Contributor): "name": "identifier", "pattern": "^\\d{4}-\\d{4}-\\d{4}-(\\d{3}X|\\d{4})$", "title": "An ORCID identifier", - } + }, + "name": { + "description": "Use the format: familyname, given " "names ...", + "name": "name", + "pattern": "^([\\w\\s\\-\\.']+),\\s+([\\w\\s\\-\\.']+)$", + "required": True, + "title": "Use Last, First. Example: Lovelace, Augusta " "Ada", + }, }, } ) @@ -4339,8 +4383,10 @@ class Person(Contributor): "linkml_meta": {"domain_of": ["Contributor"], "ifabsent": "True"} }, ) - name: Optional[str] = Field( - default=None, + name: str = Field( + default=..., + title="Use Last, First. Example: Lovelace, Augusta Ada", + description="""Use the format: familyname, given names ...""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -4411,6 +4457,19 @@ def pattern_identifier(cls, v): raise ValueError(err_msg) return v + @field_validator("name") + def pattern_name(cls, v): + pattern = re.compile(r"^([\w\s\-\.']+),\s+([\w\s\-\.']+)$") + if isinstance(v, list): + for element in v: + if isinstance(element, str) and not pattern.match(element): + err_msg = f"Invalid name format: {element}" + raise ValueError(err_msg) + elif isinstance(v, str) and not pattern.match(v): + err_msg = f"Invalid name format: {v}" + raise ValueError(err_msg) + return v + @field_validator("url") def pattern_url(cls, v): pattern = re.compile(r"^(?i:http|https)://[^\s]+$") @@ -5229,9 +5288,9 @@ class PublishedAsset(Publishable, Asset): "linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]} }, ) - id: Optional[str] = Field( - default=None, - description="""Uniform resource identifier""", + id: str = Field( + default=..., + description="""Uniform resource identifier.""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) schemaKey: Literal["PublishedAsset"] = Field( @@ -5358,12 +5417,8 @@ class PublishedDandiset(Publishable, Dandiset): "notes": [ "pydantic2linkml: Impossible to generate slot usage entry for the " "id slot. The slot representation of the id field in the " - "PublishedDandiset Pydantic model has changes in value in " - "constraint meta slots: ['pattern'] .", - "pydantic2linkml: Impossible to generate slot usage entry for the " - "url slot. The slot representation of the url field in the " - "PublishedDandiset Pydantic model has changes in value in " - "constraint meta slots: ['required'] .", + "PublishedDandiset Pydantic model has disallowed changes in value " + "in constraint meta slots: ['pattern'] .", "pydantic2linkml: Warning: LinkML does not support multiple " "inheritance. Publishable is not specified as a parent, through the " "`is_a` meta slot, but as a mixin.", @@ -5372,6 +5427,25 @@ class PublishedDandiset(Publishable, Dandiset): "model's name. Adjustment to the inherited `schemaKey` slot may be " "needed.", ], + "slot_usage": { + "url": { + "description": "Permalink to the Dandiset.", + "name": "url", + "notes": [ + "pydantic2linkml: Unable to translate the " + "logic contained in the after validation " + "function, >.", + "pydantic2linkml: Unable to translate the " + "logic contained in the wrap validation " + "function, .wrap_val " + "at 0xADDRESS>.", + ], + "required": True, + } + }, } ) @@ -5519,10 +5593,11 @@ class PublishedDandiset(Publishable, Dandiset): description="""Any acknowledgments not covered by contributors or external resources.""", json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) - contributor: Optional[list[Union[Organization, Person]]] = Field( - default=None, - title="Contributors", - description="""Contributors to this item: persons or organizations.""", + contributor: list[Union[Organization, Person]] = Field( + default=..., + title="Dandiset contributors", + description="""People or Organizations that have contributed to this Dandiset.""", + min_length=1, json_schema_extra={ "linkml_meta": { "any_of": [ @@ -5546,20 +5621,27 @@ class PublishedDandiset(Publishable, Dandiset): }, ], "domain_of": ["CommonModel"], + "notes": [ + "pydantic2linkml: Unable to translate the logic contained in the " + "after validation function, >." + ], } }, ) - description: Optional[str] = Field( - default=None, - description="""A description of the item.""", + description: str = Field( + default=..., + description="""A description of the Dandiset""", json_schema_extra={ "linkml_meta": { + "all_of": [{"pattern": "^[\\s\\S]{,10000}\\Z"}], "domain_of": [ "AccessRequirements", "Activity", "CommonModel", "Equipment", - ] + ], } }, ) @@ -5573,15 +5655,16 @@ class PublishedDandiset(Publishable, Dandiset): description="""Keywords used to describe this content.""", json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) - license: Optional[list[LicenseType]] = Field( - default=None, + license: list[LicenseType] = Field( + default=..., description="""Licenses associated with the item. DANDI only supports a subset of Creative Commons Licenses (creativecommons.org) applicable to datasets.""", + min_length=1, json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) - name: Optional[str] = Field( - default=None, - title="Title", - description="""The name of the item.""", + name: str = Field( + default=..., + title="Dandiset title", + description="""A title associated with the Dandiset.""", json_schema_extra={ "linkml_meta": { "all_of": [{"pattern": "^[\\s\\S]{,150}\\Z"}], @@ -5654,9 +5737,9 @@ class PublishedDandiset(Publishable, Dandiset): description="""Objectives or specific questions of the study.""", json_schema_extra={"linkml_meta": {"domain_of": ["CommonModel"]}}, ) - url: Optional[str] = Field( - default=None, - description="""permalink to the item""", + url: str = Field( + default=..., + description="""Permalink to the Dandiset.""", json_schema_extra={ "linkml_meta": { "domain_of": [ @@ -5669,10 +5752,14 @@ class PublishedDandiset(Publishable, Dandiset): "Software", ], "notes": [ + "pydantic2linkml: Unable to translate the logic contained in the " + "after validation function, >.", "pydantic2linkml: Unable to translate the logic contained in the " "wrap validation function, .wrap_val at " - "0xADDRESS>." + "0xADDRESS>.", ], } }, @@ -5685,8 +5772,8 @@ class PublishedDandiset(Publishable, Dandiset): "linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]} }, ) - id: Optional[str] = Field( - default=None, + id: str = Field( + default=..., description="""Uniform resource identifier""", json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, ) @@ -5790,6 +5877,21 @@ def pattern_url(cls, v): raise ValueError(err_msg) return v + @field_validator("id") + def pattern_id(cls, v): + pattern = re.compile( + r"^([A-Z][-A-Z]*|[a-z][-a-z]*):\d{6}(/(draft|\d+\.\d+\.\d+))$" + ) + if isinstance(v, list): + for element in v: + if isinstance(element, str) and not pattern.match(element): + err_msg = f"Invalid id format: {element}" + raise ValueError(err_msg) + elif isinstance(v, str) and not pattern.match(v): + err_msg = f"Invalid id format: {v}" + raise ValueError(err_msg) + return v + class RelatedParticipant(DandiBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( diff --git a/dandischema/models_linkml/asset.json b/dandischema/models_linkml/asset.json index dc0361b5..c31e9d4d 100644 --- a/dandischema/models_linkml/asset.json +++ b/dandischema/models_linkml/asset.json @@ -612,11 +612,8 @@ ] }, "id": { - "description": "Uniform resource identifier", - "type": [ - "string", - "null" - ] + "description": "Uniform resource identifier.", + "type": "string" }, "identifier": { "pattern": "^(?:urn:uuid:)?[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?4[0-9a-fA-F]{3}-?[89abAB][0-9a-fA-F]{3}-?[0-9a-fA-F]{12}$", @@ -790,6 +787,7 @@ "digest", "encodingFormat", "path", + "id", "schemaKey" ], "title": "Asset", @@ -1744,7 +1742,7 @@ "type": "string" }, "contributor": { - "description": "Contributors to this item: persons or organizations.", + "description": "People or Organizations that have contributed to this Dandiset.", "items": { "$ref": "#/$defs/Any", "anyOf": [ @@ -1756,11 +1754,9 @@ } ] }, - "title": "Contributors", - "type": [ - "array", - "null" - ] + "minItems": 1, + "title": "Dandiset contributors", + "type": "array" }, "dateCreated": { "format": "date-time", @@ -1779,11 +1775,13 @@ ] }, "description": { - "description": "A description of the item.", - "type": [ - "string", - "null" - ] + "allOf": [ + { + "pattern": "^[\\s\\S]{,10000}\\Z" + } + ], + "description": "A description of the Dandiset", + "type": "string" }, "ethicsApproval": { "items": { @@ -1797,10 +1795,8 @@ }, "id": { "description": "Uniform resource identifier", - "type": [ - "string", - "null" - ] + "pattern": "^([A-Z][-A-Z]*|[a-z][-a-z]*):\\d{6}(/(draft|\\d+\\.\\d+\\.\\d+))$", + "type": "string" }, "identifier": { "description": "A Dandiset identifier that can be resolved by identifiers.org.", @@ -1823,10 +1819,8 @@ "items": { "$ref": "#/$defs/LicenseType" }, - "type": [ - "array", - "null" - ] + "minItems": 1, + "type": "array" }, "manifestLocation": { "items": { @@ -1842,8 +1836,8 @@ "pattern": "^[\\s\\S]{,150}\\Z" } ], - "description": "The name of the item.", - "title": "Title", + "description": "A title associated with the Dandiset.", + "title": "Dandiset title", "type": "string" }, "protocol": { @@ -1947,6 +1941,11 @@ "identifier", "manifestLocation", "version", + "contributor", + "description", + "license", + "name", + "id", "schemaKey" ], "title": "Dandiset", @@ -2638,10 +2637,10 @@ ] }, "name": { - "type": [ - "string", - "null" - ] + "description": "Use the format: familyname, given names ...", + "pattern": "^([\\w\\s\\-\\.']+),\\s+([\\w\\s\\-\\.']+)$", + "title": "Use Last, First. Example: Lovelace, Augusta Ada", + "type": "string" }, "roleName": { "description": "Role(s) of the contributor. Multiple roles can be selected.", @@ -2669,6 +2668,7 @@ } }, "required": [ + "name", "schemaKey" ], "title": "Person", @@ -3145,12 +3145,9 @@ ] }, "id": { - "description": "Uniform resource identifier", + "description": "Uniform resource identifier.", "pattern": "^dandiasset:[a-f0-9]{8}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{12}$", - "type": [ - "string", - "null" - ] + "type": "string" }, "identifier": { "pattern": "^(?:urn:uuid:)?[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?4[0-9a-fA-F]{3}-?[89abAB][0-9a-fA-F]{3}-?[0-9a-fA-F]{12}$", @@ -3339,6 +3336,7 @@ "digest", "encodingFormat", "path", + "id", "schemaKey" ], "title": "PublishedAsset", @@ -3394,7 +3392,7 @@ "type": "string" }, "contributor": { - "description": "Contributors to this item: persons or organizations.", + "description": "People or Organizations that have contributed to this Dandiset.", "items": { "$ref": "#/$defs/Any", "anyOf": [ @@ -3406,11 +3404,9 @@ } ] }, - "title": "Contributors", - "type": [ - "array", - "null" - ] + "minItems": 1, + "title": "Dandiset contributors", + "type": "array" }, "dateCreated": { "format": "date-time", @@ -3433,11 +3429,13 @@ "type": "string" }, "description": { - "description": "A description of the item.", - "type": [ - "string", - "null" - ] + "allOf": [ + { + "pattern": "^[\\s\\S]{,10000}\\Z" + } + ], + "description": "A description of the Dandiset", + "type": "string" }, "doi": { "pattern": "^(10\\.\\d{4,}/[a-z][-a-z]*\\.\\d{6}/\\d+\\.\\d+\\.\\d+|)$", @@ -3459,10 +3457,8 @@ }, "id": { "description": "Uniform resource identifier", - "type": [ - "string", - "null" - ] + "pattern": "^([A-Z][-A-Z]*|[a-z][-a-z]*):\\d{6}(/(draft|\\d+\\.\\d+\\.\\d+))$", + "type": "string" }, "identifier": { "description": "A Dandiset identifier that can be resolved by identifiers.org.", @@ -3485,10 +3481,8 @@ "items": { "$ref": "#/$defs/LicenseType" }, - "type": [ - "array", - "null" - ] + "minItems": 1, + "type": "array" }, "manifestLocation": { "items": { @@ -3504,8 +3498,8 @@ "pattern": "^[\\s\\S]{,150}\\Z" } ], - "description": "The name of the item.", - "title": "Title", + "description": "A title associated with the Dandiset.", + "title": "Dandiset title", "type": "string" }, "protocol": { @@ -3590,12 +3584,9 @@ ] }, "url": { - "description": "permalink to the item", + "description": "Permalink to the Dandiset.", "pattern": "^(?i:http|https)://[^\\s]+$", - "type": [ - "string", - "null" - ] + "type": "string" }, "version": { "type": "string" @@ -3631,6 +3622,12 @@ "identifier", "manifestLocation", "version", + "contributor", + "description", + "license", + "name", + "url", + "id", "schemaKey" ], "title": "PublishedDandiset", @@ -4406,11 +4403,8 @@ ] }, "id": { - "description": "Uniform resource identifier", - "type": [ - "string", - "null" - ] + "description": "Uniform resource identifier.", + "type": "string" }, "identifier": { "pattern": "^(?:urn:uuid:)?[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?4[0-9a-fA-F]{3}-?[89abAB][0-9a-fA-F]{3}-?[0-9a-fA-F]{12}$", @@ -4584,6 +4578,7 @@ "digest", "encodingFormat", "path", + "id", "schemaKey" ], "title": "dandi-schema", diff --git a/dandischema/models_linkml/dandiset.json b/dandischema/models_linkml/dandiset.json index 83687adf..60881e0c 100644 --- a/dandischema/models_linkml/dandiset.json +++ b/dandischema/models_linkml/dandiset.json @@ -612,11 +612,8 @@ ] }, "id": { - "description": "Uniform resource identifier", - "type": [ - "string", - "null" - ] + "description": "Uniform resource identifier.", + "type": "string" }, "identifier": { "pattern": "^(?:urn:uuid:)?[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?4[0-9a-fA-F]{3}-?[89abAB][0-9a-fA-F]{3}-?[0-9a-fA-F]{12}$", @@ -790,6 +787,7 @@ "digest", "encodingFormat", "path", + "id", "schemaKey" ], "title": "Asset", @@ -1744,7 +1742,7 @@ "type": "string" }, "contributor": { - "description": "Contributors to this item: persons or organizations.", + "description": "People or Organizations that have contributed to this Dandiset.", "items": { "$ref": "#/$defs/Any", "anyOf": [ @@ -1756,11 +1754,9 @@ } ] }, - "title": "Contributors", - "type": [ - "array", - "null" - ] + "minItems": 1, + "title": "Dandiset contributors", + "type": "array" }, "dateCreated": { "format": "date-time", @@ -1779,11 +1775,13 @@ ] }, "description": { - "description": "A description of the item.", - "type": [ - "string", - "null" - ] + "allOf": [ + { + "pattern": "^[\\s\\S]{,10000}\\Z" + } + ], + "description": "A description of the Dandiset", + "type": "string" }, "ethicsApproval": { "items": { @@ -1797,10 +1795,8 @@ }, "id": { "description": "Uniform resource identifier", - "type": [ - "string", - "null" - ] + "pattern": "^([A-Z][-A-Z]*|[a-z][-a-z]*):\\d{6}(/(draft|\\d+\\.\\d+\\.\\d+))$", + "type": "string" }, "identifier": { "description": "A Dandiset identifier that can be resolved by identifiers.org.", @@ -1823,10 +1819,8 @@ "items": { "$ref": "#/$defs/LicenseType" }, - "type": [ - "array", - "null" - ] + "minItems": 1, + "type": "array" }, "manifestLocation": { "items": { @@ -1842,8 +1836,8 @@ "pattern": "^[\\s\\S]{,150}\\Z" } ], - "description": "The name of the item.", - "title": "Title", + "description": "A title associated with the Dandiset.", + "title": "Dandiset title", "type": "string" }, "protocol": { @@ -1947,6 +1941,11 @@ "identifier", "manifestLocation", "version", + "contributor", + "description", + "license", + "name", + "id", "schemaKey" ], "title": "Dandiset", @@ -2638,10 +2637,10 @@ ] }, "name": { - "type": [ - "string", - "null" - ] + "description": "Use the format: familyname, given names ...", + "pattern": "^([\\w\\s\\-\\.']+),\\s+([\\w\\s\\-\\.']+)$", + "title": "Use Last, First. Example: Lovelace, Augusta Ada", + "type": "string" }, "roleName": { "description": "Role(s) of the contributor. Multiple roles can be selected.", @@ -2669,6 +2668,7 @@ } }, "required": [ + "name", "schemaKey" ], "title": "Person", @@ -3145,12 +3145,9 @@ ] }, "id": { - "description": "Uniform resource identifier", + "description": "Uniform resource identifier.", "pattern": "^dandiasset:[a-f0-9]{8}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{12}$", - "type": [ - "string", - "null" - ] + "type": "string" }, "identifier": { "pattern": "^(?:urn:uuid:)?[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?4[0-9a-fA-F]{3}-?[89abAB][0-9a-fA-F]{3}-?[0-9a-fA-F]{12}$", @@ -3339,6 +3336,7 @@ "digest", "encodingFormat", "path", + "id", "schemaKey" ], "title": "PublishedAsset", @@ -3394,7 +3392,7 @@ "type": "string" }, "contributor": { - "description": "Contributors to this item: persons or organizations.", + "description": "People or Organizations that have contributed to this Dandiset.", "items": { "$ref": "#/$defs/Any", "anyOf": [ @@ -3406,11 +3404,9 @@ } ] }, - "title": "Contributors", - "type": [ - "array", - "null" - ] + "minItems": 1, + "title": "Dandiset contributors", + "type": "array" }, "dateCreated": { "format": "date-time", @@ -3433,11 +3429,13 @@ "type": "string" }, "description": { - "description": "A description of the item.", - "type": [ - "string", - "null" - ] + "allOf": [ + { + "pattern": "^[\\s\\S]{,10000}\\Z" + } + ], + "description": "A description of the Dandiset", + "type": "string" }, "doi": { "pattern": "^(10\\.\\d{4,}/[a-z][-a-z]*\\.\\d{6}/\\d+\\.\\d+\\.\\d+|)$", @@ -3459,10 +3457,8 @@ }, "id": { "description": "Uniform resource identifier", - "type": [ - "string", - "null" - ] + "pattern": "^([A-Z][-A-Z]*|[a-z][-a-z]*):\\d{6}(/(draft|\\d+\\.\\d+\\.\\d+))$", + "type": "string" }, "identifier": { "description": "A Dandiset identifier that can be resolved by identifiers.org.", @@ -3485,10 +3481,8 @@ "items": { "$ref": "#/$defs/LicenseType" }, - "type": [ - "array", - "null" - ] + "minItems": 1, + "type": "array" }, "manifestLocation": { "items": { @@ -3504,8 +3498,8 @@ "pattern": "^[\\s\\S]{,150}\\Z" } ], - "description": "The name of the item.", - "title": "Title", + "description": "A title associated with the Dandiset.", + "title": "Dandiset title", "type": "string" }, "protocol": { @@ -3590,12 +3584,9 @@ ] }, "url": { - "description": "permalink to the item", + "description": "Permalink to the Dandiset.", "pattern": "^(?i:http|https)://[^\\s]+$", - "type": [ - "string", - "null" - ] + "type": "string" }, "version": { "type": "string" @@ -3631,6 +3622,12 @@ "identifier", "manifestLocation", "version", + "contributor", + "description", + "license", + "name", + "url", + "id", "schemaKey" ], "title": "PublishedDandiset", @@ -4306,7 +4303,7 @@ "type": "string" }, "contributor": { - "description": "Contributors to this item: persons or organizations.", + "description": "People or Organizations that have contributed to this Dandiset.", "items": { "$ref": "#/$defs/Any", "anyOf": [ @@ -4318,11 +4315,9 @@ } ] }, - "title": "Contributors", - "type": [ - "array", - "null" - ] + "minItems": 1, + "title": "Dandiset contributors", + "type": "array" }, "dateCreated": { "format": "date-time", @@ -4341,11 +4336,13 @@ ] }, "description": { - "description": "A description of the item.", - "type": [ - "string", - "null" - ] + "allOf": [ + { + "pattern": "^[\\s\\S]{,10000}\\Z" + } + ], + "description": "A description of the Dandiset", + "type": "string" }, "ethicsApproval": { "items": { @@ -4359,10 +4356,8 @@ }, "id": { "description": "Uniform resource identifier", - "type": [ - "string", - "null" - ] + "pattern": "^([A-Z][-A-Z]*|[a-z][-a-z]*):\\d{6}(/(draft|\\d+\\.\\d+\\.\\d+))$", + "type": "string" }, "identifier": { "description": "A Dandiset identifier that can be resolved by identifiers.org.", @@ -4385,10 +4380,8 @@ "items": { "$ref": "#/$defs/LicenseType" }, - "type": [ - "array", - "null" - ] + "minItems": 1, + "type": "array" }, "manifestLocation": { "items": { @@ -4404,8 +4397,8 @@ "pattern": "^[\\s\\S]{,150}\\Z" } ], - "description": "The name of the item.", - "title": "Title", + "description": "A title associated with the Dandiset.", + "title": "Dandiset title", "type": "string" }, "protocol": { @@ -4509,6 +4502,11 @@ "identifier", "manifestLocation", "version", + "contributor", + "description", + "license", + "name", + "id", "schemaKey" ], "title": "dandi-schema", diff --git a/dandischema/models_linkml/published-asset.json b/dandischema/models_linkml/published-asset.json index 861c1d0e..a70f338c 100644 --- a/dandischema/models_linkml/published-asset.json +++ b/dandischema/models_linkml/published-asset.json @@ -612,11 +612,8 @@ ] }, "id": { - "description": "Uniform resource identifier", - "type": [ - "string", - "null" - ] + "description": "Uniform resource identifier.", + "type": "string" }, "identifier": { "pattern": "^(?:urn:uuid:)?[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?4[0-9a-fA-F]{3}-?[89abAB][0-9a-fA-F]{3}-?[0-9a-fA-F]{12}$", @@ -790,6 +787,7 @@ "digest", "encodingFormat", "path", + "id", "schemaKey" ], "title": "Asset", @@ -1744,7 +1742,7 @@ "type": "string" }, "contributor": { - "description": "Contributors to this item: persons or organizations.", + "description": "People or Organizations that have contributed to this Dandiset.", "items": { "$ref": "#/$defs/Any", "anyOf": [ @@ -1756,11 +1754,9 @@ } ] }, - "title": "Contributors", - "type": [ - "array", - "null" - ] + "minItems": 1, + "title": "Dandiset contributors", + "type": "array" }, "dateCreated": { "format": "date-time", @@ -1779,11 +1775,13 @@ ] }, "description": { - "description": "A description of the item.", - "type": [ - "string", - "null" - ] + "allOf": [ + { + "pattern": "^[\\s\\S]{,10000}\\Z" + } + ], + "description": "A description of the Dandiset", + "type": "string" }, "ethicsApproval": { "items": { @@ -1797,10 +1795,8 @@ }, "id": { "description": "Uniform resource identifier", - "type": [ - "string", - "null" - ] + "pattern": "^([A-Z][-A-Z]*|[a-z][-a-z]*):\\d{6}(/(draft|\\d+\\.\\d+\\.\\d+))$", + "type": "string" }, "identifier": { "description": "A Dandiset identifier that can be resolved by identifiers.org.", @@ -1823,10 +1819,8 @@ "items": { "$ref": "#/$defs/LicenseType" }, - "type": [ - "array", - "null" - ] + "minItems": 1, + "type": "array" }, "manifestLocation": { "items": { @@ -1842,8 +1836,8 @@ "pattern": "^[\\s\\S]{,150}\\Z" } ], - "description": "The name of the item.", - "title": "Title", + "description": "A title associated with the Dandiset.", + "title": "Dandiset title", "type": "string" }, "protocol": { @@ -1947,6 +1941,11 @@ "identifier", "manifestLocation", "version", + "contributor", + "description", + "license", + "name", + "id", "schemaKey" ], "title": "Dandiset", @@ -2638,10 +2637,10 @@ ] }, "name": { - "type": [ - "string", - "null" - ] + "description": "Use the format: familyname, given names ...", + "pattern": "^([\\w\\s\\-\\.']+),\\s+([\\w\\s\\-\\.']+)$", + "title": "Use Last, First. Example: Lovelace, Augusta Ada", + "type": "string" }, "roleName": { "description": "Role(s) of the contributor. Multiple roles can be selected.", @@ -2669,6 +2668,7 @@ } }, "required": [ + "name", "schemaKey" ], "title": "Person", @@ -3145,12 +3145,9 @@ ] }, "id": { - "description": "Uniform resource identifier", + "description": "Uniform resource identifier.", "pattern": "^dandiasset:[a-f0-9]{8}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{12}$", - "type": [ - "string", - "null" - ] + "type": "string" }, "identifier": { "pattern": "^(?:urn:uuid:)?[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?4[0-9a-fA-F]{3}-?[89abAB][0-9a-fA-F]{3}-?[0-9a-fA-F]{12}$", @@ -3339,6 +3336,7 @@ "digest", "encodingFormat", "path", + "id", "schemaKey" ], "title": "PublishedAsset", @@ -3394,7 +3392,7 @@ "type": "string" }, "contributor": { - "description": "Contributors to this item: persons or organizations.", + "description": "People or Organizations that have contributed to this Dandiset.", "items": { "$ref": "#/$defs/Any", "anyOf": [ @@ -3406,11 +3404,9 @@ } ] }, - "title": "Contributors", - "type": [ - "array", - "null" - ] + "minItems": 1, + "title": "Dandiset contributors", + "type": "array" }, "dateCreated": { "format": "date-time", @@ -3433,11 +3429,13 @@ "type": "string" }, "description": { - "description": "A description of the item.", - "type": [ - "string", - "null" - ] + "allOf": [ + { + "pattern": "^[\\s\\S]{,10000}\\Z" + } + ], + "description": "A description of the Dandiset", + "type": "string" }, "doi": { "pattern": "^(10\\.\\d{4,}/[a-z][-a-z]*\\.\\d{6}/\\d+\\.\\d+\\.\\d+|)$", @@ -3459,10 +3457,8 @@ }, "id": { "description": "Uniform resource identifier", - "type": [ - "string", - "null" - ] + "pattern": "^([A-Z][-A-Z]*|[a-z][-a-z]*):\\d{6}(/(draft|\\d+\\.\\d+\\.\\d+))$", + "type": "string" }, "identifier": { "description": "A Dandiset identifier that can be resolved by identifiers.org.", @@ -3485,10 +3481,8 @@ "items": { "$ref": "#/$defs/LicenseType" }, - "type": [ - "array", - "null" - ] + "minItems": 1, + "type": "array" }, "manifestLocation": { "items": { @@ -3504,8 +3498,8 @@ "pattern": "^[\\s\\S]{,150}\\Z" } ], - "description": "The name of the item.", - "title": "Title", + "description": "A title associated with the Dandiset.", + "title": "Dandiset title", "type": "string" }, "protocol": { @@ -3590,12 +3584,9 @@ ] }, "url": { - "description": "permalink to the item", + "description": "Permalink to the Dandiset.", "pattern": "^(?i:http|https)://[^\\s]+$", - "type": [ - "string", - "null" - ] + "type": "string" }, "version": { "type": "string" @@ -3631,6 +3622,12 @@ "identifier", "manifestLocation", "version", + "contributor", + "description", + "license", + "name", + "url", + "id", "schemaKey" ], "title": "PublishedDandiset", @@ -4410,12 +4407,9 @@ ] }, "id": { - "description": "Uniform resource identifier", + "description": "Uniform resource identifier.", "pattern": "^dandiasset:[a-f0-9]{8}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{12}$", - "type": [ - "string", - "null" - ] + "type": "string" }, "identifier": { "pattern": "^(?:urn:uuid:)?[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?4[0-9a-fA-F]{3}-?[89abAB][0-9a-fA-F]{3}-?[0-9a-fA-F]{12}$", @@ -4604,6 +4598,7 @@ "digest", "encodingFormat", "path", + "id", "schemaKey" ], "title": "dandi-schema", diff --git a/dandischema/models_linkml/published-dandiset.json b/dandischema/models_linkml/published-dandiset.json index fce25e57..373d28bd 100644 --- a/dandischema/models_linkml/published-dandiset.json +++ b/dandischema/models_linkml/published-dandiset.json @@ -612,11 +612,8 @@ ] }, "id": { - "description": "Uniform resource identifier", - "type": [ - "string", - "null" - ] + "description": "Uniform resource identifier.", + "type": "string" }, "identifier": { "pattern": "^(?:urn:uuid:)?[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?4[0-9a-fA-F]{3}-?[89abAB][0-9a-fA-F]{3}-?[0-9a-fA-F]{12}$", @@ -790,6 +787,7 @@ "digest", "encodingFormat", "path", + "id", "schemaKey" ], "title": "Asset", @@ -1744,7 +1742,7 @@ "type": "string" }, "contributor": { - "description": "Contributors to this item: persons or organizations.", + "description": "People or Organizations that have contributed to this Dandiset.", "items": { "$ref": "#/$defs/Any", "anyOf": [ @@ -1756,11 +1754,9 @@ } ] }, - "title": "Contributors", - "type": [ - "array", - "null" - ] + "minItems": 1, + "title": "Dandiset contributors", + "type": "array" }, "dateCreated": { "format": "date-time", @@ -1779,11 +1775,13 @@ ] }, "description": { - "description": "A description of the item.", - "type": [ - "string", - "null" - ] + "allOf": [ + { + "pattern": "^[\\s\\S]{,10000}\\Z" + } + ], + "description": "A description of the Dandiset", + "type": "string" }, "ethicsApproval": { "items": { @@ -1797,10 +1795,8 @@ }, "id": { "description": "Uniform resource identifier", - "type": [ - "string", - "null" - ] + "pattern": "^([A-Z][-A-Z]*|[a-z][-a-z]*):\\d{6}(/(draft|\\d+\\.\\d+\\.\\d+))$", + "type": "string" }, "identifier": { "description": "A Dandiset identifier that can be resolved by identifiers.org.", @@ -1823,10 +1819,8 @@ "items": { "$ref": "#/$defs/LicenseType" }, - "type": [ - "array", - "null" - ] + "minItems": 1, + "type": "array" }, "manifestLocation": { "items": { @@ -1842,8 +1836,8 @@ "pattern": "^[\\s\\S]{,150}\\Z" } ], - "description": "The name of the item.", - "title": "Title", + "description": "A title associated with the Dandiset.", + "title": "Dandiset title", "type": "string" }, "protocol": { @@ -1947,6 +1941,11 @@ "identifier", "manifestLocation", "version", + "contributor", + "description", + "license", + "name", + "id", "schemaKey" ], "title": "Dandiset", @@ -2638,10 +2637,10 @@ ] }, "name": { - "type": [ - "string", - "null" - ] + "description": "Use the format: familyname, given names ...", + "pattern": "^([\\w\\s\\-\\.']+),\\s+([\\w\\s\\-\\.']+)$", + "title": "Use Last, First. Example: Lovelace, Augusta Ada", + "type": "string" }, "roleName": { "description": "Role(s) of the contributor. Multiple roles can be selected.", @@ -2669,6 +2668,7 @@ } }, "required": [ + "name", "schemaKey" ], "title": "Person", @@ -3145,12 +3145,9 @@ ] }, "id": { - "description": "Uniform resource identifier", + "description": "Uniform resource identifier.", "pattern": "^dandiasset:[a-f0-9]{8}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{12}$", - "type": [ - "string", - "null" - ] + "type": "string" }, "identifier": { "pattern": "^(?:urn:uuid:)?[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?4[0-9a-fA-F]{3}-?[89abAB][0-9a-fA-F]{3}-?[0-9a-fA-F]{12}$", @@ -3339,6 +3336,7 @@ "digest", "encodingFormat", "path", + "id", "schemaKey" ], "title": "PublishedAsset", @@ -3394,7 +3392,7 @@ "type": "string" }, "contributor": { - "description": "Contributors to this item: persons or organizations.", + "description": "People or Organizations that have contributed to this Dandiset.", "items": { "$ref": "#/$defs/Any", "anyOf": [ @@ -3406,11 +3404,9 @@ } ] }, - "title": "Contributors", - "type": [ - "array", - "null" - ] + "minItems": 1, + "title": "Dandiset contributors", + "type": "array" }, "dateCreated": { "format": "date-time", @@ -3433,11 +3429,13 @@ "type": "string" }, "description": { - "description": "A description of the item.", - "type": [ - "string", - "null" - ] + "allOf": [ + { + "pattern": "^[\\s\\S]{,10000}\\Z" + } + ], + "description": "A description of the Dandiset", + "type": "string" }, "doi": { "pattern": "^(10\\.\\d{4,}/[a-z][-a-z]*\\.\\d{6}/\\d+\\.\\d+\\.\\d+|)$", @@ -3459,10 +3457,8 @@ }, "id": { "description": "Uniform resource identifier", - "type": [ - "string", - "null" - ] + "pattern": "^([A-Z][-A-Z]*|[a-z][-a-z]*):\\d{6}(/(draft|\\d+\\.\\d+\\.\\d+))$", + "type": "string" }, "identifier": { "description": "A Dandiset identifier that can be resolved by identifiers.org.", @@ -3485,10 +3481,8 @@ "items": { "$ref": "#/$defs/LicenseType" }, - "type": [ - "array", - "null" - ] + "minItems": 1, + "type": "array" }, "manifestLocation": { "items": { @@ -3504,8 +3498,8 @@ "pattern": "^[\\s\\S]{,150}\\Z" } ], - "description": "The name of the item.", - "title": "Title", + "description": "A title associated with the Dandiset.", + "title": "Dandiset title", "type": "string" }, "protocol": { @@ -3590,12 +3584,9 @@ ] }, "url": { - "description": "permalink to the item", + "description": "Permalink to the Dandiset.", "pattern": "^(?i:http|https)://[^\\s]+$", - "type": [ - "string", - "null" - ] + "type": "string" }, "version": { "type": "string" @@ -3631,6 +3622,12 @@ "identifier", "manifestLocation", "version", + "contributor", + "description", + "license", + "name", + "url", + "id", "schemaKey" ], "title": "PublishedDandiset", @@ -4306,7 +4303,7 @@ "type": "string" }, "contributor": { - "description": "Contributors to this item: persons or organizations.", + "description": "People or Organizations that have contributed to this Dandiset.", "items": { "$ref": "#/$defs/Any", "anyOf": [ @@ -4318,11 +4315,9 @@ } ] }, - "title": "Contributors", - "type": [ - "array", - "null" - ] + "minItems": 1, + "title": "Dandiset contributors", + "type": "array" }, "dateCreated": { "format": "date-time", @@ -4345,11 +4340,13 @@ "type": "string" }, "description": { - "description": "A description of the item.", - "type": [ - "string", - "null" - ] + "allOf": [ + { + "pattern": "^[\\s\\S]{,10000}\\Z" + } + ], + "description": "A description of the Dandiset", + "type": "string" }, "doi": { "pattern": "^(10\\.\\d{4,}/[a-z][-a-z]*\\.\\d{6}/\\d+\\.\\d+\\.\\d+|)$", @@ -4371,10 +4368,8 @@ }, "id": { "description": "Uniform resource identifier", - "type": [ - "string", - "null" - ] + "pattern": "^([A-Z][-A-Z]*|[a-z][-a-z]*):\\d{6}(/(draft|\\d+\\.\\d+\\.\\d+))$", + "type": "string" }, "identifier": { "description": "A Dandiset identifier that can be resolved by identifiers.org.", @@ -4397,10 +4392,8 @@ "items": { "$ref": "#/$defs/LicenseType" }, - "type": [ - "array", - "null" - ] + "minItems": 1, + "type": "array" }, "manifestLocation": { "items": { @@ -4416,8 +4409,8 @@ "pattern": "^[\\s\\S]{,150}\\Z" } ], - "description": "The name of the item.", - "title": "Title", + "description": "A title associated with the Dandiset.", + "title": "Dandiset title", "type": "string" }, "protocol": { @@ -4502,12 +4495,9 @@ ] }, "url": { - "description": "permalink to the item", + "description": "Permalink to the Dandiset.", "pattern": "^(?i:http|https)://[^\\s]+$", - "type": [ - "string", - "null" - ] + "type": "string" }, "version": { "type": "string" @@ -4543,6 +4533,12 @@ "identifier", "manifestLocation", "version", + "contributor", + "description", + "license", + "name", + "url", + "id", "schemaKey" ], "title": "dandi-schema", diff --git a/dandischema/models_pydantic/asset.json b/dandischema/models_pydantic/asset.json index 748dc85c..e6440590 100644 --- a/dandischema/models_pydantic/asset.json +++ b/dandischema/models_pydantic/asset.json @@ -2157,7 +2157,7 @@ "type": "boolean" }, "name": { - "default": null, + "description": "Use the format: familyname, given names ...", "linkml_meta": { "domain_of": [ "Activity", @@ -2172,7 +2172,7 @@ "Software" ] }, - "title": "Name", + "title": "Use Last, First. Example: Lovelace, Augusta Ada", "type": "string" }, "roleName": { @@ -2223,6 +2223,9 @@ "type": "array" } }, + "required": [ + "name" + ], "title": "Person", "type": "object" }, @@ -3730,8 +3733,7 @@ "description": "Metadata used to describe an asset on the server.", "properties": { "id": { - "default": null, - "description": "Uniform resource identifier", + "description": "Uniform resource identifier.", "linkml_meta": { "domain_of": [ "DandiBaseModel" @@ -4290,6 +4292,7 @@ } }, "required": [ + "id", "contentSize", "digest", "encodingFormat", diff --git a/dandischema/models_pydantic/dandiset.json b/dandischema/models_pydantic/dandiset.json index 374554b0..9c82929c 100644 --- a/dandischema/models_pydantic/dandiset.json +++ b/dandischema/models_pydantic/dandiset.json @@ -1593,7 +1593,7 @@ "type": "boolean" }, "name": { - "default": null, + "description": "Use the format: familyname, given names ...", "linkml_meta": { "domain_of": [ "Activity", @@ -1608,7 +1608,7 @@ "Software" ] }, - "title": "Name", + "title": "Use Last, First. Example: Lovelace, Augusta Ada", "type": "string" }, "roleName": { @@ -1659,6 +1659,9 @@ "type": "array" } }, + "required": [ + "name" + ], "title": "Person", "type": "object" }, @@ -2742,7 +2745,6 @@ "description": "A body of structured information describing a DANDI dataset.", "properties": { "id": { - "default": null, "description": "Uniform resource identifier", "linkml_meta": { "domain_of": [ @@ -2828,8 +2830,7 @@ "type": "string" }, "contributor": { - "default": null, - "description": "Contributors to this item: persons or organizations.", + "description": "People or Organizations that have contributed to this Dandiset.", "items": { "anyOf": [ { @@ -2857,15 +2858,23 @@ ], "domain_of": [ "CommonModel" + ], + "notes": [ + "pydantic2linkml: Unable to translate the logic contained in the after validation function, >." ] }, - "title": "Contributors", + "minItems": 1, + "title": "Dandiset contributors", "type": "array" }, "description": { - "default": null, - "description": "A description of the item.", + "description": "A description of the Dandiset", "linkml_meta": { + "all_of": [ + { + "pattern": "^[\\s\\S]{,10000}\\Z" + } + ], "domain_of": [ "AccessRequirements", "Activity", @@ -2904,7 +2913,6 @@ "type": "array" }, "license": { - "default": null, "description": "Licenses associated with the item. DANDI only supports a subset of Creative Commons Licenses (creativecommons.org) applicable to datasets.", "items": { "$ref": "#/$defs/LicenseType" @@ -2914,12 +2922,12 @@ "CommonModel" ] }, + "minItems": 1, "title": "License", "type": "array" }, "name": { - "default": null, - "description": "The name of the item.", + "description": "A title associated with the Dandiset.", "linkml_meta": { "all_of": [ { @@ -2939,7 +2947,7 @@ "Software" ] }, - "title": "Title", + "title": "Dandiset title", "type": "string" }, "protocol": { @@ -3172,6 +3180,11 @@ } }, "required": [ + "id", + "contributor", + "description", + "license", + "name", "assetsSummary", "citation", "identifier", diff --git a/dandischema/models_pydantic/published-asset.json b/dandischema/models_pydantic/published-asset.json index 6b68a01d..c95fd0ed 100644 --- a/dandischema/models_pydantic/published-asset.json +++ b/dandischema/models_pydantic/published-asset.json @@ -2157,7 +2157,7 @@ "type": "boolean" }, "name": { - "default": null, + "description": "Use the format: familyname, given names ...", "linkml_meta": { "domain_of": [ "Activity", @@ -2172,7 +2172,7 @@ "Software" ] }, - "title": "Name", + "title": "Use Last, First. Example: Lovelace, Augusta Ada", "type": "string" }, "roleName": { @@ -2223,6 +2223,9 @@ "type": "array" } }, + "required": [ + "name" + ], "title": "Person", "type": "object" }, @@ -3729,8 +3732,7 @@ "additionalProperties": false, "properties": { "id": { - "default": null, - "description": "Uniform resource identifier", + "description": "Uniform resource identifier.", "linkml_meta": { "domain_of": [ "DandiBaseModel" @@ -4328,6 +4330,7 @@ } }, "required": [ + "id", "contentSize", "digest", "encodingFormat", diff --git a/dandischema/models_pydantic/published-dandiset.json b/dandischema/models_pydantic/published-dandiset.json index 0e04895a..2846d8b6 100644 --- a/dandischema/models_pydantic/published-dandiset.json +++ b/dandischema/models_pydantic/published-dandiset.json @@ -1593,7 +1593,7 @@ "type": "boolean" }, "name": { - "default": null, + "description": "Use the format: familyname, given names ...", "linkml_meta": { "domain_of": [ "Activity", @@ -1608,7 +1608,7 @@ "Software" ] }, - "title": "Name", + "title": "Use Last, First. Example: Lovelace, Augusta Ada", "type": "string" }, "roleName": { @@ -1659,6 +1659,9 @@ "type": "array" } }, + "required": [ + "name" + ], "title": "Person", "type": "object" }, @@ -2741,7 +2744,6 @@ "additionalProperties": false, "properties": { "id": { - "default": null, "description": "Uniform resource identifier", "linkml_meta": { "domain_of": [ @@ -2827,8 +2829,7 @@ "type": "string" }, "contributor": { - "default": null, - "description": "Contributors to this item: persons or organizations.", + "description": "People or Organizations that have contributed to this Dandiset.", "items": { "anyOf": [ { @@ -2856,15 +2857,23 @@ ], "domain_of": [ "CommonModel" + ], + "notes": [ + "pydantic2linkml: Unable to translate the logic contained in the after validation function, >." ] }, - "title": "Contributors", + "minItems": 1, + "title": "Dandiset contributors", "type": "array" }, "description": { - "default": null, - "description": "A description of the item.", + "description": "A description of the Dandiset", "linkml_meta": { + "all_of": [ + { + "pattern": "^[\\s\\S]{,10000}\\Z" + } + ], "domain_of": [ "AccessRequirements", "Activity", @@ -2903,7 +2912,6 @@ "type": "array" }, "license": { - "default": null, "description": "Licenses associated with the item. DANDI only supports a subset of Creative Commons Licenses (creativecommons.org) applicable to datasets.", "items": { "$ref": "#/$defs/LicenseType" @@ -2913,12 +2921,12 @@ "CommonModel" ] }, + "minItems": 1, "title": "License", "type": "array" }, "name": { - "default": null, - "description": "The name of the item.", + "description": "A title associated with the Dandiset.", "linkml_meta": { "all_of": [ { @@ -2938,7 +2946,7 @@ "Software" ] }, - "title": "Title", + "title": "Dandiset title", "type": "string" }, "protocol": { @@ -3015,8 +3023,7 @@ "type": "array" }, "url": { - "default": null, - "description": "permalink to the item", + "description": "Permalink to the Dandiset.", "linkml_meta": { "domain_of": [ "Agent", @@ -3028,6 +3035,7 @@ "Software" ], "notes": [ + "pydantic2linkml: Unable to translate the logic contained in the after validation function, >.", "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." ] }, @@ -3232,6 +3240,12 @@ } }, "required": [ + "id", + "contributor", + "description", + "license", + "name", + "url", "assetsSummary", "citation", "identifier", From e66b24b772cb6306172d8802f1a49a7202e8c493 Mon Sep 17 00:00:00 2001 From: Isaac To Date: Tue, 19 May 2026 09:39:43 -0700 Subject: [PATCH 21/25] 'Merged' with linkml-conversion 0.12.1-116-gc931794 and 2 branches --- dandischema/models.yaml | 101 +- dandischema/models_linkml.py | 1247 +++++++++++++++-- dandischema/models_linkml/asset.json | 4 - dandischema/models_linkml/dandiset.json | 3 - .../models_linkml/published-asset.json | 4 - .../models_linkml/published-dandiset.json | 3 - dandischema/models_pydantic/asset.json | 225 ++- dandischema/models_pydantic/dandiset.json | 204 ++- .../models_pydantic/published-asset.json | 231 +-- .../models_pydantic/published-dandiset.json | 216 ++- 10 files changed, 1770 insertions(+), 468 deletions(-) diff --git a/dandischema/models.yaml b/dandischema/models.yaml index 63d7ae92..2c0af4c4 100644 --- a/dandischema/models.yaml +++ b/dandischema/models.yaml @@ -369,6 +369,9 @@ slots: required: false multivalued: true approach: + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority range: ApproachType required: false multivalued: true @@ -378,6 +381,9 @@ slots: required: false multivalued: true assetsSummary: + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority range: AssetsSummary required: true awardNumber: @@ -394,6 +400,9 @@ slots: range: string required: false citation: + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority range: string required: true contactPoint: @@ -415,6 +424,9 @@ slots: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority range: uri required: true multivalued: true @@ -432,6 +444,9 @@ slots: function, .' range: Organization dataStandard: + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority range: StandardsType required: false multivalued: true @@ -445,12 +460,18 @@ slots: pattern: ^(?i:http|https)://[^\s]+$ dateCreated: title: Dandiset creation date and time. + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority range: datetime required: false dateModified: range: datetime required: false datePublished: + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority range: datetime required: true description: @@ -471,6 +492,9 @@ slots: multivalued: true doi: title: DOI + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority ifabsent: string() range: string required: false @@ -493,6 +517,9 @@ slots: embargoedUntil: description: Date on which embargo ends. title: Embargo end date + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority range: date required: false encodingFormat: @@ -528,6 +555,9 @@ slots: required: false multivalued: true id: + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority range: string identifier: {} includeInCitation: @@ -556,6 +586,9 @@ slots: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority range: uri required: true multivalued: true @@ -568,6 +601,9 @@ slots: range: float required: false measurementTechnique: + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority range: MeasurementTechniqueType required: false multivalued: true @@ -580,18 +616,33 @@ slots: name: range: string numberOfBytes: + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority range: integer required: true numberOfCells: + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority range: integer required: false numberOfFiles: + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority range: integer required: true numberOfSamples: + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority range: integer required: false numberOfSubjects: + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority range: integer required: false path: @@ -624,6 +675,9 @@ slots: publishedBy: description: The URL should contain the provenance of the publishing process. + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority range: Any required: true any_of: @@ -651,6 +705,9 @@ slots: required: true releaseNotes: description: The description of the release + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority range: string required: false repository: @@ -675,10 +732,16 @@ slots: range: SampleType required: true schemaKey: + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority designates_type: true range: string required: true schemaVersion: + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority ifabsent: string(0.7.0) range: string required: false @@ -733,6 +796,9 @@ slots: range: PropertyValue required: false variableMeasured: + readonly: Managed exclusively by the owning authority; attempts by another + entity to modify the value are expected to be ignored or rejected by that + owning authority required: false multivalued: true vendor: @@ -884,6 +950,9 @@ classes: description: Uniform resource identifier. required: true identifier: + readonly: Managed exclusively by the owning authority; attempts by + another entity to modify the value are expected to be ignored or + rejected by that owning authority range: string required: true pattern: @@ -904,6 +973,9 @@ classes: - variableMeasured slot_usage: species: + readonly: Managed exclusively by the owning authority; attempts by + another entity to modify the value are expected to be ignored or + rejected by that owning authority multivalued: true variableMeasured: range: string @@ -911,6 +983,9 @@ classes: description: Metadata used to describe an asset anywhere (local or server). Derived from C2M2 (Level 0 and 1) and schema.org notes: + - 'pydantic2linkml: Impossible to generate slot usage entry for the access slot. + The slot representation of the access field in the BareAsset Pydantic model + lacks meta slots: [''readonly''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the wasGeneratedBy slot. The slot representation of the wasGeneratedBy field in the BareAsset Pydantic model has disallowed changes in value in constraint meta slots: [''range''] @@ -934,13 +1009,6 @@ classes: - wasAttributedTo - wasDerivedFrom slot_usage: - access: - notes: - - 'pydantic2linkml: Unable to express the default factory, - at 0xADDRESS>, in LinkML.' - - 'pydantic2linkml: Unable to translate the logic contained in the after validation - function, .' - maximum_cardinality: 1 dateModified: title: Asset (file or metadata) modification date and time sameAs: @@ -1029,6 +1097,9 @@ classes: at 0xADDRESS>, in LinkML.' - 'pydantic2linkml: Unable to translate the logic contained in the after validation function, .' + readonly: Managed exclusively by the owning authority; attempts by + another entity to modify the value are expected to be ignored or + rejected by that owning authority contributor: description: 'Contributors to this item: persons or organizations.' title: Contributors @@ -1050,6 +1121,9 @@ classes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' + readonly: Managed exclusively by the owning authority; attempts by + another entity to modify the value are expected to be ignored or + rejected by that owning authority range: uri pattern: ^(?i:http|https)://[^\s]+$ url: @@ -1058,6 +1132,9 @@ classes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' + readonly: Managed exclusively by the owning authority; attempts by + another entity to modify the value are expected to be ignored or + rejected by that owning authority required: false wasGeneratedBy: range: Activity @@ -1143,6 +1220,9 @@ classes: minimum_cardinality: 1 dateModified: title: Last modification date and time. + readonly: Managed exclusively by the owning authority; attempts by + another entity to modify the value are expected to be ignored or + rejected by that owning authority description: description: A description of the Dandiset required: true @@ -1155,6 +1235,9 @@ classes: description: A Dandiset identifier that can be resolved by identifiers.org. title: Dandiset identifier + readonly: Managed exclusively by the owning authority; attempts by + another entity to modify the value are expected to be ignored or + rejected by that owning authority range: string required: true pattern: ^[A-Z][-A-Z]*:\d{6}$ @@ -1169,6 +1252,10 @@ classes: description: Known DANDI URLs of the Dandiset at other DANDI instances. range: string pattern: ^dandi://[A-Z][-A-Z]*/\d{6}(@(draft|\d+\.\d+\.\d+))?(/\S+)?$ + version: + readonly: Managed exclusively by the owning authority; attempts by + another entity to modify the value are expected to be ignored or + rejected by that owning authority Disorder: description: Biolink, SNOMED, or other identifier for disorder studied is_a: BaseType diff --git a/dandischema/models_linkml.py b/dandischema/models_linkml.py index e9a4bd0c..95b126fb 100644 --- a/dandischema/models_linkml.py +++ b/dandischema/models_linkml.py @@ -349,12 +349,25 @@ class DandiBaseModel(ConfiguredBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["DandiBaseModel"] = Field( default="DandiBaseModel", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -411,7 +424,14 @@ class AccessRequirements(DandiBaseModel): default=None, title="Embargo end date", description="""Date on which embargo ends.""", - json_schema_extra={"linkml_meta": {"domain_of": ["AccessRequirements"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["AccessRequirements"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) status: AccessType = Field( default=..., @@ -422,12 +442,25 @@ class AccessRequirements(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["AccessRequirements"] = Field( default="AccessRequirements", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -569,12 +602,25 @@ class Activity(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Activity"] = Field( default="Activity", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -651,12 +697,25 @@ class Affiliation(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Affiliation"] = Field( default="Affiliation", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -773,12 +832,25 @@ class Agent(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Agent"] = Field( default="Agent", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -854,12 +926,25 @@ class Allele(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Allele"] = Field( default="Allele", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -873,7 +958,15 @@ class AssetsSummary(DandiBaseModel): { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "slot_usage": { - "species": {"multivalued": True, "name": "species"}, + "species": { + "multivalued": True, + "name": "species", + "readonly": "Managed exclusively by the owning " + "authority; attempts by another entity " + "to modify the value are expected to " + "be ignored or rejected by that owning " + "authority", + }, "variableMeasured": {"name": "variableMeasured", "range": "string"}, }, } @@ -882,58 +975,135 @@ class AssetsSummary(DandiBaseModel): approach: Optional[list[ApproachType]] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + "linkml_meta": { + "domain_of": ["AssetsSummary", "BareAsset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) dataStandard: Optional[list[StandardsType]] = Field( default=None, - json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["AssetsSummary"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) measurementTechnique: Optional[list[MeasurementTechniqueType]] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + "linkml_meta": { + "domain_of": ["AssetsSummary", "BareAsset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) numberOfBytes: int = Field( - default=..., json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary"]}} + default=..., + json_schema_extra={ + "linkml_meta": { + "domain_of": ["AssetsSummary"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) numberOfCells: Optional[int] = Field( default=None, - json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["AssetsSummary"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) numberOfFiles: int = Field( - default=..., json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary"]}} + default=..., + json_schema_extra={ + "linkml_meta": { + "domain_of": ["AssetsSummary"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) numberOfSamples: Optional[int] = Field( default=None, - json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["AssetsSummary"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) numberOfSubjects: Optional[int] = Field( default=None, - json_schema_extra={"linkml_meta": {"domain_of": ["AssetsSummary"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["AssetsSummary"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) species: Optional[list[SpeciesType]] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AssetsSummary", "Participant"]} + "linkml_meta": { + "domain_of": ["AssetsSummary", "Participant"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) variableMeasured: Optional[list[str]] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + "linkml_meta": { + "domain_of": ["AssetsSummary", "BareAsset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["AssetsSummary"] = Field( default="AssetsSummary", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -1050,12 +1220,25 @@ class BaseType(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["BaseType"] = Field( default="BaseType", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -1135,12 +1318,25 @@ class Anatomy(BaseType): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Anatomy"] = Field( default="Anatomy", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -1220,12 +1416,25 @@ class ApproachType(BaseType): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["ApproachType"] = Field( default="ApproachType", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -1305,12 +1514,25 @@ class AssayType(BaseType): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["AssayType"] = Field( default="AssayType", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -1410,12 +1632,25 @@ class BioSample(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["BioSample"] = Field( default="BioSample", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -1438,6 +1673,11 @@ class CommonModel(DandiBaseModel): "AccessRequirements.open_or_embargoed at " "0xADDRESS>.", ], + "readonly": "Managed exclusively by the owning " + "authority; attempts by another entity " + "to modify the value are expected to be " + "ignored or rejected by that owning " + "authority", }, "contributor": { "description": "Contributors to this item: " @@ -1471,6 +1711,11 @@ class CommonModel(DandiBaseModel): ], "pattern": "^(?i:http|https)://[^\\s]+$", "range": "uri", + "readonly": "Managed exclusively by the owning " + "authority; attempts by another " + "entity to modify the value are " + "expected to be ignored or rejected " + "by that owning authority", }, "url": { "description": "permalink to the item", @@ -1482,6 +1727,11 @@ class CommonModel(DandiBaseModel): "_BaseUrl.__get_pydantic_core_schema__..wrap_val " "at 0xADDRESS>." ], + "readonly": "Managed exclusively by the owning " + "authority; attempts by another entity to " + "modify the value are expected to be " + "ignored or rejected by that owning " + "authority", "required": False, }, "wasGeneratedBy": {"name": "wasGeneratedBy", "range": "Activity"}, @@ -1517,6 +1767,9 @@ class CommonModel(DandiBaseModel): "after validation function, .", ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -1646,13 +1899,22 @@ class CommonModel(DandiBaseModel): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) schemaVersion: Optional[str] = Field( default="0.7.0", json_schema_extra={ - "linkml_meta": {"domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)"} + "linkml_meta": { + "domain_of": ["CommonModel"], + "ifabsent": "string(0.7.0)", + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) studyTarget: Optional[list[str]] = Field( @@ -1680,6 +1942,9 @@ class CommonModel(DandiBaseModel): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -1694,12 +1959,25 @@ class CommonModel(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["CommonModel"] = Field( default="CommonModel", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -1752,6 +2030,9 @@ class BareAsset(CommonModel): { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "notes": [ + "pydantic2linkml: Impossible to generate slot usage entry for the " + "access slot. The slot representation of the access field in the " + "BareAsset Pydantic model lacks meta slots: ['readonly'] .", "pydantic2linkml: Impossible to generate slot usage entry for the " "wasGeneratedBy slot. The slot representation of the wasGeneratedBy " "field in the BareAsset Pydantic model has disallowed changes in " @@ -1762,21 +2043,6 @@ class BareAsset(CommonModel): "needed.", ], "slot_usage": { - "access": { - "maximum_cardinality": 1, - "name": "access", - "notes": [ - "pydantic2linkml: Unable to express the " - "default factory, at 0xADDRESS>, in " - "LinkML.", - "pydantic2linkml: Unable to translate the " - "logic contained in the after validation " - "function, .", - ], - }, "dateModified": { "name": "dateModified", "title": "Asset (file or metadata) " "modification date and time", @@ -1808,7 +2074,12 @@ class BareAsset(CommonModel): approach: Optional[list[ApproachType]] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + "linkml_meta": { + "domain_of": ["AssetsSummary", "BareAsset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) blobDateModified: Optional[datetime] = Field( @@ -1893,7 +2164,12 @@ class BareAsset(CommonModel): measurementTechnique: Optional[list[MeasurementTechniqueType]] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + "linkml_meta": { + "domain_of": ["AssetsSummary", "BareAsset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) path: str = Field( @@ -1916,7 +2192,12 @@ class BareAsset(CommonModel): variableMeasured: Optional[list[PropertyValue]] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + "linkml_meta": { + "domain_of": ["AssetsSummary", "BareAsset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) wasAttributedTo: Optional[list[Participant]] = Field( @@ -1946,17 +2227,19 @@ class BareAsset(CommonModel): access: Optional[list[AccessRequirements]] = Field( default=None, title="Access information", - max_length=1, json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel"], "notes": [ "pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.", + "CommonModel. at 0xADDRESS>, in LinkML.", "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, .", ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -2086,13 +2369,22 @@ class BareAsset(CommonModel): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) schemaVersion: Optional[str] = Field( default="0.7.0", json_schema_extra={ - "linkml_meta": {"domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)"} + "linkml_meta": { + "domain_of": ["CommonModel"], + "ifabsent": "string(0.7.0)", + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) studyTarget: Optional[list[str]] = Field( @@ -2120,6 +2412,9 @@ class BareAsset(CommonModel): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -2134,12 +2429,25 @@ class BareAsset(CommonModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["BareAsset"] = Field( default="BareAsset", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -2227,6 +2535,11 @@ class Asset(BareAsset): "name": "identifier", "pattern": "^(?:urn:uuid:)?[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?4[0-9a-fA-F]{3}-?[89abAB][0-9a-fA-F]{3}-?[0-9a-fA-F]{12}$", "range": "string", + "readonly": "Managed exclusively by the owning " + "authority; attempts by another " + "entity to modify the value are " + "expected to be ignored or rejected " + "by that owning authority", "required": True, }, }, @@ -2244,6 +2557,9 @@ class Asset(BareAsset): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -2268,14 +2584,22 @@ class Asset(BareAsset): "RelatedParticipant", "Resource", "Software", - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) approach: Optional[list[ApproachType]] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + "linkml_meta": { + "domain_of": ["AssetsSummary", "BareAsset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) blobDateModified: Optional[datetime] = Field( @@ -2360,7 +2684,12 @@ class Asset(BareAsset): measurementTechnique: Optional[list[MeasurementTechniqueType]] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + "linkml_meta": { + "domain_of": ["AssetsSummary", "BareAsset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) path: str = Field( @@ -2383,7 +2712,12 @@ class Asset(BareAsset): variableMeasured: Optional[list[PropertyValue]] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + "linkml_meta": { + "domain_of": ["AssetsSummary", "BareAsset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) wasAttributedTo: Optional[list[Participant]] = Field( @@ -2413,17 +2747,19 @@ class Asset(BareAsset): access: Optional[list[AccessRequirements]] = Field( default=None, title="Access information", - max_length=1, json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel"], "notes": [ "pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.", + "CommonModel. at 0xADDRESS>, in LinkML.", "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, .", ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -2553,13 +2889,22 @@ class Asset(BareAsset): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) schemaVersion: Optional[str] = Field( default="0.7.0", json_schema_extra={ - "linkml_meta": {"domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)"} + "linkml_meta": { + "domain_of": ["CommonModel"], + "ifabsent": "string(0.7.0)", + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) studyTarget: Optional[list[str]] = Field( @@ -2587,6 +2932,9 @@ class Asset(BareAsset): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -2601,12 +2949,25 @@ class Asset(BareAsset): id: str = Field( default=..., description="""Uniform resource identifier.""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Asset"] = Field( default="Asset", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -2767,12 +3128,25 @@ class ContactPoint(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["ContactPoint"] = Field( default="ContactPoint", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -2933,12 +3307,25 @@ class Contributor(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Contributor"] = Field( default="Contributor", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -2991,6 +3378,12 @@ class Dandiset(CommonModel): }, "dateModified": { "name": "dateModified", + "readonly": "Managed exclusively by the " + "owning authority; attempts by " + "another entity to modify the " + "value are expected to be ignored " + "or rejected by that owning " + "authority", "title": "Last modification date and time.", }, "description": { @@ -3010,6 +3403,11 @@ class Dandiset(CommonModel): "name": "identifier", "pattern": "^[A-Z][-A-Z]*:\\d{6}$", "range": "string", + "readonly": "Managed exclusively by the owning " + "authority; attempts by another " + "entity to modify the value are " + "expected to be ignored or rejected " + "by that owning authority", "required": True, "title": "Dandiset identifier", }, @@ -3031,25 +3429,63 @@ class Dandiset(CommonModel): "pattern": "^dandi://[A-Z][-A-Z]*/\\d{6}(@(draft|\\d+\\.\\d+\\.\\d+))?(/\\S+)?$", "range": "string", }, + "version": { + "name": "version", + "readonly": "Managed exclusively by the owning " + "authority; attempts by another entity " + "to modify the value are expected to " + "be ignored or rejected by that owning " + "authority", + }, }, } ) assetsSummary: AssetsSummary = Field( - default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}} + default=..., + json_schema_extra={ + "linkml_meta": { + "domain_of": ["Dandiset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) citation: str = Field( - default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}} + default=..., + json_schema_extra={ + "linkml_meta": { + "domain_of": ["Dandiset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) dateCreated: Optional[datetime] = Field( default=None, title="Dandiset creation date and time.", - json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["Dandiset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) dateModified: Optional[datetime] = Field( default=None, title="Last modification date and time.", - json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "Dandiset"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["BareAsset", "Dandiset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) identifier: str = Field( default=..., @@ -3074,7 +3510,10 @@ class Dandiset(CommonModel): "RelatedParticipant", "Resource", "Software", - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -3090,6 +3529,9 @@ class Dandiset(CommonModel): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -3104,7 +3546,14 @@ class Dandiset(CommonModel): ) version: str = Field( default=..., - json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset", "Software"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["Dandiset", "Software"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) about: Optional[list[Union[Anatomy, Disorder, GenericType]]] = Field( default=None, @@ -3134,6 +3583,9 @@ class Dandiset(CommonModel): "after validation function, .", ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -3272,13 +3724,22 @@ class Dandiset(CommonModel): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) schemaVersion: Optional[str] = Field( default="0.7.0", json_schema_extra={ - "linkml_meta": {"domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)"} + "linkml_meta": { + "domain_of": ["CommonModel"], + "ifabsent": "string(0.7.0)", + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) studyTarget: Optional[list[str]] = Field( @@ -3306,6 +3767,9 @@ class Dandiset(CommonModel): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -3320,12 +3784,25 @@ class Dandiset(CommonModel): id: str = Field( default=..., description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Dandiset"] = Field( default="Dandiset", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -3511,12 +3988,25 @@ class Disorder(BaseType): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Disorder"] = Field( default="Disorder", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -3611,12 +4101,25 @@ class Equipment(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Equipment"] = Field( default="Equipment", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -3687,12 +4190,25 @@ class EthicsApproval(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["EthicsApproval"] = Field( default="EthicsApproval", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -3772,12 +4288,25 @@ class GenericType(BaseType): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["GenericType"] = Field( default="GenericType", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -3818,12 +4347,25 @@ class GenotypeInfo(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["GenotypeInfo"] = Field( default="GenotypeInfo", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -3883,12 +4425,25 @@ class Locus(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Locus"] = Field( default="Locus", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -3968,12 +4523,25 @@ class MeasurementTechniqueType(BaseType): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["MeasurementTechniqueType"] = Field( default="MeasurementTechniqueType", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -4122,12 +4690,25 @@ class Organization(Contributor): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Organization"] = Field( default="Organization", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -4291,12 +4872,25 @@ class Participant(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Participant"] = Field( default="Participant", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -4435,12 +5029,25 @@ class Person(Contributor): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Person"] = Field( default="Person", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -4610,12 +5217,25 @@ class Project(Activity): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Project"] = Field( default="Project", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -4700,12 +5320,25 @@ class PropertyValue(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["PropertyValue"] = Field( default="PropertyValue", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -4716,7 +5349,15 @@ class Publishable(DandiBaseModel): ) datePublished: datetime = Field( - default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Publishable"]}} + default=..., + json_schema_extra={ + "linkml_meta": { + "domain_of": ["Publishable"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) publishedBy: Union[PublishActivity, str] = Field( default=..., @@ -4737,18 +5378,34 @@ class Publishable(DandiBaseModel): {"range": "PublishActivity"}, ], "domain_of": ["Publishable"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Publishable"] = Field( default="Publishable", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -4865,12 +5522,25 @@ class PublishActivity(Activity): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["PublishActivity"] = Field( default="PublishActivity", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -4899,7 +5569,15 @@ class PublishedAsset(Publishable, Asset): ) datePublished: datetime = Field( - default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Publishable"]}} + default=..., + json_schema_extra={ + "linkml_meta": { + "domain_of": ["Publishable"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) publishedBy: Union[PublishActivity, str] = Field( default=..., @@ -4920,6 +5598,9 @@ class PublishedAsset(Publishable, Asset): {"range": "PublishActivity"}, ], "domain_of": ["Publishable"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -4934,6 +5615,9 @@ class PublishedAsset(Publishable, Asset): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -4958,14 +5642,22 @@ class PublishedAsset(Publishable, Asset): "RelatedParticipant", "Resource", "Software", - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) approach: Optional[list[ApproachType]] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + "linkml_meta": { + "domain_of": ["AssetsSummary", "BareAsset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) blobDateModified: Optional[datetime] = Field( @@ -5050,7 +5742,12 @@ class PublishedAsset(Publishable, Asset): measurementTechnique: Optional[list[MeasurementTechniqueType]] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + "linkml_meta": { + "domain_of": ["AssetsSummary", "BareAsset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) path: str = Field( @@ -5073,7 +5770,12 @@ class PublishedAsset(Publishable, Asset): variableMeasured: Optional[list[PropertyValue]] = Field( default=None, json_schema_extra={ - "linkml_meta": {"domain_of": ["AssetsSummary", "BareAsset"]} + "linkml_meta": { + "domain_of": ["AssetsSummary", "BareAsset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) wasAttributedTo: Optional[list[Participant]] = Field( @@ -5103,17 +5805,19 @@ class PublishedAsset(Publishable, Asset): access: Optional[list[AccessRequirements]] = Field( default=None, title="Access information", - max_length=1, json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel"], "notes": [ "pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.", + "CommonModel. at 0xADDRESS>, in LinkML.", "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, .", ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -5243,13 +5947,22 @@ class PublishedAsset(Publishable, Asset): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) schemaVersion: Optional[str] = Field( default="0.7.0", json_schema_extra={ - "linkml_meta": {"domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)"} + "linkml_meta": { + "domain_of": ["CommonModel"], + "ifabsent": "string(0.7.0)", + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) studyTarget: Optional[list[str]] = Field( @@ -5277,6 +5990,9 @@ class PublishedAsset(Publishable, Asset): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -5291,12 +6007,25 @@ class PublishedAsset(Publishable, Asset): id: str = Field( default=..., description="""Uniform resource identifier.""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["PublishedAsset"] = Field( default="PublishedAsset", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -5453,16 +6182,37 @@ class PublishedDandiset(Publishable, Dandiset): default="", title="DOI", json_schema_extra={ - "linkml_meta": {"domain_of": ["PublishedDandiset"], "ifabsent": "string()"} + "linkml_meta": { + "domain_of": ["PublishedDandiset"], + "ifabsent": "string()", + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) releaseNotes: Optional[str] = Field( default=None, description="""The description of the release""", - json_schema_extra={"linkml_meta": {"domain_of": ["PublishedDandiset"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["PublishedDandiset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) datePublished: datetime = Field( - default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Publishable"]}} + default=..., + json_schema_extra={ + "linkml_meta": { + "domain_of": ["Publishable"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) publishedBy: Union[PublishActivity, str] = Field( default=..., @@ -5483,24 +6233,57 @@ class PublishedDandiset(Publishable, Dandiset): {"range": "PublishActivity"}, ], "domain_of": ["Publishable"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) assetsSummary: AssetsSummary = Field( - default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}} + default=..., + json_schema_extra={ + "linkml_meta": { + "domain_of": ["Dandiset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) citation: str = Field( - default=..., json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}} + default=..., + json_schema_extra={ + "linkml_meta": { + "domain_of": ["Dandiset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) dateCreated: Optional[datetime] = Field( default=None, title="Dandiset creation date and time.", - json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["Dandiset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) dateModified: Optional[datetime] = Field( default=None, title="Last modification date and time.", - json_schema_extra={"linkml_meta": {"domain_of": ["BareAsset", "Dandiset"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["BareAsset", "Dandiset"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) identifier: str = Field( default=..., @@ -5525,7 +6308,10 @@ class PublishedDandiset(Publishable, Dandiset): "RelatedParticipant", "Resource", "Software", - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -5541,6 +6327,9 @@ class PublishedDandiset(Publishable, Dandiset): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -5555,7 +6344,14 @@ class PublishedDandiset(Publishable, Dandiset): ) version: str = Field( default=..., - json_schema_extra={"linkml_meta": {"domain_of": ["Dandiset", "Software"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["Dandiset", "Software"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) about: Optional[list[Union[Anatomy, Disorder, GenericType]]] = Field( default=None, @@ -5585,6 +6381,9 @@ class PublishedDandiset(Publishable, Dandiset): "after validation function, .", ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -5723,13 +6522,22 @@ class PublishedDandiset(Publishable, Dandiset): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) schemaVersion: Optional[str] = Field( default="0.7.0", json_schema_extra={ - "linkml_meta": {"domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)"} + "linkml_meta": { + "domain_of": ["CommonModel"], + "ifabsent": "string(0.7.0)", + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) studyTarget: Optional[list[str]] = Field( @@ -5761,6 +6569,9 @@ class PublishedDandiset(Publishable, Dandiset): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>.", ], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", } }, ) @@ -5775,12 +6586,25 @@ class PublishedDandiset(Publishable, Dandiset): id: str = Field( default=..., description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["PublishedDandiset"] = Field( default="PublishedDandiset", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -6015,12 +6839,25 @@ class RelatedParticipant(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["RelatedParticipant"] = Field( default="RelatedParticipant", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -6176,12 +7013,25 @@ class Resource(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Resource"] = Field( default="Resource", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -6274,12 +7124,25 @@ class SampleType(BaseType): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["SampleType"] = Field( default="SampleType", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -6410,12 +7273,25 @@ class Session(Activity): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Session"] = Field( default="Session", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -6495,12 +7371,25 @@ class SexType(BaseType): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["SexType"] = Field( default="SexType", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -6611,12 +7500,25 @@ class Software(DandiBaseModel): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["Software"] = Field( default="Software", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -6722,12 +7624,25 @@ class SpeciesType(BaseType): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["SpeciesType"] = Field( default="SpeciesType", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -6807,12 +7722,25 @@ class StandardsType(BaseType): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["StandardsType"] = Field( default="StandardsType", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) @@ -6892,12 +7820,25 @@ class StrainType(BaseType): id: Optional[str] = Field( default=None, description="""Uniform resource identifier""", - json_schema_extra={"linkml_meta": {"domain_of": ["DandiBaseModel"]}}, + json_schema_extra={ + "linkml_meta": { + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } + }, ) schemaKey: Literal["StrainType"] = Field( default="StrainType", json_schema_extra={ - "linkml_meta": {"designates_type": True, "domain_of": ["DandiBaseModel"]} + "linkml_meta": { + "designates_type": True, + "domain_of": ["DandiBaseModel"], + "readonly": "Managed exclusively by the owning authority; attempts by another " + "entity to modify the value are expected to be ignored or " + "rejected by that owning authority", + } }, ) diff --git a/dandischema/models_linkml/asset.json b/dandischema/models_linkml/asset.json index c31e9d4d..70753960 100644 --- a/dandischema/models_linkml/asset.json +++ b/dandischema/models_linkml/asset.json @@ -492,7 +492,6 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, - "maxItems": 1, "title": "Access information", "type": [ "array", @@ -918,7 +917,6 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, - "maxItems": 1, "title": "Access information", "type": [ "array", @@ -3021,7 +3019,6 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, - "maxItems": 1, "title": "Access information", "type": [ "array", @@ -4283,7 +4280,6 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, - "maxItems": 1, "title": "Access information", "type": [ "array", diff --git a/dandischema/models_linkml/dandiset.json b/dandischema/models_linkml/dandiset.json index 60881e0c..f51bf1d7 100644 --- a/dandischema/models_linkml/dandiset.json +++ b/dandischema/models_linkml/dandiset.json @@ -492,7 +492,6 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, - "maxItems": 1, "title": "Access information", "type": [ "array", @@ -918,7 +917,6 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, - "maxItems": 1, "title": "Access information", "type": [ "array", @@ -3021,7 +3019,6 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, - "maxItems": 1, "title": "Access information", "type": [ "array", diff --git a/dandischema/models_linkml/published-asset.json b/dandischema/models_linkml/published-asset.json index a70f338c..eaebe8e4 100644 --- a/dandischema/models_linkml/published-asset.json +++ b/dandischema/models_linkml/published-asset.json @@ -492,7 +492,6 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, - "maxItems": 1, "title": "Access information", "type": [ "array", @@ -918,7 +917,6 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, - "maxItems": 1, "title": "Access information", "type": [ "array", @@ -3021,7 +3019,6 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, - "maxItems": 1, "title": "Access information", "type": [ "array", @@ -4283,7 +4280,6 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, - "maxItems": 1, "title": "Access information", "type": [ "array", diff --git a/dandischema/models_linkml/published-dandiset.json b/dandischema/models_linkml/published-dandiset.json index 373d28bd..4af291f7 100644 --- a/dandischema/models_linkml/published-dandiset.json +++ b/dandischema/models_linkml/published-dandiset.json @@ -492,7 +492,6 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, - "maxItems": 1, "title": "Access information", "type": [ "array", @@ -918,7 +917,6 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, - "maxItems": 1, "title": "Access information", "type": [ "array", @@ -3021,7 +3019,6 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, - "maxItems": 1, "title": "Access information", "type": [ "array", diff --git a/dandischema/models_pydantic/asset.json b/dandischema/models_pydantic/asset.json index e6440590..30c288b8 100644 --- a/dandischema/models_pydantic/asset.json +++ b/dandischema/models_pydantic/asset.json @@ -10,7 +10,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -22,7 +23,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -60,7 +62,8 @@ "linkml_meta": { "domain_of": [ "AccessRequirements" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Embargo end date", "type": "string" @@ -101,7 +104,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -113,7 +117,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -279,7 +284,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -291,7 +297,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -357,7 +364,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -369,7 +377,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -453,7 +462,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -465,7 +475,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -541,7 +552,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -553,7 +565,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -636,7 +649,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -648,7 +662,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -731,7 +746,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -743,7 +759,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -826,7 +843,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -838,7 +856,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -980,7 +999,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -992,7 +1012,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1046,7 +1067,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1058,7 +1080,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1171,7 +1194,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1183,7 +1207,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1268,7 +1293,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1280,7 +1306,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1339,7 +1366,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1351,7 +1379,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1433,7 +1462,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1445,7 +1475,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1524,7 +1555,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1536,7 +1568,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1602,7 +1635,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1614,7 +1648,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1696,7 +1731,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1708,7 +1744,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1858,7 +1895,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1870,7 +1908,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2076,7 +2115,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2088,7 +2128,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2238,7 +2279,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2250,7 +2292,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2416,7 +2459,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2428,7 +2472,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2543,7 +2588,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2555,7 +2601,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2721,7 +2768,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2733,7 +2781,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2869,7 +2918,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2881,7 +2931,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -3072,7 +3123,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -3084,7 +3136,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -3166,7 +3219,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -3178,7 +3232,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -3345,7 +3400,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -3357,7 +3413,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -3439,7 +3496,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -3451,7 +3509,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -3548,7 +3607,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -3560,7 +3620,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -3643,7 +3704,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -3655,7 +3717,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -3737,7 +3800,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -3749,7 +3813,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -3799,11 +3864,11 @@ "CommonModel" ], "notes": [ - "pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.", + "pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.", "pydantic2linkml: Unable to translate the logic contained in the after validation function, ." - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, - "maxItems": 1, "title": "Access information", "type": "array" }, @@ -3976,7 +4041,8 @@ ], "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Repository", "type": "string" @@ -3987,7 +4053,8 @@ "domain_of": [ "CommonModel" ], - "ifabsent": "string(0.7.0)" + "ifabsent": "string(0.7.0)", + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemaversion", "type": "string" @@ -4021,7 +4088,8 @@ ], "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Url", "type": "string" @@ -4062,7 +4130,8 @@ "domain_of": [ "AssetsSummary", "BareAsset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Approach", "type": "array" @@ -4175,7 +4244,8 @@ "domain_of": [ "AssetsSummary", "BareAsset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Measurementtechnique", "type": "array" @@ -4217,7 +4287,8 @@ "domain_of": [ "AssetsSummary", "BareAsset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Variablemeasured", "type": "array" @@ -4261,7 +4332,8 @@ ], "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Contenturl", "type": "array" @@ -4285,7 +4357,8 @@ "RelatedParticipant", "Resource", "Software" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Identifier", "type": "string" diff --git a/dandischema/models_pydantic/dandiset.json b/dandischema/models_pydantic/dandiset.json index 9c82929c..7e55188b 100644 --- a/dandischema/models_pydantic/dandiset.json +++ b/dandischema/models_pydantic/dandiset.json @@ -10,7 +10,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -22,7 +23,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -60,7 +62,8 @@ "linkml_meta": { "domain_of": [ "AccessRequirements" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Embargo end date", "type": "string" @@ -101,7 +104,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -113,7 +117,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -279,7 +284,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -291,7 +297,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -357,7 +364,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -369,7 +377,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -454,7 +463,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -466,7 +476,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -549,7 +560,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -561,7 +573,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -644,7 +657,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -656,7 +670,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -670,7 +685,8 @@ "domain_of": [ "AssetsSummary", "BareAsset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Approach", "type": "array" @@ -683,7 +699,8 @@ "linkml_meta": { "domain_of": [ "AssetsSummary" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Datastandard", "type": "array" @@ -697,7 +714,8 @@ "domain_of": [ "AssetsSummary", "BareAsset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Measurementtechnique", "type": "array" @@ -706,7 +724,8 @@ "linkml_meta": { "domain_of": [ "AssetsSummary" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Numberofbytes", "type": "integer" @@ -716,7 +735,8 @@ "linkml_meta": { "domain_of": [ "AssetsSummary" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Numberofcells", "type": "integer" @@ -725,7 +745,8 @@ "linkml_meta": { "domain_of": [ "AssetsSummary" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Numberoffiles", "type": "integer" @@ -735,7 +756,8 @@ "linkml_meta": { "domain_of": [ "AssetsSummary" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Numberofsamples", "type": "integer" @@ -745,7 +767,8 @@ "linkml_meta": { "domain_of": [ "AssetsSummary" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Numberofsubjects", "type": "integer" @@ -759,7 +782,8 @@ "domain_of": [ "AssetsSummary", "Participant" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Species", "type": "array" @@ -773,7 +797,8 @@ "domain_of": [ "AssetsSummary", "BareAsset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Variablemeasured", "type": "array" @@ -795,7 +820,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -807,7 +833,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -861,7 +888,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -873,7 +901,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -986,7 +1015,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -998,7 +1028,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1083,7 +1114,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1095,7 +1127,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1154,7 +1187,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1166,7 +1200,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1257,7 +1292,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1269,7 +1305,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1351,7 +1388,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1363,7 +1401,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1512,7 +1551,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1524,7 +1564,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1674,7 +1715,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1686,7 +1728,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1852,7 +1895,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1864,7 +1908,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2071,7 +2116,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2083,7 +2129,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2273,7 +2320,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2285,7 +2333,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2451,7 +2500,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2463,7 +2513,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2560,7 +2611,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2572,7 +2624,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2655,7 +2708,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2667,7 +2721,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2749,7 +2804,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2761,7 +2817,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2813,7 +2870,8 @@ "notes": [ "pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.", "pydantic2linkml: Unable to translate the logic contained in the after validation function, ." - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Access information", "type": "array" @@ -2993,7 +3051,8 @@ ], "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Repository", "type": "string" @@ -3004,7 +3063,8 @@ "domain_of": [ "CommonModel" ], - "ifabsent": "string(0.7.0)" + "ifabsent": "string(0.7.0)", + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemaversion", "type": "string" @@ -3038,7 +3098,8 @@ ], "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Url", "type": "string" @@ -3075,14 +3136,16 @@ "linkml_meta": { "domain_of": [ "Dandiset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" } }, "citation": { "linkml_meta": { "domain_of": [ "Dandiset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Citation", "type": "string" @@ -3093,7 +3156,8 @@ "linkml_meta": { "domain_of": [ "Dandiset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Dandiset creation date and time.", "type": "string" @@ -3105,7 +3169,8 @@ "domain_of": [ "BareAsset", "Dandiset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Last modification date and time.", "type": "string" @@ -3130,7 +3195,8 @@ "RelatedParticipant", "Resource", "Software" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Dandiset identifier", "type": "string" @@ -3145,7 +3211,8 @@ ], "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "minItems": 1, "title": "Manifestlocation", @@ -3173,7 +3240,8 @@ "domain_of": [ "Dandiset", "Software" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Version", "type": "string" diff --git a/dandischema/models_pydantic/published-asset.json b/dandischema/models_pydantic/published-asset.json index c95fd0ed..4cfd98eb 100644 --- a/dandischema/models_pydantic/published-asset.json +++ b/dandischema/models_pydantic/published-asset.json @@ -10,7 +10,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -22,7 +23,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -60,7 +62,8 @@ "linkml_meta": { "domain_of": [ "AccessRequirements" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Embargo end date", "type": "string" @@ -101,7 +104,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -113,7 +117,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -279,7 +284,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -291,7 +297,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -357,7 +364,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -369,7 +377,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -453,7 +462,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -465,7 +475,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -541,7 +552,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -553,7 +565,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -636,7 +649,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -648,7 +662,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -731,7 +746,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -743,7 +759,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -826,7 +843,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -838,7 +856,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -980,7 +999,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -992,7 +1012,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1046,7 +1067,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1058,7 +1080,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1171,7 +1194,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1183,7 +1207,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1268,7 +1293,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1280,7 +1306,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1339,7 +1366,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1351,7 +1379,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1433,7 +1462,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1445,7 +1475,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1524,7 +1555,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1536,7 +1568,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1602,7 +1635,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1614,7 +1648,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1696,7 +1731,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1708,7 +1744,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1858,7 +1895,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1870,7 +1908,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2076,7 +2115,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2088,7 +2128,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2238,7 +2279,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2250,7 +2292,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2416,7 +2459,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2428,7 +2472,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2543,7 +2588,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2555,7 +2601,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2721,7 +2768,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2733,7 +2781,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2869,7 +2918,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2881,7 +2931,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -3072,7 +3123,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -3084,7 +3136,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -3166,7 +3219,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -3178,7 +3232,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -3345,7 +3400,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -3357,7 +3413,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -3439,7 +3496,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -3451,7 +3509,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -3548,7 +3607,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -3560,7 +3620,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -3643,7 +3704,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -3655,7 +3717,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -3736,7 +3799,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -3748,7 +3812,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -3798,11 +3863,11 @@ "CommonModel" ], "notes": [ - "pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.", + "pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.", "pydantic2linkml: Unable to translate the logic contained in the after validation function, ." - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, - "maxItems": 1, "title": "Access information", "type": "array" }, @@ -3975,7 +4040,8 @@ ], "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Repository", "type": "string" @@ -3986,7 +4052,8 @@ "domain_of": [ "CommonModel" ], - "ifabsent": "string(0.7.0)" + "ifabsent": "string(0.7.0)", + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemaversion", "type": "string" @@ -4020,7 +4087,8 @@ ], "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Url", "type": "string" @@ -4061,7 +4129,8 @@ "domain_of": [ "AssetsSummary", "BareAsset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Approach", "type": "array" @@ -4174,7 +4243,8 @@ "domain_of": [ "AssetsSummary", "BareAsset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Measurementtechnique", "type": "array" @@ -4216,7 +4286,8 @@ "domain_of": [ "AssetsSummary", "BareAsset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Variablemeasured", "type": "array" @@ -4260,7 +4331,8 @@ ], "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Contenturl", "type": "array" @@ -4284,7 +4356,8 @@ "RelatedParticipant", "Resource", "Software" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Identifier", "type": "string" @@ -4294,7 +4367,8 @@ "linkml_meta": { "domain_of": [ "Publishable" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Datepublished", "type": "string" @@ -4324,7 +4398,8 @@ ], "domain_of": [ "Publishable" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Publishedby" } diff --git a/dandischema/models_pydantic/published-dandiset.json b/dandischema/models_pydantic/published-dandiset.json index 2846d8b6..accfbbe0 100644 --- a/dandischema/models_pydantic/published-dandiset.json +++ b/dandischema/models_pydantic/published-dandiset.json @@ -10,7 +10,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -22,7 +23,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -60,7 +62,8 @@ "linkml_meta": { "domain_of": [ "AccessRequirements" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Embargo end date", "type": "string" @@ -101,7 +104,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -113,7 +117,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -279,7 +284,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -291,7 +297,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -357,7 +364,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -369,7 +377,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -454,7 +463,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -466,7 +476,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -549,7 +560,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -561,7 +573,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -644,7 +657,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -656,7 +670,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -670,7 +685,8 @@ "domain_of": [ "AssetsSummary", "BareAsset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Approach", "type": "array" @@ -683,7 +699,8 @@ "linkml_meta": { "domain_of": [ "AssetsSummary" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Datastandard", "type": "array" @@ -697,7 +714,8 @@ "domain_of": [ "AssetsSummary", "BareAsset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Measurementtechnique", "type": "array" @@ -706,7 +724,8 @@ "linkml_meta": { "domain_of": [ "AssetsSummary" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Numberofbytes", "type": "integer" @@ -716,7 +735,8 @@ "linkml_meta": { "domain_of": [ "AssetsSummary" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Numberofcells", "type": "integer" @@ -725,7 +745,8 @@ "linkml_meta": { "domain_of": [ "AssetsSummary" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Numberoffiles", "type": "integer" @@ -735,7 +756,8 @@ "linkml_meta": { "domain_of": [ "AssetsSummary" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Numberofsamples", "type": "integer" @@ -745,7 +767,8 @@ "linkml_meta": { "domain_of": [ "AssetsSummary" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Numberofsubjects", "type": "integer" @@ -759,7 +782,8 @@ "domain_of": [ "AssetsSummary", "Participant" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Species", "type": "array" @@ -773,7 +797,8 @@ "domain_of": [ "AssetsSummary", "BareAsset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Variablemeasured", "type": "array" @@ -795,7 +820,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -807,7 +833,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -861,7 +888,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -873,7 +901,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -986,7 +1015,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -998,7 +1028,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1083,7 +1114,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1095,7 +1127,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1154,7 +1187,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1166,7 +1200,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1257,7 +1292,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1269,7 +1305,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1351,7 +1388,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1363,7 +1401,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1512,7 +1551,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1524,7 +1564,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1674,7 +1715,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1686,7 +1728,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -1852,7 +1895,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -1864,7 +1908,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2071,7 +2116,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2083,7 +2129,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2273,7 +2320,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2285,7 +2333,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2451,7 +2500,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2463,7 +2513,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2560,7 +2611,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2572,7 +2624,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2655,7 +2708,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2667,7 +2721,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2748,7 +2803,8 @@ "linkml_meta": { "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Id", "type": "string" @@ -2760,7 +2816,8 @@ "designates_type": true, "domain_of": [ "DandiBaseModel" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemakey", "type": "string" @@ -2812,7 +2869,8 @@ "notes": [ "pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.", "pydantic2linkml: Unable to translate the logic contained in the after validation function, ." - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Access information", "type": "array" @@ -2992,7 +3050,8 @@ ], "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Repository", "type": "string" @@ -3003,7 +3062,8 @@ "domain_of": [ "CommonModel" ], - "ifabsent": "string(0.7.0)" + "ifabsent": "string(0.7.0)", + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Schemaversion", "type": "string" @@ -3037,7 +3097,8 @@ "notes": [ "pydantic2linkml: Unable to translate the logic contained in the after validation function, >.", "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Url", "type": "string" @@ -3074,14 +3135,16 @@ "linkml_meta": { "domain_of": [ "Dandiset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" } }, "citation": { "linkml_meta": { "domain_of": [ "Dandiset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Citation", "type": "string" @@ -3092,7 +3155,8 @@ "linkml_meta": { "domain_of": [ "Dandiset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Dandiset creation date and time.", "type": "string" @@ -3104,7 +3168,8 @@ "domain_of": [ "BareAsset", "Dandiset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Last modification date and time.", "type": "string" @@ -3129,7 +3194,8 @@ "RelatedParticipant", "Resource", "Software" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Dandiset identifier", "type": "string" @@ -3144,7 +3210,8 @@ ], "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "minItems": 1, "title": "Manifestlocation", @@ -3172,7 +3239,8 @@ "domain_of": [ "Dandiset", "Software" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Version", "type": "string" @@ -3182,7 +3250,8 @@ "linkml_meta": { "domain_of": [ "Publishable" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Datepublished", "type": "string" @@ -3212,7 +3281,8 @@ ], "domain_of": [ "Publishable" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Publishedby" }, @@ -3222,7 +3292,8 @@ "domain_of": [ "PublishedDandiset" ], - "ifabsent": "string()" + "ifabsent": "string()", + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "DOI", "type": "string" @@ -3233,7 +3304,8 @@ "linkml_meta": { "domain_of": [ "PublishedDandiset" - ] + ], + "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" }, "title": "Releasenotes", "type": "string" From 35b43e26a92722a76d303615ad54427078f08f9f Mon Sep 17 00:00:00 2001 From: Isaac To Date: Wed, 20 May 2026 10:15:33 -0700 Subject: [PATCH 22/25] 'Merged' with linkml-conversion 0.12.1-116-gc931794 and 2 branches --- .pre-commit-config.yaml | 4 +- dandischema/models.yaml | 130 +--- dandischema/models_linkml.py | 699 +++++------------- dandischema/models_linkml/asset.json | 4 + dandischema/models_linkml/dandiset.json | 3 + .../models_linkml/published-asset.json | 4 + .../models_linkml/published-dandiset.json | 3 + dandischema/models_orig.py | 2 +- dandischema/models_pydantic/asset.json | 151 ++-- dandischema/models_pydantic/dandiset.json | 136 ++-- .../models_pydantic/published-asset.json | 155 ++-- .../models_pydantic/published-dandiset.json | 144 ++-- 12 files changed, 532 insertions(+), 903 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a5ba8211..a320185c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -9,11 +9,11 @@ repos: - id: check-yaml - id: check-added-large-files - repo: https://github.com/psf/black-pre-commit-mirror - rev: 26.3.1 + rev: 26.5.0 hooks: - id: black - repo: https://github.com/PyCQA/isort - rev: 8.0.1 + rev: 9.0.0a3 hooks: - id: isort - repo: https://github.com/codespell-project/codespell diff --git a/dandischema/models.yaml b/dandischema/models.yaml index 2c0af4c4..74570950 100644 --- a/dandischema/models.yaml +++ b/dandischema/models.yaml @@ -329,6 +329,7 @@ slots: - range: GenericType access: title: Access information + readonly: Read-only for clients; managed by server range: AccessRequirements required: false multivalued: true @@ -369,9 +370,7 @@ slots: required: false multivalued: true approach: - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server range: ApproachType required: false multivalued: true @@ -381,9 +380,7 @@ slots: required: false multivalued: true assetsSummary: - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server range: AssetsSummary required: true awardNumber: @@ -400,9 +397,7 @@ slots: range: string required: false citation: - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server range: string required: true contactPoint: @@ -424,9 +419,7 @@ slots: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server range: uri required: true multivalued: true @@ -444,9 +437,7 @@ slots: function, .' range: Organization dataStandard: - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server range: StandardsType required: false multivalued: true @@ -460,18 +451,14 @@ slots: pattern: ^(?i:http|https)://[^\s]+$ dateCreated: title: Dandiset creation date and time. - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server range: datetime required: false dateModified: range: datetime required: false datePublished: - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server range: datetime required: true description: @@ -492,9 +479,7 @@ slots: multivalued: true doi: title: DOI - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server ifabsent: string() range: string required: false @@ -517,9 +502,7 @@ slots: embargoedUntil: description: Date on which embargo ends. title: Embargo end date - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server range: date required: false encodingFormat: @@ -555,9 +538,7 @@ slots: required: false multivalued: true id: - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server range: string identifier: {} includeInCitation: @@ -586,9 +567,7 @@ slots: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server range: uri required: true multivalued: true @@ -601,9 +580,7 @@ slots: range: float required: false measurementTechnique: - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server range: MeasurementTechniqueType required: false multivalued: true @@ -616,33 +593,23 @@ slots: name: range: string numberOfBytes: - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server range: integer required: true numberOfCells: - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server range: integer required: false numberOfFiles: - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server range: integer required: true numberOfSamples: - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server range: integer required: false numberOfSubjects: - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server range: integer required: false path: @@ -675,9 +642,7 @@ slots: publishedBy: description: The URL should contain the provenance of the publishing process. - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server range: Any required: true any_of: @@ -705,9 +670,7 @@ slots: required: true releaseNotes: description: The description of the release - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server range: string required: false repository: @@ -732,16 +695,12 @@ slots: range: SampleType required: true schemaKey: - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server designates_type: true range: string required: true schemaVersion: - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server ifabsent: string(0.7.0) range: string required: false @@ -796,9 +755,7 @@ slots: range: PropertyValue required: false variableMeasured: - readonly: Managed exclusively by the owning authority; attempts by another - entity to modify the value are expected to be ignored or rejected by that - owning authority + readonly: Read-only for clients; managed by server required: false multivalued: true vendor: @@ -950,9 +907,7 @@ classes: description: Uniform resource identifier. required: true identifier: - readonly: Managed exclusively by the owning authority; attempts by - another entity to modify the value are expected to be ignored or - rejected by that owning authority + readonly: Read-only for clients; managed by server range: string required: true pattern: @@ -973,9 +928,7 @@ classes: - variableMeasured slot_usage: species: - readonly: Managed exclusively by the owning authority; attempts by - another entity to modify the value are expected to be ignored or - rejected by that owning authority + readonly: Read-only for clients; managed by server multivalued: true variableMeasured: range: string @@ -983,9 +936,6 @@ classes: description: Metadata used to describe an asset anywhere (local or server). Derived from C2M2 (Level 0 and 1) and schema.org notes: - - 'pydantic2linkml: Impossible to generate slot usage entry for the access slot. - The slot representation of the access field in the BareAsset Pydantic model - lacks meta slots: [''readonly''] .' - 'pydantic2linkml: Impossible to generate slot usage entry for the wasGeneratedBy slot. The slot representation of the wasGeneratedBy field in the BareAsset Pydantic model has disallowed changes in value in constraint meta slots: [''range''] @@ -1009,6 +959,13 @@ classes: - wasAttributedTo - wasDerivedFrom slot_usage: + access: + notes: + - 'pydantic2linkml: Unable to express the default factory, + at 0xADDRESS>, in LinkML.' + - 'pydantic2linkml: Unable to translate the logic contained in the after validation + function, .' + maximum_cardinality: 1 dateModified: title: Asset (file or metadata) modification date and time sameAs: @@ -1097,9 +1054,6 @@ classes: at 0xADDRESS>, in LinkML.' - 'pydantic2linkml: Unable to translate the logic contained in the after validation function, .' - readonly: Managed exclusively by the owning authority; attempts by - another entity to modify the value are expected to be ignored or - rejected by that owning authority contributor: description: 'Contributors to this item: persons or organizations.' title: Contributors @@ -1121,9 +1075,7 @@ classes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' - readonly: Managed exclusively by the owning authority; attempts by - another entity to modify the value are expected to be ignored or - rejected by that owning authority + readonly: Read-only for clients; managed by server range: uri pattern: ^(?i:http|https)://[^\s]+$ url: @@ -1132,9 +1084,7 @@ classes: - 'pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>.' - readonly: Managed exclusively by the owning authority; attempts by - another entity to modify the value are expected to be ignored or - rejected by that owning authority + readonly: Read-only for clients; managed by server required: false wasGeneratedBy: range: Activity @@ -1220,9 +1170,7 @@ classes: minimum_cardinality: 1 dateModified: title: Last modification date and time. - readonly: Managed exclusively by the owning authority; attempts by - another entity to modify the value are expected to be ignored or - rejected by that owning authority + readonly: Read-only for clients; managed by server description: description: A description of the Dandiset required: true @@ -1235,9 +1183,7 @@ classes: description: A Dandiset identifier that can be resolved by identifiers.org. title: Dandiset identifier - readonly: Managed exclusively by the owning authority; attempts by - another entity to modify the value are expected to be ignored or - rejected by that owning authority + readonly: Read-only for clients; managed by server range: string required: true pattern: ^[A-Z][-A-Z]*:\d{6}$ @@ -1253,9 +1199,7 @@ classes: range: string pattern: ^dandi://[A-Z][-A-Z]*/\d{6}(@(draft|\d+\.\d+\.\d+))?(/\S+)?$ version: - readonly: Managed exclusively by the owning authority; attempts by - another entity to modify the value are expected to be ignored or - rejected by that owning authority + readonly: Read-only for clients; managed by server Disorder: description: Biolink, SNOMED, or other identifier for disorder studied is_a: BaseType diff --git a/dandischema/models_linkml.py b/dandischema/models_linkml.py index 95b126fb..1912804c 100644 --- a/dandischema/models_linkml.py +++ b/dandischema/models_linkml.py @@ -352,9 +352,7 @@ class DandiBaseModel(ConfiguredBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -364,9 +362,7 @@ class DandiBaseModel(ConfiguredBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -427,9 +423,7 @@ class AccessRequirements(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["AccessRequirements"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -445,9 +439,7 @@ class AccessRequirements(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -457,9 +449,7 @@ class AccessRequirements(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -605,9 +595,7 @@ class Activity(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -617,9 +605,7 @@ class Activity(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -700,9 +686,7 @@ class Affiliation(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -712,9 +696,7 @@ class Affiliation(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -835,9 +817,7 @@ class Agent(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -847,9 +827,7 @@ class Agent(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -929,9 +907,7 @@ class Allele(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -941,9 +917,7 @@ class Allele(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -961,11 +935,7 @@ class AssetsSummary(DandiBaseModel): "species": { "multivalued": True, "name": "species", - "readonly": "Managed exclusively by the owning " - "authority; attempts by another entity " - "to modify the value are expected to " - "be ignored or rejected by that owning " - "authority", + "readonly": "Read-only for clients; managed by " "server", }, "variableMeasured": {"name": "variableMeasured", "range": "string"}, }, @@ -977,9 +947,7 @@ class AssetsSummary(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary", "BareAsset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -988,9 +956,7 @@ class AssetsSummary(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -999,9 +965,7 @@ class AssetsSummary(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary", "BareAsset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1010,9 +974,7 @@ class AssetsSummary(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1021,9 +983,7 @@ class AssetsSummary(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1032,9 +992,7 @@ class AssetsSummary(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1043,9 +1001,7 @@ class AssetsSummary(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1054,9 +1010,7 @@ class AssetsSummary(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1065,9 +1019,7 @@ class AssetsSummary(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary", "Participant"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1076,9 +1028,7 @@ class AssetsSummary(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary", "BareAsset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1088,9 +1038,7 @@ class AssetsSummary(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1100,9 +1048,7 @@ class AssetsSummary(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1223,9 +1169,7 @@ class BaseType(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1235,9 +1179,7 @@ class BaseType(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1321,9 +1263,7 @@ class Anatomy(BaseType): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1333,9 +1273,7 @@ class Anatomy(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1419,9 +1357,7 @@ class ApproachType(BaseType): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1431,9 +1367,7 @@ class ApproachType(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1517,9 +1451,7 @@ class AssayType(BaseType): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1529,9 +1461,7 @@ class AssayType(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1635,9 +1565,7 @@ class BioSample(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1647,9 +1575,7 @@ class BioSample(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1673,11 +1599,6 @@ class CommonModel(DandiBaseModel): "AccessRequirements.open_or_embargoed at " "0xADDRESS>.", ], - "readonly": "Managed exclusively by the owning " - "authority; attempts by another entity " - "to modify the value are expected to be " - "ignored or rejected by that owning " - "authority", }, "contributor": { "description": "Contributors to this item: " @@ -1711,11 +1632,7 @@ class CommonModel(DandiBaseModel): ], "pattern": "^(?i:http|https)://[^\\s]+$", "range": "uri", - "readonly": "Managed exclusively by the owning " - "authority; attempts by another " - "entity to modify the value are " - "expected to be ignored or rejected " - "by that owning authority", + "readonly": "Read-only for clients; managed by " "server", }, "url": { "description": "permalink to the item", @@ -1727,11 +1644,7 @@ class CommonModel(DandiBaseModel): "_BaseUrl.__get_pydantic_core_schema__..wrap_val " "at 0xADDRESS>." ], - "readonly": "Managed exclusively by the owning " - "authority; attempts by another entity to " - "modify the value are expected to be " - "ignored or rejected by that owning " - "authority", + "readonly": "Read-only for clients; managed by server", "required": False, }, "wasGeneratedBy": {"name": "wasGeneratedBy", "range": "Activity"}, @@ -1767,9 +1680,7 @@ class CommonModel(DandiBaseModel): "after validation function, .", ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1899,9 +1810,7 @@ class CommonModel(DandiBaseModel): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1911,9 +1820,7 @@ class CommonModel(DandiBaseModel): "linkml_meta": { "domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)", - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1942,9 +1849,7 @@ class CommonModel(DandiBaseModel): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1962,9 +1867,7 @@ class CommonModel(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -1974,9 +1877,7 @@ class CommonModel(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2030,9 +1931,6 @@ class BareAsset(CommonModel): { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "notes": [ - "pydantic2linkml: Impossible to generate slot usage entry for the " - "access slot. The slot representation of the access field in the " - "BareAsset Pydantic model lacks meta slots: ['readonly'] .", "pydantic2linkml: Impossible to generate slot usage entry for the " "wasGeneratedBy slot. The slot representation of the wasGeneratedBy " "field in the BareAsset Pydantic model has disallowed changes in " @@ -2043,6 +1941,21 @@ class BareAsset(CommonModel): "needed.", ], "slot_usage": { + "access": { + "maximum_cardinality": 1, + "name": "access", + "notes": [ + "pydantic2linkml: Unable to express the " + "default factory, at 0xADDRESS>, in " + "LinkML.", + "pydantic2linkml: Unable to translate the " + "logic contained in the after validation " + "function, .", + ], + }, "dateModified": { "name": "dateModified", "title": "Asset (file or metadata) " "modification date and time", @@ -2076,9 +1989,7 @@ class BareAsset(CommonModel): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary", "BareAsset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2166,9 +2077,7 @@ class BareAsset(CommonModel): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary", "BareAsset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2194,9 +2103,7 @@ class BareAsset(CommonModel): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary", "BareAsset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2227,19 +2134,18 @@ class BareAsset(CommonModel): access: Optional[list[AccessRequirements]] = Field( default=None, title="Access information", + max_length=1, json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel"], "notes": [ "pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.", + "BareAsset. at 0xADDRESS>, in LinkML.", "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, .", ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2369,9 +2275,7 @@ class BareAsset(CommonModel): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2381,9 +2285,7 @@ class BareAsset(CommonModel): "linkml_meta": { "domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)", - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2412,9 +2314,7 @@ class BareAsset(CommonModel): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2432,9 +2332,7 @@ class BareAsset(CommonModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2444,9 +2342,7 @@ class BareAsset(CommonModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2535,11 +2431,7 @@ class Asset(BareAsset): "name": "identifier", "pattern": "^(?:urn:uuid:)?[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?4[0-9a-fA-F]{3}-?[89abAB][0-9a-fA-F]{3}-?[0-9a-fA-F]{12}$", "range": "string", - "readonly": "Managed exclusively by the owning " - "authority; attempts by another " - "entity to modify the value are " - "expected to be ignored or rejected " - "by that owning authority", + "readonly": "Read-only for clients; managed by " "server", "required": True, }, }, @@ -2557,9 +2449,7 @@ class Asset(BareAsset): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2585,9 +2475,7 @@ class Asset(BareAsset): "Resource", "Software", ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2596,9 +2484,7 @@ class Asset(BareAsset): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary", "BareAsset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2686,9 +2572,7 @@ class Asset(BareAsset): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary", "BareAsset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2714,9 +2598,7 @@ class Asset(BareAsset): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary", "BareAsset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2747,19 +2629,18 @@ class Asset(BareAsset): access: Optional[list[AccessRequirements]] = Field( default=None, title="Access information", + max_length=1, json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel"], "notes": [ "pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.", + "BareAsset. at 0xADDRESS>, in LinkML.", "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, .", ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2889,9 +2770,7 @@ class Asset(BareAsset): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2901,9 +2780,7 @@ class Asset(BareAsset): "linkml_meta": { "domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)", - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2932,9 +2809,7 @@ class Asset(BareAsset): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2952,9 +2827,7 @@ class Asset(BareAsset): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -2964,9 +2837,7 @@ class Asset(BareAsset): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -3131,9 +3002,7 @@ class ContactPoint(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -3143,9 +3012,7 @@ class ContactPoint(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -3310,9 +3177,7 @@ class Contributor(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -3322,9 +3187,7 @@ class Contributor(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -3378,12 +3241,7 @@ class Dandiset(CommonModel): }, "dateModified": { "name": "dateModified", - "readonly": "Managed exclusively by the " - "owning authority; attempts by " - "another entity to modify the " - "value are expected to be ignored " - "or rejected by that owning " - "authority", + "readonly": "Read-only for clients; managed " "by server", "title": "Last modification date and time.", }, "description": { @@ -3403,11 +3261,7 @@ class Dandiset(CommonModel): "name": "identifier", "pattern": "^[A-Z][-A-Z]*:\\d{6}$", "range": "string", - "readonly": "Managed exclusively by the owning " - "authority; attempts by another " - "entity to modify the value are " - "expected to be ignored or rejected " - "by that owning authority", + "readonly": "Read-only for clients; managed by " "server", "required": True, "title": "Dandiset identifier", }, @@ -3431,11 +3285,7 @@ class Dandiset(CommonModel): }, "version": { "name": "version", - "readonly": "Managed exclusively by the owning " - "authority; attempts by another entity " - "to modify the value are expected to " - "be ignored or rejected by that owning " - "authority", + "readonly": "Read-only for clients; managed by " "server", }, }, } @@ -3446,9 +3296,7 @@ class Dandiset(CommonModel): json_schema_extra={ "linkml_meta": { "domain_of": ["Dandiset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -3457,9 +3305,7 @@ class Dandiset(CommonModel): json_schema_extra={ "linkml_meta": { "domain_of": ["Dandiset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -3469,9 +3315,7 @@ class Dandiset(CommonModel): json_schema_extra={ "linkml_meta": { "domain_of": ["Dandiset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -3481,9 +3325,7 @@ class Dandiset(CommonModel): json_schema_extra={ "linkml_meta": { "domain_of": ["BareAsset", "Dandiset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -3511,9 +3353,7 @@ class Dandiset(CommonModel): "Resource", "Software", ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -3529,9 +3369,7 @@ class Dandiset(CommonModel): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -3549,9 +3387,7 @@ class Dandiset(CommonModel): json_schema_extra={ "linkml_meta": { "domain_of": ["Dandiset", "Software"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -3583,9 +3419,7 @@ class Dandiset(CommonModel): "after validation function, .", ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -3724,9 +3558,7 @@ class Dandiset(CommonModel): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -3736,9 +3568,7 @@ class Dandiset(CommonModel): "linkml_meta": { "domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)", - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -3767,9 +3597,7 @@ class Dandiset(CommonModel): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -3787,9 +3615,7 @@ class Dandiset(CommonModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -3799,9 +3625,7 @@ class Dandiset(CommonModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -3991,9 +3815,7 @@ class Disorder(BaseType): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -4003,9 +3825,7 @@ class Disorder(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -4104,9 +3924,7 @@ class Equipment(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -4116,9 +3934,7 @@ class Equipment(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -4193,9 +4009,7 @@ class EthicsApproval(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -4205,9 +4019,7 @@ class EthicsApproval(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -4291,9 +4103,7 @@ class GenericType(BaseType): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -4303,9 +4113,7 @@ class GenericType(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -4350,9 +4158,7 @@ class GenotypeInfo(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -4362,9 +4168,7 @@ class GenotypeInfo(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -4428,9 +4232,7 @@ class Locus(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -4440,9 +4242,7 @@ class Locus(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -4526,9 +4326,7 @@ class MeasurementTechniqueType(BaseType): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -4538,9 +4336,7 @@ class MeasurementTechniqueType(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -4693,9 +4489,7 @@ class Organization(Contributor): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -4705,9 +4499,7 @@ class Organization(Contributor): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -4875,9 +4667,7 @@ class Participant(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -4887,9 +4677,7 @@ class Participant(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5032,9 +4820,7 @@ class Person(Contributor): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5044,9 +4830,7 @@ class Person(Contributor): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5220,9 +5004,7 @@ class Project(Activity): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5232,9 +5014,7 @@ class Project(Activity): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5323,9 +5103,7 @@ class PropertyValue(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5335,9 +5113,7 @@ class PropertyValue(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5353,9 +5129,7 @@ class Publishable(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["Publishable"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5378,9 +5152,7 @@ class Publishable(DandiBaseModel): {"range": "PublishActivity"}, ], "domain_of": ["Publishable"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5390,9 +5162,7 @@ class Publishable(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5402,9 +5172,7 @@ class Publishable(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5525,9 +5293,7 @@ class PublishActivity(Activity): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5537,9 +5303,7 @@ class PublishActivity(Activity): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5573,9 +5337,7 @@ class PublishedAsset(Publishable, Asset): json_schema_extra={ "linkml_meta": { "domain_of": ["Publishable"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5598,9 +5360,7 @@ class PublishedAsset(Publishable, Asset): {"range": "PublishActivity"}, ], "domain_of": ["Publishable"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5615,9 +5375,7 @@ class PublishedAsset(Publishable, Asset): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5643,9 +5401,7 @@ class PublishedAsset(Publishable, Asset): "Resource", "Software", ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5654,9 +5410,7 @@ class PublishedAsset(Publishable, Asset): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary", "BareAsset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5744,9 +5498,7 @@ class PublishedAsset(Publishable, Asset): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary", "BareAsset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5772,9 +5524,7 @@ class PublishedAsset(Publishable, Asset): json_schema_extra={ "linkml_meta": { "domain_of": ["AssetsSummary", "BareAsset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5805,19 +5555,18 @@ class PublishedAsset(Publishable, Asset): access: Optional[list[AccessRequirements]] = Field( default=None, title="Access information", + max_length=1, json_schema_extra={ "linkml_meta": { "domain_of": ["CommonModel"], "notes": [ "pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.", + "BareAsset. at 0xADDRESS>, in LinkML.", "pydantic2linkml: Unable to translate the logic contained in the " "after validation function, .", ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5947,9 +5696,7 @@ class PublishedAsset(Publishable, Asset): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5959,9 +5706,7 @@ class PublishedAsset(Publishable, Asset): "linkml_meta": { "domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)", - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -5990,9 +5735,7 @@ class PublishedAsset(Publishable, Asset): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6010,9 +5753,7 @@ class PublishedAsset(Publishable, Asset): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6022,9 +5763,7 @@ class PublishedAsset(Publishable, Asset): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6185,9 +5924,7 @@ class PublishedDandiset(Publishable, Dandiset): "linkml_meta": { "domain_of": ["PublishedDandiset"], "ifabsent": "string()", - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6197,9 +5934,7 @@ class PublishedDandiset(Publishable, Dandiset): json_schema_extra={ "linkml_meta": { "domain_of": ["PublishedDandiset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6208,9 +5943,7 @@ class PublishedDandiset(Publishable, Dandiset): json_schema_extra={ "linkml_meta": { "domain_of": ["Publishable"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6233,9 +5966,7 @@ class PublishedDandiset(Publishable, Dandiset): {"range": "PublishActivity"}, ], "domain_of": ["Publishable"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6244,9 +5975,7 @@ class PublishedDandiset(Publishable, Dandiset): json_schema_extra={ "linkml_meta": { "domain_of": ["Dandiset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6255,9 +5984,7 @@ class PublishedDandiset(Publishable, Dandiset): json_schema_extra={ "linkml_meta": { "domain_of": ["Dandiset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6267,9 +5994,7 @@ class PublishedDandiset(Publishable, Dandiset): json_schema_extra={ "linkml_meta": { "domain_of": ["Dandiset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6279,9 +6004,7 @@ class PublishedDandiset(Publishable, Dandiset): json_schema_extra={ "linkml_meta": { "domain_of": ["BareAsset", "Dandiset"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6309,9 +6032,7 @@ class PublishedDandiset(Publishable, Dandiset): "Resource", "Software", ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6327,9 +6048,7 @@ class PublishedDandiset(Publishable, Dandiset): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6347,9 +6066,7 @@ class PublishedDandiset(Publishable, Dandiset): json_schema_extra={ "linkml_meta": { "domain_of": ["Dandiset", "Software"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6381,9 +6098,7 @@ class PublishedDandiset(Publishable, Dandiset): "after validation function, .", ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6522,9 +6237,7 @@ class PublishedDandiset(Publishable, Dandiset): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6534,9 +6247,7 @@ class PublishedDandiset(Publishable, Dandiset): "linkml_meta": { "domain_of": ["CommonModel"], "ifabsent": "string(0.7.0)", - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6569,9 +6280,7 @@ class PublishedDandiset(Publishable, Dandiset): "_BaseUrl.__get_pydantic_core_schema__..wrap_val at " "0xADDRESS>.", ], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6589,9 +6298,7 @@ class PublishedDandiset(Publishable, Dandiset): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6601,9 +6308,7 @@ class PublishedDandiset(Publishable, Dandiset): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6842,9 +6547,7 @@ class RelatedParticipant(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -6854,9 +6557,7 @@ class RelatedParticipant(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -7016,9 +6717,7 @@ class Resource(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -7028,9 +6727,7 @@ class Resource(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -7127,9 +6824,7 @@ class SampleType(BaseType): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -7139,9 +6834,7 @@ class SampleType(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -7276,9 +6969,7 @@ class Session(Activity): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -7288,9 +6979,7 @@ class Session(Activity): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -7374,9 +7063,7 @@ class SexType(BaseType): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -7386,9 +7073,7 @@ class SexType(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -7503,9 +7188,7 @@ class Software(DandiBaseModel): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -7515,9 +7198,7 @@ class Software(DandiBaseModel): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -7627,9 +7308,7 @@ class SpeciesType(BaseType): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -7639,9 +7318,7 @@ class SpeciesType(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -7725,9 +7402,7 @@ class StandardsType(BaseType): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -7737,9 +7412,7 @@ class StandardsType(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -7823,9 +7496,7 @@ class StrainType(BaseType): json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) @@ -7835,9 +7506,7 @@ class StrainType(BaseType): "linkml_meta": { "designates_type": True, "domain_of": ["DandiBaseModel"], - "readonly": "Managed exclusively by the owning authority; attempts by another " - "entity to modify the value are expected to be ignored or " - "rejected by that owning authority", + "readonly": "Read-only for clients; managed by server", } }, ) diff --git a/dandischema/models_linkml/asset.json b/dandischema/models_linkml/asset.json index 70753960..c31e9d4d 100644 --- a/dandischema/models_linkml/asset.json +++ b/dandischema/models_linkml/asset.json @@ -492,6 +492,7 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, + "maxItems": 1, "title": "Access information", "type": [ "array", @@ -917,6 +918,7 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, + "maxItems": 1, "title": "Access information", "type": [ "array", @@ -3019,6 +3021,7 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, + "maxItems": 1, "title": "Access information", "type": [ "array", @@ -4280,6 +4283,7 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, + "maxItems": 1, "title": "Access information", "type": [ "array", diff --git a/dandischema/models_linkml/dandiset.json b/dandischema/models_linkml/dandiset.json index f51bf1d7..60881e0c 100644 --- a/dandischema/models_linkml/dandiset.json +++ b/dandischema/models_linkml/dandiset.json @@ -492,6 +492,7 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, + "maxItems": 1, "title": "Access information", "type": [ "array", @@ -917,6 +918,7 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, + "maxItems": 1, "title": "Access information", "type": [ "array", @@ -3019,6 +3021,7 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, + "maxItems": 1, "title": "Access information", "type": [ "array", diff --git a/dandischema/models_linkml/published-asset.json b/dandischema/models_linkml/published-asset.json index eaebe8e4..a70f338c 100644 --- a/dandischema/models_linkml/published-asset.json +++ b/dandischema/models_linkml/published-asset.json @@ -492,6 +492,7 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, + "maxItems": 1, "title": "Access information", "type": [ "array", @@ -917,6 +918,7 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, + "maxItems": 1, "title": "Access information", "type": [ "array", @@ -3019,6 +3021,7 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, + "maxItems": 1, "title": "Access information", "type": [ "array", @@ -4280,6 +4283,7 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, + "maxItems": 1, "title": "Access information", "type": [ "array", diff --git a/dandischema/models_linkml/published-dandiset.json b/dandischema/models_linkml/published-dandiset.json index 4af291f7..373d28bd 100644 --- a/dandischema/models_linkml/published-dandiset.json +++ b/dandischema/models_linkml/published-dandiset.json @@ -492,6 +492,7 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, + "maxItems": 1, "title": "Access information", "type": [ "array", @@ -917,6 +918,7 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, + "maxItems": 1, "title": "Access information", "type": [ "array", @@ -3019,6 +3021,7 @@ "items": { "$ref": "#/$defs/AccessRequirements" }, + "maxItems": 1, "title": "Access information", "type": [ "array", diff --git a/dandischema/models_orig.py b/dandischema/models_orig.py index 9e391510..18e7a553 100644 --- a/dandischema/models_orig.py +++ b/dandischema/models_orig.py @@ -1785,7 +1785,7 @@ class BareAsset(CommonModel): access: List[AccessRequirements] = Field( title="Access information", default_factory=lambda: [AccessRequirements(status=AccessType.OpenAccess)], - json_schema_extra={"nskey": DANDI_NSKEY}, + json_schema_extra={"nskey": DANDI_NSKEY, "readOnly": True}, max_length=1, ) diff --git a/dandischema/models_pydantic/asset.json b/dandischema/models_pydantic/asset.json index 30c288b8..ab594fb1 100644 --- a/dandischema/models_pydantic/asset.json +++ b/dandischema/models_pydantic/asset.json @@ -11,7 +11,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -24,7 +24,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -63,7 +63,7 @@ "domain_of": [ "AccessRequirements" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Embargo end date", "type": "string" @@ -105,7 +105,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -118,7 +118,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -285,7 +285,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -298,7 +298,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -365,7 +365,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -378,7 +378,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -463,7 +463,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -476,7 +476,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -553,7 +553,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -566,7 +566,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -650,7 +650,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -663,7 +663,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -747,7 +747,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -760,7 +760,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -844,7 +844,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -857,7 +857,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1000,7 +1000,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1013,7 +1013,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1068,7 +1068,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1081,7 +1081,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1195,7 +1195,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1208,7 +1208,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1294,7 +1294,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1307,7 +1307,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1367,7 +1367,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1380,7 +1380,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1463,7 +1463,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1476,7 +1476,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1556,7 +1556,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1569,7 +1569,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1636,7 +1636,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1649,7 +1649,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1732,7 +1732,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1745,7 +1745,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1896,7 +1896,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1909,7 +1909,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2116,7 +2116,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2129,7 +2129,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2280,7 +2280,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2293,7 +2293,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2460,7 +2460,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2473,7 +2473,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2589,7 +2589,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2602,7 +2602,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2769,7 +2769,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2782,7 +2782,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2919,7 +2919,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2932,7 +2932,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -3124,7 +3124,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -3137,7 +3137,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -3220,7 +3220,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -3233,7 +3233,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -3401,7 +3401,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -3414,7 +3414,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -3497,7 +3497,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -3510,7 +3510,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -3608,7 +3608,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -3621,7 +3621,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -3705,7 +3705,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -3718,7 +3718,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -3801,7 +3801,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -3814,7 +3814,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -3864,11 +3864,12 @@ "CommonModel" ], "notes": [ - "pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.", + "pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.", "pydantic2linkml: Unable to translate the logic contained in the after validation function, ." ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, + "maxItems": 1, "title": "Access information", "type": "array" }, @@ -4042,7 +4043,7 @@ "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Repository", "type": "string" @@ -4054,7 +4055,7 @@ "CommonModel" ], "ifabsent": "string(0.7.0)", - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemaversion", "type": "string" @@ -4089,7 +4090,7 @@ "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Url", "type": "string" @@ -4131,7 +4132,7 @@ "AssetsSummary", "BareAsset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Approach", "type": "array" @@ -4245,7 +4246,7 @@ "AssetsSummary", "BareAsset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Measurementtechnique", "type": "array" @@ -4288,7 +4289,7 @@ "AssetsSummary", "BareAsset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Variablemeasured", "type": "array" @@ -4333,7 +4334,7 @@ "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Contenturl", "type": "array" @@ -4358,7 +4359,7 @@ "Resource", "Software" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Identifier", "type": "string" diff --git a/dandischema/models_pydantic/dandiset.json b/dandischema/models_pydantic/dandiset.json index 7e55188b..ae584847 100644 --- a/dandischema/models_pydantic/dandiset.json +++ b/dandischema/models_pydantic/dandiset.json @@ -11,7 +11,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -24,7 +24,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -63,7 +63,7 @@ "domain_of": [ "AccessRequirements" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Embargo end date", "type": "string" @@ -105,7 +105,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -118,7 +118,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -285,7 +285,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -298,7 +298,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -365,7 +365,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -378,7 +378,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -464,7 +464,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -477,7 +477,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -561,7 +561,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -574,7 +574,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -658,7 +658,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -671,7 +671,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -686,7 +686,7 @@ "AssetsSummary", "BareAsset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Approach", "type": "array" @@ -700,7 +700,7 @@ "domain_of": [ "AssetsSummary" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Datastandard", "type": "array" @@ -715,7 +715,7 @@ "AssetsSummary", "BareAsset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Measurementtechnique", "type": "array" @@ -725,7 +725,7 @@ "domain_of": [ "AssetsSummary" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Numberofbytes", "type": "integer" @@ -736,7 +736,7 @@ "domain_of": [ "AssetsSummary" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Numberofcells", "type": "integer" @@ -746,7 +746,7 @@ "domain_of": [ "AssetsSummary" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Numberoffiles", "type": "integer" @@ -757,7 +757,7 @@ "domain_of": [ "AssetsSummary" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Numberofsamples", "type": "integer" @@ -768,7 +768,7 @@ "domain_of": [ "AssetsSummary" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Numberofsubjects", "type": "integer" @@ -783,7 +783,7 @@ "AssetsSummary", "Participant" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Species", "type": "array" @@ -798,7 +798,7 @@ "AssetsSummary", "BareAsset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Variablemeasured", "type": "array" @@ -821,7 +821,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -834,7 +834,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -889,7 +889,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -902,7 +902,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1016,7 +1016,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1029,7 +1029,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1115,7 +1115,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1128,7 +1128,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1188,7 +1188,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1201,7 +1201,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1293,7 +1293,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1306,7 +1306,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1389,7 +1389,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1402,7 +1402,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1552,7 +1552,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1565,7 +1565,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1716,7 +1716,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1729,7 +1729,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1896,7 +1896,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1909,7 +1909,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2117,7 +2117,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2130,7 +2130,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2321,7 +2321,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2334,7 +2334,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2501,7 +2501,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2514,7 +2514,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2612,7 +2612,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2625,7 +2625,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2709,7 +2709,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2722,7 +2722,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2805,7 +2805,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2818,7 +2818,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2871,7 +2871,7 @@ "pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.", "pydantic2linkml: Unable to translate the logic contained in the after validation function, ." ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Access information", "type": "array" @@ -3052,7 +3052,7 @@ "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Repository", "type": "string" @@ -3064,7 +3064,7 @@ "CommonModel" ], "ifabsent": "string(0.7.0)", - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemaversion", "type": "string" @@ -3099,7 +3099,7 @@ "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Url", "type": "string" @@ -3137,7 +3137,7 @@ "domain_of": [ "Dandiset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" } }, "citation": { @@ -3145,7 +3145,7 @@ "domain_of": [ "Dandiset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Citation", "type": "string" @@ -3157,7 +3157,7 @@ "domain_of": [ "Dandiset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Dandiset creation date and time.", "type": "string" @@ -3170,7 +3170,7 @@ "BareAsset", "Dandiset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Last modification date and time.", "type": "string" @@ -3196,7 +3196,7 @@ "Resource", "Software" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Dandiset identifier", "type": "string" @@ -3212,7 +3212,7 @@ "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "minItems": 1, "title": "Manifestlocation", @@ -3241,7 +3241,7 @@ "Dandiset", "Software" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Version", "type": "string" diff --git a/dandischema/models_pydantic/published-asset.json b/dandischema/models_pydantic/published-asset.json index 4cfd98eb..681e96eb 100644 --- a/dandischema/models_pydantic/published-asset.json +++ b/dandischema/models_pydantic/published-asset.json @@ -11,7 +11,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -24,7 +24,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -63,7 +63,7 @@ "domain_of": [ "AccessRequirements" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Embargo end date", "type": "string" @@ -105,7 +105,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -118,7 +118,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -285,7 +285,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -298,7 +298,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -365,7 +365,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -378,7 +378,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -463,7 +463,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -476,7 +476,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -553,7 +553,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -566,7 +566,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -650,7 +650,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -663,7 +663,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -747,7 +747,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -760,7 +760,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -844,7 +844,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -857,7 +857,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1000,7 +1000,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1013,7 +1013,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1068,7 +1068,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1081,7 +1081,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1195,7 +1195,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1208,7 +1208,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1294,7 +1294,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1307,7 +1307,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1367,7 +1367,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1380,7 +1380,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1463,7 +1463,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1476,7 +1476,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1556,7 +1556,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1569,7 +1569,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1636,7 +1636,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1649,7 +1649,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1732,7 +1732,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1745,7 +1745,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1896,7 +1896,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1909,7 +1909,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2116,7 +2116,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2129,7 +2129,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2280,7 +2280,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2293,7 +2293,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2460,7 +2460,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2473,7 +2473,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2589,7 +2589,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2602,7 +2602,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2769,7 +2769,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2782,7 +2782,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2919,7 +2919,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2932,7 +2932,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -3124,7 +3124,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -3137,7 +3137,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -3220,7 +3220,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -3233,7 +3233,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -3401,7 +3401,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -3414,7 +3414,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -3497,7 +3497,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -3510,7 +3510,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -3608,7 +3608,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -3621,7 +3621,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -3705,7 +3705,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -3718,7 +3718,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -3800,7 +3800,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -3813,7 +3813,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -3863,11 +3863,12 @@ "CommonModel" ], "notes": [ - "pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.", + "pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.", "pydantic2linkml: Unable to translate the logic contained in the after validation function, ." ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, + "maxItems": 1, "title": "Access information", "type": "array" }, @@ -4041,7 +4042,7 @@ "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Repository", "type": "string" @@ -4053,7 +4054,7 @@ "CommonModel" ], "ifabsent": "string(0.7.0)", - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemaversion", "type": "string" @@ -4088,7 +4089,7 @@ "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Url", "type": "string" @@ -4130,7 +4131,7 @@ "AssetsSummary", "BareAsset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Approach", "type": "array" @@ -4244,7 +4245,7 @@ "AssetsSummary", "BareAsset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Measurementtechnique", "type": "array" @@ -4287,7 +4288,7 @@ "AssetsSummary", "BareAsset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Variablemeasured", "type": "array" @@ -4332,7 +4333,7 @@ "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Contenturl", "type": "array" @@ -4357,7 +4358,7 @@ "Resource", "Software" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Identifier", "type": "string" @@ -4368,7 +4369,7 @@ "domain_of": [ "Publishable" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Datepublished", "type": "string" @@ -4399,7 +4400,7 @@ "domain_of": [ "Publishable" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Publishedby" } diff --git a/dandischema/models_pydantic/published-dandiset.json b/dandischema/models_pydantic/published-dandiset.json index accfbbe0..2960ac91 100644 --- a/dandischema/models_pydantic/published-dandiset.json +++ b/dandischema/models_pydantic/published-dandiset.json @@ -11,7 +11,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -24,7 +24,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -63,7 +63,7 @@ "domain_of": [ "AccessRequirements" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Embargo end date", "type": "string" @@ -105,7 +105,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -118,7 +118,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -285,7 +285,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -298,7 +298,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -365,7 +365,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -378,7 +378,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -464,7 +464,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -477,7 +477,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -561,7 +561,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -574,7 +574,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -658,7 +658,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -671,7 +671,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -686,7 +686,7 @@ "AssetsSummary", "BareAsset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Approach", "type": "array" @@ -700,7 +700,7 @@ "domain_of": [ "AssetsSummary" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Datastandard", "type": "array" @@ -715,7 +715,7 @@ "AssetsSummary", "BareAsset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Measurementtechnique", "type": "array" @@ -725,7 +725,7 @@ "domain_of": [ "AssetsSummary" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Numberofbytes", "type": "integer" @@ -736,7 +736,7 @@ "domain_of": [ "AssetsSummary" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Numberofcells", "type": "integer" @@ -746,7 +746,7 @@ "domain_of": [ "AssetsSummary" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Numberoffiles", "type": "integer" @@ -757,7 +757,7 @@ "domain_of": [ "AssetsSummary" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Numberofsamples", "type": "integer" @@ -768,7 +768,7 @@ "domain_of": [ "AssetsSummary" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Numberofsubjects", "type": "integer" @@ -783,7 +783,7 @@ "AssetsSummary", "Participant" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Species", "type": "array" @@ -798,7 +798,7 @@ "AssetsSummary", "BareAsset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Variablemeasured", "type": "array" @@ -821,7 +821,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -834,7 +834,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -889,7 +889,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -902,7 +902,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1016,7 +1016,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1029,7 +1029,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1115,7 +1115,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1128,7 +1128,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1188,7 +1188,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1201,7 +1201,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1293,7 +1293,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1306,7 +1306,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1389,7 +1389,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1402,7 +1402,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1552,7 +1552,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1565,7 +1565,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1716,7 +1716,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1729,7 +1729,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -1896,7 +1896,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -1909,7 +1909,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2117,7 +2117,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2130,7 +2130,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2321,7 +2321,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2334,7 +2334,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2501,7 +2501,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2514,7 +2514,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2612,7 +2612,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2625,7 +2625,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2709,7 +2709,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2722,7 +2722,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2804,7 +2804,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Id", "type": "string" @@ -2817,7 +2817,7 @@ "domain_of": [ "DandiBaseModel" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemakey", "type": "string" @@ -2870,7 +2870,7 @@ "pydantic2linkml: Unable to express the default factory, at 0xADDRESS>, in LinkML.", "pydantic2linkml: Unable to translate the logic contained in the after validation function, ." ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Access information", "type": "array" @@ -3051,7 +3051,7 @@ "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Repository", "type": "string" @@ -3063,7 +3063,7 @@ "CommonModel" ], "ifabsent": "string(0.7.0)", - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Schemaversion", "type": "string" @@ -3098,7 +3098,7 @@ "pydantic2linkml: Unable to translate the logic contained in the after validation function, >.", "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Url", "type": "string" @@ -3136,7 +3136,7 @@ "domain_of": [ "Dandiset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" } }, "citation": { @@ -3144,7 +3144,7 @@ "domain_of": [ "Dandiset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Citation", "type": "string" @@ -3156,7 +3156,7 @@ "domain_of": [ "Dandiset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Dandiset creation date and time.", "type": "string" @@ -3169,7 +3169,7 @@ "BareAsset", "Dandiset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Last modification date and time.", "type": "string" @@ -3195,7 +3195,7 @@ "Resource", "Software" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Dandiset identifier", "type": "string" @@ -3211,7 +3211,7 @@ "notes": [ "pydantic2linkml: Unable to translate the logic contained in the wrap validation function, .wrap_val at 0xADDRESS>." ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "minItems": 1, "title": "Manifestlocation", @@ -3240,7 +3240,7 @@ "Dandiset", "Software" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Version", "type": "string" @@ -3251,7 +3251,7 @@ "domain_of": [ "Publishable" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Datepublished", "type": "string" @@ -3282,7 +3282,7 @@ "domain_of": [ "Publishable" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Publishedby" }, @@ -3293,7 +3293,7 @@ "PublishedDandiset" ], "ifabsent": "string()", - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "DOI", "type": "string" @@ -3305,7 +3305,7 @@ "domain_of": [ "PublishedDandiset" ], - "readonly": "Managed exclusively by the owning authority; attempts by another entity to modify the value are expected to be ignored or rejected by that owning authority" + "readonly": "Read-only for clients; managed by server" }, "title": "Releasenotes", "type": "string" From 140ffbacbc117c178cf70a3075c2584e8410269e Mon Sep 17 00:00:00 2001 From: Isaac To Date: Wed, 27 May 2026 09:40:39 -0700 Subject: [PATCH 23/25] 'Merged' with linkml-conversion 0.12.1-116-gc931794 and 2 branches --- .pre-commit-config.yaml | 2 +- dandischema/models.yaml | 37 +++-- dandischema/models_linkml.py | 151 +++++++++++++++--- dandischema/models_linkml/asset.json | 94 ++++++++--- dandischema/models_linkml/dandiset.json | 74 +++++++-- .../models_linkml/published-asset.json | 94 ++++++++--- .../models_linkml/published-dandiset.json | 76 +++++++-- dandischema/models_pydantic/asset.json | 17 +- dandischema/models_pydantic/dandiset.json | 6 +- .../models_pydantic/published-asset.json | 17 +- .../models_pydantic/published-dandiset.json | 11 +- 11 files changed, 461 insertions(+), 118 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a320185c..f7dc7b14 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -9,7 +9,7 @@ repos: - id: check-yaml - id: check-added-large-files - repo: https://github.com/psf/black-pre-commit-mirror - rev: 26.5.0 + rev: 26.5.1 hooks: - id: black - repo: https://github.com/PyCQA/isort diff --git a/dandischema/models.yaml b/dandischema/models.yaml index 74570950..49444277 100644 --- a/dandischema/models.yaml +++ b/dandischema/models.yaml @@ -936,10 +936,6 @@ classes: description: Metadata used to describe an asset anywhere (local or server). Derived from C2M2 (Level 0 and 1) and schema.org notes: - - 'pydantic2linkml: Impossible to generate slot usage entry for the wasGeneratedBy - slot. The slot representation of the wasGeneratedBy field in the BareAsset Pydantic - model has disallowed changes in value in constraint meta slots: [''range''] - .' - 'MANUAL_NOTE: The default of the `schemaKey` field in the corresponding Pydantic model in `dandischema.models` is not the model''s name. Adjustment to the inherited `schemaKey` slot may be needed.' @@ -979,6 +975,18 @@ classes: range: PropertyValue wasAttributedTo: description: Associated participant(s) or subject(s). + wasGeneratedBy: + description: Describe the session, project or activity that generated + this asset. + title: Name of the session, project or activity. + notes: + - 'pydantic2linkml: Cannot express in a slot_usage entry a value for the `range` + constraint meta slot that differs from the base by a change that is not + an allowed monotonic refinement.' + any_of: + - range: Session + - range: Project + - range: Activity BaseType: description: Base class for enumerated types is_a: DandiBaseModel @@ -1142,11 +1150,6 @@ classes: required: false Dandiset: description: A body of structured information describing a DANDI dataset. - notes: - - 'pydantic2linkml: Impossible to generate slot usage entry for the wasGeneratedBy - slot. The slot representation of the wasGeneratedBy field in the Dandiset Pydantic - model has disallowed changes in value in constraint meta slots: [''range''] - .' is_a: CommonModel slots: - assetsSummary @@ -1200,6 +1203,13 @@ classes: pattern: ^dandi://[A-Z][-A-Z]*/\d{6}(@(draft|\d+\.\d+\.\d+))?(/\S+)?$ version: readonly: Read-only for clients; managed by server + wasGeneratedBy: + description: Project(s) that generated this Dandiset. + title: Associated projects + notes: + - 'pydantic2linkml: Cannot express in a slot_usage entry a value for the `range` + constraint meta slot that differs from the base by a change that is not + an allowed monotonic refinement.' Disorder: description: Biolink, SNOMED, or other identifier for disorder studied is_a: BaseType @@ -1373,9 +1383,6 @@ classes: ^dandiasset:[a-f0-9]{8}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{4}[-]*[a-f0-9]{12}$ PublishedDandiset: notes: - - 'pydantic2linkml: Impossible to generate slot usage entry for the id slot. The - slot representation of the id field in the PublishedDandiset Pydantic model - has disallowed changes in value in constraint meta slots: [''pattern''] .' - 'pydantic2linkml: Warning: LinkML does not support multiple inheritance. Publishable is not specified as a parent, through the `is_a` meta slot, but as a mixin.' - 'MANUAL_NOTE: The default of the `schemaKey` field in the corresponding Pydantic @@ -1388,6 +1395,12 @@ classes: - doi - releaseNotes slot_usage: + id: + description: Uniform resource identifier. + notes: + - 'pydantic2linkml: Cannot express in a slot_usage entry a value for the `pattern` + constraint meta slot that differs from the base by a change that is not + an allowed monotonic refinement.' url: description: Permalink to the Dandiset. notes: diff --git a/dandischema/models_linkml.py b/dandischema/models_linkml.py index 1912804c..5aa6358d 100644 --- a/dandischema/models_linkml.py +++ b/dandischema/models_linkml.py @@ -1931,14 +1931,10 @@ class BareAsset(CommonModel): { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "notes": [ - "pydantic2linkml: Impossible to generate slot usage entry for the " - "wasGeneratedBy slot. The slot representation of the wasGeneratedBy " - "field in the BareAsset Pydantic model has disallowed changes in " - "value in constraint meta slots: ['range'] .", "MANUAL_NOTE: The default of the `schemaKey` field in the " "corresponding Pydantic model in `dandischema.models` is not the " "model's name. Adjustment to the inherited `schemaKey` slot may be " - "needed.", + "needed." ], "slot_usage": { "access": { @@ -1980,6 +1976,26 @@ class BareAsset(CommonModel): "description": "Associated participant(s) " "or subject(s).", "name": "wasAttributedTo", }, + "wasGeneratedBy": { + "any_of": [ + {"range": "Session"}, + {"range": "Project"}, + {"range": "Activity"}, + ], + "description": "Describe the session, " + "project or activity that " + "generated this asset.", + "name": "wasGeneratedBy", + "notes": [ + "pydantic2linkml: Cannot express " + "in a slot_usage entry a value " + "for the `range` constraint meta " + "slot that differs from the base " + "by a change that is not an " + "allowed monotonic refinement." + ], + "title": "Name of the session, project or " "activity.", + }, }, } ) @@ -2319,11 +2335,27 @@ class BareAsset(CommonModel): }, ) wasGeneratedBy: Optional[ - list[Union[Activity, Project, PublishActivity, Session]] + list[ + Union[Project, Session, Union[Activity, Project, PublishActivity, Session]] + ] ] = Field( default=None, + title="Name of the session, project or activity.", + description="""Describe the session, project or activity that generated this asset.""", json_schema_extra={ - "linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]} + "linkml_meta": { + "any_of": [ + {"range": "Session"}, + {"range": "Project"}, + {"range": "Activity"}, + ], + "domain_of": ["CommonModel", "GenotypeInfo"], + "notes": [ + "pydantic2linkml: Cannot express in a slot_usage entry a value for " + "the `range` constraint meta slot that differs from the base by a " + "change that is not an allowed monotonic refinement." + ], + } }, ) id: Optional[str] = Field( @@ -2814,11 +2846,27 @@ class Asset(BareAsset): }, ) wasGeneratedBy: Optional[ - list[Union[Activity, Project, PublishActivity, Session]] + list[ + Union[Project, Session, Union[Activity, Project, PublishActivity, Session]] + ] ] = Field( default=None, + title="Name of the session, project or activity.", + description="""Describe the session, project or activity that generated this asset.""", json_schema_extra={ - "linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]} + "linkml_meta": { + "any_of": [ + {"range": "Session"}, + {"range": "Project"}, + {"range": "Activity"}, + ], + "domain_of": ["CommonModel", "GenotypeInfo"], + "notes": [ + "pydantic2linkml: Cannot express in a slot_usage entry a value for " + "the `range` constraint meta slot that differs from the base by a " + "change that is not an allowed monotonic refinement." + ], + } }, ) id: str = Field( @@ -3214,12 +3262,6 @@ class Dandiset(CommonModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( { "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", - "notes": [ - "pydantic2linkml: Impossible to generate slot usage entry for the " - "wasGeneratedBy slot. The slot representation of the wasGeneratedBy " - "field in the Dandiset Pydantic model has disallowed changes in " - "value in constraint meta slots: ['range'] ." - ], "slot_usage": { "contributor": { "description": "People or Organizations that " @@ -3287,6 +3329,19 @@ class Dandiset(CommonModel): "name": "version", "readonly": "Read-only for clients; managed by " "server", }, + "wasGeneratedBy": { + "description": "Project(s) that generated " "this Dandiset.", + "name": "wasGeneratedBy", + "notes": [ + "pydantic2linkml: Cannot express " + "in a slot_usage entry a value " + "for the `range` constraint meta " + "slot that differs from the base " + "by a change that is not an " + "allowed monotonic refinement." + ], + "title": "Associated projects", + }, }, } ) @@ -3605,8 +3660,17 @@ class Dandiset(CommonModel): list[Union[Activity, Project, PublishActivity, Session]] ] = Field( default=None, + title="Associated projects", + description="""Project(s) that generated this Dandiset.""", json_schema_extra={ - "linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]} + "linkml_meta": { + "domain_of": ["CommonModel", "GenotypeInfo"], + "notes": [ + "pydantic2linkml: Cannot express in a slot_usage entry a value for " + "the `range` constraint meta slot that differs from the base by a " + "change that is not an allowed monotonic refinement." + ], + } }, ) id: str = Field( @@ -5740,11 +5804,27 @@ class PublishedAsset(Publishable, Asset): }, ) wasGeneratedBy: Optional[ - list[Union[Activity, Project, PublishActivity, Session]] + list[ + Union[Project, Session, Union[Activity, Project, PublishActivity, Session]] + ] ] = Field( default=None, + title="Name of the session, project or activity.", + description="""Describe the session, project or activity that generated this asset.""", json_schema_extra={ - "linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]} + "linkml_meta": { + "any_of": [ + {"range": "Session"}, + {"range": "Project"}, + {"range": "Activity"}, + ], + "domain_of": ["CommonModel", "GenotypeInfo"], + "notes": [ + "pydantic2linkml: Cannot express in a slot_usage entry a value for " + "the `range` constraint meta slot that differs from the base by a " + "change that is not an allowed monotonic refinement." + ], + } }, ) id: str = Field( @@ -5883,10 +5963,6 @@ class PublishedDandiset(Publishable, Dandiset): "from_schema": "https://schema.dandiarchive.org/s/dandi/v0.7", "mixins": ["Publishable"], "notes": [ - "pydantic2linkml: Impossible to generate slot usage entry for the " - "id slot. The slot representation of the id field in the " - "PublishedDandiset Pydantic model has disallowed changes in value " - "in constraint meta slots: ['pattern'] .", "pydantic2linkml: Warning: LinkML does not support multiple " "inheritance. Publishable is not specified as a parent, through the " "`is_a` meta slot, but as a mixin.", @@ -5896,6 +5972,17 @@ class PublishedDandiset(Publishable, Dandiset): "needed.", ], "slot_usage": { + "id": { + "description": "Uniform resource identifier.", + "name": "id", + "notes": [ + "pydantic2linkml: Cannot express in a " + "slot_usage entry a value for the `pattern` " + "constraint meta slot that differs from the " + "base by a change that is not an allowed " + "monotonic refinement." + ], + }, "url": { "description": "Permalink to the Dandiset.", "name": "url", @@ -5912,7 +5999,7 @@ class PublishedDandiset(Publishable, Dandiset): "at 0xADDRESS>.", ], "required": True, - } + }, }, } ) @@ -6288,16 +6375,30 @@ class PublishedDandiset(Publishable, Dandiset): list[Union[Activity, Project, PublishActivity, Session]] ] = Field( default=None, + title="Associated projects", + description="""Project(s) that generated this Dandiset.""", json_schema_extra={ - "linkml_meta": {"domain_of": ["CommonModel", "GenotypeInfo"]} + "linkml_meta": { + "domain_of": ["CommonModel", "GenotypeInfo"], + "notes": [ + "pydantic2linkml: Cannot express in a slot_usage entry a value for " + "the `range` constraint meta slot that differs from the base by a " + "change that is not an allowed monotonic refinement." + ], + } }, ) id: str = Field( default=..., - description="""Uniform resource identifier""", + description="""Uniform resource identifier.""", json_schema_extra={ "linkml_meta": { "domain_of": ["DandiBaseModel"], + "notes": [ + "pydantic2linkml: Cannot express in a slot_usage entry a value for " + "the `pattern` constraint meta slot that differs from the base by a " + "change that is not an allowed monotonic refinement." + ], "readonly": "Read-only for clients; managed by server", } }, diff --git a/dandischema/models_linkml/asset.json b/dandischema/models_linkml/asset.json index c31e9d4d..5ff7f628 100644 --- a/dandischema/models_linkml/asset.json +++ b/dandischema/models_linkml/asset.json @@ -758,22 +758,34 @@ ] }, "wasGeneratedBy": { + "description": "Describe the session, project or activity that generated this asset.", "items": { "anyOf": [ { - "$ref": "#/$defs/Activity" + "$ref": "#/$defs/Session" }, { "$ref": "#/$defs/Project" }, { - "$ref": "#/$defs/PublishActivity" - }, - { - "$ref": "#/$defs/Session" + "anyOf": [ + { + "$ref": "#/$defs/Activity" + }, + { + "$ref": "#/$defs/Project" + }, + { + "$ref": "#/$defs/PublishActivity" + }, + { + "$ref": "#/$defs/Session" + } + ] } ] }, + "title": "Name of the session, project or activity.", "type": [ "array", "null" @@ -1176,22 +1188,34 @@ ] }, "wasGeneratedBy": { + "description": "Describe the session, project or activity that generated this asset.", "items": { "anyOf": [ { - "$ref": "#/$defs/Activity" + "$ref": "#/$defs/Session" }, { "$ref": "#/$defs/Project" }, { - "$ref": "#/$defs/PublishActivity" - }, - { - "$ref": "#/$defs/Session" + "anyOf": [ + { + "$ref": "#/$defs/Activity" + }, + { + "$ref": "#/$defs/Project" + }, + { + "$ref": "#/$defs/PublishActivity" + }, + { + "$ref": "#/$defs/Session" + } + ] } ] }, + "title": "Name of the session, project or activity.", "type": [ "array", "null" @@ -1913,6 +1937,7 @@ "type": "string" }, "wasGeneratedBy": { + "description": "Project(s) that generated this Dandiset.", "items": { "anyOf": [ { @@ -1929,6 +1954,7 @@ } ] }, + "title": "Associated projects", "type": [ "array", "null" @@ -3305,22 +3331,34 @@ ] }, "wasGeneratedBy": { + "description": "Describe the session, project or activity that generated this asset.", "items": { "anyOf": [ { - "$ref": "#/$defs/Activity" + "$ref": "#/$defs/Session" }, { "$ref": "#/$defs/Project" }, { - "$ref": "#/$defs/PublishActivity" - }, - { - "$ref": "#/$defs/Session" + "anyOf": [ + { + "$ref": "#/$defs/Activity" + }, + { + "$ref": "#/$defs/Project" + }, + { + "$ref": "#/$defs/PublishActivity" + }, + { + "$ref": "#/$defs/Session" + } + ] } ] }, + "title": "Name of the session, project or activity.", "type": [ "array", "null" @@ -3456,7 +3494,7 @@ ] }, "id": { - "description": "Uniform resource identifier", + "description": "Uniform resource identifier.", "pattern": "^([A-Z][-A-Z]*|[a-z][-a-z]*):\\d{6}(/(draft|\\d+\\.\\d+\\.\\d+))$", "type": "string" }, @@ -3592,6 +3630,7 @@ "type": "string" }, "wasGeneratedBy": { + "description": "Project(s) that generated this Dandiset.", "items": { "anyOf": [ { @@ -3608,6 +3647,7 @@ } ] }, + "title": "Associated projects", "type": [ "array", "null" @@ -4549,22 +4589,34 @@ ] }, "wasGeneratedBy": { + "description": "Describe the session, project or activity that generated this asset.", "items": { "anyOf": [ { - "$ref": "#/$defs/Activity" + "$ref": "#/$defs/Session" }, { "$ref": "#/$defs/Project" }, { - "$ref": "#/$defs/PublishActivity" - }, - { - "$ref": "#/$defs/Session" + "anyOf": [ + { + "$ref": "#/$defs/Activity" + }, + { + "$ref": "#/$defs/Project" + }, + { + "$ref": "#/$defs/PublishActivity" + }, + { + "$ref": "#/$defs/Session" + } + ] } ] }, + "title": "Name of the session, project or activity.", "type": [ "array", "null" diff --git a/dandischema/models_linkml/dandiset.json b/dandischema/models_linkml/dandiset.json index 60881e0c..c63137f9 100644 --- a/dandischema/models_linkml/dandiset.json +++ b/dandischema/models_linkml/dandiset.json @@ -758,22 +758,34 @@ ] }, "wasGeneratedBy": { + "description": "Describe the session, project or activity that generated this asset.", "items": { "anyOf": [ { - "$ref": "#/$defs/Activity" + "$ref": "#/$defs/Session" }, { "$ref": "#/$defs/Project" }, { - "$ref": "#/$defs/PublishActivity" - }, - { - "$ref": "#/$defs/Session" + "anyOf": [ + { + "$ref": "#/$defs/Activity" + }, + { + "$ref": "#/$defs/Project" + }, + { + "$ref": "#/$defs/PublishActivity" + }, + { + "$ref": "#/$defs/Session" + } + ] } ] }, + "title": "Name of the session, project or activity.", "type": [ "array", "null" @@ -1176,22 +1188,34 @@ ] }, "wasGeneratedBy": { + "description": "Describe the session, project or activity that generated this asset.", "items": { "anyOf": [ { - "$ref": "#/$defs/Activity" + "$ref": "#/$defs/Session" }, { "$ref": "#/$defs/Project" }, { - "$ref": "#/$defs/PublishActivity" - }, - { - "$ref": "#/$defs/Session" + "anyOf": [ + { + "$ref": "#/$defs/Activity" + }, + { + "$ref": "#/$defs/Project" + }, + { + "$ref": "#/$defs/PublishActivity" + }, + { + "$ref": "#/$defs/Session" + } + ] } ] }, + "title": "Name of the session, project or activity.", "type": [ "array", "null" @@ -1913,6 +1937,7 @@ "type": "string" }, "wasGeneratedBy": { + "description": "Project(s) that generated this Dandiset.", "items": { "anyOf": [ { @@ -1929,6 +1954,7 @@ } ] }, + "title": "Associated projects", "type": [ "array", "null" @@ -3305,22 +3331,34 @@ ] }, "wasGeneratedBy": { + "description": "Describe the session, project or activity that generated this asset.", "items": { "anyOf": [ { - "$ref": "#/$defs/Activity" + "$ref": "#/$defs/Session" }, { "$ref": "#/$defs/Project" }, { - "$ref": "#/$defs/PublishActivity" - }, - { - "$ref": "#/$defs/Session" + "anyOf": [ + { + "$ref": "#/$defs/Activity" + }, + { + "$ref": "#/$defs/Project" + }, + { + "$ref": "#/$defs/PublishActivity" + }, + { + "$ref": "#/$defs/Session" + } + ] } ] }, + "title": "Name of the session, project or activity.", "type": [ "array", "null" @@ -3456,7 +3494,7 @@ ] }, "id": { - "description": "Uniform resource identifier", + "description": "Uniform resource identifier.", "pattern": "^([A-Z][-A-Z]*|[a-z][-a-z]*):\\d{6}(/(draft|\\d+\\.\\d+\\.\\d+))$", "type": "string" }, @@ -3592,6 +3630,7 @@ "type": "string" }, "wasGeneratedBy": { + "description": "Project(s) that generated this Dandiset.", "items": { "anyOf": [ { @@ -3608,6 +3647,7 @@ } ] }, + "title": "Associated projects", "type": [ "array", "null" @@ -4474,6 +4514,7 @@ "type": "string" }, "wasGeneratedBy": { + "description": "Project(s) that generated this Dandiset.", "items": { "anyOf": [ { @@ -4490,6 +4531,7 @@ } ] }, + "title": "Associated projects", "type": [ "array", "null" diff --git a/dandischema/models_linkml/published-asset.json b/dandischema/models_linkml/published-asset.json index a70f338c..90086885 100644 --- a/dandischema/models_linkml/published-asset.json +++ b/dandischema/models_linkml/published-asset.json @@ -758,22 +758,34 @@ ] }, "wasGeneratedBy": { + "description": "Describe the session, project or activity that generated this asset.", "items": { "anyOf": [ { - "$ref": "#/$defs/Activity" + "$ref": "#/$defs/Session" }, { "$ref": "#/$defs/Project" }, { - "$ref": "#/$defs/PublishActivity" - }, - { - "$ref": "#/$defs/Session" + "anyOf": [ + { + "$ref": "#/$defs/Activity" + }, + { + "$ref": "#/$defs/Project" + }, + { + "$ref": "#/$defs/PublishActivity" + }, + { + "$ref": "#/$defs/Session" + } + ] } ] }, + "title": "Name of the session, project or activity.", "type": [ "array", "null" @@ -1176,22 +1188,34 @@ ] }, "wasGeneratedBy": { + "description": "Describe the session, project or activity that generated this asset.", "items": { "anyOf": [ { - "$ref": "#/$defs/Activity" + "$ref": "#/$defs/Session" }, { "$ref": "#/$defs/Project" }, { - "$ref": "#/$defs/PublishActivity" - }, - { - "$ref": "#/$defs/Session" + "anyOf": [ + { + "$ref": "#/$defs/Activity" + }, + { + "$ref": "#/$defs/Project" + }, + { + "$ref": "#/$defs/PublishActivity" + }, + { + "$ref": "#/$defs/Session" + } + ] } ] }, + "title": "Name of the session, project or activity.", "type": [ "array", "null" @@ -1913,6 +1937,7 @@ "type": "string" }, "wasGeneratedBy": { + "description": "Project(s) that generated this Dandiset.", "items": { "anyOf": [ { @@ -1929,6 +1954,7 @@ } ] }, + "title": "Associated projects", "type": [ "array", "null" @@ -3305,22 +3331,34 @@ ] }, "wasGeneratedBy": { + "description": "Describe the session, project or activity that generated this asset.", "items": { "anyOf": [ { - "$ref": "#/$defs/Activity" + "$ref": "#/$defs/Session" }, { "$ref": "#/$defs/Project" }, { - "$ref": "#/$defs/PublishActivity" - }, - { - "$ref": "#/$defs/Session" + "anyOf": [ + { + "$ref": "#/$defs/Activity" + }, + { + "$ref": "#/$defs/Project" + }, + { + "$ref": "#/$defs/PublishActivity" + }, + { + "$ref": "#/$defs/Session" + } + ] } ] }, + "title": "Name of the session, project or activity.", "type": [ "array", "null" @@ -3456,7 +3494,7 @@ ] }, "id": { - "description": "Uniform resource identifier", + "description": "Uniform resource identifier.", "pattern": "^([A-Z][-A-Z]*|[a-z][-a-z]*):\\d{6}(/(draft|\\d+\\.\\d+\\.\\d+))$", "type": "string" }, @@ -3592,6 +3630,7 @@ "type": "string" }, "wasGeneratedBy": { + "description": "Project(s) that generated this Dandiset.", "items": { "anyOf": [ { @@ -3608,6 +3647,7 @@ } ] }, + "title": "Associated projects", "type": [ "array", "null" @@ -4567,22 +4607,34 @@ ] }, "wasGeneratedBy": { + "description": "Describe the session, project or activity that generated this asset.", "items": { "anyOf": [ { - "$ref": "#/$defs/Activity" + "$ref": "#/$defs/Session" }, { "$ref": "#/$defs/Project" }, { - "$ref": "#/$defs/PublishActivity" - }, - { - "$ref": "#/$defs/Session" + "anyOf": [ + { + "$ref": "#/$defs/Activity" + }, + { + "$ref": "#/$defs/Project" + }, + { + "$ref": "#/$defs/PublishActivity" + }, + { + "$ref": "#/$defs/Session" + } + ] } ] }, + "title": "Name of the session, project or activity.", "type": [ "array", "null" diff --git a/dandischema/models_linkml/published-dandiset.json b/dandischema/models_linkml/published-dandiset.json index 373d28bd..66d6f1f1 100644 --- a/dandischema/models_linkml/published-dandiset.json +++ b/dandischema/models_linkml/published-dandiset.json @@ -758,22 +758,34 @@ ] }, "wasGeneratedBy": { + "description": "Describe the session, project or activity that generated this asset.", "items": { "anyOf": [ { - "$ref": "#/$defs/Activity" + "$ref": "#/$defs/Session" }, { "$ref": "#/$defs/Project" }, { - "$ref": "#/$defs/PublishActivity" - }, - { - "$ref": "#/$defs/Session" + "anyOf": [ + { + "$ref": "#/$defs/Activity" + }, + { + "$ref": "#/$defs/Project" + }, + { + "$ref": "#/$defs/PublishActivity" + }, + { + "$ref": "#/$defs/Session" + } + ] } ] }, + "title": "Name of the session, project or activity.", "type": [ "array", "null" @@ -1176,22 +1188,34 @@ ] }, "wasGeneratedBy": { + "description": "Describe the session, project or activity that generated this asset.", "items": { "anyOf": [ { - "$ref": "#/$defs/Activity" + "$ref": "#/$defs/Session" }, { "$ref": "#/$defs/Project" }, { - "$ref": "#/$defs/PublishActivity" - }, - { - "$ref": "#/$defs/Session" + "anyOf": [ + { + "$ref": "#/$defs/Activity" + }, + { + "$ref": "#/$defs/Project" + }, + { + "$ref": "#/$defs/PublishActivity" + }, + { + "$ref": "#/$defs/Session" + } + ] } ] }, + "title": "Name of the session, project or activity.", "type": [ "array", "null" @@ -1913,6 +1937,7 @@ "type": "string" }, "wasGeneratedBy": { + "description": "Project(s) that generated this Dandiset.", "items": { "anyOf": [ { @@ -1929,6 +1954,7 @@ } ] }, + "title": "Associated projects", "type": [ "array", "null" @@ -3305,22 +3331,34 @@ ] }, "wasGeneratedBy": { + "description": "Describe the session, project or activity that generated this asset.", "items": { "anyOf": [ { - "$ref": "#/$defs/Activity" + "$ref": "#/$defs/Session" }, { "$ref": "#/$defs/Project" }, { - "$ref": "#/$defs/PublishActivity" - }, - { - "$ref": "#/$defs/Session" + "anyOf": [ + { + "$ref": "#/$defs/Activity" + }, + { + "$ref": "#/$defs/Project" + }, + { + "$ref": "#/$defs/PublishActivity" + }, + { + "$ref": "#/$defs/Session" + } + ] } ] }, + "title": "Name of the session, project or activity.", "type": [ "array", "null" @@ -3456,7 +3494,7 @@ ] }, "id": { - "description": "Uniform resource identifier", + "description": "Uniform resource identifier.", "pattern": "^([A-Z][-A-Z]*|[a-z][-a-z]*):\\d{6}(/(draft|\\d+\\.\\d+\\.\\d+))$", "type": "string" }, @@ -3592,6 +3630,7 @@ "type": "string" }, "wasGeneratedBy": { + "description": "Project(s) that generated this Dandiset.", "items": { "anyOf": [ { @@ -3608,6 +3647,7 @@ } ] }, + "title": "Associated projects", "type": [ "array", "null" @@ -4367,7 +4407,7 @@ ] }, "id": { - "description": "Uniform resource identifier", + "description": "Uniform resource identifier.", "pattern": "^([A-Z][-A-Z]*|[a-z][-a-z]*):\\d{6}(/(draft|\\d+\\.\\d+\\.\\d+))$", "type": "string" }, @@ -4503,6 +4543,7 @@ "type": "string" }, "wasGeneratedBy": { + "description": "Project(s) that generated this Dandiset.", "items": { "anyOf": [ { @@ -4519,6 +4560,7 @@ } ] }, + "title": "Associated projects", "type": [ "array", "null" diff --git a/dandischema/models_pydantic/asset.json b/dandischema/models_pydantic/asset.json index ab594fb1..0e64a364 100644 --- a/dandischema/models_pydantic/asset.json +++ b/dandischema/models_pydantic/asset.json @@ -4097,6 +4097,7 @@ }, "wasGeneratedBy": { "default": null, + "description": "Describe the session, project or activity that generated this asset.", "items": { "anyOf": [ { @@ -4114,12 +4115,26 @@ ] }, "linkml_meta": { + "any_of": [ + { + "range": "Session" + }, + { + "range": "Project" + }, + { + "range": "Activity" + } + ], "domain_of": [ "CommonModel", "GenotypeInfo" + ], + "notes": [ + "pydantic2linkml: Cannot express in a slot_usage entry a value for the `range` constraint meta slot that differs from the base by a change that is not an allowed monotonic refinement." ] }, - "title": "Wasgeneratedby", + "title": "Name of the session, project or activity.", "type": "array" }, "approach": { diff --git a/dandischema/models_pydantic/dandiset.json b/dandischema/models_pydantic/dandiset.json index ae584847..935c4f21 100644 --- a/dandischema/models_pydantic/dandiset.json +++ b/dandischema/models_pydantic/dandiset.json @@ -3106,6 +3106,7 @@ }, "wasGeneratedBy": { "default": null, + "description": "Project(s) that generated this Dandiset.", "items": { "anyOf": [ { @@ -3126,9 +3127,12 @@ "domain_of": [ "CommonModel", "GenotypeInfo" + ], + "notes": [ + "pydantic2linkml: Cannot express in a slot_usage entry a value for the `range` constraint meta slot that differs from the base by a change that is not an allowed monotonic refinement." ] }, - "title": "Wasgeneratedby", + "title": "Associated projects", "type": "array" }, "assetsSummary": { diff --git a/dandischema/models_pydantic/published-asset.json b/dandischema/models_pydantic/published-asset.json index 681e96eb..c09d49df 100644 --- a/dandischema/models_pydantic/published-asset.json +++ b/dandischema/models_pydantic/published-asset.json @@ -4096,6 +4096,7 @@ }, "wasGeneratedBy": { "default": null, + "description": "Describe the session, project or activity that generated this asset.", "items": { "anyOf": [ { @@ -4113,12 +4114,26 @@ ] }, "linkml_meta": { + "any_of": [ + { + "range": "Session" + }, + { + "range": "Project" + }, + { + "range": "Activity" + } + ], "domain_of": [ "CommonModel", "GenotypeInfo" + ], + "notes": [ + "pydantic2linkml: Cannot express in a slot_usage entry a value for the `range` constraint meta slot that differs from the base by a change that is not an allowed monotonic refinement." ] }, - "title": "Wasgeneratedby", + "title": "Name of the session, project or activity.", "type": "array" }, "approach": { diff --git a/dandischema/models_pydantic/published-dandiset.json b/dandischema/models_pydantic/published-dandiset.json index 2960ac91..17da70ba 100644 --- a/dandischema/models_pydantic/published-dandiset.json +++ b/dandischema/models_pydantic/published-dandiset.json @@ -2799,11 +2799,14 @@ "additionalProperties": false, "properties": { "id": { - "description": "Uniform resource identifier", + "description": "Uniform resource identifier.", "linkml_meta": { "domain_of": [ "DandiBaseModel" ], + "notes": [ + "pydantic2linkml: Cannot express in a slot_usage entry a value for the `pattern` constraint meta slot that differs from the base by a change that is not an allowed monotonic refinement." + ], "readonly": "Read-only for clients; managed by server" }, "title": "Id", @@ -3105,6 +3108,7 @@ }, "wasGeneratedBy": { "default": null, + "description": "Project(s) that generated this Dandiset.", "items": { "anyOf": [ { @@ -3125,9 +3129,12 @@ "domain_of": [ "CommonModel", "GenotypeInfo" + ], + "notes": [ + "pydantic2linkml: Cannot express in a slot_usage entry a value for the `range` constraint meta slot that differs from the base by a change that is not an allowed monotonic refinement." ] }, - "title": "Wasgeneratedby", + "title": "Associated projects", "type": "array" }, "assetsSummary": { From 17d87aff2240f9f75f38d563565b29ef44e3de0e Mon Sep 17 00:00:00 2001 From: Isaac To Date: Wed, 27 May 2026 10:54:06 -0700 Subject: [PATCH 24/25] 'Merged' with linkml-conversion 0.12.1-116-gc931794 and 2 branches --- dandischema/models.yaml | 9 +++-- dandischema/models_linkml.py | 33 ++++++++++++++----- dandischema/models_pydantic/asset.json | 2 +- dandischema/models_pydantic/dandiset.json | 2 +- .../models_pydantic/published-asset.json | 2 +- .../models_pydantic/published-dandiset.json | 4 +-- 6 files changed, 35 insertions(+), 17 deletions(-) diff --git a/dandischema/models.yaml b/dandischema/models.yaml index 49444277..f9034659 100644 --- a/dandischema/models.yaml +++ b/dandischema/models.yaml @@ -982,7 +982,8 @@ classes: notes: - 'pydantic2linkml: Cannot express in a slot_usage entry a value for the `range` constraint meta slot that differs from the base by a change that is not - an allowed monotonic refinement.' + an allowed monotonic refinement (base value: ''Activity''; target value: + ''Any'').' any_of: - range: Session - range: Project @@ -1209,7 +1210,8 @@ classes: notes: - 'pydantic2linkml: Cannot express in a slot_usage entry a value for the `range` constraint meta slot that differs from the base by a change that is not - an allowed monotonic refinement.' + an allowed monotonic refinement (base value: ''Activity''; target value: + ''Project'').' Disorder: description: Biolink, SNOMED, or other identifier for disorder studied is_a: BaseType @@ -1400,7 +1402,8 @@ classes: notes: - 'pydantic2linkml: Cannot express in a slot_usage entry a value for the `pattern` constraint meta slot that differs from the base by a change that is not - an allowed monotonic refinement.' + an allowed monotonic refinement (base value: ''^([A-Z][-A-Z]*|[a-z][-a-z]*):\\d{6}(/(draft|\\d+\\.\\d+\\.\\d+))$''; + target value: ''^[A-Z][-A-Z]*:\\d{6}/\\d+\\.\\d+\\.\\d+$'').' url: description: Permalink to the Dandiset. notes: diff --git a/dandischema/models_linkml.py b/dandischema/models_linkml.py index 5aa6358d..2193cd68 100644 --- a/dandischema/models_linkml.py +++ b/dandischema/models_linkml.py @@ -1992,7 +1992,9 @@ class BareAsset(CommonModel): "for the `range` constraint meta " "slot that differs from the base " "by a change that is not an " - "allowed monotonic refinement." + "allowed monotonic refinement " + "(base value: 'Activity'; target " + "value: 'Any')." ], "title": "Name of the session, project or " "activity.", }, @@ -2353,7 +2355,8 @@ class BareAsset(CommonModel): "notes": [ "pydantic2linkml: Cannot express in a slot_usage entry a value for " "the `range` constraint meta slot that differs from the base by a " - "change that is not an allowed monotonic refinement." + "change that is not an allowed monotonic refinement (base value: " + "'Activity'; target value: 'Any')." ], } }, @@ -2864,7 +2867,8 @@ class Asset(BareAsset): "notes": [ "pydantic2linkml: Cannot express in a slot_usage entry a value for " "the `range` constraint meta slot that differs from the base by a " - "change that is not an allowed monotonic refinement." + "change that is not an allowed monotonic refinement (base value: " + "'Activity'; target value: 'Any')." ], } }, @@ -3338,7 +3342,9 @@ class Dandiset(CommonModel): "for the `range` constraint meta " "slot that differs from the base " "by a change that is not an " - "allowed monotonic refinement." + "allowed monotonic refinement " + "(base value: 'Activity'; target " + "value: 'Project')." ], "title": "Associated projects", }, @@ -3668,7 +3674,8 @@ class Dandiset(CommonModel): "notes": [ "pydantic2linkml: Cannot express in a slot_usage entry a value for " "the `range` constraint meta slot that differs from the base by a " - "change that is not an allowed monotonic refinement." + "change that is not an allowed monotonic refinement (base value: " + "'Activity'; target value: 'Project')." ], } }, @@ -5822,7 +5829,8 @@ class PublishedAsset(Publishable, Asset): "notes": [ "pydantic2linkml: Cannot express in a slot_usage entry a value for " "the `range` constraint meta slot that differs from the base by a " - "change that is not an allowed monotonic refinement." + "change that is not an allowed monotonic refinement (base value: " + "'Activity'; target value: 'Any')." ], } }, @@ -5980,7 +5988,10 @@ class PublishedDandiset(Publishable, Dandiset): "slot_usage entry a value for the `pattern` " "constraint meta slot that differs from the " "base by a change that is not an allowed " - "monotonic refinement." + "monotonic refinement (base value: " + "'^([A-Z][-A-Z]*|[a-z][-a-z]*):\\\\d{6}(/(draft|\\\\d+\\\\.\\\\d+\\\\.\\\\d+))$'; " + "target value: " + "'^[A-Z][-A-Z]*:\\\\d{6}/\\\\d+\\\\.\\\\d+\\\\.\\\\d+$')." ], }, "url": { @@ -6383,7 +6394,8 @@ class PublishedDandiset(Publishable, Dandiset): "notes": [ "pydantic2linkml: Cannot express in a slot_usage entry a value for " "the `range` constraint meta slot that differs from the base by a " - "change that is not an allowed monotonic refinement." + "change that is not an allowed monotonic refinement (base value: " + "'Activity'; target value: 'Project')." ], } }, @@ -6397,7 +6409,10 @@ class PublishedDandiset(Publishable, Dandiset): "notes": [ "pydantic2linkml: Cannot express in a slot_usage entry a value for " "the `pattern` constraint meta slot that differs from the base by a " - "change that is not an allowed monotonic refinement." + "change that is not an allowed monotonic refinement (base value: " + "'^([A-Z][-A-Z]*|[a-z][-a-z]*):\\\\d{6}(/(draft|\\\\d+\\\\.\\\\d+\\\\.\\\\d+))$'; " + "target value: " + "'^[A-Z][-A-Z]*:\\\\d{6}/\\\\d+\\\\.\\\\d+\\\\.\\\\d+$')." ], "readonly": "Read-only for clients; managed by server", } diff --git a/dandischema/models_pydantic/asset.json b/dandischema/models_pydantic/asset.json index 0e64a364..0d93b159 100644 --- a/dandischema/models_pydantic/asset.json +++ b/dandischema/models_pydantic/asset.json @@ -4131,7 +4131,7 @@ "GenotypeInfo" ], "notes": [ - "pydantic2linkml: Cannot express in a slot_usage entry a value for the `range` constraint meta slot that differs from the base by a change that is not an allowed monotonic refinement." + "pydantic2linkml: Cannot express in a slot_usage entry a value for the `range` constraint meta slot that differs from the base by a change that is not an allowed monotonic refinement (base value: 'Activity'; target value: 'Any')." ] }, "title": "Name of the session, project or activity.", diff --git a/dandischema/models_pydantic/dandiset.json b/dandischema/models_pydantic/dandiset.json index 935c4f21..8cca589a 100644 --- a/dandischema/models_pydantic/dandiset.json +++ b/dandischema/models_pydantic/dandiset.json @@ -3129,7 +3129,7 @@ "GenotypeInfo" ], "notes": [ - "pydantic2linkml: Cannot express in a slot_usage entry a value for the `range` constraint meta slot that differs from the base by a change that is not an allowed monotonic refinement." + "pydantic2linkml: Cannot express in a slot_usage entry a value for the `range` constraint meta slot that differs from the base by a change that is not an allowed monotonic refinement (base value: 'Activity'; target value: 'Project')." ] }, "title": "Associated projects", diff --git a/dandischema/models_pydantic/published-asset.json b/dandischema/models_pydantic/published-asset.json index c09d49df..b33ab46c 100644 --- a/dandischema/models_pydantic/published-asset.json +++ b/dandischema/models_pydantic/published-asset.json @@ -4130,7 +4130,7 @@ "GenotypeInfo" ], "notes": [ - "pydantic2linkml: Cannot express in a slot_usage entry a value for the `range` constraint meta slot that differs from the base by a change that is not an allowed monotonic refinement." + "pydantic2linkml: Cannot express in a slot_usage entry a value for the `range` constraint meta slot that differs from the base by a change that is not an allowed monotonic refinement (base value: 'Activity'; target value: 'Any')." ] }, "title": "Name of the session, project or activity.", diff --git a/dandischema/models_pydantic/published-dandiset.json b/dandischema/models_pydantic/published-dandiset.json index 17da70ba..e17b011d 100644 --- a/dandischema/models_pydantic/published-dandiset.json +++ b/dandischema/models_pydantic/published-dandiset.json @@ -2805,7 +2805,7 @@ "DandiBaseModel" ], "notes": [ - "pydantic2linkml: Cannot express in a slot_usage entry a value for the `pattern` constraint meta slot that differs from the base by a change that is not an allowed monotonic refinement." + "pydantic2linkml: Cannot express in a slot_usage entry a value for the `pattern` constraint meta slot that differs from the base by a change that is not an allowed monotonic refinement (base value: '^([A-Z][-A-Z]*|[a-z][-a-z]*):\\\\d{6}(/(draft|\\\\d+\\\\.\\\\d+\\\\.\\\\d+))$'; target value: '^[A-Z][-A-Z]*:\\\\d{6}/\\\\d+\\\\.\\\\d+\\\\.\\\\d+$')." ], "readonly": "Read-only for clients; managed by server" }, @@ -3131,7 +3131,7 @@ "GenotypeInfo" ], "notes": [ - "pydantic2linkml: Cannot express in a slot_usage entry a value for the `range` constraint meta slot that differs from the base by a change that is not an allowed monotonic refinement." + "pydantic2linkml: Cannot express in a slot_usage entry a value for the `range` constraint meta slot that differs from the base by a change that is not an allowed monotonic refinement (base value: 'Activity'; target value: 'Project')." ] }, "title": "Associated projects", From f1079e945cc36ba861e79f93858c5260dcaa57a6 Mon Sep 17 00:00:00 2001 From: Isaac To Date: Fri, 24 Jul 2026 00:08:08 -0700 Subject: [PATCH 25/25] 'Merged' with linkml-conversion 0.12.1-132-g4e77ee55 and 2 branches --- .github/workflows/lint.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/test-dandi-cli.yml | 2 +- .github/workflows/test-nonetwork.yml | 2 +- .github/workflows/test-schema.yml | 2 +- .github/workflows/test.yml | 2 +- .github/workflows/typing.yml | 2 +- dandischema/metadata.py | 67 ++------- dandischema/models_orig.py | 4 +- dandischema/tests/test_metadata.py | 204 +-------------------------- dandischema/tests/test_models.py | 46 +++--- 11 files changed, 44 insertions(+), 291 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 11a4f840..a4cf29ed 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -14,7 +14,7 @@ jobs: with: # no need for the history fetch-depth: 1 - name: Set up Python - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version: '3.10' - name: Install dependencies diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a807ae3d..7765aa3e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -61,7 +61,7 @@ jobs: working-directory: dandischema - name: Set up Python - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version: '3.10' diff --git a/.github/workflows/test-dandi-cli.yml b/.github/workflows/test-dandi-cli.yml index cbf78069..26dc44c9 100644 --- a/.github/workflows/test-dandi-cli.yml +++ b/.github/workflows/test-dandi-cli.yml @@ -61,7 +61,7 @@ jobs: doi_prefix: '10.82754' steps: - name: Set up Python ${{ matrix.python }} - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version: ${{ matrix.python }} diff --git a/.github/workflows/test-nonetwork.yml b/.github/workflows/test-nonetwork.yml index 4afca891..fe2131cd 100644 --- a/.github/workflows/test-nonetwork.yml +++ b/.github/workflows/test-nonetwork.yml @@ -33,7 +33,7 @@ jobs: fetch-depth: 0 - name: Set up Python ${{ matrix.python }} - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version: ${{ matrix.python }} diff --git a/.github/workflows/test-schema.yml b/.github/workflows/test-schema.yml index eb3ff520..00c9a88b 100644 --- a/.github/workflows/test-schema.yml +++ b/.github/workflows/test-schema.yml @@ -17,7 +17,7 @@ jobs: path: dandischema - name: Set up Python - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version: '3.10' diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c1cf8cab..f82f33d3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -44,7 +44,7 @@ jobs: fetch-depth: 0 - name: Set up Python ${{ matrix.python }} - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version: ${{ matrix.python }} diff --git a/.github/workflows/typing.yml b/.github/workflows/typing.yml index 3025111d..5750b14d 100644 --- a/.github/workflows/typing.yml +++ b/.github/workflows/typing.yml @@ -14,7 +14,7 @@ jobs: fetch-depth: 0 - name: Set up Python - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version: '3.10' diff --git a/dandischema/metadata.py b/dandischema/metadata.py index 64383a41..8de8f8ee 100644 --- a/dandischema/metadata.py +++ b/dandischema/metadata.py @@ -16,7 +16,7 @@ ALLOWED_VALIDATION_SCHEMAS, DANDI_SCHEMA_VERSION, ) -from .exceptions import JsonschemaValidationError, PydanticValidationError +from .exceptions import PydanticValidationError from . import models from .utils import ( TransitionalGenerateJsonSchema, @@ -151,47 +151,16 @@ def publish_model_schemata(releasedir: Union[str, Path]) -> Path: return vdir -def _validate_obj_json( - instance: Any, validator: JsonschemaValidator, *, missing_ok: bool = False -) -> None: - """ - Validate a data instance using a jsonschema validator with an option to filter out - errors related to missing required properties - - :param instance: The data instance to validate - :param validator: The JSON schema validator to use - :param missing_ok: Indicates whether to filter out errors related to missing - required properties - :raises JsonschemaValidationError: If the metadata instance is invalid, and there - are errors detected in the validation, optionally discounting errors - related to missing required properties. An instance of this exception containing - a list of `jsonschema.exceptions.ValidationError` instances representing all the - (remaining) errors detected in the validation - """ - try: - validate_json(instance, validator) - except JsonschemaValidationError as e: - if missing_ok: - remaining_errs = [ - err for err in e.errors if "is a required property" not in err.message - ] - # Raise an exception only if there are errors left after filtering - if remaining_errs: - raise JsonschemaValidationError(remaining_errs) from e - else: - raise e - - def _validate_dandiset_json(data: dict, schema_dir: Union[str, Path]) -> None: with Path(schema_dir, "dandiset.json").open() as fp: schema = json.load(fp) - _validate_obj_json(data, dandi_jsonschema_validator(schema)) + validate_json(data, dandi_jsonschema_validator(schema)) def _validate_asset_json(data: dict, schema_dir: Union[str, Path]) -> None: with Path(schema_dir, "asset.json").open() as fp: schema = json.load(fp) - _validate_obj_json(data, dandi_jsonschema_validator(schema)) + validate_json(data, dandi_jsonschema_validator(schema)) @cache @@ -273,7 +242,6 @@ def validate( obj: dict, schema_version: Optional[str] = None, schema_key: Optional[str] = None, - missing_ok: bool = False, json_validation: bool = False, ) -> None: """Validate object using pydantic @@ -287,9 +255,6 @@ def validate( schema_key: str, optional Name of the schema key to be used, if not specified, `schemaKey` of the object will be consulted - missing_ok: bool, optional - This flag allows checking if all fields have appropriate values but ignores - missing fields. A `ValueError` is raised with the list of all errors. json_validation: bool, optional If set to True, `obj` is first validated against the corresponding jsonschema. @@ -298,12 +263,15 @@ def validate( None Raises - -------- - ValueError: - if no schema_key is provided and object doesn't provide schemaKey or - is missing properly formatted values - ValidationError - if obj fails validation + ------ + ValueError + if no schema key is provided through `schema_key` or the `schemaKey` + attribute of the object, or if the schema version to validate against + is not an allowed one + JsonschemaValidationError + if `json_validation` is `True` and the object fails JSON schema validation + PydanticValidationError + if the object fails Pydantic validation """ schema_key = schema_key or obj.get("schemaKey") if schema_key is None: @@ -324,17 +292,12 @@ def validate( "using json schema for older versions" ) jvalidator = _get_jsonschema_validator(schema_version, schema_key) - _validate_obj_json(obj, jvalidator, missing_ok=missing_ok) + validate_json(obj, jvalidator) klass = getattr(models, schema_key) try: klass(**obj) except pydantic.ValidationError as exc: - messages = [] - for el in exc.errors(): - if not missing_ok or el["type"] != "missing": - messages.append(el) - if messages: - raise PydanticValidationError(messages) # type: ignore[arg-type] + raise PydanticValidationError(exc.errors()) # type: ignore[arg-type] def migrate( @@ -432,7 +395,7 @@ def migrate( # Optionally validate the instance against the DANDI schema it specifies # before migration if not skip_validation: - _validate_obj_json(obj, _get_jsonschema_validator(obj_ver, "Dandiset")) + validate_json(obj, _get_jsonschema_validator(obj_ver, "Dandiset")) obj_migrated = deepcopy(obj) diff --git a/dandischema/models_orig.py b/dandischema/models_orig.py index 18e7a553..c4e7b91b 100644 --- a/dandischema/models_orig.py +++ b/dandischema/models_orig.py @@ -642,14 +642,14 @@ def __get_pydantic_json_schema__( value["type"] = "object" del value["allOf"] if anyOf is not None: - if len(anyOf) > 1 and any(["$ref" in val for val in anyOf]): + if len(anyOf) > 1 and any("$ref" in val for val in anyOf): value["type"] = "object" if items is not None: anyOf = items.get("anyOf") if ( anyOf is not None and len(anyOf) > 1 - and any(["$ref" in val for val in anyOf]) + and any("$ref" in val for val in anyOf) ): value["items"]["type"] = "object" # In pydantic 1.8+ all Literals are mapped on to enum diff --git a/dandischema/tests/test_metadata.py b/dandischema/tests/test_metadata.py index 2327271d..2751cdec 100644 --- a/dandischema/tests/test_metadata.py +++ b/dandischema/tests/test_metadata.py @@ -1,4 +1,3 @@ -from contextlib import nullcontext from hashlib import md5, sha256 import json from pathlib import Path @@ -10,7 +9,7 @@ import pytest from dandischema.models import Asset, Dandiset, PublishedAsset, PublishedDandiset -from dandischema.utils import TransitionalGenerateJsonSchema, jsonschema_validator +from dandischema.utils import TransitionalGenerateJsonSchema from .utils import ( DANDISET_METADATA_DIR, @@ -28,7 +27,6 @@ _get_jsonschema_validator_local, _validate_asset_json, _validate_dandiset_json, - _validate_obj_json, aggregate_assets_summary, migrate, publish_model_schemata, @@ -316,67 +314,10 @@ def test_requirements( validate(obj, schema_key=schema_key) with pytest.raises(PydanticValidationError) as exc: validate(obj, schema_key=schema_key, schema_version=DANDI_SCHEMA_VERSION) - assert set([el["loc"][0] for el in exc.value.errors]) == missingfields - - -@pytest.mark.parametrize( - "obj, schema_key, errors, num_errors", - [ - ( - {"schemaKey": "Dandiset", "schemaVersion": "0.4.4"}, - None, - {"Field required"}, - 10, - ), - ( - { - "schemaKey": "Dandiset", - "identifier": f"{INSTANCE_NAME}:000000", - "schemaVersion": "0.4.4", - }, - None, - {"Field required"}, - 9, - ), - ], -) -def test_missing_ok( - obj: Dict[str, Any], schema_key: Optional[str], errors: Set[str], num_errors: int -) -> None: - validate( - obj, schema_key=schema_key, schema_version=DANDI_SCHEMA_VERSION, missing_ok=True + assert ( + set(loc[0] if (loc := el["loc"]) else None for el in exc.value.errors) + == missingfields ) - with pytest.raises(PydanticValidationError) as exc: - validate(obj, schema_key=schema_key, schema_version=DANDI_SCHEMA_VERSION) - exc_errors = [el["msg"] for el in exc.value.errors] - assert len(exc_errors) == num_errors - assert set(exc_errors) == errors - - -@skipif_no_network -def test_missing_ok_error() -> None: - if INSTANCE_NAME == "DANDI": - # Skip for when the instance being tested is not `DANDI` since the JSON schema - # version at `0.4.4` is hardcoded to only for an instance named `DANDI` - with pytest.raises(JsonschemaValidationError): - validate( - { - "schemaKey": "Dandiset", - "identifier": "000000", - "schemaVersion": "0.4.4", - }, - json_validation=True, - missing_ok=True, - ) - with pytest.raises(PydanticValidationError): - validate( - { - "schemaKey": "Dandiset", - "identifier": "000000", - "schemaVersion": "0.4.4", - }, - missing_ok=True, - ) @pytest.mark.parametrize( @@ -758,143 +699,6 @@ def test_aggregation_bids() -> None: ) # only a single entry so we do not duplicate them -class TestValidateObjJson: - """ - Tests for `_validate_obj_json()` - """ - - @pytest.fixture - def dummy_jvalidator(self) -> JsonschemaValidator: - """Returns a dummy jsonschema validator initialized with a dummy schema.""" - return jsonschema_validator( - { - "type": "object", - "properties": {"name": {"type": "string"}}, - "required": ["name"], - }, - check_format=True, - ) - - @pytest.fixture - def dummy_instance(self) -> dict: - """Returns a dummy instance""" - return {"name": "Example"} - - def test_valid_obj_no_errors( - self, - monkeypatch: pytest.MonkeyPatch, - dummy_jvalidator: JsonschemaValidator, - dummy_instance: dict, - ) -> None: - """ - Test that `_validate_obj_json` does not raise when `validate_json` has no errors - """ - - def mock_validate_json(_instance: dict, _schema: dict) -> None: - """Simulate successful validation with no exceptions.""" - return # No error raised - - # Patch the validate_json function used inside `_validate_obj_json` - from dandischema import metadata - - monkeypatch.setattr(metadata, "validate_json", mock_validate_json) - - # `_validate_obj_json` should succeed without raising an exception - _validate_obj_json(dummy_instance, dummy_jvalidator) - - def test_raises_error_without_missing_ok( - self, - monkeypatch: pytest.MonkeyPatch, - dummy_jvalidator: JsonschemaValidator, - dummy_instance: dict, - ) -> None: - """ - Test that `_validate_obj_json` forwards JsonschemaValidationError - when `missing_ok=False`. - """ - - def mock_validate_json(_instance: dict, _schema: dict) -> None: - """Simulate validation error.""" - # Create a mock error that says a field is invalid - raise JsonschemaValidationError( - errors=[MagicMock(message="`name` is a required property")] - ) - - from dandischema import metadata - - monkeypatch.setattr(metadata, "validate_json", mock_validate_json) - - # Since `missing_ok=False`, any error should be re-raised. - with pytest.raises(JsonschemaValidationError) as excinfo: - _validate_obj_json(dummy_instance, dummy_jvalidator, missing_ok=False) - assert "`name` is a required property" == excinfo.value.errors[0].message - - @pytest.mark.parametrize( - ("validation_errs", "expect_raises", "expected_remaining_errs_count"), - [ - pytest.param( - [ - MagicMock(message="`name` is a required property"), - MagicMock(message="`title` is a required property ..."), - ], - False, - None, - id="no_remaining_errors", - ), - pytest.param( - [ - MagicMock(message="`name` is a required property"), - MagicMock(message="Some other validation error"), - ], - True, - 1, - id="one_remaining_error", - ), - ], - ) - def test_raises_only_nonmissing_errors_with_missing_ok( - self, - monkeypatch: pytest.MonkeyPatch, - dummy_jvalidator: JsonschemaValidator, - dummy_instance: dict, - validation_errs: list[MagicMock], - expect_raises: bool, - expected_remaining_errs_count: Optional[int], - ) -> None: - """ - Test that `_validate_obj_json` filters out 'is a required property' errors - when `missing_ok=True`. - """ - - def mock_validate_json(_instance: dict, _schema: dict) -> None: - """ - Simulate multiple validation errors, including missing required property. - """ - raise JsonschemaValidationError( - errors=validation_errs # type: ignore[arg-type] - ) - - from dandischema import metadata - - monkeypatch.setattr(metadata, "validate_json", mock_validate_json) - - # If expect_raises is True, we use pytest.raises(ValidationError) - # Otherwise, we enter a no-op context - ctx = ( - pytest.raises(JsonschemaValidationError) if expect_raises else nullcontext() - ) - - with ctx as excinfo: - _validate_obj_json(dummy_instance, dummy_jvalidator, missing_ok=True) - - if excinfo is not None: - filtered_errors = excinfo.value.errors - - # We expect the "required property" error to be filtered out, - # so we should only see the "Some other validation error". - assert len(filtered_errors) == expected_remaining_errs_count - - class TestGetJsonschemaValidator: @pytest.mark.parametrize( "schema_version, schema_key, expected_error_msg", diff --git a/dandischema/tests/test_models.py b/dandischema/tests/test_models.py index 320c2fcc..29844a8e 100644 --- a/dandischema/tests/test_models.py +++ b/dandischema/tests/test_models.py @@ -150,10 +150,8 @@ def test_asset_digest() -> None: contentSize=100, encodingFormat="nwb", digest=digest_model, path="/" ) assert any( - [ - "Digest must have an appropriate dandi-etag value." in val - for val in set([el["msg"] for el in exc.value.errors()]) - ] + "Digest must have an appropriate dandi-etag value." in val + for val in set(el["msg"] for el in exc.value.errors()) ) digest = 32 * "a" + "-1" digest_model = {models.DigestType.dandi_etag: digest} @@ -221,10 +219,8 @@ def test_asset_digest() -> None: path="/", ) assert any( - [ - "Digest must have an appropriate dandi-zarr-checksum value." in val - for val in set([el["msg"] for el in exc.value.errors()]) - ] + "Digest must have an appropriate dandi-zarr-checksum value." in val + for val in set(el["msg"] for el in exc.value.errors()) ) digest = f"{32 * 'a'}-1--42" digest_model = {models.DigestType.dandi_zarr_checksum: digest} @@ -236,10 +232,8 @@ def test_asset_digest() -> None: path="/", ) assert any( - [ - "contentSize 100 is not equal to the checksum size 42." in val - for val in set([el["msg"] for el in exc.value.errors()]) - ] + "contentSize 100 is not equal to the checksum size 42." in val + for val in set(el["msg"] for el in exc.value.errors()) ) digest = f"{32 * 'a'}-1--100" digest_model = {models.DigestType.dandi_zarr_checksum: digest} @@ -263,10 +257,8 @@ def test_asset_digest() -> None: path="/", ) assert any( - [ - "Digest cannot have both etag and zarr checksums." in val - for val in set([el["msg"] for el in exc.value.errors()]) - ] + "Digest cannot have both etag and zarr checksums." in val + for val in set(el["msg"] for el in exc.value.errors()) ) with pytest.raises(pydantic.ValidationError) as exc: models.PublishedAsset( # type: ignore[call-arg] @@ -276,10 +268,8 @@ def test_asset_digest() -> None: path="/", ) assert any( - [ - "Digest cannot have both etag and zarr checksums." in val - for val in set([el["msg"] for el in exc.value.errors()]) - ] + "Digest cannot have both etag and zarr checksums." in val + for val in set(el["msg"] for el in exc.value.errors()) ) digest_model = {} with pytest.raises(pydantic.ValidationError) as exc: @@ -290,10 +280,8 @@ def test_asset_digest() -> None: path="/", ) assert any( - [ - "A zarr asset must have a zarr checksum." in val - for val in set([el["msg"] for el in exc.value.errors()]) - ] + "A zarr asset must have a zarr checksum." in val + for val in set(el["msg"] for el in exc.value.errors()) ) with pytest.raises(pydantic.ValidationError) as exc: models.PublishedAsset( # type: ignore[call-arg] @@ -303,10 +291,8 @@ def test_asset_digest() -> None: path="/", ) assert any( - [ - "A zarr asset must have a zarr checksum." in val - for val in set([el["msg"] for el in exc.value.errors()]) - ] + "A zarr asset must have a zarr checksum." in val + for val in set(el["msg"] for el in exc.value.errors()) ) @@ -493,7 +479,7 @@ def test_dandimeta_1(base_dandiset_metadata: dict[str, Any]) -> None: if expected_errors[err_loc].msg is not None: assert err["msg"] == expected_errors[err_loc].msg - assert set([el["loc"][0] for el in exc.value.errors()]) == { + assert set(loc[0] if (loc := el["loc"]) else None for el in exc.value.errors()) == { e for e in [ "assetsSummary", @@ -683,7 +669,7 @@ def test_schemakey_roundtrip() -> None: contributor[0]["name"] = "last, first" klassobj = TempKlass1(contributor=contributor) assert klassobj.contributor is not None and all( - [isinstance(val, Person) for val in klassobj.contributor] + isinstance(val, Person) for val in klassobj.contributor )