Repository navigation
My Profile: rename app to my_egeria.py, clearer Add-screen switches, remove deprecated code - #491
Merged
Merged
Conversation
Co-authored-by: Junie <junie@jetbrains.com> Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
…w peers - Load the user's profile and existing Peer relationships on mount - Search actor profiles (case-insensitive) instead of user identities - Add description input and a Link Peer button to create the relationship Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
…, added custom report format for listing peers Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
… of the custome report format Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
Merge the experimental my_network.py functionality into the My Profile app as a "My Network" option: list the user's peers, search for people and add them, view a peer's contact methods and communities, and remove a peer (with confirmation) via unlink_peer_person. - network_handler.py: NetworkMixin doing the Egeria calls - MyNetworkScreen.py: network screen and remove-confirmation dialog - my_network.py: add Remove from Network button with confirmation, hide stale details after removal - my_profile_report_specs.json: fix invalid JSON, query the Peer relationship, and show the person's GUID - tests for the mixin, screen and option routing Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
TechnologyTypesScreen dismisses quit/go back with the strings "200"/"201", but tech_type_callback compared against the int 201. The back result was then treated as a tech type name, get_tech_type_detail returned the string "No elements found", and .get() on it raised AttributeError. - match "200"/"201" as either str or int and return to the main screen - if the tech type detail is not a dict, notify and return to the main screen instead of crashing - stop after showing the error screen when the detail lookup fails - use the Egeria client for get_tech_type_detail Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
- user manual: My Network section (view details, search and add, remove with confirmation), keyboard reference rows, intro mention - reference guide: NetworkMixin section with sequence diagram and function table, plus source layout, class diagram, menu dispatch, report spec, client and testing updates Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
Restore config/config.json and test_classification_manager.py to their upstream versions. The config change pointed the report spec modules and log directory at local absolute paths, and the test change was local debugging of the Peer relationship query. Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
- go back/quit as "201"/"200" (str or int) returns to the main screen without looking up a tech type - a string detail result such as "No elements found" notifies and returns to the main screen - patch Egeria rather than AutomatedCuration, matching the handler, so the callback tests no longer try to reach the server - a failed detail lookup now pushes only the StatusScreen Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
The screen's prompt was a TextArea, which took focus when the screen opened. A focused TextArea consumes printable keys, so b (go back), q, s, u, t and k did nothing and Textual hid them from the footer. - make the prompt a Static, and mention b/Escape in it - add Escape as a go-back key (not shown in the footer) - move Go back next to Quit so it isn't cut off on narrow terminals - tests: b and Escape pressed straight after the screen opens dismiss with [200]; the callback returns [200] to the main screen - user manual: document Escape on Shop for Data Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
Every screen now follows the same rules: - escape goes back one level (every screen except Main) - q is the only plain-letter key: main menu on list screens, quit on Main; left off text-entry forms, where it would be typed into the Input - every other action is a ctrl key with one meaning app-wide: ctrl+s submit, ctrl+n add, ctrl+d delete, ctrl+o open, ctrl+k/ctrl+b bookmark row/bookmarks, ctrl+u subscribe, ctrl+l sample, ctrl+g glossary search, ctrl+y copy GUID, ctrl+r refresh (was r) Return codes are unchanged; only the keys moved. Also fixes keys that could never fire: ctrl+i (sent as Tab) and ctrl+c on Edit Profile, the "return" key name on Status and the sample-data view, and the Technology Types quit/go back mix-ups. Adds ctrl+s to Create/Edit Profile. MainScreen shows the user name as its subtitle; its config logging moves to on_mount, since self.log needs a running app. test_key_bindings.py enforces the convention; docs updated to match. Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
…-profile-strict-tests Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
…s to User Identities Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
…ests Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com> # Conflicts: # docs/my_profile_app_manual.md # my_egeria/my_egeria/DemoCode/My_Profile/MyNetworkScreen.py # my_egeria/my_egeria/DemoCode/My_Profile/ShopForDataScreen.py # tests/micro-tests/my_profile/test_screens.py
Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
…tual switch widget Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
…idied up the code files for the project Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
dwolfson
approved these changes
Oct 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
my_profile_app.py→my_egeria.py, and update everything that pointed at it:pyproject.tomlmy_profileentry point andmy_egeria/serve.py(serve_my_profile) now usemy_egeria.DemoCode.My_Profile.my_egeriaexamples/developer_guide/capture_screenshots.py, the splash screen subtitle, READMEs and docsdocs/my_profile_app_manual.md→docs/my_egeria_manual.md; test file renamedtest_my_profile_app.py→test_my_egeria.py; all links updatedDemoCode/Deprecated/andDemoCode/Experimental Code/folders (~28,900 lines of unused code).Note on the module name
The app module
My_Profile/my_egeria.pyhas the same name as themy_egeriapackage. The package is editable-installed, and Python checks that kind of install only after the normalsys.pathsearch. So once theMy_Profilefolder is onsys.path(every handler module adds it), a firstimport my_egeriafinds the app file instead of the package. That broketest_my_egeria_serve.pywhen it ran in the same session as the My Profile tests.tests/micro-tests/my_profile/conftest.pynow imports the package before adding the folder to the path. The normal launch paths (my_profile,python -m ...,serve_my_profile) are not affected.Test plan
pytest tests/micro-tests/my_profile tests/micro-tests/test_my_egeria_serve.py: 531 passed, 1 skipped. Also run with the files in the opposite order, so the result doesn't depend on test ordermy_profileentry point and theserve.pymodule path both import correctly🤖 Generated with Claude Code