17
0

- use modern python on sle15

- switch to PEP517 build

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bytecode?expand=0&rev=19
This commit is contained in:
2024-08-14 15:03:57 +00:00
committed by Git OBS Bridge
commit df7028c045
5 changed files with 215 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.osc

3
bytecode-0.15.1.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7263239a8d3f70fc7c303862b20cd2c6788052e37ce0a26e67309d280e985984
size 97976

125
python-bytecode.changes Normal file
View File

@@ -0,0 +1,125 @@
-------------------------------------------------------------------
Wed Aug 14 15:03:42 UTC 2024 - Dirk Müller <dmueller@suse.com>
- use modern python on sle15
- switch to PEP517 build
-------------------------------------------------------------------
Tue Nov 14 15:47:28 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 0.15.1:
* Disallow creating an instruction targeting a
pseudo/instrumented opcode PR #133
* Fixes encoding of 0 as a varint PR #132
* Correct spelling of "INTRINSIC" in several places; this
affected some ops in Python 3.12. PR #131
-------------------------------------------------------------------
Mon Sep 18 10:14:40 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 0.15.0:
* Add support for Python 3.12 PR #122
* Support for Python 3.12, comes with a number of changes
reflecting changes in CPython bytecode itself:
* handle the ability of ``LOAD_ATTR`` to replace
``LOAD_METHOD``
As a consequence the argument is now a ``tuple[bool, str]``
similarly ``LOAD_SUPER_ATTR`` which uses the 2 lowest bits as
flag takes a ``tuple[bool, bool, str]`` as argument
* ``POP_JUMP_IF_*`` instructions are undirected in Python 3.12
* ``YIELD_VALUE`` now takes an argument
* Support for ``CALL_INSTRINSIC_1/2`` led to the addition of 2
new enums to represent the argument
-------------------------------------------------------------------
Sat May 27 21:36:54 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 0.14.2:
* allow to convert a CFG, for which stack sizes have not been
computed, to Bytecode even in the presence of mergeable
TryBegin/TryEnd
* remove spurious TryEnd leftover when going from CFG to
Bytecode
-------------------------------------------------------------------
Wed Apr 19 09:32:16 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 0.14.1:
* allow to disassemble code containing ``EXTENDED_ARG``
targeting a ``NOP`` PR #117
-------------------------------------------------------------------
Thu Dec 15 22:44:00 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Fix dependencies
- Fix python-sitelib-glob-in-files and 0.0.0 version egg-info by
not forgetting setuptools_scm
-------------------------------------------------------------------
Fri Dec 9 17:16:11 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com>
- Update to 0.14.0
* New features:
Removed the peephole optimizer PR #107
Basically changes in Python 3.11 made it hard to port and the maintenance cost exceeded the perceived use. It could be re-added if there is a demand for it.
Add support for Python 3.11 PR #107
Support for Python 3.11, comes with a number of changes reflecting changes in CPython bytecode itself:
support for the exception table in ConcreteBytecode
support for pseudo-instruction TryBegin and TryEnd describing the exception table in Bytecode and ControlflowGraph
new keyword arguments in conversion method related to computations required for the exception table
handling of CACHE opcode at the ConcreteBytecode level
handling of the ability of LOAD_GLOBAL to push NULL (the argument is now a tuple[bool, str])
support for end_lineno and column offsets in instructions
support for co_qualname (as qualname on bytecode objects)
and a number of internal changes related to changes in the internal bytecode representation.
Add type annotations and make types stricter PR # 105 In particular, ConcreteInstr does not inherit from Instr anymore and one cannot
use ConcreteInstr in Bytecode object. This is saner than before.
* Bugfixes:
Removed EXC_MATCH from the Compare enumeration starting with Python 3.9. The new JUMP_IF_NOT_EXC_MATCH opcode should be used instead.
Removed IN, NOT_IN, IS, NOT_IS from the Compare enumeration starting with Python 3.9. The new CONTAINS_OP and IS_OP opcodes should be used instead.
Add proper pre and post stack effects to all opcodes (up to Python 3.11) PR #106 #107
* Maintenance:
Make the install process PEP517 compliant PR #97
Drop support for Python 3.6 and 3.7 PR #100
-------------------------------------------------------------------
Thu Nov 18 11:47:11 UTC 2021 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- Update to 0.13.0
* Add support for Python 3.10 new encoding of line number. This support is
minimal in the sense that we still systematically assign a line number
while the new format allow bytecode with absolutely no line number. PR #72
* Fix handling of RERAISE (introduced in 3.9) when creating a ControlFlowGraph,
previously it was not considered final. PR #72
* Fix line table assembly in Python 3.10. PR #85
-------------------------------------------------------------------
Tue Aug 31 11:04:29 UTC 2021 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- Update to 0.12.0
* All calculations of stacksize now check for stack underflow to
avoid segfault at runtime PR #69
* Fix recursion limitations when compiling bytecode with numerous basic
blocks. PR #57
* Fix handling of line offsets. Issue #67, PR #71
* Forbid an :class:`Instr` to hold an EXTENDED_ARG op_code PR #65
* Forbid the use of :class:`ConcreteInstr` in :class:`Bytecode` and
:class:`ControlFlowGraph` PR #65
This is motivated by the extra complexity that handling possible EXTENDED_ARG
instruction in those representation would bring (stack computation, etc)
* Always remove EXTENDED_ARG when converting :class:`ConcreteBytecode` to
:class:`Bytecode` PR #65
* This is equivalent to say that the :class:`ConcreteBytecode` converted to
:class:`Bytecode` was generated by :meth:`ConcreteBytecode.from_code`
with extended_args=False
* :class:`Instr` now has a new method :meth:`Instr.pre_and_post_stack_effect`
for checking the prerequisite stack size of an operation PR #69
* :meth:`_compute_stack_size` now uses :meth:`Instr.pre_and_post_stack_effect`
to compute the stack size to reject code that will lead to runtime segfault
caused by stack underflow PR #69
-------------------------------------------------------------------
Thu Apr 9 11:29:55 UTC 2020 - pgajdos@suse.com
- initial version 0.11.0, required by python-enaml

63
python-bytecode.spec Normal file
View File

@@ -0,0 +1,63 @@
#
# spec file for package python-bytecode
#
# 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
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?sle15_python_module_pythons}
Name: python-bytecode
Version: 0.15.1
Release: 0
Summary: Python module to generate and modify bytecode
License: MIT
Group: Development/Languages/Python
URL: https://github.com/vstinner/bytecode
Source: https://files.pythonhosted.org/packages/source/b/bytecode/bytecode-%{version}.tar.gz
BuildRequires: %{python_module base >= 3.8}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools_scm}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module pytest}
# /SECTION
%python_subpackages
%description
Python module to generate and modify bytecode
%prep
%setup -q -n bytecode-%{version}
%build
%pyproject_wheel
%install
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
%pytest
%files %{python_files}
%doc README.rst
%license COPYING
%{python_sitelib}/bytecode
%{python_sitelib}/bytecode-%{version}.dist-info
%changelog