bluer-ugv 7.489.1__tar.gz → 7.506.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.
Files changed (217) hide show
  1. {bluer_ugv-7.489.1/bluer_ugv.egg-info → bluer_ugv-7.506.1}/PKG-INFO +2 -2
  2. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/README.md +1 -1
  3. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/db.py +19 -6
  4. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/docs.py +29 -1
  5. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/__init__.py +1 -1
  6. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/screen/classes.py +2 -1
  7. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/session.py +1 -1
  8. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1/bluer_ugv.egg-info}/PKG-INFO +2 -2
  9. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/LICENSE +0 -0
  10. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/MANIFEST.in +0 -0
  11. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/abcli.sh +0 -0
  12. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/actions.sh +0 -0
  13. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/aka.sh +0 -0
  14. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/alias.sh +0 -0
  15. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/bluer_ugv.sh +0 -0
  16. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/dataset/combine.sh +0 -0
  17. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/dataset/download.sh +0 -0
  18. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/dataset/edit.sh +0 -0
  19. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/dataset/list.sh +0 -0
  20. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/dataset/upload.sh +0 -0
  21. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/dataset.sh +0 -0
  22. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/debug.sh +0 -0
  23. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/env/cp.sh +0 -0
  24. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/env/list.sh +0 -0
  25. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/env/set.sh +0 -0
  26. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/env.sh +0 -0
  27. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/keyboard/test.sh +0 -0
  28. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/keyboard.sh +0 -0
  29. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/select_target.sh +0 -0
  30. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/session.sh +0 -0
  31. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/ultrasonic/review.sh +0 -0
  32. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/ultrasonic/test.sh +0 -0
  33. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/ultrasonic.sh +0 -0
  34. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/video/play.sh +0 -0
  35. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/video/playlist/cat.sh +0 -0
  36. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/video/playlist/download.sh +0 -0
  37. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/video/playlist/edit.sh +0 -0
  38. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/video/playlist/upload.sh +0 -0
  39. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/video/playlist.sh +0 -0
  40. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow/video.sh +0 -0
  41. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/swallow.sh +0 -0
  42. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/tests/README.sh +0 -0
  43. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/tests/help.sh +0 -0
  44. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine.sh +0 -0
  45. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_explicit.sh +0 -0
  46. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_sequence.sh +0 -0
  47. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/tests/swallow_dataset_download_upload.sh +0 -0
  48. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/tests/swallow_dataset_edit.sh +0 -0
  49. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/tests/swallow_dataset_list.sh +0 -0
  50. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/tests/swallow_video_play.sh +0 -0
  51. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/tests/swallow_video_playlist.sh +0 -0
  52. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/tests/ultrasonic_sensor_review.sh +0 -0
  53. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/tests/version.sh +0 -0
  54. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/.abcli/ugv/git.sh +0 -0
  55. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/__init__.py +0 -0
  56. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/alias.py +0 -0
  57. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/arzhang/__init__.py +0 -0
  58. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/arzhang/algo.py +0 -0
  59. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/arzhang/consts.py +0 -0
  60. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/arzhang/design.py +0 -0
  61. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/arzhang/flag.py +0 -0
  62. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/arzhang/items.py +0 -0
  63. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/beast.py +0 -0
  64. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/build.py +0 -0
  65. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/computer/__init__.py +0 -0
  66. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/computer/box.py +0 -0
  67. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/computer/docs.py +0 -0
  68. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/computer/pcb.py +0 -0
  69. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/computer/power.py +0 -0
  70. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/computer/schematics.py +0 -0
  71. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/computer/testing.py +0 -0
  72. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/consts.py +0 -0
  73. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/eagle/__init__.py +0 -0
  74. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/eagle/consts.py +0 -0
  75. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/eagle/items.py +0 -0
  76. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/fire/__init__.py +0 -0
  77. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/fire/consts.py +0 -0
  78. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/fire/items.py +0 -0
  79. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/items.py +0 -0
  80. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/rangin/__init__.py +0 -0
  81. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/rangin/consts.py +0 -0
  82. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/rangin/items.py +0 -0
  83. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ravin/__init__.py +0 -0
  84. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ravin/consts.py +0 -0
  85. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ravin/items.py +0 -0
  86. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/releases.py +0 -0
  87. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/root.py +0 -0
  88. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/shortcuts.py +0 -0
  89. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/swallow/__init__.py +0 -0
  90. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/swallow/analog.py +0 -0
  91. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/swallow/consts.py +0 -0
  92. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/swallow/digital/__init__.py +0 -0
  93. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/swallow/digital/algo/__init__.py +0 -0
  94. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/swallow/digital/algo/navigation.py +0 -0
  95. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/swallow/digital/algo/yolo.py +0 -0
  96. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/swallow/digital/design/__init__.py +0 -0
  97. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/swallow/digital/design/mechanical.py +0 -0
  98. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/swallow/digital/design/ultrasonic_sensor.py +0 -0
  99. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/swallow/items.py +0 -0
  100. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/__init__.py +0 -0
  101. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/__init__.py +0 -0
  102. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/build.py +0 -0
  103. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/features/DYI.py +0 -0
  104. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/features/__init__.py +0 -0
  105. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/features/classes.py +0 -0
  106. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/features/concealment.py +0 -0
  107. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/features/control.py +0 -0
  108. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/features/cost.py +0 -0
  109. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/features/db.py +0 -0
  110. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/features/payload.py +0 -0
  111. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/features/ps.py +0 -0
  112. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/features/range.py +0 -0
  113. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/features/sanction_proof.py +0 -0
  114. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/features/size.py +0 -0
  115. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/features/speed.py +0 -0
  116. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/features/swarm.py +0 -0
  117. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/features/uv_delivery.py +0 -0
  118. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/references/__init__.py +0 -0
  119. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/references/classes.py +0 -0
  120. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/references/db.py +0 -0
  121. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/ugvs/__init__.py +0 -0
  122. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/ugvs/classes.py +0 -0
  123. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/README/ugvs/comparison/ugvs/db.py +0 -0
  124. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/__main__.py +0 -0
  125. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/assets/comparison.html +0 -0
  126. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/config.env +0 -0
  127. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/designs/__init__.py +0 -0
  128. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/designs/eagle/__init__.py +0 -0
  129. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/designs/eagle/parts.py +0 -0
  130. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/designs/fire/__init__.py +0 -0
  131. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/designs/fire/parts.py +0 -0
  132. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/designs/rangin/__init__.py +0 -0
  133. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/designs/rangin/parts.py +0 -0
  134. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/designs/ravin/__init__.py +0 -0
  135. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/designs/ravin/ravin3/__init__.py +0 -0
  136. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/designs/ravin/ravin3/parts.py +0 -0
  137. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/designs/ravin/ravin4/__init__.py +0 -0
  138. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/designs/ravin/ravin4/parts.py +0 -0
  139. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/env.py +0 -0
  140. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/help/__init__.py +0 -0
  141. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/help/__main__.py +0 -0
  142. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/help/functions.py +0 -0
  143. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/help/git.py +0 -0
  144. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/help/swallow/__init__.py +0 -0
  145. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/help/swallow/dataset.py +0 -0
  146. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/help/swallow/debug.py +0 -0
  147. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/help/swallow/env.py +0 -0
  148. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/help/swallow/keyboard.py +0 -0
  149. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/help/swallow/select_target.py +0 -0
  150. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/help/swallow/ultrasonic_sensor.py +0 -0
  151. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/help/swallow/video/__init__.py +0 -0
  152. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/help/swallow/video/functions.py +0 -0
  153. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/help/swallow/video/playlist.py +0 -0
  154. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/host.py +0 -0
  155. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/logger.py +0 -0
  156. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/sample.env +0 -0
  157. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/__init__.py +0 -0
  158. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/__main__.py +0 -0
  159. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/dataset/__init__.py +0 -0
  160. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/dataset/__main__.py +0 -0
  161. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/dataset/combination.py +0 -0
  162. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/debug.py +0 -0
  163. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/__init__.py +0 -0
  164. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/__main__.py +0 -0
  165. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/__init__.py +0 -0
  166. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/camera/__init__.py +0 -0
  167. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/camera/generic.py +0 -0
  168. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/camera/navigation.py +0 -0
  169. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/camera/tracking.py +0 -0
  170. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/camera/yolo.py +0 -0
  171. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/keyboard/__init__.py +0 -0
  172. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/keyboard/__main__.py +0 -0
  173. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/keyboard/classes.py +0 -0
  174. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/keyboard/keys.py +0 -0
  175. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/keyboard/testing.py +0 -0
  176. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/leds.py +0 -0
  177. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/mode.py +0 -0
  178. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/motor/__init__.py +0 -0
  179. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/motor/generic.py +0 -0
  180. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/motor/left.py +0 -0
  181. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/motor/rear.py +0 -0
  182. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/motor/right.py +0 -0
  183. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/motor/steering.py +0 -0
  184. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/mousepad.py +0 -0
  185. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/position.py +0 -0
  186. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/push_button.py +0 -0
  187. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/screen/__init__.py +0 -0
  188. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/screen/video/__init__.py +0 -0
  189. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/screen/video/__main__.py +0 -0
  190. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/screen/video/engine.py +0 -0
  191. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/screen/video/player.py +0 -0
  192. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/screen/video/playlist.py +0 -0
  193. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/setpoint/__init__.py +0 -0
  194. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/setpoint/classes.py +0 -0
  195. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/setpoint/steering.py +0 -0
  196. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/__init__.py +0 -0
  197. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/__main__.py +0 -0
  198. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/classes.py +0 -0
  199. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/consts.py +0 -0
  200. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/detection.py +0 -0
  201. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/detection_list.py +0 -0
  202. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/log.py +0 -0
  203. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/pack.py +0 -0
  204. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/review.py +0 -0
  205. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/sensor.py +0 -0
  206. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/testing.py +0 -0
  207. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/session/functions.py +0 -0
  208. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/swallow/targeting.py +0 -0
  209. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv/urls.py +0 -0
  210. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv.egg-info/SOURCES.txt +0 -0
  211. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv.egg-info/dependency_links.txt +0 -0
  212. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv.egg-info/requires.txt +0 -0
  213. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/bluer_ugv.egg-info/top_level.txt +0 -0
  214. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/pyproject.toml +0 -0
  215. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/requirements.txt +0 -0
  216. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/setup.cfg +0 -0
  217. {bluer_ugv-7.489.1 → bluer_ugv-7.506.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bluer_ugv
3
- Version: 7.489.1
3
+ Version: 7.506.1
4
4
  Summary: 🐬 AI x UGV.
5
5
  Home-page: https://github.com/kamangir/bluer-ugv
6
6
  Author: Arash Abadpour (Kamangir)
@@ -64,7 +64,7 @@ pip install bluer_ugv
64
64
 
65
65
  [![pylint](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml) [![pytest](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml) [![bashtest](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml) [![PyPI version](https://img.shields.io/pypi/v/bluer-ugv.svg)](https://pypi.org/project/bluer-ugv/) [![PyPI - Downloads](https://img.shields.io/pypi/dd/bluer-ugv)](https://pypistats.org/packages/bluer-ugv)
66
66
 
67
- built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.489.1`](https://github.com/kamangir/bluer-ugv).
67
+ built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.506.1`](https://github.com/kamangir/bluer-ugv).
68
68
 
69
69
 
70
70
  built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
@@ -35,5 +35,5 @@ pip install bluer_ugv
35
35
 
36
36
  [![pylint](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml) [![pytest](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml) [![bashtest](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml) [![PyPI version](https://img.shields.io/pypi/v/bluer-ugv.svg)](https://pypi.org/project/bluer-ugv/) [![PyPI - Downloads](https://img.shields.io/pypi/dd/bluer-ugv)](https://pypistats.org/packages/bluer-ugv)
37
37
 
38
- built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.489.1`](https://github.com/kamangir/bluer-ugv).
38
+ built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.506.1`](https://github.com/kamangir/bluer-ugv).
39
39
 
@@ -4,30 +4,43 @@ from bluer_ugv.README.rangin.consts import rangin_mechanical_design
4
4
 
5
5
  dict_of_ugvs = {
6
6
  "swallow": {
7
+ "order": 1,
7
8
  "items": [
8
9
  f"{swallow_assets2}/20250701_2206342_1.gif",
9
10
  f"{swallow_assets2}/20250913_203635~2_1.gif",
10
- ]
11
+ ],
11
12
  },
12
13
  "arzhang": {
14
+ "order": 2,
13
15
  "items": [
14
16
  f"{arzhang_assets2}/20251106_111750.jpg",
15
17
  ],
16
18
  },
17
19
  "arzhang2": {
20
+ "order": 3,
18
21
  "items": [
19
22
  f"{arzhang_assets2}/20251106_111750.jpg",
20
23
  ],
21
24
  },
22
25
  "arzhang3": {
23
- "items": [
24
- f"{arzhang_assets}/20251107_175506.jpg",
25
- f"{arzhang_assets2}/20251128_175614.jpg",
26
- ],
26
+ "order": 4,
27
+ "items": sorted(
28
+ [
29
+ f"{arzhang_assets}/20251107_175506.jpg",
30
+ f"{arzhang_assets2}/20251128_175614.jpg",
31
+ f"{arzhang_assets2}/20251202_100317.jpg",
32
+ f"{arzhang_assets2}/20251202_101031.jpg",
33
+ f"{arzhang_assets2}/20251128_113314.jpg",
34
+ f"{arzhang_assets2}/20251128_151952.jpg",
35
+ f"{arzhang_assets2}/20251128_155616.jpg",
36
+ f"{arzhang_assets2}/20251130_140103.jpg",
37
+ ]
38
+ ),
27
39
  },
28
40
  "rangin": {
41
+ "order": 5,
29
42
  "items": [
30
43
  f"{rangin_mechanical_design}/robot.png",
31
- ]
44
+ ],
32
45
  },
33
46
  }
@@ -1,4 +1,4 @@
1
- from bluer_objects.README.items import ImageItems
1
+ from bluer_objects.README.items import ImageItems, Items
2
2
 
3
3
  from bluer_ugv.README.ugvs.db import dict_of_ugvs
4
4
  from bluer_ugv.README.validations.db import dict_of_validations
@@ -6,6 +6,7 @@ from bluer_ugv.README.validations.db import dict_of_validations
6
6
  docs = [
7
7
  {
8
8
  "path": f"../docs/UGVs/{ugv_name}.md",
9
+ "cols": info.get("cols", 3),
9
10
  "items": ImageItems({item: "" for item in info.get("items", [])}),
10
11
  "macros": {
11
12
  "validations:::": [
@@ -27,4 +28,31 @@ docs = [
27
28
  },
28
29
  }
29
30
  for ugv_name, info in dict_of_ugvs.items()
31
+ ] + [
32
+ {
33
+ "path": "../docs/UGVs",
34
+ "items": Items(
35
+ [
36
+ {
37
+ "name": ugv_name,
38
+ "marquee": (
39
+ lambda url: (
40
+ url if url.endswith("?raw=true") else f"{url}/?raw=true"
41
+ )
42
+ )(info["items"][-1]),
43
+ "url": f"./{ugv_name}.md",
44
+ }
45
+ for ugv_name, info in dict_of_ugvs.items()
46
+ ]
47
+ ),
48
+ "macros": {
49
+ "list": [
50
+ f"- [{ugv_name}](./{ugv_name}.md)"
51
+ for ugv_name in sorted(
52
+ dict_of_ugvs.keys(),
53
+ key=lambda ugv_name: dict_of_ugvs[ugv_name]["order"],
54
+ )
55
+ ],
56
+ },
57
+ }
30
58
  ]
@@ -4,7 +4,7 @@ ICON = "🐬"
4
4
 
5
5
  DESCRIPTION = f"{ICON} AI x UGV."
6
6
 
7
- VERSION = "7.489.1"
7
+ VERSION = "7.506.1"
8
8
 
9
9
  REPO_NAME = "bluer-ugv"
10
10
 
@@ -16,7 +16,8 @@ class ClassicalScreen:
16
16
 
17
17
  def cleanup(self):
18
18
  logger.info(f"{self.__class__.__name__}.cleanup")
19
- self.video_player.stop()
19
+ if self.video_player is not None:
20
+ self.video_player.stop()
20
21
 
21
22
  def initialize(self) -> bool:
22
23
  if self.video_player is None:
@@ -138,7 +138,7 @@ class ClassicalSession:
138
138
 
139
139
  self.timing.calculate()
140
140
  loop_frequency = round(
141
- 1 / self.timing.stats["session.update"]["average"],
141
+ 1 / self.timing.stats["session.update"].get("average", -1),
142
142
  2,
143
143
  )
144
144
  self.timing.log()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bluer_ugv
3
- Version: 7.489.1
3
+ Version: 7.506.1
4
4
  Summary: 🐬 AI x UGV.
5
5
  Home-page: https://github.com/kamangir/bluer-ugv
6
6
  Author: Arash Abadpour (Kamangir)
@@ -64,7 +64,7 @@ pip install bluer_ugv
64
64
 
65
65
  [![pylint](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml) [![pytest](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml) [![bashtest](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml) [![PyPI version](https://img.shields.io/pypi/v/bluer-ugv.svg)](https://pypi.org/project/bluer-ugv/) [![PyPI - Downloads](https://img.shields.io/pypi/dd/bluer-ugv)](https://pypistats.org/packages/bluer-ugv)
66
66
 
67
- built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.489.1`](https://github.com/kamangir/bluer-ugv).
67
+ built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.506.1`](https://github.com/kamangir/bluer-ugv).
68
68
 
69
69
 
70
70
  built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
File without changes
File without changes
File without changes
File without changes
File without changes