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 Client class (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_methods to emit a DeprecationWarning instead of raising a RuntimeError when a method already exists
  • Removed the injected function definitions from info.py, ipython.py, logging.py, pubsub.py and service.py
  • Updated service_actions_handler.py to use Client methods instead of importing directly from service.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.client entrypoints
  • Verify all internal packages are up to date
  • Remove _inject_extension_methods entirely from Client
  • Remove collect_entry_points and wrap_function_as_method imports
  • Remove _CLIENT_ENTRYPOINTS constant
Edited by Stavros Topkas

Merge request reports

Loading