Skip to content

Commit f5a2802

Browse files
committed
fix linter issues
1 parent 94c5b04 commit f5a2802

File tree

9 files changed

+643
-418
lines changed

9 files changed

+643
-418
lines changed

.isort.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
[settings]
2-
known_third_party = parsimonious
2+
known_third_party = gino,parsimonious,sqlalchemy

py_models_parser/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
from py_models_parser.core import parse, parse_from_file
22

3-
__all__ = ['parse', 'parse_from_file']
3+
__all__ = ["parse", "parse_from_file"]

py_models_parser/core.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def get_models_type(models_source: str) -> str:
2626

2727
def pre_processing(models: str):
2828
models = models.split("\n")
29-
start_statements = ["from", "import", "#", '"', "'", '@']
29+
start_statements = ["from", "import", "#", '"', "'", "@"]
3030
inline_statements = ["Gino", "declarative_base"]
3131
to_process = []
3232
comment_start = True
@@ -71,7 +71,8 @@ def parse(models: str) -> List[Dict]:
7171
def parse_from_file(file_path: str) -> List[Dict]:
7272
if not os.path.isfile(file_path):
7373
print(
74-
f"Path {file_path} is not a file or not exists. You need to provide valid path to .py module with models")
75-
with open(file_path, 'r') as f:
74+
f"Path {file_path} is not a file or not exists. You need to provide valid path to .py module with models"
75+
)
76+
with open(file_path, "r") as f:
7677
models = f.read()
77-
return parse(models)
78+
return parse(models)

py_models_parser/visitor.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
class Visitor(NodeVisitor):
77
def visit_class_name(self, node, visited_children):
88
"""get class name"""
9-
class_name = node.children[1].children[0].text.strip().replace(':', '')
9+
class_name = node.children[1].children[0].text.strip().replace(":", "")
1010
return {"name": class_name}
1111

1212
def visit_class_def(self, node, visited_children):
@@ -138,7 +138,7 @@ def process_chld(self, child, final_child):
138138
final_child.update(child)
139139
elif isinstance(child, list):
140140
for i in child:
141-
final_child= self.process_chld(i, final_child)
141+
final_child = self.process_chld(i, final_child)
142142
return final_child
143143

144144
def visit_expr(self, node, visited_children):
@@ -148,8 +148,12 @@ def visit_expr(self, node, visited_children):
148148
for i in visited_children:
149149
final_child = {"name": None, "attrs": [], "parents": [], "properties": {}}
150150
final_child = self.process_chld(i, final_child)
151-
if final_child.get('name') and final_child['name'] == 'Meta' and children_values:
152-
for attr in final_child['attrs']:
151+
if (
152+
final_child.get("name")
153+
and final_child["name"] == "Meta"
154+
and children_values
155+
):
156+
for attr in final_child["attrs"]:
153157
children_values[n]["properties"][attr["name"]] = (
154158
attr["type"] or attr["default"]
155159
)

tests/data/dataclass_defaults.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
from enum import Enum
21
import datetime
3-
from typing import List, Union
42
from dataclasses import dataclass
3+
from enum import Enum
4+
from typing import List, Union
55

66

77
class MaterialType(str, Enum):
88

9-
article = 'article'
10-
video = 'video'
9+
article = "article"
10+
video = "video"
1111

1212

1313
@dataclass

tests/data/gino_models.py

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
11
from enum import Enum
2-
from sqlalchemy.sql import func
3-
from sqlalchemy.dialects.postgresql import JSON,ARRAY
2+
43
from gino import Gino
4+
from sqlalchemy.dialects.postgresql import ARRAY, JSON
5+
from sqlalchemy.sql import func
56

67
db = Gino()
78

89

910
class MaterialType(Enum):
1011

11-
article = 'article'
12-
video = 'video'
12+
article = "article"
13+
video = "video"
1314

1415

1516
class Material(db.Model):
1617

17-
__tablename__ = 'material'
18+
__tablename__ = "material"
1819

1920
id = db.Column(db.Integer(), autoincrement=True, primary_key=True)
2021
title = db.Column(db.String(), nullable=False)
@@ -28,7 +29,7 @@ class Material(db.Model):
2829

2930
class Author(db.Model):
3031

31-
__tablename__ = 'author'
32+
__tablename__ = "author"
3233

3334
id = db.Column(db.Integer(), autoincrement=True, primary_key=True)
3435
name = db.Column(db.String())
@@ -37,23 +38,23 @@ class Author(db.Model):
3738

3839
class MaterialAuthors(db.Model):
3940

40-
__tablename__ = 'material_authors'
41+
__tablename__ = "material_authors"
4142

42-
category = db.Column(db.Integer(), db.ForeignKey('author.id'))
43-
material = db.Column(db.Integer(), db.ForeignKey('material.id'))
43+
category = db.Column(db.Integer(), db.ForeignKey("author.id"))
44+
material = db.Column(db.Integer(), db.ForeignKey("material.id"))
4445

4546

4647
class MaterialPlatforms(db.Model):
4748

48-
__tablename__ = 'material_platforms'
49+
__tablename__ = "material_platforms"
4950

50-
category = db.Column(db.Integer(), db.ForeignKey('platform.id'))
51-
material = db.Column(db.Integer(), db.ForeignKey('material.id'))
51+
category = db.Column(db.Integer(), db.ForeignKey("platform.id"))
52+
material = db.Column(db.Integer(), db.ForeignKey("material.id"))
5253

5354

5455
class Platform(db.Model):
5556

56-
__tablename__ = 'platform'
57+
__tablename__ = "platform"
5758

5859
id = db.Column(db.Integer(), autoincrement=True, primary_key=True)
5960
name = db.Column(db.String(), nullable=False)
@@ -62,15 +63,15 @@ class Platform(db.Model):
6263

6364
class MaterialCategories(db.Model):
6465

65-
__tablename__ = 'material_categories'
66+
__tablename__ = "material_categories"
6667

67-
category = db.Column(db.Integer(), db.ForeignKey('category.id'))
68-
material = db.Column(db.Integer(), db.ForeignKey('material.id'))
68+
category = db.Column(db.Integer(), db.ForeignKey("category.id"))
69+
material = db.Column(db.Integer(), db.ForeignKey("material.id"))
6970

7071

7172
class Category(db.Model):
7273

73-
__tablename__ = 'category'
74+
__tablename__ = "category"
7475

7576
id = db.Column(db.Integer(), autoincrement=True, primary_key=True)
7677
name = db.Column(db.String(), nullable=False)
@@ -81,9 +82,9 @@ class Category(db.Model):
8182

8283
class ContentFilters(db.Model):
8384

84-
__tablename__ = 'content_filters'
85+
__tablename__ = "content_filters"
8586

86-
category = db.Column(db.Integer(), db.ForeignKey('category.id'))
87+
category = db.Column(db.Integer(), db.ForeignKey("category.id"))
8788
channels = db.Column(ARRAY(db.String()))
8889
words = db.Column(ARRAY(db.String()))
8990
created_at = db.Column(db.TIMESTAMP(), server_default=func.now())

tests/test_dataclasses.py

Lines changed: 82 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,87 @@
11
from py_models_parser import parse
22

3+
34
def test_dataclasses():
4-
expected = [{'attrs': [{'default': "'article'",
5-
'name': 'article',
6-
'properties': {},
7-
'type': None},
8-
{'default': "'video'",
9-
'name': 'video',
10-
'properties': {},
11-
'type': None}],
12-
'name': 'MaterialType',
13-
'parents': ['str, Enum'],
14-
'properties': {}},
15-
{'attrs': [{'default': None, 'name': 'id', 'type': 'int'},
16-
{'default': 'None',
17-
'name': 'description',
18-
'properties': {},
19-
'type': 'str'},
20-
{'default': 'None',
21-
'name': 'additional_properties',
22-
'properties': {},
23-
'type': 'Union[dict, list, tuple, anything]'},
24-
{'default': 'datetime.datetime.now()',
25-
'name': 'created_at',
26-
'properties': {},
27-
'type': 'datetime.datetime'},
28-
{'default': 'None',
29-
'name': 'updated_at',
30-
'properties': {},
31-
'type': 'datetime.datetime'}],
32-
'name': 'Material',
33-
'parents': [],
34-
'properties': {}},
35-
{'attrs': [{'default': None, 'name': 'id', 'type': 'int'},
36-
{'default': 'None',
37-
'name': 'description',
38-
'properties': {},
39-
'type': 'str'},
40-
{'default': 'None',
41-
'name': 'additional_properties',
42-
'properties': {},
43-
'type': 'Union[dict, list]'},
44-
{'default': 'datetime.datetime.now()',
45-
'name': 'created_at',
46-
'properties': {},
47-
'type': 'datetime.datetime'},
48-
{'default': 'None',
49-
'name': 'updated_at',
50-
'properties': {},
51-
'type': 'datetime.datetime'}],
52-
'name': 'Material2',
53-
'parents': [],
54-
'properties': {}}]
5+
expected = [
6+
{
7+
"attrs": [
8+
{
9+
"default": "'article'",
10+
"name": "article",
11+
"properties": {},
12+
"type": None,
13+
},
14+
{"default": "'video'", "name": "video", "properties": {}, "type": None},
15+
],
16+
"name": "MaterialType",
17+
"parents": ["str, Enum"],
18+
"properties": {},
19+
},
20+
{
21+
"attrs": [
22+
{"default": None, "name": "id", "type": "int"},
23+
{
24+
"default": "None",
25+
"name": "description",
26+
"properties": {},
27+
"type": "str",
28+
},
29+
{
30+
"default": "None",
31+
"name": "additional_properties",
32+
"properties": {},
33+
"type": "Union[dict, list, tuple, anything]",
34+
},
35+
{
36+
"default": "datetime.datetime.now()",
37+
"name": "created_at",
38+
"properties": {},
39+
"type": "datetime.datetime",
40+
},
41+
{
42+
"default": "None",
43+
"name": "updated_at",
44+
"properties": {},
45+
"type": "datetime.datetime",
46+
},
47+
],
48+
"name": "Material",
49+
"parents": [],
50+
"properties": {},
51+
},
52+
{
53+
"attrs": [
54+
{"default": None, "name": "id", "type": "int"},
55+
{
56+
"default": "None",
57+
"name": "description",
58+
"properties": {},
59+
"type": "str",
60+
},
61+
{
62+
"default": "None",
63+
"name": "additional_properties",
64+
"properties": {},
65+
"type": "Union[dict, list]",
66+
},
67+
{
68+
"default": "datetime.datetime.now()",
69+
"name": "created_at",
70+
"properties": {},
71+
"type": "datetime.datetime",
72+
},
73+
{
74+
"default": "None",
75+
"name": "updated_at",
76+
"properties": {},
77+
"type": "datetime.datetime",
78+
},
79+
],
80+
"name": "Material2",
81+
"parents": [],
82+
"properties": {},
83+
},
84+
]
5585
model = """
5686
5787
class MaterialType(str, Enum):
@@ -80,4 +110,4 @@ class Material2:
80110
81111
"""
82112
result = parse(model)
83-
assert result == expected
113+
assert result == expected

0 commit comments

Comments
 (0)