Skip to main content
Calculator
==========

A simple calculator library.

This module is now a Python package. You can install it using:

$ sudo pip install simplecalculator

Examples of usage:

* `simplecalculator.py` -- a command-line utility

* `tornadoweb.py` -- a TornadoWeb applications with a minimalistic RESTful API. Do you math with curl!

How?
----

Clone this repo and tests:

$ python -m unittest test

All good?

Usage (in your script)
-----------------------

1. Import `calculator`

2. Instantiate `SimpleCalculator()`

3. Call `run()` with the list of values, operands, and functions you want to process.

4. The history of operations, results, and unprocessed input is stored in `SimpleCalculator.log`.

Here's a short sample:

from calculator.simple import SimpleCalculator

c = SimpleCalculator()
c.run('1 + 1')
print c.log

If you want to read the state of the LCD (no kidding!), use

print c.lcd

Usage (on the command line)
---------------------------

Run:

$ ./simplecalculator.py -s "1 + 2 / 6 acv 1 + 1 / 33 fmod 0.01"

then


$ ./simplecalculator.py -s "1 + 2 / 6 acv 1 + 1 / 33 ceil fmod"

then

$ ./simplecalculator.py -s "1 + 2 / 6 acv 1 + 1 / 33 fmod 0.01 1 2 3 4"

This calculator is as forgiving as a simple desktop calculator, it will ignore what it does not know, try to compute what it can treating the given string as a list of keystrokes. You may see one or more `status` entries after the last result, that's intended.

Usage (via curl)
----------------

If you want to implement this alculator as a RESTful API, install [TornadoWeb](http://tornadoweb.org 'TornadoWeb') and run `tornadoweb.py', then use curl:

$ curl -X POST http://localhost:8888/v1/calculate -d '1 + 2 / 6 acv 1 + 1 / 33 fmod 0.01 1 2 3 4'

You can easily extend this calculator to support any number of one- and two-argument functions, search calculator/simple.py for `fmod` and `ceil` to see what modifications you need to make.

Why?
----

I got asked to provide samples of my work, proof I know Python, etc. This project is way more than what I was asked to deliver, but I had more time to spare. There is more coming.

Who?
----

Jacek Artymiak

Metadata

Release files for simplecalculator 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for simplecalculator 0.0.4
File Size Uploaded
simplecalculator-0.0.4.tar.gz 2.8 kB Details

Release files / simplecalculator-0.0.4.tar.gz

Download URL simplecalculator-0.0.4.tar.gz
Size 2.8 kB
Tags Source
SHA-256 checksum
How to use checksums
1d862b52bc21305ef7633e59be71aae233905c51846b8775b66afb0104fa6110
BLAKE2b-256 checksum
How to use checksums
69d83e50699faedb93a5818c962faefe81afdbbc2aa4a9ad55e6098f5416ece2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.0.4 This release

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page