Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-hypothesmith for openSUSE:Factory checked in at 2024-01-29 22:25:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-hypothesmith (Old) and /work/SRC/openSUSE:Factory/.python-hypothesmith.new.1815 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-hypothesmith" Mon Jan 29 22:25:58 2024 rev:10 rq:1141815 version:0.3.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-hypothesmith/python-hypothesmith.changes 2023-12-28 22:54:57.892193158 +0100 +++ /work/SRC/openSUSE:Factory/.python-hypothesmith.new.1815/python-hypothesmith.changes 2024-01-29 22:26:02.338970860 +0100 @@ -1,0 +2,6 @@ +Mon Jan 22 23:31:11 UTC 2024 - Dirk Müller <dmuel...@suse.com> + +- update to 0.3.2: + * Performance improvements based on Hypothesis 6.93.0 + +------------------------------------------------------------------- Old: ---- hypothesmith-0.3.1.tar.gz New: ---- hypothesmith-0.3.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-hypothesmith.spec ++++++ --- /var/tmp/diff_new_pack.HKsY22/_old 2024-01-29 22:26:03.074997538 +0100 +++ /var/tmp/diff_new_pack.HKsY22/_new 2024-01-29 22:26:03.078997683 +0100 @@ -1,7 +1,7 @@ # # spec file # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -27,7 +27,7 @@ %bcond_with test %endif Name: python-hypothesmith%{psuffix} -Version: 0.3.1 +Version: 0.3.2 Release: 0 Summary: Hypothesis strategies for generating Python programs, something like CSmith License: MPL-2.0 @@ -38,13 +38,13 @@ BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: python-base >= 3.7 -Requires: python-hypothesis >= 6.89.0 +Requires: python-hypothesis >= 6.93.0 Requires: python-lark >= 0.10.1 Requires: python-libcst >= 0.4.0 %if %{with test} BuildRequires: %{python_module black} BuildRequires: %{python_module exceptiongroup} -BuildRequires: %{python_module hypothesis >= 6.89.0} +BuildRequires: %{python_module hypothesis >= 6.93.0} BuildRequires: %{python_module lark >= 0.10.1} BuildRequires: %{python_module libcst >= 0.4.0} BuildRequires: %{python_module parso} ++++++ hypothesmith-0.3.1.tar.gz -> hypothesmith-0.3.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.3.1/CHANGELOG.md new/hypothesmith-0.3.2/CHANGELOG.md --- old/hypothesmith-0.3.1/CHANGELOG.md 2023-11-17 20:00:39.000000000 +0100 +++ new/hypothesmith-0.3.2/CHANGELOG.md 2024-01-13 17:44:25.000000000 +0100 @@ -1,5 +1,9 @@ # Changelog +### 0.3.2 - 2024-01-13 +- Performance improvements based on + [Hypothesis 6.93.0](https://hypothesis.readthedocs.io/en/latest/changes.html#v6-93-0) + ### 0.3.1 - 2023-09-06 - Hypothesis >= 6.89.0 made some internal changes which broke our `from_grammar()`. This patch restores compatibility, and requires the new Hypothesis. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.3.1/PKG-INFO new/hypothesmith-0.3.2/PKG-INFO --- old/hypothesmith-0.3.1/PKG-INFO 2023-11-17 20:00:50.726210400 +0100 +++ new/hypothesmith-0.3.2/PKG-INFO 2024-01-13 17:44:32.809634000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: hypothesmith -Version: 0.3.1 +Version: 0.3.2 Summary: Hypothesis strategies for generating Python programs, something like CSmith Home-page: https://github.com/Zac-HD/hypothesmith Author: Zac Hatfield-Dodds @@ -22,7 +22,7 @@ Requires-Python: >=3.8 Description-Content-Type: text/markdown License-File: LICENSE -Requires-Dist: hypothesis[lark]>=6.84.1 +Requires-Dist: hypothesis[lark]>=6.93.0 Requires-Dist: libcst>=1.0.1 # hypothesmith diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.3.1/deps/check.txt new/hypothesmith-0.3.2/deps/check.txt --- old/hypothesmith-0.3.1/deps/check.txt 2023-11-17 20:00:39.000000000 +0100 +++ new/hypothesmith-0.3.2/deps/check.txt 2024-01-13 17:44:25.000000000 +0100 @@ -4,23 +4,23 @@ # # pip-compile --output-file=deps/check.txt deps/check.in # -attrs==23.1.0 +attrs==23.2.0 # via # flake8-bugbear # hypothesis autoflake==2.2.1 # via shed -bandit==1.7.5 +bandit==1.7.6 # via flake8-bandit -black==23.11.0 +black==23.12.1 # via shed click==8.1.7 # via black com2ann==0.3.0 # via shed -exceptiongroup==1.1.3 +exceptiongroup==1.2.0 # via hypothesis -flake8==6.1.0 +flake8==7.0.0 # via # -r deps/check.in # flake8-bandit @@ -29,7 +29,7 @@ # flake8-docstrings flake8-bandit==4.1.1 # via -r deps/check.in -flake8-bugbear==23.9.16 +flake8-bugbear==23.12.2 # via -r deps/check.in flake8-comprehensions==3.14.0 # via -r deps/check.in @@ -37,11 +37,11 @@ # via -r deps/check.in gitdb==4.0.11 # via gitpython -gitpython==3.1.40 +gitpython==3.1.41 # via bandit -hypothesis==6.89.0 +hypothesis==6.93.0 # via -r deps/check.in -isort==5.12.0 +isort==5.13.2 # via shed libcst==1.1.0 # via shed @@ -51,7 +51,7 @@ # via flake8 mdurl==0.1.2 # via markdown-it-py -mypy==1.7.0 +mypy==1.8.0 # via -r deps/check.in mypy-extensions==1.0.0 # via @@ -60,21 +60,21 @@ # typing-inspect packaging==23.2 # via black -pathspec==0.11.2 +pathspec==0.12.1 # via black pbr==6.0.0 # via stevedore -platformdirs==4.0.0 +platformdirs==4.1.0 # via black pycodestyle==2.11.1 # via flake8 pydocstyle==6.3.0 # via flake8-docstrings -pyflakes==3.1.0 +pyflakes==3.2.0 # via # autoflake # flake8 -pygments==2.16.1 +pygments==2.17.2 # via rich pyupgrade==3.15.0 # via shed @@ -101,7 +101,7 @@ # autoflake # black # mypy -typing-extensions==4.8.0 +typing-extensions==4.9.0 # via # black # libcst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.3.1/deps/test.txt new/hypothesmith-0.3.2/deps/test.txt --- old/hypothesmith-0.3.1/deps/test.txt 2023-11-17 20:00:39.000000000 +0100 +++ new/hypothesmith-0.3.2/deps/test.txt 2024-01-13 17:44:25.000000000 +0100 @@ -4,25 +4,25 @@ # # pip-compile --output-file=deps/test.txt deps/test.in setup.py # -attrs==23.1.0 +attrs==23.2.0 # via hypothesis -black==23.11.0 +black==23.12.1 # via -r deps/test.in click==8.1.7 # via black -coverage[toml]==7.3.2 +coverage[toml]==7.4.0 # via pytest-cov -exceptiongroup==1.1.3 +exceptiongroup==1.2.0 # via # hypothesis # pytest execnet==2.0.2 # via pytest-xdist -hypothesis[lark]==6.89.0 +hypothesis[lark]==6.93.0 # via hypothesmith (setup.py) iniconfig==2.0.0 # via pytest -lark==1.1.8 +lark==1.1.9 # via hypothesis libcst==1.1.0 # via hypothesmith (setup.py) @@ -36,20 +36,20 @@ # pytest parso==0.8.3 # via -r deps/test.in -pathspec==0.11.2 +pathspec==0.12.1 # via black -platformdirs==4.0.0 +platformdirs==4.1.0 # via black pluggy==1.3.0 # via pytest -pytest==7.4.3 +pytest==7.4.4 # via # -r deps/test.in # pytest-cov # pytest-xdist pytest-cov==4.1.0 # via -r deps/test.in -pytest-xdist==3.4.0 +pytest-xdist==3.5.0 # via -r deps/test.in pyyaml==6.0.1 # via libcst @@ -60,7 +60,7 @@ # black # coverage # pytest -typing-extensions==4.8.0 +typing-extensions==4.9.0 # via # black # libcst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.3.1/setup.py new/hypothesmith-0.3.2/setup.py --- old/hypothesmith-0.3.1/setup.py 2023-11-17 20:00:39.000000000 +0100 +++ new/hypothesmith-0.3.2/setup.py 2024-01-13 17:44:25.000000000 +0100 @@ -32,7 +32,7 @@ license="MPL 2.0", description="Hypothesis strategies for generating Python programs, something like CSmith", zip_safe=False, - install_requires=["hypothesis[lark]>=6.84.1", "libcst>=1.0.1"], + install_requires=["hypothesis[lark]>=6.93.0", "libcst>=1.0.1"], python_requires=">=3.8", classifiers=[ "Development Status :: 4 - Beta", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.3.1/src/hypothesmith/__init__.py new/hypothesmith-0.3.2/src/hypothesmith/__init__.py --- old/hypothesmith-0.3.1/src/hypothesmith/__init__.py 2023-11-17 20:00:39.000000000 +0100 +++ new/hypothesmith-0.3.2/src/hypothesmith/__init__.py 2024-01-13 17:44:25.000000000 +0100 @@ -3,5 +3,5 @@ from hypothesmith.cst import from_node from hypothesmith.syntactic import from_grammar -__version__ = "0.3.1" +__version__ = "0.3.2" __all__ = ["from_grammar", "from_node"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.3.1/src/hypothesmith/cst.py new/hypothesmith-0.3.2/src/hypothesmith/cst.py --- old/hypothesmith-0.3.1/src/hypothesmith/cst.py 2023-11-17 20:00:39.000000000 +0100 +++ new/hypothesmith-0.3.2/src/hypothesmith/cst.py 2024-01-13 17:44:25.000000000 +0100 @@ -21,6 +21,13 @@ from libcst._nodes.expression import ExpressionPosition from libcst._nodes.statement import _INDENT_WHITESPACE_RE +from .syntactic import ALLOWED_CHARS + + +def py_from_regex(pattern): + return st.from_regex(pattern, fullmatch=True, alphabet=ALLOWED_CHARS) + + # For some nodes, we just need to ensure that they use the appropriate regex # pattern instead of allowing literally any string. for node_type, pattern in { @@ -29,11 +36,11 @@ libcst.Imaginary: IMAGNUMBER_RE, libcst.SimpleWhitespace: libcst._nodes.whitespace.SIMPLE_WHITESPACE_RE, }.items(): - _strategy = st.builds(node_type, st.from_regex(pattern, fullmatch=True)) + _strategy = st.builds(node_type, py_from_regex(pattern)) st.register_type_strategy(node_type, _strategy) # type-ignore comments are special in the 3.8+ (typed) ast, so boost their chances) -_comments = st.from_regex(libcst._nodes.whitespace.COMMENT_RE, fullmatch=True) +_comments = py_from_regex(libcst._nodes.whitespace.COMMENT_RE) st.register_type_strategy( libcst.Comment, st.builds(libcst.Comment, _comments | st.just("# type: ignore")) ) @@ -68,9 +75,7 @@ # inference to provide most of our arguments for us. # However, in some cases we want to either restrict arguments (e.g. libcst.Name), # or supply something nastier than the default argument (e.g. libcst.SimpleWhitespace) -nonempty_whitespace = st.builds( - libcst.SimpleWhitespace, st.from_regex(" +", fullmatch=True) -) +nonempty_whitespace = st.builds(libcst.SimpleWhitespace, py_from_regex(" +")) REGISTERED = ( [libcst.Asynchronous, nonempty_whitespace], [libcst.AsName, st.from_type(libcst.Name)], @@ -89,12 +94,7 @@ st.from_type(libcst.Name) | st.from_type(libcst.Attribute), nonempty_seq(libcst.ImportAlias), ], - [ - libcst.IndentedBlock, - infer, - infer, - st.from_regex(_INDENT_WHITESPACE_RE, fullmatch=True), - ], + [libcst.IndentedBlock, infer, infer, py_from_regex(_INDENT_WHITESPACE_RE)], [libcst.IsNot, infer, nonempty_whitespace, infer], [ libcst.MatchSingleton, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.3.1/src/hypothesmith/syntactic.py new/hypothesmith-0.3.2/src/hypothesmith/syntactic.py --- old/hypothesmith-0.3.1/src/hypothesmith/syntactic.py 2023-11-17 20:00:39.000000000 +0100 +++ new/hypothesmith-0.3.2/src/hypothesmith/syntactic.py 2024-01-13 17:44:25.000000000 +0100 @@ -25,6 +25,7 @@ "simple_stmt": "single", "compound_stmt": "single", } +ALLOWED_CHARS = st.characters(codec="utf-8", min_codepoint=1) class PythonIndenter(Indenter): @@ -37,17 +38,6 @@ tab_len = 4 -def utf8_encodable(terminal: str) -> bool: - try: - terminal.encode() - return True - except UnicodeEncodeError: # pragma: no cover - # Very rarely, a "." in some terminal regex will generate a surrogate - # character that cannot be encoded as UTF-8. We apply this filter to - # ensure it doesn't happen at runtime, but don't worry about coverage. - return False - - class GrammarStrategy(LarkStrategy): def __init__(self, grammar: Lark, start: str, auto_target: bool): explicit_strategies = { @@ -55,11 +45,7 @@ PythonIndenter.DEDENT_type: st.just(""), "NAME": st.text().filter(str.isidentifier), } - super().__init__(grammar, start, explicit_strategies) - self.terminal_strategies = { - k: v.map(lambda s: s.replace("\0", "")).filter(utf8_encodable) - for k, v in self.terminal_strategies.items() # type: ignore - } + super().__init__(grammar, start, explicit_strategies, alphabet=ALLOWED_CHARS) self.auto_target = auto_target and start != "single_input" def do_draw(self, data): # type: ignore diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.3.1/src/hypothesmith.egg-info/PKG-INFO new/hypothesmith-0.3.2/src/hypothesmith.egg-info/PKG-INFO --- old/hypothesmith-0.3.1/src/hypothesmith.egg-info/PKG-INFO 2023-11-17 20:00:50.000000000 +0100 +++ new/hypothesmith-0.3.2/src/hypothesmith.egg-info/PKG-INFO 2024-01-13 17:44:32.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: hypothesmith -Version: 0.3.1 +Version: 0.3.2 Summary: Hypothesis strategies for generating Python programs, something like CSmith Home-page: https://github.com/Zac-HD/hypothesmith Author: Zac Hatfield-Dodds @@ -22,7 +22,7 @@ Requires-Python: >=3.8 Description-Content-Type: text/markdown License-File: LICENSE -Requires-Dist: hypothesis[lark]>=6.84.1 +Requires-Dist: hypothesis[lark]>=6.93.0 Requires-Dist: libcst>=1.0.1 # hypothesmith diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.3.1/src/hypothesmith.egg-info/requires.txt new/hypothesmith-0.3.2/src/hypothesmith.egg-info/requires.txt --- old/hypothesmith-0.3.1/src/hypothesmith.egg-info/requires.txt 2023-11-17 20:00:50.000000000 +0100 +++ new/hypothesmith-0.3.2/src/hypothesmith.egg-info/requires.txt 2024-01-13 17:44:32.000000000 +0100 @@ -1,2 +1,2 @@ -hypothesis[lark]>=6.84.1 +hypothesis[lark]>=6.93.0 libcst>=1.0.1