Skip to main content

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

Project description

Image
Version: 1.2.241003.0
(Main.sub.YYMMDD.rev)
- GitHub Repo | PyPi Repo
- Author's GitHub Profile

Installation

This package can be installed & upgraded using pip:

pip install -U plaintools

Introduction

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 pt.plist or 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(pt.pnumber) function are:

>>> import PlainTools as pt

>>> 0.1 * 3
0.30000000000000004

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

>>> 5 / 3
1.6666666666666667

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

>>> 1 / 73
0.0136986301369863

>>> pt.pnumber(1 / 73)
0.013698630136986301369863... # Can detect long chains of repeating decimals!
؜

>>> 0.9999999999999988
0.9999999999999988

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

>>> 0.00000000001 ** 3
9.999999999999999e-34

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

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

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

Simple, right?

Countless more examples can be found in the Library's Documentation Page, so please check it out!

GitHub Repo & Pages is a constant WIP!!
Thank you 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.2.241004.1.tar.gz (748.8 kB view details)

Uploaded Source

Built Distribution

plaintools-1.2.241004.1-py3-none-any.whl (749.6 kB view details)

Uploaded Python 3

File details

Details for the file plaintools-1.2.241004.1.tar.gz.

File metadata

  • Download URL: plaintools-1.2.241004.1.tar.gz
  • Upload date:
  • Size: 748.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for plaintools-1.2.241004.1.tar.gz
Algorithm Hash digest
SHA256 706f7f83bbb866eeb88494c8a4b8551b05cf5d2d46b83dff9476f78932dd392c
MD5 4bf107fa727bcb53ee0e246ee59340e7
BLAKE2b-256 758a174fe1b54f6952e4f428592e1bc6fd86378d0e8b1de1ff77fe76dffddc9c

See more details on using hashes here.

File details

Details for the file plaintools-1.2.241004.1-py3-none-any.whl.

File metadata

File hashes

Hashes for plaintools-1.2.241004.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c233a60d64b2bb4fba51eee7df33141afc5bdbf7e90de3e524f9d214f1675cda
MD5 fec89048dddb99a23690ba5ccd6b3a98
BLAKE2b-256 583674b1b6a005ec404ea6835bad17ba575c054009fd394230d050d099e3e6d9

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