refactor(client): deprecate juice.client entrypoint injection
This MR refactors the juice.client entrypoint injection mechanism by moving all 12 injected methods directly into the Client class as proper methods. A deprecation warning is now emitted when any extension still uses the juice.client entrypoint.
Changes:
- Added 12 methods directly to the
Clientclass (display_system_info,ipyclient,ipyclient_async,display_service_logs,display_dashboard_logs,publisher_async,publisher_blocking,subscriber_async,subscriber_blocking,interrupt_service,restart_service,rebuild_service) - Updated
_inject_extension_methodsto emit aDeprecationWarninginstead of raising aRuntimeErrorwhen a method already exists - Removed the injected function definitions from
info.py,ipython.py,logging.py,pubsub.pyandservice.py - Updated
service_actions_handler.pyto useClientmethods instead of importing directly fromservice.py - Removed the "Adding Client Methods" section from the documentation
Follow-up MR (after internal packages have migrated):
- Wait 2 weeks after release for internal packages (Quantify, SCQT, Grace, SpinQT) to update and remove their
juice.cliententrypoints - Verify all internal packages are up to date
- Remove
_inject_extension_methodsentirely fromClient - Remove
collect_entry_pointsandwrap_function_as_methodimports - Remove
_CLIENT_ENTRYPOINTSconstant
Edited by Stavros Topkas