Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/idanpa/calcpy
Terminal calculator and advanced math solver using Python, IPython and SymPy
https://github.com/idanpa/calcpy
calculator cli console-application console-calculator ipython programmer-calculator python-calculator scientific-calculator sympy terminal-calculator
Last synced: 24 days ago
JSON representation
Terminal calculator and advanced math solver using Python, IPython and SymPy
- Host: GitHub
- URL: https://github.com/idanpa/calcpy
- Owner: idanpa
- License: mit
- Created: 2022-04-24T07:39:48.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-11T11:07:56.000Z (4 months ago)
- Last Synced: 2024-09-29T18:40:14.971Z (about 1 month ago)
- Topics: calculator, cli, console-application, console-calculator, ipython, programmer-calculator, python-calculator, scientific-calculator, sympy, terminal-calculator
- Language: Python
- Homepage:
- Size: 354 KB
- Stars: 84
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-cli-apps - CalcPy - Terminal calculator and advanced math solver using Python, IPython and SymPy. (<a name="calc"></a>Calculators)
- awesome-cli-apps-in-a-csv - CalcPy - Terminal calculator and advanced math solver using Python, IPython and SymPy. (<a name="calc"></a>Calculators)
README
# CalcPy
Terminal calculator and advanced math solver using Python, IPython and SymPy.
## Usage
[Try online](https://calcpy.duckdns.org)
## Installation
Prerequisites - [Python](https://www.python.org/downloads/)
```
pip install git+https://github.com/idanpa/calcpy
```
(no git? use `pip install https://github.com/idanpa/calcpy/archive/main.zip`)
[Android installation](docs/android.md)## Features
* Display both symbolic and numeric solutions
* Integers displayed as decimal, hex and binary
* Evaluation preview while typing
* Currency conversion `10USD` (`calcpy.base_currency='EUR'` to change base currency) (by [ECB](https://www.ecb.europa.eu/))
* `?` suffix provides some basic analysis of expression (similar to [WolframAlpha](https://www.wolframalpha.com/))
`((1,2),(3,4))?`, `x**2+1?`, `234?`
* Automatic symbolic variables, anything like `x` `y_1` is a sympy symbol
* Symbolic variables assumptions are uniform, `symbols(x, real=True)` would change all occurencase of `x` to be real
* Implicit multiplication (`2x`, `(x+1)(x-1)` are valid)
* Nested tuples are matrices `((1,2),(3,4))**2`
* All variables and functions are restored between sessions (delete using `del`)
* Datetime calculations `d"yesterday at 9 am" - d"1990-1-30 9:20"` (by [dateparser](https://github.com/scrapinghub/dateparser))
* Sizes `KB`, `MB`, `GB`, `TB` (e.g. `4MB-32KB`)
* Unit prefixes `G`, `M`, `k`, `m`, `u`, `n`, `p` (`4G/3.2n`, enable by `calcpy.units_prefixes=True`)
* Implicit lambda `f(a,b):=a**2+b**2`
* Latex input `diff($\frac{1,x}$)` (latex output with `latex(1/x)`)
* Copy to clipboard `copy(_)` would copy last result
* Custom user startup (for imports, etc.) `edit_user_startup()`
* Persistent configuration, see options with `calcpy?`[SymPy](https://www.sympy.org):
* All the elementary (and non-elementry) math functions and constants - `ln`, `sin`, `e`, `pi` etc.
* Calculus, algebra, plotting - `diff`, `integrate`, `limit`, `Sum`, `solve`, `plot`, `plot_implicit` etc.[IPython](https://ipython.org):
* Get last result with `_`, get specific cell `_12` (`Out[12]` works too)
* `func_name?` show docs for func_name
* `who`/`who_ls` see all defined variables
* Prompt history with `up`/`down`, search with `ctrl+r`
* Autocomplete with `tab`
* Edit code on editor with `%edit func_name`[Python](https://www.python.org/):
* All the basic arithmetic `+`,`-`,`*`,`/`,`**` or `^`
* Binary and hex input `0b1101`, `0xafe1`
* Scientific notation `2.12e-6`
* Programmer operations `//` integer division, `%` modulo, `&` bitwise AND, `|` bitwise OR, `^^` bitwise XOR (on calcpy `^` is exponentiation, disable with `calcpy.caret_power`), `~` bitwise not, `>>`/`<<` right/left shift.## Contributing
Feel free to open an issue for bugs/features, send a pull request or star.