Python SDK for Cogniac Public API
Project description
Cogniac Python SDK
Python SDK for the Cogniac public API. Provides both synchronous and asynchronous (async/await) interfaces.
Requires Python 3.11+
Installation
pip install cogniac
Configuration
Authentication is configured via environment variables or constructor arguments:
| Variable | Description |
|---|---|
COG_USER |
Cogniac username (usually an email address) |
COG_PASS |
Cogniac password |
COG_API_KEY |
API key (alternative to username/password) |
COG_TENANT |
Tenant ID (required if user belongs to multiple tenants) |
COG_URL_PREFIX |
API endpoint (default: https://api.cogniac.io/) |
Synchronous API
import cogniac
cc = cogniac.CogniacConnection()
# Tenants and users
tenant = cc.get_tenant()
print(tenant.name)
# Applications
apps = cc.get_all_applications()
app = cc.get_application(application_id)
# Subjects
subjects = cc.get_all_subjects()
subject = cc.create_subject(name="my-subject", description="example")
subject.description = "updated" # auto-syncs to API
subject.delete()
# Media
media = cc.create_media("image.jpg", meta_tags=["test"])
fetched = cc.get_media(media.media_id)
image_bytes = fetched.download() # returns bytes
with open("out.jpg", "wb") as f: # or write to file
fetched.download(f) # takes open file object, NOT a path string
# Paginated results via generators
for detection in app.detections(limit=100):
print(detection)
Entity Classes
| Class | Description |
|---|---|
CogniacConnection |
Authentication and HTTP session management |
CogniacApplication |
Vision applications (detection, classification, etc.) |
CogniacSubject |
Organizational groupings of media |
CogniacMedia |
Image and video files |
CogniacTenant |
Tenant (organization) management |
CogniacUser |
User accounts and API keys |
CogniacEdgeFlow |
Edge computing devices |
CogniacNetworkCamera |
Network camera configuration |
CogniacExternalResult |
External inspection results |
CogniacOpsReview |
Operations review queue |
Async API
The async interface mirrors the sync API. Use AsyncCogniacConnection.create() as an async factory:
import asyncio
import cogniac
async def main():
async with await cogniac.AsyncCogniacConnection.create() as cc:
# List subjects
subjects = await cogniac.AsyncCogniacSubject.get_all(cc)
for s in subjects:
print(s.name, s.subject_uid)
# Create and update
s = await cogniac.AsyncCogniacSubject.create(cc, name="my-subject")
await s.set(description="updated") # explicit async setter
await s.delete()
# Download media
media = await cogniac.AsyncCogniacMedia.get(cc, media_id)
image_bytes = await media.download() # returns bytes
with open("out.jpg", "wb") as f: # or write to file
await media.download(f) # takes open file object, NOT a path string
# Async generators for paginated endpoints
apps = await cogniac.AsyncCogniacApplication.get_all(cc)
async for detection in apps[0].detections(limit=10):
print(detection)
asyncio.run(main())
Every sync entity class has an async counterpart prefixed with Async (e.g., AsyncCogniacSubject, AsyncCogniacMedia).
Key Differences from Sync API
- Connection:
await AsyncCogniacConnection.create(...)instead ofCogniacConnection(...) - Attribute updates:
await subject.set(name="new")instead ofsubject.name = "new"(batches multiple fields in one API call) - Pagination:
async forwith generators (detections,media_associations,usage, etc.) - Cleanup: supports
async withcontext manager for automatic session cleanup
CLI Tools
cogniac
Agent-friendly CLI with JSON output (default) or --format table.
cogniac auth # check credentials
cogniac tenant # current tenant info
cogniac apps list # list applications
cogniac apps leaderboard <id> # ranked candidate-model snapshot
cogniac apps eval-metrics <id> # active evaluation metrics
cogniac subjects list # list subjects
cogniac subjects search --prefix test # search subjects
cogniac media get <media_id> # get media metadata
cogniac media download <media_id> -o f # download media to file
cogniac edgeflows list # list edge devices
icogniac
Interactive IPython shell with pre-loaded Cogniac connection:
icogniac [optional tenant name or ID]
cogupload
Parallel media upload (24 threads) to a subject:
cogupload <subject_uid> <directory>
cogstats
EdgeFlow statistics aggregation:
cogstats -t TENANT_ID [-g GATEWAY_ID] [-s START] [-e END]
Support
Please email support@cogniac.co with feedback.
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
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
File details
Details for the file cogniac-3.0.1.tar.gz.
File metadata
- Download URL: cogniac-3.0.1.tar.gz
- Upload date:
- Size: 68.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
766d43363c47f091f3129f0c886ddde3d5fbf4e362ecd0677ad06832c4ed1d30
|
|
| MD5 |
f51af18fdc6db29b365f2b9d5aca7e4d
|
|
| BLAKE2b-256 |
679c60e7c27a34cc95043295dd8bd75eb9e5432b998f651b0d4595c2265a7872
|
File details
Details for the file cogniac-3.0.1-py3-none-any.whl.
File metadata
- Download URL: cogniac-3.0.1-py3-none-any.whl
- Upload date:
- Size: 80.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c886c0a8b4e0a981dfb4ff56201f8c80f6c036fceb4ef78191bbfe2998e1870
|
|
| MD5 |
8185c57a6cd13047651fbc0efc3bd900
|
|
| BLAKE2b-256 |
773125978289649b2ef484f17d349904a24a52afb1b7fa18e587fec8aa20b72c
|