Skip to main content

A Python package for loading petroleum datasets

Project description

per-datasets

A Python package for loading reservoir datasets from API endpoints.

Installation

pip install per-datasets

Quick Start

Option 1: Using Global API Key (Recommended)

First, set your API key globally:

# Set API key globally (works across all projects)
per-datasets set-key "your_api_key_here"

# Or use interactive setup
per-datasets interactive

Then use in your Python code:

import per_datasets as pds

# Initialize without API key (uses global key)
pds.initialize()

# Load a random reservoir dataset
df_random = pds.reservoir.load_random()
print(f"Loaded dataset with shape: {df_random.shape}")

Option 2: Using API Key in Code

import per_datasets as pds

# Initialize with your API key
pds.initialize('your_api_key_here')

# Load a random reservoir dataset
df_random = pds.reservoir.load_random()
print(f"Loaded dataset with shape: {df_random.shape}")

Command Line Interface

The package includes a CLI for managing API keys globally:

# Set API key globally
per-datasets set-key "your_api_key_here"

# Check configuration status
per-datasets status

# Get stored API key (masked)
per-datasets get-key

# Remove API key
per-datasets remove-key

# Interactive setup
per-datasets interactive

# Clear all configuration
per-datasets clear

# Show help
per-datasets --help

Complete Usage Examples

import per_datasets as pds

# Initialize (uses global key if available)
pds.initialize()

# Load a random reservoir dataset
df_random = pds.reservoir.load_random()
print(f"Loaded dataset with shape: {df_random.shape}")

# Load a specific dataset by ID
df_specific = pds.reservoir.load('your_dataset_id')

# Get information about available datasets
info = pds.get_dataset_info()

API Reference

initialize(api_key=None)

Initialize the per_datasets module with API credentials.

Parameters:

  • api_key (str, optional): The API key for authentication. If not provided, uses globally stored key.

Note: If no API key is provided and none is stored globally, raises a ValueError with instructions to set a global key.

load_random()

Loads a random reservoir model from the API endpoint and returns as pandas DataFrame.

Returns:

  • pandas.DataFrame: A DataFrame containing the dataset

Configuration Management

The package stores configuration in ~/.per_datasets/config.json by default:

{
  "api_key": "your_api_key_here"
}

Benefits of Global Configuration:

  • No API key in code: Keep sensitive keys out of your source code
  • Cross-project: Use the same API key across multiple projects
  • Secure: API keys are stored in user's home directory
  • Override: Can still provide API key in code to override global setting
  • Easy management: Use CLI commands to manage keys

Security Notes:

  • API keys are stored in plain text in your home directory
  • Only you can access the configuration file
  • Consider using environment variables for production deployments

Dependencies

  • requests>=2.25.1
  • pandas>=1.3.0

License

MIT

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

Development

To set up the development environment:

git clone https://github.com/P-E-R-D/library-py.git
cd per-datasets
pip install -e .

Building and Publishing

Automatic Deployment (Recommended)

This package uses GitHub Actions for automatic deployment to PyPI:

  1. Make your changes to the code
  2. Update version numbers in per_datasets/__init__.py and pyproject.toml
  3. Create a git tag with the new version:
    git tag v0.2.0
    git push origin v0.2.0
    
  4. GitHub Actions automatically builds and uploads to PyPI!

See DEPLOYMENT.md for detailed setup instructions.

Manual Publishing

python -m build
twine upload dist/*

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

per_datasets-0.0.2a0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

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

per_datasets-0.0.2a0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file per_datasets-0.0.2a0.tar.gz.

File metadata

  • Download URL: per_datasets-0.0.2a0.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for per_datasets-0.0.2a0.tar.gz
Algorithm Hash digest
SHA256 01193ad2b3d44f7c6c7e3ce63377b56c4eae0434dcffcb97e28e93ae2ee9c992
MD5 160be90fcf43b32545376a886340e084
BLAKE2b-256 c7ba45be949246aa8430e90b18e7f2fa3398f9cf4a48825f43bdb6b888bd62db

See more details on using hashes here.

File details

Details for the file per_datasets-0.0.2a0-py3-none-any.whl.

File metadata

  • Download URL: per_datasets-0.0.2a0-py3-none-any.whl
  • Upload date:
  • Size: 12.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for per_datasets-0.0.2a0-py3-none-any.whl
Algorithm Hash digest
SHA256 9d95d1f008e63222212c2eb4a21e20ebfbead0eabe43f5ab068320b36222274a
MD5 cef5d4a072608c8f8fd53036b59476e1
BLAKE2b-256 71f38e5da1cc9e30c4239f1d4aefe41102ec7eebec33d519e794c104193899d1

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