forked from pool/python-bpython
Accepting request 951802 from devel:languages:python
- This version actually installs manpages on its own.
- Fix failing tests:
- typing_extensions.patch (post Python 3.8 we don't need
typing_extensions package at all)
- syntaxerror_failing_test.patch (from
fdd4ad9..4d33cc6).
OBS-URL: https://build.opensuse.org/request/show/951802
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-bpython?expand=0&rev=11
This commit is contained in:
@@ -1,3 +1,17 @@
|
||||
-------------------------------------------------------------------
|
||||
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>
|
||||
|
||||
|
||||
@@ -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,18 @@ 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.
|
||||
# https://github.com/bpython/bpython/compare/fdd4ad9..4d33cc6.patch
|
||||
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 +63,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,17 +99,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
|
||||
|
||||
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
|
||||
%pyproject_install
|
||||
|
||||
%python_clone -a %{buildroot}%{_bindir}/bpython
|
||||
%python_clone -a %{buildroot}%{_bindir}/bpython-curses
|
||||
@@ -109,9 +115,6 @@ install -m 644 build/man/bpython-config.5 %{buildroot}%{_mandir}/man5/bpython-co
|
||||
%python_clone -a %{buildroot}%{_mandir}/man1/bpython.1
|
||||
%python_clone -a %{buildroot}%{_mandir}/man5/bpython-config.5
|
||||
|
||||
install -d %{buildroot}%{_mandir}/man1/
|
||||
install -d %{buildroot}%{_mandir}/man5/
|
||||
|
||||
%{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
|
||||
@@ -134,7 +137,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 +153,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
|
||||
|
||||
65
syntaxerror_failing_test.patch
Normal file
65
syntaxerror_failing_test.patch
Normal file
@@ -0,0 +1,65 @@
|
||||
From b46afa3bb1ab783c96dc80c5184090a171ab70d4 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Ramacher <sebastian@ramacher.at>
|
||||
Date: Fri, 31 Dec 2021 14:00:46 +0100
|
||||
Subject: [PATCH 1/3] Apply black
|
||||
|
||||
---
|
||||
bpython/autocomplete.py | 1 -
|
||||
bpython/curtsiesfrontend/filewatch.py | 1 -
|
||||
bpython/test/test_interpreter.py | 14 +++++++++++++-
|
||||
bpython/urwid.py | 1 -
|
||||
4 files changed, 13 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/bpython/autocomplete.py
|
||||
+++ b/bpython/autocomplete.py
|
||||
@@ -626,7 +626,6 @@ except ImportError:
|
||||
def locate(self, cursor_offset: int, line: str) -> Optional[LinePart]:
|
||||
return None
|
||||
|
||||
-
|
||||
else:
|
||||
|
||||
class JediCompletion(BaseCompletionType):
|
||||
--- a/bpython/curtsiesfrontend/filewatch.py
|
||||
+++ b/bpython/curtsiesfrontend/filewatch.py
|
||||
@@ -11,7 +11,6 @@ except ImportError:
|
||||
def ModuleChangedEventHandler(*args):
|
||||
return None
|
||||
|
||||
-
|
||||
else:
|
||||
|
||||
class ModuleChangedEventHandler(FileSystemEventHandler): # type: ignore [no-redef]
|
||||
--- a/bpython/test/test_interpreter.py
|
||||
+++ b/bpython/test/test_interpreter.py
|
||||
@@ -35,7 +35,19 @@ class TestInterpreter(unittest.TestCase)
|
||||
|
||||
i.runsource("1.1.1.1")
|
||||
|
||||
- if sys.version_info[:2] >= (3, 10):
|
||||
+ if (3, 10, 1) <= sys.version_info[:3]:
|
||||
+ expected = (
|
||||
+ " File "
|
||||
+ + green('"<bpython-input-148>"')
|
||||
+ + ", line "
|
||||
+ + bold(magenta("1"))
|
||||
+ + "\n 1.1.1.1\n ^^\n"
|
||||
+ + bold(red("SyntaxError"))
|
||||
+ + ": "
|
||||
+ + cyan("invalid syntax")
|
||||
+ + "\n"
|
||||
+ )
|
||||
+ elif (3, 10) <= sys.version_info[:2]:
|
||||
expected = (
|
||||
" File "
|
||||
+ green('"<bpython-input-148>"')
|
||||
--- a/bpython/urwid.py
|
||||
+++ b/bpython/urwid.py
|
||||
@@ -128,7 +128,6 @@ if urwid.VERSION < (1, 0, 0) and hasattr
|
||||
|
||||
return wrapper
|
||||
|
||||
-
|
||||
else:
|
||||
TwistedEventLoop = getattr(urwid, "TwistedEventLoop", None)
|
||||
|
||||
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