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 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


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.0.tar.gz (9.7 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.0-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

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

Hashes for ackmetton-0.1.0.tar.gz
Algorithm Hash digest
SHA256 477708cd9593186c171b14f6b0e4c61c4a5ad5b63e0c7683d73761cd0b6b00ad
MD5 f68ab90addf4226ff44f496f7f34a401
BLAKE2b-256 46ae01b01fe3fd72f8e5a65a416d3740f09a5fd51fc226316a69728a7ddae164

See more details on using hashes here.

Provenance

The following attestation bundles were made for ackmetton-0.1.0.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.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

Hashes for ackmetton-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 250a8e2a93b95d08ccb467c5239c68ce7d7f40debaceaacad9939a5897a1e5ab
MD5 87e08e7a0dbdd211c9a053de291b6d7e
BLAKE2b-256 cab06b939b12917287cf8ef7d209c43143b1982965af7023a9baf0b5c7a9a96d

See more details on using hashes here.

Provenance

The following attestation bundles were made for ackmetton-0.1.0-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