- Add fix-python313-tests.patch to fix tests under Python 3.13

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bpython?expand=0&rev=34
This commit is contained in:
2025-01-03 11:04:50 +00:00
committed by Git OBS Bridge
commit a8f69017bf
6 changed files with 506 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
bpython-0.24.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:98736ffd7a8c48fd2bfb53d898a475f4241bde0b672125706af04d9d08fd3dbd
size 222879

73
fix-python313-tests.patch Normal file
View File

@@ -0,0 +1,73 @@
From 45f4117b534d6827279f7b9e633f3cabe0fb37e6 Mon Sep 17 00:00:00 2001
From: Sebastian Ramacher <sebastian@ramacher.at>
Date: Fri, 25 Oct 2024 17:42:20 +0200
Subject: [PATCH] Fix test errors with Python 3.13
---
bpython/test/test_interpreter.py | 17 ++++++++++++++++-
bpython/test/test_repl.py | 11 ++++++++---
2 files changed, 24 insertions(+), 4 deletions(-)
Index: bpython-0.24/bpython/test/test_interpreter.py
===================================================================
--- bpython-0.24.orig/bpython/test/test_interpreter.py
+++ bpython-0.24/bpython/test/test_interpreter.py
@@ -112,7 +112,22 @@ class TestInterpreter(unittest.TestCase)
global_not_found = "name 'gfunc' is not defined"
- if (3, 11) <= sys.version_info[:2]:
+ if (3, 13) <= sys.version_info[:2]:
+ expected = (
+ "Traceback (most recent call last):\n File "
+ + green('"<input>"')
+ + ", line "
+ + bold(magenta("1"))
+ + ", in "
+ + cyan("<module>")
+ + "\n gfunc()"
+ + "\n ^^^^^\n"
+ + bold(red("NameError"))
+ + ": "
+ + cyan(global_not_found)
+ + "\n"
+ )
+ elif (3, 11) <= sys.version_info[:2]:
expected = (
"Traceback (most recent call last):\n File "
+ green('"<input>"')
Index: bpython-0.24/bpython/test/test_repl.py
===================================================================
--- bpython-0.24.orig/bpython/test/test_repl.py
+++ bpython-0.24/bpython/test/test_repl.py
@@ -338,9 +338,14 @@ class TestGetSource(unittest.TestCase):
self.assert_get_source_error_for_current_function(
collections.defaultdict.copy, "No source code found for INPUTLINE"
)
- self.assert_get_source_error_for_current_function(
- collections.defaultdict, "could not find class definition"
- )
+ if sys.version_info[:2] >= (3, 13):
+ self.assert_get_source_error_for_current_function(
+ collections.defaultdict, "source code not available"
+ )
+ else:
+ self.assert_get_source_error_for_current_function(
+ collections.defaultdict, "could not find class definition"
+ )
def test_current_line(self):
self.repl.interp.locals["a"] = socket.socket
Index: bpython-0.24/bpython/repl.py
===================================================================
--- bpython-0.24.orig/bpython/repl.py
+++ bpython-0.24/bpython/repl.py
@@ -152,7 +152,7 @@ class Interpreter(code.InteractiveInterp
with self.timer:
return super().runsource(source, filename, symbol)
- def showsyntaxerror(self, filename: Optional[str] = None) -> None:
+ def showsyntaxerror(self, filename: Optional[str] = None, source: Optional[str] = None) -> None:
"""Override the regular handler, the code's copied and pasted from
code.py, as per showtraceback, but with the syntaxerror callback called
and the text in a pretty colour."""

231
python-bpython.changes Normal file
View File

@@ -0,0 +1,231 @@
-------------------------------------------------------------------
Thu Jan 2 16:18:30 UTC 2025 - Nico Krapp <nico.krapp@suse.com>
- Add fix-python313-tests.patch to fix tests under Python 3.13
-------------------------------------------------------------------
Wed Jul 26 06:58:24 UTC 2023 - Bernhard Wiedemann <bwiedemann@suse.com>
- Drop sphinx doctrees for reproducible builds
-------------------------------------------------------------------
Tue May 23 08:55:21 UTC 2023 - Steve Kowalik <steven.kowalik@suse.com>
- Stop calling setup.py build_sphinx, switch to sphinx-build, and also
build manual pages.
-------------------------------------------------------------------
Mon Jan 23 14:39:42 UTC 2023 - Markéta Machová <mmachova@suse.com>
- Update to version 0.24
* Support for Python 3.11 has been added.
* wheel is no required as part of pyproject.toml's build dependencies
* Improve inspection of builtin functions.
* Add more keywords to trigger auto-deindent.
-------------------------------------------------------------------
Thu Nov 3 12:15:02 UTC 2022 - Daniel Garcia <daniel.garcia@suse.com>
- Remove python-six not needed dependency
- Remove python_module macro definition
-------------------------------------------------------------------
Sat Sep 10 15:32:53 UTC 2022 - Arun Persaud <arun@gmx.de>
- specfile:
* skip python 3.6
* update requirement for curtsies
* removed patch syntaxerror_failing_test.patch and typing_extensions.patch: included upstream
- update to version 0.23:
* General information:
+ More and more type annotations have been added to the bpython
code base.
+ Some work has been performed to stop relying on blessings.
* New features:
+ #905: Auto-closing brackets option added. To enable, add
brackets_completion = True in the bpython config Thanks to
samuelgregorovic
* Fixes:
+ Improve handling of SyntaxErrors
+ #948: Fix crash on Ctrl-Z
+ #952: Fix tests for Python 3.10.1 and newer
+ #955: Handle optional readline parameters in stdin emulation
Thanks to thevibingcat
+ #959: Fix handling of __name__
+ #966: Fix function signature completion for classmethod
* Changes to dependencies:
+ curtsies 0.4 or newer is now required
* Support for Python 3.6 has been dropped.
-------------------------------------------------------------------
Sat Feb 5 21:57:02 UTC 2022 - Matej Cepl <mcepl@suse.com>
- This version actually installs manpages on its own.
-------------------------------------------------------------------
Wed Feb 2 20:04:24 UTC 2022 - Matej Cepl <mcepl@suse.com>
- Fix failing tests:
- typing_extensions.patch (post Python 3.8 we don't need
typing_extensions package at all)
- syntaxerror_failing_test.patch (from
https://github.com/bpython/bpython/compare/fdd4ad9..4d33cc6).
-------------------------------------------------------------------
Sun Jan 23 17:31:17 UTC 2022 - Arun Persaud <arun@gmx.de>
- specfile:
* update copyright year
* update path for xml and desktop file
- update to version 0.22.1:
* Fixes:
+ #938: Fix missing dependency on typing_extensions. Thanks to
Dustin Rodrigues
-------------------------------------------------------------------
Mon Apr 5 01:02:36 UTC 2021 - Arun Persaud <arun@gmx.de>
- specfile:
* update copyright year
* AUTHORS and CHANGELOG are now .rst files
- update to version 0.21:
* General information:
+ Support for Python 2 has been dropped.
* New features:
+ #643: Provide bpython._version if built from Github tarballs
+ #849: Make import completion skip list configurable
+ #876: Check spelling with codespell Thanks to Christian Clauss
* Fixes:
+ #847: Fix import completion of modules
+ #857: Replace remaining use of deprecated imp with importlib
+ #862: Upgrade curtsies version requirements Thanks to Kelsey
Blair
+ #863: State correct default config file directory Thanks to
niloct
+ #866: Add more directories to the default import completion skip
list
+ #873: Handle 'd' when mapping colors
+ #874: Avoid breakage with six's importer
* Changes to dependencies:
+ curtsies >= 0.3.5 is now required
+ pyxdg is now required
+ wcwidth has been replaced with cwcwidth
-------------------------------------------------------------------
Fri Oct 30 22:26:06 UTC 2020 - Arun Persaud <arun@gmx.de>
- update to version 0.20:
* General information:
+ The next release of bpython (0.20) will drop support for Python
2.
+ Support for Python 3.9 has been added. Support for Python 3.5
has been dropped.
* New features:
+ #802: Provide redo. Thanks to Evan.
+ #835: Add support for importing namespace packages. Thanks to
Thomas Babej.
* Fixes:
+ #622: Provide encoding attribute for FakeOutput.
+ #806: Prevent symbolic link loops in import completion. Thanks
to Etienne Richart.
+ #807: Support packages using importlib.metadata API. Thanks to
uriariel.
+ #809: Fix support for Python 3.9's ast module.
+ #817: Fix cursor position with full-width characters. Thanks to
Jack Rybarczyk.
+ #853: Fix invalid escape sequences.
-------------------------------------------------------------------
Sat Apr 4 17:46:05 UTC 2020 - Arun Persaud <arun@gmx.de>
- specfile:
* update copyright year
- update to version 0.19:
* General information:
+ The bpython-cli and bpython-urwid rendering backends have been
deprecated and will show a warning that they'll be removed in a
future release when started.
+ Usage in combination with Python 2 has been deprecated. This
does not mean that support is dropped instantly but rather that
at some point in the future we will stop running our testcases
against Python 2.
+ The new pinnwand API is used for the pastebin functionality. We
have dropped two configuration options: `pastebin_show_url` and
`pastebin_removal_url`. If you have your bpython configured to
run against an old version of `pinnwand` please update it.
* Fixes:
+ #765: Display correct signature for decorated functions. Thanks
to Benedikt Rascher-Friesenhausen.
+ #776: Protect get_args from user code exceptions
+ Improve lock file handling on Windows
+ #791: Use importlib instead of deprecated imp when running under
Python 3
* Support for Python 3.8 has been added. Support for Python 3.4 has
been dropped.
-------------------------------------------------------------------
Tue Nov 5 09:01:44 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
- Format with spec-cleaner
-------------------------------------------------------------------
Wed Apr 10 15:39:43 UTC 2019 - Arun Persaud <arun@gmx.de>
- specfile:
* be more specific in %files section
* changes appdata to appinfo directory for bpython.appdata.xml
* for appdata and desktop add org.bpython-interpreter. to file name
* added files for bpdb
- update to version 0.18:
* New features:
+ #713 expose globals in bpdb debugging. Thanks to toejough.
* Fixes:
+ Fix file locking on Windows.
+ Exit gracefully if config file fails to be loaded due to
encoding errors.
+ #744: Fix newline handling. Thanks to Attila Szöllősi.
+ #731: Fix exit code. Thanks to benkrig.
+ #767: Fix crash when matching certain lines in history.
* Support for Python 3.3 has been dropped.
-------------------------------------------------------------------
Tue Dec 4 12:46:18 UTC 2018 - Matej Cepl <mcepl@suse.com>
- Remove superfluous devel dependency for noarch package
-------------------------------------------------------------------
Sun May 6 19:38:52 UTC 2018 - arun@gmx.de
- update to version 0.17.1:
* Fixes:
+ Reverted #670 temporarily due to performance impact on large
strings being output.
-------------------------------------------------------------------
Thu Apr 26 13:58:01 UTC 2018 - badshah400@gmail.com
- Update to version 0.17:
* New features:
- gh#bpython/bpython#641: Implement Ctrl+O.
- Add default_autoreload config option.
* Fixes:
- Fix deprecation warnings.
- Do not call signal outside of main thread.
- Fix option-backspace behavior.
- gh#bpython/bpython#648: Fix paste helper.
- gh#bpython/bpython#653: Handle docstrings more carefully.
- gh#bpython/bpython#654: Do not modify history file during
tests.
- gh#bpython/bpython#658: Fix newline handling.
- gh#bpython/bpython#670: Fix handlign of ANSI escape codes.
- gh#bpython/bpython#687: Fix encoding of jedi completions.
-------------------------------------------------------------------
Thu Sep 7 22:41:01 UTC 2017 - toddrme2178@gmail.com
- initial version

175
python-bpython.spec Normal file
View File

@@ -0,0 +1,175 @@
#
# spec file for package python-bpython
#
# Copyright (c) 2025 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/
#
%bcond_without test
Name: python-bpython
Version: 0.24
Release: 0
Summary: Fancy Interface to the Python Interpreter
License: MIT
URL: https://www.bpython-interpreter.org/
Source: https://files.pythonhosted.org/packages/source/b/bpython/bpython-%{version}.tar.gz
# PATCH-FIX-UPSTREAM fix-python313-tests.patch from commits: gh#bbdff64 and gh#45f4117
Patch0: fix-python313-tests.patch
BuildRequires: %{python_module Babel}
BuildRequires: %{python_module Sphinx}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: hicolor-icon-theme
BuildRequires: python-rpm-macros
BuildRequires: update-desktop-files
Requires: %{name}-common = %{version}
Requires: python-curtsies >= 0.4
Requires: python-greenlet
Requires: python-pygments
Requires: python-pyxdg
Requires: python-requests
Requires(post): update-alternatives
Requires(postun): update-alternatives
Recommends: python-cwcwidth
Recommends: python-jedi
Recommends: python-ndg-httpsclient
Recommends: python-pyOpenSSL
Recommends: python-pyasn1
Recommends: python-urwid
Recommends: python-watchdog
BuildArch: noarch
%if %{with test}
BuildRequires: %{python_module curtsies >= 0.4}
BuildRequires: %{python_module greenlet}
BuildRequires: %{python_module pygments}
BuildRequires: %{python_module pyxdg}
BuildRequires: %{python_module requests}
BuildRequires: %{python_module wcwidth}
%endif
%ifpython2
Provides: bpython = %{version}
Obsoletes: bpython <= %{version}
%endif
%python_subpackages
%description
Bpython is an enhanced Python interactive interpreter that uses curses
and provides the following main features: in-line syntax highlighting;
readline-like autocompletion with suggestions displayed as you type; expected
argument specification for functions; a handy pastebin function to quickly
submit your code and return a URL. Its goal is to bring together a few handy
ideas to enhance the standard interpreter without getting carried away.
%package -n %{name}-common
Summary: Fancy Interface to the Python Interpreter - common files
Provides: %{python_module bpython-common = %{version}}
%description -n %{name}-common
This package contains files shared between the various versions of
Bpython. You don't need to install this directly, packages that
require it will pull it in automatically.
%package -n %{name}-doc
Summary: Documentation for %{name}
Provides: %{python_module bpython-doc = %{version}}
%description -n %{name}-doc
Documentation and help files for %{name}.
%prep
%autosetup -p1 -n bpython-%{version}
%build
%pyproject_wheel
# Build HTML documentation
sphinx-build doc/sphinx/source build/sphinx/html && rm -r build/sphinx/html/.{buildinfo,doctrees}
# .. and the manual pages
sphinx-build -b man doc/sphinx/source build/sphinx/man
%install
%pyproject_install
# install manual pages by hand, for now: gh#bpython/bpython/issues/987
mkdir -p %{buildroot}%{_mandir}/man1
mkdir %{buildroot}%{_mandir}/man5
mv build/sphinx/man/bpython.1 %{buildroot}/%{_mandir}/man1
mv build/sphinx/man/bpython-config.5 %{buildroot}/%{_mandir}/man5
%python_clone -a %{buildroot}%{_bindir}/bpython
%python_clone -a %{buildroot}%{_bindir}/bpython-curses
%python_clone -a %{buildroot}%{_bindir}/bpython-urwid
%python_clone -a %{buildroot}%{_bindir}/bpdb
%python_clone -a %{buildroot}%{_mandir}/man1/bpython.1
%python_clone -a %{buildroot}%{_mandir}/man5/bpython-config.5
%{python_expand %fdupes %{buildroot}%{$python_sitelib}
cp %{buildroot}%{_datadir}/metainfo/org.bpython-interpreter.bpython.metainfo.xml %{buildroot}%{_datadir}/metainfo/org.bpython-interpreter.bpython-%{$python_bin_suffix}.metainfo.xml
cp %{buildroot}%{_datadir}/applications/org.bpython-interpreter.bpython.desktop %{buildroot}%{_datadir}/applications/org.bpython-interpreter.bpython-%{$python_bin_suffix}.desktop
sed -i 's|bpython.desktop|bpython-%{$python_bin_suffix}.desktop|' %{buildroot}%{_datadir}/metainfo/org.bpython-interpreter.bpython-%{$python_bin_suffix}.metainfo.xml
sed -i 's|bpython interpreter|bpython %{$python_prefix} interpreter|' %{buildroot}%{_datadir}/metainfo/org.bpython-interpreter.bpython-%{$python_bin_suffix}.metainfo.xml
sed -i 's|Python interpreter|A %{$python_prefix} interpreter|' %{buildroot}%{_datadir}/metainfo/org.bpython-interpreter.bpython-%{$python_bin_suffix}.metainfo.xml
desktop-file-edit --set-name=bpython-%{$python_bin_suffix} \
--copy-name-to-generic-name \
--remove-key=Categories \
--add-category=System --add-category=TerminalEmulator \
--set-comment="A fancy interface to the %{$python_prefix} interpreter" \
--set-key=Exec --set-value="%{_bindir}/bpython-%{$python_bin_suffix}" \
%{buildroot}%{_datadir}/applications/org.bpython-interpreter.bpython-%{$python_bin_suffix}.desktop
}
rm %{buildroot}%{_datadir}/metainfo/org.bpython-interpreter.bpython.metainfo.xml
rm %{buildroot}%{_datadir}/applications/org.bpython-interpreter.bpython.desktop
%if %{with test}
%check
%pyunittest discover -v
%endif
%post
%{python_install_alternative bpython bpython-curses bpython-urwid bpdb bpython.1%{ext_man} bpython-config.5%{ext_man}}
%postun
%python_uninstall_alternative bpython
%files %{python_files}
%license LICENSE
%doc AUTHORS.rst CHANGELOG.rst README.rst
%dir %{python_sitelib}/bpython
%{python_sitelib}/bpython/*
%dir %{python_sitelib}/bpdb
%{python_sitelib}/bpdb/*
%dir %{python_sitelib}/bpython-%{version}*-info
%{python_sitelib}/bpython-%{version}*-info/*
%python_alternative %{_bindir}/bpython
%python_alternative %{_bindir}/bpython-curses
%python_alternative %{_bindir}/bpython-urwid
%python_alternative %{_bindir}/bpdb
%python_alternative %{_mandir}/man1/bpython.1%{ext_man}
%python_alternative %{_mandir}/man5/bpython-config.5%{ext_man}
%dir %{_datadir}/metainfo/
%{_datadir}/metainfo/org.bpython-interpreter.bpython-%{python_bin_suffix}.metainfo.xml
%dir %{_datadir}/applications/
%{_datadir}/applications/org.bpython-interpreter.bpython-%{python_bin_suffix}.desktop
%files -n %{name}-common
%license LICENSE
%{_datadir}/pixmaps/bpython.png
%files -n %{name}-doc
%doc build/sphinx/html
%changelog