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
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.3.tar.gz (68.9 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.3-py3-none-any.whl (80.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cogniac-3.0.3.tar.gz
  • Upload date:
  • Size: 68.9 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.3.tar.gz
Algorithm Hash digest
SHA256 93f2388bd757d517e9e894f4cec8034c1c223ef96126b4064fc4bdfeb468fcea
MD5 da92e9e5b07ebac0b8b87aa7d276f105
BLAKE2b-256 c36d80237c7976b29f873a1b4bd83b4dcff39c4d5dd5621a122561d0833c8228

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cogniac-3.0.3-py3-none-any.whl
  • Upload date:
  • Size: 80.3 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9e9882a830f37e1e8b5560d91dcca7d4c71648f681715d0e0b323f52590ae034
MD5 ec8a740140f759239eb9c329792dc351
BLAKE2b-256 2ee191ca13f70267522879b0b61b38a0602cff5dc44c594fbb591ce0a6b92d82

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