matlab-proxy 0.19.0__tar.gz → 0.20.0__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 (172) hide show
  1. {matlab-proxy-0.19.0/matlab_proxy.egg-info → matlab-proxy-0.20.0}/PKG-INFO +2 -2
  2. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/README.md +1 -1
  3. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/index.js +1 -1
  4. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/app.py +22 -15
  5. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/logger.py +22 -2
  6. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/util/windows.py +4 -1
  7. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0/matlab_proxy.egg-info}/PKG-INFO +2 -2
  8. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/setup.py +1 -1
  9. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/util/mwi/test_logger.py +38 -4
  10. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/LICENSE.md +0 -0
  11. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/MANIFEST.in +0 -0
  12. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/.eslintrc.json +0 -0
  13. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/.gitignore +0 -0
  14. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/README.md +0 -0
  15. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/package-lock.json +0 -0
  16. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/package.json +0 -0
  17. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/public/favicon.ico +0 -0
  18. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/public/index.html +0 -0
  19. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/public/manifest.json +0 -0
  20. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/public/robots.txt +0 -0
  21. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/actionCreators/actionCreators.spec.js +0 -0
  22. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/actionCreators/index.js +0 -0
  23. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/actions/index.js +0 -0
  24. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/css/bootstrap.min.css +0 -0
  25. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/css/site7.min.css +0 -0
  26. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.eot +0 -0
  27. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.svg +0 -0
  28. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.ttf +0 -0
  29. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.woff +0 -0
  30. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.woff2 +0 -0
  31. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks-eps.svg +0 -0
  32. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks-eps.ttf +0 -0
  33. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks-eps.woff +0 -0
  34. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks-pictograms.svg +0 -0
  35. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks-pictograms.ttf +0 -0
  36. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks-pictograms.woff +0 -0
  37. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks.svg +0 -0
  38. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks.ttf +0 -0
  39. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks.woff +0 -0
  40. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/images/bug_reports/workaround.gif +0 -0
  41. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/images/responsive/global/ico-header-account-hover.svg +0 -0
  42. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/images/responsive/global/ico-header-account.svg +0 -0
  43. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/images/responsive/global/ico-header-contact-hover.svg +0 -0
  44. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/images/responsive/global/ico-header-contact.svg +0 -0
  45. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/3p/images/responsive/global/ico-sprite.png +0 -0
  46. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/App.css +0 -0
  47. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/App.spec.js +0 -0
  48. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/IdleBufferTimeouts.spec.js +0 -0
  49. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/App/MATLAB-env-blur.png +0 -0
  50. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Confirmation/Confirmation.spec.js +0 -0
  51. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Confirmation/index.js +0 -0
  52. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Controls/Controls.css +0 -0
  53. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Controls/Controls.spec.js +0 -0
  54. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Controls/feedback.svg +0 -0
  55. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Controls/help.svg +0 -0
  56. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Controls/index.js +0 -0
  57. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Controls/restart.svg +0 -0
  58. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Controls/sign-out.svg +0 -0
  59. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Controls/start.svg +0 -0
  60. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Controls/stop.svg +0 -0
  61. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Controls/terminate.svg +0 -0
  62. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/EntitlementSelector/EntitlementSelector.spec.js +0 -0
  63. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/EntitlementSelector/index.js +0 -0
  64. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Error/Error.css +0 -0
  65. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Error/Error.spec.js +0 -0
  66. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Error/index.js +0 -0
  67. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Help/Help.css +0 -0
  68. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Help/Help.spec.js +0 -0
  69. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Help/index.js +0 -0
  70. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Information/Information.css +0 -0
  71. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Information/Information.spec.js +0 -0
  72. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Information/index.js +0 -0
  73. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/ExistingLicense.css +0 -0
  74. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/ExistingLicense.js +0 -0
  75. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/LicenseGatherer.spec.js +0 -0
  76. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/LicensingGatherer.css +0 -0
  77. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/MHLM.js +0 -0
  78. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/NLM.js +0 -0
  79. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/index.js +0 -0
  80. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/MatlabJsd/MatlabJsd.css +0 -0
  81. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/MatlabJsd/MatlabJsd.spec.js +0 -0
  82. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/MatlabJsd/index.js +0 -0
  83. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Overlay/Overlay.css +0 -0
  84. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Overlay/Overlay.spec.js +0 -0
  85. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/Overlay/index.js +0 -0
  86. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/OverlayTrigger.css +0 -0
  87. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/OverlayTrigger.spec.js +0 -0
  88. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/ResizeOverlayTrigger.spec.js +0 -0
  89. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/arrow.svg +0 -0
  90. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/gripper.svg +0 -0
  91. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/index.js +0 -0
  92. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/trigger-error.svg +0 -0
  93. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/trigger-ok.svg +0 -0
  94. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/ShutdownWarning/ShutdownWarning.css +0 -0
  95. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/components/ShutdownWarning/index.js +0 -0
  96. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/constants.js +0 -0
  97. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/index.css +0 -0
  98. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/index.js +0 -0
  99. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/jest.config.json +0 -0
  100. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/logo.svg +0 -0
  101. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/reducers/index.js +0 -0
  102. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/reducers/reducers.spec.js +0 -0
  103. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/selectors/index.js +0 -0
  104. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/selectors/selectors.spec.js +0 -0
  105. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/serviceWorker.js +0 -0
  106. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/setupTests.js +0 -0
  107. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/test/utils/react-test.js +0 -0
  108. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/test/utils/responses.js +0 -0
  109. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/gui/src/test/utils/state.js +0 -0
  110. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/__init__.py +0 -0
  111. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/app_state.py +0 -0
  112. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/constants.py +0 -0
  113. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/default_configuration.py +0 -0
  114. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/devel.py +0 -0
  115. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/icons/matlab.svg +0 -0
  116. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/matlab/evaluateUserMatlabCode.m +0 -0
  117. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/matlab/startup.m +0 -0
  118. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/settings.py +0 -0
  119. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/util/__init__.py +0 -0
  120. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/util/event_loop.py +0 -0
  121. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/util/list_servers.py +0 -0
  122. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/util/mw.py +0 -0
  123. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/__init__.py +0 -0
  124. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/custom_http_headers.py +0 -0
  125. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/download.py +0 -0
  126. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/embedded_connector/__init__.py +0 -0
  127. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/embedded_connector/helpers.py +0 -0
  128. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/embedded_connector/request.py +0 -0
  129. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/environment_variables.py +0 -0
  130. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/exceptions.py +0 -0
  131. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/token_auth.py +0 -0
  132. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/validators.py +0 -0
  133. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy/util/system.py +0 -0
  134. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy.egg-info/SOURCES.txt +0 -0
  135. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy.egg-info/dependency_links.txt +0 -0
  136. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy.egg-info/entry_points.txt +0 -0
  137. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy.egg-info/not-zip-safe +0 -0
  138. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy.egg-info/requires.txt +0 -0
  139. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/matlab_proxy.egg-info/top_level.txt +0 -0
  140. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/setup.cfg +0 -0
  141. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/integration/__init__.py +0 -0
  142. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/integration/integration_tests_with_license/__init__.py +0 -0
  143. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/integration/integration_tests_with_license/conftest.py +0 -0
  144. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/integration/integration_tests_with_license/test_http_end_points.py +0 -0
  145. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/integration/integration_tests_without_license/__init__.py +0 -0
  146. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/integration/integration_tests_without_license/conftest.py +0 -0
  147. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/integration/integration_tests_without_license/test_matlab_is_down_if_unlicensed.py +0 -0
  148. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/integration/utils/__init__.py +0 -0
  149. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/integration/utils/integration_tests_utils.py +0 -0
  150. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/integration/utils/licensing.py +0 -0
  151. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/__init__.py +0 -0
  152. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/conftest.py +0 -0
  153. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/test_app.py +0 -0
  154. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/test_app_state.py +0 -0
  155. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/test_constants.py +0 -0
  156. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/test_ddux.py +0 -0
  157. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/test_devel.py +0 -0
  158. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/test_non_dev_mode.py +0 -0
  159. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/test_settings.py +0 -0
  160. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/util/__init__.py +0 -0
  161. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/util/mwi/__init__.py +0 -0
  162. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/util/mwi/embedded_connector/__init__.py +0 -0
  163. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/util/mwi/embedded_connector/test_helpers.py +0 -0
  164. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/util/mwi/embedded_connector/test_request.py +0 -0
  165. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/util/mwi/test_custom_http_headers.py +0 -0
  166. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/util/mwi/test_download.py +0 -0
  167. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/util/mwi/test_token_auth.py +0 -0
  168. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/util/mwi/test_validators.py +0 -0
  169. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/util/test_mw.py +0 -0
  170. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/unit/util/test_util.py +0 -0
  171. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/utils/__init__.py +0 -0
  172. {matlab-proxy-0.19.0 → matlab-proxy-0.20.0}/tests/utils/logging_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: matlab-proxy
3
- Version: 0.19.0
3
+ Version: 0.20.0
4
4
  Summary: Python® package enables you to launch MATLAB® and access it from a web browser.
5
5
  Home-page: https://github.com/mathworks/matlab-proxy/
6
6
  Author: The MathWorks, Inc.
@@ -171,7 +171,7 @@ Description: # MATLAB Proxy
171
171
 
172
172
  ### Windows Subsystem for Linux (WSL 2)
173
173
 
174
- To install `matlab-proxy` in WSL 2, follow the steps mentioned in the [Installation Guide for WSL 2](./installation/wsl2/README.md).
174
+ To install `matlab-proxy` in WSL 2, follow the steps mentioned in the [Installation Guide for WSL 2](./install_guides/wsl2/README.md).
175
175
 
176
176
  ## Using an already activated MATLAB with matlab-proxy
177
177
  `matlab-proxy` version `v0.7.0` introduces support for using an existing MATLAB license. Use the Existing License option only if you have an activated MATLAB. This allows you to start MATLAB without authenticating every time.
@@ -163,7 +163,7 @@ $ pip install --upgrade matlab-proxy>=0.5.0
163
163
 
164
164
  ### Windows Subsystem for Linux (WSL 2)
165
165
 
166
- To install `matlab-proxy` in WSL 2, follow the steps mentioned in the [Installation Guide for WSL 2](./installation/wsl2/README.md).
166
+ To install `matlab-proxy` in WSL 2, follow the steps mentioned in the [Installation Guide for WSL 2](./install_guides/wsl2/README.md).
167
167
 
168
168
  ## Using an already activated MATLAB with matlab-proxy
169
169
  `matlab-proxy` version `v0.7.0` introduces support for using an existing MATLAB license. Use the Existing License option only if you have an activated MATLAB. This allows you to start MATLAB without authenticating every time.
@@ -162,7 +162,7 @@ function App () {
162
162
  const htmlToRenderMATLAB = () => {
163
163
  let theHtmlToRenderMATLAB = useMOS ? 'index-matlabonlineserver.html' : 'index-jsd-cr.html';
164
164
  if (useMRE) {
165
- theHtmlToRenderMATLAB += `?mre=${fullyQualifiedUrl}`;
165
+ theHtmlToRenderMATLAB += `?mre=${encodeURIComponent(fullyQualifiedUrl)}`;
166
166
  }
167
167
  return theHtmlToRenderMATLAB;
168
168
  };
@@ -443,7 +443,7 @@ async def shutdown_integration_delete(req):
443
443
  loop = util.get_event_loop()
444
444
  # Run the current batch of coroutines in the event loop and then exit.
445
445
  # This completes the loop.run_forever() blocking call and subsequent code
446
- # in main() resumes execution.
446
+ # in create_and_start_app() resumes execution.
447
447
  loop.stop()
448
448
 
449
449
  return res
@@ -807,8 +807,8 @@ async def cleanup_background_tasks(app):
807
807
  await state.stop_matlab(force_quit=True)
808
808
 
809
809
  # Cleanup server tasks
810
- all_tasks = state.server_tasks
811
- await util.cancel_tasks(all_tasks)
810
+ server_tasks = state.server_tasks
811
+ await util.cancel_tasks(server_tasks)
812
812
 
813
813
 
814
814
  def configure_and_start(app):
@@ -936,6 +936,11 @@ def configure_no_proxy_in_env():
936
936
 
937
937
 
938
938
  def create_and_start_app(config_name):
939
+ """Creates and start the web server. Will block until the server is interrupted or is shut down
940
+
941
+ Args:
942
+ config_name (str): Name of the configuration to use with matlab-proxy.
943
+ """
939
944
  configure_no_proxy_in_env()
940
945
 
941
946
  # Create, configure and start the app.
@@ -947,23 +952,25 @@ def create_and_start_app(config_name):
947
952
  # Add signal handlers for the current python process
948
953
  loop = util.add_signal_handlers(loop)
949
954
  try:
955
+ # Further execution is stopped here until an interrupt is raised
950
956
  loop.run_forever()
957
+
951
958
  except SystemExit:
952
959
  pass
953
960
 
954
- async def shutdown():
955
- """Shuts down the app in the event of a signal interrupt."""
956
- logger.info("Shutting down MATLAB proxy-app")
957
-
958
- await app.shutdown()
959
- await app.cleanup()
960
-
961
- # Shutdown any running tasks.
962
- await util.cancel_tasks(asyncio.all_tasks())
963
-
961
+ # After handling the interrupt, proceed with shutting down the server gracefully.
964
962
  try:
965
- loop.run_until_complete(shutdown())
966
- except:
963
+ running_tasks = asyncio.all_tasks(loop)
964
+ loop.run_until_complete(
965
+ asyncio.gather(
966
+ app.shutdown(),
967
+ app.cleanup(),
968
+ util.cancel_tasks(running_tasks),
969
+ return_exceptions=False,
970
+ )
971
+ )
972
+
973
+ except Exception:
967
974
  pass
968
975
 
969
976
  logger.info("Finished shutting down. Thank you for using the MATLAB proxy.")
@@ -1,4 +1,4 @@
1
- # Copyright 2020-2023 The MathWorks, Inc.
1
+ # Copyright 2020-2024 The MathWorks, Inc.
2
2
  """Functions to access & control the logging behavior of the app
3
3
  """
4
4
 
@@ -52,7 +52,17 @@ def __set_logging_configuration():
52
52
  # query for user specified environment variables
53
53
  log_level = os.getenv(
54
54
  mwi_env.get_env_name_logging_level(), __get_default_log_level()
55
- )
55
+ ).upper()
56
+
57
+ valid = __is_valid_log_level(log_level)
58
+
59
+ if not valid:
60
+ default_log_level = __get_default_log_level()
61
+ logging.warn(
62
+ f"Unknown log level '{log_level}' set. Defaulting to log level '{default_log_level}'..."
63
+ )
64
+ log_level = default_log_level
65
+
56
66
  log_file = os.getenv(mwi_env.get_env_name_log_file(), None)
57
67
 
58
68
  ## Set logging object
@@ -110,3 +120,13 @@ def __get_default_log_level():
110
120
  String: The default logging level
111
121
  """
112
122
  return "INFO"
123
+
124
+
125
+ def __is_valid_log_level(log_level):
126
+ """Helper to check if the log level is valid.
127
+
128
+ Returns:
129
+ Boolean: Whether log level exists
130
+ """
131
+
132
+ return hasattr(logging, log_level)
@@ -49,10 +49,13 @@ async def start_matlab(matlab_cmd, matlab_env):
49
49
  """
50
50
  import psutil
51
51
 
52
+ # The stdout is used to suppress the MATLAB outputs from being shown in the terminal.
53
+ # We set it to DEVNULL instead of PIPE because PIPE has a limited buffer size and can
54
+ # block the process if the output exceeds the buffer limit.
52
55
  intermediate_proc = await asyncio.create_subprocess_exec(
53
56
  *matlab_cmd,
54
57
  env=matlab_env,
55
- stdout=asyncio.subprocess.PIPE,
58
+ stdout=asyncio.subprocess.DEVNULL,
56
59
  stderr=asyncio.subprocess.STDOUT,
57
60
  )
58
61
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: matlab-proxy
3
- Version: 0.19.0
3
+ Version: 0.20.0
4
4
  Summary: Python® package enables you to launch MATLAB® and access it from a web browser.
5
5
  Home-page: https://github.com/mathworks/matlab-proxy/
6
6
  Author: The MathWorks, Inc.
@@ -171,7 +171,7 @@ Description: # MATLAB Proxy
171
171
 
172
172
  ### Windows Subsystem for Linux (WSL 2)
173
173
 
174
- To install `matlab-proxy` in WSL 2, follow the steps mentioned in the [Installation Guide for WSL 2](./installation/wsl2/README.md).
174
+ To install `matlab-proxy` in WSL 2, follow the steps mentioned in the [Installation Guide for WSL 2](./install_guides/wsl2/README.md).
175
175
 
176
176
  ## Using an already activated MATLAB with matlab-proxy
177
177
  `matlab-proxy` version `v0.7.0` introduces support for using an existing MATLAB license. Use the Existing License option only if you have an activated MATLAB. This allows you to start MATLAB without authenticating every time.
@@ -76,7 +76,7 @@ long_description = (HERE / "README.md").read_text()
76
76
 
77
77
  setuptools.setup(
78
78
  name="matlab-proxy",
79
- version="0.19.0",
79
+ version="0.20.0",
80
80
  url=config["doc_url"],
81
81
  author="The MathWorks, Inc.",
82
82
  author_email="cloud@mathworks.com",
@@ -1,10 +1,10 @@
1
- # Copyright 2020-2022 The MathWorks, Inc.
1
+ # Copyright 2020-2024 The MathWorks, Inc.
2
2
  """This file tests methods present in matlab_proxy/util/mwi_logger.py
3
3
  """
4
4
 
5
5
  import logging
6
6
  import os
7
-
7
+ import pytest
8
8
  from matlab_proxy.util.mwi import logger as mwi_logger
9
9
 
10
10
 
@@ -22,7 +22,7 @@ def test_get_mw_logger_name():
22
22
 
23
23
 
24
24
  def test_get_with_no_environment_variables(monkeypatch):
25
- """This test checks if the get method returns a logger with default settings"""
25
+ """This test checks if the get method returns a logger with default settings if no environment variable is set"""
26
26
  # Delete the environment variables if they do exist
27
27
  env_names_list = mwi_logger.get_environment_variable_names()
28
28
  monkeypatch.delenv(env_names_list[0], raising=False)
@@ -34,7 +34,7 @@ def test_get_with_no_environment_variables(monkeypatch):
34
34
 
35
35
 
36
36
  def test_get_with_environment_variables(monkeypatch, tmp_path):
37
- """This test checks if the get method returns a logger with default settings"""
37
+ """This test checks if the get method returns a logger with the specified settings"""
38
38
  env_names_list = mwi_logger.get_environment_variable_names()
39
39
  monkeypatch.setenv(env_names_list[0], "CRITICAL")
40
40
  monkeypatch.setenv(env_names_list[1], str(tmp_path / "testing123.log"))
@@ -47,3 +47,37 @@ def test_get_with_environment_variables(monkeypatch, tmp_path):
47
47
  # Verify that environment variable setting the file is respected
48
48
  assert len(logger.handlers) == 1
49
49
  assert os.path.basename(logger.handlers[0].baseFilename) == "testing123.log"
50
+
51
+
52
+ @pytest.mark.parametrize(
53
+ "log_level, expected_level",
54
+ [
55
+ ("DEBUG", logging.DEBUG),
56
+ ("INFO", logging.INFO),
57
+ ("WARNING", logging.WARNING),
58
+ ("debug", logging.DEBUG),
59
+ ("info", logging.INFO),
60
+ ("warning", logging.WARNING),
61
+ ],
62
+ )
63
+ def test_set_logging_configuration_known_logging_levels(
64
+ monkeypatch, log_level, expected_level
65
+ ):
66
+ """This test checks if the logger is set with correct level for known log levels"""
67
+ env_names_list = mwi_logger.get_environment_variable_names()
68
+ monkeypatch.setenv(env_names_list[0], log_level)
69
+ logger = mwi_logger.get(init=True)
70
+ assert (
71
+ logger.isEnabledFor(expected_level) == True
72
+ ), f"Error in initialising the logger with {log_level}"
73
+
74
+
75
+ @pytest.mark.parametrize("log_level", ["ABC", "abc"])
76
+ def test_set_logging_configuration_unknown_logging_levels(monkeypatch, log_level):
77
+ """This test checks if the logger is set with INFO level for unknown log levels"""
78
+ env_names_list = mwi_logger.get_environment_variable_names()
79
+ monkeypatch.setenv(env_names_list[0], log_level)
80
+ logger = mwi_logger.get(init=True)
81
+ assert (
82
+ logger.isEnabledFor(logging.INFO) == True
83
+ ), "Error in initialising the default logger"
File without changes
File without changes
File without changes