404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.145.196.141: ~ $
u"""
Fixer to remove function annotations
"""

from lib2to3 import fixer_base
from lib2to3.pgen2 import token
from lib2to3.fixer_util import syms

warning_text = u"Removing function annotations completely."

def param_without_annotations(node):
    return node.children[0]

class FixAnnotations(fixer_base.BaseFix):

    warned = False

    def warn_once(self, node, reason):
        if not self.warned:
            self.warned = True
            self.warning(node, reason=reason)

    PATTERN = u"""
              funcdef< 'def' any parameters< '(' [params=any] ')' > ['->' ret=any] ':' any* >
              """

    def transform(self, node, results):
        u"""
        This just strips annotations from the funcdef completely.
        """
        params = results.get(u"params")
        ret = results.get(u"ret")
        if ret is not None:
            assert ret.prev_sibling.type == token.RARROW, u"Invalid return annotation"
            self.warn_once(node, reason=warning_text)
            ret.prev_sibling.remove()
            ret.remove()
        if params is None: return
        if params.type == syms.typedargslist:
            # more than one param in a typedargslist
            for param in params.children:
                if param.type == syms.tname:
                    self.warn_once(node, reason=warning_text)
                    param.replace(param_without_annotations(param))
        elif params.type == syms.tname:
            # one param
            self.warn_once(node, reason=warning_text)
            params.replace(param_without_annotations(params))

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
__init__.py File 3.63 KB 0644
feature_base.py File 1.68 KB 0644
fix_add_all__future__imports.py File 676 B 0644
fix_add_all_future_builtins.py File 1.24 KB 0644
fix_add_future_standard_library_import.py File 663 B 0644
fix_annotations.py File 1.54 KB 0644
fix_division.py File 904 B 0644
fix_features.py File 2.61 KB 0644
fix_fullargspec.py File 438 B 0644
fix_future_builtins.py File 1.42 KB 0644
fix_getcwd.py File 873 B 0644
fix_imports.py File 4.83 KB 0644
fix_imports2.py File 8.38 KB 0644
fix_kwargs.py File 5.85 KB 0644
fix_memoryview.py File 551 B 0644
fix_metaclass.py File 3.18 KB 0644
fix_newstyle.py File 888 B 0644
fix_next.py File 1.2 KB 0644
fix_printfunction.py File 401 B 0644
fix_raise.py File 1.07 KB 0644
fix_raise_.py File 1.2 KB 0644
fix_throw.py File 835 B 0644
fix_unpacking.py File 5.81 KB 0644