Skip to main content

DataNova Python SDK (datanova-sdk)

The official Python client library for the DataNova Smart Analytics Platform REST API. Supports both synchronous (requests) and asynchronous (httpx) execution modes with automatic retries, context manager resource cleanup, and safe error handling.


🚀 Quick Installation

# Standard local installation:
pip install ./datanova-sdk

# Install with Async support (httpx):
pip install ./datanova-sdk[async]

# Install in editable mode for local SDK development:
pip install -e ./datanova-sdk[dev]

⚡ Quickstart Example (Synchronous)

import logging
from datanova_sdk import DataNovaClient, DataNovaAPIError

# Optional: Enable logging for SDK debugging
logging.basicConfig(level=logging.INFO)

# Use context manager for automatic session cleanup & resource management
with DataNovaClient(
    api_key="dn_live_your_secret_key_here",
    base_url="https://datanova-fude.onrender.com",
    max_retries=3
) as client:
    try:
        # 1. System Health Check
        health = client.health()
        print("System Status:", health.get("status"))

        # 2. Upload Dataset with MIME Type auto-detection
        upload_res = client.upload_dataset("sample_data.csv")
        dataset_id = upload_res.get("dataset_id")
        
        if dataset_id:
            print("Uploaded Dataset ID:", dataset_id)

            # 3. Run Automated Exploratory Data Analysis (EDA)
            eda_results = client.run_eda(dataset_id=dataset_id)
            print("EDA Summary:", eda_results)

            # 4. Train Classification ML Model
            ml_results = client.train_classification(dataset_id=dataset_id, target_column="Purchased")
            print("ML Model Accuracy:", ml_results.get("accuracy"))
        else:
            print("Upload completed without dataset_id key:", upload_res)

    except DataNovaAPIError as err:
        print(f"API Error ({err.status_code}): {err}")

⚡ Async Quickstart Example (FastAPI / Asyncio)

import asyncio
from datanova_sdk import AsyncDataNovaClient

async def main():
    async with AsyncDataNovaClient(
        api_key="dn_live_your_secret_key_here",
        base_url="https://datanova-fude.onrender.com"
    ) as client:
        health = await client.health()
        print("Async Status:", health.get("status"))

        datasets = await client.list_datasets()
        print("Datasets:", datasets)

if __name__ == "__main__":
    asyncio.run(main())

🛡️ Production Features

  • API Key Validation: Ensures client initialization requires a valid non-empty API key.
  • Safe JSON & Response Parsing: Soft fallback for non-JSON or HTML error responses (raw_response).
  • MIME Type Auto-Detection: Guesses content types dynamically (.csv, .xlsx, .xls, etc.) using mimetypes.
  • Automatic Retry Mechanism: Built-in exponential backoff retries for status codes 429, 502, 503, and 504.
  • Session Resource Management: Implements close() and Python context manager protocol (__enter__ / __exit__).
  • Dynamic Version User-Agent: Headers include DataNova-Python-SDK/1.0.0 or DataNova-Python-SDK-Async/1.0.0.
  • Integrated Logging: Debug logs and trace logging via standard Python logging.getLogger("datanova").

🛠️ Supported REST API Endpoints (All 17 APIs)

Category Method / Function REST Endpoint
System client.health() GET /api/v1/health
Datasets client.list_datasets() GET /api/v1/datasets
Datasets client.upload_dataset(file_path) POST /api/v1/datasets/upload
Datasets client.preview_dataset(id) GET /api/v1/datasets/{id}/preview
Analytics client.run_eda(id, target_column) POST /api/v1/analysis/eda
Analytics client.clean_dataset(id, strategies) POST /api/v1/analysis/clean
Analytics client.generate_visualizations(id) POST /api/v1/analysis/visualizations
Analytics client.run_auto_analysis(id) POST /api/v1/analysis/auto
Analytics client.get_analysis_report(id) GET /api/v1/analysis/{id}/report
Analytics client.get_analysis_code(id) GET /api/v1/analysis/{id}/code
AI Q&A client.ask_question(query, id) POST /api/v1/ask
Machine Learning client.train_regression(id, target) POST /api/v1/ml/regression
Machine Learning client.train_classification(id, target) POST /api/v1/ml/classification
Pipelines client.execute_pipeline(id, steps) POST /api/v1/pipeline/execute
Pipelines client.get_pipeline_status(task_id) GET /api/v1/pipeline/status/{task_id}
Developer Keys client.generate_api_key(name) POST /api/developer/api_key/generate
Developer Keys client.revoke_api_key(key_id) POST /api/developer/api_key/revoke

Metadata

Release files for datanova-sdk 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for datanova-sdk 1.0.1
File Size Uploaded
datanova_sdk-1.0.1.tar.gz 11.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for datanova-sdk 1.0.1
File Interpreter ABI Platform
datanova_sdk-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 21.0 kB

Release files / datanova_sdk-1.0.1.tar.gz

Download URL datanova_sdk-1.0.1.tar.gz
Size 11.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4c3b7a14996e4491c58b401392044abafb341c889ef7d6aee8aec23b7dbe49fd
BLAKE2b-256 checksum
How to use checksums
43d7b1d21fdf11b126e2a170c081f479f13c7e1e48d9bf33485a2a558b2c049d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / datanova_sdk-1.0.1-py3-none-any.whl

Download URL datanova_sdk-1.0.1-py3-none-any.whl
Size 9.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
577c5c914fcf224adfce07aaa587bf15317b29450a9a7db711c406fbebba1387
BLAKE2b-256 checksum
How to use checksums
c8651e2d0d5b0ccc0878f5be100c98ea5c983ff2036be8fb3ad31df092fb828d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

1.1.1

2 release files

1.1.0

2 release files

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page