diff options
author | Ori Bernstein <ori@eigenstate.org> | 2021-06-14 00:00:37 +0000 |
---|---|---|
committer | Ori Bernstein <ori@eigenstate.org> | 2021-06-14 00:00:37 +0000 |
commit | a73a964e51247ed169d322c725a3a18859f109a3 (patch) | |
tree | 3f752d117274d444bda44e85609aeac1acf313f3 /sys/lib/python/glob.py | |
parent | e64efe273fcb921a61bf27d33b230c4e64fcd425 (diff) |
python, hg: tow outside the environment.
they've served us well, and can ride off into the sunset.
Diffstat (limited to 'sys/lib/python/glob.py')
-rw-r--r-- | sys/lib/python/glob.py | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/sys/lib/python/glob.py b/sys/lib/python/glob.py deleted file mode 100644 index 95656cc1a..000000000 --- a/sys/lib/python/glob.py +++ /dev/null @@ -1,74 +0,0 @@ -"""Filename globbing utility.""" - -import os -import fnmatch -import re - -__all__ = ["glob", "iglob"] - -def glob(pathname): - """Return a list of paths matching a pathname pattern. - - The pattern may contain simple shell-style wildcards a la fnmatch. - - """ - return list(iglob(pathname)) - -def iglob(pathname): - """Return a list of paths matching a pathname pattern. - - The pattern may contain simple shell-style wildcards a la fnmatch. - - """ - if not has_magic(pathname): - if os.path.lexists(pathname): - yield pathname - return - dirname, basename = os.path.split(pathname) - if not dirname: - for name in glob1(os.curdir, basename): - yield name - return - if has_magic(dirname): - dirs = iglob(dirname) - else: - dirs = [dirname] - if has_magic(basename): - glob_in_dir = glob1 - else: - glob_in_dir = glob0 - for dirname in dirs: - for name in glob_in_dir(dirname, basename): - yield os.path.join(dirname, name) - -# These 2 helper functions non-recursively glob inside a literal directory. -# They return a list of basenames. `glob1` accepts a pattern while `glob0` -# takes a literal basename (so it only has to check for its existence). - -def glob1(dirname, pattern): - if not dirname: - dirname = os.curdir - try: - names = os.listdir(dirname) - except os.error: - return [] - if pattern[0]!='.': - names=filter(lambda x: x[0]!='.',names) - return fnmatch.filter(names,pattern) - -def glob0(dirname, basename): - if basename == '': - # `os.path.split()` returns an empty basename for paths ending with a - # directory separator. 'q*x/' should match only directories. - if os.path.isdir(dirname): - return [basename] - else: - if os.path.lexists(os.path.join(dirname, basename)): - return [basename] - return [] - - -magic_check = re.compile('[*?[]') - -def has_magic(s): - return magic_check.search(s) is not None |