Skip to main content
Image
Version

Version

Installation

This package is Python 3.11+ compatible and can be installed & upgraded using pip:

pip install -U plaintools

The latest release and its changelog can also be found here.


Introduction

PlainTools is a Python 3.11+ library designed to introduce new features and fix awkward common interactions present in the Python 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.


Examples

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.9999999999991234)
0.999999999999123 # 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.14159265358979

# 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!


Resources & Credits

This project would be impossible to make without the support of my friends and family around me.

Thank you everyone.

  • Credits & Thanks:
    • A big thanks to my professor Vitor Tocci, who lectured Introduction to Data Proccessing and introduced me into Python programming when I had little background experience in the matter.
    • Thanks to my beloved girlfriend Ana Caroline, who tirelessly heard me babble about Python through hours in these past few months where I was still learning and improving much of my understanding of the language. I love you!
    • Thanks to all of my friends and family, including @CherryGM who helped me revise this documentation and greatly encouraged me. And to everyone who helped me debug this documentation itself when I had zero Sphinx knowledge. I hope I did well enough and hope to do much more in the future!

؜

  • Disclaimer: LLM (AI) Use:
    • ChatGPT, Codeium and Gemini (The later not credited as it did not "contribute" directly to the codebase) were used in this project development.
    • If you, your university or your company (in general, if the target for this library's use) does have any restrictions, implicit or explicit, against the use of LLMs in production | academic coding, please avert from using this library.
    • Any code "contributed" by or taken from any LLM (AI) use, prompted directly or indirectly, was heavily debugged and tested (to the best of my personal capacity). You will probably find 40~80% LLM-made code** wherever attributes from the following libraries were used:
      • re
      • ast
      • itertools
      • functools
      • multiprocessing
    • If any code comes across as sluggish, unnoptimized or just bad, please let me know by raising an issue or DMing me at GitHub @gabrielmsilva00, or by emailing me at gabrielmaia.silva00@gmail.com.

؜

؜

Metadata

Release files for PlainTools 1.3.241226.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 PlainTools 1.3.241226.0
File Size Uploaded Provenance Actions
plaintools-1.3.241226.0.tar.gz 872.2 kB Without provenance Details for plaintools-1.3.241226.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for PlainTools 1.3.241226.0
File Interpreter ABI Platform Actions
plaintools-1.3.241226.0-py3-none-any.whl Python 3 none any Details for plaintools-1.3.241226.0-py3-none-any.whl

Total release size: 1.7 MB

Release files / plaintools-1.3.241226.0.tar.gz

Download URL plaintools-1.3.241226.0.tar.gz
Size 872.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f7dcaabe051458b3eeba4a7082b4ec6bef7974ef6648275444c714db7e1400a4
BLAKE2b-256 checksum
How to use checksums
1d2c0bb0caab63a43800eff26cbcef4355e0b1bb8711b621fa216f062dcc5896
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

Release files / plaintools-1.3.241226.0-py3-none-any.whl

Download URL plaintools-1.3.241226.0-py3-none-any.whl
Size 873.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
35df29c5b133b15bc6e172fb6c012977e92a516ca05e7821b3cb90ac0393a4f7
BLAKE2b-256 checksum
How to use checksums
684c05a4ed0ab38b0adb4a9b39683a0bc47e42b408bf4092ed71d029c32a1ccf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

Security for PlainTools 1.3.241226.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.3.241226.0 This release

2 release files No provenance

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