gibson-cli 0.3.5__py3-none-any.whl → 0.5.0__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.
Files changed (41) hide show
  1. gibson/api/Cli.py +16 -1
  2. gibson/command/Build.py +14 -4
  3. gibson/command/Code.py +7 -7
  4. gibson/command/Conf.py +14 -11
  5. gibson/command/Count.py +6 -4
  6. gibson/command/Dev.py +9 -4
  7. gibson/command/Forget.py +12 -13
  8. gibson/command/Help.py +125 -0
  9. gibson/command/Import.py +18 -8
  10. gibson/command/List.py +7 -3
  11. gibson/command/Merge.py +2 -4
  12. gibson/command/Model.py +4 -4
  13. gibson/command/Modify.py +4 -6
  14. gibson/command/Module.py +5 -6
  15. gibson/command/New.py +3 -5
  16. gibson/command/OpenApi.py +8 -7
  17. gibson/command/Question.py +16 -8
  18. gibson/command/Remove.py +5 -4
  19. gibson/command/Rename.py +5 -5
  20. gibson/command/Schema.py +4 -4
  21. gibson/command/Show.py +9 -6
  22. gibson/command/Test.py +5 -5
  23. gibson/command/Tree.py +2 -1
  24. gibson/command/auth/Auth.py +2 -1
  25. gibson/command/rewrite/Rewrite.py +5 -3
  26. gibson/conf/Paths.py +2 -0
  27. gibson/core/Colors.py +8 -0
  28. gibson/core/CommandRouter.py +7 -122
  29. gibson/core/Completions.py +3 -2
  30. gibson/core/Configuration.py +77 -84
  31. gibson/core/Conversation.py +2 -1
  32. gibson/core/Env.py +3 -0
  33. gibson/core/Memory.py +4 -3
  34. gibson/core/PythonPath.py +52 -0
  35. gibson/services/auth/Server.py +1 -1
  36. gibson/services/code/customization/BaseCustomization.py +1 -1
  37. {gibson_cli-0.3.5.dist-info → gibson_cli-0.5.0.dist-info}/METADATA +7 -5
  38. {gibson_cli-0.3.5.dist-info → gibson_cli-0.5.0.dist-info}/RECORD +41 -39
  39. {gibson_cli-0.3.5.dist-info → gibson_cli-0.5.0.dist-info}/WHEEL +1 -1
  40. {gibson_cli-0.3.5.dist-info → gibson_cli-0.5.0.dist-info}/entry_points.txt +0 -0
  41. {gibson_cli-0.3.5.dist-info → gibson_cli-0.5.0.dist-info}/top_level.txt +0 -0
@@ -11,12 +11,13 @@ from gibson.conf.Platform import Platform
11
11
  from gibson.conf.Project import Project
12
12
  from gibson.core.Completions import Completions
13
13
  from gibson.core.Conversation import Conversation
14
+ from gibson.core.PythonPath import PythonPath
14
15
  from gibson.services.auth.Server import Server as AuthServer
15
16
 
16
17
 
17
18
  class Configuration:
18
19
  VERSION = 2
19
- API_ENV = os.environ.get("GIBSONAI_API_ENV", "staging")
20
+ API_ENV = os.environ.get("GIBSONAI_API_ENV", "production")
20
21
 
21
22
  def __init__(self):
22
23
  self.command = None
@@ -25,18 +26,17 @@ class Configuration:
25
26
 
26
27
  self.conversation = Conversation()
27
28
  self.platform = Platform()
28
- self.project = Project()
29
+ self.project = None
29
30
  self.paths = ConfigPaths()
30
31
  self.settings = None
31
32
 
32
- self.__check_configuration_path()
33
-
34
33
  self.set_config_paths()
35
- self.__check_for_configuration_migration()
36
-
37
34
  self.read_config()
35
+ self.__check_for_configuration_migration()
36
+ self.setup_project()
38
37
 
39
38
  Completions().write().install()
39
+ PythonPath().write().install()
40
40
 
41
41
  def api_domain(self):
42
42
  domains = {
@@ -62,6 +62,7 @@ class Configuration:
62
62
  }[self.API_ENV]
63
63
 
64
64
  def append_project_to_conf(self, project_name, project_description):
65
+ self.project = Project()
65
66
  self.project.api.key = "FIXME"
66
67
  self.project.name = project_name
67
68
  self.project.datastore.type = "mysql"
@@ -194,37 +195,9 @@ class Configuration:
194
195
 
195
196
  return value
196
197
 
197
- def __check_configuration_path(self):
198
- config_path = os.environ.get("GIBSONAI_CONFIG_PATH", None)
199
- if config_path is None:
200
- return self
201
-
202
- if not os.path.isfile(f"{config_path}/config"):
203
- self.conversation.newline()
204
- self.conversation.type(
205
- "[MIGRATION] environment variable detected; moving configuration to\n"
206
- + f" {config_path}\n\n"
207
- )
208
-
209
- self.set_config_paths(ignore_env_vars=True)
210
- self.read_config()
211
-
212
- old_memory_path = self.project.paths.memory
213
-
214
- self.set_config_paths()
215
- self.create_project_memory()
216
- self.write_config()
217
-
218
- shutil.copytree(
219
- f"{old_memory_path}/{self.project.name}",
220
- f"{self.project.paths.memory}/{self.project.name}",
221
- )
222
-
223
- return self
224
-
225
198
  def __check_for_configuration_migration(self):
226
199
  try:
227
- with open(self.project.paths.config, "r") as f:
200
+ with open(self.paths.config, "r") as f:
228
201
  contents = f.read()
229
202
  except FileNotFoundError:
230
203
  return self
@@ -275,12 +248,28 @@ class Configuration:
275
248
  return self
276
249
 
277
250
  def create_project_memory(self):
251
+ self.ensure_project()
278
252
  try:
279
253
  os.makedirs(self.project.paths.memory)
280
254
  except OSError as e:
281
255
  if e.errno != errno.EEXIST:
282
256
  raise
283
257
 
258
+ def display_project(self):
259
+ if self.project is not None:
260
+ self.conversation.display_project(self.project.name)
261
+
262
+ def ensure_project(self):
263
+ if self.project is None:
264
+ self.conversation.gibsonai_project_not_set(self)
265
+ exit(1)
266
+
267
+ if self.project.name not in self.settings:
268
+ self.conversation.unrecognized_project(self, self.project.name)
269
+ exit(1)
270
+
271
+ return self
272
+
284
273
  def get_access_token(self):
285
274
  try:
286
275
  with open(f"{self.paths.auth}/{self.API_ENV}", "r") as f:
@@ -292,6 +281,7 @@ class Configuration:
292
281
  return token["access_token"]
293
282
 
294
283
  def get_my_settings(self):
284
+ self.ensure_project()
295
285
  return self.settings[self.project.name]
296
286
 
297
287
  def get_refresh_token(self):
@@ -324,9 +314,7 @@ class Configuration:
324
314
  section = self.append_project_to_conf(project_name, project_description)
325
315
  self.create_project_memory()
326
316
 
327
- self.conversation.message_configuration_added(
328
- self.project.paths.config, section
329
- )
317
+ self.conversation.message_configuration_added(self.paths.config, section)
330
318
  self.conversation.wait()
331
319
  self.conversation.message_customize_settings()
332
320
 
@@ -346,11 +334,11 @@ class Configuration:
346
334
  self.conversation.newline()
347
335
  self.conversation.type("We're opening your web browser to the login page.\n")
348
336
  self.conversation.type("Please log in and then return to this window.\n")
337
+ self.conversation.newline()
349
338
  self.conversation.type(
350
339
  "If your browser does not open automatically, visit this URL:\n"
351
340
  )
352
341
  self.conversation.type(f"{server.get_url()}\n")
353
- self.conversation.newline()
354
342
 
355
343
  access_token, refresh_token = server.get_tokens()
356
344
  if access_token is None or refresh_token is None:
@@ -361,30 +349,60 @@ class Configuration:
361
349
 
362
350
  def read_config(self):
363
351
  try:
364
- with open(self.project.paths.config, "r") as f:
352
+ with open(self.paths.config, "r") as f:
365
353
  contents = f.read()
366
354
  except FileNotFoundError:
367
355
  return self
368
356
 
369
357
  self.settings = json.loads(contents)
370
- if self.settings is None:
371
- return self
372
358
 
359
+ return self
360
+
361
+ def set_auth_tokens(self, access_token, refresh_token):
362
+ try:
363
+ os.mkdir(self.paths.auth)
364
+ except FileExistsError:
365
+ pass
366
+
367
+ with open(f"{self.paths.auth}/{self.API_ENV}", "w") as f:
368
+ data = {"access_token": access_token, "refresh_token": refresh_token}
369
+ json.dump(data, f, indent=2)
370
+
371
+ def set_config_paths(self):
372
+ gibson_config_dir = ".gibsonai"
373
+ user_home = os.environ.get("HOME")
374
+ if user_home is None:
375
+ raise RuntimeError(
376
+ "Gibson here. Please set your HOME environment variable."
377
+ )
378
+
379
+ self.paths.top = f"{user_home}/{gibson_config_dir}"
380
+ self.paths.auth = f"{self.paths.top}/auth"
381
+ self.paths.config = f"{self.paths.top}/config"
382
+
383
+ def set_project_env(self, project_name):
384
+ os.environ["GIBSONAI_PROJECT"] = project_name
385
+ return self
386
+
387
+ def setup_project(self):
388
+ config = None
373
389
  if len(self.settings.keys()) == 1:
374
390
  config = list(self.settings.values())[0]
391
+ self.project = Project()
375
392
  self.project.name = list(self.settings.keys())[0]
376
393
  else:
377
394
  gibsonai_project = os.environ.get("GIBSONAI_PROJECT")
378
395
  if gibsonai_project is None:
379
- self.conversation.gibsonai_project_not_set(self)
380
- exit(1)
396
+ # TODO: traverse fs and attempt to find a .gibsonai/config file to use
397
+ pass
381
398
 
382
- if gibsonai_project not in self.settings:
383
- self.conversation.unrecognized_project(self, gibsonai_project)
384
- exit(1)
399
+ if gibsonai_project is not None:
400
+ self.project = Project()
401
+ self.project.name = gibsonai_project
402
+ config = self.settings[gibsonai_project]
385
403
 
386
- config = self.settings[gibsonai_project]
387
- self.project.name = gibsonai_project
404
+ if config is None or self.project is None:
405
+ return self
388
406
 
389
407
  self.project.api.key = config["api"]["key"]
390
408
  self.project.code.custom.model_class = config["code"]["custom"]["model"][
@@ -409,45 +427,19 @@ class Configuration:
409
427
  self.project.description = config["meta"]["project"]["description"]
410
428
  self.project.modeler.version = config["modeler"]["version"]
411
429
 
412
- return self
413
-
414
- def set_auth_tokens(self, access_token, refresh_token):
415
- try:
416
- os.mkdir(self.paths.auth)
417
- except FileExistsError:
418
- pass
419
-
420
- with open(f"{self.paths.auth}/{self.API_ENV}", "w") as f:
421
- data = {"access_token": access_token, "refresh_token": refresh_token}
422
- json.dump(data, f, indent=2)
423
-
424
- def set_config_paths(self, ignore_env_vars=False):
425
- user_home = os.environ.get("HOME")
426
- gibson_config_dir = ".gibsonai"
427
- self.paths.auth = f"{user_home}/{gibson_config_dir}/auth"
428
-
429
- project_config_path = None
430
- if ignore_env_vars is False:
431
- project_config_path = os.environ.get("GIBSONAI_CONFIG_PATH", None)
432
-
433
- if project_config_path is None:
434
- project_config_path = user_home
435
- if project_config_path is None:
436
- raise RuntimeError(
437
- "Gibson here. Please set your HOME environment variable."
438
- )
439
-
440
- project_config_path += f"/{gibson_config_dir}"
430
+ # TODO: needs to be fetched from project configuration
431
+ config_path = os.environ.get("GIBSONAI_CONFIG_PATH", None)
432
+ if config_path is None:
433
+ config_path = self.paths.top
441
434
 
442
- self.project.paths.top = project_config_path
443
- self.project.paths.config = f"{self.project.paths.top}/config"
435
+ self.project.paths.top = config_path
444
436
  self.project.paths.memory = f"{self.project.paths.top}/memory"
437
+ self.project.paths.config = f"{self.project.paths.top}/config"
445
438
 
446
- def set_project_env(self, project_name):
447
- os.environ["GIBSONAI_PROJECT"] = project_name
448
439
  return self
449
440
 
450
441
  def turn_dev_off(self):
442
+ self.ensure_project()
451
443
  self.settings[self.project.name]["dev"]["active"] = False
452
444
  self.write_config()
453
445
  return self
@@ -455,6 +447,7 @@ class Configuration:
455
447
  def turn_dev_on(
456
448
  self, api_path, api_prefix, api_version, base_path, model_path, schema_path
457
449
  ):
450
+ self.ensure_project()
458
451
  self.settings[self.project.name]["dev"]["active"] = True
459
452
  self.settings[self.project.name]["dev"]["api"]["path"] = api_path
460
453
  self.settings[self.project.name]["dev"]["api"]["prefix"] = api_prefix
@@ -467,11 +460,11 @@ class Configuration:
467
460
 
468
461
  def write_config(self):
469
462
  try:
470
- os.mkdir("/".join(self.project.paths.config.split("/")[0:-1]))
463
+ os.mkdir("/".join(self.paths.config.split("/")[0:-1]))
471
464
  except FileExistsError:
472
465
  pass
473
466
 
474
- with open(self.project.paths.config, "w") as f:
467
+ with open(self.paths.config, "w") as f:
475
468
  json.dump(self.settings, f, indent=2)
476
469
 
477
470
  self.read_config()
@@ -6,6 +6,7 @@ import time
6
6
  import pyfiglet
7
7
 
8
8
  from gibson.conf.Version import Version
9
+ from gibson.core.Colors import project
9
10
 
10
11
 
11
12
  class Conversation:
@@ -72,7 +73,7 @@ class Conversation:
72
73
  self.newline()
73
74
 
74
75
  def display_project(self, project_name):
75
- self.type(f"<> Project {project_name}\n\n")
76
+ self.type(f"<> Project {project(project_name)}\n\n")
76
77
 
77
78
  def entities_hijacked(self):
78
79
  self.type(
gibson/core/Env.py CHANGED
@@ -4,6 +4,9 @@ from gibson.lang.Python import Python
4
4
 
5
5
  class Env:
6
6
  def verify(self, configuration: Configuration):
7
+ if configuration.project is None:
8
+ return self
9
+
7
10
  if configuration.project.code.language == "python":
8
11
  Python().make_import_path(configuration.project.dev.base.path)
9
12
  else:
gibson/core/Memory.py CHANGED
@@ -21,9 +21,10 @@ class Memory:
21
21
  return self
22
22
 
23
23
  def bootstrap(self):
24
- self.__make_memory_dir()
25
- self.entities = self.recall_entities()
26
- self.last = self.recall_last()
24
+ if self.configuration.project is not None:
25
+ self.__make_memory_dir()
26
+ self.entities = self.recall_entities()
27
+ self.last = self.recall_last()
27
28
 
28
29
  def __forget(self, file):
29
30
  try:
@@ -0,0 +1,52 @@
1
+ import json
2
+ import os
3
+
4
+
5
+ class PythonPath:
6
+ def __init__(self):
7
+ self.user_home = os.environ.get("HOME")
8
+ self.gibson_config = ".gibsonai"
9
+ self.file_name = "python_path"
10
+
11
+ def install(self):
12
+ python_path_location = f"$HOME/{self.gibson_config}/{self.file_name}"
13
+ installation = f"""\n[ -s "{python_path_location}" ] && \\. "{python_path_location}" # Setup pythonpath for gibson projects\n"""
14
+
15
+ for file in [f"{self.user_home}/.bashrc", f"{self.user_home}/.zshrc"]:
16
+ with open(file, "a+") as f:
17
+ f.seek(0)
18
+ if python_path_location not in f.read():
19
+ f.write(installation)
20
+
21
+ return self
22
+
23
+ def write(self):
24
+ try:
25
+ with open(f"{self.user_home}/{self.gibson_config}/config", "r") as f:
26
+ config = json.loads(f.read())
27
+ except:
28
+ return self
29
+
30
+ project_paths = filter(
31
+ lambda x: x is not None,
32
+ [
33
+ config.get(project).get("dev", {}).get("base", {}).get("path")
34
+ for project in config
35
+ ],
36
+ )
37
+
38
+ if not project_paths:
39
+ return self
40
+
41
+ try:
42
+ os.mkdir(f"{self.user_home}/{self.gibson_config}")
43
+ except FileExistsError:
44
+ pass
45
+
46
+ contents = "\n".join(
47
+ f"export PYTHONPATH=$PYTHONPATH:{path}" for path in project_paths
48
+ )
49
+ with open(f"{self.user_home}/{self.gibson_config}/{self.file_name}", "w") as f:
50
+ f.write(contents)
51
+
52
+ return self
@@ -20,7 +20,7 @@ class Handler(BaseHTTPRequestHandler):
20
20
  self.server.refresh_token = refresh_token
21
21
 
22
22
  self.send_response(302)
23
- self.send_header("Location", f"{self.server.app_domain}/chat")
23
+ self.send_header("Location", f"{self.server.app_domain}/signup/cli/success")
24
24
  self.end_headers()
25
25
  self.server._stop()
26
26
 
@@ -10,7 +10,7 @@ class BaseCustomization:
10
10
  self.configuration = configuration
11
11
 
12
12
  def _get_file_name(self):
13
- return NotImplementedError
13
+ raise NotImplementedError
14
14
 
15
15
  def preserve(self):
16
16
  file_name = self._get_file_name()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gibson-cli
3
- Version: 0.3.5
3
+ Version: 0.5.0
4
4
  Summary: Gibson Command Line Interface
5
5
  Author-email: GibsonAI <noc@gibsonai.com>
6
6
  Project-URL: Homepage, https://gibsonai.com/
@@ -30,10 +30,12 @@ Gibson currently works on projects that use Python 3.9 or greater, MySQL, SQLAlc
30
30
 
31
31
  Portions of the Gibson backend code are written by Gibson. So far, versus a human developer, it has coded 66% of the software and did so in seconds. To get started, read the instructions here.
32
32
 
33
- ## Installation
33
+ ## Installation / Upgrading
34
+
35
+ Install the latest version of the CLI using pip.
34
36
 
35
37
  ```sh
36
- pip3 install gibson-cli
38
+ pip3 install gibson-cli --upgrade
37
39
  ```
38
40
 
39
41
  ## Key Terms
@@ -93,7 +95,7 @@ Run `gibson auth login` to login to Gibson with your Google account.
93
95
 
94
96
  While in beta, you have to acquire an API manually:
95
97
 
96
- - Go to <https://staging.gibsonai.com/>.
98
+ - Go to <https://app.gibsonai.com/>.
97
99
  - Chat with Gibson and create a new project.
98
100
  - When your project is complete Gibson will email you the API key.
99
101
  - gibson conf api::key [API key]
@@ -256,7 +258,7 @@ For example, you might provide class name = `MyBaseModel` and import path = `pro
256
258
 
257
259
  ### Building a Project End-to-End Using AI
258
260
 
259
- - Go to <https://staging.gibsonai.com/>.
261
+ - Go to <https://app.gibsonai.com/>.
260
262
  - Chat with Gibson and create a new project.
261
263
  - When your project is complete Gibson will email you the API key.
262
264
  - `gibson conf api::key [API key]`
@@ -1,39 +1,40 @@
1
1
  bin/build.sh,sha256=H3TAd349BECbcK3_t_jW9VzoLInMNrXtaLnXMEVanew,49
2
2
  bin/release.sh,sha256=LxPqH5kxhLKvzHaPRLBlq_ApaK7FHEteH4SzeRenidk,49
3
3
  gibson/api/BaseApi.py,sha256=l_EsHdKRz-cXGXd3Ju5IFwmCRUkunba6ckB957S9DAk,2696
4
- gibson/api/Cli.py,sha256=n2mmhZs1MFKhrDRVRWkDeHJtsun5ZwGfpTWpPngpkKE,7160
4
+ gibson/api/Cli.py,sha256=ZUB8679s2L1TDQVLrgjxNCT-W8rwnHH7BMD0WEyf6Xs,7815
5
5
  gibson/bin/gibson.py,sha256=N1mAWaww9pw8s5u0et87FC5cFHVU6JzN4Kls3lDn-xw,354
6
6
  gibson/command/BaseCommand.py,sha256=mmWUO0FxjMCbv3cHWnnasfAWnU_hTuGHUsRVJ4hUcqM,777
7
- gibson/command/Build.py,sha256=ATKN6HJs5egheDKJ_7eYxuxdYLDJHEZjEZLZ5bdlS54,2571
8
- gibson/command/Code.py,sha256=02zg8YrOMZPap_7d_IgXzTWKnuiKSRObWNRE65D1fZQ,6830
9
- gibson/command/Conf.py,sha256=Wy8ybYAAnEtO6qPUyhVPAZdMayI0GHZNjMDTKSaIKsU,2390
10
- gibson/command/Count.py,sha256=xsYPRXP8TrW0T8P6uhjuovc28oR2iQgukL81eLoMpOc,976
11
- gibson/command/Dev.py,sha256=Vc9gnJ2gl_vmlS51Wksk7z46I4i3MGkEAS3ZCg-aEI0,4238
12
- gibson/command/Forget.py,sha256=iM8SdUMMdiw8Vbn3bJ6dgdnNXg-MIt3VM4G1ix3Kei4,1058
13
- gibson/command/Import.py,sha256=8atZJKqrEuJwIwh-AU_YmcFYdT46d_QazOxwR3pI9_w,3696
14
- gibson/command/List.py,sha256=QgY2ycBxd6-z-qwXJ6JbCL1W_E0EiwAC8lTYCZ-Xgvg,2174
15
- gibson/command/Merge.py,sha256=zJme8FIVbabJCPFhRjR1J3R7TDoqtGJtLsnErkx5Uw0,1089
16
- gibson/command/Model.py,sha256=wBGBCdTJo7Y1nSzGyFbXuoV6vSNQVYm5V8I9CPuYuV8,1229
17
- gibson/command/Modify.py,sha256=y1rnHW9UEe9Y2u6xDy1tmO-ys4kZLSGyknlhzPsXqdE,1276
18
- gibson/command/Module.py,sha256=ZaiRiv_kVCRpWwwpDyDrvloocwH_wcL0XXyRldIpj00,1280
19
- gibson/command/New.py,sha256=aiWzoZc3Zj7OC2GhnS4pzPHZ-sduDV1-TOng2giE7TM,1157
20
- gibson/command/OpenApi.py,sha256=c9LM_sXJr5W7hInur02kNGbUK9i3ZBROzKgy_oThXWI,4341
21
- gibson/command/Question.py,sha256=bfAkfhSdNAfFqWp18Nv4CzdtFTCDW5BQaLxEci6V8H0,3748
22
- gibson/command/Remove.py,sha256=bM3G-1iRU_7OdaGBTCGmTTEtScVWnptc5aHMvUnAY5k,2398
23
- gibson/command/Rename.py,sha256=TSwGTPBAmWE06SMtCtg6TX9aBNOX--kiiTS-0xj-epY,2226
24
- gibson/command/Schema.py,sha256=w47Z2klLAUSGx8Ln6iCWCVuZtz6cHBMc_i4ru7DqhyI,1233
25
- gibson/command/Show.py,sha256=oNGKeNfEo6Qz1n4rJIRjlLuHWHWs5lB0TWE8Vn3hE2U,1190
26
- gibson/command/Test.py,sha256=7M7zVo9_dPGZ_hWlN9HcvuqHdpw1-Lc4--eK2fS7j10,1228
27
- gibson/command/Tree.py,sha256=JWvUimeHWY5-6vEh6axTkhAdI-dVTxbKSjx_4isAAx8,3041
7
+ gibson/command/Build.py,sha256=eypLUpZb3bw9LJ3s4uANZNbMNhshj90g94iQTreY74w,2851
8
+ gibson/command/Code.py,sha256=Tb-eVAODHAbTqQldC2vR30YhrQvM2CtsiXt34RUoS3I,6913
9
+ gibson/command/Conf.py,sha256=z7G-81GpPUGZxjuE0HJn3ltHBIScqy4-rzinLYCyiLA,2467
10
+ gibson/command/Count.py,sha256=FInot7Wz-lClKM1gfKgZXwBVIsTR0Gde0cMjYrCitog,1086
11
+ gibson/command/Dev.py,sha256=KXaWeAMGifrxb4uyBJ5W0v9XIYeG8_C1Dw8TiAeOlHE,4358
12
+ gibson/command/Forget.py,sha256=2-XpPqzjqhdGvilMitZECVBegDzlV12kDiR0xrxEVyY,1064
13
+ gibson/command/Help.py,sha256=vxPRL50uBpPSmut_5M_2bQyZUhkGjfIcV-XLjPKKV0s,4873
14
+ gibson/command/Import.py,sha256=4VeDtQNWf20j2tSvAMjU9r-gB05fD3hh6Mfxdp5B_oI,4174
15
+ gibson/command/List.py,sha256=XNL0p3WvGCjuWeFD_24VO5d2sflXfkk_CvAbXrcOMYI,2318
16
+ gibson/command/Merge.py,sha256=AKhyImy_MH8sy7m9Anh1SKBINvLrRmt91fFE4oVPg7k,1060
17
+ gibson/command/Model.py,sha256=rare94DN7Cij4IizBscwl6TBQvQy_RkVt8SgnUBZW1I,1278
18
+ gibson/command/Modify.py,sha256=jYx8ojVoecPAX_YasvpGGqq2d0dl2FfCB3WAlSxtdtM,1269
19
+ gibson/command/Module.py,sha256=m2vEbYsZgb9H5jUsDcle4amoclvSMy1u75EVrARTy4I,1247
20
+ gibson/command/New.py,sha256=YEnH9zVXGvSL5xb07EIimRWduBRYKpuBclZJyuT6T64,1179
21
+ gibson/command/OpenApi.py,sha256=mdjgzDgJTu8aMuI1bojExEAstCQuFzhFCnutNSm9z14,4313
22
+ gibson/command/Question.py,sha256=KHFDLI3ItIFg3Qeeamy_zaXSZQyFBXdl3LEr4iq8FOg,3986
23
+ gibson/command/Remove.py,sha256=i-ofK_uQfkgrP63vYaBxDTIhzs_-4p0FFaqd3f4fJvo,2435
24
+ gibson/command/Rename.py,sha256=VUp8vrj3ugOG9i6CgXw8putbZAUsSw6iC8J1FBB05nQ,2245
25
+ gibson/command/Schema.py,sha256=NAOp6RY4apSArPE7ZljT150AIQjpm88C6N_SRIophWo,1291
26
+ gibson/command/Show.py,sha256=lGwguywp1lk4-E1T8iMFQR39mqir2rUqNXZES7H4WO4,1405
27
+ gibson/command/Test.py,sha256=O0Ro3o_SAtNf0y7VwrVS7b2hrJ_sA-UepOxnfp8MEN4,1285
28
+ gibson/command/Tree.py,sha256=pqVbebySThqJ-29izerScwaIb4XE40K3cYNA8bUpNkE,3055
28
29
  gibson/command/Version.py,sha256=LA162K8oPDJAwPEja6ppoHVU8tr7shA1gzkcWxV4XVs,1282
29
30
  gibson/command/WarGames.py,sha256=V0KIpz-Z546qtQaOPdIVHQ6wp2n3r3M3tgKx-GRQzzU,1300
30
- gibson/command/auth/Auth.py,sha256=aOD5f4Ob9ZZ_eoodO2BgJ2-pNNE-BzoqwrYz-UGJHKo,956
31
+ gibson/command/auth/Auth.py,sha256=JScajZ__oSo24jzFa5NccCgc4yKgxn0BI0dXPWE5bA4,1000
31
32
  gibson/command/auth/Login.py,sha256=b43OfV76i6aGdOwj1NK64ZOdYlNyc08g3lZGQ_37KDw,437
32
33
  gibson/command/auth/Logout.py,sha256=V01q4TdbiBqCnIrM6IA4T25fO6ws0UpXp42I3pwHZVM,248
33
34
  gibson/command/rewrite/Api.py,sha256=sSvAqEJXdgQjYcu0uiM6ndHE3GnfkfVL6eqP2Otkbww,1002
34
35
  gibson/command/rewrite/Base.py,sha256=YJ2a5Hl0f9NXHUBBPvlt-dUIqEPWQz5vH6-1EHmbFbA,640
35
36
  gibson/command/rewrite/Models.py,sha256=eoUpZHpR0qwNgX60EWfcNz49GHmBw_FGfBuHH2ueZqY,799
36
- gibson/command/rewrite/Rewrite.py,sha256=AK2CcE2sJ0naUmox17BxqN0Usq-oSzjJXfRrKKsGY_k,4682
37
+ gibson/command/rewrite/Rewrite.py,sha256=jaoaruSCsOazZmDAytv9GD2YBrnBSonWO4jOd9C1B10,4666
37
38
  gibson/command/rewrite/Schemas.py,sha256=zZ1gjmOJg77gh70t5y2WkzHWSAvEKx5-gqRN9OcsCXA,802
38
39
  gibson/command/rewrite/Tests.py,sha256=HO1WM6pSToVKsuJn7nUA_I5qrfBN0cgKgBzjlm2Qxt8,799
39
40
  gibson/command/tests/test_command_BaseCommand.py,sha256=hSbBfLFI3RTp_DdEHtm5oOLWoN6drI6ucFJypi7xxV8,364
@@ -46,7 +47,7 @@ gibson/conf/Dependencies.py,sha256=DZxyFtDR_3QpmsZbHApJFSeA7uYrMX1Bdx4lZKJ49Uo,8
46
47
  gibson/conf/Dev.py,sha256=nMjKmRrJbNIsMqQRFo8f68Lx-hSU-lihvLvhj0Safzg,344
47
48
  gibson/conf/Frameworks.py,sha256=Dv5iqeVe0JmNCKX5a-6S_dCrx7WZyI3qkTAFX6JWfDU,173
48
49
  gibson/conf/Modeler.py,sha256=RayW3VFD_2nCFXZepfEcCXTUX2tWd7WtOjHULNVCai8,67
49
- gibson/conf/Paths.py,sha256=NHJ_YLzmTIUUVLvtZornRdl1xPSluSmpFlMNsnqonxA,192
50
+ gibson/conf/Paths.py,sha256=FB8_w-8oCnzuqGIMVUahvZfl0p8i_ERnVzVPjuXTk3Y,243
50
51
  gibson/conf/Platform.py,sha256=ai7bLab2Ak_zWiANJH78Pj3YjTlTCQ1EEtkFaVDijOc,307
51
52
  gibson/conf/Project.py,sha256=2lc_rr7giu1aGA4Ue4sU3Ey8-_yB2orLM1cw8f9zcdo,440
52
53
  gibson/conf/Version.py,sha256=a1VNbiIj5E7m-PmH_pWBVFNf8Iu8zACSJ_qPNdtI9b0,89
@@ -56,13 +57,14 @@ gibson/conf/dev/Model.py,sha256=HbHRX3VDxR7hXlzuxkKw4Bf7FH6XMfQ96k9BeIUoBf4,73
56
57
  gibson/conf/dev/Schema.py,sha256=kOSlX1jEyVb82xd8TO8jEAimLcaefIFJr6d2JYvyTqg,74
57
58
  gibson/conf/tests/test_conf_Dependencies.py,sha256=LITeeYiqXM5rKkyWFBqcnMvUR5pzDRuHVAngH372jWc,116
58
59
  gibson/conf/tests/test_conf_Platform.py,sha256=Zc53IsZmV-hT9VRrZEPNrsuehSdWnJXWKGMmOhEqWHo,138
59
- gibson/core/Colors.py,sha256=UchFC88hnQwLg2GFAqC4rqsBySlNU_0-5tC9Iz048q8,1421
60
- gibson/core/CommandRouter.py,sha256=7U9eUsEPTwKHZEdeCcMXB_qmDXx6X9wCY_OUPBRyt8M,8477
61
- gibson/core/Completions.py,sha256=N-mfeImSzw-d3Lrpu1KVnt0geMuKkbTaHpYTMYcPcAQ,1152
62
- gibson/core/Configuration.py,sha256=L5jDfY20N0MvfaCW2sc8_8282VlQ8rWGr-C3rK-Gtfk,16036
63
- gibson/core/Conversation.py,sha256=x2nTD5YD72VpwCSJgrlpMhJqqibfIfbTob0dz0FCPMA,8646
64
- gibson/core/Env.py,sha256=7HFKGah25KjLelyOjYS8ylR6yDScT6utyZe7HdB3aRE,431
65
- gibson/core/Memory.py,sha256=xQvExaT151yC9nwKJuADsniMR-UQhw7zXyJd4LReL6g,3942
60
+ gibson/core/Colors.py,sha256=5XJdm9n5Sa75Hv0BYVaGVhnzsgpwfbB2pGXcbGh5EjU,1539
61
+ gibson/core/CommandRouter.py,sha256=bbdJLJZazQnSZVdi1MDkGrllfMfAz3-dWtdwpscltr8,4123
62
+ gibson/core/Completions.py,sha256=Bsh25vnf0pjpJA6MJNR_2MA2s58Ujj8XolR8fm8AQ_s,1197
63
+ gibson/core/Configuration.py,sha256=rJq6XFS-vV8elACYmbFdnzzW4PsQb1BjyWuajfx46KQ,15787
64
+ gibson/core/Conversation.py,sha256=cZTlP_VAv9OfBAxACCmGHuOfobCKKlWMplXrpc4-aGs,8694
65
+ gibson/core/Env.py,sha256=08dZRHzzR0ahrbM4S0bXC7V1xhYQkT8Zefs00qUHf0U,498
66
+ gibson/core/Memory.py,sha256=Yw6xmqtAsFwd5Q4VgmGDt4U2dUGLyFXZ_nO8c74Oo8E,4005
67
+ gibson/core/PythonPath.py,sha256=p1q7n_5KnPvA8XbxJyvqC2vrIdEdTiMr6vRU9yj77Cs,1567
66
68
  gibson/core/TimeKeeper.py,sha256=0mzs04wizjGEJbiQFWZyi4ja4XgeJaDqc0JzPCHp9po,250
67
69
  gibson/core/utils.py,sha256=KTnPvA3sUYnLFTZG7Tke5YEdls8Da0rNbeaOm8hapiU,408
68
70
  gibson/data/bash-completion.tmpl,sha256=8XYbLMjyKlbaY4RVutxDqcwNLh5HNjTVDmZ3_Eci2xU,2726
@@ -79,7 +81,7 @@ gibson/display/tests/test_display_WorkspaceFooter.py,sha256=96syJutXZWbGOLiAS5Sk
79
81
  gibson/display/tests/test_display_WorkspaceHeader.py,sha256=9FuNLOkCAyFSDaonZbLQhLJSizc7bI2HAz3z1ifJlYs,316
80
82
  gibson/lang/Python.py,sha256=WNbCTFhDh9qXVbeySyfaP-6m-c0wllSCZw8A-r_Z0Oo,1764
81
83
  gibson/lang/tests/test_lang_Python.py,sha256=YpdqYOGAssg-jP9GuzfoU4Y4L7Boj0vAUAJgjuZvedo,1862
82
- gibson/services/auth/Server.py,sha256=DKYpxsbAfQNBDlok0qy93ArugnEa-_CmvFIxAunapus,1922
84
+ gibson/services/auth/Server.py,sha256=DfemWNZlZ3rDE6PsAAvDP0anK7czwhiadX6Wilo4agY,1936
83
85
  gibson/services/code/context/schema/DataDictionary.py,sha256=zWLzxOzW8iMHxfXPEwnnbruEAtFa8j1UpghNd4AHzfA,369
84
86
  gibson/services/code/context/schema/EntityKeys.py,sha256=rmCABPloMckvzfq9Gwx6DRP-RdmEwXarkpMR4boIQwQ,1569
85
87
  gibson/services/code/context/schema/Manager.py,sha256=I_xcPrcE2nFJmBEXcIoJQ9lxKfWNQYHOEZNP0i9aYuY,906
@@ -87,7 +89,7 @@ gibson/services/code/context/schema/tests/test_code_context_schema_DataDictionar
87
89
  gibson/services/code/context/schema/tests/test_code_context_schema_EntityKeys.py,sha256=i--xVPHNw7Ks8kkuv9GmSbpp0BuMMKTGtPBY1HwT-60,2114
88
90
  gibson/services/code/context/schema/tests/test_code_context_schema_Manager.py,sha256=FiQFpFmJjv9g46QjmBjGVF3yz1GF0Q42j0fvZm5ZOYw,1230
89
91
  gibson/services/code/customization/Authenticator.py,sha256=3VvxZsxelPPhxapHnsYhfMaFgdQ523dai9wxCNMa9Eg,372
90
- gibson/services/code/customization/BaseCustomization.py,sha256=E925XQ9KvSnSy2rE91er58mD7AJ8I1t-I8L2UAFrS0g,1188
92
+ gibson/services/code/customization/BaseCustomization.py,sha256=toCGRMF8VUXNIwScpAiiRqq4RT2rQCzYkbyypdfAAl4,1187
91
93
  gibson/services/code/customization/CustomizationManager.py,sha256=M2gz98Yo2WTnnhs1lx_ma63aK1hTfbU6C9RbItaYeDY,705
92
94
  gibson/services/code/customization/Index.py,sha256=4Thf0gZM6VErZJS97w748PRNmHi8QvsyblOLCw1Y_XE,364
93
95
  gibson/services/code/customization/tests/test_code_customization_Authenticator.py,sha256=kKExkLfKPpRA2NQH3fvRCuBEMhCGhR-IvNJqXuyBz3c,1949
@@ -105,8 +107,8 @@ gibson/structure/tests/test_Entity.py,sha256=Gl9f1NcEKdpWCx4W3takFFzp18mLhCYWKrd
105
107
  gibson/tests/test_Env.py,sha256=DPWmP0-aEelducq9bAwv7rKoY2NjWXUeCrzfJDQkn2M,369
106
108
  gibson/tests/test_Memory.py,sha256=YP7owToABAk_-s7fD5UG0HTc4lamDjdA39JUlLnk3Fg,2574
107
109
  gibson/tests/test_utils.py,sha256=r_y-EG05YTCNtL8MWiAK1KmPsmeoMgypKsQC_lVgOtM,559
108
- gibson_cli-0.3.5.dist-info/METADATA,sha256=LR-E9ieuglR8EAGiLDCWAWaclUF6ZpvHYZtsd5mFjcA,11505
109
- gibson_cli-0.3.5.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
110
- gibson_cli-0.3.5.dist-info/entry_points.txt,sha256=j5VUvq3AzL21xPvVC24zMoXFt-I5lUWulr66nL3OAPM,50
111
- gibson_cli-0.3.5.dist-info/top_level.txt,sha256=RFaUY7VXGiqkMwo1Rj7pM4kGvxkhhnfo-2LmPpuL_fs,11
112
- gibson_cli-0.3.5.dist-info/RECORD,,
110
+ gibson_cli-0.5.0.dist-info/METADATA,sha256=595lPBY_q33rkxwcNPM8--RHfcadaEbSciZjG35QQO4,11569
111
+ gibson_cli-0.5.0.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
112
+ gibson_cli-0.5.0.dist-info/entry_points.txt,sha256=j5VUvq3AzL21xPvVC24zMoXFt-I5lUWulr66nL3OAPM,50
113
+ gibson_cli-0.5.0.dist-info/top_level.txt,sha256=RFaUY7VXGiqkMwo1Rj7pM4kGvxkhhnfo-2LmPpuL_fs,11
114
+ gibson_cli-0.5.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (72.1.0)
2
+ Generator: setuptools (74.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5