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.1.0

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.1.0
File Size Uploaded
datanova_sdk-1.1.0.tar.gz 6.8 kB Details

Built distribution (wheel)

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

Total release size: 10.2 kB

Release files / datanova_sdk-1.1.0.tar.gz

Download URL datanova_sdk-1.1.0.tar.gz
Size 6.8 kB
Tags Source
SHA-256 checksum
How to use checksums
93e9540fe8a0b982e408d5f43eb9119af0e12dbae7b4c461855973e48efe6474
BLAKE2b-256 checksum
How to use checksums
206ab1ac40312fb219295ab569307a8460fd24a46ab1819c502249f35025ea01
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.1.0-py3-none-any.whl

Download URL datanova_sdk-1.1.0-py3-none-any.whl
Size 3.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9dbe94c5517223a6b8189b900388f71e6834b2f36ea6aff331f4392898dfd2ed
BLAKE2b-256 checksum
How to use checksums
8984d7894eddbb9da193382194debf6c1b94598f7c92c729cea9b0eb3d8357fb
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

This release

1.1.0 This release

2 release files

1.0.1

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