Skip to main content

Unacalc: A Unit-Aware Calculator

Project description

Unacalc, the Unit-Aware Calculator

This project is a unit-aware calculator application developed using PyQt5 for the graphical user interface and Pint for handling units of measurement. It allows users to input and evaluate mathematical expressions that include units, providing accurate results with unit conversions.

Features

  • Unit Management: Supports unit conversions and arithmetic using the Pint library.
  • Expression Parsing: Parses mathematical expressions, recognizing numbers, units, and operations using the Pyparsing library.
  • Arithmetic Operations: Supports addition, subtraction, multiplication, division, and exponentiation.
  • Auto Calculation: Automatically calculates and displays the result as the user types.
  • Unit Conversion: Enables unit conversion within expressions using the "in" keyword (e.g., "100 m in cm").
  • Intuitive GUI: Features an easy-to-use interface with an input field, result display, and a grid of buttons for input.
  • Error Handling: Displays error messages for invalid expressions.
  • Keyboard Input: Supports keyboard input for digits, operators, and backspace.
  • Date and Time Calculations: Supports date and time arithmetic and conversion (e.g., "2024-11-13 + 2d", "now - 2 weeks").

Getting Started

Prerequisites

  • Python 3.x
  • PyQt5
  • Pint
  • NumPy
  • Pyparsing

Installation

  1. Clone the repository:
    git clone https://github.com/tovam/unacalc
    
  2. Change to the project directory:
    cd unacalc
    
  3. Install the required packages:
    pip install -r requirements.txt
    

Running the Calculator

To start the calculator application, run:

python unacalc.py

Usage

  • Enter mathematical expressions directly into the input field.
  • Use the buttons to input numbers and operators.
  • The result is automatically calculated and displayed in the result field.
  • Use the "in" keyword to convert units (e.g., 100 m in cm).

Example Expressions

  • 5 m + 3 m
  • 10 kg * 9.81 m/s^2
  • 100 W * 2 h in Wh
  • 100 m in cm
  • 1e3 kg * 9.81 m/s^2 in N
  • 2024-06-08T19:45:10 + 5 month

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.

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

unacalc-1.0.2.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

unacalc-1.0.2-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file unacalc-1.0.2.tar.gz.

File metadata

  • Download URL: unacalc-1.0.2.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.10

File hashes

Hashes for unacalc-1.0.2.tar.gz
Algorithm Hash digest
SHA256 42c8e8777ff96a6c527d52f1e604cfaac1a4b8fc18f84cba81dafcd6a77dc443
MD5 19e303b56d5cc3949529b4f1e8668e9c
BLAKE2b-256 198df7e01d8f93f9015bfd53eacd320c4478f681ac7d50897111287fc63e95a5

See more details on using hashes here.

File details

Details for the file unacalc-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: unacalc-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 21.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.10

File hashes

Hashes for unacalc-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 edce404a1e5a2ac915b8a015fbfadd5297e10685b5b95643b1904937503b48fa
MD5 53cd2ddc3363fd07190a02fd6eb3cea5
BLAKE2b-256 6de22ce4a546e73c88c59533f67e6ec30cbb636314e7b5daf95816a9058f7967

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page