pyegeria 5.3.10__py3-none-any.whl → 5.4.0.dev2__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 (69) hide show
  1. commands/cat/debug_log.2025-06-05_20-24-18_123924.log.zip +0 -0
  2. commands/cat/debug_log.2025-06-10_08-45-03_929921.log.zip +0 -0
  3. commands/cat/debug_log.2025-06-11_09-57-21_247890.log.zip +0 -0
  4. commands/cat/debug_log.2025-06-12_16-14-31_212042.log.zip +0 -0
  5. commands/cat/dr_egeria_md.py +32 -5
  6. commands/cat/list_collections.py +10 -4
  7. commands/cat/list_data_designer.py +171 -0
  8. md_processing/__init__.py +7 -2
  9. md_processing/data/commands.json +4666 -848
  10. md_processing/md_commands/data_designer_commands.py +840 -557
  11. md_processing/md_commands/solution_architect_commands.py +985 -0
  12. md_processing/md_processing_utils/common_md_proc_utils.py +262 -89
  13. md_processing/md_processing_utils/common_md_utils.py +11 -4
  14. md_processing/md_processing_utils/md_processing_constants.py +18 -16
  15. pyegeria/_client.py +39 -0
  16. pyegeria/classification_manager_omvs.py +1 -1
  17. pyegeria/collection_manager_omvs.py +248 -188
  18. pyegeria/data_designer_omvs.py +217 -9
  19. pyegeria/governance_officer_omvs.py +2349 -0
  20. pyegeria/output_formatter.py +24 -12
  21. pyegeria/solution_architect_omvs.py +4219 -1084
  22. pyegeria/utils.py +15 -2
  23. {pyegeria-5.3.10.dist-info → pyegeria-5.4.0.dev2.dist-info}/METADATA +2 -1
  24. {pyegeria-5.3.10.dist-info → pyegeria-5.4.0.dev2.dist-info}/RECORD +27 -62
  25. {pyegeria-5.3.10.dist-info → pyegeria-5.4.0.dev2.dist-info}/entry_points.txt +3 -0
  26. commands/cat/.DS_Store +0 -0
  27. md_processing/dr_egeria_inbox/archive/dr_egeria_intro.md +0 -254
  28. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_more_terms.md +0 -696
  29. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part1.md +0 -254
  30. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part2.md +0 -298
  31. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part3.md +0 -608
  32. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part4.md +0 -94
  33. md_processing/dr_egeria_inbox/archive/freddie_intro.md +0 -284
  34. md_processing/dr_egeria_inbox/archive/freddie_intro_orig.md +0 -275
  35. md_processing/dr_egeria_inbox/archive/test-term.md +0 -110
  36. md_processing/dr_egeria_inbox/cat_test.md +0 -100
  37. md_processing/dr_egeria_inbox/data_field.md +0 -54
  38. md_processing/dr_egeria_inbox/data_spec.md +0 -77
  39. md_processing/dr_egeria_inbox/data_spec_test.md +0 -2406
  40. md_processing/dr_egeria_inbox/data_test.md +0 -86
  41. md_processing/dr_egeria_inbox/dr_egeria_intro_categories.md +0 -168
  42. md_processing/dr_egeria_inbox/dr_egeria_intro_part1.md +0 -280
  43. md_processing/dr_egeria_inbox/dr_egeria_intro_part2.md +0 -313
  44. md_processing/dr_egeria_inbox/dr_egeria_intro_part3.md +0 -1073
  45. md_processing/dr_egeria_inbox/dr_egeria_isc1.md +0 -44
  46. md_processing/dr_egeria_inbox/glossary_test1.md +0 -324
  47. md_processing/dr_egeria_inbox/rel.md +0 -8
  48. md_processing/dr_egeria_inbox/sb.md +0 -119
  49. md_processing/dr_egeria_inbox/search_test.md +0 -39
  50. md_processing/dr_egeria_inbox/solution-components.md +0 -154
  51. md_processing/dr_egeria_inbox/solution_blueprints.md +0 -118
  52. md_processing/dr_egeria_inbox/synonym_test.md +0 -42
  53. md_processing/dr_egeria_inbox/t1.md +0 -0
  54. md_processing/dr_egeria_inbox/t2.md +0 -268
  55. md_processing/dr_egeria_outbox/processed-2025-05-15 19:52-data_test.md +0 -94
  56. md_processing/dr_egeria_outbox/processed-2025-05-16 07:39-data_test.md +0 -88
  57. md_processing/dr_egeria_outbox/processed-2025-05-17 16:01-data_field.md +0 -56
  58. md_processing/dr_egeria_outbox/processed-2025-05-18 15:51-data_test.md +0 -103
  59. md_processing/dr_egeria_outbox/processed-2025-05-18 16:47-data_test.md +0 -94
  60. md_processing/dr_egeria_outbox/processed-2025-05-19 07:14-data_test.md +0 -96
  61. md_processing/dr_egeria_outbox/processed-2025-05-19 07:20-data_test.md +0 -100
  62. md_processing/dr_egeria_outbox/processed-2025-05-19 07:22-data_test.md +0 -88
  63. md_processing/dr_egeria_outbox/processed-2025-05-19 09:26-data_test.md +0 -91
  64. md_processing/dr_egeria_outbox/processed-2025-05-19 10:27-data_test.md +0 -91
  65. md_processing/dr_egeria_outbox/processed-2025-05-19 14:04-data_test.md +0 -91
  66. md_processing/md_commands/blueprint_commands.py +0 -303
  67. pyegeria/.DS_Store +0 -0
  68. {pyegeria-5.3.10.dist-info → pyegeria-5.4.0.dev2.dist-info}/LICENSE +0 -0
  69. {pyegeria-5.3.10.dist-info → pyegeria-5.4.0.dev2.dist-info}/WHEEL +0 -0
pyegeria/utils.py CHANGED
@@ -179,6 +179,7 @@ def get_last_guid(guids):
179
179
 
180
180
  def body_slimmer(body: dict) -> dict:
181
181
  """body_slimmer is a little function to remove unused keys from a dict
182
+ and recursively slim embedded dicts
182
183
 
183
184
  Parameters
184
185
  ----------
@@ -187,9 +188,21 @@ def body_slimmer(body: dict) -> dict:
187
188
  Returns
188
189
  -------
189
190
  dict:
190
- a slimmed body
191
+ a slimmed body with all embedded dictionaries also slimmed
191
192
  """
192
- slimmed = {key: value for key, value in body.items() if value}
193
+ if body is None:
194
+ return {}
195
+
196
+ slimmed = {}
197
+ for key, value in body.items():
198
+ if value:
199
+ if isinstance(value, dict):
200
+ # Recursively slim embedded dictionaries
201
+ slimmed_value = body_slimmer(value)
202
+ if slimmed_value: # Only include non-empty dictionaries
203
+ slimmed[key] = slimmed_value
204
+ else:
205
+ slimmed[key] = value
193
206
  return slimmed
194
207
 
195
208
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyegeria
3
- Version: 5.3.10
3
+ Version: 5.4.0.dev2
4
4
  Summary: A python client for Egeria
5
5
  License: Apache 2.0
6
6
  Keywords: egeria,metadata,governance
@@ -16,6 +16,7 @@ Requires-Dist: click
16
16
  Requires-Dist: httpx
17
17
  Requires-Dist: jupyter
18
18
  Requires-Dist: jupyter-notebook-parser (>=0.1.4,<0.2.0)
19
+ Requires-Dist: loguru (>=0.7.3,<0.8.0)
19
20
  Requires-Dist: mermaid-py
20
21
  Requires-Dist: psycopg2-binary (>=2.9.9,<3.0.0)
21
22
  Requires-Dist: pytest (>=8.3.5,<9.0.0)
@@ -1,9 +1,12 @@
1
- commands/cat/.DS_Store,sha256=RY8U0pzFVjHVb0B2edAfhmtpMWmKhR-YSI4WoPy4apc,6148
2
1
  commands/cat/Dr-Egeria_md-orig.py,sha256=ZX20BvRo0fIFisvy5Z-VJDLVyKbQoud89-CUV2S66tU,7336
3
2
  commands/cat/README.md,sha256=-aaAnIT2fcfU63vajgB-RzQk4l4yFdhkyVfSaTPiqRY,967
4
3
  commands/cat/__init__.py,sha256=Ps4MxYlYN-ZX1qaSTFwnqgDZTaqUkN35JTOpZ1TBD1Q,451
4
+ commands/cat/debug_log.2025-06-05_20-24-18_123924.log.zip,sha256=3dFYhY4odrEdMK4Q4N8BCE3_bE1Z2DnuSpwiKspfJFA,27178
5
+ commands/cat/debug_log.2025-06-10_08-45-03_929921.log.zip,sha256=l941eD7-V2pz285MpxJjvshyA0A974fKQ06j0nenqCI,59582
6
+ commands/cat/debug_log.2025-06-11_09-57-21_247890.log.zip,sha256=ZdLKjVAX6k3nhuhSk0Y06sLYO6k2ltLzao7Qq47tK4Q,18100
7
+ commands/cat/debug_log.2025-06-12_16-14-31_212042.log.zip,sha256=yKICViTcbK1tbmlHDBWGq-2tEJxXkMoLf_kwpmPcDMo,3378
5
8
  commands/cat/dr_egeria_jupyter.py,sha256=rfLVV_84Q8Pqcq1flmijKvZ7sEZFy7JAcAP_NAbb46Y,5656
6
- commands/cat/dr_egeria_md.py,sha256=bEi2toFazJPiy6ZM2zRbvr_IfhiA1JOcunpwCfrEVsU,13408
9
+ commands/cat/dr_egeria_md.py,sha256=Eqw_6aSkGL8l3RseC2hOnU672aYg6ijPOr7ItZCakMA,15829
7
10
  commands/cat/exp_list_glossaries.py,sha256=dC6Bnfm3YSMTKPP146qeslIFRiZnGu5b7iDYE07p4iU,5817
8
11
  commands/cat/get_asset_graph.py,sha256=xnXJfpDTVH1TJ2TwE3dtjaXU36Di6-N6JAyhothzz2o,12461
9
12
  commands/cat/get_collection.py,sha256=kXPcP8u-SMWfrVyyBhNoxG8mcgB7EV_5i9N9w_IBU7o,5379
@@ -14,7 +17,8 @@ commands/cat/glossary_actions.py,sha256=zK26fNiv-lpWUP8tHC3wTmdQ6L0_XxlmuNGUyrnS
14
17
  commands/cat/list_assets.py,sha256=CdJ2coKvvQv2VwJO0Sp9Eg9Fu_uvpC21tgjrdtT9Yz4,6315
15
18
  commands/cat/list_categories.py,sha256=DTKE3yrt3N2EIjCGscxrz-pSREqmch7aFqsVFm-3u7o,7841
16
19
  commands/cat/list_cert_types.py,sha256=HmrTks0SSYgSMsYz3LqfX5kwDQ6D9KMcynoR_xlWtnE,7137
17
- commands/cat/list_collections.py,sha256=fOtMoX71DeSW9ci7KErJ9KR4-rPIHdJESZ0mCTFjCXY,7967
20
+ commands/cat/list_collections.py,sha256=oO7AZcaZeLJ5dAcOTZJMpQyP9BugBbQPO8oq4EtgcP8,8318
21
+ commands/cat/list_data_designer.py,sha256=_6uVRMtTKXsY51bb-RYP8rJFOm1gosYl8TQJqPyDkt8,6238
18
22
  commands/cat/list_data_structures.py,sha256=E9PY_AU1lzGSqUwy711Bjd5uMfV41kpmNPzhdf0nZjs,8642
19
23
  commands/cat/list_deployed_catalogs.py,sha256=VdN6R9kRVWX-fGIgubOigvMVPzhF-hKQepHHlS-w-D8,8258
20
24
  commands/cat/list_deployed_database_schemas.py,sha256=1Qicke1R2_7Xi3Qf5sp8KJ3_reAIt0z1iaz2sG8Z0Qs,9458
@@ -93,74 +97,34 @@ commands/tech/list_tech_templates.py,sha256=5hhDJJjrqGyWDPPcFzFeFs-4rsal1M2Bl7EU
93
97
  commands/tech/list_valid_metadata_values.py,sha256=_zgOdq2N6s7GjLd8iEc5xVfplKfOnKZ-ySM-lSdgYn8,6315
94
98
  commands/tech/table_tech_templates.py,sha256=jI1c9YKa3KirArMNXeCRKeaiVdwQSN-ztPqkag6jdZs,9500
95
99
  commands/tech/x_list_related_elements.py,sha256=ynaw792VnbMZ9IXBi5mmG7xBfC0kn0esKiFTsjvLGzc,5900
96
- md_processing/__init__.py,sha256=f1L8o0ewh3YdTm4tinuUyMBQ0PNnCe7kPRPLeVznD6o,4611
97
- md_processing/data/commands.json,sha256=sRqtASsOSoQBuiscVjbsG_-TOYtDFBgGzeCElB0QHvc,109916
98
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro.md,sha256=25iXGRIkGUiDbfop8Rpd-QRdsjmI3Jo-S4yzfzAmeDE,8549
99
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_more_terms.md,sha256=WY33hougDWyrDRtk8-4Sm2z4CNHG6u1jKNUZX_QbpG8,27000
100
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part1.md,sha256=gI1DmLfqUI9FtVVynYJe0NqSr4PJ0Ej--BXetyA49js,9871
101
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part2.md,sha256=xXBt7J61eLHpVW41OoIPztsyn48U9HLqbLG5h8s9wLw,13666
102
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part3.md,sha256=wlbFOxDn7jiTr43hdwXw_M894kybCQgdSmGR8QC8PWw,24311
103
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part4.md,sha256=JPIDeQjKwXgHhj9FE4oOfRmcZROvH9N9EUq-rbVBZ1E,1381
104
- md_processing/dr_egeria_inbox/archive/freddie_intro.md,sha256=7srXdwdVO4phWSp0nhbdt6U8KgVG2WCSKfLCYzRHO-0,7437
105
- md_processing/dr_egeria_inbox/archive/freddie_intro_orig.md,sha256=JRfOtByc57-En5rp5z-g1l93FIbem3ST7plItWr6IKY,7067
106
- md_processing/dr_egeria_inbox/archive/test-term.md,sha256=9XKBBrpgMBbXB-DRVgyhR4lwy4Z3zX1Tp9H601y06qs,1529
107
- md_processing/dr_egeria_inbox/cat_test.md,sha256=Xcz8Qwak-TEj-JnXoqZTpX3sy501tRqvFVllB14QX6w,1068
108
- md_processing/dr_egeria_inbox/data_field.md,sha256=jbjihghaBRAd_14n3LO1-vGCPzS3aNpNrntv1eCLKXY,702
109
- md_processing/dr_egeria_inbox/data_spec.md,sha256=3VrV2pf0czFzYcWonn5L5W1NZG1CgSBViI0m1y0NBFA,1119
110
- md_processing/dr_egeria_inbox/data_spec_test.md,sha256=pSRtK0l0vygBv63rsy1Jq7FfyFqa1WQxolhIor0uWCc,16838
111
- md_processing/dr_egeria_inbox/data_test.md,sha256=nPIvnNNKbwegAWtsSBdko4A9DkhLFES5eBLKCweSDOs,1178
112
- md_processing/dr_egeria_inbox/dr_egeria_intro_categories.md,sha256=LcsXBuzL_I7972WRXs7-SGMZTfuYVWPtfTVIm995wuk,5557
113
- md_processing/dr_egeria_inbox/dr_egeria_intro_part1.md,sha256=0nWv-AAfdkoliy6i0xcwGb-LUb7c_BhU2qi7CssP1L0,10415
114
- md_processing/dr_egeria_inbox/dr_egeria_intro_part2.md,sha256=9Zp04P4zNHxvviy8dJgjEB0AyYB9VwVG05POzlFnvEk,15388
115
- md_processing/dr_egeria_inbox/dr_egeria_intro_part3.md,sha256=ujoKrf54EOJ9Z32QWneWJL8f6gZ32GxCdG76cYCvwBk,40559
116
- md_processing/dr_egeria_inbox/dr_egeria_isc1.md,sha256=22mus2pnS55P_LTcnE6AnjSYjnEOB7XhLqEDue4oOIM,449
100
+ md_processing/__init__.py,sha256=c0m0rak6b5ReJO4N8jx8GpGWh6c301vcVxzNbq8jQAA,5089
101
+ md_processing/data/commands.json,sha256=8LGGMDWnmpVq53oE6FbWoqM91Or94ZFxwpa7AJUKPkw,235726
117
102
  md_processing/dr_egeria_inbox/glossary_creation_experiment.ipynb,sha256=dbzNu90fCKNohOWVSRBOB1GLyd95x8Qw51I5AkaPtso,11552
118
- md_processing/dr_egeria_inbox/glossary_test1.md,sha256=H92jI2i25yXrHTQLfT-o5K4BL86Vn-pyJNsQbFwWCZE,4771
119
- md_processing/dr_egeria_inbox/rel.md,sha256=stIzGh1FTXuCW_GniFKS1_mtmQPTwA1a1OmYeP5TszQ,97
120
- md_processing/dr_egeria_inbox/sb.md,sha256=aY5QlVMxi5lh91ttr8bMCbl2z4qmsIN6XJ4SojFz8VU,1945
121
- md_processing/dr_egeria_inbox/search_test.md,sha256=z48ds18XYrdvM8Z2nHwTUQp11epvdqLG4dI7UBsjlIQ,293
122
- md_processing/dr_egeria_inbox/solution-components.md,sha256=RA57S2C_enXDm_d77Og2bzvsydMATY0-xjzwp6td7qI,2989
123
- md_processing/dr_egeria_inbox/solution_blueprints.md,sha256=9__-MhIf7u4am_YtV3UsMSKocqzoJrg8qTpmBo0rJUQ,2018
124
- md_processing/dr_egeria_inbox/synonym_test.md,sha256=lUAfT8E5gT4ml7gMI_G_nB3gsnimuaUEB6crMar3-8w,430
125
- md_processing/dr_egeria_inbox/t1.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
- md_processing/dr_egeria_inbox/t2.md,sha256=FP9xUKlP89Y92_9YESChyglS6r8YgvBGgPMTSWI7m_E,6950
127
- md_processing/dr_egeria_outbox/processed-2025-05-15 19:52-data_test.md,sha256=TMXcpBUl9hSbI65BNf4HkCSlEJiQXfkBlXmm7oKQ-xc,1413
128
- md_processing/dr_egeria_outbox/processed-2025-05-16 07:39-data_test.md,sha256=zFs-cJva6F4GzbR-X9tiAljbFjVnXPCMM-tWrGv6rOY,1284
129
- md_processing/dr_egeria_outbox/processed-2025-05-17 16:01-data_field.md,sha256=e5WcI6y-bgn6e43DGoLvg2X7g5pJWUWE4_zQb_crGIA,574
130
- md_processing/dr_egeria_outbox/processed-2025-05-18 15:51-data_test.md,sha256=wUxzKTewTxIwfJvtBhQfa2N923o4hIIxS3udU3jG_II,1535
131
- md_processing/dr_egeria_outbox/processed-2025-05-18 16:47-data_test.md,sha256=bhTobhB5ZYG2NLWo2GVjuJ7t6H61x7DKMFcTM8Twsr4,1284
132
- md_processing/dr_egeria_outbox/processed-2025-05-19 07:14-data_test.md,sha256=UdNYXbkNchtqZuQ8rRTtN22DFVietuSdyzB9KKvV7bY,1529
133
- md_processing/dr_egeria_outbox/processed-2025-05-19 07:20-data_test.md,sha256=JjUEgVlRW1NmHIjg3uCKTf1a8OIUXEtHEJhGn7kyb58,1525
134
- md_processing/dr_egeria_outbox/processed-2025-05-19 07:22-data_test.md,sha256=nNKDdZimvmi3QrktkeJdhhfxnU_MNLhnUnzwTnXZ_4M,1284
135
- md_processing/dr_egeria_outbox/processed-2025-05-19 09:26-data_test.md,sha256=OiBMX1IE0b7FBVE1lmcCo93Nn0kTrgcGj8Gql9jtoPw,1286
136
- md_processing/dr_egeria_outbox/processed-2025-05-19 10:27-data_test.md,sha256=V-4zCLm4JvfptxZyUEzArwgStWeRvSpB5qmcTItOcIA,1286
137
- md_processing/dr_egeria_outbox/processed-2025-05-19 14:04-data_test.md,sha256=mKZOkAx2d_8_jqnR21VXNO4xBDc1wBwnPtPtF-UzfiU,1286
138
103
  md_processing/md_commands/__init__.py,sha256=ssEojzFlSYtY2bHqqOoKo8PFaANZ_kq_gIbtlXnuc2s,93
139
- md_processing/md_commands/blueprint_commands.py,sha256=ZiZYK3FqOBTmnVr-mMiD-sj3N4ZMkMPzcJS4q-zoTUk,14889
140
- md_processing/md_commands/data_designer_commands.py,sha256=8zaJItRZxfdmTaNDxFD3IRpXqQ-DgI3xav8vOoonID4,60816
104
+ md_processing/md_commands/data_designer_commands.py,sha256=jlxXW5C7Xqw4ulL9wtpJgR33yMplFlZffIlU5njD8b4,80490
141
105
  md_processing/md_commands/glossary_commands.py,sha256=c4o0MTsdtTTMkPk5LNBgDnCI8PqQn_y_wkcuEYL59yg,54852
142
106
  md_processing/md_commands/project_commands.py,sha256=d4kF-ldz6vqZy50ajxWLoupZs4wJvBShJScDqfH8O4U,8050
107
+ md_processing/md_commands/solution_architect_commands.py,sha256=k03Abg8kfQ3mqitX8yy6Ax30pTt4iaheqIdxGLjUmbI,51006
143
108
  md_processing/md_processing_utils/__init__.py,sha256=LxAmxlcji26ziKV4gGar01d95gL9vgToRIeJW8N-Ifs,80
144
- md_processing/md_processing_utils/common_md_proc_utils.py,sha256=vIjifi4vvdKRuM3zCwq8SPyoN84GO4RC0ucWQA5OkUc,33712
145
- md_processing/md_processing_utils/common_md_utils.py,sha256=3caJTJL8wxlFOIKPgL-BMxT9ap60EAYKw6cpBziRYYA,5450
109
+ md_processing/md_processing_utils/common_md_proc_utils.py,sha256=fS4PCczYKyI89dHh3sqCzsHiT_n1swGfw6Fq9t2nuHU,41456
110
+ md_processing/md_processing_utils/common_md_utils.py,sha256=GQ4FKJ3n_NckFgoGwE7FIlmYqaWClaFJ-1aK3PxiPy8,5850
146
111
  md_processing/md_processing_utils/extraction_utils.py,sha256=780oJsXvW50kX2d64FQIwJQTigQuNiLVRitAEzComQM,20066
147
- md_processing/md_processing_utils/md_processing_constants.py,sha256=HCVD3polwE-yfWzudm26kv6RSh9YrH7SCidHat1oMd4,6233
112
+ md_processing/md_processing_utils/md_processing_constants.py,sha256=awUmHamEB-LdcjjmpGdIb0y8dEkXWJNL_g7UUIg182M,6648
148
113
  md_processing/md_processing_utils/message_constants.py,sha256=UBf18obM83umM6zplR7ychre4xLRbBnTzidHDZ2gNvM,548
149
- pyegeria/.DS_Store,sha256=aExDotxdVFK-8C6Es8SJjvtOsGrm-SknQULFzsFDZCQ,6148
150
114
  pyegeria/README.md,sha256=PwX5OC7-YSZUCIsoyHh1O-WBM2hE84sm3Bd4O353NOk,1464
151
115
  pyegeria/__init__.py,sha256=NgPs08IQIH25GlvFXjPGDxKB6ln44lAS0EWHg4LJSh4,30874
152
- pyegeria/_client.py,sha256=JxKPwpq8Q9ZzgFGRiMu1Z426zSpgEM4TXzZMex-STB0,32023
116
+ pyegeria/_client.py,sha256=tG2rchGpBkK7Y3K6KGAYBaQhVKvVuTo2gUTzNjd9uhI,33383
153
117
  pyegeria/_deprecated_gov_engine.py,sha256=dWNcwVsE5__dF2u4QiIyQrssozzzOjBbLld8MdpmVCQ,17264
154
118
  pyegeria/_exceptions.py,sha256=1SrnV194V4_YJNnNAU0myTHQ3dhLn4GF2B2gZcj1u90,18153
155
119
  pyegeria/_globals.py,sha256=LQftrioc75zTsDUvAu1aRM3-a5hdPNVgTkoVN7GH_kY,1056
156
120
  pyegeria/_validators.py,sha256=vP9nuZwucnCo_LrPU7hkitpWzaych5bTZEKE58TaTnQ,12726
157
121
  pyegeria/asset_catalog_omvs.py,sha256=P6FceMP0FgakGSOt3ePxpEbsF7nnypzo1aQahjdL_94,29021
158
122
  pyegeria/automated_curation_omvs.py,sha256=tzwCyXL0Hx8UjryBBWcPoEuBRajXZpLuwPQ1vuOg2yc,130349
159
- pyegeria/classification_manager_omvs.py,sha256=n55-62Mby-_5pxPGaz3nkjM9NWlY4PzSl3tP0WSnGJU,187212
160
- pyegeria/collection_manager_omvs.py,sha256=Z5Eu_s7l0k5ESzMxUUuasxgT-h1HtZV1b38jZ6BTE_I,120281
123
+ pyegeria/classification_manager_omvs.py,sha256=EBWjdx_C999bRu2-INL8RZxZ-wz92mzVqVBQ6mkyGM0,187228
124
+ pyegeria/collection_manager_omvs.py,sha256=Mz-DPXBI2fuxWQOPmtMdjXE6tMsIJnnzAazP1A5YXwc,128456
161
125
  pyegeria/core_omag_server_config.py,sha256=pNQpocICkZx8sRsTw5DPUe-TFyxlIo1U88qqgci_f7I,97764
162
126
  pyegeria/create_tech_guid_lists.py,sha256=hf5q8Xrdsz-bqeIW3yTORZ1XB6_BrKzLDWWwC_bNG2g,4811
163
- pyegeria/data_designer_omvs.py,sha256=pCiD5KPuvIktuS3Sm_lfMhW1PI7UT29bqDFNmTUMe5Q,186076
127
+ pyegeria/data_designer_omvs.py,sha256=EM931M_dl4ULis2n1Oegbp-kxkp5gR81TG0x4MygtDs,196559
164
128
  pyegeria/dr.egeria spec.md,sha256=QC_z3EqJ0WW18NYQFW_AtqO4SMWH5MJNVmM--54VzX4,959
165
129
  pyegeria/egeria_cat_client.py,sha256=d8dQNPLzL4efi99OJfH1T-Rt1N0k9Rf9LX8LpuhiFls,2179
166
130
  pyegeria/egeria_client.py,sha256=egGv41eb94P_lWIQ54I_90WT_IukJ_J6ZLOYCHpx2js,4676
@@ -171,6 +135,7 @@ pyegeria/feedback_manager_omvs.py,sha256=0xBs0p54vmdfVYYgQ8pOanLC4fxfgTk1Z61Y6D1
171
135
  pyegeria/full_omag_server_config.py,sha256=CQqLCy_3DZFvJZEOcGf50HWdFaWpiAIs6z-kKyjvpDA,47464
172
136
  pyegeria/glossary_browser_omvs.py,sha256=j6CJt1_O42OT3bVzwwiAoqsCtH5urC5zfghEl0tO8Vg,167000
173
137
  pyegeria/glossary_manager_omvs.py,sha256=aGYZFuzWrPmPLLNwkNpV7-FsalqwDR7gyBzgdubnM04,87989
138
+ pyegeria/governance_officer_omvs.py,sha256=4vPDK7PjPvm81jRaCNvOzvqMe88Q0g7Qc2e6-tbw8lg,86333
174
139
  pyegeria/m_test.py,sha256=M5-M2ZczsAJLXWfSeqTTADHdx6Ku-y4PbQ4M21JthAE,7778
175
140
  pyegeria/md_processing_helpers.py,sha256=xlQuK5eP_PJqUdy4BScQ97NyBD95jMS3EUg0wK5CsZo,2137
176
141
  pyegeria/md_processing_utils.py,sha256=KRESCqAYjCgHRAdhHH49lLDDhaq740CUlqTG0bN-6Oo,99119
@@ -178,19 +143,19 @@ pyegeria/md_processing_utils_orig.py,sha256=SToZtXQiysi2_vmIY4-T2NIELRirzQ1zjkho
178
143
  pyegeria/mermaid_utilities.py,sha256=Zcn8JRrqtf62oHoxuvP9tQ5G-BFxOGMNfr7-peuykgY,54290
179
144
  pyegeria/metadata_explorer_omvs.py,sha256=xHnZTQKbd6XwOhYia-RiIisrvZcqHi0SL1l6OCf04Gk,86911
180
145
  pyegeria/my_profile_omvs.py,sha256=d0oJYCJG7pS9BINPuGciVa00ac0jwPHNANXDCLginEc,34720
181
- pyegeria/output_formatter.py,sha256=_4BxCNjzdSa6sda_0qSH52vxxK_npMKtkN2JN_-iwF4,15097
146
+ pyegeria/output_formatter.py,sha256=634FbHs_l7AX33kBGwv0Gh1B5NV_cyhOOxT6p3uGzlA,15603
182
147
  pyegeria/platform_services.py,sha256=YEpZsGGsbSdesN8ceyFhV0OMzKG6znTZrREMTRimLps,41701
183
148
  pyegeria/project_manager_omvs.py,sha256=612rYbu2eLR8Sgv9nBzjkFJ2PuxIBd_b-zwcnpVbXhc,70665
184
149
  pyegeria/registered_info.py,sha256=y0-LgDIQXpph0lEWxIOG3_HsqX_Z2iAIb3xu4Aa4B70,6344
185
150
  pyegeria/runtime_manager_omvs.py,sha256=Z5wY9ignNjil8O6yjihZftxkGoh9A4PQDcXhoIsOIT8,79698
186
151
  pyegeria/server_operations.py,sha256=5k0KVz3u8qRLwtz16zT3J86LZY3pkUrMDcps8srmq1A,16831
187
- pyegeria/solution_architect_omvs.py,sha256=-PrmNGOVbiIniud328PQ3VY6GF9OPxC9OV8hlLhZZmk,87384
152
+ pyegeria/solution_architect_omvs.py,sha256=eskhA9dkH7X4LcZTebMQE9fkKNhsWOAuKe5HHIhC8Og,204696
188
153
  pyegeria/template_manager_omvs.py,sha256=chBljs1vy5wr9DRAtbvIt4Cob_7HxGfxLkCNlDTM-rQ,42755
189
- pyegeria/utils.py,sha256=GCt1C0bp0Xng1ahzbZhzV9qQwH7Dj93IaCt2dvWb-sg,5417
154
+ pyegeria/utils.py,sha256=fhSN5yOb3-Yelwt9WpBkWRmP5u7I9Jr-M27H0dD-G14,5871
190
155
  pyegeria/valid_metadata_omvs.py,sha256=Xq9DqBQvBFFJzaFIRKcVZ2k4gJvSh9yeXs_j-O3vn1w,65050
191
156
  pyegeria/x_action_author_omvs.py,sha256=RcqSzahUKCtvb_3u_wyintAlc9WFkC_2v0E12TZs8lQ,6433
192
- pyegeria-5.3.10.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
193
- pyegeria-5.3.10.dist-info/METADATA,sha256=jK8pHyHmlXaauLTJuS4traYtN_wz5s5zjXXQ2sRP_Hg,2756
194
- pyegeria-5.3.10.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
195
- pyegeria-5.3.10.dist-info/entry_points.txt,sha256=t-jdafZ1zTF11pehQeRmmXrnzbaH2zKSiQPu2GfD-Eo,5987
196
- pyegeria-5.3.10.dist-info/RECORD,,
157
+ pyegeria-5.4.0.dev2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
158
+ pyegeria-5.4.0.dev2.dist-info/METADATA,sha256=VmIdMugfZB-Dxx3bMp5KOPTfGwrj197VGCT8d8RN3wY,2799
159
+ pyegeria-5.4.0.dev2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
160
+ pyegeria-5.4.0.dev2.dist-info/entry_points.txt,sha256=H1eVK8R1e3E9_USZShSWL3sOxw_DmmC8MPjVghar8P0,6186
161
+ pyegeria-5.4.0.dev2.dist-info/RECORD,,
@@ -37,6 +37,9 @@ list_catalog_targets=commands.ops.list_catalog_targets:main
37
37
  list_categories=commands.cat.list_categories:main
38
38
  list_cert_types=commands.cat.list_cert_types:main
39
39
  list_collections=commands.cat.list_collections:main
40
+ list_data_classes=commands.cat.list_data_designer.py:main_classes
41
+ list_data_fields=commands.cat.list_data_designer.py:main_fields
42
+ list_data_structures=commands.cat.list_data_designer.py:main_structs
40
43
  list_deployed_catalogs=commands.cat.list_deployed_catalogs:main
41
44
  list_deployed_databases=commands.cat.list_deployed_databases:main
42
45
  list_deployed_schemas=commands.cat.list_deployed_database_schemas:main
commands/cat/.DS_Store DELETED
Binary file
@@ -1,254 +0,0 @@
1
-
2
- # Introduction to Dr.Egeria - an Egeria Markdown Processor
3
-
4
-
5
- A constant challenge in managing information is gathering enough metadata about the information to
6
- allow us to manage it. A common approach is to build fancy graphical user interfaces hoping that they
7
- will be attractive enough and easy enough to use that people will do so.
8
-
9
- Unfortunately, however, this ignores the fundamental fact that to use one of these nice GUI
10
- applications, you have to step away from the tools and processes that you were in the midst of performing.
11
- You have to leave your world and enter a new, often less familiar one.
12
-
13
- Dr.Egeria, is an experiment in turning this around. Its not that fancy graphical user
14
- interfaces don't have a role - but rather, to look at what we can do to support the
15
- tools and approaches people already use. And maybe even make their day job a little
16
- easier and a little more enjoyable.
17
-
18
- So this is what we are exploring with Dr.Egeria. An Egeria Markdown language that allows
19
- users to intermix requests to Egeria with other text through the use of standard Markdown. The markdown text
20
- that we process can be in standard markdown (.md) files, in Jupyter notebooks, and perhaps other file formats.
21
-
22
- This markdown file is an example. You will see that we intersperse normal narrative text (such as this)
23
- with Commands to Egeria. We introduce a specific vocabulary to make Egeria requests.
24
-
25
- In the example below we will create a new Egeria glossary to hold definitions related to Dr.Egeria.
26
- We will then show how we can process this file which will record the information into Egeria and create a new
27
- output file that acts as both a receipt showing what was processed as well as a starting point for making updates.
28
-
29
- So here we go! First lets define a new glossary:
30
-
31
- ---
32
-
33
- # Create Glossary
34
-
35
- ## Glossary Name
36
-
37
- Egeria-Markdown
38
-
39
- ## Language
40
-
41
- English
42
-
43
- ## Description
44
-
45
- Glossary to describe the vocabulary of Dr.Egeria - an Egeria Markdown language to support the exchange of metadata in a
46
- Markdown form.
47
- Dr.Egeria allows users to input metadata using any text entry system that supports the entry of standard Markdown
48
- notation and through post-processing
49
- commands, validates the Egeria content and allows the requests to be sent to Egeria.
50
-
51
- ## Usage
52
-
53
- 1. (optional) load an example or template for the type of object from Egeria.
54
- 2. Create a new document (perhaps from a template) and edit it, adding in the content with the Dr.Egeria controlled Markdown language.
55
- 3. Process the document to validate and display it before you submit it, Validation may annotate your document with recommendations and potential issues.
56
- 4. Submit the document to Egeria using the Dr.Egeria commands.
57
-
58
- ## <Qualified Name>
59
-
60
- ## <GUID>
61
-
62
- ---
63
-
64
-
65
-
66
-
67
- # First Walk-Through
68
- The block of markdown above is a request to create a new Egeria Glossary called `Egeria-Markdown`. Let's briefly walk
69
- through. The command starts when we see `# Create Glossary`. This is a known phrase in Dr.Egeria. When we see this
70
- phrase we recognize that this is an Egeria markdown request block. The request block ends if we encounter another `#` or
71
- `---`, or run out of text. Within this request block we note some **attributes** that begin with a `## `. The first that
72
- we encounter is `## Glossary Name`. Not all attributes need to be filled in. Later, we'll process this file and demonstrate
73
- how to tell - but first, lets look at the attributes shown:
74
-
75
- * `## Glossary Name` - this is the display name of the glossary. In this case the name is `Egeria-Markdown` As you can
76
- see, the value of the attribute is the plain text that follows it.
77
- * `## Language` - what language will the terms of the glossary be in (yes there are ways to have mixed language but
78
- Dr.Egeria strives to be as simple as possible).
79
- * `## Description` - a description of the glossary and its purpose.
80
- * `## Usage` - how the glossary is meant to be used and by whom.
81
- * `## <Qualified Name>` - every element in Egeria must have a unique qualified name that we use to distinguish
82
- it from all other elements. The qualified name is meant to be understandable by humans, although it may follow
83
- formatting conventions. This attributes is in angle brackets because at this point we can't fill it in - we are just
84
- in the midst of creating the glossary. A qualified name will be created for us as part of the glossary creation. We'll
85
- see a little later how we get that.
86
- * `## <GUID>` - same story as qualified name except that this is meant for automation and not people.
87
-
88
- And that's it. That's all we need to do to specify the creation of a new glossary (well - mostly - we'll reveal a few
89
- more details a bit later).
90
-
91
- ## Great! That was easy!
92
-
93
- We now have a nice, clean, new...and empty...glossary - guess we better start filling it. Lets create a couple of terms.
94
-
95
- ---
96
-
97
- # Create Term
98
-
99
- ## Term Name
100
-
101
- Command
102
-
103
- ## In Glossary
104
-
105
- Glossary:Egeria-Markdown
106
-
107
-
108
- ## Summary
109
-
110
- Commands are how a user of the Freddie markdown language requests an action.
111
-
112
- ## Description
113
-
114
- Commands are how a user can request Egeria to take an action such as Create or Update an Egeria element. Freddie
115
- provides
116
- a limited (but growing) set of commands. Freddie commands align with the pyegeria 'hey-egeria' command line interface.
117
-
118
- ## Abbreviation
119
-
120
- ## Examples
121
-
122
- Create Glossary or
123
- Update Glossary or
124
- Create Term or
125
- Update Term
126
-
127
- ## Usage
128
-
129
- Commands are used in the Freddie Egeria markdown language.
130
-
131
- ## Version
132
-
133
-
134
-
135
- ## Status
136
-
137
-
138
- ## <Qualified Name>
139
-
140
- ## <GUID>
141
-
142
- ---
143
-
144
- # Create Term
145
-
146
- ## In Glossary
147
-
148
- Glossary:Egeria-Markdown
149
-
150
- ## Term Name
151
-
152
- Source
153
-
154
- ## Summary
155
-
156
- Source of the markdown content.
157
-
158
- ## Description
159
-
160
- Source of the markdown content - could be jupter or plain markdown file.
161
-
162
- ## Abbreviation
163
-
164
- ## Examples
165
-
166
- ## Usage
167
-
168
- ## Version
169
-
170
- 0.1
171
-
172
- ## Status
173
-
174
- DRAFT
175
-
176
-
177
- ---
178
-
179
- # Create Term
180
-
181
- ## In Glossary
182
-
183
- Glossary:Egeria-Markdown
184
-
185
- ## Term Name
186
-
187
- Directive
188
-
189
- ## Summary
190
-
191
- A directive defines how the command is to be processed.
192
-
193
- ## Description
194
-
195
- Directives are one of:
196
-
197
- * display - just display what we've found
198
- * validate - check the validity of the requested action
199
- * process - process the requested action
200
-
201
-
202
- ## Version
203
-
204
- 0.1
205
-
206
- ## Status
207
-
208
- DRAFT
209
-
210
- ---
211
-
212
- # Some terms specified - Now what?
213
-
214
- Ok - we've now defined a glossary and three terms to go into the glossary. A few observations.
215
-
216
- * There is a degree of freedom in writing the definitions. The attributes aren't always in the same
217
- order and optional attributes don't need to be specified at all. We try to make things as easy as possible to use.
218
- * We can run a definition file through a validation process to check our proposed definition and provide feedback.
219
- * When we process a definition we will use the same validation process before trying to update Egeria
220
- with the requested definitions - requests may get rejected or altered - this will be consistent with the feedback we
221
- provide during validation.
222
-
223
- Here is what we'll do next.
224
-
225
- ## Next
226
-
227
- >Note: This is changing - so will be somewhat abstrct
228
-
229
- We will run a small program called `dr.egeria.py` to operate on this markdown file. When we run this program we
230
- tell it not just the name of the file to process but also provide a directive on what to do. Currently we have the
231
- choice of:
232
-
233
- 1. Display - just parse the file, breaking it down into request blocks, and display what we find
234
- 2. Validate - parse the file and validate if the commands can be processed - showing information about what we observe.
235
- 3. Process - parse the request blocks and execute the commands - and produce a new output file to simplify further processing.
236
-
237
-
238
- # Great --> let's give it a try!
239
-
240
- Ok - its processed the file and generated output to the console that shows us what it has done.
241
- We also now have a new file in the designated outbox (specified by an Environment Variable).
242
- If we review that file, we see that it has similar content to this original file except that
243
- the **Create** statements have been replaced with **Update** statements and
244
- attributes such as **Qualified Naame** and **GUID** now contain the known values.
245
-
246
- This means that if we want to make changes to the definitions that we have
247
- created, all we need to do is to make changes to the updatable attributes in this
248
- new document and resubmit it - pretty simple.
249
-
250
- In the next section we'll see how we can update and extend what we have done by creating
251
- some glossary categories and then assigning categories to the terms.
252
- To do this we will copy the output document that we just created and call the
253
- copy dr_egeria_intro_part2.md. The text of the document has also been updated
254
- to reflect the purpose. Let's open that now!