GithubHelp home page GithubHelp logo

sobjornstad / esc Goto Github PK

View Code? Open in Web Editor NEW
7.0 2.0 1.0 373 KB

friendly, extensible TUI RPN calculator

Home Page: https://esc-calc.readthedocs.io/

License: GNU General Public License v3.0

Python 99.72% Shell 0.28%
rpn python rpn-calculator curses calculator math framework

esc's Introduction

Build Status Documentation Status

What is esc?

esc (pronounced /esk/) is an Extensible Stack-based Calculator designed for efficiency and customizability. What does this mean?

  • esc is stack-based, operating using a Reverse Polish Notation-like syntax. Rather than typing 2 + 2 and pressing an equals key, you enter the two numbers 2 and 2 onto the stack, then choose + to add them. This can be slightly awkward at first, but it means no parentheses are necessary, and for most people it becomes faster and more elegant than the standard algebraic method with a small amount of practice. In addition, it is considerably easier to customize and program.

  • esc is extensible. If you frequently need to multiply two numbers together, add five, and then divide the result by pi, you can add an operation to the calculator to do this specific operation using a couple of lines of Python code. The extension features are simple enough to be accessible even to people who do not know Python or have little to no programming experience.

    esc operations are arbitrary Python code, so if you want to get fancy, they can get arbitrarily complicated. You can even call APIs to perform calculations or get data!

  • esc is fast, simple, and terminal-based. All you need is a working terminal (at least 80ร—24) and your keyboard.

A screenshot of esc in use, taken from the esc documentation.

Installation

esc requires Python 3.6 or greater. It is lightweight and has no dependencies outside the standard library (except on Windows, where ncurses isn't available by default and the windows-curses package is transparently installed to fix that). The recommended installation method is through pip:

$ pip install --user esc-calc

This will install an esc command to your system path which will launch esc.

After installing esc, you may wish to install plugins (see the "Plugins" section in the user guide). Official plugins can be downloaded from the esc-plugins folder of this repository.

Development

For development, clone this repository, build a virtualenv with the necessary development tools, and install esc into it:

$ git clone https://github.com/sobjornstad/esc
$ cd esc
$ virtualenv --python=python3.7 venv  # or 3.6 if you don't have 3.7
$ . venv/bin/activate
$ pip install -r requirements.txt
$ pip install -e esc
$ esc

Documentation

The user manual and API documentation on writing plugins for esc are maintained on Read The Docs.

Contributing

Bug reports, suggestions, and code contributions are welcome.

In particular, if you write a plugin that might be useful to someone else, please consider submitting it for inclusion in the official esc-plugins directory.

esc's People

Contributors

sobjornstad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

ronsheely

esc's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.