15
0

Accepting request 793948 from devel:languages:python

- Don't use %python3_only command, but properly use alternatives.

- fix the path of non-oss licensed files to remove

- set the minimal version of python to 3.5 to match upstream
  requirement

- update to version 2.6.1:
  * This release fixes a packaging issue. No functional changes.
- additional changes from version 2.6.0:
  * Running Pygments on Python 2.x is no longer supported.
  * Added lexers:
    + Linux kernel logs (PR#1310)
    + LLVM MIR (PR#1361)
    + MiniScript (PR#1397)
    + Mosel (PR#1287, PR#1326)
    + Parsing Expression Grammar (PR#1336)
    + ReasonML (PR#1386)
    + Ride (PR#1319, PR#1321)
    + Sieve (PR#1257)
    + USD (PR#1290)
    + WebIDL (PR#1309)
  * Updated lexers:
    + Apache2 (PR#1378)
    + Chapel (PR#1357)
    + CSound (PR#1383)
    + D (PR#1375, PR#1362)
    + Idris (PR#1360)
    + Perl6/Raku lexer (PR#1344)
    + Python3 (PR#1382, PR#1385)

OBS-URL: https://build.opensuse.org/request/show/793948
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-Pygments?expand=0&rev=29
This commit is contained in:
2020-04-19 19:49:17 +00:00
committed by Git OBS Bridge
5 changed files with 156 additions and 337 deletions

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:881c4c157e45f30af185c1ffe8d549d48ac9127433f2c380c24b84572ad66297
size 9405880

3
Pygments-2.6.1.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44
size 3303050

View File

@@ -1,318 +0,0 @@
--- a/tests/run.py
+++ b/tests/run.py
@@ -17,6 +17,7 @@ from __future__ import print_function
import os
import sys
import warnings
+import unittest
# only find tests in this directory
if os.path.dirname(__file__):
@@ -30,12 +31,6 @@ warnings.filterwarnings("error", module=
category=DeprecationWarning)
-try:
- import nose
-except ImportError:
- print('nose is required to run the Pygments test suite')
- sys.exit(1)
-
# make sure the current source is first on sys.path
sys.path.insert(0, '..')
@@ -55,4 +50,4 @@ else:
print('Pygments test suite running (Python %s)...' % sys.version.split()[0],
file=sys.stderr)
-nose.main()
+unittest.main()
--- a/tests/support.py
+++ b/tests/support.py
@@ -5,7 +5,7 @@ Support for Pygments tests
import os
-from nose import SkipTest
+from unittest import SkipTest
def location(mod_name):
--- a/tests/test_cmdline.py
+++ b/tests/test_cmdline.py
@@ -16,11 +16,10 @@ import sys
import tempfile
import unittest
-import support
+from . import support
from pygments import cmdline, highlight
from pygments.util import BytesIO, StringIO
-
TESTFILE, TESTDIR = support.location(__file__)
TESTCODE = '''\
def func(args):
@@ -46,7 +45,7 @@ def run_cmdline(*args, **kwds):
new_stdin.write(kwds.get('stdin', ''))
new_stdin.seek(0, 0)
try:
- ret = cmdline.main(['pygmentize'] + list(args))
+ ret = cmdline.main(['./pygmentize'] + list(args))
finally:
sys.stdin = saved_stdin
sys.stdout = saved_stdout
@@ -111,8 +110,8 @@ class CmdLineTest(unittest.TestCase):
os.unlink(name)
def test_load_from_file(self):
- lexer_file = os.path.join(TESTDIR, 'support', 'python_lexer.py')
- formatter_file = os.path.join(TESTDIR, 'support', 'html_formatter.py')
+ lexer_file = os.path.join('tests', 'support', 'python_lexer.py')
+ formatter_file = os.path.join('tests', 'support', 'html_formatter.py')
# By default, use CustomLexer
o = self.check_success('-l', lexer_file, '-f', 'html',
@@ -143,7 +142,7 @@ class CmdLineTest(unittest.TestCase):
def test_h_opt(self):
o = self.check_success('-h')
- self.assertTrue('Usage:' in o)
+ self.assertIn('Usage:', o)
def test_L_opt(self):
o = self.check_success('-L')
@@ -157,37 +156,37 @@ class CmdLineTest(unittest.TestCase):
filename = TESTFILE
o = self.check_success('-Ofull=1,linenos=true,foo=bar',
'-fhtml', filename)
- self.assertTrue('<html' in o)
- self.assertTrue('class="linenos"' in o)
+ self.assertIn('<html', o)
+ self.assertIn('class="linenos"', o)
# "foobar" is invalid for a bool option
e = self.check_failure('-Ostripnl=foobar', TESTFILE)
- self.assertTrue('Error: Invalid value' in e)
+ self.assertIn('Error: Invalid value', e)
e = self.check_failure('-Ostripnl=foobar', '-lpy')
- self.assertTrue('Error: Invalid value' in e)
+ self.assertIn('Error: Invalid value', e)
def test_P_opt(self):
filename = TESTFILE
o = self.check_success('-Pfull', '-Ptitle=foo, bar=baz=,',
'-fhtml', filename)
- self.assertTrue('<title>foo, bar=baz=,</title>' in o)
+ self.assertIn('<title>foo, bar=baz=,</title>', o)
def test_F_opt(self):
filename = TESTFILE
o = self.check_success('-Fhighlight:tokentype=Name.Blubb,'
'names=TESTFILE filename',
'-fhtml', filename)
- self.assertTrue('<span class="n n-Blubb' in o)
+ self.assertIn('<span class="n n-Blubb', o)
def test_H_opt(self):
o = self.check_success('-H', 'formatter', 'html')
- self.assertTrue('HTML' in o)
+ self.assertIn('HTML', o)
o = self.check_success('-H', 'lexer', 'python')
- self.assertTrue('Python' in o)
+ self.assertIn('Python', o)
o = self.check_success('-H', 'filter', 'raiseonerror')
- self.assertTrue('raiseonerror', o)
+ self.assertIn('raiseonerror', o)
e = self.check_failure('-H', 'lexer', 'foobar')
- self.assertTrue('not found' in e)
+ self.assertIn('not found', e)
def test_S_opt(self):
o = self.check_success('-S', 'default', '-f', 'html', '-O', 'linenos=1')
@@ -196,11 +195,11 @@ class CmdLineTest(unittest.TestCase):
# every line is for a token class
parts = line.split()
self.assertTrue(parts[0].startswith('.'))
- self.assertTrue(parts[1] == '{')
+ self.assertEqual(parts[1], '{')
if parts[0] != '.hll':
- self.assertTrue(parts[-4] == '}')
- self.assertTrue(parts[-3] == '/*')
- self.assertTrue(parts[-1] == '*/')
+ self.assertEqual(parts[-4], '}')
+ self.assertEqual(parts[-3], '/*')
+ self.assertEqual(parts[-1], '*/')
self.check_failure('-S', 'default', '-f', 'foobar')
def test_N_opt(self):
@@ -228,68 +227,68 @@ class CmdLineTest(unittest.TestCase):
self.check_failure(*opts, code=2)
def test_errors(self):
+ empty_file = os.path.join('tests', 'support', 'empty.py')
+
# input file not found
e = self.check_failure('-lpython', 'nonexistent.py')
- self.assertTrue('Error: cannot read infile' in e)
- self.assertTrue('nonexistent.py' in e)
+ self.assertIn('Error: cannot read infile', e)
+ self.assertIn('nonexistent.py', e)
# lexer not found
e = self.check_failure('-lfooo', TESTFILE)
- self.assertTrue('Error: no lexer for alias' in e)
+ self.assertIn('Error: no lexer for alias', e)
# cannot load .py file without load_from_file flag
e = self.check_failure('-l', 'nonexistent.py', TESTFILE)
- self.assertTrue('Error: no lexer for alias' in e)
+ self.assertIn('Error: no lexer for alias', e)
# lexer file is missing/unreadable
e = self.check_failure('-l', 'nonexistent.py',
'-x', TESTFILE)
- self.assertTrue('Error: cannot read' in e)
+ self.assertIn('Error: cannot read', e)
# lexer file is malformed
- e = self.check_failure('-l', 'support/empty.py',
- '-x', TESTFILE)
- self.assertTrue('Error: no valid CustomLexer class found' in e)
+ e = self.check_failure('-l', empty_file, '-x', TESTFILE)
+ self.assertIn('Error: no valid CustomLexer class found', e)
# formatter not found
e = self.check_failure('-lpython', '-ffoo', TESTFILE)
- self.assertTrue('Error: no formatter found for name' in e)
+ self.assertIn('Error: no formatter found for name', e)
# formatter for outfile not found
e = self.check_failure('-ofoo.foo', TESTFILE)
- self.assertTrue('Error: no formatter found for file name' in e)
+ self.assertIn('Error: no formatter found for file name', e)
# cannot load .py file without load_from_file flag
e = self.check_failure('-f', 'nonexistent.py', TESTFILE)
- self.assertTrue('Error: no formatter found for name' in e)
+ self.assertIn('Error: no formatter found for name', e)
# formatter file is missing/unreadable
e = self.check_failure('-f', 'nonexistent.py',
'-x', TESTFILE)
- self.assertTrue('Error: cannot read' in e)
+ self.assertIn('Error: cannot read', e)
# formatter file is malformed
- e = self.check_failure('-f', 'support/empty.py',
- '-x', TESTFILE)
- self.assertTrue('Error: no valid CustomFormatter class found' in e)
+ e = self.check_failure('-f', empty_file, '-x', TESTFILE)
+ self.assertIn('Error: no valid CustomFormatter class found', e)
# output file not writable
e = self.check_failure('-o', os.path.join('nonexistent', 'dir', 'out.html'),
'-lpython', TESTFILE)
- self.assertTrue('Error: cannot open outfile' in e)
- self.assertTrue('out.html' in e)
+ self.assertIn('Error: cannot open outfile', e)
+ self.assertIn('out.html', e)
# unknown filter
e = self.check_failure('-F', 'foo', TESTFILE)
- self.assertTrue('Error: filter \'foo\' not found' in e)
+ self.assertIn('Error: filter \'foo\' not found', e)
def test_exception(self):
cmdline.highlight = None # override callable to provoke TypeError
try:
# unexpected exception while highlighting
e = self.check_failure('-lpython', TESTFILE)
- self.assertTrue('*** Error while highlighting:' in e)
- self.assertTrue('TypeError' in e)
+ self.assertIn('*** Error while highlighting:', e)
+ self.assertIn('TypeError', e)
# same with -v: should reraise the exception
try:
--- /dev/null
+++ b/tests/__init__.py
@@ -0,0 +1 @@
+
--- a/tests/test_basic_api.py
+++ b/tests/test_basic_api.py
@@ -18,7 +18,7 @@ from pygments.lexer import RegexLexer
from pygments.formatters.img import FontNotFound
from pygments.util import text_type, StringIO, BytesIO, xrange, ClassNotFound
-import support
+from . import support
TESTFILE, TESTDIR = support.location(__file__)
--- a/tests/test_examplefiles.py
+++ b/tests/test_examplefiles.py
@@ -18,7 +18,7 @@ from pygments.lexers import get_lexer_fo
from pygments.token import Error
from pygments.util import ClassNotFound
-import support
+from . import support
STORE_OUTPUT = False
--- a/tests/test_html_formatter.py
+++ b/tests/test_html_formatter.py
@@ -21,7 +21,7 @@ from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter, NullFormatter
from pygments.formatters.html import escape_html
-import support
+from . import support
TESTFILE, TESTDIR = support.location(__file__)
--- a/tests/test_irc_formatter.py
+++ b/tests/test_irc_formatter.py
@@ -16,7 +16,7 @@ from pygments.util import StringIO
from pygments.lexers import PythonLexer
from pygments.formatters import IRCFormatter
-import support
+from . import support
tokensource = list(PythonLexer().get_tokens("lambda x: 123"))
--- a/tests/test_latex_formatter.py
+++ b/tests/test_latex_formatter.py
@@ -16,7 +16,7 @@ import tempfile
from pygments.formatters import LatexFormatter
from pygments.lexers import PythonLexer
-import support
+from . import support
TESTFILE, TESTDIR = support.location(__file__)
--- a/tests/test_rtf_formatter.py
+++ b/tests/test_rtf_formatter.py
@@ -8,7 +8,7 @@
"""
import unittest
-from string_asserts import StringTests
+from .string_asserts import StringTests
from pygments.util import StringIO
from pygments.formatters import RtfFormatter
--- a/tests/test_string_asserts.py
+++ b/tests/test_string_asserts.py
@@ -8,7 +8,7 @@
"""
import unittest
-from string_asserts import StringTests
+from .string_asserts import StringTests
class TestStringTests(StringTests, unittest.TestCase):

View File

@@ -1,3 +1,140 @@
-------------------------------------------------------------------
Tue Apr 14 11:38:23 UTC 2020 - Matej Cepl <mcepl@suse.com>
- Don't use %python3_only command, but properly use alternatives.
-------------------------------------------------------------------
Wed Mar 18 21:42:09 UTC 2020 - Benoît Monin <benoit.monin@gmx.fr>
- fix the path of non-oss licensed files to remove
-------------------------------------------------------------------
Fri Mar 13 16:20:21 UTC 2020 - Benoît Monin <benoit.monin@gmx.fr>
- set the minimal version of python to 3.5 to match upstream
requirement
-------------------------------------------------------------------
Mon Mar 9 19:52:24 UTC 2020 - Benoît Monin <benoit.monin@gmx.fr>
- update to version 2.6.1:
* This release fixes a packaging issue. No functional changes.
- additional changes from version 2.6.0:
* Running Pygments on Python 2.x is no longer supported.
* Added lexers:
+ Linux kernel logs (PR#1310)
+ LLVM MIR (PR#1361)
+ MiniScript (PR#1397)
+ Mosel (PR#1287, PR#1326)
+ Parsing Expression Grammar (PR#1336)
+ ReasonML (PR#1386)
+ Ride (PR#1319, PR#1321)
+ Sieve (PR#1257)
+ USD (PR#1290)
+ WebIDL (PR#1309)
* Updated lexers:
+ Apache2 (PR#1378)
+ Chapel (PR#1357)
+ CSound (PR#1383)
+ D (PR#1375, PR#1362)
+ Idris (PR#1360)
+ Perl6/Raku lexer (PR#1344)
+ Python3 (PR#1382, PR#1385)
+ Rust: Updated lexer to cover more builtins (mostly macros)
and miscellaneous new syntax (PR#1320)
+ SQL: Add temporal support keywords (PR#1402)
* The 256-color/true-color terminal formatters now support the
italic attribute in styles (PR#1288)
* Support HTTP 2/3 header (PR#1308)
* Support missing reason in HTTP header (PR#1322)
* Boogie/Silver: support line continuations and triggers, move
contract keywords to separate category (PR#1299)
* GAS: support C-style comments (PR#1291)
* Fix names in S lexer (PR#1330, PR#1333)
* Fix numeric literals in Ada (PR#1334)
* Recognize .mjs files as Javascript (PR#1392)
* Recognize .eex files as Elixir (PR#1387)
* Fix re.MULTILINE usage (PR#1388)
* Recognize pipenv and poetry dependency & lock files (PR#1376)
* Improve font search on Windows (#1247)
* Remove unused script block (#1401)
- disable python2 build: Pygments is python 3 only now
- remove shebang from pygments/lexers/_usd_builtins.py: unneeded
-------------------------------------------------------------------
Sun Dec 8 17:22:40 UTC 2019 - Benoît Monin <benoit.monin@gmx.fr>
- update to version 2.5.2:
* Fix incompatibility with some setuptools versions (PR#1316)
* Fix lexing of ReST field lists (PR#1279)
* Fix lexing of Matlab keywords as field names (PR#1282)
* Recognize double-quoted strings in Matlab (PR#1278)
* Avoid slow backtracking in Vim lexer (PR#1312)
* Fix Scala highlighting of types (PR#1315)
* Highlight field lists more consistently in ReST (PR#1279)
* Fix highlighting Matlab keywords in field names (PR#1282)
* Recognize Matlab double quoted strings (PR#1278)
* Add some Terraform keywords
* Update Modelica lexer to 3.4
* Update Crystal examples
- additional changes from version 2.5.1:
* This release fixes a packaging issue. No functional changes.
- additional changes from version 2.5.0:
* Added lexers:
+ Email (PR#1246)
+ Erlang, Elxir shells (PR#823, #1521)
+ Notmuch (PR#1264)
+ Scdoc (PR#1268)
+ Solidity (#1214)
+ Zeek (new name for Bro) (PR#1269)
+ Zig (PR#820)
* Updated lexers:
+ Apache2 Configuration (PR#1251)
+ Bash sessions (#1253)
+ CSound (PR#1250)
+ Dart
+ Dockerfile
+ Emacs Lisp
+ Handlebars (PR#773)
+ Java (#1101, #987)
+ Logtalk (PR#1261)
+ Matlab (PR#1271)
+ Praat (PR#1277)
+ Python3 (PR#1255)
+ Ruby
+ YAML (#1528)
+ Velocity
* Added styles:
+ Inkpot (PR#1276)
* The PythonLexer class is now an alias for the former
Python3Lexer. The old PythonLexer is available as Python2Lexer.
* Bump NasmLexer priority over TasmLexer for .asm files
(fixes #1326)
* Default font in the ImageFormatter has been updated
(#928, PR#1245)
* Test suite switched to py.test, removed nose dependency (#1490)
* Reduce TeraTerm lexer score -- it used to match nearly all
languages (#1256)
* Treat Skylark/Starlark files as Python files (PR#1259)
* Image formatter: actually respect line_number_separator option
* Add LICENSE file to wheel builds
* Agda: fix lambda highlighting
* Dart: support @ annotations
* Dockerfile: accept FROM ... AS syntax
* Emacs Lisp: add more string functions
* GAS: accept registers in directive arguments
* Java: make structural punctuation (braces, parens, colon,
comma) Punctuation, not Operator (#987)
* Java: support var contextual keyword (#1101)
* Matlab: Fix recognition of function keyword (PR#1271)
* Python: recognize .jy filenames (#976)
* Python: recognize f string prefix (#1156)
* Ruby: support squiggly heredocs
* Shell sessions: recognize Virtualenv prompt (PR#1266)
* Velocity: support silent reference syntax
- drop denose.patch: fixed upstream
- fix postuninstall alternative
-------------------------------------------------------------------
Tue Jun 4 14:03:15 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package python-Pygments
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,17 +16,17 @@
#
%define skip_python2 1
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-Pygments
Version: 2.4.2
Version: 2.6.1
Release: 0
Summary: A syntax highlighting package written in Python
License: BSD-2-Clause
Group: Development/Languages/Python
URL: http://pygments.org
Source: https://files.pythonhosted.org/packages/source/P/Pygments/Pygments-%{version}.tar.gz
# bt#birkenfeld/pygments-main#1490
Patch1: denose.patch
BuildRequires: %{python_module base >= 3.5}
# We need pytest just because of its test runner, it seems even
# python3 stdlib unittest runner doesn't work
BuildRequires: %{python_module pytest}
@@ -55,41 +55,41 @@ source code. Highlights are:
%prep
%setup -q -n Pygments-%{version}
%autopatch -p1
# Remove non-oss licensed files, see bnc# 760344
rm tests/examplefiles/{Sorting,test}.mod
rm tests/examplefiles/firefox.mak tests/examplefiles/example.webidl
# Remove unnecessary shebang
sed -i '1 { /^#!/ d }' pygments/lexers/_usd_builtins.py
%build
%python_build
%install
%python_install
%{python_expand %$python_install
mv %{buildroot}%{_bindir}/pygmentize %{buildroot}%{_bindir}/pygmentize-%{$python_bin_suffix}
rm -rf %{buildroot}%{$python_sitelib}/tests
%fdupes %{buildroot}%{$python_sitelib}
%if "%{python3_bin_suffix}" != ""
install -Dm0644 doc/pygmentize.1 %{buildroot}%{_mandir}/man1/pygmentize.1
%endif
%python_clone -a %{buildroot}%{_bindir}/pygmentize
%python_clone -a %{buildroot}%{_mandir}/man1/pygmentize.1
%{python_expand rm -rf %{buildroot}%{$python_sitelib}/tests
%fdupes %{buildroot}%{$python_sitelib}
}
%prepare_alternative pygmentize
%post
%python_install_alternative pygmentize
%{python_install_alternative pygmentize pygmentize.1}
%postun
%python_install_alternative pygmentize
%python_uninstall_alternative pygmentize
%check
%pytest
%files %{python_files}
%license LICENSE
%doc AUTHORS CHANGES TODO
%doc AUTHORS CHANGES
%python_alternative %{_bindir}/pygmentize
%python3_only %{_mandir}/man1/pygmentize.1*
%python_alternative %{_mandir}/man1/pygmentize.1%{ext_man}
%{python_sitelib}/pygments/
%{python_sitelib}/Pygments-%{version}-py%{python_version}.egg-info/