Download .venv/Lib/site-packages/libpasteurize/fixes/feature_base.py from DrDavis/PythonProject1: direct link, hf CLI and curl.
- Browser
- Download file 1.72 kB
-
https://huggingface.co/DrDavis/PythonProject1/resolve/main/.venv/Lib/site-packages/libpasteurize/fixes/feature_base.py
- Command line
-
hf download hf://DrDavis/PythonProject1/.venv/Lib/site-packages/libpasteurize/fixes/feature_base.py
-
curl -L -o feature_base.py https://huggingface.co/DrDavis/PythonProject1/resolve/main/.venv/Lib/site-packages/libpasteurize/fixes/feature_base.py
1.72 kB
| u""" | |
| Base classes for features that are backwards-incompatible. | |
| Usage: | |
| features = Features() | |
| features.add(Feature("py3k_feature", "power< 'py3k' any* >", "2.7")) | |
| PATTERN = features.PATTERN | |
| """ | |
| pattern_unformatted = u"%s=%s" # name=pattern, for dict lookups | |
| message_unformatted = u""" | |
| %s is only supported in Python %s and above.""" | |
| class Feature(object): | |
| u""" | |
| A feature has a name, a pattern, and a minimum version of Python 2.x | |
| required to use the feature (or 3.x if there is no backwards-compatible | |
| version of 2.x) | |
| """ | |
| def __init__(self, name, PATTERN, version): | |
| self.name = name | |
| self._pattern = PATTERN | |
| self.version = version | |
| def message_text(self): | |
| u""" | |
| Format the above text with the name and minimum version required. | |
| """ | |
| return message_unformatted % (self.name, self.version) | |
| class Features(set): | |
| u""" | |
| A set of features that generates a pattern for the features it contains. | |
| This set will act like a mapping in that we map names to patterns. | |
| """ | |
| mapping = {} | |
| def update_mapping(self): | |
| u""" | |
| Called every time we care about the mapping of names to features. | |
| """ | |
| self.mapping = dict([(f.name, f) for f in iter(self)]) | |
| def PATTERN(self): | |
| u""" | |
| Uses the mapping of names to features to return a PATTERN suitable | |
| for using the lib2to3 patcomp. | |
| """ | |
| self.update_mapping() | |
| return u" |\n".join([pattern_unformatted % (f.name, f._pattern) for f in iter(self)]) | |
| def __getitem__(self, key): | |
| u""" | |
| Implement a simple mapping to get patterns from names. | |
| """ | |
| return self.mapping[key] | |