Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-executing for openSUSE:Factory checked in at 2022-03-29 18:14:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-executing (Old) and /work/SRC/openSUSE:Factory/.python-executing.new.1900 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-executing" Tue Mar 29 18:14:04 2022 rev:4 rq:965181 version:0.8.3 Changes: -------- --- /work/SRC/openSUSE:Factory/python-executing/python-executing.changes 2021-12-02 22:31:30.242387634 +0100 +++ /work/SRC/openSUSE:Factory/.python-executing.new.1900/python-executing.changes 2022-03-29 18:14:15.191063800 +0200 @@ -1,0 +2,7 @@ +Sun Mar 27 10:48:50 UTC 2022 - Dirk M??ller <dmuel...@suse.com> + +- update to 0.8.3: + * handle new iphython cell code names + * link to futurecoder + +------------------------------------------------------------------- Old: ---- executing-0.8.2.tar.gz New: ---- executing-0.8.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-executing.spec ++++++ --- /var/tmp/diff_new_pack.pC8b4W/_old 2022-03-29 18:14:16.367064881 +0200 +++ /var/tmp/diff_new_pack.pC8b4W/_new 2022-03-29 18:14:16.371064885 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-executing # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,7 +20,7 @@ %define skip_python2 1 %define skip_python36 1 Name: python-executing -Version: 0.8.2 +Version: 0.8.3 Release: 0 License: MIT Summary: Get the currently executing AST node of a frame, and other information @@ -30,6 +30,7 @@ Source: https://files.pythonhosted.org/packages/source/e/executing/executing-%{version}.tar.gz BuildRequires: %{python_module asttokens} BuildRequires: %{python_module devel} +BuildRequires: %{python_module littleutils} BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools_scm >= 4.0.0} BuildRequires: %{python_module setuptools} ++++++ executing-0.8.2.tar.gz -> executing-0.8.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/executing-0.8.2/.github/workflows/test.yml new/executing-0.8.3/.github/workflows/test.yml --- old/executing-0.8.2/.github/workflows/test.yml 2021-09-12 22:50:36.000000000 +0200 +++ new/executing-0.8.3/.github/workflows/test.yml 2022-02-27 23:43:45.000000000 +0100 @@ -19,7 +19,7 @@ run: | python --version pip install -U pip - pip install --upgrade coveralls asttokens pytest setuptools setuptools_scm pep517 + pip install --upgrade coveralls asttokens pytest littleutils setuptools setuptools_scm pep517 pip install . - name: Test env: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/executing-0.8.2/PKG-INFO new/executing-0.8.3/PKG-INFO --- old/executing-0.8.2/PKG-INFO 2021-10-02 20:23:22.708351400 +0200 +++ new/executing-0.8.3/PKG-INFO 2022-02-27 23:45:13.267087500 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: executing -Version: 0.8.2 +Version: 0.8.3 Summary: Get the currently executing AST node of a frame, and other information Home-page: https://github.com/alexmojaki/executing Author: Alex Hall @@ -144,21 +144,23 @@ The plan is to extend to more operations in the future. -## Libraries that use this +## Projects that use this -### My libraries +### My Projects - **[`stack_data`](https://github.com/alexmojaki/stack_data)**: Extracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default. Also uses another related library of mine: **[`pure_eval`](https://github.com/alexmojaki/pure_eval)**. +- **[`futurecoder`](https://futurecoder.io/)**: Highlights the executing node in tracebacks using `executing` via `stack_data`, and provides debugging with `snoop`. - **[`snoop`](https://github.com/alexmojaki/snoop)**: A feature-rich and convenient debugging library. Uses `executing` to show the operation which caused an exception and to allow the `pp` function to display the source of its arguments. - **[`heartrate`](https://github.com/alexmojaki/heartrate)**: A simple real time visualisation of the execution of a Python program. Uses `executing` to highlight currently executing operations, particularly in each frame of the stack trace. - **[`sorcery`](https://github.com/alexmojaki/sorcery)**: Dark magic delights in Python. Uses `executing` to let special callables called spells know where they're being called from. -### Libraries I've contributed to +### Projects I've contributed to - **[`IPython`](https://github.com/ipython/ipython/pull/12150)**: Highlights the executing node in tracebacks using `executing` via [`stack_data`](https://github.com/alexmojaki/stack_data). - **[`icecream`](https://github.com/gruns/icecream)**: ???? Sweet and creamy print debugging. Uses `executing` to identify where `ic` is called and print its arguments. +- **[`friendly_traceback`](https://github.com/friendly-traceback/friendly-traceback)**: Uses `stack_data` and `executing` to pinpoint the cause of errors and provide helpful explanations. - **[`python-devtools`](https://github.com/samuelcolvin/python-devtools)**: Uses `executing` for print debugging similar to `icecream`. -- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events. Highlighting the executing node is hopefully [coming soon](https://github.com/getsentry/sentry/pull/19924). +- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events. - **[`varname`](https://github.com/pwwang/python-varname)**: Dark magics about variable names in python. Uses `executing` to find where its various magical functions like `varname` and `nameof` are called from. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/executing-0.8.2/README.md new/executing-0.8.3/README.md --- old/executing-0.8.2/README.md 2021-09-12 22:56:11.000000000 +0200 +++ new/executing-0.8.3/README.md 2022-02-26 12:24:53.000000000 +0100 @@ -121,19 +121,21 @@ The plan is to extend to more operations in the future. -## Libraries that use this +## Projects that use this -### My libraries +### My Projects - **[`stack_data`](https://github.com/alexmojaki/stack_data)**: Extracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default. Also uses another related library of mine: **[`pure_eval`](https://github.com/alexmojaki/pure_eval)**. +- **[`futurecoder`](https://futurecoder.io/)**: Highlights the executing node in tracebacks using `executing` via `stack_data`, and provides debugging with `snoop`. - **[`snoop`](https://github.com/alexmojaki/snoop)**: A feature-rich and convenient debugging library. Uses `executing` to show the operation which caused an exception and to allow the `pp` function to display the source of its arguments. - **[`heartrate`](https://github.com/alexmojaki/heartrate)**: A simple real time visualisation of the execution of a Python program. Uses `executing` to highlight currently executing operations, particularly in each frame of the stack trace. - **[`sorcery`](https://github.com/alexmojaki/sorcery)**: Dark magic delights in Python. Uses `executing` to let special callables called spells know where they're being called from. -### Libraries I've contributed to +### Projects I've contributed to - **[`IPython`](https://github.com/ipython/ipython/pull/12150)**: Highlights the executing node in tracebacks using `executing` via [`stack_data`](https://github.com/alexmojaki/stack_data). - **[`icecream`](https://github.com/gruns/icecream)**: ???? Sweet and creamy print debugging. Uses `executing` to identify where `ic` is called and print its arguments. +- **[`friendly_traceback`](https://github.com/friendly-traceback/friendly-traceback)**: Uses `stack_data` and `executing` to pinpoint the cause of errors and provide helpful explanations. - **[`python-devtools`](https://github.com/samuelcolvin/python-devtools)**: Uses `executing` for print debugging similar to `icecream`. -- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events. Highlighting the executing node is hopefully [coming soon](https://github.com/getsentry/sentry/pull/19924). +- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events. - **[`varname`](https://github.com/pwwang/python-varname)**: Dark magics about variable names in python. Uses `executing` to find where its various magical functions like `varname` and `nameof` are called from. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/executing-0.8.2/executing/executing.py new/executing-0.8.3/executing/executing.py --- old/executing-0.8.2/executing/executing.py 2021-10-02 20:21:58.000000000 +0200 +++ new/executing-0.8.3/executing/executing.py 2022-02-27 23:43:45.000000000 +0100 @@ -323,10 +323,7 @@ try: stmts = source.statements_at_line(lineno) if stmts: - if code.co_name == "<module>" and re.search( - r"<ipython-input-|[/\\]ipykernel_\d+[/\\]", - code.co_filename, - ): + if is_ipython_cell_code(code): for stmt in stmts: tree = _extract_ipython_statement(stmt) try: @@ -789,9 +786,9 @@ def find_codes(self, root_code): checks = [ attrgetter('co_firstlineno'), - attrgetter('co_name'), attrgetter('co_freevars'), attrgetter('co_cellvars'), + lambda c: is_ipython_cell_code_name(c.co_name) or c.co_name, ] if not self.is_pytest: checks += [ @@ -1074,3 +1071,18 @@ tree.body = [stmt] ast.copy_location(tree, stmt) return tree + + +def is_ipython_cell_code_name(code_name): + return bool(re.match(r"(<module>|<cell line: \d+>)$", code_name)) + + +def is_ipython_cell_filename(filename): + return re.search(r"<ipython-input-|[/\\]ipykernel_\d+[/\\]", filename) + + +def is_ipython_cell_code(code_obj): + return ( + is_ipython_cell_filename(code_obj.co_filename) and + is_ipython_cell_code_name(code_obj.co_name) + ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/executing-0.8.2/executing/version.py new/executing-0.8.3/executing/version.py --- old/executing-0.8.2/executing/version.py 2021-10-02 20:23:22.000000000 +0200 +++ new/executing-0.8.3/executing/version.py 2022-02-27 23:45:12.000000000 +0100 @@ -1 +1 @@ -__version__ = '0.8.2' \ No newline at end of file +__version__ = '0.8.3' \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/executing-0.8.2/executing.egg-info/PKG-INFO new/executing-0.8.3/executing.egg-info/PKG-INFO --- old/executing-0.8.2/executing.egg-info/PKG-INFO 2021-10-02 20:23:22.000000000 +0200 +++ new/executing-0.8.3/executing.egg-info/PKG-INFO 2022-02-27 23:45:12.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: executing -Version: 0.8.2 +Version: 0.8.3 Summary: Get the currently executing AST node of a frame, and other information Home-page: https://github.com/alexmojaki/executing Author: Alex Hall @@ -144,21 +144,23 @@ The plan is to extend to more operations in the future. -## Libraries that use this +## Projects that use this -### My libraries +### My Projects - **[`stack_data`](https://github.com/alexmojaki/stack_data)**: Extracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default. Also uses another related library of mine: **[`pure_eval`](https://github.com/alexmojaki/pure_eval)**. +- **[`futurecoder`](https://futurecoder.io/)**: Highlights the executing node in tracebacks using `executing` via `stack_data`, and provides debugging with `snoop`. - **[`snoop`](https://github.com/alexmojaki/snoop)**: A feature-rich and convenient debugging library. Uses `executing` to show the operation which caused an exception and to allow the `pp` function to display the source of its arguments. - **[`heartrate`](https://github.com/alexmojaki/heartrate)**: A simple real time visualisation of the execution of a Python program. Uses `executing` to highlight currently executing operations, particularly in each frame of the stack trace. - **[`sorcery`](https://github.com/alexmojaki/sorcery)**: Dark magic delights in Python. Uses `executing` to let special callables called spells know where they're being called from. -### Libraries I've contributed to +### Projects I've contributed to - **[`IPython`](https://github.com/ipython/ipython/pull/12150)**: Highlights the executing node in tracebacks using `executing` via [`stack_data`](https://github.com/alexmojaki/stack_data). - **[`icecream`](https://github.com/gruns/icecream)**: ???? Sweet and creamy print debugging. Uses `executing` to identify where `ic` is called and print its arguments. +- **[`friendly_traceback`](https://github.com/friendly-traceback/friendly-traceback)**: Uses `stack_data` and `executing` to pinpoint the cause of errors and provide helpful explanations. - **[`python-devtools`](https://github.com/samuelcolvin/python-devtools)**: Uses `executing` for print debugging similar to `icecream`. -- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events. Highlighting the executing node is hopefully [coming soon](https://github.com/getsentry/sentry/pull/19924). +- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events. - **[`varname`](https://github.com/pwwang/python-varname)**: Dark magics about variable names in python. Uses `executing` to find where its various magical functions like `varname` and `nameof` are called from. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/executing-0.8.2/tests/test_pytest.py new/executing-0.8.3/tests/test_pytest.py --- old/executing-0.8.2/tests/test_pytest.py 2020-08-14 21:28:33.000000000 +0200 +++ new/executing-0.8.3/tests/test_pytest.py 2022-02-27 23:43:45.000000000 +0100 @@ -1,6 +1,10 @@ import os import sys +from littleutils import SimpleNamespace + +from executing.executing import is_ipython_cell_code + sys.path.append(os.path.dirname(os.path.dirname(__file__))) @@ -17,3 +21,26 @@ ), 'message' x = tester.x assert x is tester + + +def test_ipython_cell_code(): + assert is_ipython_cell_code( + SimpleNamespace( + co_name="<cell line: 1>", + co_filename="tmp/ipykernel_3/foo", + ) + ) + + assert not is_ipython_cell_code( + SimpleNamespace( + co_name="<cell line: 1", + co_filename="tmp/ipykernel_3/foo", + ) + ) + + assert not is_ipython_cell_code( + SimpleNamespace( + co_name="<cell line: 1>", + co_filename="tmp/ipykernel_3", + ) + ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/executing-0.8.2/tox.ini new/executing-0.8.3/tox.ini --- old/executing-0.8.2/tox.ini 2021-08-01 00:02:53.000000000 +0200 +++ new/executing-0.8.3/tox.ini 2022-02-27 23:43:45.000000000 +0100 @@ -8,6 +8,7 @@ deps = asttokens pytest + littleutils passenv = FIX_EXECUTING_TESTS EXECUTING_SLOW_TESTS