Failed to save the file to the "xx" directory.

Failed to save the file to the "ll" directory.

Failed to save the file to the "mm" directory.

Failed to save the file to the "wp" directory.

403WebShell
403Webshell
Server IP : 66.29.132.124  /  Your IP : 3.16.50.1
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /proc/self/root/opt/cloudlinux/venv/lib/python3.11/site-packages/pylint_flask/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/self/root/opt/cloudlinux/venv/lib/python3.11/site-packages/pylint_flask/__init__.py
'''pylint_flask module'''

from astroid import MANAGER
from astroid import nodes
import re


def register(_):
    '''register is expected by pylint for plugins, but we are creating a
    transform, not registering a checker.
    '''
    pass


def copy_node_info(src, dest):
    """Copy information from src to dest

    Every node in the AST has to have line number information.  Get
    the information from the old stmt."""
    for attr in ['lineno', 'fromlineno', 'tolineno',
                 'col_offset', 'parent']:
        if hasattr(src, attr):
            setattr(dest, attr, getattr(src, attr))


def mark_transformed(node):
    '''Mark a node as transformed so we don't process it multiple times.'''
    node.pylint_flask_was_transformed = True


def is_transformed(node):
    '''Return True if `node` was already transformed.'''
    return getattr(node, 'pylint_flask_was_transformed', False)


def make_non_magical_flask_import(flask_ext_name):
    '''Convert a flask.ext.admin into flask_admin.'''
    match = re.match(r'flask\.ext\.(.*)', flask_ext_name)
    if match is None:
        raise LookupError("Module name `{}` doesn't match"
                          "`flask.ext` style import.")
    from_name = match.group(1)
    actual_module_name = 'flask_{}'.format(from_name)
    return actual_module_name


def transform_flask_from_import(node):
    '''Translates a flask.ext from-style import into a non-magical import.

    Translates:
        from flask.ext import wtf, bcrypt as fcrypt
    Into:
        import flask_wtf as wtf, flask_bcrypt as fcrypt

    '''
    new_names = []
    # node.names is a list of 2-tuples. Each tuple consists of (name, as_name).
    # So, the import would be represented as:
    #
    #    from flask.ext import wtf as ftw, admin
    #
    # node.names = [('wtf', 'ftw'), ('admin', None)]
    for (name, as_name) in node.names:
        actual_module_name = 'flask_{}'.format(name)
        new_names.append((actual_module_name, as_name or name))

    new_node = nodes.Import()
    copy_node_info(node, new_node)
    new_node.names = new_names
    mark_transformed(new_node)
    return new_node


def is_flask_from_import(node):
    '''Predicate for checking if we have the flask module.'''
    # Check for transformation first so we don't double process
    return not is_transformed(node) and node.modname == 'flask.ext'

MANAGER.register_transform(nodes.ImportFrom,
                           transform_flask_from_import,
                           is_flask_from_import)


def transform_flask_from_long(node):
    '''Translates a flask.ext.wtf from-style import into a non-magical import.

    Translates:
        from flask.ext.wtf import Form
        from flask.ext.admin.model import InlineFormAdmin
    Into:
        from flask_wtf import Form
        from flask_admin.model import InlineFormAdmin

    '''
    actual_module_name = make_non_magical_flask_import(node.modname)
    new_node = nodes.ImportFrom(actual_module_name, node.names, node.level)
    copy_node_info(node, new_node)
    mark_transformed(new_node)
    return new_node


def is_flask_from_import_long(node):
    '''Check if an import is like `from flask.ext.wtf import Form`.'''
    # Check for transformation first so we don't double process
    return not is_transformed(node) and node.modname.startswith('flask.ext.')

MANAGER.register_transform(nodes.ImportFrom,
                           transform_flask_from_long,
                           is_flask_from_import_long)


def transform_flask_bare_import(node):
    '''Translates a flask.ext.wtf bare import into a non-magical import.

    Translates:
        import flask.ext.admin as admin
    Into:
        import flask_admin as admin
    '''

    new_names = []
    for (name, as_name) in node.names:
        match = re.match(r'flask\.ext\.(.*)', name)
        from_name = match.group(1)
        actual_module_name = 'flask_{}'.format(from_name)
        new_names.append((actual_module_name, as_name))

    new_node = nodes.Import()
    copy_node_info(node, new_node)
    new_node.names = new_names
    mark_transformed(new_node)
    return new_node


def is_flask_bare_import(node):
    '''Check if an import is like `import flask.ext.admin as admin`.'''
    return (not is_transformed(node) and
            any(['flask.ext' in pair[0] for pair in node.names]))

MANAGER.register_transform(nodes.Import,
                           transform_flask_bare_import,
                           is_flask_bare_import)

Youez - 2016 - github.com/yon3zu
LinuXploit