Hello community,
here is the log from the commit of package python-pathspec for openSUSE:Factory
checked in at 2019-10-10 11:53:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pathspec (Old)
and /work/SRC/openSUSE:Factory/.python-pathspec.new.2352 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pathspec"
Thu Oct 10 11:53:32 2019 rev:4 rq:736800 version:0.6.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pathspec/python-pathspec.changes
2019-02-27 17:28:09.147342220 +0100
+++
/work/SRC/openSUSE:Factory/.python-pathspec.new.2352/python-pathspec.changes
2019-10-10 11:53:33.659302808 +0200
@@ -1,0 +2,8 @@
+Thu Oct 10 08:25:51 UTC 2019 - Tomáš Chvátal <[email protected]>
+
+- Update to 0.6.0:
+ * Issue #24: Drop support for Python 2.6, 3.2, and 3.3.
+ * Issue #25: Update README.rst.
+ * Issue #26: Method to escape gitwildmatch.
+
+-------------------------------------------------------------------
Old:
----
pathspec-0.5.9.tar.gz
New:
----
pathspec-0.6.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pathspec.spec ++++++
--- /var/tmp/diff_new_pack.3PFS4A/_old 2019-10-10 11:53:34.155301491 +0200
+++ /var/tmp/diff_new_pack.3PFS4A/_new 2019-10-10 11:53:34.159301481 +0200
@@ -17,20 +17,17 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
-%bcond_without test
Name: python-pathspec
-Version: 0.5.9
+Version: 0.6.0
Release: 0
Summary: Utility library for gitignore style pattern matching of file
paths
License: MPL-2.0
-Group: Development/Languages/Python
-Url: https://github.com/cpburnz/python-path-specification
+URL: https://github.com/cpburnz/python-path-specification
Source:
https://files.pythonhosted.org/packages/source/p/pathspec/pathspec-%{version}.tar.gz
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildArch: noarch
-
%python_subpackages
%description
@@ -49,10 +46,8 @@
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
-%if %{with test}
%check
%python_exec setup.py test
-%endif
%files %{python_files}
%doc CHANGES.rst README.rst
++++++ pathspec-0.5.9.tar.gz -> pathspec-0.6.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pathspec-0.5.9/CHANGES.rst
new/pathspec-0.6.0/CHANGES.rst
--- old/pathspec-0.5.9/CHANGES.rst 2018-09-15 19:51:01.000000000 +0200
+++ new/pathspec-0.6.0/CHANGES.rst 2019-10-04 03:01:39.000000000 +0200
@@ -3,6 +3,18 @@
==============
+0.6.0 (2019-10-03)
+------------------
+
+- `Issue #24`_: Drop support for Python 2.6, 3.2, and 3.3.
+- `Issue #25`_: Update README.rst.
+- `Issue #26`_: Method to escape gitwildmatch.
+
+.. _`Issue #24`: https://github.com/cpburnz/python-path-specification/pull/24
+.. _`Issue #25`: https://github.com/cpburnz/python-path-specification/pull/25
+.. _`Issue #26`: https://github.com/cpburnz/python-path-specification/pull/26
+
+
0.5.9 (2018-09-15)
------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pathspec-0.5.9/PKG-INFO new/pathspec-0.6.0/PKG-INFO
--- old/pathspec-0.5.9/PKG-INFO 2018-09-15 19:51:49.000000000 +0200
+++ new/pathspec-0.6.0/PKG-INFO 2019-10-04 03:08:39.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
Name: pathspec
-Version: 0.5.9
+Version: 0.6.0
Summary: Utility library for gitignore style pattern matching of file paths.
Home-page: https://github.com/cpburnz/python-path-specification
Author: Caleb P. Burns
@@ -83,7 +83,7 @@
directly as well::
>>> with open('patterns.list', 'r') as fh:
- >>> spec = pathspec.PathSpec.from_lines('gitignore', fh)
+ >>> spec = pathspec.PathSpec.from_lines('gitwildmatch', fh)
You can perform matching on a whole directory tree with::
@@ -163,6 +163,18 @@
==============
+ 0.6.0 (2019-10-03)
+ ------------------
+
+ - `Issue #24`_: Drop support for Python 2.6, 3.2, and 3.3.
+ - `Issue #25`_: Update README.rst.
+ - `Issue #26`_: Method to escape gitwildmatch.
+
+ .. _`Issue #24`:
https://github.com/cpburnz/python-path-specification/pull/24
+ .. _`Issue #25`:
https://github.com/cpburnz/python-path-specification/pull/25
+ .. _`Issue #26`:
https://github.com/cpburnz/python-path-specification/pull/26
+
+
0.5.9 (2018-09-15)
------------------
@@ -332,11 +344,8 @@
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.2
-Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
@@ -345,3 +354,4 @@
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pathspec-0.5.9/README.rst
new/pathspec-0.6.0/README.rst
--- old/pathspec-0.5.9/README.rst 2017-09-09 16:09:39.000000000 +0200
+++ new/pathspec-0.6.0/README.rst 2019-01-24 02:38:26.000000000 +0100
@@ -76,7 +76,7 @@
directly as well::
>>> with open('patterns.list', 'r') as fh:
- >>> spec = pathspec.PathSpec.from_lines('gitignore', fh)
+ >>> spec = pathspec.PathSpec.from_lines('gitwildmatch', fh)
You can perform matching on a whole directory tree with::
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pathspec-0.5.9/pathspec/__init__.py
new/pathspec-0.6.0/pathspec/__init__.py
--- old/pathspec-0.5.9/pathspec/__init__.py 2018-09-15 19:45:07.000000000
+0200
+++ new/pathspec-0.6.0/pathspec/__init__.py 2019-10-04 03:01:23.000000000
+0200
@@ -24,7 +24,7 @@
from __future__ import unicode_literals
__author__ = "Caleb P. Burns"
-__copyright__ = "Copyright © 2013-2017 Caleb P. Burns"
+__copyright__ = "Copyright © 2013-2018 Caleb P. Burns"
__created__ = "2013-10-12"
__credits__ = [
"dahlia <https://github.com/dahlia>",
@@ -41,13 +41,16 @@
"highb <https://github.com/highb>",
"thmxv <https://github.com/thmxv>",
"wimglenn <https://github.com/wimglenn>",
+ "hugovk <https://github.com/hugovk>",
+ "dcecile <https://github.com/dcecile>",
+ "mroutis <https://github.com/mroutis>",
]
__email__ = "[email protected]"
__license__ = "MPL 2.0"
__project__ = "pathspec"
__status__ = "Development"
-__updated__ = "2018-09-15"
-__version__ = "0.5.9"
+__updated__ = "2019-10-03"
+__version__ = "0.6.0"
from .pathspec import PathSpec
from .pattern import Pattern, RegexPattern
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pathspec-0.5.9/pathspec/compat.py
new/pathspec-0.6.0/pathspec/compat.py
--- old/pathspec-0.5.9/pathspec/compat.py 2018-08-17 02:22:35.000000000
+0200
+++ new/pathspec-0.6.0/pathspec/compat.py 2018-12-01 18:57:36.000000000
+0100
@@ -32,5 +32,5 @@
# Python 3.6+.
from collections.abc import Collection as collection_type
except ImportError:
- # Python 2.6 - 3.5.
+ # Python 2.7 - 3.5.
from collections import Container as collection_type
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pathspec-0.5.9/pathspec/pathspec.py
new/pathspec-0.6.0/pathspec/pathspec.py
--- old/pathspec-0.5.9/pathspec/pathspec.py 2018-09-15 18:14:23.000000000
+0200
+++ new/pathspec-0.6.0/pathspec/pathspec.py 2018-12-01 18:57:36.000000000
+0100
@@ -66,10 +66,10 @@
if isinstance(pattern_factory, string_types):
pattern_factory = util.lookup_pattern(pattern_factory)
if not callable(pattern_factory):
- raise TypeError("pattern_factory:{0!r} is not
callable.".format(pattern_factory))
+ raise TypeError("pattern_factory:{!r} is not
callable.".format(pattern_factory))
if isinstance(lines, (bytes, unicode)):
- raise TypeError("lines:{0!r} is not an
iterable.".format(lines))
+ raise TypeError("lines:{!r} is not an
iterable.".format(lines))
lines = [pattern_factory(line) for line in lines if line]
return cls(lines)
@@ -107,7 +107,7 @@
:class:`str`).
"""
if isinstance(files, (bytes, unicode)):
- raise TypeError("files:{0!r} is not an
iterable.".format(files))
+ raise TypeError("files:{!r} is not an
iterable.".format(files))
file_map = util.normalize_files(files, separators=separators)
matched_files = util.match_files(self.patterns,
iterkeys(file_map))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pathspec-0.5.9/pathspec/pattern.py
new/pathspec-0.6.0/pathspec/pattern.py
--- old/pathspec-0.5.9/pathspec/pattern.py 2018-08-15 17:43:12.000000000
+0200
+++ new/pathspec-0.6.0/pathspec/pattern.py 2018-12-01 18:57:36.000000000
+0100
@@ -42,7 +42,7 @@
Returns an :class:`~collections.abc.Iterable` yielding each
matched
file path (:class:`str`).
"""
- raise NotImplementedError("{0}.{1} must override
match().".format(self.__class__.__module__, self.__class__.__name__))
+ raise NotImplementedError("{}.{} must override
match().".format(self.__class__.__module__, self.__class__.__name__))
class RegexPattern(Pattern):
@@ -79,7 +79,7 @@
"""
if isinstance(pattern, (unicode, bytes)):
- assert include is None, "include:{0!r} must be null
when pattern:{1!r} is a string.".format(include, pattern)
+ assert include is None, "include:{!r} must be null when
pattern:{!r} is a string.".format(include, pattern)
regex, include = self.pattern_to_regex(pattern)
# NOTE: Make sure to allow a null regular expression to
be
# returned for a null-operation.
@@ -94,10 +94,10 @@
elif pattern is None:
# NOTE: Make sure to allow a null pattern to be passed
for a
# null-operation.
- assert include is None, "include:{0!r} must be null
when pattern:{1!r} is null.".format(include, pattern)
+ assert include is None, "include:{!r} must be null when
pattern:{!r} is null.".format(include, pattern)
else:
- raise TypeError("pattern:{0!r} is not a string,
RegexObject, or None.".format(pattern))
+ raise TypeError("pattern:{!r} is not a string,
RegexObject, or None.".format(pattern))
super(RegexPattern, self).__init__(include)
self.regex = regex
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pathspec-0.5.9/pathspec/patterns/gitwildmatch.py
new/pathspec-0.6.0/pathspec/patterns/gitwildmatch.py
--- old/pathspec-0.5.9/pathspec/patterns/gitwildmatch.py 2018-08-18
19:03:26.000000000 +0200
+++ new/pathspec-0.6.0/pathspec/patterns/gitwildmatch.py 2019-10-03
04:53:56.000000000 +0200
@@ -45,7 +45,7 @@
return_type = bytes
pattern = pattern.decode(_BYTES_ENCODING)
else:
- raise TypeError("pattern:{0!r} is not a unicode or byte
string.".format(pattern))
+ raise TypeError("pattern:{!r} is not a unicode or byte
string.".format(pattern))
pattern = pattern.strip()
@@ -279,6 +279,21 @@
return regex
+ @staticmethod
+ def escape(s):
+ """
+ Escape special characters in the given string.
+
+ *s* (:class:`unicode` or :class:`bytes`) a filename or a string
+ that you want to escape, usually before adding it to a
`.gitignore`
+
+ Returns the escaped string (:class:`unicode`, :class:`bytes`)
+ """
+ # Reference: https://git-scm.com/docs/gitignore#_pattern_format
+ meta_characters = r"[]!*#?"
+
+ return "".join("\\" + x if x in meta_characters else x for x in
s)
+
util.register_pattern('gitwildmatch', GitWildMatchPattern)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pathspec-0.5.9/pathspec/tests/test_gitwildmatch.py
new/pathspec-0.6.0/pathspec/tests/test_gitwildmatch.py
--- old/pathspec-0.5.9/pathspec/tests/test_gitwildmatch.py 2018-08-18
20:37:46.000000000 +0200
+++ new/pathspec-0.6.0/pathspec/tests/test_gitwildmatch.py 2019-10-03
04:53:56.000000000 +0200
@@ -6,12 +6,7 @@
import re
import sys
-
-try:
- # Python 2.6.
- import unittest2 as unittest
-except ImportError:
- import unittest
+import unittest
import pathspec.patterns.gitwildmatch
import pathspec.util
@@ -58,10 +53,10 @@
'an/absolute/file/path/foo',
'foo/an/absolute/file/path',
]))
- self.assertEqual(results, set([
+ self.assertEqual(results, {
'an/absolute/file/path',
'an/absolute/file/path/foo',
- ]))
+ })
def test_01_absolute_root(self):
"""
@@ -98,13 +93,13 @@
'spam/foo',
'foo/spam/bar',
]))
- self.assertEqual(results, set([
+ self.assertEqual(results, {
'spam',
'spam/',
'foo/spam',
'spam/foo',
'foo/spam/bar',
- ]))
+ })
def test_01_relative_nested(self):
"""
@@ -129,10 +124,10 @@
'foo/spam/bar',
'bar/foo/spam',
]))
- self.assertEqual(results, set([
+ self.assertEqual(results, {
'foo/spam',
'foo/spam/bar',
- ]))
+ })
def test_02_comment(self):
"""
@@ -181,7 +176,7 @@
'spam/bar',
'foo/spam/bar',
]))
- self.assertEqual(results, set(['spam/bar']))
+ self.assertEqual(results, {'spam/bar'})
def test_03_inner_double_asterisk(self):
"""
@@ -208,11 +203,11 @@
'left/bar/right/foo',
'foo/left/bar/right',
]))
- self.assertEqual(results, set([
+ self.assertEqual(results, {
'left/bar/right',
'left/foo/bar/right',
'left/bar/right/foo',
- ]))
+ })
def test_03_only_double_asterisk(self):
"""
@@ -240,10 +235,10 @@
'foo/spam',
'foo/spam/bar',
]))
- self.assertEqual(results, set([
+ self.assertEqual(results, {
'foo/spam',
'foo/spam/bar',
- ]))
+ })
def test_04_infix_wildcard(self):
"""
@@ -269,13 +264,13 @@
'foo-hello-bar/b',
'a/foo-hello-bar/b',
]))
- self.assertEqual(results, set([
+ self.assertEqual(results, {
'foo--bar',
'foo-hello-bar',
'a/foo-hello-bar',
'foo-hello-bar/b',
'a/foo-hello-bar/b',
- ]))
+ })
def test_04_postfix_wildcard(self):
"""
@@ -301,13 +296,13 @@
'foo/~temp-bar',
'foo/~temp-bar/baz',
]))
- self.assertEqual(results, set([
+ self.assertEqual(results, {
'~temp-',
'~temp-foo',
'~temp-foo/bar',
'foo/~temp-bar',
'foo/~temp-bar/baz',
- ]))
+ })
def test_04_prefix_wildcard(self):
"""
@@ -331,12 +326,12 @@
'foo/bar.py',
'foo/bar.py/baz',
]))
- self.assertEqual(results, set([
+ self.assertEqual(results, {
'bar.py',
'bar.py/',
'foo/bar.py',
'foo/bar.py/baz',
- ]))
+ })
def test_05_directory(self):
"""
@@ -363,11 +358,11 @@
'foo/dir/bar',
'dir',
]))
- self.assertEqual(results, set([
+ self.assertEqual(results, {
'dir/',
'foo/dir/',
'foo/dir/bar',
- ]))
+ })
def test_06_registered(self):
"""
@@ -411,7 +406,7 @@
"""
pattern = GitWildMatchPattern(b'*.py')
results = set(pattern.match([b'a.py']))
- self.assertEqual(results, set([b'a.py']))
+ self.assertEqual(results, {b'a.py'})
def test_07_match_bytes_and_bytes_complete(self):
"""
@@ -421,7 +416,7 @@
escaped = b"".join(b"\\" + encoded[i:i+1] for i in
range(len(encoded)))
pattern = GitWildMatchPattern(escaped)
results = set(pattern.match([encoded]))
- self.assertEqual(results, set([encoded]))
+ self.assertEqual(results, {encoded})
@unittest.skipIf(sys.version_info[0] >= 3, "Python 3 is strict")
def test_07_match_bytes_and_unicode(self):
@@ -430,7 +425,7 @@
"""
pattern = GitWildMatchPattern(b'*.py')
results = set(pattern.match(['a.py']))
- self.assertEqual(results, set(['a.py']))
+ self.assertEqual(results, {'a.py'})
@unittest.skipIf(sys.version_info[0] == 2, "Python 2 is lenient")
def test_07_match_bytes_and_unicode_fail(self):
@@ -449,7 +444,7 @@
"""
pattern = GitWildMatchPattern('*.py')
results = set(pattern.match([b'a.py']))
- self.assertEqual(results, set([b'a.py']))
+ self.assertEqual(results, {b'a.py'})
@unittest.skipIf(sys.version_info[0] == 2, "Python 2 is lenient")
def test_07_match_unicode_and_bytes_fail(self):
@@ -467,4 +462,13 @@
"""
pattern = GitWildMatchPattern('*.py')
results = set(pattern.match(['a.py']))
- self.assertEqual(results, set(['a.py']))
+ self.assertEqual(results, {'a.py'})
+
+ def test_08_escape(self):
+ """
+ Test escaping a string with meta-characters
+ """
+ fname = "file!with*weird#naming_[1].t?t"
+ escaped = r"file\!with\*weird\#naming_\[1\].t\?t"
+ result = GitWildMatchPattern.escape(fname)
+ self.assertEqual(result, escaped)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pathspec-0.5.9/pathspec/tests/test_pathspec.py
new/pathspec-0.6.0/pathspec/tests/test_pathspec.py
--- old/pathspec-0.5.9/pathspec/tests/test_pathspec.py 2018-03-31
04:06:08.000000000 +0200
+++ new/pathspec-0.6.0/pathspec/tests/test_pathspec.py 2018-12-01
18:57:36.000000000 +0100
@@ -3,10 +3,7 @@
This script tests ``PathSpec``.
"""
-try:
- import unittest2 as unittest
-except ImportError:
- import unittest
+import unittest
import pathspec
@@ -33,11 +30,11 @@
'./src/test2/b.txt',
'./src/test2/c/c.txt',
]))
- self.assertEqual(results, set([
+ self.assertEqual(results, {
'./src/test2/a.txt',
'./src/test2/b.txt',
'./src/test2/c/c.txt',
- ]))
+ })
def test_01_match_files(self):
"""
@@ -77,11 +74,11 @@
'.\\src\\test2\\b.txt',
'.\\src\\test2\\c\\c.txt',
], separators=('\\',)))
- self.assertEqual(results, set([
+ self.assertEqual(results, {
'.\\src\\test2\\a.txt',
'.\\src\\test2\\b.txt',
'.\\src\\test2\\c\\c.txt',
- ]))
+ })
def test_01_windows_paths(self):
"""
@@ -99,11 +96,11 @@
'src\\test2\\b.txt',
'src\\test2\\c\\c.txt',
], separators=('\\',)))
- self.assertEqual(results, set([
+ self.assertEqual(results, {
'src\\test2\\a.txt',
'src\\test2\\b.txt',
'src\\test2\\c\\c.txt',
- ]))
+ })
def test_02_eq(self):
"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pathspec-0.5.9/pathspec/tests/test_util.py
new/pathspec-0.6.0/pathspec/tests/test_util.py
--- old/pathspec-0.5.9/pathspec/tests/test_util.py 2018-09-15
18:22:40.000000000 +0200
+++ new/pathspec-0.6.0/pathspec/tests/test_util.py 2018-12-01
18:58:00.000000000 +0100
@@ -7,13 +7,8 @@
import os
import os.path
import shutil
-import sys
import tempfile
-
-try:
- import unittest2 as unittest
-except ImportError:
- import unittest
+import unittest
from pathspec.util import iter_tree, RecursionError
@@ -285,14 +280,14 @@
def test_2_6_detect_broken_links(self):
"""
- Tests that broken links are detected
+ Tests that broken links are detected.
"""
def reraise(e):
raise e
self.require_symlink()
self.make_links([
- ('A', 'DOES_NOT_EXIST')
+ ('A', 'DOES_NOT_EXIST'),
])
with self.assertRaises(OSError) as context:
set(iter_tree(self.temp_dir, on_error=reraise))
@@ -304,7 +299,7 @@
"""
self.require_symlink()
self.make_links([
- ('A', 'DOES_NOT_EXIST')
+ ('A', 'DOES_NOT_EXIST'),
])
results = set(iter_tree(self.temp_dir))
self.assertEqual(results, set())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pathspec-0.5.9/pathspec/util.py
new/pathspec-0.6.0/pathspec/util.py
--- old/pathspec-0.5.9/pathspec/util.py 2018-09-15 19:44:58.000000000 +0200
+++ new/pathspec-0.6.0/pathspec/util.py 2018-12-01 18:57:36.000000000 +0100
@@ -46,7 +46,7 @@
each file (:class:`str`) relative to *root*.
"""
if on_error is not None and not callable(on_error):
- raise TypeError("on_error:{0!r} is not
callable.".format(on_error))
+ raise TypeError("on_error:{!r} is not
callable.".format(on_error))
if follow_links is None:
follow_links = True
@@ -242,9 +242,9 @@
(:data:`False`). Default is :data:`None` for :data:`False`.
"""
if not isinstance(name, string_types):
- raise TypeError("name:{0!r} is not a string.".format(name))
+ raise TypeError("name:{!r} is not a string.".format(name))
if not callable(pattern_factory):
- raise TypeError("pattern_factory:{0!r} is not
callable.".format(pattern_factory))
+ raise TypeError("pattern_factory:{!r} is not
callable.".format(pattern_factory))
if name in _registered_patterns and not override:
raise AlreadyRegisteredError(name, _registered_patterns[name])
_registered_patterns[name] = pattern_factory
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pathspec-0.5.9/pathspec.egg-info/PKG-INFO
new/pathspec-0.6.0/pathspec.egg-info/PKG-INFO
--- old/pathspec-0.5.9/pathspec.egg-info/PKG-INFO 2018-09-15
19:51:49.000000000 +0200
+++ new/pathspec-0.6.0/pathspec.egg-info/PKG-INFO 2019-10-04
03:08:39.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
Name: pathspec
-Version: 0.5.9
+Version: 0.6.0
Summary: Utility library for gitignore style pattern matching of file paths.
Home-page: https://github.com/cpburnz/python-path-specification
Author: Caleb P. Burns
@@ -83,7 +83,7 @@
directly as well::
>>> with open('patterns.list', 'r') as fh:
- >>> spec = pathspec.PathSpec.from_lines('gitignore', fh)
+ >>> spec = pathspec.PathSpec.from_lines('gitwildmatch', fh)
You can perform matching on a whole directory tree with::
@@ -163,6 +163,18 @@
==============
+ 0.6.0 (2019-10-03)
+ ------------------
+
+ - `Issue #24`_: Drop support for Python 2.6, 3.2, and 3.3.
+ - `Issue #25`_: Update README.rst.
+ - `Issue #26`_: Method to escape gitwildmatch.
+
+ .. _`Issue #24`:
https://github.com/cpburnz/python-path-specification/pull/24
+ .. _`Issue #25`:
https://github.com/cpburnz/python-path-specification/pull/25
+ .. _`Issue #26`:
https://github.com/cpburnz/python-path-specification/pull/26
+
+
0.5.9 (2018-09-15)
------------------
@@ -332,11 +344,8 @@
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.2
-Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
@@ -345,3 +354,4 @@
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pathspec-0.5.9/setup.py new/pathspec-0.6.0/setup.py
--- old/pathspec-0.5.9/setup.py 2018-08-14 15:25:55.000000000 +0200
+++ new/pathspec-0.6.0/setup.py 2018-12-01 18:57:36.000000000 +0100
@@ -19,6 +19,7 @@
url="https://github.com/cpburnz/python-path-specification",
description="Utility library for gitignore style pattern matching of
file paths.",
long_description=readme + "\n\n" + changes,
+ python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*',
classifiers=[
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
@@ -26,11 +27,8 @@
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
- "Programming Language :: Python :: 2.6",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.2",
- "Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",