forked from pool/python-bpython
- Fix failing tests:
- typing_extensions.patch (post Python 3.8 we don't need
typing_extensions package at all)
- syntaxerror_failing_test.patch (This is actually fixed in the
post-0.22.1 development, but waiting on it.)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bpython?expand=0&rev=20
This commit is contained in:
@@ -1,3 +1,12 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
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 (This is actually fixed in the
|
||||||
|
post-0.22.1 development, but waiting on it.)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sun Jan 23 17:31:17 UTC 2022 - Arun Persaud <arun@gmx.de>
|
Sun Jan 23 17:31:17 UTC 2022 - Arun Persaud <arun@gmx.de>
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
||||||
%define skip_python2 1
|
%define skip_python2 1
|
||||||
%bcond_with test
|
%bcond_without test
|
||||||
Name: python-bpython
|
Name: python-bpython
|
||||||
Version: 0.22.1
|
Version: 0.22.1
|
||||||
Release: 0
|
Release: 0
|
||||||
@@ -26,9 +26,17 @@ Summary: Fancy Interface to the Python Interpreter
|
|||||||
License: MIT
|
License: MIT
|
||||||
URL: https://www.bpython-interpreter.org/
|
URL: https://www.bpython-interpreter.org/
|
||||||
Source: https://files.pythonhosted.org/packages/source/b/bpython/bpython-%{version}.tar.gz
|
Source: https://files.pythonhosted.org/packages/source/b/bpython/bpython-%{version}.tar.gz
|
||||||
|
# PATCH-FIX-UPSTREAM typing_extensions.patch gh#bpython/bpython#940 mcepl@suse.com
|
||||||
|
# We actually don't need typing_extensions (all objects are in 3.8+)
|
||||||
|
Patch0: typing_extensions.patch
|
||||||
|
# PATCH-FIX-UPSTREAM syntaxerror_failing_test.patch gh#bpython/bpython#952 mcepl@suse.com
|
||||||
|
# This is actually fixed in the post-0.22.1 development, but waiting on it.
|
||||||
|
Patch1: syntaxerror_failing_test.patch
|
||||||
BuildRequires: %{python_module Babel}
|
BuildRequires: %{python_module Babel}
|
||||||
BuildRequires: %{python_module Sphinx}
|
BuildRequires: %{python_module Sphinx}
|
||||||
|
BuildRequires: %{python_module pip}
|
||||||
BuildRequires: %{python_module setuptools}
|
BuildRequires: %{python_module setuptools}
|
||||||
|
BuildRequires: %{python_module wheel}
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: hicolor-icon-theme
|
BuildRequires: hicolor-icon-theme
|
||||||
BuildRequires: python-rpm-macros
|
BuildRequires: python-rpm-macros
|
||||||
@@ -54,10 +62,10 @@ BuildArch: noarch
|
|||||||
BuildRequires: %{python_module curtsies >= 0.3.5}
|
BuildRequires: %{python_module curtsies >= 0.3.5}
|
||||||
BuildRequires: %{python_module greenlet}
|
BuildRequires: %{python_module greenlet}
|
||||||
BuildRequires: %{python_module pygments}
|
BuildRequires: %{python_module pygments}
|
||||||
|
BuildRequires: %{python_module pyxdg}
|
||||||
BuildRequires: %{python_module requests}
|
BuildRequires: %{python_module requests}
|
||||||
BuildRequires: %{python_module six >= 1.5}
|
BuildRequires: %{python_module six >= 1.5}
|
||||||
BuildRequires: %{python_module wcwidth}
|
BuildRequires: %{python_module wcwidth}
|
||||||
BuildRequires: python-mock
|
|
||||||
%endif
|
%endif
|
||||||
%ifpython2
|
%ifpython2
|
||||||
Provides: bpython = %{version}
|
Provides: bpython = %{version}
|
||||||
@@ -90,14 +98,14 @@ Provides: %{python_module bpython-doc = %{version}}
|
|||||||
Documentation and help files for %{name}.
|
Documentation and help files for %{name}.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n bpython-%{version}
|
%autosetup -p1 -n bpython-%{version}
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%python_build
|
%pyproject_wheel
|
||||||
%python_exec setup.py build_sphinx && rm build/sphinx/html/.buildinfo # HTML documentation
|
%python_exec setup.py build_sphinx && rm build/sphinx/html/.buildinfo # HTML documentation
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%python_install
|
%pyproject_install
|
||||||
|
|
||||||
install -m 644 build/man/bpython.1 %{buildroot}%{_mandir}/man1/bpython.1
|
install -m 644 build/man/bpython.1 %{buildroot}%{_mandir}/man1/bpython.1
|
||||||
install -m 644 build/man/bpython-config.5 %{buildroot}%{_mandir}/man5/bpython-config.5
|
install -m 644 build/man/bpython-config.5 %{buildroot}%{_mandir}/man5/bpython-config.5
|
||||||
@@ -134,7 +142,7 @@ rm %{buildroot}%{_datadir}/applications/org.bpython-interpreter.bpython.desktop
|
|||||||
|
|
||||||
%if %{with test}
|
%if %{with test}
|
||||||
%check
|
%check
|
||||||
%python_exec setup.py test
|
%pyunittest discover -v
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%post
|
%post
|
||||||
@@ -150,8 +158,8 @@ rm %{buildroot}%{_datadir}/applications/org.bpython-interpreter.bpython.desktop
|
|||||||
%{python_sitelib}/bpython/*
|
%{python_sitelib}/bpython/*
|
||||||
%dir %{python_sitelib}/bpdb
|
%dir %{python_sitelib}/bpdb
|
||||||
%{python_sitelib}/bpdb/*
|
%{python_sitelib}/bpdb/*
|
||||||
%dir %{python_sitelib}/bpython-%{version}-py*.egg-info
|
%dir %{python_sitelib}/bpython-%{version}-*-info
|
||||||
%{python_sitelib}/bpython-%{version}-py*.egg-info/*
|
%{python_sitelib}/bpython-%{version}-*-info/*
|
||||||
%python_alternative %{_bindir}/bpython
|
%python_alternative %{_bindir}/bpython
|
||||||
%python_alternative %{_bindir}/bpython-curses
|
%python_alternative %{_bindir}/bpython-curses
|
||||||
%python_alternative %{_bindir}/bpython-urwid
|
%python_alternative %{_bindir}/bpython-urwid
|
||||||
|
|||||||
19
syntaxerror_failing_test.patch
Normal file
19
syntaxerror_failing_test.patch
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
bpython/test/test_interpreter.py | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/bpython/test/test_interpreter.py
|
||||||
|
+++ b/bpython/test/test_interpreter.py
|
||||||
|
@@ -41,10 +41,10 @@ class TestInterpreter(unittest.TestCase)
|
||||||
|
+ green('"<bpython-input-148>"')
|
||||||
|
+ ", line "
|
||||||
|
+ bold(magenta("1"))
|
||||||
|
- + "\n 1.1.1.1\n ^^^^^\n"
|
||||||
|
+ + "\n 1.1.1.1\n ^^\n"
|
||||||
|
+ bold(red("SyntaxError"))
|
||||||
|
+ ": "
|
||||||
|
- + cyan("invalid syntax. Perhaps you forgot a comma?")
|
||||||
|
+ + cyan("invalid syntax")
|
||||||
|
+ "\n"
|
||||||
|
)
|
||||||
|
elif (3, 8) <= sys.version_info[:2] <= (3, 9):
|
||||||
131
typing_extensions.patch
Normal file
131
typing_extensions.patch
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
From 51ebc86070c7a49abe78ba87a0e8268a09f141a6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sebastian Ramacher <sebastian@ramacher.at>
|
||||||
|
Date: Wed, 8 Dec 2021 18:18:17 +0100
|
||||||
|
Subject: [PATCH] Add a typing compat module to avoid a dependency on
|
||||||
|
typing-extensions for Py >= 3.8
|
||||||
|
|
||||||
|
---
|
||||||
|
bpython/_typing_compat.py | 33 +++++++++++++++++++++++++++++++++
|
||||||
|
bpython/curtsies.py | 2 +-
|
||||||
|
bpython/curtsiesfrontend/_internal.py | 2 +-
|
||||||
|
bpython/curtsiesfrontend/repl.py | 2 +-
|
||||||
|
bpython/filelock.py | 2 +-
|
||||||
|
bpython/inspection.py | 2 +-
|
||||||
|
bpython/repl.py | 2 +-
|
||||||
|
setup.cfg | 2 +-
|
||||||
|
8 files changed, 40 insertions(+), 7 deletions(-)
|
||||||
|
create mode 100644 bpython/_typing_compat.py
|
||||||
|
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/bpython/_typing_compat.py
|
||||||
|
@@ -0,0 +1,33 @@
|
||||||
|
+# The MIT License
|
||||||
|
+#
|
||||||
|
+# Copyright (c) 2021 Sebastian Ramacher
|
||||||
|
+#
|
||||||
|
+# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
+# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
+# in the Software without restriction, including without limitation the rights
|
||||||
|
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
+# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
+# furnished to do so, subject to the following conditions:
|
||||||
|
+#
|
||||||
|
+# The above copyright notice and this permission notice shall be included in
|
||||||
|
+# all copies or substantial portions of the Software.
|
||||||
|
+#
|
||||||
|
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
+# THE SOFTWARE.
|
||||||
|
+
|
||||||
|
+try:
|
||||||
|
+ # introduced in Python 3.8
|
||||||
|
+ from typing import Literal
|
||||||
|
+except ImportError:
|
||||||
|
+ from typing_extensions import Literal # type: ignore
|
||||||
|
+
|
||||||
|
+try:
|
||||||
|
+ # introduced in Python 3.8
|
||||||
|
+ from typing import Protocol
|
||||||
|
+except ImportError:
|
||||||
|
+ from typing_extensions import Protocol # type: ignore
|
||||||
|
--- a/bpython/curtsies.py
|
||||||
|
+++ b/bpython/curtsies.py
|
||||||
|
@@ -33,7 +33,7 @@ from typing import (
|
||||||
|
Optional,
|
||||||
|
Generator,
|
||||||
|
)
|
||||||
|
-from typing_extensions import Literal, Protocol
|
||||||
|
+from ._typing_compat import Protocol
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
--- a/bpython/curtsiesfrontend/_internal.py
|
||||||
|
+++ b/bpython/curtsiesfrontend/_internal.py
|
||||||
|
@@ -23,7 +23,7 @@
|
||||||
|
import pydoc
|
||||||
|
from types import TracebackType
|
||||||
|
from typing import Optional, Type
|
||||||
|
-from typing_extensions import Literal
|
||||||
|
+from .._typing_compat import Literal
|
||||||
|
|
||||||
|
from .. import _internal
|
||||||
|
|
||||||
|
--- a/bpython/curtsiesfrontend/repl.py
|
||||||
|
+++ b/bpython/curtsiesfrontend/repl.py
|
||||||
|
@@ -14,7 +14,7 @@ import unicodedata
|
||||||
|
from enum import Enum
|
||||||
|
from types import TracebackType
|
||||||
|
from typing import Dict, Any, List, Optional, Tuple, Union, cast, Type
|
||||||
|
-from typing_extensions import Literal
|
||||||
|
+from .._typing_compat import Literal
|
||||||
|
|
||||||
|
import blessings
|
||||||
|
import greenlet
|
||||||
|
--- a/bpython/filelock.py
|
||||||
|
+++ b/bpython/filelock.py
|
||||||
|
@@ -21,7 +21,7 @@
|
||||||
|
# THE SOFTWARE.
|
||||||
|
|
||||||
|
from typing import Optional, Type, IO
|
||||||
|
-from typing_extensions import Literal
|
||||||
|
+from ._typing_compat import Literal
|
||||||
|
from types import TracebackType
|
||||||
|
|
||||||
|
has_fcntl = True
|
||||||
|
--- a/bpython/inspection.py
|
||||||
|
+++ b/bpython/inspection.py
|
||||||
|
@@ -28,7 +28,7 @@ import re
|
||||||
|
from collections import namedtuple
|
||||||
|
from typing import Any, Optional, Type
|
||||||
|
from types import MemberDescriptorType, TracebackType
|
||||||
|
-from typing_extensions import Literal
|
||||||
|
+from ._typing_compat import Literal
|
||||||
|
|
||||||
|
from pygments.token import Token
|
||||||
|
from pygments.lexers import Python3Lexer
|
||||||
|
--- a/bpython/repl.py
|
||||||
|
+++ b/bpython/repl.py
|
||||||
|
@@ -38,7 +38,7 @@ from itertools import takewhile
|
||||||
|
from pathlib import Path
|
||||||
|
from types import ModuleType, TracebackType
|
||||||
|
from typing import cast, Tuple, Any, Optional, Type
|
||||||
|
-from typing_extensions import Literal
|
||||||
|
+from ._typing_compat import Literal
|
||||||
|
|
||||||
|
from pygments.lexers import Python3Lexer
|
||||||
|
from pygments.token import Token
|
||||||
|
--- a/setup.cfg
|
||||||
|
+++ b/setup.cfg
|
||||||
|
@@ -28,7 +28,7 @@ install_requires =
|
||||||
|
pygments
|
||||||
|
pyxdg
|
||||||
|
requests
|
||||||
|
- typing-extensions
|
||||||
|
+ typing-extensions; python_version < "3.8"
|
||||||
|
|
||||||
|
[options.extras_require]
|
||||||
|
clipboard = pyperclip
|
||||||
Reference in New Issue
Block a user