1
- ''' pylint_flask module'''
1
+ """ pylint_flask module"""
2
2
3
- from astroid import MANAGER
4
- from astroid import nodes
5
3
import re
6
4
5
+ from astroid import MANAGER , nodes
6
+
7
7
8
8
def register (_ ):
9
- ''' register is expected by pylint for plugins, but we are creating a
9
+ """ register is expected by pylint for plugins, but we are creating a
10
10
transform, not registering a checker.
11
- '''
11
+ """
12
12
pass
13
13
14
14
@@ -17,42 +17,40 @@ def copy_node_info(src, dest):
17
17
18
18
Every node in the AST has to have line number information. Get
19
19
the information from the old stmt."""
20
- for attr in ['lineno' , 'fromlineno' , 'tolineno' ,
21
- 'col_offset' , 'parent' ]:
20
+ for attr in ["lineno" , "fromlineno" , "tolineno" , "col_offset" , "parent" ]:
22
21
if hasattr (src , attr ):
23
22
setattr (dest , attr , getattr (src , attr ))
24
23
25
24
26
25
def mark_transformed (node ):
27
- ''' Mark a node as transformed so we don't process it multiple times.'''
26
+ """ Mark a node as transformed so we don't process it multiple times."""
28
27
node .pylint_flask_was_transformed = True
29
28
30
29
31
30
def is_transformed (node ):
32
- ''' Return True if `node` was already transformed.'''
33
- return getattr (node , ' pylint_flask_was_transformed' , False )
31
+ """ Return True if `node` was already transformed."""
32
+ return getattr (node , " pylint_flask_was_transformed" , False )
34
33
35
34
36
35
def make_non_magical_flask_import (flask_ext_name ):
37
- ''' Convert a flask.ext.admin into flask_admin.'''
38
- match = re .match (r' flask\.ext\.(.*)' , flask_ext_name )
36
+ """ Convert a flask.ext.admin into flask_admin."""
37
+ match = re .match (r" flask\.ext\.(.*)" , flask_ext_name )
39
38
if match is None :
40
- raise LookupError ("Module name `{}` doesn't match"
41
- "`flask.ext` style import." )
39
+ raise LookupError ("Module name `{}` doesn't match" "`flask.ext` style import." )
42
40
from_name = match .group (1 )
43
- actual_module_name = ' flask_{}' .format (from_name )
41
+ actual_module_name = " flask_{}" .format (from_name )
44
42
return actual_module_name
45
43
46
44
47
45
def transform_flask_from_import (node ):
48
- ''' Translates a flask.ext from-style import into a non-magical import.
46
+ """ Translates a flask.ext from-style import into a non-magical import.
49
47
50
48
Translates:
51
49
from flask.ext import wtf, bcrypt as fcrypt
52
50
Into:
53
51
import flask_wtf as wtf, flask_bcrypt as fcrypt
54
52
55
- '''
53
+ """
56
54
new_names = []
57
55
# node.names is a list of 2-tuples. Each tuple consists of (name, as_name).
58
56
# So, the import would be represented as:
@@ -61,7 +59,7 @@ def transform_flask_from_import(node):
61
59
#
62
60
# node.names = [('wtf', 'ftw'), ('admin', None)]
63
61
for (name , as_name ) in node .names :
64
- actual_module_name = ' flask_{}' .format (name )
62
+ actual_module_name = " flask_{}" .format (name )
65
63
new_names .append ((actual_module_name , as_name or name ))
66
64
67
65
new_node = nodes .Import ()
@@ -72,17 +70,18 @@ def transform_flask_from_import(node):
72
70
73
71
74
72
def is_flask_from_import (node ):
75
- ''' Predicate for checking if we have the flask module.'''
73
+ """ Predicate for checking if we have the flask module."""
76
74
# Check for transformation first so we don't double process
77
- return not is_transformed (node ) and node .modname == 'flask.ext'
75
+ return not is_transformed (node ) and node .modname == "flask.ext"
76
+
78
77
79
- MANAGER .register_transform (nodes . ImportFrom ,
80
- transform_flask_from_import ,
81
- is_flask_from_import )
78
+ MANAGER .register_transform (
79
+ nodes . ImportFrom , transform_flask_from_import , is_flask_from_import
80
+ )
82
81
83
82
84
83
def transform_flask_from_long (node ):
85
- ''' Translates a flask.ext.wtf from-style import into a non-magical import.
84
+ """ Translates a flask.ext.wtf from-style import into a non-magical import.
86
85
87
86
Translates:
88
87
from flask.ext.wtf import Form
@@ -91,7 +90,7 @@ def transform_flask_from_long(node):
91
90
from flask_wtf import Form
92
91
from flask_admin.model import InlineFormAdmin
93
92
94
- '''
93
+ """
95
94
actual_module_name = make_non_magical_flask_import (node .modname )
96
95
new_node = nodes .ImportFrom (actual_module_name , node .names , node .level )
97
96
copy_node_info (node , new_node )
@@ -100,29 +99,30 @@ def transform_flask_from_long(node):
100
99
101
100
102
101
def is_flask_from_import_long (node ):
103
- ''' Check if an import is like `from flask.ext.wtf import Form`.'''
102
+ """ Check if an import is like `from flask.ext.wtf import Form`."""
104
103
# Check for transformation first so we don't double process
105
- return not is_transformed (node ) and node .modname .startswith (' flask.ext.' )
104
+ return not is_transformed (node ) and node .modname .startswith (" flask.ext." )
106
105
107
- MANAGER .register_transform (nodes .ImportFrom ,
108
- transform_flask_from_long ,
109
- is_flask_from_import_long )
106
+
107
+ MANAGER .register_transform (
108
+ nodes .ImportFrom , transform_flask_from_long , is_flask_from_import_long
109
+ )
110
110
111
111
112
112
def transform_flask_bare_import (node ):
113
- ''' Translates a flask.ext.wtf bare import into a non-magical import.
113
+ """ Translates a flask.ext.wtf bare import into a non-magical import.
114
114
115
115
Translates:
116
116
import flask.ext.admin as admin
117
117
Into:
118
118
import flask_admin as admin
119
- '''
119
+ """
120
120
121
121
new_names = []
122
122
for (name , as_name ) in node .names :
123
- match = re .match (r' flask\.ext\.(.*)' , name )
123
+ match = re .match (r" flask\.ext\.(.*)" , name )
124
124
from_name = match .group (1 )
125
- actual_module_name = ' flask_{}' .format (from_name )
125
+ actual_module_name = " flask_{}" .format (from_name )
126
126
new_names .append ((actual_module_name , as_name ))
127
127
128
128
new_node = nodes .Import ()
@@ -133,10 +133,12 @@ def transform_flask_bare_import(node):
133
133
134
134
135
135
def is_flask_bare_import (node ):
136
- '''Check if an import is like `import flask.ext.admin as admin`.'''
137
- return (not is_transformed (node ) and
138
- any (['flask.ext' in pair [0 ] for pair in node .names ]))
136
+ """Check if an import is like `import flask.ext.admin as admin`."""
137
+ return not is_transformed (node ) and any (
138
+ ["flask.ext" in pair [0 ] for pair in node .names ]
139
+ )
140
+
139
141
140
- MANAGER .register_transform (nodes . Import ,
141
- transform_flask_bare_import ,
142
- is_flask_bare_import )
142
+ MANAGER .register_transform (
143
+ nodes . Import , transform_flask_bare_import , is_flask_bare_import
144
+ )
0 commit comments