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 the ackmetton/ package directly into your project for embedded/MicroPython targets.
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
ackmetton/
├── __init__.py
├── base.py # Base, Logger, LogWrap, Printer, Adem
├── enums.py # FEED_LEVELS
├── mathlib.py # Math utilities, vectors, quaternions, PID
├── platform.py # is_micropython(), is_python()
└── utils.py # TimeStamp
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ackmetton-0.1.0.tar.gz.
File metadata
- Download URL: ackmetton-0.1.0.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
477708cd9593186c171b14f6b0e4c61c4a5ad5b63e0c7683d73761cd0b6b00ad
|
|
| MD5 |
f68ab90addf4226ff44f496f7f34a401
|
|
| BLAKE2b-256 |
46ae01b01fe3fd72f8e5a65a416d3740f09a5fd51fc226316a69728a7ddae164
|
Provenance
The following attestation bundles were made for ackmetton-0.1.0.tar.gz:
Publisher:
publish.yml on Ackvat/ackmetton
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ackmetton-0.1.0.tar.gz -
Subject digest:
477708cd9593186c171b14f6b0e4c61c4a5ad5b63e0c7683d73761cd0b6b00ad - Sigstore transparency entry: 2048842481
- Sigstore integration time:
-
Permalink:
Ackvat/ackmetton@eafa6b175fa566979fcc889f297e137906b793c6 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/Ackvat
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@eafa6b175fa566979fcc889f297e137906b793c6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ackmetton-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ackmetton-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
250a8e2a93b95d08ccb467c5239c68ce7d7f40debaceaacad9939a5897a1e5ab
|
|
| MD5 |
87e08e7a0dbdd211c9a053de291b6d7e
|
|
| BLAKE2b-256 |
cab06b939b12917287cf8ef7d209c43143b1982965af7023a9baf0b5c7a9a96d
|
Provenance
The following attestation bundles were made for ackmetton-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on Ackvat/ackmetton
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ackmetton-0.1.0-py3-none-any.whl -
Subject digest:
250a8e2a93b95d08ccb467c5239c68ce7d7f40debaceaacad9939a5897a1e5ab - Sigstore transparency entry: 2048842825
- Sigstore integration time:
-
Permalink:
Ackvat/ackmetton@eafa6b175fa566979fcc889f297e137906b793c6 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/Ackvat
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@eafa6b175fa566979fcc889f297e137906b793c6 -
Trigger Event:
push
-
Statement type: