Python library for interacting with the entitycore service
Project description
entitysdk
entitysdk is a Python library for interacting with the entitycore service, providing a type-safe and intuitive interface for managing scientific entities, and their associated assets.
Requirements
- Python 3.11 or higher
- Network access to entitycore service endpoints
Installation
pip install entitysdk
Obtaining a valid access token
An access token can be retrieved easily using the obi-auth helper library.
pip install obi-auth
from obi_auth import get_token
token = get_token(environment="staging")
Quick Start
from uuid import UUID
from entitysdk import Client, ProjectContext, models
# Initialize client
client = Client(
project_context=ProjectContext(
project_id=UUID("your-project-id"),
virtual_lab_id=UUID("your-lab-id")
),
environment="staging",
token_manager=token
)
# Search for morphologies
iterator = client.search_entity(
entity_type=models.CellMorphology,
query={"mtype__pref_label": "L5_TPC:A"},
limit=1,
)
morphology = next(iterator)
# Upload an asset
client.upload_file(
entity_id=morphology.id,
entity_type=models.CellMorphology,
file_path="path/to/file.swc",
file_content_type="application/swc",
)
Authentication
- Valid Keycloak access token
- Project context with:
- Valid project ID (UUID)
- Valid virtual lab ID (UUID)
Example configuration:
from uuid import UUID
from entitysdk import ProjectContext
project_context = ProjectContext(
project_id=UUID("12345678-1234-1234-1234-123456789012"),
virtual_lab_id=UUID("87654321-4321-4321-4321-210987654321")
)
Development
Requirements
- tox/tox-uv
Clone and run tests
# Clone the repository
git clone https://github.com/your-org/entitysdk.git
# Run linting, tests, and check-packaging
tox
Auto-generate server schemas
Server schemas at src/entitysdk/_server_schemas.py, which are currently used for importing enum types, can be updated with the following tox command:
tox -e generate-server-schemas
Auto-update json payloads
The json payloads in tests/unit/models/data/extracted can be automatically updated from entitycore by executing:
tox -e update-traces
The command will checkout a clean copy of entitycore, execute tests, extract the traces, and move them to the expected location in entitysdk.
It's possible to set a different ENTITYCORE_BRANCH_OR_TAG and ENTITYCORE_CHECKOUT_DIR if desired.
Contributing
We welcome contributions! Please see our Contributing Guide for details.
License
Copyright (c) 2025 Open Brain Institute
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
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
File details
Details for the file entitysdk-0.15.8.tar.gz.
File metadata
- Download URL: entitysdk-0.15.8.tar.gz
- Upload date:
- Size: 86.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c28a0f78cdb9f31f2638f4bdd50fc0875805dfdb454f46179c57f2444b98af6f
|
|
| MD5 |
4e9a94d5d364b9bba2c04eb811d027c6
|
|
| BLAKE2b-256 |
1169344d48660c5ec04af22b6902ae0b1d3d5bc353c7acbe247abb7e7c16aaaf
|
Provenance
The following attestation bundles were made for entitysdk-0.15.8.tar.gz:
Publisher:
sdist.yml on openbraininstitute/entitysdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
entitysdk-0.15.8.tar.gz -
Subject digest:
c28a0f78cdb9f31f2638f4bdd50fc0875805dfdb454f46179c57f2444b98af6f - Sigstore transparency entry: 1523623933
- Sigstore integration time:
-
Permalink:
openbraininstitute/entitysdk@5b7d3448fecdc541482f365783702005441000d3 -
Branch / Tag:
refs/tags/v0.15.8 - Owner: https://github.com/openbraininstitute
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
sdist.yml@5b7d3448fecdc541482f365783702005441000d3 -
Trigger Event:
release
-
Statement type: