Numerra is a Python advance CLI calculator that supports various mathematical operations
Project description
Numerra
Numerra is a modular and extensible CLI calculator built using clean
architecture principles.
It is designed not only to perform arithmetic operations, but also to
demonstrate structured backend development practices in Python.
Numerra focuses on maintainability, modularity, and production-ready packaging.
✨ Features
- Basic arithmetic operations (addition, subtraction, multiplication, division)
- Enum-based operator handling
- Persistent calculation history (JSON storage)
- Clear history functionality
- Configurable decimal precision
- Structured logging system
- Modular project architecture
- Unit tested with
pytest - Installable via pip
- CLI entry point support
📦 Installation
From PyPI
pip install numerra
Development Mode
git clone https://github.com/tcandra24/numerra.git
cd numerra
pip install -e .
🚀 Usage
Run as Installed CLI
numerra
Run in Development
python -m numerra
Check Version
numerra --version
🏗 Project Structure
numerra/
├── config/
├── core/
├── data/
├── enums/
├── logs/
├── models/
├── utilities/
└── main.py
The project follows a modular structure with separation of concerns between:
- Core business logic
- Data persistence
- Configuration
- Logging
- Utilities
- CLI interface
⚙ Configuration
Numerra uses a JSON-based configuration system.
Configurable options include:
- Logging behavior
- Runtime settings
Configuration is loaded before business logic execution to ensure consistent behavior.
🧪 Running Tests
pytest
Unit tests cover:
- Arithmetic operations
- History management
- Core calculator logic
🔄 CI/CD
Numerra supports automated publishing to PyPI via GitHub Actions.
Releases are triggered using semantic version tags.
Example:
git tag v0.2.0
git push origin v0.2.0
📄 License
MIT License
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
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 numerra-0.1.5.tar.gz.
File metadata
- Download URL: numerra-0.1.5.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54e68303ce9a939db359816de00846b23f38154c9b6158fbaeb3b2023c7032f0
|
|
| MD5 |
e72363d1be09caaa0114ea29a9b462b5
|
|
| BLAKE2b-256 |
b316809a4097f241141ce2845156b096886e4f41edf6f5488b7bf31caa212bfd
|
File details
Details for the file numerra-0.1.5-py3-none-any.whl.
File metadata
- Download URL: numerra-0.1.5-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f9a28f3aa5e5747edfba8a23d63ed860716c53801b318bed37fb190c50e825b
|
|
| MD5 |
7c774bee9cf6f325fd8fc5494d49fcb1
|
|
| BLAKE2b-256 |
806708b2dce1f561950e32ff4f216717d73c6e4e69875e8a67d7a7480a08d30e
|