pyegeria 5.3.9.9.7__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.9.9.7.dist-info → pyegeria-5.4.0.dev2.dist-info}/METADATA +2 -1
  24. {pyegeria-5.3.9.9.7.dist-info → pyegeria-5.4.0.dev2.dist-info}/RECORD +27 -62
  25. {pyegeria-5.3.9.9.7.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.9.9.7.dist-info → pyegeria-5.4.0.dev2.dist-info}/LICENSE +0 -0
  69. {pyegeria-5.3.9.9.7.dist-info → pyegeria-5.4.0.dev2.dist-info}/WHEEL +0 -0
@@ -1,86 +0,0 @@
1
-
2
-
3
-
4
-
5
-
6
- ___
7
-
8
- Data Specification for the Teddy Bear Drop Foot Clinical Trial
9
- ___
10
-
11
- # foo Create Data Specification
12
-
13
- ## Data Specification
14
-
15
-
16
- Data Specification for the Teddy Bear Drop Foot Clinical Trial
17
- >woof
18
- ## Description
19
- >Meow -
20
-
21
- Principle data requirements for Teddy Bear Drop Foot Clinical Trial.
22
-
23
-
24
-
25
-
26
- # foo Create Data Dictionary
27
- ## Name
28
- Clinical Trial Data Dictionary
29
-
30
- ## Description
31
- A data dictionary for clinical trial data elements.
32
-
33
-
34
-
35
-
36
- ___
37
-
38
-
39
- ___
40
-
41
- TBDF-Incoming Weekly Measurement Data
42
- ___
43
-
44
- # Update Data Structure
45
-
46
- ## Data Structure
47
-
48
- TBDF-Incoming Weekly Measurement Data
49
-
50
- ## Description
51
- This describes the weekly measurement data for each patient for the Teddy Bear drop foot clinical trial
52
-
53
- ## In Data Specification
54
- Data Specification for the Teddy Bear Drop Foot Clinical Trial
55
-
56
-
57
- ## Qualified Name
58
-
59
-
60
- ___
61
-
62
- WWT-Incoming Weekly Measurement Data
63
-
64
- # foo Create Data Structure
65
-
66
- ## Qualified Name
67
- DataStruct::WWT-Incoming Weekly Measurement Data
68
-
69
- ## GUID
70
- ae221834-a3a6-4f32-ac94-110dff761b49
71
-
72
- ## Data Structure
73
-
74
- WWT-Incoming Weekly Measurement Data
75
-
76
-
77
- ## Description
78
- A collection of data fields that form a data structure.
79
-
80
-
81
- ## In Data Specification
82
-
83
-
84
-
85
- ## Qualified Name
86
-
@@ -1,168 +0,0 @@
1
- # Demonstrating updates and additions
2
-
3
- This document was derived from the processing of the file dr_egeria_intro.md; All of the Dr.Egeria statements have been
4
- preserved (including the generated attributes such as the unique GUIDs) and the explanatory text has been replaced.
5
-
6
- In this document we will add glossary categories, update existing terms to categorize them, and add some new terms that
7
- further explain dr.egeria. This document is being written off-line (actually on a plane) - demonstrating one of the
8
- intriguing features of dr.egeria - because its just text, it can be edited anywhere and anytime that there is a text
9
- editor. Dr.Egeria files can be emailed, sent via text message, slack or maintained in a `git` repository.
10
- It's just text with markdown annotations.
11
-
12
- Ok, let's get started. First, we have the `Update Glossary` command below. There is nothing new we need to add at this
13
- point so we can just leave it as-is. When this document is processed it will apply updates but if there are none,
14
- It doesn't matter.
15
-
16
-
17
- ___
18
-
19
- Ok, now let's create a couple of glossary categories. They will be:
20
-
21
- * **Writing Dr.Egeria Markdown** - where we describe elements of the Dr.Egeria language as terms within the category.
22
- * **Processing Dr.Egeria Markdown** - where we describe the commands for processing Dr.Egeria.
23
-
24
-
25
- Glossary categories have the following attributes:
26
-
27
-
28
- | Attribute Name | Input Required? | Read Only | Generated/Default? | Unique? | Notes |
29
- |:----------------|:----------------|-----------|:-------------------|:--------|:---------------------------------------------------------------------------------------------------------|
30
- | Category Name | Yes | No | No | No | A display name (informal name). |
31
- | Owning Glossary | Yes | No | No | Yes | This is the qualified name of the glossary that owns this category. |
32
- | Parent Category | No | No | No | No | Indicate parent category, if exists. |
33
- | Description | No | No | No | No | A textual description of this category |
34
- | Member Terms | No | No | No | No | A list of terms that are members of this category |
35
- | Qualified Name | No | No | Yes | Yes | The qualified name can either be provided by the user or generated. If generated, a pattern is followed. |
36
- | GUID | No | Yes | Yes | Yes | GUIDs are always generated by Egeria. They are meant for automation, not people. |
37
- | Table | No | Yes | Yes | No | Under development |
38
- | Graph | No | Yes | Yes | No | Under Development |
39
- Qualified Names can either be user specified or generated. If generated the following the form:
40
- `{local-qualifier}:{type}:{display name}`
41
-
42
- * Local-Qualifier is an optional string that can be useful to both disambiguate similar names and to add some local context. Local qualifiers could be set to organization names, functions, business context, etc. The settings for a local qualifier is set either by setting the environment variable `EGERIA_LOCAL_QUALIFIER` or by passing in a parameter when executing one of the Dr.Egeria enabled commands. This could also be set for a team by an Egeria administrator.
43
-
44
- ___
45
-
46
- # Create Category
47
-
48
- ## Category Name
49
-
50
- Writing Dr.Egeria Markdown
51
-
52
- ## Owning Glossary
53
-
54
- Glossary::Egeria-Markdown
55
-
56
- ## Parent Category
57
-
58
-
59
- ## Description
60
-
61
- These terms describe the elements of the Dr.Egeria Markdown language and how to use them.
62
-
63
- ## Member Terms
64
-
65
- ## <Qualified Name>
66
-
67
- ## <GUID>
68
-
69
-
70
- ___
71
-
72
- # Create Category
73
-
74
- ## Category Name
75
-
76
- Dr.Egeria Actions
77
-
78
- ## Owning Glossary
79
-
80
- Glossary::Egeria-Markdown
81
-
82
- ## Parent Category
83
-
84
- Writing Dr.Egeria Markdown
85
-
86
- ## Description
87
-
88
- The actions that Dr. Egeria can process.
89
-
90
-
91
- ## <Qualified Name>
92
-
93
- ## <GUID>
94
-
95
- ___
96
-
97
- # Create Category
98
-
99
- ## Category Name
100
-
101
- Command Attributes
102
-
103
- ## Owning Glossary
104
-
105
- Glossary::Egeria-Markdown
106
-
107
- ## Parent Category
108
- Writing Dr. Egeria Markdown
109
- ## Description
110
-
111
- Common attributes of commands
112
-
113
- ___
114
-
115
- # Create Category
116
-
117
- ## Category Name
118
-
119
- Dr.Egeria Verbs
120
-
121
- ## Owning Glossary
122
-
123
- Glossary::Egeria-Markdown
124
-
125
- ## Description
126
-
127
- Kinds of actions Dr.Egeria can take.
128
-
129
-
130
- ## Parent Category
131
- Writing Dr.Egeria Markdown
132
-
133
- ## Child Category
134
-
135
- Dr.Egeria Actions
136
-
137
- ___
138
-
139
- # Create Category
140
-
141
- ## Category Name
142
-
143
- Processing Dr.Egeria Markdown
144
-
145
- ## Owning Glossary
146
-
147
- Glossary::Egeria-Markdown
148
-
149
- ## Parent Category
150
-
151
- ## Description
152
-
153
- These terms describe commands to process Dr.Egeria Markdown.
154
-
155
- ## Terms
156
-
157
- Command, Source, Directive, Display Validate, Process
158
-
159
- ## <Qualified Name>
160
-
161
- ## <GUID>
162
-
163
- ___
164
-
165
- # List Categories
166
-
167
-
168
-
@@ -1,280 +0,0 @@
1
- # Introduction to Dr.Egeria - an Egeria Markdown Processor
2
-
3
-
4
- A constant challenge in managing information is gathering enough metadata about the information to
5
- allow us to manage it. A common approach is to build fancy graphical user interfaces hoping that they
6
- will be attractive enough and easy enough to use that people will do so.
7
-
8
- Unfortunately, however, this ignores the fundamental fact that to use one of these nice GUI
9
- applications, you have to step away from the tools and processes that you were in the midst of performing.
10
- You have to leave your world and enter a new, often less familiar one.
11
-
12
- Dr.Egeria, is an experiment in turning this around. Its not that fancy graphical user
13
- interfaces don't have a role - but rather, to look at what we can do to support the
14
- tools and approaches people already use. And maybe even make their day job a little
15
- easier and a little more enjoyable.
16
-
17
- So this is what we are exploring with Dr.Egeria. An Egeria Markdown language that allows
18
- users to intermix requests to Egeria with other text through the use of standard Markdown. The markdown text
19
- that we process can be in standard markdown (.md) files, in Jupyter notebooks, and perhaps other file formats.
20
-
21
- This markdown file is an example. You will see that we intersperse normal narrative text (such as this)
22
- with Commands to Egeria. We introduce a specific vocabulary to make Egeria requests.
23
-
24
- In the example below we will create a new Egeria glossary to hold definitions related to Dr.Egeria.
25
- We will then show how we can process this file which will record the information into Egeria and create a new
26
- output file that acts as both a receipt showing what was processed as well as a starting point for making updates.
27
-
28
- So here we go! First lets define a new Glossary::
29
-
30
- ___
31
-
32
- # Create Glossary
33
-
34
- ## Glossary Name
35
-
36
- Egeria-Markdown
37
-
38
- ## Language
39
-
40
- English
41
-
42
- ## Description
43
-
44
- Glossary to describe the vocabulary of Dr.Egeria - an Egeria Markdown language to support the exchange of metadata in a Markdown form.
45
- Dr.Egeria allows users to create metadata annotations using any text entry system that supports the entry of standard Markdown
46
- notation and, through post-processing
47
- commands, validates the Egeria content and sends the requests to be sent to Egeria.
48
-
49
- ## Usage
50
-
51
- 1. (optional) load an example or template for the type of object from Egeria.
52
-
53
- 2. Create a new document (perhaps from a template) and edit it, adding in the content with the Dr.Egeria controlled Markdown language.
54
- 3. Process the document to validate and display it before you submit it, Validation may annotate your document with recommendations and potential issues.
55
- 4. Submit the document to Egeria using the Dr.Egeria commands.
56
- 5. Review the resulting output document to see what was created and give you a starting point for making updates.
57
-
58
- > Hint: Many of the hey_egeria commands have the option to save their output as Dr.Egeria markdown form.
59
-
60
- ## Version
61
-
62
-
63
- ## Status
64
-
65
- ACTIVE
66
-
67
-
68
-
69
- ___
70
-
71
-
72
- # First Walk-Through
73
- The block of markdown above is a request to create a new Egeria Glossary called `Egeria-Markdown`. Let's briefly walk
74
- through. The command starts when we see `# Create Glossary`. This is a known phrase in Dr.Egeria. When we see this
75
- phrase we recognize that this is an Egeria markdown request block. The request block ends if we encounter another `#` or
76
- `___`, or run out of text. Within this request block we note some **attributes** that begin with a `## `. The first that we encounter is `## Glossary Name`. Not all attributes need to be filled in. Later, we'll process this file and demonstrate how to tell - but first, lets look at the attributes shown:
77
-
78
- * `## Glossary Name` - this is the display name of the glossary. In this case the name is `Egeria-Markdown` As you can see, the value of the attribute is the plain text that follows it.
79
- * `## Language` - what language will the terms of the glossary be in (yes there are ways to have mixed language but Dr.Egeria strives to be as simple as possible).
80
- * `## Description` - a description of the glossary and its purpose.
81
- * `## Usage` - how the glossary is meant to be used, and by whom.
82
- * `## Qualified Name` - every element in Egeria must have a unique qualified name that we use to distinguish it from all other elements. The qualified name is meant to be understandable by humans, although it may follow formatting conventions. This attribute can be left blank for now - it will be automatically generated if empty.
83
- * `## GUID` - same story as qualified name except that this is meant for automation and not people. It is always created for us.
84
-
85
- 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
86
- more details a bit later).
87
-
88
- ## Great! That was easy!
89
-
90
- We now have a nice, clean, new...and empty...glossary - guess we better start filling it. Lets start filling it with terms.
91
-
92
- ___
93
-
94
- # Create Term
95
-
96
- ## Term Name
97
-
98
- Command
99
-
100
- ## In Glossary
101
-
102
- Glossary::Egeria-Markdown
103
-
104
-
105
- ## Summary
106
-
107
- Commands are how a user of the Dr.Egeria markdown language request an action.
108
-
109
- ## Description
110
-
111
- Commands are how a user can request Egeria to take an action such as Create or Update an Egeria element. Dr.Egeria
112
- provides a limited (but growing) set of commands. Dr.Egeria commands align with the pyegeria 'hey-egeria'
113
- command line interface and, of course, the underlying Egeria REST API.
114
-
115
- The commands currently use the following verbs to act on Egeria elements:
116
-
117
- * Create
118
- * Update
119
- * List
120
- * Provenance
121
-
122
- ## Abbreviation
123
-
124
- ## Examples
125
-
126
- Create Glossary or
127
- Update Glossary or
128
- Create Term or
129
- Update Term
130
-
131
- ## Usage
132
-
133
- Commands are used in the Dr.Egeria markdown language.
134
-
135
- ## Version
136
-
137
- 0.2
138
-
139
- ## Status
140
-
141
- ACTIVE
142
-
143
- ## Qualified Name
144
-
145
- ## GUID
146
-
147
- ___
148
-
149
- # Create Term
150
-
151
- ## In Glossary
152
-
153
- Glossary::Egeria-Markdown
154
-
155
- ## Term Name
156
-
157
- Source
158
-
159
- ## Summary
160
-
161
- Source of the markdown content.
162
-
163
- ## Description
164
-
165
- Source of the markdown content - could be jupter or plain markdown file.
166
-
167
- ## Abbreviation
168
-
169
- ## Examples
170
-
171
- ## Usage
172
-
173
- ## Version
174
-
175
- 0.2
176
-
177
- ## Status
178
-
179
- ACTIVE
180
-
181
- ## Qualified Name
182
-
183
- ## GUID
184
-
185
-
186
- ___
187
-
188
- # Create Term
189
-
190
- ## In Glossary
191
-
192
- Glossary::Egeria-Markdown
193
-
194
- ## Term Name
195
-
196
- Directive
197
-
198
- ## Summary
199
-
200
- A directive defines how the command is to be processed.
201
-
202
- ## Description
203
-
204
- Directives are one of:
205
-
206
- * display - just display what we've found
207
- * validate - check the validity of the requested action
208
- * process - process the requested action
209
-
210
-
211
- ## Version
212
-
213
- 0.1
214
-
215
- ## Status
216
-
217
- ACTIVE
218
-
219
- ## Qualified Name
220
-
221
- ## GUID
222
-
223
- ___
224
-
225
- # Some terms specified - Now what?
226
-
227
- Ok - we've now defined a glossary and three terms to go into the glossary. A few observations.
228
-
229
- * There is a degree of freedom in writing the definitions. The attributes aren't always in the same
230
- order and optional attributes don't need to be specified at all. We try to make things as easy as possible.
231
- * We can run a definition file through a validation process to check our proposed definition and provide feedback.
232
- * When we process a definition we will use the same validation process before trying to update Egeria
233
- with the requested definitions - requests may get rejected or altered - this will be consistent with the feedback we
234
- provide during validation.
235
-
236
- Here is what we'll do next.
237
-
238
- ## Next
239
- > Tip: An easy way to get started is by installing [Egeria Workspaces](https://github.com/odpi/egeria-workspaces) and
240
- > using the hey_egeria command line interface. Tutorials are available at [Egeria-Workspaces](https://youtu.be/Dc5i5EpRusE).
241
-
242
- We will run a small program called `dr_egeria_md.py` to operate on this markdown file.
243
- When we run this program we tell it not just the name of the file to process but also provide a directive on what to do.
244
- Currently we have the choice of:
245
-
246
- 1. Display - just parse the file, breaking it down into request blocks, and display what we find
247
- 2. Validate - parse the file and validate if the commands can be processed - showing information about what we observe.
248
- 3. Process - parse the request blocks and execute the commands - and produce a new output file to simplify further processing.
249
-
250
-
251
- # Great --> let's give it a try!
252
-
253
- Ok - its processed the file and generated output to the console that shows us what it has done.
254
- We also now have a new file in the designated outbox (specified by an Environment Variable).
255
- If we review that file, we see that it has similar content to this original file except that
256
- the **Create** statements have been replaced with **Update** statements and
257
- attributes such as **Qualified Name** and **GUID** now contain the known values.
258
-
259
- This means that if we want to make changes to the definitions that we have
260
- created, all we need to do is to make changes to the updatable attributes in this
261
- new document and resubmit it - pretty simple.
262
-
263
- Here is a diagram of this process from the user perspective:
264
-
265
- ```mermaid
266
- flowchart TD
267
- A[Text Editor or Jupyter Notebook] --> B(dr.egeria content)
268
- B --> C{dr.egeria command}
269
- C -->|display| D[console output]
270
- C -->|validate| E[console validation output and file]
271
- C -->|process| F[console output and processed output file]
272
- F-->|Additional Updates|A
273
- E-->|Additional Updates|A
274
- ```
275
-
276
- In the next section we'll see how we can update and extend what we have done by creating
277
- some glossary categories and then assigning categories to the terms.
278
- To do this we will copy the output document that we just created and call the
279
- copy dr_egeria_intro_part2.md. The text of the document has also been updated
280
- to reflect the purpose. Let's open that now!