matlab-proxy 0.27.0__tar.gz → 0.27.1__tar.gz

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.

Potentially problematic release.


This version of matlab-proxy might be problematic. Click here for more details.

Files changed (203) hide show
  1. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/PKG-INFO +1 -1
  2. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/index.jsx +0 -2
  3. matlab_proxy-0.27.1/gui/src/components/LicensingGatherer/MHLM.css +7 -0
  4. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/LicensingGatherer/MHLM.jsx +2 -3
  5. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/MatlabJsd/index.jsx +0 -1
  6. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/hatch_build.py +3 -2
  7. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/app.py +37 -24
  8. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/app_state.py +1 -1
  9. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/settings.py +2 -3
  10. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/__init__.py +2 -2
  11. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/mwi/logger.py +1 -2
  12. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/mwi/token_auth.py +2 -2
  13. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/mwi/validators.py +1 -1
  14. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/pyproject.toml +1 -1
  15. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/test_app.py +3 -2
  16. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/.gitignore +0 -0
  17. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/LICENSE.md +0 -0
  18. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/README.md +0 -0
  19. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/.eslintrc.json +0 -0
  20. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/.gitignore +0 -0
  21. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/README.md +0 -0
  22. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/eslint.config.js +0 -0
  23. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/index.css +0 -0
  24. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/index.html +0 -0
  25. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/package-lock.json +0 -0
  26. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/package.json +0 -0
  27. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/public/favicon.ico +0 -0
  28. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/public/manifest.json +0 -0
  29. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/public/robots.txt +0 -0
  30. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/actionCreators/actionCreators.spec.js +0 -0
  31. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/actionCreators/index.js +0 -0
  32. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/actions/index.js +0 -0
  33. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/css/bootstrap.min.css +0 -0
  34. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/css/site7.min.css +0 -0
  35. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.eot +0 -0
  36. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.svg +0 -0
  37. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.ttf +0 -0
  38. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.woff +0 -0
  39. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.woff2 +0 -0
  40. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/fonts/mathworks-eps.svg +0 -0
  41. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/fonts/mathworks-eps.ttf +0 -0
  42. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/fonts/mathworks-eps.woff +0 -0
  43. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/fonts/mathworks-pictograms.svg +0 -0
  44. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/fonts/mathworks-pictograms.ttf +0 -0
  45. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/fonts/mathworks-pictograms.woff +0 -0
  46. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/fonts/mathworks.svg +0 -0
  47. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/fonts/mathworks.ttf +0 -0
  48. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/fonts/mathworks.woff +0 -0
  49. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/images/bug_reports/workaround.gif +0 -0
  50. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/images/responsive/global/ico-header-account-hover.svg +0 -0
  51. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/images/responsive/global/ico-header-account.svg +0 -0
  52. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/images/responsive/global/ico-header-contact-hover.svg +0 -0
  53. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/images/responsive/global/ico-header-contact.svg +0 -0
  54. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/3p/images/responsive/global/ico-sprite.png +0 -0
  55. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/App.css +0 -0
  56. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/App.spec.jsx +0 -0
  57. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/IdleBufferTimeouts.spec.jsx +0 -0
  58. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/App/MATLAB-env-blur.png +0 -0
  59. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Confirmation/Confirmation.spec.jsx +0 -0
  60. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Confirmation/index.jsx +0 -0
  61. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Controls/Controls.css +0 -0
  62. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Controls/Controls.spec.jsx +0 -0
  63. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Controls/feedback.svg +0 -0
  64. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Controls/help.svg +0 -0
  65. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Controls/index.jsx +0 -0
  66. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Controls/restart.svg +0 -0
  67. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Controls/sign-out.svg +0 -0
  68. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Controls/start.svg +0 -0
  69. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Controls/stop.svg +0 -0
  70. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Controls/terminate.svg +0 -0
  71. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/EntitlementSelector/EntitlementSelector.spec.jsx +0 -0
  72. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/EntitlementSelector/index.jsx +0 -0
  73. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Error/Error.css +0 -0
  74. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Error/Error.spec.jsx +0 -0
  75. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Error/index.jsx +0 -0
  76. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Help/Help.css +0 -0
  77. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Help/Help.spec.jsx +0 -0
  78. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Help/index.jsx +0 -0
  79. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Information/Information.css +0 -0
  80. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Information/Information.spec.jsx +0 -0
  81. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Information/index.jsx +0 -0
  82. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/LicensingGatherer/ExistingLicense.css +0 -0
  83. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/LicensingGatherer/ExistingLicense.jsx +0 -0
  84. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/LicensingGatherer/LicenseGatherer.spec.jsx +0 -0
  85. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/LicensingGatherer/LicensingGatherer.css +0 -0
  86. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/LicensingGatherer/NLM.jsx +0 -0
  87. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/LicensingGatherer/index.jsx +0 -0
  88. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/MatlabJsd/MatlabJsd.css +0 -0
  89. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/MatlabJsd/MatlabJsd.spec.jsx +0 -0
  90. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Overlay/Overlay.css +0 -0
  91. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Overlay/Overlay.spec.jsx +0 -0
  92. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/Overlay/index.jsx +0 -0
  93. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/OverlayTrigger/OverlayTrigger.css +0 -0
  94. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/OverlayTrigger/OverlayTrigger.spec.jsx +0 -0
  95. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/OverlayTrigger/ResizeOverlayTrigger.spec.jsx +0 -0
  96. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/OverlayTrigger/arrow.svg +0 -0
  97. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/OverlayTrigger/gripper.svg +0 -0
  98. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/OverlayTrigger/index.jsx +0 -0
  99. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/OverlayTrigger/trigger-error.svg +0 -0
  100. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/OverlayTrigger/trigger-ok.svg +0 -0
  101. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/ShutdownWarning/ShutdownWarning.css +0 -0
  102. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/components/ShutdownWarning/index.jsx +0 -0
  103. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/constants.js +0 -0
  104. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/main.jsx +0 -0
  105. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/reducers/index.js +0 -0
  106. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/reducers/reducers.spec.js +0 -0
  107. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/selectors/index.js +0 -0
  108. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/selectors/selectors.spec.js +0 -0
  109. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/setupTests.js +0 -0
  110. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/test/utils/react-test.jsx +0 -0
  111. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/test/utils/responses.js +0 -0
  112. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/src/test/utils/state.js +0 -0
  113. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/gui/vite.config.js +0 -0
  114. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/__init__.py +0 -0
  115. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/constants.py +0 -0
  116. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/default_configuration.py +0 -0
  117. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/devel.py +0 -0
  118. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/icons/matlab.svg +0 -0
  119. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/matlab/evaluateUserMatlabCode.m +0 -0
  120. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/matlab/startup.m +0 -0
  121. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/cookie_jar.py +0 -0
  122. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/event_loop.py +0 -0
  123. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/list_servers.py +0 -0
  124. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/mw.py +0 -0
  125. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/mwi/__init__.py +0 -0
  126. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/mwi/custom_http_headers.py +0 -0
  127. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/mwi/download.py +0 -0
  128. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/mwi/embedded_connector/__init__.py +0 -0
  129. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/mwi/embedded_connector/helpers.py +0 -0
  130. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/mwi/embedded_connector/request.py +0 -0
  131. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/mwi/environment_variables.py +0 -0
  132. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/mwi/exceptions.py +0 -0
  133. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/mwi/session_name.py +0 -0
  134. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/system.py +0 -0
  135. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy/util/windows.py +0 -0
  136. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/README.md +0 -0
  137. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/__init__.py +0 -0
  138. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/lib/README.md +0 -0
  139. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/lib/__init__.py +0 -0
  140. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/lib/api.py +0 -0
  141. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/storage/README.md +0 -0
  142. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/storage/__init__.py +0 -0
  143. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/storage/file_repository.py +0 -0
  144. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/storage/interface.py +0 -0
  145. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/storage/server.py +0 -0
  146. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/utils/__init__.py +0 -0
  147. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/utils/auth.py +0 -0
  148. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/utils/constants.py +0 -0
  149. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/utils/environment_variables.py +0 -0
  150. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/utils/exceptions.py +0 -0
  151. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/utils/helpers.py +0 -0
  152. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/utils/logger.py +0 -0
  153. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/web/README.md +0 -0
  154. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/web/__init__.py +0 -0
  155. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/web/app.py +0 -0
  156. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/web/monitor.py +0 -0
  157. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/matlab_proxy_manager/web/watcher.py +0 -0
  158. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/README.md +0 -0
  159. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/__init__.py +0 -0
  160. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/integration/__init__.py +0 -0
  161. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/integration/integration_tests_with_license/__init__.py +0 -0
  162. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/integration/integration_tests_with_license/conftest.py +0 -0
  163. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/integration/integration_tests_with_license/test_http_end_points.py +0 -0
  164. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/integration/integration_tests_without_license/__init__.py +0 -0
  165. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/integration/integration_tests_without_license/conftest.py +0 -0
  166. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/integration/integration_tests_without_license/test_matlab_is_down_if_unlicensed.py +0 -0
  167. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/integration/pytest.ini +0 -0
  168. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/integration/utils/__init__.py +0 -0
  169. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/integration/utils/integration_tests_utils.py +0 -0
  170. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/integration/utils/licensing.py +0 -0
  171. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/matlab-tests/TestEvaluateUserMatlabCodeScript.m +0 -0
  172. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/__init__.py +0 -0
  173. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/conftest.py +0 -0
  174. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/fixtures/fixture_auth.py +0 -0
  175. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/mocks/mock_client.py +0 -0
  176. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/proxy-manager/lib/test_api.py +0 -0
  177. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/proxy-manager/storage/test_file_repository.py +0 -0
  178. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/proxy-manager/storage/test_server.py +0 -0
  179. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/proxy-manager/web/test_app.py +0 -0
  180. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/proxy-manager/web/test_monitor.py +0 -0
  181. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/proxy-manager/web/test_watcher.py +0 -0
  182. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/pytest.ini +0 -0
  183. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/test_app_state.py +0 -0
  184. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/test_constants.py +0 -0
  185. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/test_ddux.py +0 -0
  186. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/test_devel.py +0 -0
  187. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/test_non_dev_mode.py +0 -0
  188. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/test_settings.py +0 -0
  189. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/util/__init__.py +0 -0
  190. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/util/mwi/__init__.py +0 -0
  191. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/util/mwi/embedded_connector/__init__.py +0 -0
  192. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/util/mwi/embedded_connector/test_helpers.py +0 -0
  193. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/util/mwi/embedded_connector/test_request.py +0 -0
  194. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/util/mwi/test_custom_http_headers.py +0 -0
  195. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/util/mwi/test_download.py +0 -0
  196. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/util/mwi/test_logger.py +0 -0
  197. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/util/mwi/test_token_auth.py +0 -0
  198. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/util/mwi/test_validators.py +0 -0
  199. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/util/test_cookie_jar.py +0 -0
  200. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/util/test_mw.py +0 -0
  201. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/unit/util/test_util.py +0 -0
  202. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/utils/__init__.py +0 -0
  203. {matlab_proxy-0.27.0 → matlab_proxy-0.27.1}/tests/utils/logging_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: matlab-proxy
3
- Version: 0.27.0
3
+ Version: 0.27.1
4
4
  Summary: Python® package enables you to launch MATLAB® and access it from a web browser.
5
5
  Project-URL: Homepage, https://github.com/mathworks/matlab-proxy/
6
6
  Project-URL: Documentation, https://github.com/mathworks/matlab-proxy/blob/main/README.md
@@ -4,8 +4,6 @@ import React, { useState, useCallback, useEffect, useMemo, useRef } from 'react'
4
4
  import { useSelector, useDispatch } from 'react-redux';
5
5
  import { useInterval, useTimeoutFn } from 'react-use';
6
6
  import './App.css';
7
- import './3p/css/bootstrap.min.css';
8
- import './3p/css/site7.min.css';
9
7
  import Confirmation from '../Confirmation';
10
8
  import OverlayTrigger from '../OverlayTrigger';
11
9
  import Overlay from '../Overlay';
@@ -0,0 +1,7 @@
1
+ /* Copyright 2025 The MathWorks, Inc. */
2
+
3
+ iframe {
4
+ border: 0px;
5
+ height: 380px;
6
+ width: 100%;
7
+ }
@@ -13,6 +13,8 @@ import {
13
13
  fetchSetLicensing
14
14
  } from '../../actionCreators';
15
15
 
16
+ import './MHLM.css';
17
+
16
18
  // Send a generated nonce to the login iframe
17
19
  function setLoginNonce (username) {
18
20
  const clientNonce = (Math.random() + '').substr(2);
@@ -150,9 +152,6 @@ function MHLM ({ mhlmLicensingInfo = null }) {
150
152
  id="loginframe"
151
153
  title="MathWorks Embedded Login"
152
154
  type="text/html"
153
- height="380"
154
- width="100%"
155
- frameBorder="0"
156
155
  src={embeddedLoginUrl}
157
156
  onLoad={handleIFrameLoaded}
158
157
  >
@@ -39,7 +39,6 @@ function MatlabJsd ({ url, iFrameRef, shouldListenForEvents, handleUserInteracti
39
39
  ref={iFrameRef}
40
40
  title="MATLAB JSD"
41
41
  src={url}
42
- frameBorder="0"
43
42
  allowFullScreen />
44
43
  </div>
45
44
  );
@@ -3,7 +3,7 @@
3
3
  import os
4
4
  import subprocess
5
5
  from pathlib import Path
6
- from shutil import which, copytree
6
+ from shutil import copytree, which
7
7
  from typing import Any, Dict
8
8
 
9
9
  from hatchling.builders.hooks.plugin.interface import BuildHookInterface
@@ -23,7 +23,8 @@ class CustomBuildHook(BuildHookInterface):
23
23
  "npm must be installed and on the path during package build!"
24
24
  )
25
25
 
26
- npm_install = [npm_path, "install"]
26
+ # Adding retries to npm install to avoid transient rate limiting issues
27
+ npm_install = [npm_path, "install", "--fetch-retries", "10"]
27
28
  npm_build = [npm_path, "run", "build"]
28
29
 
29
30
  pwd = Path.cwd()
@@ -432,25 +432,38 @@ async def shutdown_integration_delete(req):
432
432
  req (HTTPRequest): HTTPRequest Object
433
433
  """
434
434
  state = req.app["state"]
435
-
436
435
  logger.info(f"Shutting down {state.settings['integration_name']}...")
437
436
 
438
- # Send response manually because this has to happen before the application exits
439
437
  res = create_status_response(req.app, "../")
440
- await res.prepare(req)
441
- await res.write_eof()
442
438
 
443
- # Gracefully shutdown the server
444
- await req.app.shutdown()
445
- await req.app.cleanup()
439
+ # Schedule the shutdown to happen after the response is sent
440
+ asyncio.create_task(_shutdown_after_response(req.app))
441
+
442
+ return res
443
+
444
+
445
+ async def _shutdown_after_response(app):
446
+ # Shutdown the application after a short delay to allow the response to be fully sent
447
+ # back to the client before the server is stopped
448
+ await asyncio.sleep(0.1)
449
+
450
+ # aiohttp shutdown to be invoked before cleanup -
451
+ # https://docs.aiohttp.org/en/stable/web_reference.html#aiohttp.web.Application.shutdown
452
+ await app.shutdown()
453
+ await app.cleanup()
446
454
 
447
455
  loop = util.get_event_loop()
448
- # Run the current batch of coroutines in the event loop and then exit.
449
- # This completes the loop.run_forever() blocking call and subsequent code
450
- # in create_and_start_app() resumes execution.
451
- loop.stop()
452
456
 
453
- return res
457
+ # Cancel remaining tasks (except this one: _shutdown_after_response)
458
+ running_tasks = asyncio.all_tasks(loop)
459
+ current_task = asyncio.current_task()
460
+ if current_task:
461
+ running_tasks.discard(current_task)
462
+
463
+ await util.cancel_tasks(running_tasks)
464
+
465
+ # Stop the event loop from this task
466
+ loop.call_soon_threadsafe(loop.stop)
454
467
 
455
468
 
456
469
  # @token_auth.authenticate_access_decorator
@@ -873,8 +886,6 @@ def configure_and_start(app):
873
886
  """
874
887
  loop = util.get_event_loop()
875
888
 
876
- web_logger = None if not mwi_env.is_web_logging_enabled() else logger
877
-
878
889
  # Setup the session storage,
879
890
  # Uniqified per session to prevent multiple proxy servers on the same FQDN from interfering with each other.
880
891
  uniqify_session_cookie = secrets.token_hex()
@@ -888,7 +899,9 @@ def configure_and_start(app):
888
899
  )
889
900
 
890
901
  # Setup runner
891
- runner = web.AppRunner(app, logger=web_logger, access_log=web_logger)
902
+ runner = web.AppRunner(
903
+ app, access_log=logger if mwi_env.is_web_logging_enabled() else None
904
+ )
892
905
  loop.run_until_complete(runner.setup())
893
906
 
894
907
  # Prepare site to start, then set port of the app.
@@ -961,7 +974,7 @@ def create_app(config_name=matlab_proxy.get_default_config_name()):
961
974
  app.router.add_route("*", f"{base_url}", root_redirect)
962
975
 
963
976
  app.router.add_route("*", f"{base_url}/{{proxyPath:.*}}", matlab_view)
964
- app.on_cleanup.append(cleanup_background_tasks)
977
+ app.on_shutdown.append(cleanup_background_tasks)
965
978
 
966
979
  return app
967
980
 
@@ -1011,15 +1024,15 @@ def create_and_start_app(config_name):
1011
1024
 
1012
1025
  # After handling the interrupt, proceed with shutting down the server gracefully.
1013
1026
  try:
1027
+ # aiohttp shutdown to be invoked before cleanup -
1028
+ # https://docs.aiohttp.org/en/stable/web_reference.html#aiohttp.web.Application.shutdown
1029
+ loop.run_until_complete(app.shutdown())
1030
+ loop.run_until_complete(app.cleanup())
1031
+
1014
1032
  running_tasks = asyncio.all_tasks(loop)
1015
- loop.run_until_complete(
1016
- asyncio.gather(
1017
- app.shutdown(),
1018
- app.cleanup(),
1019
- util.cancel_tasks(running_tasks),
1020
- return_exceptions=False,
1021
- )
1022
- )
1033
+
1034
+ # Gracefully cancel all running background tasks
1035
+ loop.run_until_complete(util.cancel_tasks(running_tasks))
1023
1036
 
1024
1037
  except Exception:
1025
1038
  pass
@@ -484,7 +484,7 @@ class AppState:
484
484
  "'busy' status endpoint returned an invalid response, falling back to using 'ping' endpoint to determine MATLAB state"
485
485
  )
486
486
  warning = f"{mwi_env.get_env_name_shutdown_on_idle_timeout()} environment variable is supported only for MATLAB versions R2021a or later"
487
- logger.warn(warning)
487
+ logger.warning(warning)
488
488
  self.warnings.append(warning)
489
489
 
490
490
  else:
@@ -289,7 +289,6 @@ def get(config_name=matlab_proxy.get_default_config_name(), dev=False):
289
289
  if not settings["is_windowmanager_available"]:
290
290
  warning = " Unable to find fluxbox on the system PATH. To use Simulink Online, add Fluxbox to the system PATH and restart matlab-proxy. For details, see https://github.com/mathworks/matlab-proxy#requirements."
291
291
  logger.warning(warning)
292
- settings["warnings"].append(warning)
293
292
 
294
293
  settings.update(get_matlab_settings())
295
294
 
@@ -500,7 +499,7 @@ def _validate_ssl_files_and_get_ssl_context(mwi_config_folder):
500
499
  # Don't use SSL if the user has explicitly disabled SSL communication or not set the respective env var
501
500
  if not is_ssl_enabled:
502
501
  if ssl_cert_file:
503
- logger.warn(
502
+ logger.warning(
504
503
  f"Ignoring provided SSL files, as {env_name_enable_ssl} is either unset or set to false"
505
504
  )
506
505
  return None
@@ -597,7 +596,7 @@ def generate_new_self_signed_certs(mwi_certs_dir):
597
596
  f.write(cert.public_bytes(serialization.Encoding.PEM))
598
597
 
599
598
  except Exception as ex:
600
- logger.warn(
599
+ logger.warning(
601
600
  f"Failed to generate self-signed certificates, proceeding with non-secure mode! Error: {ex}"
602
601
  )
603
602
  cert_file = priv_key_file = None
@@ -1,4 +1,4 @@
1
- # Copyright 2020-2024 The MathWorks, Inc.
1
+ # Copyright 2020-2025 The MathWorks, Inc.
2
2
  import argparse
3
3
  import inspect
4
4
  import os
@@ -312,7 +312,7 @@ class TrackingLock:
312
312
  self._acquired_by = None
313
313
  self._lock = asyncio.Lock()
314
314
  if not purpose:
315
- logger.warn("Provide a purpose for this instance of TrackingLock")
315
+ logger.warning("Provide a purpose for this instance of TrackingLock")
316
316
  self._purpose = purpose
317
317
 
318
318
  @property
@@ -1,4 +1,4 @@
1
- # Copyright 2020-2024 The MathWorks, Inc.
1
+ # Copyright 2020-2025 The MathWorks, Inc.
2
2
  """Functions to access & control the logging behavior of the app"""
3
3
 
4
4
  import logging
@@ -8,7 +8,6 @@ from pathlib import Path
8
8
 
9
9
  from . import environment_variables as mwi_env
10
10
 
11
-
12
11
  logging.getLogger("aiohttp_session").setLevel(logging.ERROR)
13
12
 
14
13
 
@@ -1,4 +1,4 @@
1
- # Copyright 2020-2024 The MathWorks, Inc.
1
+ # Copyright 2020-2025 The MathWorks, Inc.
2
2
 
3
3
  # This file contains functions required to enable token based authentication in the server.
4
4
 
@@ -39,7 +39,7 @@ def generate_mwi_auth_token_and_hash():
39
39
 
40
40
  if enable_token_auth == "false":
41
41
  if auth_token:
42
- logger.warn(
42
+ logger.warning(
43
43
  f"Ignoring {env_name_mwi_auth_token}, as {env_name_enable_mwi_token_auth} explicitly set to false"
44
44
  )
45
45
  return _format_token_as_dictionary(None)
@@ -380,7 +380,7 @@ def validate_idle_timeout(timeout):
380
380
  return timeout
381
381
 
382
382
  except ValueError:
383
- logger.warn(
383
+ logger.warning(
384
384
  f"Invalid value supplied for {mwi_env.get_env_name_shutdown_on_idle_timeout()}: {timeout}. Continuing without any IDLE timeout."
385
385
  )
386
386
  return None
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
6
6
 
7
7
  [project]
8
8
  name = "matlab-proxy"
9
- version = "0.27.0"
9
+ version = "0.27.1"
10
10
  description = "Python® package enables you to launch MATLAB® and access it from a web browser."
11
11
  readme = "README.md"
12
12
  license = "LicenseRef-MATHWORKS-CLOUD-REFERENCE-ARCHITECTURE-LICENSE"
@@ -79,9 +79,10 @@ def test_create_app(event_loop):
79
79
  # Verify router is configured with some routes
80
80
  assert test_server.router._resources is not None
81
81
 
82
- # Verify app server has a cleanup task
82
+ # Verify app server has a shutdown task
83
83
  # By default there is 1 for clean up task
84
- assert len(test_server.on_cleanup) > 1
84
+ assert len(test_server.on_shutdown) == 1
85
+ assert len(test_server.on_cleanup) == 1
85
86
  event_loop.run_until_complete(test_server["state"].stop_server_tasks())
86
87
 
87
88
 
File without changes
File without changes
File without changes