gibson-cli 0.7.4__py3-none-any.whl → 0.7.6__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.
- bin/gibson +26 -0
- gibson/api/BaseApi.py +1 -1
- gibson/api/Cli.py +1 -1
- gibson/command/Build.py +6 -6
- gibson/command/Conf.py +1 -2
- gibson/command/Count.py +1 -1
- gibson/command/Dev.py +5 -8
- gibson/command/Forget.py +1 -1
- gibson/command/Help.py +112 -47
- gibson/command/Modify.py +2 -4
- gibson/command/Question.py +2 -4
- gibson/command/Remove.py +2 -2
- gibson/command/Show.py +3 -5
- gibson/command/Version.py +1 -1
- gibson/command/auth/Auth.py +3 -3
- gibson/command/code/Code.py +10 -10
- gibson/command/code/Entity.py +67 -33
- gibson/command/code/Model.py +2 -4
- gibson/command/code/Schema.py +9 -8
- gibson/command/code/Test.py +1 -3
- gibson/command/importer/Import.py +8 -8
- gibson/command/importer/OpenApi.py +1 -1
- gibson/command/list/Entities.py +25 -37
- gibson/command/list/List.py +3 -3
- gibson/command/list/Projects.py +23 -13
- gibson/command/new/Module.py +2 -2
- gibson/command/new/New.py +4 -4
- gibson/command/rename/Rename.py +1 -1
- gibson/command/rewrite/Rewrite.py +1 -1
- gibson/core/Colors.py +34 -7
- gibson/core/CommandRouter.py +0 -1
- gibson/core/Configuration.py +8 -3
- gibson/core/Conversation.py +17 -24
- gibson/core/Diff.py +34 -0
- gibson/core/Memory.py +1 -0
- gibson/core/Spinner.py +8 -3
- gibson/display/Header.py +3 -1
- gibson/display/WorkspaceHeader.py +2 -2
- gibson/display/tests/test_display_Header.py +2 -2
- gibson/display/tests/test_display_WorkspaceHeader.py +1 -1
- {gibson_cli-0.7.4.dist-info → gibson_cli-0.7.6.dist-info}/METADATA +16 -7
- {gibson_cli-0.7.4.dist-info → gibson_cli-0.7.6.dist-info}/RECORD +45 -44
- {gibson_cli-0.7.4.dist-info → gibson_cli-0.7.6.dist-info}/WHEEL +1 -1
- gibson/command/WarGames.py +0 -34
- {gibson_cli-0.7.4.dist-info → gibson_cli-0.7.6.dist-info}/entry_points.txt +0 -0
- {gibson_cli-0.7.4.dist-info → gibson_cli-0.7.6.dist-info}/top_level.txt +0 -0
gibson/core/Conversation.py
CHANGED
@@ -10,10 +10,9 @@ from gibson.conf.Version import Version
|
|
10
10
|
|
11
11
|
|
12
12
|
class Conversation:
|
13
|
-
DEFAULT_DELAY = 0
|
13
|
+
DEFAULT_DELAY = 0
|
14
14
|
|
15
15
|
def __init__(self):
|
16
|
-
self.__delay = self.DEFAULT_DELAY
|
17
16
|
self.__mute = False
|
18
17
|
|
19
18
|
def c64_boot_loading(self):
|
@@ -101,7 +100,7 @@ class Conversation:
|
|
101
100
|
def message_configuration_added(self, config_path, section):
|
102
101
|
self.type(f"I store my configuration in this file:\n\n{config_path}\n\n")
|
103
102
|
self.type("And I just added this section to the configuration:\n\n")
|
104
|
-
self.type(f"{section}\n"
|
103
|
+
self.type(f"{section}\n")
|
105
104
|
return self
|
106
105
|
|
107
106
|
def message_customize_settings(self):
|
@@ -133,10 +132,10 @@ class Conversation:
|
|
133
132
|
self.type("Login failed, please try again.\n")
|
134
133
|
return self
|
135
134
|
|
136
|
-
def message_login_required(self):
|
135
|
+
def message_login_required(self, configuration):
|
137
136
|
self.type("You need to login before performing this action.\n")
|
138
137
|
self.type(
|
139
|
-
f"Run {Colors.command(
|
138
|
+
f"Run {Colors.command(configuration.command, 'auth', args='login')} and try again.\n"
|
140
139
|
)
|
141
140
|
return self
|
142
141
|
|
@@ -198,15 +197,18 @@ class Conversation:
|
|
198
197
|
else:
|
199
198
|
self.type("Back...again? You know what to do.\n\n")
|
200
199
|
|
201
|
-
def not_sure_no_entity(self,
|
202
|
-
self.display_project(
|
203
|
-
self.type(
|
200
|
+
def not_sure_no_entity(self, configuration, entity_name):
|
201
|
+
self.display_project(configuration.project.name)
|
202
|
+
self.type(
|
203
|
+
f"No entity named {Colors.entity(entity_name)} exists. You can create it by executing:\n\n"
|
204
|
+
)
|
205
|
+
self.type(
|
206
|
+
f"{Colors.command(configuration.command, 'code', args='entity', inputs=entity_name)}\n\n"
|
207
|
+
)
|
204
208
|
return self
|
205
209
|
|
206
210
|
def nothing_to_list(self, whats_being_listed):
|
207
|
-
self.type(
|
208
|
-
f"There is only so much I can do. No {whats_being_listed}, nothing to list."
|
209
|
-
)
|
211
|
+
self.type(f"No {whats_being_listed} to list.")
|
210
212
|
self.newline()
|
211
213
|
|
212
214
|
def pause(self):
|
@@ -216,17 +218,17 @@ class Conversation:
|
|
216
218
|
self.type(f'\nA project named "{project_name}" already exists.\n')
|
217
219
|
self.newline()
|
218
220
|
|
219
|
-
def project_api_key_not_set(self,
|
221
|
+
def project_api_key_not_set(self, configuration):
|
220
222
|
self.type(
|
221
223
|
f"\nYou have not set the API key for your project. Please set the API key by executing:\n"
|
222
224
|
)
|
223
225
|
self.newline()
|
224
226
|
self.type(
|
225
|
-
f"{Colors.command(
|
227
|
+
f"{Colors.command(configuration.command, 'conf', args='api::key', inputs='[API key]')}\n"
|
226
228
|
)
|
227
229
|
self.newline()
|
228
230
|
self.type(
|
229
|
-
f"If you don't have an API key, you can get one by creating a new project at {Colors.link(
|
231
|
+
f"If you don't have an API key, you can get one by creating a new project at {Colors.link(configuration.app_domain() + '/chat')}\n"
|
230
232
|
)
|
231
233
|
self.newline()
|
232
234
|
|
@@ -272,10 +274,6 @@ class Conversation:
|
|
272
274
|
print("+" + "-" * 75 + "+\n")
|
273
275
|
return self
|
274
276
|
|
275
|
-
def set_delay(self, delay):
|
276
|
-
self.__delay = delay
|
277
|
-
return self
|
278
|
-
|
279
277
|
def spin(self, thread: threading.Thread):
|
280
278
|
animation = self.spinner()
|
281
279
|
while thread.is_alive():
|
@@ -289,15 +287,10 @@ class Conversation:
|
|
289
287
|
for cursor in "|/-\\":
|
290
288
|
yield cursor
|
291
289
|
|
292
|
-
def type(self, message, delay=
|
290
|
+
def type(self, message, delay=DEFAULT_DELAY):
|
293
291
|
if self.__mute is True:
|
294
292
|
return self
|
295
293
|
|
296
|
-
if delay is None:
|
297
|
-
delay = self.DEFAULT_DELAY
|
298
|
-
if self.__delay is not None:
|
299
|
-
delay = self.__delay
|
300
|
-
|
301
294
|
try:
|
302
295
|
for char in message:
|
303
296
|
sys.stdout.write(char)
|
gibson/core/Diff.py
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
from difflib import Differ
|
2
|
+
|
3
|
+
from gibson.core.Colors import green, red
|
4
|
+
|
5
|
+
|
6
|
+
# Highlights all lines as additions with a green + at the beginning
|
7
|
+
# This keeps visual clutter to a minimum when showing the diff of an entirely new entity
|
8
|
+
def additions(input: str):
|
9
|
+
lines = input.splitlines(keepends=True)
|
10
|
+
result = []
|
11
|
+
for line in lines:
|
12
|
+
result.append(f"{green('+')} {line}")
|
13
|
+
return "".join(result)
|
14
|
+
|
15
|
+
|
16
|
+
# Highlights the diffs between two strings, showing the additions and removals as distinct colored lines
|
17
|
+
def diff(original: str, modified: str):
|
18
|
+
diffs = list(
|
19
|
+
Differ().compare(
|
20
|
+
original.splitlines(keepends=True), modified.splitlines(keepends=True)
|
21
|
+
)
|
22
|
+
)
|
23
|
+
|
24
|
+
result = []
|
25
|
+
for line in diffs:
|
26
|
+
if line.startswith("+ "):
|
27
|
+
result.append(green(line))
|
28
|
+
elif line.startswith("- "):
|
29
|
+
result.append(red(line))
|
30
|
+
elif line.startswith(" "):
|
31
|
+
result.append(line)
|
32
|
+
# Ignore lines starting with '? ' as they are not needed for this highlighting
|
33
|
+
|
34
|
+
return "".join(result)
|
gibson/core/Memory.py
CHANGED
gibson/core/Spinner.py
CHANGED
@@ -4,7 +4,7 @@ from yaspin.spinners import Spinners
|
|
4
4
|
|
5
5
|
class Spinner:
|
6
6
|
def __init__(
|
7
|
-
self, start_text, success_text=None, fail_text=None, disappearing=False
|
7
|
+
self, start_text="", success_text=None, fail_text=None, disappearing=False
|
8
8
|
):
|
9
9
|
self.success_text = success_text or start_text
|
10
10
|
self.fail_text = fail_text or start_text
|
@@ -32,6 +32,11 @@ class Spinner:
|
|
32
32
|
self.spinner.stop()
|
33
33
|
|
34
34
|
|
35
|
-
class
|
35
|
+
class DisappearingSpinner(Spinner):
|
36
|
+
def __init__(self, start_text="", success_text=None, fail_text=None):
|
37
|
+
super().__init__(start_text, success_text, fail_text, disappearing=True)
|
38
|
+
|
39
|
+
|
40
|
+
class ComputingSpinner(DisappearingSpinner):
|
36
41
|
def __init__(self):
|
37
|
-
super().__init__("Gibson is computing..."
|
42
|
+
super().__init__("Gibson is computing...")
|
gibson/display/Header.py
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
import math
|
2
2
|
|
3
|
+
from gibson.core.Colors import bold
|
4
|
+
|
3
5
|
|
4
6
|
class Header:
|
5
7
|
def render(self, text, colorizer=None):
|
6
8
|
output = text if colorizer is None else colorizer(text)
|
7
9
|
half = math.floor((78 - len(text)) / 2) # 80 line length - 2 spaces
|
8
|
-
header = "/" * half + f" {output} " + "/" * half
|
10
|
+
header = "/" * half + f" {bold(output)} " + "/" * half
|
9
11
|
return header
|
@@ -5,7 +5,7 @@ class WorkspaceHeader:
|
|
5
5
|
def render(self, project_name):
|
6
6
|
return (
|
7
7
|
f"Project {project_name}".ljust(50)
|
8
|
-
+ " " *
|
9
|
-
+ "
|
8
|
+
+ " " * 14
|
9
|
+
+ f"{Colors.bold('PAIR PROGRAMMER')}\n"
|
10
10
|
+ "-" * 79
|
11
11
|
).replace(project_name, Colors.project(project_name))
|
@@ -5,8 +5,8 @@ from gibson.display.Header import Header
|
|
5
5
|
def test_render():
|
6
6
|
text = "abc def ghi"
|
7
7
|
assert Header().render(text) == (
|
8
|
-
"/////////////////////////////////
|
8
|
+
f"///////////////////////////////// {Colors.bold(text)} /////////////////////////////////"
|
9
9
|
)
|
10
10
|
assert Header().render(text, Colors.red) == (
|
11
|
-
f"///////////////////////////////// {Colors.red(text)} /////////////////////////////////"
|
11
|
+
f"///////////////////////////////// {Colors.bold(Colors.red(text))} /////////////////////////////////"
|
12
12
|
)
|
@@ -4,6 +4,6 @@ from gibson.display.WorkspaceHeader import WorkspaceHeader
|
|
4
4
|
|
5
5
|
def test_render():
|
6
6
|
assert WorkspaceHeader().render("abc def ghi") == (
|
7
|
-
f"""Project {Colors.project("abc def ghi")}
|
7
|
+
f"""Project {Colors.project("abc def ghi")} {Colors.bold("PAIR PROGRAMMER")}
|
8
8
|
-------------------------------------------------------------------------------"""
|
9
9
|
)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: gibson-cli
|
3
|
-
Version: 0.7.
|
3
|
+
Version: 0.7.6
|
4
4
|
Summary: Gibson Command Line Interface
|
5
5
|
Author-email: GibsonAI <noc@gibsonai.com>
|
6
6
|
Project-URL: Homepage, https://gibsonai.com/
|
@@ -20,10 +20,10 @@ Requires-Dist: certifi==2024.2.2
|
|
20
20
|
Requires-Dist: charset-normalizer==3.3.2
|
21
21
|
Requires-Dist: click==8.1.7
|
22
22
|
Requires-Dist: dnspython==2.6.1
|
23
|
-
Requires-Dist:
|
23
|
+
Requires-Dist: email_validator==2.1.1
|
24
24
|
Requires-Dist: exceptiongroup==1.2.0
|
25
25
|
Requires-Dist: Faker==24.0.0
|
26
|
-
Requires-Dist:
|
26
|
+
Requires-Dist: faker_sqlalchemy==0.10.2208140
|
27
27
|
Requires-Dist: fastapi==0.111.0
|
28
28
|
Requires-Dist: fastapi-cli==0.0.2
|
29
29
|
Requires-Dist: h11==0.14.0
|
@@ -40,7 +40,7 @@ Requires-Dist: orjson==3.10.3
|
|
40
40
|
Requires-Dist: packaging==23.2
|
41
41
|
Requires-Dist: pluggy==1.4.0
|
42
42
|
Requires-Dist: pydantic==2.6.1
|
43
|
-
Requires-Dist:
|
43
|
+
Requires-Dist: pydantic_core==2.16.2
|
44
44
|
Requires-Dist: pyfiglet==1.0.2
|
45
45
|
Requires-Dist: Pygments==2.18.0
|
46
46
|
Requires-Dist: PyMySQL==1.1.0
|
@@ -50,15 +50,16 @@ Requires-Dist: python-dotenv==1.0.1
|
|
50
50
|
Requires-Dist: python-multipart==0.0.9
|
51
51
|
Requires-Dist: PyYAML==6.0.1
|
52
52
|
Requires-Dist: requests==2.31.0
|
53
|
-
Requires-Dist: rich==13.
|
53
|
+
Requires-Dist: rich==13.9.2
|
54
54
|
Requires-Dist: shellingham==1.5.4
|
55
55
|
Requires-Dist: six==1.16.0
|
56
56
|
Requires-Dist: sniffio==1.3.1
|
57
57
|
Requires-Dist: SQLAlchemy==1.4.41
|
58
58
|
Requires-Dist: starlette==0.37.2
|
59
|
+
Requires-Dist: textual==0.83.0
|
59
60
|
Requires-Dist: tomli==2.0.1
|
60
61
|
Requires-Dist: typer==0.12.3
|
61
|
-
Requires-Dist:
|
62
|
+
Requires-Dist: typing_extensions==4.9.0
|
62
63
|
Requires-Dist: ujson==5.9.0
|
63
64
|
Requires-Dist: urllib3==1.26.6
|
64
65
|
Requires-Dist: uvicorn==0.29.0
|
@@ -84,12 +85,20 @@ Portions of the Gibson backend code are written by Gibson. So far, versus a hum
|
|
84
85
|
|
85
86
|
## Installation / Upgrading
|
86
87
|
|
87
|
-
Install the latest version of the CLI using pip
|
88
|
+
Install the latest version of the CLI using `pip`
|
88
89
|
|
89
90
|
```sh
|
90
91
|
pip3 install gibson-cli --upgrade
|
91
92
|
```
|
92
93
|
|
94
|
+
Note: the first time you install any package from PyPI via `pip` that includes an executable, it is placed in a directory that is likely not in your `PATH`. There are a number of ways to do this, but one method is to run the following command:
|
95
|
+
|
96
|
+
```sh
|
97
|
+
echo 'export PATH="$PATH:${$(which python3)%python3}"' >> ~/.zshrc # or ~/.bashrc
|
98
|
+
```
|
99
|
+
|
100
|
+
You will only need to do this once.
|
101
|
+
|
93
102
|
## Key Terms
|
94
103
|
|
95
104
|
- Dev Mode
|
@@ -1,49 +1,49 @@
|
|
1
1
|
bin/build.sh,sha256=H3TAd349BECbcK3_t_jW9VzoLInMNrXtaLnXMEVanew,49
|
2
2
|
bin/clean.sh,sha256=bVJ1aL-IWconmyZ70OAcF0MHiPzpWCejPiIFJ72yFkM,55
|
3
|
+
bin/gibson,sha256=9OiLT8M9kJHA-gTp0pFc8NYbOe6LrQCs_HXgnD-5D3U,843
|
3
4
|
bin/release.sh,sha256=LxPqH5kxhLKvzHaPRLBlq_ApaK7FHEteH4SzeRenidk,49
|
4
|
-
gibson/api/BaseApi.py,sha256=
|
5
|
-
gibson/api/Cli.py,sha256=
|
5
|
+
gibson/api/BaseApi.py,sha256=aQAsL8d_n6qhQaeS2zjcjsGx3AfoZCqf8mi7pbqWCPg,3040
|
6
|
+
gibson/api/Cli.py,sha256=Qcm5NIQ4x1Wn6KfkrAzwvZeWyt-cKF_xD7_lTWL4Lbw,8071
|
6
7
|
gibson/api/ProjectApi.py,sha256=T7TqtywJjrzFIfARenQUsrH-80x9Oo1pABbFAdlQkI0,356
|
7
8
|
gibson/bin/gibson.py,sha256=56fqPBiF47uJvafHyNbWZ4GorcI0Ut98DCXeS7dt2io,420
|
8
9
|
gibson/command/BaseCommand.py,sha256=mmWUO0FxjMCbv3cHWnnasfAWnU_hTuGHUsRVJ4hUcqM,777
|
9
|
-
gibson/command/Build.py,sha256=
|
10
|
-
gibson/command/Conf.py,sha256=
|
11
|
-
gibson/command/Count.py,sha256=
|
12
|
-
gibson/command/Dev.py,sha256
|
13
|
-
gibson/command/Forget.py,sha256=
|
14
|
-
gibson/command/Help.py,sha256
|
10
|
+
gibson/command/Build.py,sha256=6lMdTa3HZvcbskoX8iJZJnekiJmyNVSbgGmgvh1v-BM,4421
|
11
|
+
gibson/command/Conf.py,sha256=yuAGL6M8MUURG4hW3MAW043c-h_ALw3FHWbyCOR8YTQ,2375
|
12
|
+
gibson/command/Count.py,sha256=QOagwCwDxUHYPivFntr-RWUmlKWKDHgDIGZBfju6VpY,1040
|
13
|
+
gibson/command/Dev.py,sha256=zbZjsgAKAHlNUflEr_Lj2QmRBXNbIGIHrPJ3t5DcFC8,4213
|
14
|
+
gibson/command/Forget.py,sha256=Fm1mUyZkK3HS5fIVgNaC3d97vcWWQVysdDkg4ciE8Bk,1018
|
15
|
+
gibson/command/Help.py,sha256=_-I_hVGAwzb9rioHxVw4-G7vJgvcXdiQxQ1Smohi83k,6289
|
15
16
|
gibson/command/Merge.py,sha256=R5ybMC1tUR5_T8YyUfXutzFa_V9j1_flv0s7KTJRq0M,1061
|
16
|
-
gibson/command/Modify.py,sha256=
|
17
|
-
gibson/command/Question.py,sha256=
|
18
|
-
gibson/command/Remove.py,sha256=
|
19
|
-
gibson/command/Show.py,sha256=
|
17
|
+
gibson/command/Modify.py,sha256=XgTM6EodL7sVhWrnWuTCDx2PNJw3xo-aKI80HCmSpV8,1171
|
18
|
+
gibson/command/Question.py,sha256=g8SwopbzeG14WWP0bc-fXIDVqOOicMzjC9YXoGd-NxY,3830
|
19
|
+
gibson/command/Remove.py,sha256=Ar8-vSNwmCaBupCLY_rcvyU_kWIILU_qVX5njV-tZVw,2478
|
20
|
+
gibson/command/Show.py,sha256=qkkprY2JhA4qOOhYOwAECDnFZwTdqcsKsG4cwB_b-84,1409
|
20
21
|
gibson/command/Tree.py,sha256=BeJ_13xrrRCK5FP2rQHWpDKrshVzte-_D1pNG1GXPIw,3056
|
21
|
-
gibson/command/Version.py,sha256=
|
22
|
-
gibson/command/
|
23
|
-
gibson/command/auth/Auth.py,sha256=U8i5a7hKVjYgiJgS0kbwEmgHPCzRbMkJ8x2g6odQWSM,1204
|
22
|
+
gibson/command/Version.py,sha256=1YjQlQJg9T97XGjzOg61Ybs4ywETZGVJoAp8zeDXbaU,1177
|
23
|
+
gibson/command/auth/Auth.py,sha256=DAvnKq3Ks77QJwuGJCWA9Iv3c0Qq5pHFIpEA-gy6CxM,1086
|
24
24
|
gibson/command/auth/Login.py,sha256=b43OfV76i6aGdOwj1NK64ZOdYlNyc08g3lZGQ_37KDw,437
|
25
25
|
gibson/command/auth/Logout.py,sha256=V01q4TdbiBqCnIrM6IA4T25fO6ws0UpXp42I3pwHZVM,248
|
26
26
|
gibson/command/code/Api.py,sha256=sSvAqEJXdgQjYcu0uiM6ndHE3GnfkfVL6eqP2Otkbww,1002
|
27
27
|
gibson/command/code/Base.py,sha256=YJ2a5Hl0f9NXHUBBPvlt-dUIqEPWQz5vH6-1EHmbFbA,640
|
28
|
-
gibson/command/code/Code.py,sha256=
|
29
|
-
gibson/command/code/Entity.py,sha256=
|
30
|
-
gibson/command/code/Model.py,sha256=
|
28
|
+
gibson/command/code/Code.py,sha256=j6RetYcg3RQcpD7lA0MRDof9A9drHPDeGjdsslQtLvM,3773
|
29
|
+
gibson/command/code/Entity.py,sha256=N1JiJhP9jN4cHODDjOGjBIX-J7doIhe_x3yoofUGQXM,9087
|
30
|
+
gibson/command/code/Model.py,sha256=UWSU3tkscWQFHYGSNR82gsiL1SpnEa4fF7UroaKLFlM,1295
|
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=t1RBuLyb-FkaIz6jBfzoH426B1IK8s_Tps8p3Mh6B6Y,1403
|
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=erI6-d5LPswJ17vhUE-Qg4CnWlETPvfqKea7qvL3yr0,1290
|
35
35
|
gibson/command/code/Tests.py,sha256=HO1WM6pSToVKsuJn7nUA_I5qrfBN0cgKgBzjlm2Qxt8,799
|
36
|
-
gibson/command/importer/Import.py,sha256=
|
37
|
-
gibson/command/importer/OpenApi.py,sha256=
|
38
|
-
gibson/command/list/Entities.py,sha256=
|
39
|
-
gibson/command/list/List.py,sha256=
|
40
|
-
gibson/command/list/Projects.py,sha256=
|
41
|
-
gibson/command/new/Module.py,sha256=
|
42
|
-
gibson/command/new/New.py,sha256
|
36
|
+
gibson/command/importer/Import.py,sha256=z3PI1mGyz1IYggZF5gJSfgvheMkZ_o3o2rdRYGdwBRA,6526
|
37
|
+
gibson/command/importer/OpenApi.py,sha256=5PL4JlhniPhUidOFxKpC9ao_r8C_qIeCoGyliPd10ig,3745
|
38
|
+
gibson/command/list/Entities.py,sha256=o5Wemlq_EpeObNwJHbCqkUT4nccfu_OOZ_gYWzJ051Y,1223
|
39
|
+
gibson/command/list/List.py,sha256=IA9VYuOiFdweg-6HIBZ5hECnMyNxsoU2dKd-gzRNtio,1107
|
40
|
+
gibson/command/list/Projects.py,sha256=8kD_Ny-rSsireW69YigJQia4QzvIRQsPnEUVISL0u0Y,1202
|
41
|
+
gibson/command/new/Module.py,sha256=PCTt6k54XFzgNjNgwY0FKQFzk0YFoaN_KPZF2sfN_V0,1535
|
42
|
+
gibson/command/new/New.py,sha256=cwsBpZAZH-9se26ywAUFyvrc9L9ezwoERIrRLlDkrzU,1519
|
43
43
|
gibson/command/new/Project.py,sha256=Cw1Z6TvPIGhTi7GiQZ2VFjv6hXdpGKQdX9HuAd5gric,759
|
44
44
|
gibson/command/rename/Entity.py,sha256=SaAiN1bYsTOsqjyVzxghK8-N3sAKITThTzS5LEYgppY,1801
|
45
|
-
gibson/command/rename/Rename.py,sha256=
|
46
|
-
gibson/command/rewrite/Rewrite.py,sha256=
|
45
|
+
gibson/command/rename/Rename.py,sha256=Ly-X2XGkH8oyxNUs4qPudmcriPJlOQegZMZN1qw02V0,668
|
46
|
+
gibson/command/rewrite/Rewrite.py,sha256=WXUgO-Xk7riKqdQIiG2yMvOeIzEkd9BEF-HqwSgaqXg,4453
|
47
47
|
gibson/command/tests/test_command_BaseCommand.py,sha256=hSbBfLFI3RTp_DdEHtm5oOLWoN6drI6ucFJypi7xxV8,364
|
48
48
|
gibson/command/tests/test_command_Conf.py,sha256=5eBuCjEfskjb-JujwwUDQLFKjc3uThO4cJj148JoxkE,597
|
49
49
|
gibson/conf/Api.py,sha256=GM9okYs1A8ujPjDwzziOoQpqRYFkr-dz5pgkfb6j4DI,59
|
@@ -64,15 +64,16 @@ 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=
|
68
|
-
gibson/core/CommandRouter.py,sha256=
|
67
|
+
gibson/core/Colors.py,sha256=sllEmJAb2AAUH0e-ZLP1_C8pfz5U_w0fo5kubSH5g1o,3426
|
68
|
+
gibson/core/CommandRouter.py,sha256=w9VNpvWntfAEOWmLwqWlp7W55z2lRR3rr9oHcIjILQ8,3182
|
69
69
|
gibson/core/Completions.py,sha256=Bsh25vnf0pjpJA6MJNR_2MA2s58Ujj8XolR8fm8AQ_s,1197
|
70
|
-
gibson/core/Configuration.py,sha256=
|
71
|
-
gibson/core/Conversation.py,sha256=
|
70
|
+
gibson/core/Configuration.py,sha256=ryCDvuLzJDIbnjW-ty6HYLuMn0U2EYU__LdsMbu6-KE,15968
|
71
|
+
gibson/core/Conversation.py,sha256=cl9dHfQDocB78GF3IyS3jve8iYBSXmeF4hwVAPY-vCE,10239
|
72
|
+
gibson/core/Diff.py,sha256=onUJ5_0_S1vKAY_oFgX4vmwQo4byrnXLV4w7QSNA8fY,1071
|
72
73
|
gibson/core/Env.py,sha256=08dZRHzzR0ahrbM4S0bXC7V1xhYQkT8Zefs00qUHf0U,498
|
73
|
-
gibson/core/Memory.py,sha256=
|
74
|
+
gibson/core/Memory.py,sha256=3ItGef4RCfBplbjxhNyid8eiPVKHmW-DKAMFeYujqN0,4063
|
74
75
|
gibson/core/PythonPath.py,sha256=p1q7n_5KnPvA8XbxJyvqC2vrIdEdTiMr6vRU9yj77Cs,1567
|
75
|
-
gibson/core/Spinner.py,sha256=
|
76
|
+
gibson/core/Spinner.py,sha256=_BO26dOa3h0ZCNaPgMvwOh7K6DUiDv8LgP7QMR3EvNw,1225
|
76
77
|
gibson/core/TimeKeeper.py,sha256=dSeIgGOQJOi0ULlFGAigroGTBfAZXrvP9a1Op_jIsZ0,300
|
77
78
|
gibson/core/utils.py,sha256=KTnPvA3sUYnLFTZG7Tke5YEdls8Da0rNbeaOm8hapiU,408
|
78
79
|
gibson/data/bash-completion.tmpl,sha256=-w5y4g3ZYN-7eBlIzu7Kh-RM-X2kYCf0Yp6RXNQozsM,2657
|
@@ -83,12 +84,12 @@ gibson/data/postgresql/default-table.tmpl,sha256=4xON0XyY55OiZhZmJ4RemnKMNFLniuS
|
|
83
84
|
gibson/db/TableExceptions.py,sha256=LGDPxAVjXmb0EJSFpHC6twHoFzv7nFsFzTj2DXNabQU,196
|
84
85
|
gibson/db/tests/test_db_TableExceptions.py,sha256=tNzn6SybygWXSuj-3i_s6t9LOo1P8gI9S4wSz4UxeCk,312
|
85
86
|
gibson/dev/Dev.py,sha256=O-GiMATpVd9kYHsVfbHaC-Omh17HQ8FalFQNelfxh2s,2544
|
86
|
-
gibson/display/Header.py,sha256=
|
87
|
+
gibson/display/Header.py,sha256=OA-E2IWa7aBoHWrzuyrD8D4t-sXWXiF4J_1a9cUXtKk,335
|
87
88
|
gibson/display/WorkspaceFooter.py,sha256=Mh18foAb33O1adnecLe7elIqBN8u2ewaSURl99qlcvE,415
|
88
|
-
gibson/display/WorkspaceHeader.py,sha256=
|
89
|
-
gibson/display/tests/test_display_Header.py,sha256=
|
89
|
+
gibson/display/WorkspaceHeader.py,sha256=143BCT724Ei8B1vF7mJ3iZ--OrE1ALBrrUAGMtxjogM,322
|
90
|
+
gibson/display/tests/test_display_Header.py,sha256=q1iPm91shdoayqmtg81loFlTcivgQ1_O84cvWrviqOQ,433
|
90
91
|
gibson/display/tests/test_display_WorkspaceFooter.py,sha256=HBcZ48UwEsJsNEXPcPH8UiuF0Wa15vffEkJILNhwPyw,471
|
91
|
-
gibson/display/tests/test_display_WorkspaceHeader.py,sha256=
|
92
|
+
gibson/display/tests/test_display_WorkspaceHeader.py,sha256=QAbjAD89LK8dbTadAlAs1nXR5FjqaOZgQAv2SU3PHzU,390
|
92
93
|
gibson/lang/Python.py,sha256=WNbCTFhDh9qXVbeySyfaP-6m-c0wllSCZw8A-r_Z0Oo,1764
|
93
94
|
gibson/lang/tests/test_lang_Python.py,sha256=YpdqYOGAssg-jP9GuzfoU4Y4L7Boj0vAUAJgjuZvedo,1862
|
94
95
|
gibson/services/auth/Server.py,sha256=DfemWNZlZ3rDE6PsAAvDP0anK7czwhiadX6Wilo4agY,1936
|
@@ -125,8 +126,8 @@ gibson/structure/tests/test_structure_Entity.py,sha256=askl8w0p1uqET6HKBogJlRcPP
|
|
125
126
|
gibson/tests/test_Env.py,sha256=DPWmP0-aEelducq9bAwv7rKoY2NjWXUeCrzfJDQkn2M,369
|
126
127
|
gibson/tests/test_Memory.py,sha256=YP7owToABAk_-s7fD5UG0HTc4lamDjdA39JUlLnk3Fg,2574
|
127
128
|
gibson/tests/test_utils.py,sha256=r_y-EG05YTCNtL8MWiAK1KmPsmeoMgypKsQC_lVgOtM,559
|
128
|
-
gibson_cli-0.7.
|
129
|
-
gibson_cli-0.7.
|
130
|
-
gibson_cli-0.7.
|
131
|
-
gibson_cli-0.7.
|
132
|
-
gibson_cli-0.7.
|
129
|
+
gibson_cli-0.7.6.dist-info/METADATA,sha256=l4_cKuK-vskymWf4WUJ_7y9_rcDeg_X9u57ILFFK3_0,13578
|
130
|
+
gibson_cli-0.7.6.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
131
|
+
gibson_cli-0.7.6.dist-info/entry_points.txt,sha256=j5VUvq3AzL21xPvVC24zMoXFt-I5lUWulr66nL3OAPM,50
|
132
|
+
gibson_cli-0.7.6.dist-info/top_level.txt,sha256=RFaUY7VXGiqkMwo1Rj7pM4kGvxkhhnfo-2LmPpuL_fs,11
|
133
|
+
gibson_cli-0.7.6.dist-info/RECORD,,
|
gibson/command/WarGames.py
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
import hashlib
|
2
|
-
import sys
|
3
|
-
|
4
|
-
from gibson.command.BaseCommand import BaseCommand
|
5
|
-
from gibson.core.Conversation import Conversation
|
6
|
-
|
7
|
-
|
8
|
-
class WarGames(BaseCommand):
|
9
|
-
def execute(self):
|
10
|
-
if hashlib.sha256(" ".join(sys.argv[1:]).lower().encode()).hexdigest() != (
|
11
|
-
"17dca0c0f6b4fe47e18b34551e3e65d1b91b88c94011be4de552bb64e443f6fc"
|
12
|
-
):
|
13
|
-
return False
|
14
|
-
|
15
|
-
self.conversation.newline()
|
16
|
-
self.conversation.type("FALKEN'S WEB\n")
|
17
|
-
self.conversation.type("BLACK JACK\n")
|
18
|
-
self.conversation.type("GIN RUMMY\n")
|
19
|
-
self.conversation.type("HEARTS\n")
|
20
|
-
self.conversation.type("BRIDGE\n")
|
21
|
-
self.conversation.type("CHECKERS\n")
|
22
|
-
self.conversation.type("CHESS\n")
|
23
|
-
self.conversation.type("POKER\n")
|
24
|
-
self.conversation.type("FIGHTER COMBAT\n")
|
25
|
-
self.conversation.type("GUERRILLA ENGAGEMENT\n")
|
26
|
-
self.conversation.type("DESERT WARFARE\n")
|
27
|
-
self.conversation.type("AIR-TO-GROUND ACTIONS\n")
|
28
|
-
self.conversation.type("THEATERWIDE TACTICAL WARFARE\n")
|
29
|
-
self.conversation.type("THEATERWIDE BIOTOXIC AND CHEMICAL WARFARE\n")
|
30
|
-
self.conversation.newline()
|
31
|
-
self.conversation.type("GLOBAL THERMONUCLEAR WAR\n", delay=0.2)
|
32
|
-
self.conversation.newline()
|
33
|
-
|
34
|
-
return True
|
File without changes
|
File without changes
|