Skip to main content

A library designed to streamline simple operations, loops and contexts.

Project description

Image

Version: V1.0.240918b (As in: Main.sub.YYMMDD branch)

Introduction

Welcome to the PlainTools library's GitHub repo!

PlainTools is a Python 3 library designed to introduce new features and fix awkward common interactions present in the Python 3 native ecosystem.

Most functions are prefixed with 'p' (as in :code:pt.plist or :code:pt.pround) to avoid homonyms. The 'p' stands for 'Plain' and are the namesake of this package.

Some simple, yet relevant examples using the 'Plain Number' function are:

>>> import PlainTools as pt

>>> print(0.1 * 3)
0.30000000000000004

>>> print(pt.pnumber(0.1 * 3))
0.3 # Deals with float imprecision errors.
؜

>>> print(5 / 3)
1.6666666666666667

>>> print(pt.pnumber("5 / 3"))
1.666... # '...' present only in string format; The true value is still float(5/3).
؜

>>> print(7 / 53)
0.0958904109589041

>>> print(pt.pnumber(7 / 53))
0.095890410958904109589041... # Can detect long chains of repeating decimals!
؜

>>> print(0.9999999999999988)
0.9999999999999988

>>> print(pt.pnumber(0.9999999999999988))
0.9999999999999988 # No loss of precision up to 15 literal digits.
؜

>>> print(0.00000000001 ** 3)
9.999999999999999e-34

>>> print(pt.pnumber(0.00000000001 ** 3))
1e-33 # Corrects scientific-notated float imprecisions as well.
؜

>>> print(pt.pnumber("math.pi")) # A safe variation of 'eval()' is used, as shown below!
3.141592653589793

# https://stackoverflow.com/a/1933463/26469850
>>> print(pt.pnumber("import shutil; shutil.rmtree('/.')")) # Example of malicious use.
PlainTools.SEVAL.UnsafeError: Invalid syntax in expression
؜

Simple, right?

GitHub Repo|Pages & Documentation is yet Work in Progress!! Thanks for your attention!**


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

plaintools-1.0.240918b0.tar.gz (1.8 MB view details)

Uploaded Source

Built Distribution

plaintools-1.0.240918b0-py3-none-any.whl (29.7 kB view details)

Uploaded Python 3

File details

Details for the file plaintools-1.0.240918b0.tar.gz.

File metadata

  • Download URL: plaintools-1.0.240918b0.tar.gz
  • Upload date:
  • Size: 1.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for plaintools-1.0.240918b0.tar.gz
Algorithm Hash digest
SHA256 5fc0012f3224c937eaf61c43dc809b08b63d5281edb231964bb4cac0b984841f
MD5 b66ecb38e05830620264fa4fb65c03d7
BLAKE2b-256 b520ffac6443286dc3b6fcf7413dbc7ce9cfcfd64c8d2fb0b5cd0923caaa6eed

See more details on using hashes here.

File details

Details for the file plaintools-1.0.240918b0-py3-none-any.whl.

File metadata

File hashes

Hashes for plaintools-1.0.240918b0-py3-none-any.whl
Algorithm Hash digest
SHA256 a5bc0b22292133ba3f413515a932336fcadf8a18de47239177b16c5a0ff63ebb
MD5 9b4ade4e4960d9e28a1fec6fe56a3bad
BLAKE2b-256 617d6f4cffcccc7c5f9c7cd229d18c3c2c9a1c8e8d8e0d3a5d26b674d024b82c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page