From 28658b27720d9eb48c9f9f0edfadb3247910de43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Alvergnat?= Date: Wed, 23 Dec 2020 22:16:25 +0100 Subject: [PATCH] fix(regex): use rebulk 3+ to have regex module disabled by default Regex module is now disabled by default in rebulk 3+. It can be enabled with REBULK_REGEX_ENABLED=1 in your environment. --- .github/workflows/ci.yml | 16 +++++++++++++++- guessit/rules/common/__init__.py | 2 +- guessit/rules/common/expected.py | 2 +- guessit/rules/common/quantity.py | 3 ++- guessit/rules/properties/bit_rate.py | 2 +- guessit/rules/properties/size.py | 2 +- guessit/rules/properties/streaming_service.py | 2 +- setup.py | 2 +- 8 files changed, 23 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 80533d2..a791a2d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,14 @@ jobs: strategy: fail-fast: false matrix: - python-version: [ 3.5, 3.6, 3.7, 3.8, 3.9, pypy-3.6 ] + python-version: [ 3.5, 3.6, 3.7, 3.8, 3.9, pypy-3.6, pypy-3.7 ] + regex: [ "0", "1" ] + exclude: + # regex module doesn't play well with pypy and unicode. + - python-version: pypy-3.6 + regex: "1" + - python-version: pypy-3.7 + regex: "1" steps: - name: Setup python ${{ matrix.python-version }} @@ -31,10 +38,17 @@ jobs: pip install -e .[dev,test] pip install coveralls + - name: Install regex + run: | + pip install regex + if: ${{ matrix.regex == '1' }} + - run: pylint guessit if: matrix.python-version != '3.9' - run: coverage run --source=guessit setup.py test + env: + REBULK_REGEX_ENABLED: ${{ matrix.regex }} - run: python setup.py build diff --git a/guessit/rules/common/__init__.py b/guessit/rules/common/__init__.py index 444dc72..24f9433 100644 --- a/guessit/rules/common/__init__.py +++ b/guessit/rules/common/__init__.py @@ -3,7 +3,7 @@ """ Common module """ -import re +from rebulk.remodule import re seps = r' [](){}+*|=-_~#/\\.,;:' # list of tags/words separators seps_no_groups = seps.replace('[](){}', '') diff --git a/guessit/rules/common/expected.py b/guessit/rules/common/expected.py index eae562a..19f2f88 100644 --- a/guessit/rules/common/expected.py +++ b/guessit/rules/common/expected.py @@ -3,7 +3,7 @@ """ Expected property factory """ -import re +from rebulk.remodule import re from rebulk import Rebulk from rebulk.utils import find_all diff --git a/guessit/rules/common/quantity.py b/guessit/rules/common/quantity.py index 770fc2f..8d3f21d 100644 --- a/guessit/rules/common/quantity.py +++ b/guessit/rules/common/quantity.py @@ -3,9 +3,10 @@ """ Quantities: Size """ -import re from abc import abstractmethod +from rebulk.remodule import re + from ..common import seps diff --git a/guessit/rules/properties/bit_rate.py b/guessit/rules/properties/bit_rate.py index d279c9f..640a6a2 100644 --- a/guessit/rules/properties/bit_rate.py +++ b/guessit/rules/properties/bit_rate.py @@ -3,7 +3,7 @@ """ video_bit_rate and audio_bit_rate properties """ -import re +from rebulk.remodule import re from rebulk import Rebulk from rebulk.rules import Rule, RemoveMatch, RenameMatch diff --git a/guessit/rules/properties/size.py b/guessit/rules/properties/size.py index c61580c..0a09700 100644 --- a/guessit/rules/properties/size.py +++ b/guessit/rules/properties/size.py @@ -3,7 +3,7 @@ """ size property """ -import re +from rebulk.remodule import re from rebulk import Rebulk diff --git a/guessit/rules/properties/streaming_service.py b/guessit/rules/properties/streaming_service.py index f467f20..cccd16d 100644 --- a/guessit/rules/properties/streaming_service.py +++ b/guessit/rules/properties/streaming_service.py @@ -3,7 +3,7 @@ """ streaming_service property """ -import re +from rebulk.remodule import re from rebulk import Rebulk from rebulk.rules import Rule, RemoveMatch diff --git a/setup.py b/setup.py index 0f1900f..3c5edea 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ with io.open(os.path.join(here, 'README.md'), encoding='utf-8') as f: with io.open(os.path.join(here, 'CHANGELOG.md'), encoding='utf-8') as f: changelog = f.read() -install_requires = ['rebulk==2.*', 'babelfish', 'python-dateutil'] +install_requires = ['rebulk>=3', 'babelfish', 'python-dateutil'] setup_requires = ['pytest-runner']