Skip to main content

Formula Prompt

This library let's you define formulas that you can later evaluate in your command line. I use this library for school work that requires repetitive calculations or calculations needing a computer.

Example

Here I define two formulas. Notice the @register_formula(...) decorator that registers the formulas with the library.

from formula_prompt import *

@register_formula([NumInput("side length")])
def volume_of_cube(s):
  return s ** 3

@register_formula([NumInput("length"), NumInput("width")])
def area_of_rectangle(length, width):
  return length * width

Now that the library has registered the formulas, I can launch the prompt.

launch_prompt()

The prompt lets you pick a formula and evaluate it.

0:	area_of_rectangle
1:	volume_of_cube
2:	quit
Pick a formula:
>>> 1
Input side length:
>>> 3
volume_of_cube:
27.0

For more examples, look at the /examples folder on GitHub.

How to use this library

  1. Install the library by running: pip install formula-prompt

  2. Write your formulas (see example above).

  3. Add the @register_formula(...) decorator (see below).

  4. Call launch_prompt().

Using @register_formula(...)

@register_formula(...) is a decorator that takes in a few parameters.

name Required Description
func_inputs Yes A list of objects describing the inputs to your formula (see allowed formula inputs section below).
decimal_places No. Defaults to 4. Decimal places to round the results of your formula to. Specify None to disable rounding.
name No. Defaults to the function name. Lets you set the name that will be displayed in the prompt. Names containing dots (.) will be considered folders. For example, volumes.cube will place the formula in a volumes folder and display the formula as cube.

Allowed formula inputs

You can specify three types of inputs.

  • NumInput: For inputs that accepts a single floating-point number.

  • IntInput: For inputs that accept a single integer.

  • ListInput: For inputs that accept a list of floating-point numbers.

You can use optional=True to allow skipping the input (this will pass None to your function).

Here's an example.

@register_formula([
    IntInput("first optional input", optional=True),
    NumInput("second non-optional input")
])
def some_funtion(first_integer_input, second_float_input):
    ...

You can also make a custom input type by creating a class that inherits from Inputs. See inputs.py.

Metadata

Release files for formula-prompt 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for formula-prompt 0.1.0
File Size Uploaded
formula_prompt-0.1.0.tar.gz 5.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for formula-prompt 0.1.0
File Interpreter ABI Platform
formula_prompt-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 13.5 kB

Release files / formula_prompt-0.1.0.tar.gz

Download URL formula_prompt-0.1.0.tar.gz
Size 5.8 kB
Tags Source
SHA-256 checksum
How to use checksums
b53239795c520db87358f9feeaf38a46bd6269620ea536aef6b8b433f6a9ce31
BLAKE2b-256 checksum
How to use checksums
8fce09bbac89dfc5eca9ef921d2794a77326e78c2b44681f458b323f4941ca75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.0 importlib_metadata/3.7.3 packaging/20.9 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

Release files / formula_prompt-0.1.0-py3-none-any.whl

Download URL formula_prompt-0.1.0-py3-none-any.whl
Size 7.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cc24456848149c290a4e512c8d65e738ebf06ad6a1fc59676eed8643fd5acd5d
BLAKE2b-256 checksum
How to use checksums
31abe0150667ee8f3d18b35327f3766683dd91b221be61eefe1b754b7d987701
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.0 importlib_metadata/3.7.3 packaging/20.9 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0.3

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page