aind-data-schema 2.8.0__tar.gz → 2.9.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. aind_data_schema-2.9.0/.github/workflows/documentation-links.yml +23 -0
  2. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/.gitignore +9 -0
  3. aind_data_schema-2.9.0/.readthedocs.yaml +26 -0
  4. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/CONTRIBUTING.md +9 -0
  5. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/PKG-INFO +3 -5
  6. aind_data_schema-2.9.0/diagram-app/index.html +16 -0
  7. aind_data_schema-2.9.0/diagram-app/package-lock.json +2006 -0
  8. aind_data_schema-2.9.0/diagram-app/package.json +26 -0
  9. aind_data_schema-2.9.0/diagram-app/src/App.tsx +256 -0
  10. aind_data_schema-2.9.0/diagram-app/src/edges.tsx +21 -0
  11. aind_data_schema-2.9.0/diagram-app/src/graph.ts +328 -0
  12. aind_data_schema-2.9.0/diagram-app/src/loadSchema.ts +23 -0
  13. aind_data_schema-2.9.0/diagram-app/src/main-viewer.tsx +28 -0
  14. aind_data_schema-2.9.0/diagram-app/src/nodes.tsx +175 -0
  15. aind_data_schema-2.9.0/diagram-app/src/types.ts +31 -0
  16. aind_data_schema-2.9.0/diagram-app/src/useDarkMode.ts +29 -0
  17. aind_data_schema-2.9.0/diagram-app/src/vite-env.d.ts +1 -0
  18. aind_data_schema-2.9.0/diagram-app/tsconfig.json +16 -0
  19. aind_data_schema-2.9.0/diagram-app/vite.config.ts +53 -0
  20. aind_data_schema-2.9.0/docs/source/_static/MetadataIO.drawio.svg +4 -0
  21. aind_data_schema-2.9.0/docs/source/_static/coordinate_system_builder.html +1132 -0
  22. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/acquisition.md +3 -2
  23. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/aind_data_schema_models/modalities.md +1 -0
  24. aind_data_schema-2.9.0/docs/source/aind_data_schema_models/organizations.md +135 -0
  25. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/aind_data_schema_models/registries.md +4 -0
  26. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/components/configs.md +30 -14
  27. aind_data_schema-2.9.0/docs/source/components/coordinates.md +140 -0
  28. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/components/devices.md +19 -13
  29. aind_data_schema-2.9.0/docs/source/components/geometry.md +25 -0
  30. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/components/reagent.md +19 -1
  31. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/components/specimen_procedures.md +3 -2
  32. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/components/subject_procedures.md +20 -2
  33. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/components/surgery_procedures.md +14 -0
  34. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/conf.py +14 -0
  35. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/coordinate_systems.md +19 -0
  36. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/index.rst +9 -0
  37. aind_data_schema-2.9.0/docs/source/inheritance.md +86 -0
  38. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/instrument.md +2 -1
  39. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/procedures.md +2 -1
  40. aind_data_schema-2.9.0/examples/thermistor_procedures.py +71 -0
  41. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/pyproject.toml +4 -7
  42. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/schemas/acquisition_schema.json +420 -25
  43. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/schemas/data_description_schema.json +80 -2
  44. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/schemas/instrument_schema.json +511 -18
  45. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/schemas/metadata_schema.json +1672 -191
  46. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/schemas/procedures_schema.json +1047 -87
  47. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/schemas/processing_schema.json +2 -2
  48. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/schemas/quality_control_schema.json +30 -2
  49. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/schemas/subject_schema.json +64 -2
  50. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/__init__.py +1 -1
  51. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/base.py +41 -5
  52. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/components/configs.py +95 -15
  53. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/components/coordinates.py +141 -12
  54. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/components/devices.py +28 -11
  55. aind_data_schema-2.9.0/src/aind_data_schema/components/geometry.py +21 -0
  56. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/components/reagent.py +11 -1
  57. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/components/specimen_procedures.py +37 -4
  58. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/components/subject_procedures.py +39 -4
  59. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/components/surgery_procedures.py +17 -1
  60. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/core/acquisition.py +34 -6
  61. aind_data_schema-2.9.0/src/aind_data_schema/core/data_description.py +219 -0
  62. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/core/instrument.py +20 -8
  63. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/core/metadata.py +125 -2
  64. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/core/procedures.py +20 -5
  65. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/core/processing.py +1 -1
  66. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/core/quality_control.py +1 -1
  67. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/core/subject.py +1 -1
  68. aind_data_schema-2.9.0/src/aind_data_schema/utils/inheritance.py +372 -0
  69. aind_data_schema-2.9.0/src/aind_data_schema/utils/schema_tree.py +404 -0
  70. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/utils/validators.py +18 -8
  71. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema.egg-info/PKG-INFO +3 -5
  72. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema.egg-info/SOURCES.txt +26 -0
  73. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema.egg-info/requires.txt +1 -4
  74. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_acquisition_configs.py +20 -1
  75. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_base.py +44 -13
  76. aind_data_schema-2.9.0/tests/test_coordinates.py +557 -0
  77. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_data_description.py +5 -0
  78. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_device.py +8 -2
  79. aind_data_schema-2.9.0/tests/test_geometry.py +42 -0
  80. aind_data_schema-2.9.0/tests/test_inheritance.py +441 -0
  81. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_instrument.py +3 -3
  82. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_metadata.py +61 -0
  83. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_procedures.py +14 -14
  84. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_subjects.py +11 -29
  85. aind_data_schema-2.9.0/uv.lock +2320 -0
  86. aind_data_schema-2.8.0/.readthedocs.yaml +0 -18
  87. aind_data_schema-2.8.0/docs/source/aind_data_schema_models/organizations.md +0 -147
  88. aind_data_schema-2.8.0/docs/source/components/coordinates.md +0 -103
  89. aind_data_schema-2.8.0/src/aind_data_schema/core/data_description.py +0 -369
  90. aind_data_schema-2.8.0/tests/test_coordinates.py +0 -276
  91. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/.flake8 +0 -0
  92. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  93. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  94. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/.github/ISSUE_TEMPLATE/user-story.md +0 -0
  95. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/.github/workflows/link-issues-by-milestone.yml +0 -0
  96. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/.github/workflows/publish_dev.yml +0 -0
  97. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/.github/workflows/run_dev_tests.yml +0 -0
  98. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/.github/workflows/run_main_tests.yml +0 -0
  99. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/.github/workflows/tag_and_publish_main.yml +0 -0
  100. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/.github/workflows/update_dev_docs.yml +0 -0
  101. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/.github/workflows/update_docs.yml +0 -0
  102. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/CODE_OF_CONDUCT.md +0 -0
  103. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/LICENSE +0 -0
  104. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/README.md +0 -0
  105. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/Makefile +0 -0
  106. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/base/core/acquisition.md +0 -0
  107. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/base/core/data_description.md +0 -0
  108. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/base/core/instrument.md +0 -0
  109. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/base/core/metadata.md +0 -0
  110. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/base/core/model.md +0 -0
  111. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/base/core/procedures.md +0 -0
  112. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/base/core/processing.md +0 -0
  113. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/base/core/quality_control.md +0 -0
  114. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/base/core/subject.md +0 -0
  115. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/make.bat +0 -0
  116. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/_static/bregma_and_lambda2.png +0 -0
  117. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/_static/coordinates2.png +0 -0
  118. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/_static/coordinates2_original.png +0 -0
  119. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/_static/custom.css +0 -0
  120. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/_static/dark-logo.svg +0 -0
  121. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/_static/favicon.ico +0 -0
  122. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/_static/light-logo.svg +0 -0
  123. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/_static/session_image_1.png +0 -0
  124. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/_static/session_image_2.png +0 -0
  125. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/_static/session_image_3.png +0 -0
  126. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/aind_data_schema_models/atlas.md +0 -0
  127. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/aind_data_schema_models/brain_atlas.md +0 -0
  128. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/aind_data_schema_models/coordinates.md +0 -0
  129. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/aind_data_schema_models/data_name_patterns.md +0 -0
  130. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/aind_data_schema_models/devices.md +0 -0
  131. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/aind_data_schema_models/external.md +0 -0
  132. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/aind_data_schema_models/harp_types.md +0 -0
  133. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/aind_data_schema_models/licenses.md +0 -0
  134. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/aind_data_schema_models/pid_names.md +0 -0
  135. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/aind_data_schema_models/process_names.md +0 -0
  136. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/aind_data_schema_models/reagent.md +0 -0
  137. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/aind_data_schema_models/species.md +0 -0
  138. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/aind_data_schema_models/specimen_procedure_types.md +0 -0
  139. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/aind_data_schema_models/stimulus_modality.md +0 -0
  140. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/aind_data_schema_models/system_architecture.md +0 -0
  141. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/aind_data_schema_models/units.md +0 -0
  142. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/components/connections.md +0 -0
  143. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/components/identifiers.md +0 -0
  144. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/components/injection_procedures.md +0 -0
  145. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/components/measurements.md +0 -0
  146. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/components/stimulus.md +0 -0
  147. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/components/subjects.md +0 -0
  148. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/components.rst +0 -0
  149. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/data_description.md +0 -0
  150. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/example_workflow/example_workflow.md +0 -0
  151. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/example_workflow/example_workflow.py +0 -0
  152. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/example_workflow/example_workflow.xlsx +0 -0
  153. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/general.md +0 -0
  154. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/metadata.md +0 -0
  155. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/model.md +0 -0
  156. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/processing.md +0 -0
  157. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/quality_control.md +0 -0
  158. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/registries.rst +0 -0
  159. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/related_standards.md +0 -0
  160. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/subject.md +0 -0
  161. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/docs/source/validation.md +0 -0
  162. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/__init__.py +0 -0
  163. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/aibs_smartspim_instrument.py +0 -0
  164. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/aibs_smartspim_procedures.py +0 -0
  165. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/aind_smartspim_instrument.py +0 -0
  166. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/barseq_acquisition.py +0 -0
  167. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/barseq_instrument.py +0 -0
  168. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/bergamo_ophys_acquisition.py +0 -0
  169. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/data_description.py +0 -0
  170. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/ephys_acquisition.py +0 -0
  171. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/ephys_instrument.py +0 -0
  172. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/exaspim_acquisition.py +0 -0
  173. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/exaspim_instrument.py +0 -0
  174. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/exaspim_quality_control.py +0 -0
  175. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/fip_behavior_instrument.py +0 -0
  176. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/fip_ophys_acquisition.py +0 -0
  177. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/fip_ophys_instrument.py +0 -0
  178. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/isi_instrument.py +0 -0
  179. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/model.py +0 -0
  180. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/mri_acquisition.py +0 -0
  181. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/multiplane_ophys_acquisition.py +0 -0
  182. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/multiplane_ophys_instrument.py +0 -0
  183. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/ophys_acquisition.py +0 -0
  184. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/ophys_procedures.py +0 -0
  185. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/procedures.py +0 -0
  186. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/processing.py +0 -0
  187. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/quality_control.py +0 -0
  188. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/slap2_acquisition.py +0 -0
  189. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/slap2_instrument.py +0 -0
  190. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/slap2_structure_acquisition.py +0 -0
  191. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/examples/subject.py +0 -0
  192. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/schemas/model_schema.json +0 -0
  193. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/setup.cfg +0 -0
  194. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/setup.py +0 -0
  195. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/components/__init__.py +0 -0
  196. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/components/connections.py +0 -0
  197. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/components/identifiers.py +0 -0
  198. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/components/injection_procedures.py +0 -0
  199. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/components/measurements.py +0 -0
  200. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/components/stimulus.py +0 -0
  201. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/components/subjects.py +0 -0
  202. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/components/wrappers.py +0 -0
  203. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/core/__init__.py +0 -0
  204. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/core/model.py +0 -0
  205. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/utils/__init__.py +0 -0
  206. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/utils/compatibility_check.py +0 -0
  207. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/utils/docs/doc_generator.py +0 -0
  208. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/utils/docs/model_generator.py +0 -0
  209. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/utils/docs/registries_generator.py +0 -0
  210. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/utils/docs/utils.py +0 -0
  211. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/utils/examples_generator.py +0 -0
  212. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/utils/exceptions.py +0 -0
  213. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/utils/json_writer.py +0 -0
  214. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/utils/merge.py +0 -0
  215. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema/utils/schema_version_bump.py +0 -0
  216. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema.egg-info/dependency_links.txt +0 -0
  217. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/src/aind_data_schema.egg-info/top_level.txt +0 -0
  218. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/__init__.py +0 -0
  219. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_acquisition.py +0 -0
  220. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_aind_generic.py +0 -0
  221. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_bump_schema_versions.py +0 -0
  222. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_compatibility_check.py +0 -0
  223. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_composability_merge.py +0 -0
  224. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_configs.py +0 -0
  225. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_examples.py +0 -0
  226. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_identifiers.py +0 -0
  227. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_imaging.py +0 -0
  228. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_inst_acq_compatibility.py +0 -0
  229. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_json_writer.py +0 -0
  230. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_measurements.py +0 -0
  231. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_model.py +0 -0
  232. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_processing.py +0 -0
  233. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_quality_control.py +0 -0
  234. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_stimulus.py +0 -0
  235. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_subject.py +0 -0
  236. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_utils_merge.py +0 -0
  237. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_utils_validators.py +0 -0
  238. {aind_data_schema-2.8.0 → aind_data_schema-2.9.0}/tests/test_wrappers.py +0 -0
@@ -0,0 +1,23 @@
1
+ # .github/workflows/documentation-links.yml
2
+
3
+ name: readthedocs/actions
4
+ on:
5
+ pull_request_target:
6
+ types:
7
+ - opened
8
+ # Execute this action only on PRs that touch
9
+ # documentation files
10
+ paths:
11
+ - "docs/**"
12
+
13
+ permissions:
14
+ pull-requests: write
15
+
16
+ jobs:
17
+ documentation-links:
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: readthedocs/actions/preview@v1
21
+ with:
22
+ # this is the slug from the non-redirected URL (scicomp-docs.readthedocs.io)
23
+ project-slug: "aind-data-schema"
@@ -144,6 +144,15 @@ notebook/
144
144
  ephys_instrument.json
145
145
  examples/*.json
146
146
  *.json
147
+ !diagram-app/package.json
148
+ !diagram-app/package-lock.json
149
+ !diagram-app/tsconfig.json
150
+
151
+ # diagram-app (React Flow schema diagram embedded in the docs front page)
152
+ diagram-app/node_modules/
153
+ docs/source/_static/schema-diagram/
147
154
  docs/base/models/*
148
155
  .github/copilot-instructions.md
149
156
  uv.lock
157
+ schema_tree.md
158
+ schema_tree.tex
@@ -0,0 +1,26 @@
1
+ version: 2
2
+
3
+ build:
4
+ os: ubuntu-22.04
5
+ tools:
6
+ python: "3.13"
7
+ nodejs: "20"
8
+ jobs:
9
+ # Build the interactive React Flow schema diagram bundle into
10
+ # docs/source/_static/ before Sphinx runs (the bundle is git-ignored and
11
+ # regenerated here; the JSON it fetches is generated by conf.py).
12
+ pre_build:
13
+ - npm --prefix diagram-app ci
14
+ - npm --prefix diagram-app run build
15
+
16
+ python:
17
+ install:
18
+ - method: pip
19
+ path: .
20
+ extra_requirements:
21
+ - dev
22
+ - docs
23
+
24
+ sphinx:
25
+ # Path to your Sphinx configuration file.
26
+ configuration: docs/source/conf.py
@@ -51,12 +51,21 @@ python src/aind_data_schema/utils/docs/registries_generator.py
51
51
  python src/aind_data_schema/utils/docs/doc_generator.py
52
52
  ```
53
53
 
54
+ The front page embeds an interactive React Flow diagram of the `Metadata` schema (`diagram-app/`). Build its JS/CSS bundle once before building the docs (it's git-ignored and only needs rebuilding when `diagram-app/` changes):
55
+
56
+ ```bash
57
+ npm --prefix diagram-app ci
58
+ npm --prefix diagram-app run build
59
+ ```
60
+
54
61
  Then to create the documentation html files, run:
55
62
 
56
63
  ```bash
57
64
  sphinx-build -b html docs/source/ docs/build/html
58
65
  ```
59
66
 
67
+ This also (re)generates `docs/source/_static/schema-diagram/schema_diagram.json`, the data the diagram reads at runtime, from the current schema classes.
68
+
60
69
  More info on sphinx installation can be found here: https://www.sphinx-doc.org/en/master/usage/installation.html
61
70
 
62
71
  ### Testing
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aind-data-schema
3
- Version: 2.8.0
3
+ Version: 2.9.0
4
4
  Summary: A library that defines AIND data schema and validates JSON files.
5
5
  License: MIT
6
6
  Classifier: Programming Language :: Python :: 3
7
- Requires-Python: >=3.10
7
+ Requires-Python: <3.14,>=3.10
8
8
  Description-Content-Type: text/markdown
9
9
  License-File: LICENSE
10
- Requires-Dist: aind-data-schema-models<6,>=5.7.1
10
+ Requires-Dist: aind-data-schema-models<7,>=6.1.0
11
11
  Requires-Dist: pydantic<2.12,>=2.7
12
12
  Requires-Dist: pydantic-extra-types
13
13
  Requires-Dist: tzdata
@@ -35,8 +35,6 @@ Requires-Dist: myst-parser; extra == "docs"
35
35
  Requires-Dist: openpyxl; extra == "docs"
36
36
  Provides-Extra: transforms
37
37
  Requires-Dist: scipy; extra == "transforms"
38
- Provides-Extra: viz
39
- Requires-Dist: matplotlib; extra == "viz"
40
38
  Dynamic: license-file
41
39
 
42
40
  # aind-data-schema
@@ -0,0 +1,16 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>aind-data-schema diagram (dev)</title>
7
+ <style>
8
+ html, body { margin: 0; height: 100%; font-family: system-ui, sans-serif; }
9
+ </style>
10
+ </head>
11
+ <body>
12
+ <!-- In the docs this div is injected by a raw-HTML block; here it drives the dev server. -->
13
+ <div class="rf-schema-diagram" style="height: 100vh"></div>
14
+ <script type="module" src="/src/main-viewer.tsx"></script>
15
+ </body>
16
+ </html>