hunterMakesPy
Utilities for converting mixed input to integers, calculating CPU limits, handling None values, importing code dynamically, and manipulating nested data.
Validate, Convert, and Parse Inputs
Convert Mixed Input to Validated Integers
Accepts strings, floats, complex numbers, and binary data and returns a list of validated integers. Ambiguous or incompatible values produce descriptive errors.
from hunterMakesPy.parseParameters import intInnit
ports = intInnit(["8080", 443, "22"], "server_ports")
# Returns: [8080, 443, 22]
Calculate Concurrency Limits from Flexible Specifications
Pass 0.75 for 75% of CPUs, True for 1 CPU, 4 for exactly 4 CPUs, or -2 to reserve 2 CPUs.
from hunterMakesPy.parseParameters import defineConcurrencyLimit
workers = defineConcurrencyLimit(limit=0.75) # 6 on an 8-core machine
Interpret Strings as Boolean or None
Parse string values such as "true", "false", or "none" into their Python equivalents without raising exceptions on mismatch.
from hunterMakesPy.parseParameters import oopsieKwargsie
oopsieKwargsie("True") # Returns: True
oopsieKwargsie("none") # Returns: None
oopsieKwargsie("hello") # Returns: "hello"
Eliminate None with Runtime Validation
Convert Type | None return annotations to Type by raising at runtime if the value is None. Removes None-checking noise from downstream code and satisfies type checkers.
from hunterMakesPy import raiseIfNone
config = raiseIfNone(getConfig(), "Missing configuration")
Replace Ambiguous Numeric Literals with Semantic Names
Use decreasing instead of -1, inclusive for boundary adjustments, and zeroIndexed for index conversions. Intent becomes explicit and the code reads as prose.
from hunterMakesPy import decreasing, inclusive, zeroIndexed
rangeEnd = lengthSequence + inclusive
indexLast = lengthSequence - zeroIndexed
step = decreasing
Import Modules by Dot-Notation Path or File Path
Load functions or classes from "scipy.signal.windows" or "path/to/file.py" without manual module-loading boilerplate.
from hunterMakesPy.kitFilesystem import importLogicalPath2Identifier, importPathFilename2Identifier
windowFunction = importLogicalPath2Identifier("scipy.signal.windows", "hann")
parse = importPathFilename2Identifier("path/to/asdl.py", "parse")
Create Directories Safely and Write Files with Formatting
Write to "deep/nested/path/file.txt" and parent directories are created automatically. writePython removes unused imports and sorts import statements before writing.
from hunterMakesPy.kitFilesystem import writeStringToHere, writePython
writeStringToHere("content", "nested/dirs/file.txt") # Creates dirs
writePython(sourceCode, "output/module.py") # Formats, then writes
Extract Strings from Arbitrarily Nested Data
Recursively traverse dictionaries, lists, tuples, and sets and collect every string value into a flat list.
from hunterMakesPy.dataStructures import stringItUp
strings = stringItUp({"users": ["alice"], "config": {"host": "localhost"}})
# Returns: ["users", "alice", "config", "host", "localhost"]
Merge Dictionaries with List Values
Combine {"a": [1, 2]} and {"a": [3], "b": [4]} into {"a": [1, 2, 3], "b": [4]} with optional deduplication and sorting.
from hunterMakesPy.dataStructures import updateExtendPolishDictionaryLists
merged = updateExtendPolishDictionaryLists(
{"servers": ["chicago"]},
{"servers": ["tokyo", "chicago"]},
destroyDuplicates=True,
)
# Returns: {"servers": ["chicago", "tokyo"]}
Compress NumPy Arrays to Self-Decoding Strings
Encode repetitive patterns and consecutive sequences using run-length encoding and Python range syntax. The resulting string evaluates back to the original data.
from hunterMakesPy.dataStructures import autoDecodingRLE
encoded = autoDecodingRLE(arrayTarget)
Configure Package Metadata at Runtime
PackageSettings reads pyproject.toml automatically to resolve the package name and installation path.
from hunterMakesPy import PackageSettings
settings = PackageSettings(identifierPackageFALLBACK="myPackage")
Report the Call That Broke a Test
Import assertion functions that name the function and the arguments in the failure message, so a failing parameterized test shows exactly which call produced the wrong value. assert_array_equal and assert_allclose do the same for NumPy arrays.
from hunterMakesPy.tests import assertEqualTo
assertEqualTo(intInnit(["8080", 443]), [8080, 443], intInnit.__name__, ["8080", 443])
My recovery
By law, authors retain their copyrights unless they grant exceptions. The Attribution-NonCommercial 4.0 International Deed outlines how you may use this work.
The restriction on commercial use (without a license) limits advantage-taking, unjust enrichment, and exploitation. You would be morally wrong if you were to enrich yourself by using this work while I am denied healthcare, housing, security of property, and the safety of my person.
To obtain and retain the right to use this work, you incur the cost of attributing the work to me. Your nominal cost might accrue as a benefit that mitigates my suffering or saves my life.
Metadata
Release files for hunterMakesPy 0.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| huntermakespy-0.10.0.tar.gz | 43.2 kB | Without provenance | Details for huntermakespy-0.10.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| huntermakespy-0.10.0-py3-none-any.whl | Python 3 | none | any | Details for huntermakespy-0.10.0-py3-none-any.whl |
Total release size: 90.0 kB
Release files / huntermakespy-0.10.0.tar.gz
| Download URL | huntermakespy-0.10.0.tar.gz |
|---|---|
| Size | 43.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
82400e3f41449b4e844963d8a04ead6c05c1805d9872a6a0f8254a4d8732fbd6
|
|
BLAKE2b-256 checksum How to use checksums |
26198daaffaa7998f5bfe75fe5664fd2b51eaa87a05029c3fa85fe0228d14502
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / huntermakespy-0.10.0-py3-none-any.whl
| Download URL | huntermakespy-0.10.0-py3-none-any.whl |
|---|---|
| Size | 46.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a43349312deb78926128c2e7ab780ace5b0b987ff76e8bff9a42f0dc21606737
|
|
BLAKE2b-256 checksum How to use checksums |
a226f9e722991eb108213ee6392158ad4e7f5dd4107aa4d5839ff93bc2c3416f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Security for hunterMakesPy 0.10.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.