Powerful yet easy command line calculator.
Project description
cli-calc
Powerful yet easy command line calculator.
Example Usage
cos(pi/2)
0xFF ^ 0b10
2**8-1
log(2)
comb(49,6)
factorial(42)
random()
cmath.phase(complex(-1.0, 0.0))
All function of the following Math Libraries are ready to use out of the box
-
standard operators
-, >>, ...
-
standard math library
cd, log, sin, sinh, gamma, pi, e, tau, inf, nan...
-
cmath
phase(complex(-1.0, 0.0)), and then most of the above with complex numbers.
-
random
random, choice(['win', 'lose', 'draw']), mean, ...
-
built in functions
max, help, sum, ...
Installation
pip install cli-calc
Configuration
In order to run it from anywhere: Add a symbolic link in ~/bin
cd ~/bin
ln -s ~/path/to/your/install/cli_calc/warpper.sh calc
Then use it anywhere. :-)
calc
echo "7+8" | calc
cat foo.bar | calc
Help
calc
h
Input:
"q" for quit, "h" for help
"_float_" and/or "_int_" for last value
"pi", "tau" and "e" for pi, tau and Euler
"+f" to add display for fraction, "-f" to suppress display for fraction
Other letters are:
he(x), (o)ctal, (b)inary, (i)nteger,
(f)raction, (t)ruth, i(e)ee, ieee_bi(n), f(r)om_ieee
"float" is always visible
See https://docs.python.org/3/library/math.html, use without "math."
https://www.w3schools.com/python/python_operators.asp
Try "cos(pi/2)", XOR: "0xFF ^ 0b10", "2**8-1", "factorial(42)",
"help(math)"
Warning
- Use of
eval
is evil. However some precautions are taken.
Development
Pull Request
PR are Welcome! However the PR Howto is still missing here. See Issue #13
Metric Dashboard
Note
- flake8-commas, one of the development plugins of the wemake-python-styleguide is marked as No Maintenance Intended. Hence the 1 deprecated dependency. See Issue.
Features
- Fully typed with annotations
- Checked with mypy
- Packaging PEP561 compatible
Tools
Python Packages
- pypi.org Python Package Index
- pythonrepo.com Popular Python Libraries
Style and type annotations
- pylint vim linter
- isort sort imports
- black opinionated code formatter
- wemake strictest and most opinionated Python linter
- mypy static type checker
- flake8 Style Guide Enforcement
- nitpick enforce the same settings across configuration files
Testing
- pytest test framework
- The Magic Tricks of Testing by Sandi Metz (Talk) on what to test, and what not
Continuous Testing & Integration (CT & CI)
Integration as in: Deployment and Integration testing.
- github actions
- pytest & coverage (yml) pytest @ python-version: ['3.7', '3.8', '3.9', '3.10']
- misspell (yml)
- codeql-analysis (yml)
- Alternative to hithub actions
- tox test and deploy
- travis test and deploy
- coveralls.io coverage
Build and publish to pypi
- poetry version bump bump version
- poetry build wheel
- poetry publish to pypi
- make Makefile automate above
Following Semantic Versioning
- Semantic Versioning
- semver Python Package
- get_ver_for_rule (dev_tool)
Development Environment
- poetry python packaging and dependency management
- cookiecutter creates projects from project templates
Version and Issue Management
- git distributed version control system
- github online collaborative version control
- gh GitHub on the command line
- tickgit Not used, but collects TODO from source code
IDE
Shell
Documentation
- Markdown lightweight markup language
- sphinx Python documentation Generator
- doc8 opinionated style checker for rst
- readthedocs document style and service
Metric
- shields for Shields and Badges
- issuehub.pro Label Guide
- cloc for SLOC
- make_shields.py (dev_tool) for SLOC
Jason Query for Makefile and Shields
Teaching Python Development
License
Credits
This project was generated with wemake-python-package
. Current template version is: d06993f12e3ffad79652a2aec86189dee92d94dd. See what is updated since then.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for cli_calc-0.2.15-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9191d8fcb5d5248ae53aa96822fc08eb55dc41509626600bde4dbdb8fcbcfd3 |
|
MD5 | a6d14e271006dc01ccdcf17ac43a352c |
|
BLAKE2b-256 | 2ecc27b8374a6d7b9d83d27721a5708cedc14fd0fc34a9f612aae08385f06cd4 |