mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-06 13:11:15 -07:00
Add future 0.18.2
This commit is contained in:
parent
08c8ee0774
commit
fa97d3f88d
210 changed files with 43159 additions and 0 deletions
86
lib/libpasteurize/fixes/fix_features.py
Normal file
86
lib/libpasteurize/fixes/fix_features.py
Normal file
|
@ -0,0 +1,86 @@
|
|||
u"""
|
||||
Warn about features that are not present in Python 2.5, giving a message that
|
||||
points to the earliest version of Python 2.x (or 3.x, if none) that supports it
|
||||
"""
|
||||
|
||||
from .feature_base import Feature, Features
|
||||
from lib2to3 import fixer_base
|
||||
|
||||
FEATURES = [
|
||||
#(FeatureName,
|
||||
# FeaturePattern,
|
||||
# FeatureMinVersion,
|
||||
#),
|
||||
(u"memoryview",
|
||||
u"power < 'memoryview' trailer < '(' any* ')' > any* >",
|
||||
u"2.7",
|
||||
),
|
||||
(u"numbers",
|
||||
u"""import_from< 'from' 'numbers' 'import' any* > |
|
||||
import_name< 'import' ('numbers' dotted_as_names< any* 'numbers' any* >) >""",
|
||||
u"2.6",
|
||||
),
|
||||
(u"abc",
|
||||
u"""import_name< 'import' ('abc' dotted_as_names< any* 'abc' any* >) > |
|
||||
import_from< 'from' 'abc' 'import' any* >""",
|
||||
u"2.6",
|
||||
),
|
||||
(u"io",
|
||||
u"""import_name< 'import' ('io' dotted_as_names< any* 'io' any* >) > |
|
||||
import_from< 'from' 'io' 'import' any* >""",
|
||||
u"2.6",
|
||||
),
|
||||
(u"bin",
|
||||
u"power< 'bin' trailer< '(' any* ')' > any* >",
|
||||
u"2.6",
|
||||
),
|
||||
(u"formatting",
|
||||
u"power< any trailer< '.' 'format' > trailer< '(' any* ')' > >",
|
||||
u"2.6",
|
||||
),
|
||||
(u"nonlocal",
|
||||
u"global_stmt< 'nonlocal' any* >",
|
||||
u"3.0",
|
||||
),
|
||||
(u"with_traceback",
|
||||
u"trailer< '.' 'with_traceback' >",
|
||||
u"3.0",
|
||||
),
|
||||
]
|
||||
|
||||
class FixFeatures(fixer_base.BaseFix):
|
||||
|
||||
run_order = 9 # Wait until all other fixers have run to check for these
|
||||
|
||||
# To avoid spamming, we only want to warn for each feature once.
|
||||
features_warned = set()
|
||||
|
||||
# Build features from the list above
|
||||
features = Features([Feature(name, pattern, version) for \
|
||||
name, pattern, version in FEATURES])
|
||||
|
||||
PATTERN = features.PATTERN
|
||||
|
||||
def match(self, node):
|
||||
to_ret = super(FixFeatures, self).match(node)
|
||||
# We want the mapping only to tell us the node's specific information.
|
||||
try:
|
||||
del to_ret[u'node']
|
||||
except Exception:
|
||||
# We want it to delete the 'node' from the results
|
||||
# if it's there, so we don't care if it fails for normal reasons.
|
||||
pass
|
||||
return to_ret
|
||||
|
||||
def transform(self, node, results):
|
||||
for feature_name in results:
|
||||
if feature_name in self.features_warned:
|
||||
continue
|
||||
else:
|
||||
curr_feature = self.features[feature_name]
|
||||
if curr_feature.version >= u"3":
|
||||
fail = self.cannot_convert
|
||||
else:
|
||||
fail = self.warning
|
||||
fail(node, reason=curr_feature.message_text())
|
||||
self.features_warned.add(feature_name)
|
Loading…
Add table
Add a link
Reference in a new issue