Skip to main content

Bash style brace expander.

Project description

Donate via PayPal Build Coverage Status PyPI Version PyPI - Python Version License

Bracex

Bracex is a brace expanding library (à la Bash) for Python. Brace expanding is used to generate arbitrary strings.

$ echo {{a,b},c}d
ad bd cd

Bracex adds this ability to Python:

>>> bracex.expand(r'file-{{a,b},c}d.txt')
['file-ad.txt', 'file-bd.txt', 'file-cd.txt']

and as a command:

$ python3 -m bracex -0 "base/{a,b}/{1..2}" | xargs -0 mkdir -p
$ tree base/
base/
├── a
│   ├── 1
│   └── 2
└── b
    ├── 1
    └── 2
  • Why Bracex over other solutions?

    Bracex actually follows pretty closely to how Bash processes braces. It is not a 1:1 implementation of how Bash handles braces, but generally, it follows very closely. Almost all of the test cases are run through Bash first, then our implementation is compared against the results Bash gives. There are a few cases where we have purposely deviated. For instance, we are not handling Bash's command line inputs, so we are not giving special meaning to back ticks and quotes at this time.

    On the command line Bracex can handle more expansions than Bash itself.

Install

$ pip install bracex

Documentation

Documentation is found here: https://facelessuser.github.io/bracex/.

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bracex-2.6.tar.gz (26.6 kB view details)

Uploaded Source

Built Distribution

bracex-2.6-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file bracex-2.6.tar.gz.

File metadata

  • Download URL: bracex-2.6.tar.gz
  • Upload date:
  • Size: 26.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for bracex-2.6.tar.gz
Algorithm Hash digest
SHA256 98f1347cd77e22ee8d967a30ad4e310b233f7754dbf31ff3fceb76145ba47dc7
MD5 e4e088684a402e00aabb84990e57eb3f
BLAKE2b-256 639afec38644694abfaaeca2798b58e276a8e61de49e2e37494ace423395febc

See more details on using hashes here.

Provenance

The following attestation bundles were made for bracex-2.6.tar.gz:

Publisher: deploy.yml on facelessuser/bracex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bracex-2.6-py3-none-any.whl.

File metadata

  • Download URL: bracex-2.6-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for bracex-2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 0b0049264e7340b3ec782b5cb99beb325f36c3782a32e36e876452fd49a09952
MD5 b3a71e8173ff8e33c204cf7f987ba9f7
BLAKE2b-256 9d2a9186535ce58db529927f6cf5990a849aa9e052eea3e2cfefe20b9e1802da

See more details on using hashes here.

Provenance

The following attestation bundles were made for bracex-2.6-py3-none-any.whl:

Publisher: deploy.yml on facelessuser/bracex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page