From a8f69017bf9f8edf2ccfb996fa0c0a4393204ef7ea71c8c4b62a761928b92662 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mark=C3=A9ta=20Machov=C3=A1?= Date: Fri, 3 Jan 2025 11:04:50 +0000 Subject: [PATCH] - 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 --- .gitattributes | 23 ++++ .gitignore | 1 + bpython-0.24.tar.gz | 3 + fix-python313-tests.patch | 73 ++++++++++++ python-bpython.changes | 231 ++++++++++++++++++++++++++++++++++++++ python-bpython.spec | 175 +++++++++++++++++++++++++++++ 6 files changed, 506 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 bpython-0.24.tar.gz create mode 100644 fix-python313-tests.patch create mode 100644 python-bpython.changes create mode 100644 python-bpython.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/bpython-0.24.tar.gz b/bpython-0.24.tar.gz new file mode 100644 index 0000000..5b11718 --- /dev/null +++ b/bpython-0.24.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98736ffd7a8c48fd2bfb53d898a475f4241bde0b672125706af04d9d08fd3dbd +size 222879 diff --git a/fix-python313-tests.patch b/fix-python313-tests.patch new file mode 100644 index 0000000..f7b0e4a --- /dev/null +++ b/fix-python313-tests.patch @@ -0,0 +1,73 @@ +From 45f4117b534d6827279f7b9e633f3cabe0fb37e6 Mon Sep 17 00:00:00 2001 +From: Sebastian Ramacher +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('""') ++ + ", line " ++ + bold(magenta("1")) ++ + ", in " ++ + cyan("") ++ + "\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('""') +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.""" diff --git a/python-bpython.changes b/python-bpython.changes new file mode 100644 index 0000000..2e9da90 --- /dev/null +++ b/python-bpython.changes @@ -0,0 +1,231 @@ +------------------------------------------------------------------- +Thu Jan 2 16:18:30 UTC 2025 - Nico Krapp + +- Add fix-python313-tests.patch to fix tests under Python 3.13 + +------------------------------------------------------------------- +Wed Jul 26 06:58:24 UTC 2023 - Bernhard Wiedemann + +- Drop sphinx doctrees for reproducible builds + +------------------------------------------------------------------- +Tue May 23 08:55:21 UTC 2023 - Steve Kowalik + +- 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á + +- 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 + +- Remove python-six not needed dependency +- Remove python_module macro definition + +------------------------------------------------------------------- +Sat Sep 10 15:32:53 UTC 2022 - Arun Persaud + +- 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 + +- This version actually installs manpages on its own. + +------------------------------------------------------------------- +Wed Feb 2 20:04:24 UTC 2022 - Matej Cepl + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- Format with spec-cleaner + +------------------------------------------------------------------- +Wed Apr 10 15:39:43 UTC 2019 - Arun Persaud + +- 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 + +- 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 diff --git a/python-bpython.spec b/python-bpython.spec new file mode 100644 index 0000000..95b0fd5 --- /dev/null +++ b/python-bpython.spec @@ -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