CAMSAI Standards
The CAMSAI Standards repository defines and maintains a set of consistent schemas, validation tools, and data standards for materials science data and AI-driven research workflows. These standards ensure the interoperability, reproducibility, and scalability of materials-related datasets and applications across the CAMSAI ecosystem.
Purpose
This repository provides:
- Data Models: Pydantic-based schemas for defining and validating data structures.
- Validation Utilities: Tools to ensure data compliance with established standards.
- Interoperability Support: Standards that facilitate seamless collaboration between different systems, tools, and workflows.
Key Features
-
Schema Definitions
- Comprehensive data models for common materials science objects.
- Designed for compatibility with CAMSAI workflows and third-party applications.
-
Validation Tools
- Python utilities to validate data against the defined standards.
- Example workflows for integrating validation into your projects.
-
Interoperability
- Supports data exchange and integration across various CAMSAI and external platforms.
Repository Structure
src/py/camsai/standards
Contains Python files defining the Pydantic schemas for various data models by source/provider (e.g., Mat3ra.com).
Installation
Using pip:
You can install the repository using pip (requires Python 3.8+):
pip install camsai-standards
or from GitHub:
pip install git+https://github.com/camsai/standards.git
In JupyterLite:
Install the package in a Pyodide-based JupyterLite environment:
await micropip.install("camsai-standards")
Usage
Example: Validating a Material Schema
from camsai.standards.mat3ra import Mat3raMaterialSchema
from camsai.standards import is_valid
# Example material data
material_data = {...}
# Validate data
if is_valid(Mat3raMaterialSchema, material_data):
print("Valid material data")
else:
print("Invalid material data")
Example: Using Predefined Examples
from mat3ra.esse.data.examples import EXAMPLES
example_material = next((e for e in EXAMPLES if e["path"] == "material"), None)["data"]
print(example_material)
Contributing
We welcome contributions! To contribute:
- Fork the repository.
- Create a branch for your changes:
git checkout -b feature/new-schema
- Commit your changes and open a pull request.
Please ensure all contributions are consistent with existing standards and include tests where applicable.
License
This repository is licensed under the Apache License 2.0. See the LICENSE file for details.
Contact
For questions or feedback, contact us at:
Release files for camsai-standards 2024.12.13.post1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| camsai_standards-2024.12.13.post1.tar.gz | 10.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| camsai_standards-2024.12.13.post1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.5 kB
Release files / camsai_standards-2024.12.13.post1.tar.gz
| Download URL | camsai_standards-2024.12.13.post1.tar.gz |
|---|---|
| Size | 10.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e618f86e70c4f79834184d13d4c63998761fb228ee466e330af90e9016f1b8af
|
|
BLAKE2b-256 checksum How to use checksums |
a2d1c8ad17a1f932068165af7ca6ef5f3b2861fcc29f50c0246ba2b66fe301f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/8.5.0 pkginfo/1.12.0 requests/2.32.3 requests-toolbelt/1.0.0 tqdm/4.67.1 CPython/3.10.12
|
Release files / camsai_standards-2024.12.13.post1-py3-none-any.whl
| Download URL | camsai_standards-2024.12.13.post1-py3-none-any.whl |
|---|---|
| Size | 8.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9719d90180e1b5c5d60fef5c0fcfd4fe852c82623df4b2ca271f26f27115e24b
|
|
BLAKE2b-256 checksum How to use checksums |
12f31c9cb0b9b40a0dec80bdffb7692da855e40dba6fb184000f36431464d40d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/8.5.0 pkginfo/1.12.0 requests/2.32.3 requests-toolbelt/1.0.0 tqdm/4.67.1 CPython/3.10.12
|