Skip to main content

Evaluate Perl-Compatible Regular Expressions

Project description

PECOREGEX

Pecoregex stands for Perl-Compatible Regular Expression, better known as PCRE. Pecoregex is python-pcre's weird little cousin: like python-pcre, pecoregex acts as a bridge between Python and libpcre.

The key differences are:

  • pecoregex relies on ctypes to load and leverage libpcre.so; consequently, it can be installed without compiling anything;

  • pecoregex only provides access to the most essential features of libpcre: compiling and executing regexes (including retrieving captures); other features such as study(), JIT or sub() were not considered (yet?).

Modules

The pecoregex package provides multiple modules:

  • pecoregex.pcre provides PCRE_* constants and the PCRELibrary class; this is the part that actually interacts with libpcre.so; it can be used directly or through the other modules that build upon it;

  • pecoregex.document defines key names for the Pecoregex document format; Pecoregex documents are a way to bundle 1 to n PCRE patterns along with 0 to n subjects each.

  • pecoregex.factory provides helpers to build common Pecoregex documents (e.g. "1 subject, n patterns" documents);

  • pecoregex.util provides functions to process Pecoregex documents, i.e. compile the PCRE patterns they contain and match their associated subject strings against them;

  • pecoregex.cli is typically invoked through the pecoregex CLI tool; it provides a mean to compile and execute PCRE patterns: patterns and subjects are provided either as command-line arguments or by passing a Pecoregex document on the standard input (as JSON or YAML); supported output formats include text, JSON and YAML; therefore, it is perfectly possible to compile and execute multiple PCRE patterns and subjects before picking up their captures using jq.

  • pecoregex.extproc provides simple subprocess-based wrappers that leverage pecoregex.cli to compile and execute PCRE patterns in a separate process; this is meant for all those who consider calling C functions from Python as a threat to the reliability of their program.

License

This Python package and its modules are released under the 3-clause BSD 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

pecoregex-1.1.0.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pecoregex-1.1.0-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file pecoregex-1.1.0.tar.gz.

File metadata

  • Download URL: pecoregex-1.1.0.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.8

File hashes

Hashes for pecoregex-1.1.0.tar.gz
Algorithm Hash digest
SHA256 2ec05c5999654292045ca201086ee3a81465121dc6524f3c32d76430eb673818
MD5 55e3a390994d3ba6e1e6f23696c4b0eb
BLAKE2b-256 1c1d63eb83aa8453d12d8b5d016ed5826e3784899f79566b8ef630783245f077

See more details on using hashes here.

File details

Details for the file pecoregex-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: pecoregex-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.8

File hashes

Hashes for pecoregex-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 680e6c144c7c44fdc97fa8b5b43bc381da75fa08a70c68c3e53f41a63837c8ec
MD5 8e3afcd60375dee2b847017f8a6ff03f
BLAKE2b-256 b29988e4360393d54db5ecf9df19497814627377d14430d6e192dab42b74f607

See more details on using hashes here.

Supported by

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