Skip to main content

Bash style brace expander.

Project description

Donate via PayPal Discord 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.4.tar.gz (26.6 kB view details)

Uploaded Source

Built Distribution

bracex-2.4-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bracex-2.4.tar.gz
  • Upload date:
  • Size: 26.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for bracex-2.4.tar.gz
Algorithm Hash digest
SHA256 a27eaf1df42cf561fed58b7a8f3fdf129d1ea16a81e1fadd1d17989bc6384beb
MD5 46e012109f255fb29bcaef8bf9c8f5c9
BLAKE2b-256 908b34d174ce519f859af104c722fa30213103d34896a07a4f27bde6ac780633

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bracex-2.4-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for bracex-2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 efdc71eff95eaff5e0f8cfebe7d01adf2c8637c8c92edaf63ef348c241a82418
MD5 dceb57b1f7ab21bff24e8630cdbb7882
BLAKE2b-256 2bf58f99837b32e2badc189382774dbe6227fa01e1e928a7eff857fdc89d8a75

See more details on using hashes here.

Supported by

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