Current Path: > > opt > alt > python39 > lib64 > > python3.9 > lib2to3 > fixes
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
__pycache__ | Directory | - | - | |
__init__.py | File | 47 bytes | June 03 2025 18:47:52. | |
fix_apply.py | File | 2346 bytes | June 03 2025 18:47:52. | |
fix_asserts.py | File | 984 bytes | June 03 2025 18:47:52. | |
fix_basestring.py | File | 320 bytes | June 03 2025 18:47:52. | |
fix_buffer.py | File | 590 bytes | June 03 2025 18:47:52. | |
fix_dict.py | File | 3760 bytes | June 03 2025 18:47:52. | |
fix_except.py | File | 3344 bytes | June 03 2025 18:47:52. | |
fix_exec.py | File | 979 bytes | June 03 2025 18:47:52. | |
fix_execfile.py | File | 2048 bytes | June 03 2025 18:47:52. | |
fix_exitfunc.py | File | 2495 bytes | June 03 2025 18:47:52. | |
fix_filter.py | File | 2765 bytes | June 03 2025 18:47:52. | |
fix_funcattrs.py | File | 644 bytes | June 03 2025 18:47:52. | |
fix_future.py | File | 547 bytes | June 03 2025 18:47:52. | |
fix_getcwdu.py | File | 451 bytes | June 03 2025 18:47:52. | |
fix_has_key.py | File | 3196 bytes | June 03 2025 18:47:52. | |
fix_idioms.py | File | 4876 bytes | June 03 2025 18:47:52. | |
fix_import.py | File | 3256 bytes | June 03 2025 18:47:52. | |
fix_imports.py | File | 5684 bytes | June 03 2025 18:47:52. | |
fix_imports2.py | File | 289 bytes | June 03 2025 18:47:52. | |
fix_input.py | File | 708 bytes | June 03 2025 18:47:52. | |
fix_intern.py | File | 1144 bytes | June 03 2025 18:47:52. | |
fix_isinstance.py | File | 1608 bytes | June 03 2025 18:47:52. | |
fix_itertools.py | File | 1548 bytes | June 03 2025 18:47:52. | |
fix_itertools_imports.py | File | 2086 bytes | June 03 2025 18:47:52. | |
fix_long.py | File | 476 bytes | June 03 2025 18:47:52. | |
fix_map.py | File | 3640 bytes | June 03 2025 18:47:52. | |
fix_metaclass.py | File | 8197 bytes | June 03 2025 18:47:52. | |
fix_methodattrs.py | File | 606 bytes | June 03 2025 18:47:52. | |
fix_ne.py | File | 571 bytes | June 03 2025 18:47:52. | |
fix_next.py | File | 3174 bytes | June 03 2025 18:47:52. | |
fix_nonzero.py | File | 591 bytes | June 03 2025 18:47:52. | |
fix_numliterals.py | File | 768 bytes | June 03 2025 18:47:52. | |
fix_operator.py | File | 3426 bytes | June 03 2025 18:47:52. | |
fix_paren.py | File | 1226 bytes | June 03 2025 18:47:52. | |
fix_print.py | File | 2844 bytes | June 03 2025 18:47:52. | |
fix_raise.py | File | 2926 bytes | June 03 2025 18:47:52. | |
fix_raw_input.py | File | 454 bytes | June 03 2025 18:47:52. | |
fix_reduce.py | File | 837 bytes | June 03 2025 18:47:52. | |
fix_reload.py | File | 1081 bytes | June 03 2025 18:47:52. | |
fix_renames.py | File | 2221 bytes | June 03 2025 18:47:52. | |
fix_repr.py | File | 613 bytes | June 03 2025 18:47:52. | |
fix_set_literal.py | File | 1697 bytes | June 03 2025 18:47:52. | |
fix_standarderror.py | File | 449 bytes | June 03 2025 18:47:52. | |
fix_sys_exc.py | File | 1034 bytes | June 03 2025 18:47:52. | |
fix_throw.py | File | 1582 bytes | June 03 2025 18:47:52. | |
fix_tuple_params.py | File | 5565 bytes | June 03 2025 18:47:52. | |
fix_types.py | File | 1774 bytes | June 03 2025 18:47:52. | |
fix_unicode.py | File | 1256 bytes | June 03 2025 18:47:52. | |
fix_urllib.py | File | 8367 bytes | June 03 2025 18:47:52. | |
fix_ws_comma.py | File | 1090 bytes | June 03 2025 18:47:52. | |
fix_xrange.py | File | 2694 bytes | June 03 2025 18:47:52. | |
fix_xreadlines.py | File | 689 bytes | June 03 2025 18:47:52. | |
fix_zip.py | File | 1289 bytes | June 03 2025 18:47:52. |
# Copyright 2007 Google, Inc. All Rights Reserved. # Licensed to PSF under a Contributor Agreement. """Fixer for dict methods. d.keys() -> list(d.keys()) d.items() -> list(d.items()) d.values() -> list(d.values()) d.iterkeys() -> iter(d.keys()) d.iteritems() -> iter(d.items()) d.itervalues() -> iter(d.values()) d.viewkeys() -> d.keys() d.viewitems() -> d.items() d.viewvalues() -> d.values() Except in certain very specific contexts: the iter() can be dropped when the context is list(), sorted(), iter() or for...in; the list() can be dropped when the context is list() or sorted() (but not iter() or for...in!). Special contexts that apply to both: list(), sorted(), tuple() set(), any(), all(), sum(). Note: iter(d.keys()) could be written as iter(d) but since the original d.iterkeys() was also redundant we don't fix this. And there are (rare) contexts where it makes a difference (e.g. when passing it as an argument to a function that introspects the argument). """ # Local imports from .. import pytree from .. import patcomp from .. import fixer_base from ..fixer_util import Name, Call, Dot from .. import fixer_util iter_exempt = fixer_util.consuming_calls | {"iter"} class FixDict(fixer_base.BaseFix): BM_compatible = True PATTERN = """ power< head=any+ trailer< '.' method=('keys'|'items'|'values'| 'iterkeys'|'iteritems'|'itervalues'| 'viewkeys'|'viewitems'|'viewvalues') > parens=trailer< '(' ')' > tail=any* > """ def transform(self, node, results): head = results["head"] method = results["method"][0] # Extract node for method name tail = results["tail"] syms = self.syms method_name = method.value isiter = method_name.startswith("iter") isview = method_name.startswith("view") if isiter or isview: method_name = method_name[4:] assert method_name in ("keys", "items", "values"), repr(method) head = [n.clone() for n in head] tail = [n.clone() for n in tail] special = not tail and self.in_special_context(node, isiter) args = head + [pytree.Node(syms.trailer, [Dot(), Name(method_name, prefix=method.prefix)]), results["parens"].clone()] new = pytree.Node(syms.power, args) if not (special or isview): new.prefix = "" new = Call(Name("iter" if isiter else "list"), [new]) if tail: new = pytree.Node(syms.power, [new] + tail) new.prefix = node.prefix return new P1 = "power< func=NAME trailer< '(' node=any ')' > any* >" p1 = patcomp.compile_pattern(P1) P2 = """for_stmt< 'for' any 'in' node=any ':' any* > | comp_for< 'for' any 'in' node=any any* > """ p2 = patcomp.compile_pattern(P2) def in_special_context(self, node, isiter): if node.parent is None: return False results = {} if (node.parent.parent is not None and self.p1.match(node.parent.parent, results) and results["node"] is node): if isiter: # iter(d.iterkeys()) -> iter(d.keys()), etc. return results["func"].value in iter_exempt else: # list(d.keys()) -> list(d.keys()), etc. return results["func"].value in fixer_util.consuming_calls if not isiter: return False # for ... in d.iterkeys() -> for ... in d.keys(), etc. return self.p2.match(node.parent, results) and results["node"] is node
SILENT KILLER Tool