multinut

PyPI - Version Downloads - Monthly Python Versions Wheel

The multitool nobody asked for. Includes stuff and so.


multinut.env

A simple but flexible environment loader.

Supports .env file parsing with optional mode suffixes (e.g. .env.production, .env.testing, etc.), lazy loading, and dynamic access.

Features

  • Mode-based config support (.env.production, .env.testing, etc.)

  • Access via:

    • env["KEY"]
    • env.get("KEY", ...)
    • env.KEY
  • Optional type casting (str, bool, list, dict, etc.)

  • Sane default handling

  • Does not mutate os.environ


Use cases

  • Loading .env files in mode-aware Python projects
  • Separating secrets and configs by deployment context
  • Dynamically reading values like env.DB_URL, env.get("DEBUG", default=False, cast=cast_bool)
  • Avoiding os.environ pollution

Basic Example

from multinut.env import Environment, Modes

env = Environment(env_file_name=".env", mode=Modes.DEVELOPMENT)

print(env.get("DEBUG", default=False))
print(env["API_KEY"])
print(env.DB_URL)

Given a .env.development file:

DEBUG=true
API_KEY=secret
DB_URL=https://example.com

Smart Casts Example

from multinut.env import (
    Environment, cast_bool, cast_int, cast_float,
    cast_list, cast_tuple, cast_dict, cast_none_or_str
)

env = Environment()

print("INT:", env.get("PORT", cast=cast_int))                      # -> int
print("FLOAT:", env.get("PI", cast=cast_float))                    # -> float
print("BOOL:", env.get("ENABLED", cast=cast_bool))                 # -> bool
print("LIST:", env.get("NUMBERS", cast=cast_list))                 # -> list[str]
print("TUPLE:", env.get("WORDS", cast=cast_tuple))                 # -> tuple[str]
print("DICT:", env.get("CONFIG", cast=cast_dict))                  # -> dict
print("NONE_OR_STR:", env.get("OPTIONAL", cast=cast_none_or_str))  # -> None or str

Example .env:

PORT=8080
PI=3.1415
ENABLED=yes
NUMBERS=1,2,3
WORDS=hello,world,test
CONFIG={"timeout": 30, "debug": true}
OPTIONAL=null

Included Cast Helpers

All built-in cast functions handle common edge cases:

Cast Function Description
cast_str Ensures string
cast_int Converts to integer
cast_float Converts to float
cast_bool Accepts 1, true, yes, on, etc.
cast_list Comma-split list
cast_tuple Comma-split, converted to tuple
cast_dict Parses JSON string into dictionary
cast_none_or_str Returns None if value is null or None

EnviromentKeyMissing

if a key is get from env.get and it has no default given it will raise EnviromentKeyMissing(f"Environment variable '{key}' not found.")

Understood, mistress. Here is the final README.md section dedicated to your chaotic masterpiece:


multinut.stultus

A logic module that proudly makes every operation slower, dumber, and HTTPS-dependent. Each logical comparison or boolean operation is turned into a full HTTPS request to https://stultus.chipperfluff.at, for no reason other than chaos and fluff.

Features

  • Logic-as-a-Service™️ (LaaS)
  • Every basic logic op (==, <, >, and, or, not) done via remote API
  • Combo logic like >= and <= make three separate HTTPS calls each
  • Full TLS overhead, network latency, and JSON parsing baked into every if statement
  • Built-in server availability check
  • Custom StultusUnavailable exception when your logic server goes poof

Available Functions

Function Description HTTP Requests
EQUALS(a, b) Returns a == b 1
GREATER(a, b) Returns a > b 1
LESSER(a, b) Returns a < b 1
NOT(x) Returns not x 1
AND(*args) Returns all(args) 1
OR(*args) Returns any(args) 1
GREATER_EQUAL(a, b) Returns a >= b 3 💀
LESSER_EQUAL(a, b) Returns a <= b 3 💀

Example Usage

from multinut.stultus import GREATER_EQUAL, EQUALS, ping, StultusUnavailable

if ping():
    print("Stultus server is online.")

try:
    if GREATER_EQUAL(5, 5):
        print("Greater or equal confirmed. Using three HTTP requests.")
except StultusUnavailable as err:
    print(f"🛑 Failed to logic: {err}")

StultusUnavailable

Every function in multinut.stultus relies on a sacred remote endpoint: https://stultus.chipperfluff.at

When the shrine is unreachable—due to squirrels sleeping, servers crashing, or fate itself rejecting logic—any function will raise:

StultusUnavailable: [STULTUS] Failed logic call to 'operation': [reason]

This ensures you see your failure instead of trusting a broken silence. Because when truth is outsourced, you deserve to know when the transmission failed.


ping()

Use ping() to determine whether the squirrel logic shrine is currently active:

from multinut.stultus import ping

if ping():
    print("Squirrel logic shrine is listening.")
else:
    print("The fluff has left the network.")

Returns True only when the /ping endpoint returns { "status": "ok" }. False means the fluff is silent. Prepare your backup shrine.


Latin Class Hierarchy

This module replaces standard Python primitives with HTTP-wrapped equivalents. They override operators (==, >=, +, [], etc.) and route them through remote endpoints—ensuring maximum latency, fragility, and squirrel-blessed absurdity.

Class Latin Meaning Description
StultusMixin Mixin of the Fool Injects HTTP logic into all descendants
StultusInt Foolish Integer Arithmetic and comparison via HTTP
StultusFloat Foolish Float Same as above, with floating shame
StultusStr Foolish String Equality, .upper(), .invert() all delegated
StultusBool Foolish Truth Truth is no longer local
StultusList Foolish List Push, pop, index via remote POST
StultusDict Foolish Dictionary Dictionary access through divine lookup

Example:

from multinut.stultus import StultusInt, StultusStr

a = StultusInt(5)
b = StultusInt(3)

if a >= b:
    print("Confirmed by the logic gods.")

word = StultusStr("uwu")
print(word.invert())  # 'uwu' reversed, via HTTP

Available Remote Functions

Every operation is offloaded via HTTPS.

Logic

EQUALS(a, b)
GREATER(a, b)
LESSER(a, b)
GREATER_EQUAL(a, b)  # makes 3 HTTPS requests
LESSER_EQUAL(a, b)
NOT(x)
AND(*args)
OR(*args)

Math

ADD(a, b)
SUB(a, b)
MUL(a, b)
DIV(a, b)              # division by zero = "division by fluff"
RANDINT(a, b)          # has artificial delay
RANGE(n, shuffle=True) # shuffled server-side

List Operations

LEN(list)
LIST_INDEX(list, index)
LIST_PUSH(list, item)
LIST_POP(list)

Dictionary Access

DICT_GET(dict, key)

String Tools

UPPER(str)
INVERT(str)

Truthiness

TRUTH(x)
BOOLIFY(str)  # wraps eval (yes, really)

Time & Crypto

TIME()                      # epoch + ISO + fluff-certainty
HASH_PASSWORD(pw, algo)     # e.g. sha256, sha1, md5 (pls no)

Disclaimer

⚠️ WARNING: This module is deliberately slow, unsafe, and ridiculous. It outsources core logic to a remote web server. Use it only for:

  • Chaos
  • Rituals
  • Art
  • Demos that make DevOps cry Never in production. Never with real data. Do not test this on anyone you love.

Contributing to multinut.stultus

Pull requests are gloriously welcome if they contain any of the following:

  • Inefficient use of the network
  • Operators reimplemented in Latin
  • Dumb ideas with great commitment
  • Broken logic wrapped in elegant lies
  • New subclasses like StultusComplex, StultusPath, or StultusEnum

Please do not fix performance, security, or clarity. The project is working as irrationally designed.

Veritas non localis est. Truth is not local.


Description
a multitool in python... oy i never said it would be usefull
Readme 107 KiB
Languages
Python 100%