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 2023-10-19 22:47:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-hypothesmith (Old) and /work/SRC/openSUSE:Factory/.python-hypothesmith.new.1945 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-hypothesmith" Thu Oct 19 22:47:32 2023 rev:8 rq:1117696 version:0.3.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-hypothesmith/python-hypothesmith.changes 2023-04-21 18:48:24.088386979 +0200 +++ /work/SRC/openSUSE:Factory/.python-hypothesmith.new.1945/python-hypothesmith.changes 2023-10-19 22:50:00.676289863 +0200 @@ -1,0 +2,7 @@ +Thu Oct 12 13:53:09 UTC 2023 - OndÅej Súkup <mimi...@gmail.com> + +- update to 0.3.0 + * Even more efficient generation of Python identifiers, using Hypothesis 6.84.1 + * Dropped support for Python 3.7 + +------------------------------------------------------------------- Old: ---- hypothesmith-0.2.3.tar.gz New: ---- hypothesmith-0.3.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-hypothesmith.spec ++++++ --- /var/tmp/diff_new_pack.6ZnZ2Y/_old 2023-10-19 22:50:01.376315252 +0200 +++ /var/tmp/diff_new_pack.6ZnZ2Y/_new 2023-10-19 22:50:01.380315398 +0200 @@ -1,7 +1,7 @@ # # spec file # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -27,13 +27,13 @@ %bcond_with test %endif Name: python-hypothesmith%{psuffix} -Version: 0.2.3 +Version: 0.3.0 Release: 0 Summary: Hypothesis strategies for generating Python programs, something like CSmith License: MPL-2.0 URL: https://github.com/Zac-HD/hypothesmith Source: https://files.pythonhosted.org/packages/source/h/hypothesmith/hypothesmith-%{version}.tar.gz -BuildRequires: %{python_module base >= 3.6} +BuildRequires: %{python_module base >= 3.8} BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros @@ -44,7 +44,7 @@ %if %{with test} BuildRequires: %{python_module black} BuildRequires: %{python_module exceptiongroup} -BuildRequires: %{python_module hypothesis >= 6.58.1} +BuildRequires: %{python_module hypothesis >= 6.84.1} BuildRequires: %{python_module lark >= 0.10.1} BuildRequires: %{python_module libcst >= 0.4.0} BuildRequires: %{python_module parso} ++++++ hypothesmith-0.2.3.tar.gz -> hypothesmith-0.3.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.2.3/CHANGELOG.md new/hypothesmith-0.3.0/CHANGELOG.md --- old/hypothesmith-0.2.3/CHANGELOG.md 2022-12-01 10:33:46.000000000 +0100 +++ new/hypothesmith-0.3.0/CHANGELOG.md 2023-09-06 19:12:48.000000000 +0200 @@ -1,5 +1,10 @@ # Changelog +### 0.3.0 - 2023-09-06 +- Even more efficient generation of Python identifiers, using + [Hypothesis 6.84.1](https://hypothesis.readthedocs.io/en/latest/changes.html#v6-84-1) +- Dropped support for Python 3.7, which is end-of-life and not supported by Hypothesis + ### 0.2.3 - 2022-12-01 - Actually package up the renamed grammar file this time. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.2.3/PKG-INFO new/hypothesmith-0.3.0/PKG-INFO --- old/hypothesmith-0.2.3/PKG-INFO 2022-12-01 10:33:54.383975000 +0100 +++ new/hypothesmith-0.3.0/PKG-INFO 2023-09-06 19:13:00.711630800 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: hypothesmith -Version: 0.2.3 +Version: 0.3.0 Summary: Hypothesis strategies for generating Python programs, something like CSmith Home-page: https://github.com/Zac-HD/hypothesmith Author: Zac Hatfield-Dodds @@ -14,13 +14,12 @@ Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0) Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Topic :: Software Development :: Testing -Requires-Python: >=3.7 +Requires-Python: >=3.8 Description-Content-Type: text/markdown License-File: LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.2.3/deps/check.in new/hypothesmith-0.3.0/deps/check.in --- old/hypothesmith-0.2.3/deps/check.in 2022-12-01 10:33:46.000000000 +0100 +++ new/hypothesmith-0.3.0/deps/check.in 2023-09-06 19:12:48.000000000 +0200 @@ -4,5 +4,6 @@ flake8-bugbear flake8-comprehensions flake8-docstrings +hypothesis # for typechecking mypy shed diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.2.3/deps/check.txt new/hypothesmith-0.3.0/deps/check.txt --- old/hypothesmith-0.2.3/deps/check.txt 2022-12-01 10:33:46.000000000 +0100 +++ new/hypothesmith-0.3.0/deps/check.txt 2023-09-06 19:12:48.000000000 +0200 @@ -1,22 +1,26 @@ # -# This file is autogenerated by pip-compile with python 3.7 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: # # pip-compile --output-file=deps/check.txt deps/check.in # -attrs==22.1.0 - # via flake8-bugbear -autoflake==2.0.0 +attrs==23.1.0 + # via + # flake8-bugbear + # hypothesis +autoflake==2.2.1 # via shed -bandit==1.7.4 +bandit==1.7.5 # via flake8-bandit -black==22.10.0 +black==23.7.0 # via shed -click==8.1.3 +click==8.1.7 # via black com2ann==0.3.0 # via shed -flake8==6.0.0 +exceptiongroup==1.1.3 + # via hypothesis +flake8==6.1.0 # via # -r deps/check.in # flake8-bandit @@ -25,78 +29,82 @@ # flake8-docstrings flake8-bandit==4.1.1 # via -r deps/check.in -flake8-bugbear==22.10.27 +flake8-bugbear==23.7.10 # via -r deps/check.in -flake8-comprehensions==3.10.1 +flake8-comprehensions==3.14.0 # via -r deps/check.in -flake8-docstrings==1.6.0 +flake8-docstrings==1.7.0 # via -r deps/check.in gitdb==4.0.10 # via gitpython -gitpython==3.1.29 +gitpython==3.1.34 # via bandit -importlib-metadata==5.1.0 - # via - # click - # flake8 - # flake8-comprehensions - # stevedore -isort==5.10.1 +hypothesis==6.84.1 + # via -r deps/check.in +isort==5.12.0 # via shed -libcst==0.4.9 +libcst==1.0.1 # via shed +markdown-it-py==3.0.0 + # via rich mccabe==0.7.0 # via flake8 -mypy==0.991 +mdurl==0.1.2 + # via markdown-it-py +mypy==1.5.1 # via -r deps/check.in -mypy-extensions==0.4.3 +mypy-extensions==1.0.0 # via # black # mypy # typing-inspect -pathspec==0.10.2 +packaging==23.1 + # via black +pathspec==0.11.2 # via black -pbr==5.11.0 +pbr==5.11.1 # via stevedore -platformdirs==2.5.4 +platformdirs==3.10.0 # via black -pycodestyle==2.10.0 +pycodestyle==2.11.0 # via flake8 -pydocstyle==6.1.1 +pydocstyle==6.3.0 # via flake8-docstrings -pyflakes==3.0.1 +pyflakes==3.1.0 # via # autoflake # flake8 -pyupgrade==3.2.2 +pygments==2.16.1 + # via rich +pyupgrade==3.10.1 # via shed -pyyaml==6.0 +pyyaml==6.0.1 # via # bandit # libcst -shed==0.10.7 +rich==13.5.2 + # via bandit +shed==2023.6.1 # via -r deps/check.in smmap==5.0.0 # via gitdb snowballstemmer==2.2.0 # via pydocstyle -stevedore==4.1.1 +sortedcontainers==2.4.0 + # via hypothesis +stevedore==5.1.0 # via bandit -tokenize-rt==5.0.0 +tokenize-rt==5.2.0 # via pyupgrade tomli==2.0.1 # via # autoflake # black # mypy -typing-extensions==4.4.0 +typing-extensions==4.7.1 # via - # black - # importlib-metadata # libcst # mypy # typing-inspect -typing-inspect==0.8.0 +typing-inspect==0.9.0 # via libcst -zipp==3.11.0 - # via importlib-metadata diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.2.3/deps/test.txt new/hypothesmith-0.3.0/deps/test.txt --- old/hypothesmith-0.2.3/deps/test.txt 2022-12-01 10:33:46.000000000 +0100 +++ new/hypothesmith-0.3.0/deps/test.txt 2023-09-06 19:12:48.000000000 +0200 @@ -1,64 +1,57 @@ # -# This file is autogenerated by pip-compile with python 3.7 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: # # pip-compile --output-file=deps/test.txt deps/test.in setup.py # -attrs==22.1.0 - # via - # hypothesis - # pytest -black==22.10.0 +attrs==23.1.0 + # via hypothesis +black==23.7.0 # via -r deps/test.in -click==8.1.3 +click==8.1.7 # via black -coverage[toml]==6.5.0 +coverage[toml]==7.3.0 # via pytest-cov -exceptiongroup==1.0.4 +exceptiongroup==1.1.3 # via # hypothesis # pytest -execnet==1.9.0 +execnet==2.0.2 # via pytest-xdist -hypothesis[lark]==6.58.1 +hypothesis[lark]==6.84.1 # via hypothesmith (setup.py) -importlib-metadata==5.1.0 - # via - # click - # pluggy - # pytest -iniconfig==1.1.1 +iniconfig==2.0.0 # via pytest -lark==1.1.4 +lark==1.1.7 # via hypothesis -libcst==0.4.9 +libcst==1.0.1 # via hypothesmith (setup.py) -mypy-extensions==0.4.3 +mypy-extensions==1.0.0 # via # black # typing-inspect -packaging==21.3 - # via pytest +packaging==23.1 + # via + # black + # pytest parso==0.8.3 # via -r deps/test.in -pathspec==0.10.2 +pathspec==0.11.2 # via black -platformdirs==2.5.4 +platformdirs==3.10.0 # via black -pluggy==1.0.0 +pluggy==1.3.0 # via pytest -pyparsing==3.0.9 - # via packaging -pytest==7.2.0 +pytest==7.4.1 # via # -r deps/test.in # pytest-cov # pytest-xdist -pytest-cov==4.0.0 +pytest-cov==4.1.0 # via -r deps/test.in -pytest-xdist==3.0.2 +pytest-xdist==3.3.1 # via -r deps/test.in -pyyaml==6.0 +pyyaml==6.0.1 # via libcst sortedcontainers==2.4.0 # via hypothesis @@ -67,15 +60,9 @@ # black # coverage # pytest -typed-ast==1.5.4 - # via black -typing-extensions==4.4.0 +typing-extensions==4.7.1 # via - # black - # importlib-metadata # libcst # typing-inspect -typing-inspect==0.8.0 +typing-inspect==0.9.0 # via libcst -zipp==3.11.0 - # via importlib-metadata diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.2.3/setup.py new/hypothesmith-0.3.0/setup.py --- old/hypothesmith-0.2.3/setup.py 2022-12-01 10:33:46.000000000 +0100 +++ new/hypothesmith-0.3.0/setup.py 2023-09-06 19:12:48.000000000 +0200 @@ -32,8 +32,8 @@ license="MPL 2.0", description="Hypothesis strategies for generating Python programs, something like CSmith", zip_safe=False, - install_requires=["hypothesis[lark]>=6.58.1", "libcst>=0.4.0"], - python_requires=">=3.7", + install_requires=["hypothesis[lark]>=6.84.1", "libcst>=1.0.1"], + python_requires=">=3.8", classifiers=[ "Development Status :: 4 - Beta", "Framework :: Hypothesis", @@ -41,7 +41,6 @@ "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.2.3/src/hypothesmith/__init__.py new/hypothesmith-0.3.0/src/hypothesmith/__init__.py --- old/hypothesmith-0.2.3/src/hypothesmith/__init__.py 2022-12-01 10:33:46.000000000 +0100 +++ new/hypothesmith-0.3.0/src/hypothesmith/__init__.py 2023-09-06 19:12:48.000000000 +0200 @@ -3,5 +3,5 @@ from hypothesmith.cst import from_node from hypothesmith.syntactic import from_grammar -__version__ = "0.2.3" +__version__ = "0.3.0" __all__ = ["from_grammar", "from_node"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.2.3/src/hypothesmith/cst.py new/hypothesmith-0.3.0/src/hypothesmith/cst.py --- old/hypothesmith-0.2.3/src/hypothesmith/cst.py 2022-12-01 10:33:46.000000000 +0100 +++ new/hypothesmith-0.3.0/src/hypothesmith/cst.py 2023-09-06 19:12:48.000000000 +0200 @@ -21,8 +21,6 @@ from libcst._nodes.expression import ExpressionPosition from libcst._nodes.statement import _INDENT_WHITESPACE_RE -from hypothesmith.syntactic import identifiers - # 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 { @@ -42,7 +40,9 @@ # `from_type()` has less laziness than other strategies, we we register for these # foundational node types *before* referring to them in other strategies. -st.register_type_strategy(libcst.Name, st.builds(libcst.Name, identifiers())) +st.register_type_strategy( + libcst.Name, st.builds(libcst.Name, st.text().filter(str.isidentifier)) +) st.register_type_strategy( libcst.SimpleString, st.builds(libcst.SimpleString, st.text().map(repr)) ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.2.3/src/hypothesmith/syntactic.py new/hypothesmith-0.3.0/src/hypothesmith/syntactic.py --- old/hypothesmith-0.2.3/src/hypothesmith/syntactic.py 2022-12-01 10:33:46.000000000 +0100 +++ new/hypothesmith-0.3.0/src/hypothesmith/syntactic.py 2023-09-06 19:12:48.000000000 +0200 @@ -4,12 +4,10 @@ import dis import sys import warnings -from functools import lru_cache from importlib.resources import read_text from hypothesis import assume, strategies as st from hypothesis.extra.lark import LarkStrategy -from hypothesis.internal.charmap import _union_intervals from lark import Lark from lark.indenter import Indenter @@ -29,27 +27,6 @@ } -def _chars_to_regex_set(s: list) -> str: - spans = tuple((ord(c), ord(c)) for c in s) - return "".join( - chr(a) if a == b else f"{chr(a)}-{chr(b)}" - for a, b in _union_intervals(spans, spans) - ) - - -@lru_cache() -def identifiers() -> st.SearchStrategy[str]: - lead = [] - subs = [] - for c in map(chr, range(sys.maxunicode + 1)): - if utf8_encodable(c) and ("_" + c).isidentifier(): - subs.append(c) # e.g. "1" - if c.isidentifier(): - lead.append(c) # e.g. "a" - pattern = f"[{_chars_to_regex_set(lead)}][{_chars_to_regex_set(subs)}]*" - return st.from_regex(pattern, fullmatch=True) - - class PythonIndenter(Indenter): # https://github.com/lark-parser/lark/blob/master/examples/python_parser.py NL_type = "_NEWLINE" @@ -76,7 +53,7 @@ explicit_strategies = { PythonIndenter.INDENT_type: st.just(" " * PythonIndenter.tab_len), PythonIndenter.DEDENT_type: st.just(""), - "NAME": identifiers(), + "NAME": st.text().filter(str.isidentifier), } super().__init__(grammar, start, explicit_strategies) self.terminal_strategies = { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.2.3/src/hypothesmith.egg-info/PKG-INFO new/hypothesmith-0.3.0/src/hypothesmith.egg-info/PKG-INFO --- old/hypothesmith-0.2.3/src/hypothesmith.egg-info/PKG-INFO 2022-12-01 10:33:54.000000000 +0100 +++ new/hypothesmith-0.3.0/src/hypothesmith.egg-info/PKG-INFO 2023-09-06 19:13:00.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: hypothesmith -Version: 0.2.3 +Version: 0.3.0 Summary: Hypothesis strategies for generating Python programs, something like CSmith Home-page: https://github.com/Zac-HD/hypothesmith Author: Zac Hatfield-Dodds @@ -14,13 +14,12 @@ Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0) Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Topic :: Software Development :: Testing -Requires-Python: >=3.7 +Requires-Python: >=3.8 Description-Content-Type: text/markdown License-File: LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.2.3/src/hypothesmith.egg-info/requires.txt new/hypothesmith-0.3.0/src/hypothesmith.egg-info/requires.txt --- old/hypothesmith-0.2.3/src/hypothesmith.egg-info/requires.txt 2022-12-01 10:33:54.000000000 +0100 +++ new/hypothesmith-0.3.0/src/hypothesmith.egg-info/requires.txt 2023-09-06 19:13:00.000000000 +0200 @@ -1,2 +1,2 @@ -hypothesis[lark]>=6.58.1 -libcst>=0.4.0 +hypothesis[lark]>=6.84.1 +libcst>=1.0.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.2.3/tests/test_syntactic.py new/hypothesmith-0.3.0/tests/test_syntactic.py --- old/hypothesmith-0.2.3/tests/test_syntactic.py 2022-12-01 10:33:46.000000000 +0100 +++ new/hypothesmith-0.3.0/tests/test_syntactic.py 2023-09-06 19:12:48.000000000 +0200 @@ -96,12 +96,6 @@ compile(source_code, filename="<string>", mode="exec") -@given(hypothesmith.syntactic.identifiers()) -def test_names_are_all_identifiers(name): - assert name.isidentifier() - name.encode() # should be UTF-8 encodable - - @given(source_code=hypothesmith.from_grammar()) def test_parso_from_grammar(source_code): result = parso.parse(source_code).get_code() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.2.3/tests/test_version.py new/hypothesmith-0.3.0/tests/test_version.py --- old/hypothesmith-0.2.3/tests/test_version.py 2022-12-01 10:33:46.000000000 +0100 +++ new/hypothesmith-0.3.0/tests/test_version.py 2023-09-06 19:12:48.000000000 +0200 @@ -18,7 +18,7 @@ return cls(*map(int, string.split("."))) -@lru_cache() +@lru_cache def get_releases(): pattern = re.compile(r"^### (\d+\.\d+\.\d+) - (\d\d\d\d-\d\d-\d\d)$") with open(Path(__file__).parent.parent / "CHANGELOG.md") as f: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hypothesmith-0.2.3/tox.ini new/hypothesmith-0.3.0/tox.ini --- old/hypothesmith-0.2.3/tox.ini 2022-12-01 10:33:46.000000000 +0100 +++ new/hypothesmith-0.3.0/tox.ini 2023-09-06 19:12:48.000000000 +0200 @@ -11,7 +11,7 @@ commands = shed flake8 - mypy --config-file=tox.ini . + ; mypy --config-file=tox.ini src/hypothesmith/ [testenv:test] description = Runs pytest with posargs - `tox -e test -- -v` == `pytest -v`