Skip to main content

A base library for making use of classes that has commonly used and modular functions and variables.

Project description

ackmetton

A base library for robotics, unmanned vehicles, and automation — compatible with Python and MicroPython.

ackmetton provides a modular, reusable foundation of math primitives, control algorithms, logging, and platform abstraction designed to run the same code across CPython and MicroPython environments with minimal friction.

Features

Math Library (ackmetton.mathlib)

Component Description
clamp, map, deadzone, low_pass, amplitude_impedance Utility functions for signal conditioning and filtering
sin, cos, acos Convenience wrappers around math
Vector2 2D vector with arithmetic, magnitude, normal, unit, dot, cross
Vector3 3D vector with arithmetic, magnitude, normal, unit, dot, cross
Basis Orthonormal basis container (3×3)
Quaternion Full quaternion algebra — multiplication, conjugation, rotation, axis-angle construction, Euler angles, rotation matrix, basis extraction
PID Proportional-Integral-Derivative controller with integral clamping, set-point tracking, and reset

Utilities (ackmetton.utils)

Component Description
TimeStamp High-resolution timing with configurable unit mask, delta measurement

Base Classes (ackmetton.base)

Component Description
Base Root class with name attribute shared by all library classes
Logger File-based logging with leveled output, auto-rotating directory creation
LogWrap Proxy that forwards log calls scoped to an object name
Printer Timestamped console printer with configurable output level
Logged Combined logging + printing class that bridges Logger and Printer

Platform Abstraction (ackmetton.platform)

Function Description
is_micropython() Detect MicroPython runtime
is_python() Detect CPython on Linux

Enums (ackmetton.enums)

Enum Description
FEED_LEVELS Log/print severity levels (NOTSET, DEBUG, INFO, WARNING, ERROR, CRITICAL)

Requirements

  • Python ≥ 3.14 or MicroPython (any version)
  • No external dependencies

Installation

pip install ackmetton

Or copy src/ackmetton/ directly into your project for embedded/MicroPython targets.

Installing from source

git clone https://github.com/<your-org>/ackmetton.git
cd ackmetton
pip install .

Quick Start

from ackmetton.mathlib import Vector3, Quaternion, PID, clamp

# Vector math
v = Vector3(1, 2, 3) + Vector3(4, 5, 6)
print(v.normal())

# Quaternion rotation
q = Quaternion.from_axis_angle(90, Vector3(0, 1, 0))

# PID control
pid = PID(kp=2.0, ki=0.1, kd=0.05, set_point=100)
output = pid.update(measured_value=85, dt=0.01)

MicroPython Compatibility

ackmetton is designed for cross-platform use. Modules that rely on CPython stdlib (notably Logger which uses logging) raise a clear ImportError when imported on MicroPython. All other modules — mathlib, utils, platform, enums, and the core Base/Printer classes — work unchanged on MicroPython.

Project Structure

src/
└── ackmetton/
    ├── __init__.py
    ├── base.py        # Base, Logger, LogWrap, Printer
    ├── enums.py       # FEED_LEVELS
    ├── mathlib.py     # Math utilities, vectors, quaternions, PID
    ├── platform.py    # is_micropython(), is_python()
    └── utils.py       # TimeStamp

License

MIT

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

ackmetton-0.1.1.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

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

ackmetton-0.1.1-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file ackmetton-0.1.1.tar.gz.

File metadata

  • Download URL: ackmetton-0.1.1.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ackmetton-0.1.1.tar.gz
Algorithm Hash digest
SHA256 11e470806b2d3ae328f91b4e7e8c30a3e446f7af7e6fe9caae94907428f19506
MD5 664e6adcee2fc264e86c833fe2518fe5
BLAKE2b-256 90486c9aba6a944661a58ed35628ad89b7955d884f4939bffe255621c538485b

See more details on using hashes here.

Provenance

The following attestation bundles were made for ackmetton-0.1.1.tar.gz:

Publisher: publish.yml on Ackvat/ackmetton

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

File details

Details for the file ackmetton-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: ackmetton-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ackmetton-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f0dab786232299a10beb563c2cb22224a528a2b13142e8660a40d1df225a4bc9
MD5 d486f6c6087160b96bdb5100aa79132e
BLAKE2b-256 e7d81b010f7ad51cc7e79ba42016703d527af8315ba30991f9f22d74b66d7982

See more details on using hashes here.

Provenance

The following attestation bundles were made for ackmetton-0.1.1-py3-none-any.whl:

Publisher: publish.yml on Ackvat/ackmetton

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