Skip to main content

Main Python package to access the 3DTrees backend from tool containers

Project description

tool-interface

Main Python package to access the 3DTrees backend from tool containers. This package provides a unified interface for interacting with various backend services (Supabase, S3) used in the 3DTrees project.

Installation

From PyPI (recommended):

pip install tool-interface

From GitHub (development version):

pip install git+https://github.com/3dtrees-earth/tool-interface.git

Configuration

The package uses environment variables for configuration. All variables should be prefixed with THREEDTREES_. You can also use a .env file.

Required environment variables:

# Supabase
THREEDTREES_SUPABASE_URL=your_supabase_url
THREEDTREES_SUPABASE_KEY=your_supabase_key

# Storage (S3 compatible)
THREEDTREES_STORAGE_ACCESS_KEY=your_access_key
THREEDTREES_STORAGE_SECRET_KEY=your_secret_key
THREEDTREES_STORAGE_BUCKET_NAME=your_bucket_name

# Optional
THREEDTREES_STORAGE_ENDPOINT_URL=custom_s3_endpoint  # For non-AWS S3
THREEDTREES_STORAGE_REGION=eu-central-1  # Default: eu-central-1

Development

To set up the development environment:

  1. Clone the repository:

    git clone https://github.com/3dtrees-earth/tool-interface.git
    cd tool-interface
    
  2. Install development dependencies:

    pip install -e ".[dev]"
    
  3. Install pre-commit hooks:

    pre-commit install
    

Code Quality

The project uses several tools to ensure code quality:

  • mypy for static type checking
  • ruff for linting and formatting
  • pytest for testing

Run the checks locally:

pre-commit run --all-files  # Runs all checks
pytest                      # Runs tests

Versioning

The package uses semantic versioning through git tags. Version numbers are automatically derived from git tags when building the package.

To create a new release:

  1. Ensure all changes are committed
  2. Create and push a new version tag:
    git tag -a v0.1.0 -m "Release version 0.1.0"
    git push origin v0.1.0
    
  3. The GitHub Actions workflow will automatically build and publish to PyPI

License

See LICENSE file.

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

tool_interface-0.1.3.tar.gz (139.6 kB view details)

Uploaded Source

Built Distribution

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

tool_interface-0.1.3-py3-none-any.whl (32.3 kB view details)

Uploaded Python 3

File details

Details for the file tool_interface-0.1.3.tar.gz.

File metadata

  • Download URL: tool_interface-0.1.3.tar.gz
  • Upload date:
  • Size: 139.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for tool_interface-0.1.3.tar.gz
Algorithm Hash digest
SHA256 94e33f356d1c46fa30df01bd3504d12fc3deaaf023c3eae3980ce6e9202313f5
MD5 6fb1a6e69541c2bb317aecd468aa2148
BLAKE2b-256 99bb5b63261b6d48800377ca280d1c0e33f1015ae4535240c4d16caef9e6b48b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tool_interface-0.1.3.tar.gz:

Publisher: publish.yml on 3dTrees-earth/tool-interface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tool_interface-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: tool_interface-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 32.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for tool_interface-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3dc74cafaca261263b8ab5d95f47d77f1e912e053976fe4b3a19642d7e608ca0
MD5 762edc0bc0b63487fb0bcc189d61eb73
BLAKE2b-256 15952dbda0a8c186ba5cf74aecac1e57c76894c456e52efdd5d5edacf9078424

See more details on using hashes here.

Provenance

The following attestation bundles were made for tool_interface-0.1.3-py3-none-any.whl:

Publisher: publish.yml on 3dTrees-earth/tool-interface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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