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>
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
||||
%define skip_python2 1
|
||||
%bcond_with test
|
||||
%bcond_without test
|
||||
Name: python-bpython
|
||||
Version: 0.22.1
|
||||
Release: 0
|
||||
@@ -26,9 +26,17 @@ 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 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 Sphinx}
|
||||
BuildRequires: %{python_module pip}
|
||||
BuildRequires: %{python_module setuptools}
|
||||
BuildRequires: %{python_module wheel}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: hicolor-icon-theme
|
||||
BuildRequires: python-rpm-macros
|
||||
@@ -54,10 +62,10 @@ BuildArch: noarch
|
||||
BuildRequires: %{python_module curtsies >= 0.3.5}
|
||||
BuildRequires: %{python_module greenlet}
|
||||
BuildRequires: %{python_module pygments}
|
||||
BuildRequires: %{python_module pyxdg}
|
||||
BuildRequires: %{python_module requests}
|
||||
BuildRequires: %{python_module six >= 1.5}
|
||||
BuildRequires: %{python_module wcwidth}
|
||||
BuildRequires: python-mock
|
||||
%endif
|
||||
%ifpython2
|
||||
Provides: bpython = %{version}
|
||||
@@ -90,14 +98,14 @@ Provides: %{python_module bpython-doc = %{version}}
|
||||
Documentation and help files for %{name}.
|
||||
|
||||
%prep
|
||||
%setup -q -n bpython-%{version}
|
||||
%autosetup -p1 -n bpython-%{version}
|
||||
|
||||
%build
|
||||
%python_build
|
||||
%pyproject_wheel
|
||||
%python_exec setup.py build_sphinx && rm build/sphinx/html/.buildinfo # HTML documentation
|
||||
|
||||
%install
|
||||
%python_install
|
||||
%pyproject_install
|
||||
|
||||
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
|
||||
@@ -134,7 +142,7 @@ rm %{buildroot}%{_datadir}/applications/org.bpython-interpreter.bpython.desktop
|
||||
|
||||
%if %{with test}
|
||||
%check
|
||||
%python_exec setup.py test
|
||||
%pyunittest discover -v
|
||||
%endif
|
||||
|
||||
%post
|
||||
@@ -150,8 +158,8 @@ rm %{buildroot}%{_datadir}/applications/org.bpython-interpreter.bpython.desktop
|
||||
%{python_sitelib}/bpython/*
|
||||
%dir %{python_sitelib}/bpdb
|
||||
%{python_sitelib}/bpdb/*
|
||||
%dir %{python_sitelib}/bpython-%{version}-py*.egg-info
|
||||
%{python_sitelib}/bpython-%{version}-py*.egg-info/*
|
||||
%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
|
||||
|
||||
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