Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pure-eval for
openSUSE:Factory checked in at 2024-07-28 17:18:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pure-eval (Old)
and /work/SRC/openSUSE:Factory/.python-pure-eval.new.1882 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pure-eval"
Sun Jul 28 17:18:57 2024 rev:4 rq:1189789 version:0.2.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pure-eval/python-pure-eval.changes
2023-04-22 22:00:14.445137642 +0200
+++
/work/SRC/openSUSE:Factory/.python-pure-eval.new.1882/python-pure-eval.changes
2024-07-28 17:19:06.931006458 +0200
@@ -1,0 +2,21 @@
+Thu Jul 25 14:21:50 UTC 2024 - John Paul Adrian Glaubitz
<[email protected]>
+
+- Update to version 0.2.3
+ * fix warning in test_cannot_subscript
+ * add __version__ to __all__
+ * test 3.13
+ * Specify exports in `__all__` to prevent `pyright` errors
+ * Explicitly remove the ctx attribute in copy_ast_without_context
+ * Fix compatibility of check_copy_ast_without_context with Py 3.13b1
+ * Check for __delete__ to detect data descriptors,
+ as in https://github.com/python/cpython/pull/104517/files
+ * fix job name
+ * fix main branch in GHA
+ * Update Python classifiers
+ * Update release script
+ * manual coveralls
+ * GHAs v4
+ * test 3.12
+ * 3.11
+
+-------------------------------------------------------------------
Old:
----
pure_eval-0.2.2.tar.gz
New:
----
pure_eval-0.2.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pure-eval.spec ++++++
--- /var/tmp/diff_new_pack.GItbY3/_old 2024-07-28 17:19:09.071091999 +0200
+++ /var/tmp/diff_new_pack.GItbY3/_new 2024-07-28 17:19:09.071091999 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-pure-eval
#
-# 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
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%{?sle15_python_module_pythons}
Name: python-pure-eval
-Version: 0.2.2
+Version: 0.2.3
Release: 0
Summary: Safely evaluate AST nodes without side effects
License: MIT
++++++ pure_eval-0.2.2.tar.gz -> pure_eval-0.2.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pure_eval-0.2.2/.github/workflows/pytest.yml
new/pure_eval-0.2.3/.github/workflows/pytest.yml
--- old/pure_eval-0.2.2/.github/workflows/pytest.yml 2022-01-22
16:40:30.000000000 +0100
+++ new/pure_eval-0.2.3/.github/workflows/pytest.yml 2024-07-21
14:29:19.000000000 +0200
@@ -1,36 +1,48 @@
name: Tests
-on: [push, pull_request]
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ workflow_dispatch:
+
jobs:
- build:
+ test:
runs-on: ubuntu-latest
strategy:
matrix:
- python-version: [3.7, 3.8, 3.9, 3.10-dev]
+ python-version: [3.7, 3.8, 3.9, '3.10', 3.11, 3.12, 3.13-dev]
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v2
+ uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- - name: run tests
+ - name: Install dependencies
+ run: |
+ pip install --upgrade pip
+ pip install --upgrade coveralls .[tests]
+ - name: Test
env:
PURE_EVAL_SLOW_TESTS: 1
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ COVERALLS_FLAG_NAME: "test-${{ matrix.python-version }}-${{ matrix.os
}}"
+ COVERALLS_PARALLEL: true
run: |
- pip install -U pip
- pip install --upgrade coveralls setuptools setuptools_scm pep517
- pip install .[tests]
coverage run --source pure_eval -m pytest
coverage report -m
- - name: Coveralls Python
- uses: AndreMiras/coveralls-python-action@v20201129
- with:
- parallel: true
- flag-name: test-${{ matrix.python-version }}
- coveralls_finish:
- needs: build
+ coveralls --service=github
+
+ coveralls:
+ name: Coveralls Finished
+ needs: test
runs-on: ubuntu-latest
+ container: python:3-slim
steps:
- - name: Coveralls Finished
- uses: AndreMiras/coveralls-python-action@v20201129
- with:
- parallel-finished: true
+ - name: Finished
+ run: |
+ pip3 install --upgrade coveralls
+ coveralls --service=github --finish
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pure_eval-0.2.2/PKG-INFO new/pure_eval-0.2.3/PKG-INFO
--- old/pure_eval-0.2.2/PKG-INFO 2022-01-22 16:41:17.320512300 +0100
+++ new/pure_eval-0.2.3/PKG-INFO 2024-07-21 14:58:16.386960300 +0200
@@ -1,28 +1,29 @@
Metadata-Version: 2.1
Name: pure_eval
-Version: 0.2.2
+Version: 0.2.3
Summary: Safely evaluate AST nodes without side effects
Home-page: http://github.com/alexmojaki/pure_eval
Author: Alex Hall
Author-email: [email protected]
License: MIT
-Platform: UNKNOWN
Classifier: Intended Audience :: Developers
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Programming Language :: Python :: 3.6
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: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
-Provides-Extra: tests
License-File: LICENSE.txt
+Provides-Extra: tests
+Requires-Dist: pytest; extra == "tests"
# `pure_eval`
-[](https://travis-ci.org/alexmojaki/pure_eval)
[](https://coveralls.io/github/alexmojaki/pure_eval?branch=master)
[](https://pypi.python.org/pypi/pure_eval)
+[](https://travis-ci.org/alexmojaki/pure_eval)
[](https://coveralls.io/github/alexmojaki/pure_eval?branch=master)
[](https://pypi.python.org/pypi/pure_eval)
This is a Python package that lets you safely evaluate certain AST nodes
without triggering arbitrary code that may have unwanted side effects.
@@ -224,5 +225,3 @@
y = 2
d[x] = 2
```
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pure_eval-0.2.2/README.md
new/pure_eval-0.2.3/README.md
--- old/pure_eval-0.2.2/README.md 2020-10-13 21:27:57.000000000 +0200
+++ new/pure_eval-0.2.3/README.md 2024-07-21 14:20:27.000000000 +0200
@@ -1,6 +1,6 @@
# `pure_eval`
-[](https://travis-ci.org/alexmojaki/pure_eval)
[](https://coveralls.io/github/alexmojaki/pure_eval?branch=master)
[](https://pypi.python.org/pypi/pure_eval)
+[](https://travis-ci.org/alexmojaki/pure_eval)
[](https://coveralls.io/github/alexmojaki/pure_eval?branch=master)
[](https://pypi.python.org/pypi/pure_eval)
This is a Python package that lets you safely evaluate certain AST nodes
without triggering arbitrary code that may have unwanted side effects.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pure_eval-0.2.2/make_release.sh
new/pure_eval-0.2.3/make_release.sh
--- old/pure_eval-0.2.2/make_release.sh 2022-01-22 16:40:30.000000000 +0100
+++ new/pure_eval-0.2.3/make_release.sh 2024-07-21 14:20:27.000000000 +0200
@@ -1,30 +1,28 @@
#!/usr/bin/env bash
-set -eux
-# Ensure that there are no uncommitted changes
-# which would mess up using the git tag as a version
-[ -z "$(git status --porcelain)" ]
+set -eux -o pipefail
-if [ -z "${1+x}" ]
-then
+if [ ! -z "$(git status --porcelain)" ]; then
+ set +x
+ echo You have uncommitted changes which would mess up the git tag
+ exit 1
+fi
+
+if [ -z "${1+x}" ]; then
set +x
echo Provide a version argument
echo "${0} <major>.<minor>.<patch>"
exit 1
-else
- if [[ ${1} =~ ^([0-9]+)(\.[0-9]+)?(\.[0-9]+)?$ ]]; then
- :
- else
- echo "Not a valid release tag."
- exit 1
- fi
fi
-tox -p auto
+if [[ ! ${1} =~ ^([0-9]+)(\.[0-9]+)?(\.[0-9]+)?$ ]]; then
+ echo "Not a valid release tag."
+ exit 1
+fi
export TAG="v${1}"
-git tag "${TAG}"
-git push origin master "${TAG}"
+git tag -f "${TAG}"
+git push origin HEAD "${TAG}"
rm -rf ./build ./dist
python -m build --sdist --wheel .
twine upload ./dist/*.whl dist/*.tar.gz
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pure_eval-0.2.2/pure_eval/__init__.py
new/pure_eval-0.2.3/pure_eval/__init__.py
--- old/pure_eval-0.2.2/pure_eval/__init__.py 2020-10-13 21:27:57.000000000
+0200
+++ new/pure_eval-0.2.3/pure_eval/__init__.py 2024-07-21 14:47:48.000000000
+0200
@@ -6,3 +6,12 @@
except ImportError:
# version.py is auto-generated with the git tag when building
__version__ = "???"
+
+__all__ = [
+ "Evaluator",
+ "CannotEval",
+ "group_expressions",
+ "is_expression_interesting",
+ "getattr_static",
+ "__version__",
+]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pure_eval-0.2.2/pure_eval/my_getattr_static.py
new/pure_eval-0.2.3/pure_eval/my_getattr_static.py
--- old/pure_eval-0.2.2/pure_eval/my_getattr_static.py 2020-10-13
21:27:57.000000000 +0200
+++ new/pure_eval-0.2.3/pure_eval/my_getattr_static.py 2024-07-21
14:20:27.000000000 +0200
@@ -79,8 +79,10 @@
klass_result = _check_class(klass, attr)
if instance_result is not _sentinel and klass_result is not _sentinel:
- if (_check_class(type(klass_result), '__get__') is not _sentinel and
- _check_class(type(klass_result), '__set__') is not _sentinel):
+ if _check_class(type(klass_result), "__get__") is not _sentinel and (
+ _check_class(type(klass_result), "__set__") is not _sentinel
+ or _check_class(type(klass_result), "__delete__") is not _sentinel
+ ):
return _resolve_descriptor(klass_result, obj, klass)
if instance_result is not _sentinel:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pure_eval-0.2.2/pure_eval/utils.py
new/pure_eval-0.2.3/pure_eval/utils.py
--- old/pure_eval-0.2.2/pure_eval/utils.py 2022-01-22 16:40:30.000000000
+0100
+++ new/pure_eval-0.2.3/pure_eval/utils.py 2024-07-21 14:28:09.000000000
+0200
@@ -184,7 +184,12 @@
if field != 'ctx'
if hasattr(x, field)
}
- return type(x)(**kwargs)
+ a = type(x)(**kwargs)
+ if hasattr(a, 'ctx'):
+ # Python 3.13.0b2+ defaults to Load when we don't pass ctx
+ # https://github.com/python/cpython/pull/118871
+ del a.ctx
+ return a
elif isinstance(x, list):
return list(map(copy_ast_without_context, x))
else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pure_eval-0.2.2/pure_eval/version.py
new/pure_eval-0.2.3/pure_eval/version.py
--- old/pure_eval-0.2.2/pure_eval/version.py 2022-01-22 16:41:17.000000000
+0100
+++ new/pure_eval-0.2.3/pure_eval/version.py 2024-07-21 14:58:16.000000000
+0200
@@ -1 +1 @@
-__version__ = '0.2.2'
\ No newline at end of file
+__version__ = '0.2.3'
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pure_eval-0.2.2/pure_eval.egg-info/PKG-INFO
new/pure_eval-0.2.3/pure_eval.egg-info/PKG-INFO
--- old/pure_eval-0.2.2/pure_eval.egg-info/PKG-INFO 2022-01-22
16:41:17.000000000 +0100
+++ new/pure_eval-0.2.3/pure_eval.egg-info/PKG-INFO 2024-07-21
14:58:16.000000000 +0200
@@ -1,28 +1,29 @@
Metadata-Version: 2.1
-Name: pure-eval
-Version: 0.2.2
+Name: pure_eval
+Version: 0.2.3
Summary: Safely evaluate AST nodes without side effects
Home-page: http://github.com/alexmojaki/pure_eval
Author: Alex Hall
Author-email: [email protected]
License: MIT
-Platform: UNKNOWN
Classifier: Intended Audience :: Developers
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Programming Language :: Python :: 3.6
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: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
-Provides-Extra: tests
License-File: LICENSE.txt
+Provides-Extra: tests
+Requires-Dist: pytest; extra == "tests"
# `pure_eval`
-[](https://travis-ci.org/alexmojaki/pure_eval)
[](https://coveralls.io/github/alexmojaki/pure_eval?branch=master)
[](https://pypi.python.org/pypi/pure_eval)
+[](https://travis-ci.org/alexmojaki/pure_eval)
[](https://coveralls.io/github/alexmojaki/pure_eval?branch=master)
[](https://pypi.python.org/pypi/pure_eval)
This is a Python package that lets you safely evaluate certain AST nodes
without triggering arbitrary code that may have unwanted side effects.
@@ -224,5 +225,3 @@
y = 2
d[x] = 2
```
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pure_eval-0.2.2/setup.cfg
new/pure_eval-0.2.3/setup.cfg
--- old/pure_eval-0.2.2/setup.cfg 2022-01-22 16:41:17.320512300 +0100
+++ new/pure_eval-0.2.3/setup.cfg 2024-07-21 14:58:16.387265400 +0200
@@ -9,12 +9,13 @@
long_description_content_type = text/markdown
classifiers =
Intended Audience :: Developers
- Programming Language :: Python :: 3.5
- Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
+ Programming Language :: Python :: 3.11
+ Programming Language :: Python :: 3.12
+ Programming Language :: Python :: 3.13
License :: OSI Approved :: MIT License
Operating System :: OS Independent
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pure_eval-0.2.2/tests/test_core.py
new/pure_eval-0.2.3/tests/test_core.py
--- old/pure_eval-0.2.2/tests/test_core.py 2021-04-11 20:42:47.000000000
+0200
+++ new/pure_eval-0.2.3/tests/test_core.py 2024-07-21 14:55:03.000000000
+0200
@@ -458,12 +458,12 @@
str(evaluator["foo"])
[email protected]("expr", ["[1][:,:]", "[1][9]"])
[email protected]("expr", ["lst[:,:]", "lst[9]"])
def test_cannot_subscript(expr):
with pytest.raises(Exception):
eval(expr)
- evaluator = Evaluator({})
+ evaluator = Evaluator({'lst': [1]})
tree = ast.parse(expr)
node = tree.body[0].value
assert isinstance(node, ast.Subscript)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pure_eval-0.2.2/tests/test_getattr_static.py
new/pure_eval-0.2.3/tests/test_getattr_static.py
--- old/pure_eval-0.2.2/tests/test_getattr_static.py 2020-10-13
21:27:57.000000000 +0200
+++ new/pure_eval-0.2.3/tests/test_getattr_static.py 2024-07-21
14:20:27.000000000 +0200
@@ -187,6 +187,10 @@
descriptor.__set__ = lambda s, i, v: None
self.assert_cannot_getattr(foo, 'd')
+ del descriptor.__set__
+ descriptor.__delete__ = lambda s, i, o: None
+ self.assert_cannot_getattr(foo, 'd')
+
def test_metaclass_with_descriptor(self):
class descriptor(object):
def __get__(self, instance, owner):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pure_eval-0.2.2/tests/test_utils.py
new/pure_eval-0.2.3/tests/test_utils.py
--- old/pure_eval-0.2.2/tests/test_utils.py 2022-01-22 16:40:30.000000000
+0100
+++ new/pure_eval-0.2.3/tests/test_utils.py 2024-07-21 14:20:27.000000000
+0200
@@ -58,7 +58,16 @@
dump1 = ast.dump(tree)
dump2 = ast.dump(tree2)
normalised_dump1 = re.sub(
- r", ctx=(Load|Store|Del)\(\)",
+ # Two possible matches:
+ # - first one like ", ctx=â¦" where ", " should be removed
+ # - second one like "(ctx=â¦" where "(" should be kept
+ (
+ r"("
+ r", ctx=(Load|Store|Del)\(\)"
+ r"|"
+ r"(?<=\()ctx=(Load|Store|Del)\(\)"
+ r")"
+ ),
"",
dump1
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pure_eval-0.2.2/tox.ini new/pure_eval-0.2.3/tox.ini
--- old/pure_eval-0.2.2/tox.ini 2022-01-22 16:40:30.000000000 +0100
+++ new/pure_eval-0.2.3/tox.ini 2024-07-21 14:28:13.000000000 +0200
@@ -1,5 +1,5 @@
[tox]
-envlist = py{35,36,37,38,39,310}
+envlist = py{37,38,39,310,311,312,313}
[testenv]
commands = pytest