summaryrefslogtreecommitdiffstats
path: root/PC/layout/support/filesets.py
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2018-12-07 11:57:43 (GMT)
committerGitHub <noreply@github.com>2018-12-07 11:57:43 (GMT)
commitcb0b78a070ea3b704416e74f64046178ae0dff3e (patch)
tree870d16be7589c152a71a31df5824d4ae29a2c042 /PC/layout/support/filesets.py
parent8452ca15f41061c8a6297d7956df22ab476d4df4 (diff)
downloadcpython-cb0b78a070ea3b704416e74f64046178ae0dff3e.zip
cpython-cb0b78a070ea3b704416e74f64046178ae0dff3e.tar.gz
cpython-cb0b78a070ea3b704416e74f64046178ae0dff3e.tar.bz2
Revert "bpo-34977: Add Windows App Store package (GH-10245)" (GH-11019)
This reverts commit 468a15aaf9206448a744fc5eab3fc21f51966aad.
Diffstat (limited to 'PC/layout/support/filesets.py')
-rw-r--r--PC/layout/support/filesets.py100
1 files changed, 0 insertions, 100 deletions
diff --git a/PC/layout/support/filesets.py b/PC/layout/support/filesets.py
deleted file mode 100644
index 47f727c..0000000
--- a/PC/layout/support/filesets.py
+++ /dev/null
@@ -1,100 +0,0 @@
-"""
-File sets and globbing helper for make_layout.
-"""
-
-__author__ = "Steve Dower <steve.dower@python.org>"
-__version__ = "3.8"
-
-import os
-
-
-class FileStemSet:
- def __init__(self, *patterns):
- self._names = set()
- self._prefixes = []
- self._suffixes = []
- for p in map(os.path.normcase, patterns):
- if p.endswith("*"):
- self._prefixes.append(p[:-1])
- elif p.startswith("*"):
- self._suffixes.append(p[1:])
- else:
- self._names.add(p)
-
- def _make_name(self, f):
- return os.path.normcase(f.stem)
-
- def __contains__(self, f):
- bn = self._make_name(f)
- return (
- bn in self._names
- or any(map(bn.startswith, self._prefixes))
- or any(map(bn.endswith, self._suffixes))
- )
-
-
-class FileNameSet(FileStemSet):
- def _make_name(self, f):
- return os.path.normcase(f.name)
-
-
-class FileSuffixSet:
- def __init__(self, *patterns):
- self._names = set()
- self._prefixes = []
- self._suffixes = []
- for p in map(os.path.normcase, patterns):
- if p.startswith("*."):
- self._names.add(p[1:])
- elif p.startswith("*"):
- self._suffixes.append(p[1:])
- elif p.endswith("*"):
- self._prefixes.append(p[:-1])
- elif p.startswith("."):
- self._names.add(p)
- else:
- self._names.add("." + p)
-
- def _make_name(self, f):
- return os.path.normcase(f.suffix)
-
- def __contains__(self, f):
- bn = self._make_name(f)
- return (
- bn in self._names
- or any(map(bn.startswith, self._prefixes))
- or any(map(bn.endswith, self._suffixes))
- )
-
-
-def _rglob(root, pattern, condition):
- dirs = [root]
- recurse = pattern[:3] in {"**/", "**\\"}
- if recurse:
- pattern = pattern[3:]
-
- while dirs:
- d = dirs.pop(0)
- if recurse:
- dirs.extend(
- filter(
- condition, (type(root)(f2) for f2 in os.scandir(d) if f2.is_dir())
- )
- )
- yield from (
- (f.relative_to(root), f)
- for f in d.glob(pattern)
- if f.is_file() and condition(f)
- )
-
-
-def _return_true(f):
- return True
-
-
-def rglob(root, patterns, condition=None):
- if isinstance(patterns, tuple):
- for p in patterns:
- yield from _rglob(root, p, condition or _return_true)
- else:
- yield from _rglob(root, patterns, condition or _return_true)