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.7.0.tar.gz (79.5 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: opencloudtool-0.7.0.tar.gz
  • Upload date:
  • Size: 79.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"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.7.0.tar.gz
Algorithm Hash digest
SHA256 381c1ec6e5b6f5517e0cb4e8bebb86f759b7d04abdcd631d32a46ac4530b8ac8
MD5 41f2a2fba68de95d8c92d17fa47e7712
BLAKE2b-256 370f55a40051b836b182f58d35639a3e233d5de7036c6cd5fd0465f5d6362b8d

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