micrOSDevToolKit 3.0.3__tar.gz → 3.0.4__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.
Files changed (427) hide show
  1. {microsdevtoolkit-3.0.3/micrOSDevToolKit.egg-info → microsdevtoolkit-3.0.4}/PKG-INFO +1 -1
  2. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +3 -3
  3. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Config.py +27 -33
  4. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Scheduler.py +1 -1
  5. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Shell.py +1 -1
  6. microsdevtoolkit-3.0.4/micrOS/source/__pycache__/Config.cpython-312.pyc +0 -0
  7. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/__pycache__/Scheduler.cpython-312.pyc +0 -0
  8. microsdevtoolkit-3.0.4/micrOS/utests/test_config.py +152 -0
  9. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/utests/test_scheduler.py +1 -1
  10. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4/micrOSDevToolKit.egg-info}/PKG-INFO +1 -1
  11. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOSDevToolKit.egg-info/SOURCES.txt +1 -0
  12. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/setup.py +1 -1
  13. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/micrOSdashboard.py +2 -1
  14. microsdevtoolkit-3.0.4/toolkit/workspace/precompiled/Config.mpy +0 -0
  15. microsdevtoolkit-3.0.4/toolkit/workspace/precompiled/Scheduler.mpy +0 -0
  16. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/Shell.mpy +0 -0
  17. microsdevtoolkit-3.0.3/micrOS/source/__pycache__/Config.cpython-312.pyc +0 -0
  18. microsdevtoolkit-3.0.3/toolkit/workspace/precompiled/Config.mpy +0 -0
  19. microsdevtoolkit-3.0.3/toolkit/workspace/precompiled/Scheduler.mpy +0 -0
  20. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/LICENSE +0 -0
  21. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/MANIFEST.in +0 -0
  22. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/README.md +0 -0
  23. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/devToolKit.py +0 -0
  24. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/env/__init__.py +0 -0
  25. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/env/driver_cp210x/.DS_Store +0 -0
  26. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x64.exe +0 -0
  27. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x86.exe +0 -0
  28. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210x_Universal_Windows_Driver_ReleaseNotes.txt +0 -0
  29. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/SLAB_License_Agreement_VCP_Windows.txt +0 -0
  30. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm/silabser.sys +0 -0
  31. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm64/silabser.sys +0 -0
  32. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/dpinst.xml +0 -0
  33. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.cat +0 -0
  34. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.inf +0 -0
  35. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x64/silabser.sys +0 -0
  36. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x86/silabser.sys +0 -0
  37. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/env/driver_cp210x/macOS_VCP_Driver/SiLabsUSBDriverDisk.dmg +0 -0
  38. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/env/driver_cp210x/macOS_VCP_Driver/macOS_VCP_Driver_Release_Notes.txt +0 -0
  39. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/media/__init__.py +0 -0
  40. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/media/dnd.png +0 -0
  41. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/media/logo.png +0 -0
  42. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/media/logo_mini.png +0 -0
  43. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/media/usb_port_icon.png +0 -0
  44. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/media/wifi_icon.png +0 -0
  45. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/__init__.py +0 -0
  46. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/micropython/board_commands.json +0 -0
  47. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/micropython/esp32-20251209-v1.27.0.bin +0 -0
  48. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/micropython/esp32c3-20251209-v1.27.0.bin +0 -0
  49. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/micropython/esp32c5-20251209-v1.27.0.bin +0 -0
  50. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/micropython/esp32c6-20251209-v1.27.0.bin +0 -0
  51. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/micropython/esp32cam-v1.21.0_camera.bin +0 -0
  52. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/micropython/esp32s2-20251209-v1.27.0.bin +0 -0
  53. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/micropython/esp32s2-LOLIN_MINI-20251209-v1.27.0.bin +0 -0
  54. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/micropython/esp32s3-4MBflash-20241129-v1.24.1.bin +0 -0
  55. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/micropython/esp32s3-8MBflash-20251209-v1.27.0.bin +0 -0
  56. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/micropython/esp32s3_spiram_oct-20251209-v1.27.0.bin +0 -0
  57. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/micropython/rpi-pico-w-20251209-v1.27.0.uf2 +0 -0
  58. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/micropython/tinypico-20251209-v1.27.0.bin +0 -0
  59. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/.DS_Store +0 -0
  60. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Auth.py +0 -0
  61. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Buffer.py +0 -0
  62. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Common.py +0 -0
  63. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Debug.py +0 -0
  64. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Espnow.py +0 -0
  65. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Files.py +0 -0
  66. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Hooks.py +0 -0
  67. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/InterConnect.py +0 -0
  68. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Interrupts.py +0 -0
  69. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Logger.py +0 -0
  70. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Network.py +0 -0
  71. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Notify.py +0 -0
  72. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Pacman.py +0 -0
  73. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Server.py +0 -0
  74. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Tasks.py +0 -0
  75. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Time.py +0 -0
  76. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Types.py +0 -0
  77. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/Web.py +0 -0
  78. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/__pycache__/Buffer.cpython-312.pyc +0 -0
  79. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/__pycache__/Common.cpython-312.pyc +0 -0
  80. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/__pycache__/Debug.cpython-312.pyc +0 -0
  81. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/__pycache__/Files.cpython-312.pyc +0 -0
  82. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/__pycache__/Hooks.cpython-312.pyc +0 -0
  83. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/__pycache__/InterConnect.cpython-312.pyc +0 -0
  84. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/__pycache__/Interrupts.cpython-312.pyc +0 -0
  85. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/__pycache__/Logger.cpython-312.pyc +0 -0
  86. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/__pycache__/Server.cpython-312.pyc +0 -0
  87. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/__pycache__/Shell.cpython-312.pyc +0 -0
  88. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/__pycache__/Tasks.cpython-312.pyc +0 -0
  89. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/__pycache__/Time.cpython-312.pyc +0 -0
  90. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/__pycache__/Web.cpython-312.pyc +0 -0
  91. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/__pycache__/replhelper.cpython-312.pyc +0 -0
  92. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/__pycache__/urequests.cpython-312.pyc +0 -0
  93. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/config/_git.keep +0 -0
  94. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/helpers.py +0 -0
  95. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/main.py +0 -0
  96. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/micrOS.py +0 -0
  97. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/micrOSloader.py +0 -0
  98. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/microIO.py +0 -0
  99. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/IO_esp32.py +0 -0
  100. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/IO_esp32c3.py +0 -0
  101. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/IO_esp32c5.py +0 -0
  102. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/IO_esp32c6.py +0 -0
  103. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/IO_esp32s2.py +0 -0
  104. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/IO_esp32s3.py +0 -0
  105. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/IO_m5stamp.py +0 -0
  106. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/IO_qtpy.py +0 -0
  107. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/IO_rp2.py +0 -0
  108. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/IO_tinypico.py +0 -0
  109. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_L298N.py +0 -0
  110. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_L9110_DCmotor.py +0 -0
  111. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_OV2640.py +0 -0
  112. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_VL53L0X.py +0 -0
  113. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_aht10.py +0 -0
  114. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_bme280.py +0 -0
  115. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_buzzer.py +0 -0
  116. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_cct.py +0 -0
  117. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_cluster.py +0 -0
  118. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_co2.py +0 -0
  119. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_dht11.py +0 -0
  120. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_dht22.py +0 -0
  121. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_dimmer.py +0 -0
  122. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_distance.py +0 -0
  123. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_ds18.py +0 -0
  124. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_esp32.py +0 -0
  125. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_espnow.py +0 -0
  126. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_fileserver.py +0 -0
  127. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_gameOfLife.py +0 -0
  128. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_genIO.py +0 -0
  129. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_haptic.py +0 -0
  130. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_i2c.py +0 -0
  131. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_i2s_mic.py +0 -0
  132. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_ld2410.py +0 -0
  133. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_light_sensor.py +0 -0
  134. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_mh_z19c.py +0 -0
  135. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_neoeffects.py +0 -0
  136. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_neopixel.py +0 -0
  137. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_oled.py +0 -0
  138. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_oled_sh1106.py +0 -0
  139. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_oled_ui.py +0 -0
  140. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_pacman.py +0 -0
  141. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_presence.py +0 -0
  142. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_qmi8658.py +0 -0
  143. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_rencoder.py +0 -0
  144. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_rest.py +0 -0
  145. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_rgb.py +0 -0
  146. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_rgbcct.py +0 -0
  147. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_roboarm.py +0 -0
  148. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_robustness.py +0 -0
  149. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_rp2w.py +0 -0
  150. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_sdcard.py +0 -0
  151. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_servo.py +0 -0
  152. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_sound_event.py +0 -0
  153. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_stepper.py +0 -0
  154. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_switch.py +0 -0
  155. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_system.py +0 -0
  156. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_tcs3472.py +0 -0
  157. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_telegram.py +0 -0
  158. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_tinyrgb.py +0 -0
  159. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_trackball.py +0 -0
  160. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_veml7700.py +0 -0
  161. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/modules/LM_web.py +0 -0
  162. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/urequests.py +0 -0
  163. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/web/dashboard.html +0 -0
  164. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/web/editor.js +0 -0
  165. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/web/filesui.html +0 -0
  166. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/web/filesui.js +0 -0
  167. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/web/index.html +0 -0
  168. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/web/uapi.js +0 -0
  169. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/web/udashboard.js +0 -0
  170. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/web/ustyle.css +0 -0
  171. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/web/uwidgets.js +0 -0
  172. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/source/web/uwidgets_pro.js +0 -0
  173. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/utests/__init__.py +0 -0
  174. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/utests/test_buffer.py +0 -0
  175. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/utests/test_time.py +0 -0
  176. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/utests/test_urequests.py +0 -0
  177. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/utests/test_urequests_real_api.py +0 -0
  178. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOS/utests/test_web_engine.py +0 -0
  179. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOSDevToolKit.egg-info/dependency_links.txt +0 -0
  180. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOSDevToolKit.egg-info/requires.txt +0 -0
  181. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/micrOSDevToolKit.egg-info/top_level.txt +0 -0
  182. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/setup.cfg +0 -0
  183. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/DevEnvCompile.py +0 -0
  184. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/DevEnvOTA.py +0 -0
  185. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/DevEnvUSB.py +0 -0
  186. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/Gateway.py +0 -0
  187. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/LM_to_compile.dat +0 -0
  188. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/MicrOSDevEnv.py +0 -0
  189. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/WebRepl.py +0 -0
  190. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/__init__.py +0 -0
  191. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/BackupRestore.py +0 -0
  192. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/CCTDemo.py +0 -0
  193. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/CCTTest.py +0 -0
  194. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/CamStream.py +0 -0
  195. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/CatGame.py +0 -0
  196. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/Dimmer.py +0 -0
  197. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/GetVersion.py +0 -0
  198. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/MicrophoneTest.py +0 -0
  199. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/NeoEffectsDemo.py +0 -0
  200. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/NeopixelTest.py +0 -0
  201. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/PresenceTest.py +0 -0
  202. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/QMI8685_GYRO.py +0 -0
  203. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/RGBTest.py +0 -0
  204. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/RoboArm.py +0 -0
  205. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/SED_test.py +0 -0
  206. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/SensorsTest.py +0 -0
  207. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/SystemTest.py +0 -0
  208. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/Template_app.py +0 -0
  209. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/__init__.py +0 -0
  210. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/_app_base.py +0 -0
  211. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/_capture.py +0 -0
  212. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/_gyro_visualizer.py +0 -0
  213. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/_micPlotting.py +0 -0
  214. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/_presencePlotting.py +0 -0
  215. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/dashboard_apps/uLightDemo.py +0 -0
  216. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/gateway/gateway.css +0 -0
  217. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/gateway/img_stream.html +0 -0
  218. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/gateway/index.html +0 -0
  219. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/lib/LocalMachine.py +0 -0
  220. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/lib/MicrosFiles.py +0 -0
  221. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/lib/Repository.py +0 -0
  222. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/lib/SafeInput.py +0 -0
  223. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/lib/SearchDevices.py +0 -0
  224. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/lib/SerialDriverHandler.py +0 -0
  225. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/lib/TerminalColors.py +0 -0
  226. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/lib/__init__.py +0 -0
  227. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/lib/macroScript.py +0 -0
  228. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/lib/micrOSClient.py +0 -0
  229. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/lib/micrOSClientHistory.py +0 -0
  230. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/lib/pip_package_installer.py +0 -0
  231. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/micrOSlint.py +0 -0
  232. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/.DS_Store +0 -0
  233. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/IO_darwin.py +0 -0
  234. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/IO_darwin.cpython-312.pyc +0 -0
  235. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/aioespnow.cpython-312.pyc +0 -0
  236. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/camera.cpython-312.pyc +0 -0
  237. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/dht.cpython-312.pyc +0 -0
  238. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/dht.cpython-39.pyc +0 -0
  239. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/dotstar.cpython-312.pyc +0 -0
  240. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/dotstar.cpython-38.pyc +0 -0
  241. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/dotstar.cpython-39.pyc +0 -0
  242. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-312.pyc +0 -0
  243. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-38.pyc +0 -0
  244. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-39.pyc +0 -0
  245. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/esp32.cpython-312.pyc +0 -0
  246. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/esp32.cpython-38.pyc +0 -0
  247. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/esp32.cpython-39.pyc +0 -0
  248. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/framebuf.cpython-312.pyc +0 -0
  249. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/framebuf.cpython-38.pyc +0 -0
  250. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/framebuf.cpython-39.pyc +0 -0
  251. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/machine.cpython-312.pyc +0 -0
  252. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/machine.cpython-38.pyc +0 -0
  253. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/machine.cpython-39.pyc +0 -0
  254. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/micropython.cpython-312.pyc +0 -0
  255. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/micropython.cpython-38.pyc +0 -0
  256. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/micropython.cpython-39.pyc +0 -0
  257. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/mip.cpython-312.pyc +0 -0
  258. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/neopixel.cpython-312.pyc +0 -0
  259. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/neopixel.cpython-38.pyc +0 -0
  260. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/neopixel.cpython-39.pyc +0 -0
  261. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/network.cpython-312.pyc +0 -0
  262. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/network.cpython-38.pyc +0 -0
  263. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/network.cpython-39.pyc +0 -0
  264. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/ntptime.cpython-312.pyc +0 -0
  265. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/onewire.cpython-312.pyc +0 -0
  266. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/onewire.cpython-38.pyc +0 -0
  267. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/onewire.cpython-39.pyc +0 -0
  268. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/sim_common.cpython-312.pyc +0 -0
  269. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/simgc.cpython-312.pyc +0 -0
  270. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/simgc.cpython-38.pyc +0 -0
  271. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/simgc.cpython-39.pyc +0 -0
  272. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/simulator.cpython-312.pyc +0 -0
  273. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/simulator.cpython-38.pyc +0 -0
  274. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/simulator.cpython-39.pyc +0 -0
  275. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/tinypico.cpython-312.pyc +0 -0
  276. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/tinypico.cpython-38.pyc +0 -0
  277. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/tinypico.cpython-39.pyc +0 -0
  278. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc +0 -0
  279. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-38.pyc +0 -0
  280. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-39.pyc +0 -0
  281. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc +0 -0
  282. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/urandom.cpython-312.pyc +0 -0
  283. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc +0 -0
  284. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc +0 -0
  285. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/ustruct.cpython-312.pyc +0 -0
  286. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/ustruct.cpython-39.pyc +0 -0
  287. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/utime.cpython-312.pyc +0 -0
  288. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/utime.cpython-38.pyc +0 -0
  289. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/utime.cpython-39.pyc +0 -0
  290. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/webrepl.cpython-312.pyc +0 -0
  291. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/webrepl.cpython-38.pyc +0 -0
  292. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/__pycache__/webrepl.cpython-39.pyc +0 -0
  293. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/aioespnow.py +0 -0
  294. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/camera.py +0 -0
  295. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/dht.py +0 -0
  296. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/dotstar.py +0 -0
  297. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/ds18x20.py +0 -0
  298. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/esp32.py +0 -0
  299. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/framebuf.py +0 -0
  300. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/machine.py +0 -0
  301. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/micropython.py +0 -0
  302. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/mip.py +0 -0
  303. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/neopixel.py +0 -0
  304. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/network.py +0 -0
  305. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/node_config.json +0 -0
  306. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/ntptime.py +0 -0
  307. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/onewire.py +0 -0
  308. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/sim_common.py +0 -0
  309. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/simgc.py +0 -0
  310. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/simulator.py +0 -0
  311. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/tinypico.py +0 -0
  312. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/uasyncio.py +0 -0
  313. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/uos.py +0 -0
  314. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/urandom.py +0 -0
  315. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/usocket.py +0 -0
  316. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/ussl.py +0 -0
  317. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/ustruct.py +0 -0
  318. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/utime.py +0 -0
  319. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/view01.jpg +0 -0
  320. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/view02.jpg +0 -0
  321. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/simulator_lib/webrepl.py +0 -0
  322. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/socketClient.py +0 -0
  323. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/user_data/.include +0 -0
  324. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/user_data/webhooks/generic.py +0 -0
  325. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/user_data/webhooks/macro.py +0 -0
  326. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/user_data/webhooks/template.macro +0 -0
  327. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/user_data/webhooks/template.py +0 -0
  328. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/__init__.py +0 -0
  329. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/Auth.mpy +0 -0
  330. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/Buffer.mpy +0 -0
  331. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/Common.mpy +0 -0
  332. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/Debug.mpy +0 -0
  333. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/Espnow.mpy +0 -0
  334. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/Files.mpy +0 -0
  335. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/Hooks.mpy +0 -0
  336. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/InterConnect.mpy +0 -0
  337. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/Interrupts.mpy +0 -0
  338. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/Logger.mpy +0 -0
  339. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/Network.mpy +0 -0
  340. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/Notify.mpy +0 -0
  341. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/Pacman.mpy +0 -0
  342. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/Server.mpy +0 -0
  343. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/Tasks.mpy +0 -0
  344. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/Time.mpy +0 -0
  345. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/Types.mpy +0 -0
  346. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/Web.mpy +0 -0
  347. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/_mpy.version +0 -0
  348. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/config/_git.keep +0 -0
  349. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/helpers.mpy +0 -0
  350. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/main.py +0 -0
  351. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/micrOS.mpy +0 -0
  352. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/micrOSloader.mpy +0 -0
  353. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/microIO.mpy +0 -0
  354. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/IO_esp32.mpy +0 -0
  355. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/IO_esp32c3.mpy +0 -0
  356. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/IO_esp32c5.mpy +0 -0
  357. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/IO_esp32c6.mpy +0 -0
  358. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/IO_esp32s2.mpy +0 -0
  359. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/IO_esp32s3.mpy +0 -0
  360. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/IO_m5stamp.mpy +0 -0
  361. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/IO_qtpy.mpy +0 -0
  362. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/IO_rp2.mpy +0 -0
  363. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/IO_tinypico.mpy +0 -0
  364. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_L298N.mpy +0 -0
  365. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_L9110_DCmotor.py +0 -0
  366. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_OV2640.mpy +0 -0
  367. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_VL53L0X.py +0 -0
  368. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_aht10.mpy +0 -0
  369. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_bme280.mpy +0 -0
  370. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_buzzer.mpy +0 -0
  371. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_cct.mpy +0 -0
  372. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_cluster.mpy +0 -0
  373. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_co2.mpy +0 -0
  374. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_dht11.mpy +0 -0
  375. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_dht22.mpy +0 -0
  376. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_dimmer.mpy +0 -0
  377. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_distance.mpy +0 -0
  378. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_ds18.mpy +0 -0
  379. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_esp32.py +0 -0
  380. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_espnow.py +0 -0
  381. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_fileserver.mpy +0 -0
  382. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_gameOfLife.mpy +0 -0
  383. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_genIO.mpy +0 -0
  384. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_haptic.mpy +0 -0
  385. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_i2c.py +0 -0
  386. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_i2s_mic.mpy +0 -0
  387. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_ld2410.mpy +0 -0
  388. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_light_sensor.mpy +0 -0
  389. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_mh_z19c.py +0 -0
  390. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_neoeffects.mpy +0 -0
  391. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_neopixel.mpy +0 -0
  392. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_oled.mpy +0 -0
  393. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_oled_sh1106.mpy +0 -0
  394. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_oled_ui.mpy +0 -0
  395. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_pacman.mpy +0 -0
  396. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_presence.mpy +0 -0
  397. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_qmi8658.py +0 -0
  398. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_rencoder.py +0 -0
  399. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_rest.mpy +0 -0
  400. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_rgb.mpy +0 -0
  401. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_rgbcct.mpy +0 -0
  402. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_roboarm.mpy +0 -0
  403. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_robustness.py +0 -0
  404. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_rp2w.py +0 -0
  405. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_sdcard.py +0 -0
  406. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_servo.mpy +0 -0
  407. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_sound_event.mpy +0 -0
  408. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_stepper.mpy +0 -0
  409. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_switch.mpy +0 -0
  410. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_system.mpy +0 -0
  411. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_tcs3472.py +0 -0
  412. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_telegram.mpy +0 -0
  413. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_tinyrgb.mpy +0 -0
  414. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_trackball.mpy +0 -0
  415. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_veml7700.mpy +0 -0
  416. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/modules/LM_web.mpy +0 -0
  417. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/urequests.mpy +0 -0
  418. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/web/dashboard.html +0 -0
  419. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/web/editor.js +0 -0
  420. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/web/filesui.html +0 -0
  421. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/web/filesui.js +0 -0
  422. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/web/index.html +0 -0
  423. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/web/uapi.js +0 -0
  424. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/web/udashboard.js +0 -0
  425. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/web/ustyle.css +0 -0
  426. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/web/uwidgets.js +0 -0
  427. {microsdevtoolkit-3.0.3 → microsdevtoolkit-3.0.4}/toolkit/workspace/precompiled/web/uwidgets_pro.js +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: micrOSDevToolKit
3
- Version: 3.0.3
3
+ Version: 3.0.4
4
4
  Summary: Development and deployment environment for micrOS, the diy micropython automation OS (IoT)
5
5
  Home-page: https://github.com/BxNxM/micrOS
6
6
  Author: Marcell Ban
@@ -37,7 +37,7 @@
37
37
  13
38
38
  ],
39
39
  "Config.py": [
40
- 9.63,
40
+ 9.62,
41
41
  17
42
42
  ],
43
43
  "Shell.py": [
@@ -323,7 +323,7 @@
323
323
  },
324
324
  "summary": {
325
325
  "core": [
326
- 5306,
326
+ 5303,
327
327
  27
328
328
  ],
329
329
  "load": [
@@ -340,6 +340,6 @@
340
340
  ],
341
341
  "core_score": 9.26,
342
342
  "load_score": 8.44,
343
- "version": "3.0.0-0"
343
+ "version": "3.0.4-0"
344
344
  }
345
345
  }
@@ -14,7 +14,6 @@ Designed by Marcell Ban aka BxNxM
14
14
  #################################################################
15
15
  from re import search
16
16
  from json import load, dump
17
- from utime import sleep
18
17
  from Debug import DebugCfg, console_write, syslog
19
18
  from Files import OSPath, path_join, is_file
20
19
  from uos import remove, rename
@@ -142,7 +141,7 @@ class Config:
142
141
  @classmethod
143
142
  def _inject_default_conf(cls):
144
143
  # Load config and template
145
- liveconf = cls.read_cfg_file(nosafe=True)
144
+ liveconf = cls.read_cfg_file()
146
145
  _persist = False
147
146
  # Remove obsolete keys from conf
148
147
  try:
@@ -166,43 +165,38 @@ class Config:
166
165
  break
167
166
  if _persist:
168
167
  # Only persist when migration cleanup removed keys or defaults are missing from the file.
169
- cls.write_cfg_file()
170
- console_write("[CONF] Save conf successful")
168
+ state = "successful" if cls.write_cfg_file() else "failed"
169
+ console_write(f"[CONF] Save conf {state}")
171
170
  except Exception as e:
172
171
  syslog(f"[ERR] Save (__inject) conf failed: {e}")
173
172
  finally:
174
173
  del liveconf
175
174
 
176
175
  @staticmethod
177
- def read_cfg_file(nosafe=False):
178
- conf = {}
179
- while True:
176
+ def read_cfg_file():
177
+ if not is_file(Config.CONFIG_PATH):
178
+ return {}
179
+ try:
180
+ with open(Config.CONFIG_PATH, 'r') as f:
181
+ return load(f)
182
+ except Exception as e:
183
+ syslog(f'[ERR] read_cfg_file error: {e}')
180
184
  try:
181
- with open(Config.CONFIG_PATH, 'r') as f:
182
- conf = load(f)
183
- break
184
- except Exception as e:
185
- console_write(f"[CONF] read_cfg_file error {conf} (json): {e}")
186
- # Write out initial config, if no config exists.
187
- if nosafe:
188
- break
189
- sleep(0.2)
190
- syslog(f'[ERR] read_cfg_file error: {e}')
191
- # Return config cache
192
- return conf
185
+ rename(Config.CONFIG_PATH, f"{Config.CONFIG_PATH}.bad")
186
+ console_write(f"[CONF] Corrupted config moved: {Config.CONFIG_PATH}.bad")
187
+ except Exception as e2:
188
+ syslog(f'[ERR] read_cfg_file quarantine failed: {e2}')
189
+ return {}
193
190
 
194
191
  @staticmethod
195
192
  def write_cfg_file():
196
- while True:
197
- try:
198
- # WRITE JSON CONFIG
199
- with open(Config.CONFIG_PATH, 'w') as f:
200
- dump({key: value for key, value in Config.INSTANCE.items()}, f)
201
- break
202
- except Exception as e:
203
- syslog(f'[ERR] write_cfg_file {Config.CONFIG_PATH} (json): {e}')
204
- sleep(0.2)
205
- return True
193
+ try:
194
+ with open(Config.CONFIG_PATH, 'w') as f:
195
+ dump({key: value for key, value in Config.INSTANCE.items()}, f)
196
+ return True
197
+ except Exception as e:
198
+ syslog(f'[ERR] write_cfg_file {Config.CONFIG_PATH}: {e}')
199
+ return False
206
200
 
207
201
  @staticmethod
208
202
  def type_handler(key, value):
@@ -251,16 +245,16 @@ class Config:
251
245
  def validate_pwd(password):
252
246
  """
253
247
  Validate appwd parameter
254
- - webrepl password
248
+ - webrepl password (max 9 char)
255
249
  - micrOS auth password (Shell/WebCli)
256
- - wifi access point password
250
+ - wifi access point password (WPA2-PSK)
257
251
  """
258
252
  # Check password rules
259
- if 4 <= len(password) <= 9:
253
+ if 8 <= len(password) <= 9:
260
254
  if search(r"[A-Z]", password) and search(r"[a-z]", password):
261
255
  if search(r"\d", password):
262
256
  return True, ''
263
- return False, 'Password must include [0-9] both [a-z][A-Z] and length between 4-9 char.'
257
+ return False, 'Password must include [0-9] both [a-z][A-Z] and length between 8-9 char.'
264
258
 
265
259
 
266
260
  #################################################################
@@ -43,7 +43,7 @@ def __cron_task_cache_manager(now_in_sec, sec_tolerant):
43
43
  tasktime_in_sec = int(str(taskid.split('|')[0]).split(':')[1])
44
44
  sec_diff = tasktime_in_sec - (now_in_sec - sec_tolerant)
45
45
  # Remove outdated cache registration
46
- if sec_diff < 0 or sec_diff > 20:
46
+ if sec_diff < 0 or sec_diff > sec_tolerant * 2:
47
47
  LAST_CRON_TASKS.remove(LAST_CRON_TASKS[index])
48
48
 
49
49
 
@@ -25,7 +25,7 @@ from Debug import syslog
25
25
 
26
26
  class Shell:
27
27
  __slots__ = ['__devfid', '__auth_mode', '__hwuid', '__auth_ok', '__conf_mode']
28
- MICROS_VERSION = '3.0.0-0'
28
+ MICROS_VERSION = '3.0.4-0'
29
29
 
30
30
  def __init__(self):
31
31
  """
@@ -0,0 +1,152 @@
1
+ import importlib.util
2
+ import json
3
+ import sys
4
+ import tempfile
5
+ import types
6
+ import unittest
7
+ from itertools import count
8
+ from pathlib import Path
9
+ from unittest import mock
10
+
11
+
12
+ def setUpModule():
13
+ print(f"== RUN {Path(__file__).name} ==")
14
+
15
+
16
+ _LOAD_ID = count()
17
+
18
+
19
+ class _ConfigStubEnv:
20
+ def __init__(self, root: Path):
21
+ self.root = root
22
+ self.config_dir = root / "config"
23
+ self.logs = []
24
+ self.console = []
25
+ self._saved = {}
26
+
27
+ def _resolve(self, path):
28
+ path = Path(path)
29
+ return path if path.is_absolute() else self.root / path
30
+
31
+ def install(self):
32
+ for name in ("Debug", "Files", "uos", "microIO"):
33
+ self._saved[name] = sys.modules.get(name)
34
+
35
+ env = self
36
+
37
+ debug_mod = types.ModuleType("Debug")
38
+
39
+ class DebugCfg:
40
+ DEBUG = True
41
+ init_calls = 0
42
+
43
+ @staticmethod
44
+ def init_pled():
45
+ DebugCfg.init_calls += 1
46
+
47
+ debug_mod.DebugCfg = DebugCfg
48
+ debug_mod.console_write = lambda msg, *_a, **_k: env.console.append(str(msg))
49
+ debug_mod.syslog = lambda msg, *_a, **_k: env.logs.append(str(msg))
50
+ sys.modules["Debug"] = debug_mod
51
+
52
+ files_mod = types.ModuleType("Files")
53
+
54
+ class OSPath:
55
+ CONFIG = str(env.config_dir)
56
+
57
+ def path_join(*parts):
58
+ path = "/".join(str(part).strip("/") for part in parts if part)
59
+ if parts and str(parts[0]).startswith("/"):
60
+ path = path if path.startswith("/") else "/" + path
61
+ return path
62
+
63
+ files_mod.OSPath = OSPath
64
+ files_mod.path_join = path_join
65
+ files_mod.is_file = lambda path: env._resolve(path).is_file()
66
+ sys.modules["Files"] = files_mod
67
+
68
+ uos_mod = types.ModuleType("uos")
69
+ uos_mod.remove = lambda path: env._resolve(path).unlink()
70
+ uos_mod.rename = lambda src, dst: env._resolve(src).rename(env._resolve(dst))
71
+ sys.modules["uos"] = uos_mod
72
+
73
+ microio_mod = types.ModuleType("microIO")
74
+ microio_mod.set_pinmap = None
75
+ sys.modules["microIO"] = microio_mod
76
+
77
+ def restore(self):
78
+ for name, module in self._saved.items():
79
+ if module is None:
80
+ sys.modules.pop(name, None)
81
+ else:
82
+ sys.modules[name] = module
83
+
84
+
85
+ def _load_config_module(raw_config=None):
86
+ tempdir = tempfile.TemporaryDirectory()
87
+ root = Path(tempdir.name)
88
+ config_dir = root / "config"
89
+ config_dir.mkdir(parents=True, exist_ok=True)
90
+
91
+ config_path = config_dir / "node_config.json"
92
+ if raw_config is not None:
93
+ config_path.write_text(raw_config, encoding="utf-8")
94
+
95
+ env = _ConfigStubEnv(root)
96
+ env.install()
97
+ try:
98
+ here = Path(__file__).resolve()
99
+ config_py = (here.parent.parent / "source" / "Config.py").resolve()
100
+ module_name = f"micros_config_under_test_{next(_LOAD_ID)}"
101
+ spec = importlib.util.spec_from_file_location(module_name, str(config_py))
102
+ mod = importlib.util.module_from_spec(spec)
103
+ sys.modules[module_name] = mod
104
+ spec.loader.exec_module(mod)
105
+ return mod, env, tempdir, config_path
106
+ finally:
107
+ env.restore()
108
+
109
+
110
+ class TestConfig(unittest.TestCase):
111
+ def test_init_bootstraps_missing_config(self):
112
+ mod, env, tempdir, config_path = _load_config_module()
113
+ self.addCleanup(tempdir.cleanup)
114
+
115
+ self.assertTrue(config_path.is_file())
116
+ self.assertEqual(mod.cfgget("devfid"), "node01")
117
+ self.assertFalse(any("read_cfg_file error" in msg for msg in env.logs))
118
+
119
+ persisted = json.loads(config_path.read_text(encoding="utf-8"))
120
+ self.assertEqual(persisted["devfid"], "node01")
121
+ self.assertEqual(persisted["appwd"], "ADmin123")
122
+
123
+ def test_init_quarantines_corrupted_config_and_regenerates_defaults(self):
124
+ raw_corrupt = '{"devfid": "broken"'
125
+ mod, env, tempdir, config_path = _load_config_module(raw_config=raw_corrupt)
126
+ self.addCleanup(tempdir.cleanup)
127
+
128
+ bad_path = config_path.with_name("node_config.json.bad")
129
+ self.assertTrue(bad_path.is_file())
130
+ self.assertEqual(bad_path.read_text(encoding="utf-8"), raw_corrupt)
131
+ self.assertEqual(mod.cfgget("devfid"), "node01")
132
+ self.assertTrue(any("read_cfg_file error" in msg for msg in env.logs))
133
+
134
+ persisted = json.loads(config_path.read_text(encoding="utf-8"))
135
+ self.assertEqual(persisted["devfid"], "node01")
136
+
137
+ def test_cfgput_keeps_runtime_value_and_logs_when_write_fails(self):
138
+ mod, env, tempdir, config_path = _load_config_module(raw_config='{"devfid": "orig"}')
139
+ self.addCleanup(tempdir.cleanup)
140
+
141
+ self.assertEqual(mod.cfgget("devfid"), "orig")
142
+ with mock.patch("builtins.open", side_effect=OSError("disk full")):
143
+ self.assertTrue(mod.cfgput("devfid", "updated"))
144
+ self.assertEqual(mod.cfgget("devfid"), "updated")
145
+ self.assertTrue(any("write_cfg_file" in msg for msg in env.logs))
146
+
147
+ persisted = json.loads(config_path.read_text(encoding="utf-8"))
148
+ self.assertEqual(persisted["devfid"], "orig")
149
+
150
+
151
+ if __name__ == "__main__":
152
+ unittest.main(verbosity=2)
@@ -62,7 +62,7 @@ RUN_DAYS = 365
62
62
  # - scheduler sampling/tolerance window (deltasec)
63
63
  # - execution period (how frequently scheduler() is called)
64
64
  # - virtual time tick step
65
- EXEC_PERIOD_SEC = 5 # default 5 seconds
65
+ EXEC_PERIOD_SEC = 30 # default 30 seconds
66
66
 
67
67
  # Provide sunrise/sunset times for tag resolution (Sun.TIME)
68
68
  SUN_TIME = {"sunrise": (6, 0, 0), "sunset": (18, 0, 0)}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: micrOSDevToolKit
3
- Version: 3.0.3
3
+ Version: 3.0.4
4
4
  Summary: Development and deployment environment for micrOS, the diy micropython automation OS (IoT)
5
5
  Home-page: https://github.com/BxNxM/micrOS
6
6
  Author: Marcell Ban
@@ -160,6 +160,7 @@ micrOS/source/web/uwidgets.js
160
160
  micrOS/source/web/uwidgets_pro.js
161
161
  micrOS/utests/__init__.py
162
162
  micrOS/utests/test_buffer.py
163
+ micrOS/utests/test_config.py
163
164
  micrOS/utests/test_scheduler.py
164
165
  micrOS/utests/test_time.py
165
166
  micrOS/utests/test_urequests.py
@@ -17,7 +17,7 @@ dependencies = ['adafruit-ampy', 'mpremote', 'esptool', 'ipaddress', 'netaddr',
17
17
 
18
18
  setuptools.setup(
19
19
  name='micrOSDevToolKit',
20
- version='3.0.3',
20
+ version='3.0.4',
21
21
  author='Marcell Ban',
22
22
  author_email='miros.framework@gmail.com',
23
23
  description='Development and deployment environment for micrOS, the diy micropython automation OS (IoT)',
@@ -95,7 +95,8 @@ class ProgressBar:
95
95
  self.pbar_status = 0
96
96
  if value is not None and 0 <= value <= 100:
97
97
  self.pbar_status = value
98
- self.pbar_status = self.pbar_status + 1 if self.pbar_status < 100 else 0
98
+ elif self.pbar_status < 100:
99
+ self.pbar_status += 1
99
100
  self.pbar.setValue(self.pbar_status)
100
101
 
101
102