Skip to main content

vena-etl-python-interface

Python package for interacting with Vena's ETL APIs.

Installation

pip install vepi

Configuration

Create a configuration file (e.g., config.py) with your Vena API credentials:

HUB = 'eu1'  # e.g., us1, us2, ca3
API_USER = 'your_api_user'
API_KEY = 'your_api_key'
TEMPLATE_ID = 'your_template_id'
DATA_SOURCE = 'your_erp_or_data_source'
MODEL_ID = 'your_model_id'  # Optional, needed for exports

Usage

Basic Setup

from vepi import VenaETL

# Initialize the client
vena_etl = VenaETL(
    hub=HUB,
    api_user=API_USER,
    api_key=API_KEY,
    template_id=TEMPLATE_ID,
    data_source=DATA_SOURCE
    model_id=MODEL_ID,
)

Importing Data

Using DataFrame (start_with_data)

import pandas as pd

# Create a DataFrame with your data
data = {
    'Value': ['1000', '2000'],
    'Account': ['3910', '3910'],
    'Entity': ['V001', 'V001'],
    'Department': ['D10', 'D10'],
    'Year': ['2020', '2020'],
    'Period': ['1', '2'],
    'Scenario': ['Actual', 'Actual'],
    'Currency': ['Local', 'Local'],
    'Measure': ['Value', 'Value']
}
df = pd.DataFrame(data)

# Import the data
vena_etl.start_with_data(df)

Using File (start_with_file)

You can upload data in three ways:

  1. From a CSV file:
# Upload from a CSV file
vena_etl.start_with_file("path/to/your/data.csv")
  1. From a DataFrame:
# Upload from a DataFrame
df = pd.DataFrame(data)
vena_etl.start_with_file(df)
  1. From a file-like object:
# Upload from a file-like object
with open("data.csv", "r") as f:
    vena_etl.start_with_file(f)

Exporting Data

# Export data with custom page size
exported_data = vena_etl.export_data(page_size=10000)
print(f"Exported {len(exported_data)} records")

Getting Dimension Hierarchy

# Get dimension hierarchy
hierarchy = vena_etl.get_dimension_hierarchy()
print("Dimension hierarchy:")
print(hierarchy)

Job Management

Running a Job

The simplest way to run a job is using the run_job method:

# Run a job with a specific template ID
result = vena_etl.run_job(
    template_id=JOB_TEMPLATE_ID,  # Specify the template ID for the job
    poll_interval=5,  # How often to check job status (seconds)
    timeout=3600     # Maximum time to wait (seconds)
)

# Check the result
print(f"Job status: {result.get('status')}")
print(f"Job ID: {result.get('id')}")
print(f"Model: {result.get('modelName')}")

Step-by-Step Job Management

For more control, you can manage jobs step by step:

# Create a new job with a specific template ID
job_id = vena_etl.create_job(template_id=JOB_TEMPLATE_ID)
print(f"Created job with ID: {job_id}")

# Get job status
status = vena_etl.get_job_status(job_id)
print(f"Current status: {status.get('status')}")

# Submit the job
submit_result = vena_etl.submit_job(job_id)
print(f"Submission result: {submit_result}")

# Wait for completion
final_status = vena_etl.wait_for_job_completion(job_id)
print(f"Final status: {final_status.get('status')}")

Canceling a Job

# Cancel a running job
cancel_result = vena_etl.cancel_job(job_id)
print(f"Cancel result: {cancel_result.get('status')}")

Error Handling

The package includes comprehensive error handling for:

  • Invalid credentials
  • Missing required fields
  • API communication errors
  • Data validation errors
  • Job submission errors
  • Job cancellation errors

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Metadata

Release files for vepi 0.1.4

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

Source distribution (sdist)

Source distribution for vepi 0.1.4
File Size Uploaded
vepi-0.1.4.tar.gz 11.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vepi 0.1.4
File Interpreter ABI Platform
vepi-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 21.1 kB

Release files / vepi-0.1.4.tar.gz

Download URL vepi-0.1.4.tar.gz
Size 11.1 kB
Tags Source
SHA-256 checksum
How to use checksums
9a8235eb871780d9f3e7683020eed06be90d9e9c588578a55d4d5418300240f2
BLAKE2b-256 checksum
How to use checksums
a2e251035b1989d7661182fa18bbf1887e06ccdf8da81840d7fcc328a7108532
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / vepi-0.1.4-py3-none-any.whl

Download URL vepi-0.1.4-py3-none-any.whl
Size 10.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c67afbfdd85dfbdf71341314a7f6d1fec31ccbebd6bb6a57d925096c6d8dfbee
BLAKE2b-256 checksum
How to use checksums
ac995a3073ef7bd9530649f30d3d2f40176b20183a67051ee59af88b786d8309
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

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