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
==========
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
File details
Details for the file simplecalculator-0.0.4.tar.gz
.
File metadata
- Download URL: simplecalculator-0.0.4.tar.gz
- Upload date:
- Size: 2.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d862b52bc21305ef7633e59be71aae233905c51846b8775b66afb0104fa6110 |
|
MD5 | f7d3e6b77b3ece9ee18cb113339d2522 |
|
BLAKE2b-256 | 69d83e50699faedb93a5818c962faefe81afdbbc2aa4a9ad55e6098f5416ece2 |