Skip to main content

wildling

Python library and CLI for pattern-based string generation. Zero third-party dependencies (stdlib only). Requires Python 3.9+.

Docs: Website · Sandbox · Syntax · Source

Registry: PyPI

Example

http://${'dev,stage,prod'}\-${'api,web'}#{0-2}.example.${'com,net,org'}/@.html

(The \- is a literal hyphen; bare - would mean “one letter or digit”. @ is one lowercase letter.)

That builds URL-shaped candidates: scheme http://, then environment × service × optional digits × TLD, then a one-letter path page. Three environments, two services, zero–two digits ('', 0–9, 00–99), three TLDs, and a–z → 51948 strings — the kind of list you generate for fuzzing links or probing staging hosts, not type out.

A few of them:

  • http://dev-api.example.com/a.html / http://stage-web.example.com/z.html
  • http://dev-api0.example.net/a.html / http://prod-web9.example.org/m.html
  • http://dev-api00.example.com/a.html / http://prod-web99.example.org/z.html

Named dictionaries (%{'hosts'}) work the same way when the word lists live in files.

Try it in the sandbox, or see pattern syntax for length ranges, dictionaries, and escapes.

Install

From this repository:

cd python
./build.sh
# or without Docker:
cp ../docs/help.txt wildling/help.txt

The CLI is ./bin/wildling.

Registry: pip install wildling

Git:

pip install "git+https://github.com/dotmonk/wildling.git@v2.0.7#subdirectory=python"

Library

from wildling import create_wildling

wildling = create_wildling(
    patterns=["abrakadabra", "Year 19##"],
    dictionaries={"colors": ["red", "blue"]},
)

wildling.count()  # 101
wildling.get(0)   # "abrakadabra"

value = wildling.next()
while value is not False:
    print(value)
    value = wildling.next()

wildling.reset()

API

Method Description
next() Next combination, or False when exhausted
get(index) Combination at index, or False if out of range
count() Total combinations across all patterns
index() Current position (after next calls)
reset() Reset iteration to the start
generators() Per-pattern generators

CLI

./bin/wildling "Year 19##"
./bin/wildling --dictionary planets:../dictionaries/planets.txt "%{'planets'}"
./bin/wildling --template ./config.json

Help text and --check output follow docs/cli.md / docs/help.txt.

Build

./build.sh   # Docker: copy help.txt + byte-compile

Project tests live in ../tests/ and are run with ../test.sh.

Metadata

Release files for wildling 2.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wildling 2.0.7
File Size Uploaded Provenance
wildling-2.0.7.tar.gz 9.1 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for wildling 2.0.7
File Interpreter ABI Platform
wildling-2.0.7-py3-none-any.whl Python 3 none any Details

Total release size: 18.5 kB

Release files / wildling-2.0.7.tar.gz

Download URL wildling-2.0.7.tar.gz
Size 9.1 kB
Tags Source
SHA-256 checksum
How to use checksums
66979acb8e766617551b1a3a12dee9561291dd3fba188e79ddb9de7bb06459b1
BLAKE2b-256 checksum
How to use checksums
5948359589ae24cfc1ded6bf90447cabb10828ad0934ab1f369808f2fbba80dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.

Transparency log

Release files / wildling-2.0.7-py3-none-any.whl

Download URL wildling-2.0.7-py3-none-any.whl
Size 9.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ba43e0234a9cd3f332d26d4fd8a0654cb0ca31a516a56a1307b3bc2e1dec3a9c
BLAKE2b-256 checksum
How to use checksums
1b45dc604d524a980bd3925b6a4bdba9320e49035b4fd8e048b463316911315c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.

Transparency log

Security for wildling 2.0.7

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for wildling-2.0.7.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.

Transparency log

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.

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