-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgenerate.py
More file actions
executable file
·76 lines (65 loc) · 3.09 KB
/
generate.py
File metadata and controls
executable file
·76 lines (65 loc) · 3.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# flake8: noqa
import os
import black
BLACK_MODE = black.FileMode()
from cinnamon_sdk.internals.generate import PythonCodeGenerator, get_schema
print("Collecting schema...")
generator = PythonCodeGenerator(
get_schema(
url=os.environ.get("CINNAMON_PYTHON_SDK_URL"),
email=os.environ.get("CINNAMON_PYTHON_SDK_EMAIL"),
password=os.environ.get("CINNAMON_PYTHON_SDK_PASSWORD"),
)
)
print("Updating objects.py...")
objects_filename = os.path.join("cinnamon_sdk", "objects.py")
with open(objects_filename, mode="w") as f:
objects_code = "from typing import Union, List, Any\n"
objects_code += "from datetime import datetime\n"
objects_code += "from .internals.base_classes import BaseCinnamonObject, BaseCinnamonEdgesObject, BaseCinnamonField\n"
objects_code += "from .internals.constants import CinnamonUndefined\n"
objects_code += "from .internals import scalars\n"
objects_code += "from . import enums\n\n"
objects_code += generator.object_classes()
f.write(black.format_str(objects_code, mode=BLACK_MODE))
print("Updating fields.py...")
fields_filename = os.path.join("cinnamon_sdk", "fields.py")
with open(fields_filename, mode="w") as f:
fields_code = "from functools import lru_cache\n"
fields_code += "from .internals.base_classes import QueryFieldSet, QueryField\n\n"
fields_code += generator.fields_classes()
f.write(black.format_str(fields_code, mode=BLACK_MODE))
print("Updating inputs.py...")
inputs_filename = os.path.join("cinnamon_sdk", "inputs.py")
with open(inputs_filename, mode="w") as f:
inputs_code = "from typing import Union, List\n\n"
inputs_code += (
"from .internals.base_classes import BaseCinnamonInput, BaseCinnamonField\n"
)
inputs_code += "from .internals.constants import CinnamonUndefined\n"
inputs_code += "from .internals import scalars\n"
inputs_code += "from . import enums\n\n"
inputs_code += generator.input_object_classes()
f.write(black.format_str(inputs_code, mode=BLACK_MODE))
print("Updating enums.py...")
enums_filename = os.path.join("cinnamon_sdk", "enums.py")
with open(enums_filename, mode="w") as f:
enums_code = "from enum import Enum\n\n"
enums_code += generator.enums()
f.write(black.format_str(enums_code, mode=BLACK_MODE))
print("Updating cinnamon.py...")
functions_filename = os.path.join("cinnamon_sdk", "cinnamon.py")
with open(functions_filename, mode="w") as f:
cinna_code = "from typing import Union, List, Iterable\n"
cinna_code += "from datetime import datetime\n"
cinna_code += "from .internals.base_classes import BaseSyncCinnamon, BaseCinnamonField, QueryFieldSet, QueryField\n"
cinna_code += "from .internals.constants import CinnamonUndefined\n"
cinna_code += "from .internals import scalars\n"
cinna_code += "from . import fields as fields_module\n"
cinna_code += "from . import objects\n"
cinna_code += "from . import inputs\n\n"
cinna_code += generator.api_class("Cinnamon")
cinna_code += "\n\n"
cinna_code += "__all__ = ['Cinnamon']\n"
f.write(black.format_str(cinna_code, mode=BLACK_MODE))
print("Done.\n")