Giter Club home page Giter Club logo

rstr's People

Contributors

agateau-gg avatar bjmc avatar goya813 avatar hayd avatar kolanich avatar krikunts avatar ksmanis avatar louisjustintallot avatar marksmayo avatar pcorpet avatar psykokwak4 avatar sblondon avatar slyon avatar ulrikforsgren avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rstr's Issues

Deletable test?

The class TestSystemRandom has only a setUp() method. I wonder about the goal of this test.

I have two hypotheses:

  • there were test methods, then deleted so the class can be safely removed
  • the goal is to check random.SystemRandom() passed as parameter. In such case, it would be better to rename the method (and add an assertion?).

What do you think about it?

Setup a CI

It would be safer to setup a Continuous Integration pipeline, running all tox builds on each PR.

As this is a public Open Source project, there are many solutions free of charge.

Release

Hello,
would you agree to make a release with the latest fix commit ?

Thanks a bunch ๐Ÿ™

Check matching include and exclude parameters

Hello,

it's possible to provide the same characters to include and exclude parameters. In such case, the characters are included. For example:

>>> rstr.rstr("a", include='b', exclude='b')
'aab'
>>> rstr.rstr("a", include='bc', exclude='bd')
'aabc'

I think about raising an exception (SameCharacterError?) if the intersection of include and exclude parameters is not empty. What do you think about it?

I can do the PR if you are interested.

xeger not handling certain non-capturing groups

Hi, thanks for this lib!
I have come across a weird behaviour using rstr.xeger: this pattern "(?:(?:^|;)(AAA|BBB|CCC))+$" aims to capture any string that contains groups of strings within ["AAA", "BBB", "CCC"], separated by semicolons. These are valid strings:

  • BBB;AAA
  • BBB;AAA;BBB
  • CCC

However xeger returns things like:

  • BBBCCC;CCCBBB : some groups are not separated
  • ;AAA;BBBCCC : the separator is also at the start of the string

support positive lookaheads

Positive lookaheads are useful to control the max length with predictable results. For example, multiple "words" that do not end with a whitespace with a max len of 11

^(?=.{2,11}$)[a-zA-Z]+([ -][a-zA-Z]+)*$

How to generate string of specified length for given regular expression?

Thanks for this cool library. I was wondering if it could generate strings of desired length matching given regular expression.

For instance, I'm looking for following behavior.

Input: expression = r'0*1*2', max length=10
Output: a sample of length 10 sequences that matches the regular expression r'0*1*2'

New release?

Hello,

could you release a 2.3 version on pypi.org?
The current pypi version was released in 2017 so the latest fixes and improvement are not provided.

failed tests with pypy3

>>> Test phase: dev-python/rstr-3.1.0
 * pypy3: running distutils-r1_run_phase python_test
test_convenience_function (test_package_level_access.TestPackageLevelFunctions) ... ok
test_rstr (test_package_level_access.TestPackageLevelFunctions) ... ok
test_xeger (test_package_level_access.TestPackageLevelFunctions) ... ERROR
test_add_alphabet (test_rstr.TestCustomAlphabets) ... ok
test_alphabet_at_instantiation (test_rstr.TestCustomAlphabets) ... ok
test_all_digits (test_rstr.TestDigits) ... ok
test_digits_exclude (test_rstr.TestDigits) ... ok
test_digits_include (test_rstr.TestDigits) ... ok
test_letters (test_rstr.TestLetters) ... ok
test_letters_exclude (test_rstr.TestLetters) ... ok
test_letters_include (test_rstr.TestLetters) ... ok
test_nondigits (test_rstr.TestNondigits) ... ok
test_nondigits_exclude (test_rstr.TestNondigits) ... ok
test_nondigits_include (test_rstr.TestNondigits) ... ok
test_alphabet_as_list (test_rstr.TestRstr) ... ok
test_custom_alphabet (test_rstr.TestRstr) ... ok
test_end_range_no_start_range (test_rstr.TestRstr) ... ok
test_exclude (test_rstr.TestRstr) ... ok
test_exclude_as_list (test_rstr.TestRstr) ... ok
test_include (test_rstr.TestRstr) ... ok
test_include_as_list (test_rstr.TestRstr) ... ok
test_include_specific_length (test_rstr.TestRstr)
Verify including characters doesn't make the string longer than intended. ... ok
test_length_range (test_rstr.TestRstr) ... ok
test_raise_exception_if_include_and_exclude_parameters_contain_same_character (test_rstr.TestRstr) ... ok
test_specific_length (test_rstr.TestRstr) ... ok
test_alphabet_as_list (test_rstr.TestSystemRandom) ... ok
test_custom_alphabet (test_rstr.TestSystemRandom) ... ok
test_end_range_no_start_range (test_rstr.TestSystemRandom) ... ok
test_exclude (test_rstr.TestSystemRandom) ... ok
test_exclude_as_list (test_rstr.TestSystemRandom) ... ok
test_include (test_rstr.TestSystemRandom) ... ok
test_include_as_list (test_rstr.TestSystemRandom) ... ok
test_include_specific_length (test_rstr.TestSystemRandom)
Verify including characters doesn't make the string longer than intended. ... ok
test_length_range (test_rstr.TestSystemRandom) ... ok
test_raise_exception_if_include_and_exclude_parameters_contain_same_character (test_rstr.TestSystemRandom) ... ok
test_specific_length (test_rstr.TestSystemRandom) ... ok
test_unambiguous (test_rstr.TestUnambiguous) ... ok
test_unambiguous_exclude (test_rstr.TestUnambiguous) ... ok
test_unambiguous_include (test_rstr.TestUnambiguous) ... ok
test_backreference (test_xeger.TestXeger) ... ERROR
test_carot (test_xeger.TestXeger) ... ERROR
test_character_group (test_xeger.TestXeger) ... ERROR
test_digit (test_xeger.TestXeger) ... ERROR
test_dollarsign (test_xeger.TestXeger) ... ERROR
test_dot (test_xeger.TestXeger)
Verify that the dot character doesn't produce newlines. ... ERROR
test_literal_with_range_repeat (test_xeger.TestXeger) ... ERROR
test_literal_with_repeat (test_xeger.TestXeger) ... ERROR
test_literals (test_xeger.TestXeger) ... ERROR
test_lookahead (test_xeger.TestXeger) ... ERROR
test_lookbehind (test_xeger.TestXeger) ... ERROR
test_negation_group (test_xeger.TestXeger) ... ERROR
test_nondigits (test_xeger.TestXeger) ... ERROR
test_nonword (test_xeger.TestXeger) ... ERROR
test_not_literal (test_xeger.TestXeger) ... ERROR
test_or (test_xeger.TestXeger) ... ERROR
test_or_with_subpattern (test_xeger.TestXeger) ... ERROR
test_range (test_xeger.TestXeger) ... ERROR
test_word (test_xeger.TestXeger) ... ERROR
test_zero_or_more_greedy (test_xeger.TestXeger) ... ERROR
test_zero_or_more_non_greedy (test_xeger.TestXeger) ... ERROR

======================================================================
ERROR: test_xeger (test_package_level_access.TestPackageLevelFunctions)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_package_level_access.py", line 13, in test_xeger
    assert re.match(r'^foo[\d]{10}bar$', rstr.xeger('^foo[\d]{10}bar$'))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '6'

======================================================================
ERROR: test_backreference (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 90, in test_backreference
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '26'

======================================================================
ERROR: test_carot (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 66, in test_carot
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '6'

======================================================================
ERROR: test_character_group (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 62, in test_character_group
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '14'

======================================================================
ERROR: test_digit (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 26, in test_digit
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '14'

======================================================================
ERROR: test_dollarsign (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 70, in test_dollarsign
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '17'

======================================================================
ERROR: test_dot (test_xeger.TestXeger)
Verify that the dot character doesn't produce newlines.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 22, in test_dot
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '42'

======================================================================
ERROR: test_literal_with_range_repeat (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 38, in test_literal_with_range_repeat
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '17'

======================================================================
ERROR: test_literal_with_repeat (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 34, in test_literal_with_repeat
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '42'

======================================================================
ERROR: test_literals (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 13, in test_literals
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '17'

======================================================================
ERROR: test_lookahead (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 82, in test_lookahead
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '17'

======================================================================
ERROR: test_lookbehind (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 86, in test_lookbehind
    assert re.search(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '4'

======================================================================
ERROR: test_negation_group (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 78, in test_negation_group
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '14'

======================================================================
ERROR: test_nondigits (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 30, in test_nondigits
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '14'

======================================================================
ERROR: test_nonword (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 46, in test_nonword
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '14'

======================================================================
ERROR: test_not_literal (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 74, in test_not_literal
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '21'

======================================================================
ERROR: test_or (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 50, in test_or
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '7'

======================================================================
ERROR: test_or_with_subpattern (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 54, in test_or_with_subpattern
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '26'

======================================================================
ERROR: test_range (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 58, in test_range
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '14'

======================================================================
ERROR: test_word (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 42, in test_word
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '14'

======================================================================
ERROR: test_zero_or_more_greedy (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 94, in test_zero_or_more_greedy
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '42'

======================================================================
ERROR: test_zero_or_more_non_greedy (test_xeger.TestXeger)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/tests/test_xeger.py", line 98, in test_zero_or_more_non_greedy
    assert re.match(pattern, self.rs.xeger(pattern))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 67, in xeger
    result = self._build_string(parsed)
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 74, in _build_string
    newstr.append(self._handle_state(state))
  File "/var/tmp/portage/dev-python/rstr-3.1.0/work/rstr-3.1.0/rstr/xeger.py", line 82, in _handle_state
    return self._cases[opcode](value)
KeyError: '41'

----------------------------------------------------------------------
Ran 60 tests in 0.288s

FAILED (errors=22)

See https://bugs.gentoo.org/835474

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.