Skip to main content

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 of CogniacConnection(...)
  • Attribute updates: await subject.set(name="new") instead of subject.name = "new" (batches multiple fields in one API call)
  • Pagination: async for with generators (detections, media_associations, usage, etc.)
  • Cleanup: supports async with context manager for automatic session cleanup

CLI Tools

cogniac

Agent-friendly CLI with JSON output (default) or --format table.

cogniac auth                            # check credentials (add --tenant <id> to verify a session)
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

cogniac-3.0.4.tar.gz (69.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cogniac-3.0.4-py3-none-any.whl (80.5 kB view details)

Uploaded Python 3

File details

Details for the file cogniac-3.0.4.tar.gz.

File metadata

  • Download URL: cogniac-3.0.4.tar.gz
  • Upload date:
  • Size: 69.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for cogniac-3.0.4.tar.gz
Algorithm Hash digest
SHA256 c8de15b48379fb02642b3dfc98621c48274efcf57722b4b2d787f5363d5b4364
MD5 ee062e77658c27fd5c54ae3b52c8ed92
BLAKE2b-256 3e8eb2e6aca6e5cbc56174f568064a6b6ed2a1231a1256f591d7dd18c03cab20

See more details on using hashes here.

File details

Details for the file cogniac-3.0.4-py3-none-any.whl.

File metadata

  • Download URL: cogniac-3.0.4-py3-none-any.whl
  • Upload date:
  • Size: 80.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for cogniac-3.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 59d3ad0fb60461affe8bb7ea96b31e86b7907d3f9d3e6aa30ff6cfd13aaf6db8
MD5 997f0769c7375f965b6a06f0f9ac2594
BLAKE2b-256 73e992dcb7154c191184c2b49108a35e738d92aef2a282a4ba7ae1b1ff5d344a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page