Cannabis Data Exchange Standard (CDES) Python SDK
Project description
CDES Python SDK
Official Python SDK for the Cannabis Data Exchange Standard (CDES).
Installation
pip install cdes
Quick Start
Validate Cannabis Data
from cdes import validate_strain, validate_terpene_profile
# Validate a strain record
result = validate_strain({
"id": "blue-dream",
"name": "Blue Dream",
"type": "hybrid"
})
if result.valid:
print(" Strain data is valid!")
else:
for error in result.errors:
print(f" {error.path}: {error.message}")
Access Reference Data
from cdes import get_terpene_library, get_terpene_by_id
# Get the complete terpene library
library = get_terpene_library()
print(f"Library version: {library.version}")
print(f"Total terpenes: {len(library.terpenes)}")
# Look up a specific terpene
myrcene = get_terpene_by_id("terp-myrcene")
print(f"{myrcene.name}: CAS {myrcene.casNumber}")
print(f"Aromas: {', '.join(myrcene.aroma)}")
Features
- Schema Validation - Validate strains, COAs, terpene profiles, and cannabinoid profiles
- Reference Data - Access the official CDES terpene library with CAS numbers and effects
- Type Safety - Full type hints and dataclass models
- Zero Dependencies - Pure Python, no external packages required
API Reference
Validators
| Function | Description |
|---|---|
validate_strain(data) |
Validate a strain record |
validate_coa(data) |
Validate a Certificate of Analysis |
validate_terpene_profile(data) |
Validate a terpene profile |
validate_cannabinoid_profile(data) |
Validate a cannabinoid profile |
Reference Data
| Function | Description |
|---|---|
get_terpene_library() |
Get the complete terpene library |
get_terpene_by_id(id) |
Look up a terpene by CDES ID |
Models
| Class | Description |
|---|---|
ValidationResult |
Result of a validation operation |
ValidationError |
A single validation error |
Terpene |
A cannabis terpene |
TerpeneLibrary |
The complete terpene reference |
Development
# Clone the repository
git clone https://github.com/Acidni-LLC/cdes-sdk-python.git
cd cdes-sdk-python
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Format code
black cdes tests
Related Projects
- cdes-spec - JSON Schema specifications
- cdes-reference-data - Reference datasets
- cdes-website - Documentation website
License
MIT License - see LICENSE for details.
Maintained By
Acidni LLC - Cannabis Data Analytics & AI Solutions
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cdes-1.2.2.tar.gz
(16.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
cdes-1.2.2-py3-none-any.whl
(18.7 kB
view details)
File details
Details for the file cdes-1.2.2.tar.gz.
File metadata
- Download URL: cdes-1.2.2.tar.gz
- Upload date:
- Size: 16.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7487ec3a63e555adb6f2bf3554a8d49144eccb03934a94bd9585cd91885f8af
|
|
| MD5 |
a9efe2ea926a8a25c59f5b0daa25f0b2
|
|
| BLAKE2b-256 |
8760f18ba9dc16268b781e77261f4511eae3e33bde0c5104e03089802f1171d3
|
File details
Details for the file cdes-1.2.2-py3-none-any.whl.
File metadata
- Download URL: cdes-1.2.2-py3-none-any.whl
- Upload date:
- Size: 18.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f48456e18613852dc04a17cc4f1763fa03d545309afd0c7cf2a57a34af822c2f
|
|
| MD5 |
e4a072188a5d9ce47078a824495af3e9
|
|
| BLAKE2b-256 |
afd6251811884df23a83cd37e096c02a104de6de70d0bd1a7b369c63413bd792
|