bpo-39481: PEP 585 for difflib, filecmp, fileinput (#19422)
This commit is contained in:
parent
7c4185d62d
commit
e3ec44d692
|
@ -32,6 +32,7 @@ __all__ = ['get_close_matches', 'ndiff', 'restore', 'SequenceMatcher',
|
||||||
|
|
||||||
from heapq import nlargest as _nlargest
|
from heapq import nlargest as _nlargest
|
||||||
from collections import namedtuple as _namedtuple
|
from collections import namedtuple as _namedtuple
|
||||||
|
from types import GenericAlias
|
||||||
|
|
||||||
Match = _namedtuple('Match', 'a b size')
|
Match = _namedtuple('Match', 'a b size')
|
||||||
|
|
||||||
|
@ -685,6 +686,9 @@ class SequenceMatcher:
|
||||||
# shorter sequence
|
# shorter sequence
|
||||||
return _calculate_ratio(min(la, lb), la + lb)
|
return _calculate_ratio(min(la, lb), la + lb)
|
||||||
|
|
||||||
|
__class_getitem__ = classmethod(GenericAlias)
|
||||||
|
|
||||||
|
|
||||||
def get_close_matches(word, possibilities, n=3, cutoff=0.6):
|
def get_close_matches(word, possibilities, n=3, cutoff=0.6):
|
||||||
"""Use SequenceMatcher to return list of the best "good enough" matches.
|
"""Use SequenceMatcher to return list of the best "good enough" matches.
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ Functions:
|
||||||
import os
|
import os
|
||||||
import stat
|
import stat
|
||||||
from itertools import filterfalse
|
from itertools import filterfalse
|
||||||
|
from types import GenericAlias
|
||||||
|
|
||||||
__all__ = ['clear_cache', 'cmp', 'dircmp', 'cmpfiles', 'DEFAULT_IGNORES']
|
__all__ = ['clear_cache', 'cmp', 'dircmp', 'cmpfiles', 'DEFAULT_IGNORES']
|
||||||
|
|
||||||
|
@ -247,6 +248,9 @@ class dircmp:
|
||||||
self.methodmap[attr](self)
|
self.methodmap[attr](self)
|
||||||
return getattr(self, attr)
|
return getattr(self, attr)
|
||||||
|
|
||||||
|
__class_getitem__ = classmethod(GenericAlias)
|
||||||
|
|
||||||
|
|
||||||
def cmpfiles(a, b, common, shallow=True):
|
def cmpfiles(a, b, common, shallow=True):
|
||||||
"""Compare common files in two directories.
|
"""Compare common files in two directories.
|
||||||
|
|
||||||
|
|
|
@ -73,6 +73,7 @@ XXX Possible additions:
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sys, os
|
import sys, os
|
||||||
|
from types import GenericAlias
|
||||||
|
|
||||||
__all__ = ["input", "close", "nextfile", "filename", "lineno", "filelineno",
|
__all__ = ["input", "close", "nextfile", "filename", "lineno", "filelineno",
|
||||||
"fileno", "isfirstline", "isstdin", "FileInput", "hook_compressed",
|
"fileno", "isfirstline", "isstdin", "FileInput", "hook_compressed",
|
||||||
|
@ -391,6 +392,8 @@ class FileInput:
|
||||||
def isstdin(self):
|
def isstdin(self):
|
||||||
return self._isstdin
|
return self._isstdin
|
||||||
|
|
||||||
|
__class_getitem__ = classmethod(GenericAlias)
|
||||||
|
|
||||||
|
|
||||||
def hook_compressed(filename, mode):
|
def hook_compressed(filename, mode):
|
||||||
ext = os.path.splitext(filename)[1]
|
ext = os.path.splitext(filename)[1]
|
||||||
|
|
|
@ -7,6 +7,9 @@ from collections import (
|
||||||
)
|
)
|
||||||
from collections.abc import *
|
from collections.abc import *
|
||||||
from contextlib import AbstractContextManager, AbstractAsyncContextManager
|
from contextlib import AbstractContextManager, AbstractAsyncContextManager
|
||||||
|
from difflib import SequenceMatcher
|
||||||
|
from filecmp import dircmp
|
||||||
|
from fileinput import FileInput
|
||||||
from mmap import mmap
|
from mmap import mmap
|
||||||
from ipaddress import IPv4Network, IPv4Interface, IPv6Network, IPv6Interface
|
from ipaddress import IPv4Network, IPv4Interface, IPv6Network, IPv6Interface
|
||||||
from itertools import chain
|
from itertools import chain
|
||||||
|
@ -25,6 +28,9 @@ class BaseTest(unittest.TestCase):
|
||||||
for t in (type, tuple, list, dict, set, frozenset, enumerate,
|
for t in (type, tuple, list, dict, set, frozenset, enumerate,
|
||||||
mmap,
|
mmap,
|
||||||
defaultdict, deque,
|
defaultdict, deque,
|
||||||
|
SequenceMatcher,
|
||||||
|
dircmp,
|
||||||
|
FileInput,
|
||||||
OrderedDict, Counter, UserDict, UserList,
|
OrderedDict, Counter, UserDict, UserList,
|
||||||
Pattern, Match,
|
Pattern, Match,
|
||||||
AbstractContextManager, AbstractAsyncContextManager,
|
AbstractContextManager, AbstractAsyncContextManager,
|
||||||
|
|
Loading…
Reference in New Issue