gibson-cli 0.7.1__py3-none-any.whl → 0.7.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gibson/command/code/Entity.py +22 -18
- gibson/command/code/Model.py +3 -3
- gibson/command/code/Schema.py +3 -3
- gibson/command/code/Test.py +3 -3
- gibson/core/Colors.py +29 -2
- gibson/display/Header.py +8 -4
- gibson/display/WorkspaceFooter.py +5 -3
- gibson/display/WorkspaceHeader.py +4 -1
- gibson/display/tests/test_display_Header.py +4 -3
- gibson/display/tests/test_display_WorkspaceFooter.py +4 -2
- gibson/display/tests/test_display_WorkspaceHeader.py +2 -1
- {gibson_cli-0.7.1.dist-info → gibson_cli-0.7.2.dist-info}/METADATA +1 -1
- {gibson_cli-0.7.1.dist-info → gibson_cli-0.7.2.dist-info}/RECORD +16 -16
- {gibson_cli-0.7.1.dist-info → gibson_cli-0.7.2.dist-info}/WHEEL +0 -0
- {gibson_cli-0.7.1.dist-info → gibson_cli-0.7.2.dist-info}/entry_points.txt +0 -0
- {gibson_cli-0.7.1.dist-info → gibson_cli-0.7.2.dist-info}/top_level.txt +0 -0
gibson/command/code/Entity.py
CHANGED
@@ -5,8 +5,10 @@ from string import Template
|
|
5
5
|
import gibson.core.Colors as Colors
|
6
6
|
from gibson.api.Cli import Cli
|
7
7
|
from gibson.command.BaseCommand import BaseCommand
|
8
|
+
from gibson.command.code.Model import Model
|
9
|
+
from gibson.command.code.Schema import Schema
|
10
|
+
from gibson.command.code.Test import Test
|
8
11
|
from gibson.command.Merge import Merge
|
9
|
-
from gibson.command.rewrite.Rewrite import Rewrite
|
10
12
|
from gibson.core.Configuration import Configuration
|
11
13
|
from gibson.display.Header import Header
|
12
14
|
from gibson.display.WorkspaceFooter import WorkspaceFooter
|
@@ -106,29 +108,32 @@ class Entity(BaseCommand):
|
|
106
108
|
self.__render_workspace(entity, data["code"][0]["definition"])
|
107
109
|
|
108
110
|
input_ = input("> ")
|
109
|
-
if input_ in ["
|
111
|
+
if input_ in [":q", ":q!", ":wq"]:
|
110
112
|
self.conversation.newline()
|
111
113
|
|
112
114
|
if input_ == ":q":
|
115
|
+
self.conversation.type("Exiting without saving.\n")
|
116
|
+
|
117
|
+
if input_ in [":q", ":q!"]:
|
113
118
|
exit(1)
|
114
119
|
|
115
120
|
self.memory.remember_last({"entities": [data["entity"]]})
|
121
|
+
self.conversation.mute()
|
122
|
+
Merge(self.configuration).execute()
|
123
|
+
self.conversation.unmute()
|
116
124
|
|
117
|
-
|
118
|
-
|
119
|
-
"Damn we write good code. I stored this in last memory. "
|
120
|
-
+ "Your move.\n"
|
121
|
-
)
|
122
|
-
else:
|
123
|
-
self.conversation.mute()
|
124
|
-
Merge(self.configuration).execute()
|
125
|
-
self.conversation.unmute()
|
125
|
+
self.conversation.type("Entity saved! ✅\n\n")
|
126
|
+
self.conversation.type("Gibson is writing the code...\n\n")
|
126
127
|
|
127
|
-
|
128
|
+
Model(self.configuration).execute(entity.name)
|
129
|
+
Schema(self.configuration).execute(entity.name)
|
130
|
+
Test(self.configuration).execute(entity.name)
|
128
131
|
|
129
|
-
self.conversation.
|
132
|
+
self.conversation.type(
|
133
|
+
f"All code for the {Colors.violet(entity.name)} entity has been written 🎉\n\n"
|
134
|
+
)
|
130
135
|
|
131
|
-
exit(
|
136
|
+
exit()
|
132
137
|
elif input_ == "":
|
133
138
|
continue
|
134
139
|
|
@@ -180,14 +185,13 @@ class Entity(BaseCommand):
|
|
180
185
|
print(WorkspaceHeader().render(self.configuration.project.name))
|
181
186
|
|
182
187
|
print("")
|
183
|
-
print(Header().render("SQL"))
|
188
|
+
print(Header().render("SQL", Colors.Color.CYAN))
|
184
189
|
print("")
|
185
190
|
print(Colors.table(entity.create_statement(), entity.name))
|
186
191
|
|
187
192
|
print("")
|
188
|
-
print(Header().render("Model"))
|
193
|
+
print(Header().render("Model", Colors.Color.YELLOW))
|
189
194
|
print("")
|
190
|
-
print(model)
|
195
|
+
print(Colors.model(model, entity.name))
|
191
196
|
|
192
|
-
print("")
|
193
197
|
print(WorkspaceFooter().render())
|
gibson/command/code/Model.py
CHANGED
@@ -8,12 +8,12 @@ from gibson.dev.Dev import Dev
|
|
8
8
|
|
9
9
|
|
10
10
|
class Model(BaseCommand):
|
11
|
-
def execute(self):
|
11
|
+
def execute(self, entity_name=sys.argv[3]):
|
12
12
|
self.configuration.require_project()
|
13
|
-
entity = self.memory.recall_stored_entity(
|
13
|
+
entity = self.memory.recall_stored_entity(entity_name)
|
14
14
|
if entity is None:
|
15
15
|
self.conversation.not_sure_no_entity(
|
16
|
-
self.configuration.project.name,
|
16
|
+
self.configuration.project.name, entity_name
|
17
17
|
)
|
18
18
|
exit(1)
|
19
19
|
|
gibson/command/code/Schema.py
CHANGED
@@ -8,12 +8,12 @@ from gibson.dev.Dev import Dev
|
|
8
8
|
|
9
9
|
|
10
10
|
class Schema(BaseCommand):
|
11
|
-
def execute(self):
|
11
|
+
def execute(self, entity_name=sys.argv[3]):
|
12
12
|
self.configuration.require_project()
|
13
|
-
entity = self.memory.recall_stored_entity(
|
13
|
+
entity = self.memory.recall_stored_entity(entity_name)
|
14
14
|
if entity is None:
|
15
15
|
self.conversation.not_sure_no_entity(
|
16
|
-
self.configuration.project.name,
|
16
|
+
self.configuration.project.name, entity_name
|
17
17
|
)
|
18
18
|
exit(1)
|
19
19
|
|
gibson/command/code/Test.py
CHANGED
@@ -8,12 +8,12 @@ from gibson.dev.Dev import Dev
|
|
8
8
|
|
9
9
|
|
10
10
|
class Test(BaseCommand):
|
11
|
-
def execute(self):
|
11
|
+
def execute(self, entity_name=sys.argv[3]):
|
12
12
|
self.configuration.require_project()
|
13
|
-
entity = self.memory.recall_stored_entity(
|
13
|
+
entity = self.memory.recall_stored_entity(entity_name)
|
14
14
|
if entity is None:
|
15
15
|
self.conversation.not_sure_no_entity(
|
16
|
-
self.configuration.project.name,
|
16
|
+
self.configuration.project.name, entity_name
|
17
17
|
)
|
18
18
|
exit(1)
|
19
19
|
|
gibson/core/Colors.py
CHANGED
@@ -57,7 +57,7 @@ def subcommand(text):
|
|
57
57
|
|
58
58
|
# Colorize an argument
|
59
59
|
def argument(text):
|
60
|
-
return
|
60
|
+
return violet(text)
|
61
61
|
|
62
62
|
|
63
63
|
# Colorize a list of arguments
|
@@ -92,9 +92,36 @@ def link(text):
|
|
92
92
|
|
93
93
|
# Colorize the table name in a SQL statement
|
94
94
|
def table(sql, name):
|
95
|
-
return sql.replace(name,
|
95
|
+
return sql.replace(name, violet(name))
|
96
|
+
|
97
|
+
|
98
|
+
# Colorize the table name in model code
|
99
|
+
def model(code, name):
|
100
|
+
return code.replace(
|
101
|
+
f'__tablename__ = "{name}"', f'__tablename__ = "{violet(name)}"'
|
102
|
+
)
|
96
103
|
|
97
104
|
|
98
105
|
# Colorize a time/duration output
|
99
106
|
def time(text):
|
100
107
|
return colorize(text, Color.GREEN)
|
108
|
+
|
109
|
+
|
110
|
+
def cyan(text):
|
111
|
+
return colorize(text, Color.CYAN)
|
112
|
+
|
113
|
+
|
114
|
+
def green(text):
|
115
|
+
return colorize(text, Color.GREEN)
|
116
|
+
|
117
|
+
|
118
|
+
def red(text):
|
119
|
+
return colorize(text, Color.RED)
|
120
|
+
|
121
|
+
|
122
|
+
def violet(text):
|
123
|
+
return colorize(text, Color.VIOLET)
|
124
|
+
|
125
|
+
|
126
|
+
def yellow(text):
|
127
|
+
return colorize(text, Color.YELLOW)
|
gibson/display/Header.py
CHANGED
@@ -1,6 +1,10 @@
|
|
1
|
+
import gibson.core.Colors as Colors
|
2
|
+
|
3
|
+
|
1
4
|
class Header:
|
2
|
-
def render(self, text):
|
3
|
-
|
4
|
-
header
|
5
|
-
header += "
|
5
|
+
def render(self, text, color=None):
|
6
|
+
output = text if color is None else Colors.colorize(text, color)
|
7
|
+
header = "+-----------------------------------------------------------------------------+\n"
|
8
|
+
header += "| " + output + " " * (76 - len(text)) + "|\n"
|
9
|
+
header += "+-----------------------------------------------------------------------------+"
|
6
10
|
return header
|
@@ -1,10 +1,12 @@
|
|
1
|
+
import gibson.core.Colors as Colors
|
2
|
+
|
3
|
+
|
1
4
|
class WorkspaceFooter:
|
2
5
|
def render(self):
|
3
6
|
return (
|
4
7
|
"=" * 79
|
5
8
|
+ "\n"
|
6
|
-
+ "[. + enter =
|
7
|
-
+ "[:
|
8
|
-
+ "[:w + enter = merge + write code]\n"
|
9
|
+
+ f"[{Colors.red(':q')} + enter = {Colors.red('discard')} changes] "
|
10
|
+
+ f"[{Colors.green(':wq')} + enter = {Colors.green('save')} changes + write code]\n\n"
|
9
11
|
+ "Using natural language, tell me how I can modify this entity."
|
10
12
|
)
|
@@ -1,3 +1,6 @@
|
|
1
|
+
import gibson.core.Colors as Colors
|
2
|
+
|
3
|
+
|
1
4
|
class WorkspaceHeader:
|
2
5
|
def render(self, project_name):
|
3
6
|
return (
|
@@ -5,4 +8,4 @@ class WorkspaceHeader:
|
|
5
8
|
+ " " * 12
|
6
9
|
+ "[PAIR PROGRAMMER]\n"
|
7
10
|
+ "=" * 79
|
8
|
-
)
|
11
|
+
).replace(project_name, Colors.project(project_name))
|
@@ -1,9 +1,10 @@
|
|
1
|
+
import gibson.core.Colors as Colors
|
1
2
|
from gibson.display.Header import Header
|
2
3
|
|
3
4
|
|
4
5
|
def test_render():
|
5
6
|
assert Header().render("abc def ghi") == (
|
6
|
-
"""
|
7
|
-
| abc def ghi
|
8
|
-
|
7
|
+
"""+-----------------------------------------------------------------------------+
|
8
|
+
| abc def ghi |
|
9
|
+
+-----------------------------------------------------------------------------+"""
|
9
10
|
)
|
@@ -1,9 +1,11 @@
|
|
1
|
+
import gibson.core.Colors as Colors
|
1
2
|
from gibson.display.WorkspaceFooter import WorkspaceFooter
|
2
3
|
|
3
4
|
|
4
5
|
def test_render():
|
5
6
|
assert WorkspaceFooter().render() == (
|
6
|
-
"""===============================================================================
|
7
|
-
[.
|
7
|
+
f"""===============================================================================
|
8
|
+
[{Colors.red(':q')} + enter = {Colors.red('discard')} changes] [{Colors.green(':wq')} + enter = {Colors.green('save')} changes + write code]
|
9
|
+
|
8
10
|
Using natural language, tell me how I can modify this entity."""
|
9
11
|
)
|
@@ -1,8 +1,9 @@
|
|
1
|
+
import gibson.core.Colors as Colors
|
1
2
|
from gibson.display.WorkspaceHeader import WorkspaceHeader
|
2
3
|
|
3
4
|
|
4
5
|
def test_render():
|
5
6
|
assert WorkspaceHeader().render("abc def ghi") == (
|
6
|
-
"""Project abc def ghi [PAIR PROGRAMMER]
|
7
|
+
f"""Project {Colors.project("abc def ghi")} [PAIR PROGRAMMER]
|
7
8
|
==============================================================================="""
|
8
9
|
)
|
@@ -26,12 +26,12 @@ gibson/command/auth/Logout.py,sha256=V01q4TdbiBqCnIrM6IA4T25fO6ws0UpXp42I3pwHZVM
|
|
26
26
|
gibson/command/code/Api.py,sha256=sSvAqEJXdgQjYcu0uiM6ndHE3GnfkfVL6eqP2Otkbww,1002
|
27
27
|
gibson/command/code/Base.py,sha256=YJ2a5Hl0f9NXHUBBPvlt-dUIqEPWQz5vH6-1EHmbFbA,640
|
28
28
|
gibson/command/code/Code.py,sha256=Ce8jilFWl1B7Djabf4KoN3s8IgQPQchhxwOis0nFXvM,4234
|
29
|
-
gibson/command/code/Entity.py,sha256=
|
30
|
-
gibson/command/code/Model.py,sha256=
|
29
|
+
gibson/command/code/Entity.py,sha256=MQHtxu_dxd592XA8JYtcOkHeOKqgYC_O6dNbgGI2EMY,6937
|
30
|
+
gibson/command/code/Model.py,sha256=UzJOmxgl0nEWRPuP_plKFpPmbFfW3uvur76Kv5QcjjA,1112
|
31
31
|
gibson/command/code/Models.py,sha256=eoUpZHpR0qwNgX60EWfcNz49GHmBw_FGfBuHH2ueZqY,799
|
32
|
-
gibson/command/code/Schema.py,sha256=
|
32
|
+
gibson/command/code/Schema.py,sha256=aYp-MzNB6UPvtCvoGN0X1JZQ3QYN5ldHtlxb2kGKR08,1116
|
33
33
|
gibson/command/code/Schemas.py,sha256=zZ1gjmOJg77gh70t5y2WkzHWSAvEKx5-gqRN9OcsCXA,802
|
34
|
-
gibson/command/code/Test.py,sha256=
|
34
|
+
gibson/command/code/Test.py,sha256=JgUe5AB7xMw8tHnEaKqUCqRL895nlnwe34GRkOa6P0Y,1107
|
35
35
|
gibson/command/code/Tests.py,sha256=HO1WM6pSToVKsuJn7nUA_I5qrfBN0cgKgBzjlm2Qxt8,799
|
36
36
|
gibson/command/importer/Import.py,sha256=qW__kT7xruUgg2kTZG-80Jah94aqQ7nvd89dZW4uxcg,6792
|
37
37
|
gibson/command/importer/OpenApi.py,sha256=voTthxb0KDTlkEsHsIeJnyMxgEBbJKw9VTKDyGehopI,3759
|
@@ -64,7 +64,7 @@ gibson/conf/dev/Model.py,sha256=HbHRX3VDxR7hXlzuxkKw4Bf7FH6XMfQ96k9BeIUoBf4,73
|
|
64
64
|
gibson/conf/dev/Schema.py,sha256=kOSlX1jEyVb82xd8TO8jEAimLcaefIFJr6d2JYvyTqg,74
|
65
65
|
gibson/conf/tests/test_conf_Dependencies.py,sha256=LITeeYiqXM5rKkyWFBqcnMvUR5pzDRuHVAngH372jWc,116
|
66
66
|
gibson/conf/tests/test_conf_Platform.py,sha256=Zc53IsZmV-hT9VRrZEPNrsuehSdWnJXWKGMmOhEqWHo,138
|
67
|
-
gibson/core/Colors.py,sha256=
|
67
|
+
gibson/core/Colors.py,sha256=dGafcWxDrUV5BcHUdzH2xIlueZW6RgkhFyOWgZ0tfL4,2531
|
68
68
|
gibson/core/CommandRouter.py,sha256=G_4_OToiBQUgvZbO_yuIqYGus0FtV_sk6s9LzGwR4RY,3227
|
69
69
|
gibson/core/Completions.py,sha256=Bsh25vnf0pjpJA6MJNR_2MA2s58Ujj8XolR8fm8AQ_s,1197
|
70
70
|
gibson/core/Configuration.py,sha256=c_YX0GFmiTIr4V0-2GmOuAipdq-WKO6QU2oHtPLP4iU,15784
|
@@ -82,12 +82,12 @@ gibson/data/postgresql/default-table.tmpl,sha256=4xON0XyY55OiZhZmJ4RemnKMNFLniuS
|
|
82
82
|
gibson/db/TableExceptions.py,sha256=LGDPxAVjXmb0EJSFpHC6twHoFzv7nFsFzTj2DXNabQU,196
|
83
83
|
gibson/db/tests/test_db_TableExceptions.py,sha256=tNzn6SybygWXSuj-3i_s6t9LOo1P8gI9S4wSz4UxeCk,312
|
84
84
|
gibson/dev/Dev.py,sha256=O-GiMATpVd9kYHsVfbHaC-Omh17HQ8FalFQNelfxh2s,2544
|
85
|
-
gibson/display/Header.py,sha256=
|
86
|
-
gibson/display/WorkspaceFooter.py,sha256=
|
87
|
-
gibson/display/WorkspaceHeader.py,sha256=
|
88
|
-
gibson/display/tests/test_display_Header.py,sha256=
|
89
|
-
gibson/display/tests/test_display_WorkspaceFooter.py,sha256=
|
90
|
-
gibson/display/tests/test_display_WorkspaceHeader.py,sha256=
|
85
|
+
gibson/display/Header.py,sha256=Lx7C50pqJiBOo_UgnPXkqL1XhdM1zPFEeEg5CdvPyr0,453
|
86
|
+
gibson/display/WorkspaceFooter.py,sha256=qMM-tu9ZPA1E_-uyvrt6rwqXMXMvg5vR817WXmdCEFU,408
|
87
|
+
gibson/display/WorkspaceHeader.py,sha256=y05g_RyRWwTeJ5hPpCizYaT-oHWu7htjZwatY8Qo2Lg,306
|
88
|
+
gibson/display/tests/test_display_Header.py,sha256=0UWumN0kHjuVYp-Sf707yZgzoMvYt5jUAfWuhoiWwh8,405
|
89
|
+
gibson/display/tests/test_display_WorkspaceFooter.py,sha256=EmjK-Yc3uPPaQQKebo1SWt6rUmsPo2imWgpIVb_CLiU,464
|
90
|
+
gibson/display/tests/test_display_WorkspaceHeader.py,sha256=bdfWVmnyLd6f28wL1zEANZglX32tz2zEIKvQf9qK-X4,373
|
91
91
|
gibson/lang/Python.py,sha256=WNbCTFhDh9qXVbeySyfaP-6m-c0wllSCZw8A-r_Z0Oo,1764
|
92
92
|
gibson/lang/tests/test_lang_Python.py,sha256=YpdqYOGAssg-jP9GuzfoU4Y4L7Boj0vAUAJgjuZvedo,1862
|
93
93
|
gibson/services/auth/Server.py,sha256=DfemWNZlZ3rDE6PsAAvDP0anK7czwhiadX6Wilo4agY,1936
|
@@ -124,8 +124,8 @@ gibson/structure/tests/test_structure_Entity.py,sha256=askl8w0p1uqET6HKBogJlRcPP
|
|
124
124
|
gibson/tests/test_Env.py,sha256=DPWmP0-aEelducq9bAwv7rKoY2NjWXUeCrzfJDQkn2M,369
|
125
125
|
gibson/tests/test_Memory.py,sha256=YP7owToABAk_-s7fD5UG0HTc4lamDjdA39JUlLnk3Fg,2574
|
126
126
|
gibson/tests/test_utils.py,sha256=r_y-EG05YTCNtL8MWiAK1KmPsmeoMgypKsQC_lVgOtM,559
|
127
|
-
gibson_cli-0.7.
|
128
|
-
gibson_cli-0.7.
|
129
|
-
gibson_cli-0.7.
|
130
|
-
gibson_cli-0.7.
|
131
|
-
gibson_cli-0.7.
|
127
|
+
gibson_cli-0.7.2.dist-info/METADATA,sha256=7B6rodHdoyquS6V_sR3QoLpYtlUk22S5UigseI_to74,13142
|
128
|
+
gibson_cli-0.7.2.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
129
|
+
gibson_cli-0.7.2.dist-info/entry_points.txt,sha256=j5VUvq3AzL21xPvVC24zMoXFt-I5lUWulr66nL3OAPM,50
|
130
|
+
gibson_cli-0.7.2.dist-info/top_level.txt,sha256=RFaUY7VXGiqkMwo1Rj7pM4kGvxkhhnfo-2LmPpuL_fs,11
|
131
|
+
gibson_cli-0.7.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|