fix: provider() unicode-digit crash + phantom() short-value false-mask (v0.3.2)
provider() used str.isdigit(), which accepts unicode digit lookalikes (e.g. superscript ²) that int() can't parse, crashing on digit-only-looking input; _digits() now filters on isdecimal()+isascii() so only real ASCII digits pass through. phantom() revealed the entire value for len <= 10 while still looking masked (first6+last4 fully covers or double-covers short strings); those now fully mask instead. Also compresses several essay-length docstrings (retry, masking, paths) to a line plus the real nuance, with zero behavior change, and bumps the README install pin. Signed-off-by: disqualifier <dev@disqualifier.me>
This commit is contained in:
@@ -12,15 +12,15 @@ Small sync helpers shared across projects. Base is stdlib only — **no dependen
|
||||
## Install
|
||||
|
||||
```
|
||||
commons @ git+ssh://git@git.rethinkstudios.io/rethink-public/commons.git@v0.3.1
|
||||
commons @ git+ssh://git@git.rethinkstudios.io/rethink-public/commons.git@v0.3.2
|
||||
# async address/geo lookups (fetch_ip / ip_location / fetch_location) need the extra:
|
||||
commons[addr] @ git+ssh://git@git.rethinkstudios.io/rethink-public/commons.git@v0.3.1
|
||||
commons[addr] @ git+ssh://git@git.rethinkstudios.io/rethink-public/commons.git@v0.3.2
|
||||
```
|
||||
|
||||
The base install pulls **nothing** (stdlib). Only `commons[addr]` adds `aiohttp`, and
|
||||
only for the geo lookups — the pure `commons.addr.ip` utilities ship in base.
|
||||
|
||||
Drop the `@v0.3.1` suffix from the line above to install the latest unpinned.
|
||||
Drop the `@v0.3.2` suffix from the line above to install the latest unpinned.
|
||||
|
||||
## timing
|
||||
|
||||
@@ -121,7 +121,9 @@ from commons import credit, cvv, phantom, provider, mask_url, mask_proxy
|
||||
credit("4111 1111 1111 1234") # "•••• •••• •••• 1234"
|
||||
cvv("123") # "•••"
|
||||
phantom("abcdef1234567890") # "abcdef...7890"
|
||||
phantom("1234567890") # "••••••••••" (len <= 10 fully masks, never a false reveal)
|
||||
provider("4111111111111111") # "VISA" (VISA/MC/AMEX/UPAY/DISC/JCB/DNRS/UNKW)
|
||||
provider("4111²111111111234") # "VISA" (unicode digit lookalikes ignored, never raises)
|
||||
|
||||
# redact credentials in a connection string before logging it
|
||||
mask_url("https://u:pw@api.x/v2?apiKey=SECRET&ip=8.8.8.8")
|
||||
|
||||
Reference in New Issue
Block a user