Skip to main content

No project description provided

Project description

Opencloudtool Python Library

A tool to hide the complexity of the cloud, now available as a Python library. This library allows you to deploy services directly from your Python scripts.The core of this library is written in Rust for high performance and reliability.

Installation

You can install the library from PyPI using pip

pip install opencloudtool

Basic Usage

To use the library, you need an oct.toml configuration file in your project directory. The library provides deploy and destroy functions to manage your stack.

Example deploy.py

import opencloudtool as oct

# The path to the project directory containing oct.toml
project_path = "./my-app"

oct.deploy(path=project_path)

To destroy infrastructure:

oct.destroy(path=project_path)

Main repo opencloudtool

Dev

How it works: Python-Rust binding

The connection between Python and Rust is managed by maturin and PyO3

  1. maturin compiles the Rust code in the oct-py crate into a native Python module.
  2. We configure the name of this compiled module in pyproject.toml to be opencloudtool._internal.
  3. The leading underscore (_) is a standard Python convention that signals that _internal is a low-level module not meant for direct use.
  4. Our user-facing Python code in opencloudtool/py_api.py imports functions from _internal and presents them as a clean, stable API.

1. Navigate to the Python Directory

cd crates/oct-py

2. Create and activate the Virtual environment

uv venv

source .venv/bin/activate # Windows: .venv\Scripts\activate

3. Install dependencies

uv sync --group dev

4. Build the Library

maturin develop

5. Run the example

cd ../../examples/projects/single-host-python-lib

You can now run python deploy.py or python destroy.py to test your changes.

Releasing the Python Library

Bump the Version Number

  1. Before releasing, you must increment the version number. PyPI will not accept a version that already exists.
  • crates/oct-py/pyproject.toml
  1. Build & upload the Release Packages:
cd crates/oct-py

maturin sdist

maturin build --release

cd ../..

twine upload target/wheels/*

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

opencloudtool-0.8.0.tar.gz (81.1 kB view details)

Uploaded Source

File details

Details for the file opencloudtool-0.8.0.tar.gz.

File metadata

  • Download URL: opencloudtool-0.8.0.tar.gz
  • Upload date:
  • Size: 81.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for opencloudtool-0.8.0.tar.gz
Algorithm Hash digest
SHA256 185f4ec0fd8fac487fde13eaf933ef50dd5ae06483a0ce515656f488b3dd4bdc
MD5 d4da6573a871b4cbcdd0d6289052a0e5
BLAKE2b-256 ed447bf08355e3e2ab67396a8a186ed009659e5578bcee83516da56757e06888

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