Skip to main content

A simple calculator library.

Project description

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

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

simplecalculator-0.0.4.tar.gz (2.8 kB view details)

Uploaded Source

File details

Details for the file simplecalculator-0.0.4.tar.gz.

File metadata

File hashes

Hashes for simplecalculator-0.0.4.tar.gz
Algorithm Hash digest
SHA256 1d862b52bc21305ef7633e59be71aae233905c51846b8775b66afb0104fa6110
MD5 f7d3e6b77b3ece9ee18cb113339d2522
BLAKE2b-256 69d83e50699faedb93a5818c962faefe81afdbbc2aa4a9ad55e6098f5416ece2

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