aind-metadata-manager 0.0.1__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.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 Allen Institute for Neural Dynamics
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,102 @@
1
+ Metadata-Version: 2.4
2
+ Name: aind-metadata-manager
3
+ Version: 0.0.1
4
+ Summary: Generated from aind-library-template
5
+ Author: Allen Institute for Neural Dynamics
6
+ License: MIT
7
+ Classifier: Programming Language :: Python :: 3
8
+ Requires-Python: >=3.10
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+ Requires-Dist: aind-data-schema==1.2.0
12
+ Requires-Dist: aind-data-schema-models==0.7.5
13
+ Requires-Dist: aind-metadata-upgrader==0.0.26
14
+ Requires-Dist: pydantic<2.9,>=2.7
15
+ Requires-Dist: pydantic-settings
16
+ Requires-Dist: tzlocal
17
+ Provides-Extra: dev
18
+ Requires-Dist: black; extra == "dev"
19
+ Requires-Dist: coverage; extra == "dev"
20
+ Requires-Dist: flake8; extra == "dev"
21
+ Requires-Dist: interrogate; extra == "dev"
22
+ Requires-Dist: isort; extra == "dev"
23
+ Requires-Dist: Sphinx; extra == "dev"
24
+ Requires-Dist: furo; extra == "dev"
25
+ Dynamic: license-file
26
+
27
+
28
+ # AIND Metadata Manager
29
+
30
+ AIND Metadata Manager is a Python package for managing, upgrading, and validating metadata files used in the Allen Institute for Neural Dynamics (AIND) data pipelines. It provides tools to upgrade metadata schemas, process and validate metadata, and support reproducible data workflows.
31
+
32
+ ## Features
33
+ - Upgrade metadata files to the latest schema versions
34
+ - Validate and process metadata for AIND data pipelines
35
+ - Utilities for handling data descriptions, procedures, and processing metadata
36
+ - Command-line and programmatic interfaces
37
+
38
+ ## Installation
39
+
40
+ 1. Clone the repository:
41
+ ```sh
42
+ git clone https://github.com/AllenNeuralDynamics/aind-metadata-manager.git
43
+ cd aind-metadata-manager
44
+ ```
45
+ 2. Create and activate a virtual environment (recommended):
46
+ ```sh
47
+ python -m venv venv
48
+ venv\Scripts\activate # On Windows
49
+ # or
50
+ source venv/bin/activate # On macOS/Linux
51
+ ```
52
+ 3. Install dependencies:
53
+ ```sh
54
+ pip install -e .
55
+ pip install aind-data-schema aind-metadata-upgrader
56
+ ```
57
+
58
+ ## Usage
59
+
60
+ ### As a Python package
61
+ ```python
62
+ from aind_metadata_manager.metadata_manager import MetadataManager, MetadataSettings
63
+ settings = MetadataSettings(input_dir='path/to/input', output_dir='path/to/output')
64
+ manager = MetadataManager(settings)
65
+ manager.create_processing_metadata()
66
+ ```
67
+
68
+ ### Command Line Interface
69
+ A CLI may be available (see `src/aind_metadata_manager/metadata_manager.py` for details):
70
+ ```sh
71
+ python -m aind_metadata_manager.metadata_manager --help
72
+ ```
73
+
74
+ ## Development & Testing
75
+ - Tests are located in the `tests/` directory.
76
+ - To run tests:
77
+ ```sh
78
+ venv\Scripts\python -m unittest discover -s tests -p "test_*.py" -v
79
+ ```
80
+
81
+ ## Project Structure
82
+ - `src/aind_metadata_manager/` — Main package code
83
+ - `tests/` — Unit tests and test resources
84
+ - `docs/` — Documentation
85
+
86
+ ## Requirements
87
+ - Python 3.10+
88
+ - aind-data-schema
89
+ - aind-metadata-upgrader
90
+ - pydantic, pydantic-settings
91
+
92
+ ## License
93
+ This project is licensed under the terms of the MIT license. See the `LICENSE` file for details.
94
+
95
+ ## Citation
96
+ If you use this package, please cite as described in `CITATION.cff`.
97
+
98
+ ## Contributing
99
+ See `CONTRIBUTING.md` for guidelines.
100
+
101
+ ## Contact
102
+ For questions or support, please open an issue on GitHub or contact the Allen Institute for Neural Dynamics.
@@ -0,0 +1,76 @@
1
+
2
+ # AIND Metadata Manager
3
+
4
+ AIND Metadata Manager is a Python package for managing, upgrading, and validating metadata files used in the Allen Institute for Neural Dynamics (AIND) data pipelines. It provides tools to upgrade metadata schemas, process and validate metadata, and support reproducible data workflows.
5
+
6
+ ## Features
7
+ - Upgrade metadata files to the latest schema versions
8
+ - Validate and process metadata for AIND data pipelines
9
+ - Utilities for handling data descriptions, procedures, and processing metadata
10
+ - Command-line and programmatic interfaces
11
+
12
+ ## Installation
13
+
14
+ 1. Clone the repository:
15
+ ```sh
16
+ git clone https://github.com/AllenNeuralDynamics/aind-metadata-manager.git
17
+ cd aind-metadata-manager
18
+ ```
19
+ 2. Create and activate a virtual environment (recommended):
20
+ ```sh
21
+ python -m venv venv
22
+ venv\Scripts\activate # On Windows
23
+ # or
24
+ source venv/bin/activate # On macOS/Linux
25
+ ```
26
+ 3. Install dependencies:
27
+ ```sh
28
+ pip install -e .
29
+ pip install aind-data-schema aind-metadata-upgrader
30
+ ```
31
+
32
+ ## Usage
33
+
34
+ ### As a Python package
35
+ ```python
36
+ from aind_metadata_manager.metadata_manager import MetadataManager, MetadataSettings
37
+ settings = MetadataSettings(input_dir='path/to/input', output_dir='path/to/output')
38
+ manager = MetadataManager(settings)
39
+ manager.create_processing_metadata()
40
+ ```
41
+
42
+ ### Command Line Interface
43
+ A CLI may be available (see `src/aind_metadata_manager/metadata_manager.py` for details):
44
+ ```sh
45
+ python -m aind_metadata_manager.metadata_manager --help
46
+ ```
47
+
48
+ ## Development & Testing
49
+ - Tests are located in the `tests/` directory.
50
+ - To run tests:
51
+ ```sh
52
+ venv\Scripts\python -m unittest discover -s tests -p "test_*.py" -v
53
+ ```
54
+
55
+ ## Project Structure
56
+ - `src/aind_metadata_manager/` — Main package code
57
+ - `tests/` — Unit tests and test resources
58
+ - `docs/` — Documentation
59
+
60
+ ## Requirements
61
+ - Python 3.10+
62
+ - aind-data-schema
63
+ - aind-metadata-upgrader
64
+ - pydantic, pydantic-settings
65
+
66
+ ## License
67
+ This project is licensed under the terms of the MIT license. See the `LICENSE` file for details.
68
+
69
+ ## Citation
70
+ If you use this package, please cite as described in `CITATION.cff`.
71
+
72
+ ## Contributing
73
+ See `CONTRIBUTING.md` for guidelines.
74
+
75
+ ## Contact
76
+ For questions or support, please open an issue on GitHub or contact the Allen Institute for Neural Dynamics.
@@ -0,0 +1,87 @@
1
+ [build-system]
2
+ requires = ["setuptools"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "aind-metadata-manager"
7
+ description = "Generated from aind-library-template"
8
+ license = {text = "MIT"}
9
+ requires-python = ">=3.10"
10
+ authors = [
11
+ {name = "Allen Institute for Neural Dynamics"}
12
+ ]
13
+ classifiers = [
14
+ "Programming Language :: Python :: 3"
15
+ ]
16
+ readme = "README.md"
17
+ dynamic = ["version"]
18
+
19
+ dependencies = [
20
+ 'aind-data-schema==1.2.0',
21
+ 'aind-data-schema-models==0.7.5',
22
+ 'aind-metadata-upgrader==0.0.26',
23
+ 'pydantic>=2.7,<2.9',
24
+ 'pydantic-settings',
25
+ 'tzlocal'
26
+ ]
27
+
28
+ [project.optional-dependencies]
29
+ dev = [
30
+ 'black',
31
+ 'coverage',
32
+ 'flake8',
33
+ 'interrogate',
34
+ 'isort',
35
+ 'Sphinx',
36
+ 'furo'
37
+ ]
38
+
39
+ [tool.setuptools.packages.find]
40
+ where = ["src"]
41
+
42
+ [tool.setuptools.dynamic]
43
+ version = {attr = "aind_metadata_manager.__version__"}
44
+
45
+ [tool.black]
46
+ line-length = 79
47
+ target_version = ['py310']
48
+ exclude = '''
49
+
50
+ (
51
+ /(
52
+ \.eggs # exclude a few common directories in the
53
+ | \.git # root of the project
54
+ | \.hg
55
+ | \.mypy_cache
56
+ | \.tox
57
+ | \.venv
58
+ | _build
59
+ | build
60
+ | dist
61
+ | .conda
62
+ )/
63
+ | .gitignore
64
+ )
65
+ '''
66
+
67
+ [tool.coverage.run]
68
+ omit = ["*__init__*"]
69
+ source = ["aind_metadata_manager", "tests"]
70
+
71
+ [tool.coverage.report]
72
+ exclude_lines = [
73
+ "if __name__ == .__main__.:",
74
+ "^from .* import .*",
75
+ "^import .*",
76
+ "pragma: no cover"
77
+ ]
78
+ fail_under = 90
79
+
80
+ [tool.isort]
81
+ line_length = 79
82
+ profile = "black"
83
+ skip = [".conda"]
84
+
85
+ [tool.interrogate]
86
+ exclude = ["setup.py", "docs", "build", ".conda"]
87
+ fail-under = 100
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,4 @@
1
+ from setuptools import setup
2
+
3
+ if __name__ == "__main__":
4
+ setup()
@@ -0,0 +1,3 @@
1
+ """Init package"""
2
+
3
+ __version__ = "0.0.1"