Skip to main content

Python API client for MiViA (Microstructure Analysis)

Project description

MiViA Python Client

Python API client for MiViA (Microstructure Analysis).

Installation

pip install mivia

Configuration

Set your API key as environment variable:

For linux:

export MIVIA_API_KEY="your-api-key"
export MIVIA_BASE_URL="https://app.mivia.ai/api"  # optional, default

For Windows (Powershell):

$env:MIVIA_API_KEY = 'your-api-key'
$env:MIVIA_BASE_URL = 'https://app.mivia.ai/api'  # optional, default

Usage

Async Client

import asyncio
from mivia import MiviaClient

async def main():
    async with MiviaClient() as client:
        # List models
        models = await client.list_models()
        print(f"Models: {[m.display_name for m in models]}")

        # High-level: analyze images
        jobs = await client.analyze(
            file_paths=["image1.png", "image2.png"],
            model_id=models[0].id,
            wait=True,
        )

        for job in jobs:
            print(f"Job {job.id}: {job.status}")

        # Download report
        await client.download_pdf(
            job_ids=[j.id for j in jobs],
            output_path="report.pdf",
        )

asyncio.run(main())

Sync Client

from mivia import SyncMiviaClient

client = SyncMiviaClient()

# List models
models = client.list_models()

# Get customizations for a model
customizations = client.get_model_customizations(models[0].id)

# Upload and analyze with customization
jobs = client.analyze(
    file_paths=["image.png"],
    model_id=models[0].id,
    customization_id=customizations[0].id if customizations else None,
)

# Download report
client.download_csv(
    job_ids=[j.id for j in jobs],
    output_path="report.zip",
)

CLI

# List models
mivia models

# List customizations for a model
mivia customizations MODEL_UUID

# Upload images
mivia upload image1.png image2.png

# Analyze (upload + run + wait) - supports model name or UUID
mivia analyze image.png --model "Decarburization"
mivia analyze image.png --model MODEL_UUID

# Analyze with customization (by name or UUID)
mivia analyze image.png --model "Test" --customization "Template Name"

# List available customizations for analyze
mivia analyze --model MODEL_UUID --list-customizations

# List jobs
mivia jobs list

# Get job details
mivia jobs get JOB_UUID

# Wait for jobs
mivia jobs wait JOB_UUID1 JOB_UUID2

# Download PDF report
mivia report pdf JOB_UUID -o report.pdf

# Download CSV report
mivia report csv JOB_UUID -o report.zip --no-images

# Show config
mivia config

API Reference

MiviaClient

Method Description
upload_image(path) Upload single image
upload_images(paths) Upload multiple images
list_images() List uploaded images
delete_image(id) Delete image
list_models() List available models
get_model_customizations(id) Get model customizations
create_jobs(image_ids, model_id) Create computation jobs
get_job(id) Get job details with results
list_jobs() List jobs with pagination
wait_for_job(id) Poll until job completes
wait_for_jobs(ids) Wait for multiple jobs
download_pdf(job_ids, path) Download PDF report
download_csv(job_ids, path) Download CSV report
analyze(paths, model_id) High-level: upload + run + wait

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mivia-0.1.1.tar.gz (37.8 kB view details)

Uploaded Source

Built Distribution

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

mivia-0.1.1-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file mivia-0.1.1.tar.gz.

File metadata

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

File hashes

Hashes for mivia-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e3567153d726580808d55cbaec7b31aafe538ddc89d9e1f4e0411481692b5212
MD5 4bc56c5298307cac9d42c95ee1fffc03
BLAKE2b-256 3b4a0fa3bbde64661e6a84b9e9355236c3907cf339326131872b9c74d9b930d0

See more details on using hashes here.

File details

Details for the file mivia-0.1.1-py3-none-any.whl.

File metadata

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

File hashes

Hashes for mivia-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e255c69ae086c0da2ba64f9c434c1862c7f7445f62eff46fe4b1d67cae3dc44c
MD5 394c559dfa9218e9427a302f97624a9c
BLAKE2b-256 8a67fd4c6e097f21207328fd06b3d8b0725f5b9b45b2c388f56e3b59e8b643c8

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