plover 5.0.0.dev2__tar.gz → 5.0.0.dev3__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 (399) hide show
  1. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/MANIFEST.in +1 -0
  2. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/NEWS.md +30 -0
  3. {plover-5.0.0.dev2/plover.egg-info → plover-5.0.0.dev3}/PKG-INFO +1 -1
  4. plover-5.0.0.dev3/doc/conf.py +100 -0
  5. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/developer_guide.md +29 -2
  6. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/setup.md +2 -2
  7. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/linux/appimage/blacklist.txt +27 -21
  8. plover-5.0.0.dev3/linux/appimage/pyinfo.py +21 -0
  9. plover-5.0.0.dev3/osx/app_resources/dist_blacklist.txt +101 -0
  10. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/dmg_resources/settings.py +15 -17
  11. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/__init__.py +8 -7
  12. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/__main__.py +1 -1
  13. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/command/set_config.py +7 -4
  14. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/config.py +177 -74
  15. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/dictionary/base.py +21 -9
  16. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/dictionary/helpers.py +6 -4
  17. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/dictionary/json_dict.py +10 -12
  18. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/dictionary/loading_manager.py +8 -10
  19. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/dictionary/rtfcre_dict.py +46 -43
  20. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/dictionary/rtfcre_parse.py +116 -100
  21. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/engine.py +112 -96
  22. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/exception.py +4 -1
  23. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/formatting.py +198 -140
  24. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_none/add_translation.py +17 -16
  25. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_none/engine.py +1 -3
  26. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_none/main.py +2 -2
  27. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/about_dialog.py +17 -17
  28. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/add_translation_dialog.py +8 -9
  29. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/add_translation_widget.py +66 -63
  30. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/config_window.py +274 -154
  31. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/console_widget.py +9 -13
  32. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/dictionaries_widget.py +140 -119
  33. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/dictionary_editor.py +60 -61
  34. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/engine.py +3 -3
  35. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/info_browser.py +50 -4
  36. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/log_qt.py +3 -2
  37. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/lookup_dialog.py +9 -9
  38. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/machine_options.py +38 -37
  39. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/main.py +19 -19
  40. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/main_window.py +88 -71
  41. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/paper_tape.py +69 -52
  42. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/paper_tape.ui +0 -5
  43. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/plugins_manager.py +47 -43
  44. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/run_dialog.py +7 -6
  45. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/steno_validator.py +2 -3
  46. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/suggestions_dialog.py +34 -38
  47. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/suggestions_widget.py +22 -16
  48. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/tool.py +1 -3
  49. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/trayicon.py +19 -19
  50. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/utils.py +19 -9
  51. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/i18n.py +9 -8
  52. plover-5.0.0.dev3/plover/key_combo.py +221 -0
  53. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/log.py +26 -26
  54. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/base.py +40 -35
  55. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/geminipr.py +7 -7
  56. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/keyboard.py +16 -14
  57. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/keyboard_capture/__init__.py +0 -1
  58. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/keymap.py +24 -20
  59. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/passport.py +6 -5
  60. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/procat.py +12 -16
  61. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/stentura.py +45 -29
  62. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/txbolt.py +5 -3
  63. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/macro/repeat.py +0 -1
  64. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/macro/retro.py +9 -9
  65. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/macro/undo.py +4 -3
  66. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/attach.py +12 -10
  67. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/case.py +2 -1
  68. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/conditional.py +3 -3
  69. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/currency.py +4 -4
  70. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/mode.py +15 -15
  71. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/punctuation.py +1 -0
  72. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/misc.py +21 -17
  73. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/orthography.py +12 -10
  74. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/__init__.py +7 -5
  75. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/config.py +16 -15
  76. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/controller.py +13 -13
  77. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/i18n.py +2 -1
  78. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/keyboardcontrol.py +2 -2
  79. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/keyboardcontrol_uinput.py +48 -3
  80. plover-5.0.0.dev3/plover/oslayer/linux/keyboardcontrol_x11.py +1353 -0
  81. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/log.py +1 -1
  82. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/log_dbus.py +97 -65
  83. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/serial.py +2 -2
  84. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/wmctrl_x11.py +11 -15
  85. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/osx/keyboardcontrol.py +194 -99
  86. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/osx/keyboardlayout.py +138 -119
  87. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/osx/log.py +14 -8
  88. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/osx/serial.py +1 -1
  89. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/osx/wmctrl.py +6 -1
  90. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/windows/keyboardcontrol.py +195 -89
  91. plover-5.0.0.dev3/plover/oslayer/windows/keyboardlayout.py +529 -0
  92. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/windows/log.py +5 -3
  93. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/windows/serial.py +4 -5
  94. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/windows/wmctrl.py +1 -1
  95. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/output/__init__.py +1 -2
  96. plover-5.0.0.dev3/plover/output/keyboard.py +25 -0
  97. plover-5.0.0.dev3/plover/plugins_manager/__main__.py +98 -0
  98. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/plugins_manager/global_registry.py +2 -5
  99. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/plugins_manager/local_registry.py +11 -13
  100. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/plugins_manager/package_index.py +12 -18
  101. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/plugins_manager/pip_wrapper.py +5 -5
  102. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/plugins_manager/plugin_metadata.py +17 -9
  103. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/plugins_manager/registry.py +39 -28
  104. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/plugins_manager/requests.py +2 -4
  105. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/plugins_manager/utils.py +9 -7
  106. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/registry.py +28 -26
  107. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/resource.py +13 -10
  108. plover-5.0.0.dev3/plover/scripts/dist_main.py +23 -0
  109. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/scripts/main.py +57 -34
  110. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/scripts/send_command.py +13 -7
  111. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/steno.py +16 -9
  112. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/steno_dictionary.py +47 -21
  113. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/suggestions.py +11 -11
  114. plover-5.0.0.dev3/plover/system/__init__.py +90 -0
  115. plover-5.0.0.dev3/plover/system/english_stenotype.py +321 -0
  116. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/translation.py +67 -51
  117. {plover-5.0.0.dev2 → plover-5.0.0.dev3/plover.egg-info}/PKG-INFO +1 -1
  118. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover.egg-info/SOURCES.txt +2 -0
  119. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/check_requirements.py +5 -6
  120. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/download.py +10 -8
  121. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/get_pip.py +10 -5
  122. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/install_wheels.py +33 -31
  123. plover-5.0.0.dev3/plover_build_utils/pyqt.py +43 -0
  124. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/setup.py +64 -54
  125. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/source_less.py +6 -6
  126. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/testing/blackbox.py +31 -31
  127. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/testing/dict.py +3 -3
  128. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/testing/output.py +5 -6
  129. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/testing/parametrize.py +5 -3
  130. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/testing/steno_dictionary.py +145 -124
  131. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/tree.py +21 -19
  132. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/trim.py +5 -5
  133. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/zipdir.py +3 -3
  134. plover-5.0.0.dev3/reqs/code_quality.txt +1 -0
  135. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/constraints.txt +4 -1
  136. plover-5.0.0.dev3/reqs/dev.txt +4 -0
  137. plover-5.0.0.dev3/setup.py +318 -0
  138. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/conftest.py +6 -4
  139. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/gui_qt/test_dictionaries_widget.py +445 -301
  140. plover-5.0.0.dev3/test/gui_qt/test_steno_validator.py +31 -0
  141. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_blackbox.py +404 -389
  142. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_command.py +33 -18
  143. plover-5.0.0.dev3/test/test_config.py +776 -0
  144. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_default_dict.py +9 -11
  145. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_engine.py +94 -70
  146. plover-5.0.0.dev3/test/test_formatting.py +1596 -0
  147. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_json_dict.py +26 -23
  148. plover-5.0.0.dev3/test/test_key_combo.py +160 -0
  149. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_keyboard.py +36 -25
  150. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_keymap.py +32 -27
  151. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_loading_manager.py +28 -30
  152. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_log.py +28 -27
  153. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_machine.py +3 -1
  154. plover-5.0.0.dev3/test/test_misc.py +110 -0
  155. plover-5.0.0.dev3/test/test_orthography.py +151 -0
  156. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_passport.py +28 -8
  157. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_resource.py +37 -36
  158. plover-5.0.0.dev3/test/test_rtfcre_dict.py +550 -0
  159. plover-5.0.0.dev3/test/test_steno.py +105 -0
  160. plover-5.0.0.dev3/test/test_steno_dictionary.py +250 -0
  161. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_stentura.py +139 -82
  162. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_translation.py +398 -390
  163. plover-5.0.0.dev3/windows/dist_blacklist.txt +74 -0
  164. plover-5.0.0.dev2/doc/conf.py +0 -100
  165. plover-5.0.0.dev2/linux/appimage/pyinfo.py +0 -14
  166. plover-5.0.0.dev2/osx/app_resources/dist_blacklist.txt +0 -67
  167. plover-5.0.0.dev2/plover/key_combo.py +0 -221
  168. plover-5.0.0.dev2/plover/oslayer/linux/keyboardcontrol_x11.py +0 -1344
  169. plover-5.0.0.dev2/plover/oslayer/windows/keyboardlayout.py +0 -496
  170. plover-5.0.0.dev2/plover/output/keyboard.py +0 -25
  171. plover-5.0.0.dev2/plover/plugins_manager/__main__.py +0 -95
  172. plover-5.0.0.dev2/plover/scripts/dist_main.py +0 -23
  173. plover-5.0.0.dev2/plover/system/__init__.py +0 -74
  174. plover-5.0.0.dev2/plover/system/english_stenotype.py +0 -319
  175. plover-5.0.0.dev2/plover_build_utils/pyqt.py +0 -41
  176. plover-5.0.0.dev2/setup.py +0 -297
  177. plover-5.0.0.dev2/test/gui_qt/test_steno_validator.py +0 -28
  178. plover-5.0.0.dev2/test/test_config.py +0 -667
  179. plover-5.0.0.dev2/test/test_formatting.py +0 -1222
  180. plover-5.0.0.dev2/test/test_key_combo.py +0 -153
  181. plover-5.0.0.dev2/test/test_misc.py +0 -104
  182. plover-5.0.0.dev2/test/test_orthography.py +0 -146
  183. plover-5.0.0.dev2/test/test_rtfcre_dict.py +0 -531
  184. plover-5.0.0.dev2/test/test_steno.py +0 -103
  185. plover-5.0.0.dev2/test/test_steno_dictionary.py +0 -238
  186. plover-5.0.0.dev2/windows/dist_blacklist.txt +0 -27
  187. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/CONTRIBUTING.md +0 -0
  188. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/LICENSE.txt +0 -0
  189. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/README.md +0 -0
  190. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/SCOWL_README.txt +0 -0
  191. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_static/board-layout.png +0 -0
  192. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_static/custom.css +0 -0
  193. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_static/de-speech.png +0 -0
  194. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_static/dolores.svg +0 -0
  195. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_static/engine-flow.png +0 -0
  196. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_static/favicon.ico +0 -0
  197. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_static/jp-speech.png +0 -0
  198. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_static/keys-layout.png +0 -0
  199. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_static/uncomfortable.png +0 -0
  200. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_templates/breadcrumbs.html +0 -0
  201. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_templates/layout.html +0 -0
  202. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/add_translation.md +0 -0
  203. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/config.md +0 -0
  204. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/dictionary.md +0 -0
  205. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/dictionary_lib.md +0 -0
  206. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/engine.md +0 -0
  207. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/exception.md +0 -0
  208. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/formatting.md +0 -0
  209. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/i18n.md +0 -0
  210. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/key_combo.md +0 -0
  211. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/log.md +0 -0
  212. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/machine.md +0 -0
  213. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/machine_keyboard_capture.md +0 -0
  214. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/machine_keymap.md +0 -0
  215. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/misc.md +0 -0
  216. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/orthography.md +0 -0
  217. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/oslayer.md +0 -0
  218. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/oslayer_config.md +0 -0
  219. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/oslayer_controller.md +0 -0
  220. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/oslayer_i18n.md +0 -0
  221. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/oslayer_keyboardcontrol.md +0 -0
  222. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/oslayer_log.md +0 -0
  223. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/oslayer_wmctrl.md +0 -0
  224. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/output.md +0 -0
  225. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/plover.md +0 -0
  226. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/plover_stroke.md +0 -0
  227. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/qt.md +0 -0
  228. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/registry.md +0 -0
  229. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/resource.md +0 -0
  230. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/steno.md +0 -0
  231. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/steno_dictionary.md +0 -0
  232. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/suggestions.md +0 -0
  233. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/system.md +0 -0
  234. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/translation.md +0 -0
  235. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api_reference.md +0 -0
  236. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/basic_usage.md +0 -0
  237. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/ci.md +0 -0
  238. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/cli_reference.md +0 -0
  239. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/configuration.md +0 -0
  240. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/contributing.md +0 -0
  241. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/design.md +0 -0
  242. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/dict_editor.md +0 -0
  243. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/dict_formats.md +0 -0
  244. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/dictionaries.md +0 -0
  245. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/hardware_communication.md +0 -0
  246. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/hardware_setup.md +0 -0
  247. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/i18n.md +0 -0
  248. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/index.md +0 -0
  249. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/installation.md +0 -0
  250. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/internals.md +0 -0
  251. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/platform_layer.md +0 -0
  252. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/commands.md +0 -0
  253. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/dictionaries.md +0 -0
  254. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/extensions.md +0 -0
  255. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/gui_tools.md +0 -0
  256. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/machines.md +0 -0
  257. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/macros.md +0 -0
  258. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/metas.md +0 -0
  259. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/publishing.md +0 -0
  260. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/systems.md +0 -0
  261. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin_dev.md +0 -0
  262. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugins.md +0 -0
  263. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/releases.md +0 -0
  264. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/requirements.txt +0 -0
  265. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/system-dev/board-layout.md +0 -0
  266. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/system-dev/key-arrangement.md +0 -0
  267. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/system-dev/layout-test.md +0 -0
  268. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/system-dev/steno-system.md +0 -0
  269. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/system-dev/system.md +0 -0
  270. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/system_dev.md +0 -0
  271. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/translation_language.md +0 -0
  272. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/linux/README.md +0 -0
  273. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/linux/appimage/Dockerfile +0 -0
  274. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/linux/appimage/apprun.sh +0 -0
  275. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/linux/appimage/build.sh +0 -0
  276. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/linux/appimage/deps.sh +0 -0
  277. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/linux/plover.desktop +0 -0
  278. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/news.d/api/.gitignore +0 -0
  279. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/news.d/bugfix/.gitignore +0 -0
  280. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/news.d/feature/.gitignore +0 -0
  281. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/news.d/template.md +0 -0
  282. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/README.md +0 -0
  283. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/app_resources/Info.plist +0 -0
  284. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/app_resources/plover.icns +0 -0
  285. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/app_resources/plover_launcher.c +0 -0
  286. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/deps.sh +0 -0
  287. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/dmg_resources/background.png +0 -0
  288. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/dmg_resources/background.psd +0 -0
  289. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/dmg_resources/background@2x.png +0 -0
  290. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/make_app.sh +0 -0
  291. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/assets/american_english_words.txt +0 -0
  292. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/assets/commands.json +0 -0
  293. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/assets/main.json +0 -0
  294. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/assets/plover-icon.svg +0 -0
  295. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/assets/plover.ico +0 -0
  296. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/assets/plover.png +0 -0
  297. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/assets/user.json +0 -0
  298. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/command/__init__.py +0 -0
  299. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/dictionary/__init__.py +0 -0
  300. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_none/__init__.py +0 -0
  301. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/__init__.py +0 -0
  302. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/about_dialog.ui +0 -0
  303. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/add_translation_dialog.ui +0 -0
  304. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/add_translation_widget.ui +0 -0
  305. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/config_file_widget.ui +0 -0
  306. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/config_keyboard_widget.ui +0 -0
  307. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/config_serial_widget.ui +0 -0
  308. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/config_window.ui +0 -0
  309. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/console_widget.ui +0 -0
  310. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/dictionaries_widget.ui +0 -0
  311. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/dictionary_editor.ui +0 -0
  312. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/lookup_dialog.ui +0 -0
  313. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/main_window.ui +0 -0
  314. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/plugins_manager.ui +0 -0
  315. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/__init__.py +0 -0
  316. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/add.svg +0 -0
  317. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/dictionary_error.svg +0 -0
  318. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/dictionary_favorite.svg +0 -0
  319. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/dictionary_loading.svg +0 -0
  320. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/dictionary_normal.svg +0 -0
  321. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/dictionary_readonly.svg +0 -0
  322. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/down.svg +0 -0
  323. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/folder.svg +0 -0
  324. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/font_selector.svg +0 -0
  325. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/git.png +0 -0
  326. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/lightbulb.svg +0 -0
  327. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/lookup.svg +0 -0
  328. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/pencil.svg +0 -0
  329. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/pin.svg +0 -0
  330. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/plover.png +0 -0
  331. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/plugins_manager.svg +0 -0
  332. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/reconnect.svg +0 -0
  333. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/remove.svg +0 -0
  334. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/save.svg +0 -0
  335. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/settings.svg +0 -0
  336. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/state-disabled.svg +0 -0
  337. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/state-disconnected.svg +0 -0
  338. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/state-enabled.svg +0 -0
  339. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/tape.svg +0 -0
  340. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/translation_add.svg +0 -0
  341. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/trash.svg +0 -0
  342. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/undo.svg +0 -0
  343. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/up.svg +0 -0
  344. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources.qrc +0 -0
  345. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/run_dialog.ui +0 -0
  346. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/suggestions_dialog.ui +0 -0
  347. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/__init__.py +0 -0
  348. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/macro/__init__.py +0 -0
  349. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/messages/es/LC_MESSAGES/plover.po +0 -0
  350. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/messages/fr/LC_MESSAGES/plover.po +0 -0
  351. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/messages/it/LC_MESSAGES/plover.po +0 -0
  352. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/messages/nl/LC_MESSAGES/plover.po +0 -0
  353. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/messages/plover.pot +0 -0
  354. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/messages/zh_tw/LC_MESSAGES/plover.po +0 -0
  355. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/__init__.py +0 -0
  356. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/command.py +0 -0
  357. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/glue.py +0 -0
  358. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/key_combo.py +0 -0
  359. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/word_end.py +0 -0
  360. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/__init__.py +0 -0
  361. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/display_server.py +0 -0
  362. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/wmctrl.py +0 -0
  363. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/osx/__init__.py +0 -0
  364. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/osx/i18n.py +0 -0
  365. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/windows/__init__.py +0 -0
  366. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/windows/i18n.py +0 -0
  367. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/plugins_manager/__init__.py +0 -0
  368. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/scripts/__init__.py +0 -0
  369. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover.egg-info/dependency_links.txt +0 -0
  370. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover.egg-info/entry_points.txt +0 -0
  371. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover.egg-info/requires.txt +0 -0
  372. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover.egg-info/top_level.txt +0 -0
  373. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover.egg-info/zip-safe +0 -0
  374. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/__init__.py +0 -0
  375. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/functions.sh +0 -0
  376. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/testing/__init__.py +0 -0
  377. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/testing/steno.py +0 -0
  378. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/pyproject.toml +0 -0
  379. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/pytest.ini +0 -0
  380. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/bootstrap.txt +0 -0
  381. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/build.txt +0 -0
  382. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/ci.txt +0 -0
  383. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/dist.txt +0 -0
  384. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/dist_extra_gui_qt.txt +0 -0
  385. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/dist_extra_log.txt +0 -0
  386. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/packaging.txt +0 -0
  387. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/release.txt +0 -0
  388. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/setup.txt +0 -0
  389. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/test.txt +0 -0
  390. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/setup.cfg +0 -0
  391. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/__init__.py +0 -0
  392. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/gui_qt/__init__.py +0 -0
  393. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/py37compat.py +0 -0
  394. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/tox.ini +0 -0
  395. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/windows/README.md +0 -0
  396. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/windows/dist_build.sh +0 -0
  397. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/windows/dist_deps.sh +0 -0
  398. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/windows/installer.bmp +0 -0
  399. {plover-5.0.0.dev2 → plover-5.0.0.dev3}/windows/installer.nsi +0 -0
@@ -33,6 +33,7 @@ include test/*.py
33
33
  include test/gui_qt/*.py
34
34
  include tox.ini
35
35
  include windows/*
36
+ exclude .pre-commit-config.yaml
36
37
  # without first including it, exluding .readthedocs.yml results in a warning when running locally
37
38
  include .readthedocs.yml
38
39
  exclude .readthedocs.yml
@@ -1,3 +1,33 @@
1
+ # v5.0.0.dev3 (2025-07-14)
2
+
3
+
4
+ ## Features
5
+
6
+ ### Core
7
+
8
+ - Allow higher priority dictionaries to delete entries from others. (#1160)
9
+ - Improve orthography rules for `^ify` suffixes. (#1680)
10
+ - Reduce installer file size. (#1741)
11
+
12
+ ### Linux
13
+
14
+ - Add dvorak keymap support for uinput users. (#1746)
15
+
16
+ ## Bugfixes
17
+
18
+ ### Core
19
+
20
+ - Allow uninstall of installed unsupported plugins. (#1739)
21
+ - Fix missing font family warnings. (#1740)
22
+
23
+ ### Windows
24
+
25
+ - Do not consider extended scan codes in Windows keyboard capture. (#1357)
26
+
27
+ ## API
28
+
29
+ No significant changes.
30
+
1
31
  # v5.0.0.dev2 (2025-06-14)
2
32
 
3
33
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plover
3
- Version: 5.0.0.dev2
3
+ Version: 5.0.0.dev3
4
4
  Summary: Open Source Stenography Software
5
5
  Home-page: http://www.openstenoproject.org/
6
6
  Download-URL: http://www.openstenoproject.org/plover
@@ -0,0 +1,100 @@
1
+ # Configuration file for the Sphinx documentation builder.
2
+
3
+ # -- Project information -----------------------------------------------------
4
+
5
+ project = "Plover"
6
+ copyright = "Open Steno Project"
7
+ author = copyright
8
+
9
+ release = "5.0.0.dev3"
10
+ version = release
11
+
12
+ # -- General configuration ---------------------------------------------------
13
+
14
+ extensions = [
15
+ "sphinx_plover",
16
+ "myst_parser",
17
+ "sphinx.ext.todo",
18
+ ]
19
+
20
+ myst_enable_extensions = ["colon_fence"]
21
+
22
+ templates_path = ["_templates"]
23
+
24
+ exclude_patterns = []
25
+
26
+ pygments_style = "manni"
27
+ pygments_dark_style = "monokai"
28
+
29
+ source_suffix = [".rst", ".md"]
30
+
31
+ todo_include_todos = True
32
+
33
+ # -- Options for HTML output -------------------------------------------------
34
+
35
+ html_theme = "furo"
36
+
37
+ html_static_path = ["_static"]
38
+
39
+ html_title = f"{project} {version}"
40
+
41
+ html_favicon = "_static/favicon.ico"
42
+
43
+ html_css_files = [
44
+ "custom.css",
45
+ ]
46
+
47
+ html_theme_options = {
48
+ "navigation_with_keys": True,
49
+ "light_css_variables": {
50
+ "color-brand-primary": "#3d6961",
51
+ "color-brand-content": "#3d6961",
52
+ "color-sidebar-background": "#3d6961",
53
+ "color-sidebar-brand-text": "white",
54
+ "color-sidebar-brand-text--hover": "white",
55
+ "color-sidebar-caption-text": "white",
56
+ "color-sidebar-link-text": "white",
57
+ "color-sidebar-link-text--top-level": "white",
58
+ "color-sidebar-item-background--hover": "#71a89f",
59
+ "color-sidebar-item-expander-background--hover": "#71a89f",
60
+ "color-inline-code-background": "transparent",
61
+ "font-stack--header": "'Patua One', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'",
62
+ "font-stack--monospace": "'JetBrains Mono', SFMono-Regular, Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace",
63
+ },
64
+ "dark_css_variables": {
65
+ "color-link": "#68a69b",
66
+ "color-link--hover": "#68a69b",
67
+ },
68
+ "light_logo": "dolores.svg",
69
+ "dark_logo": "dolores.svg",
70
+ }
71
+
72
+ from pygments.lexer import RegexLexer, bygroups
73
+ from pygments import token as t
74
+ from sphinx.highlighting import lexers
75
+
76
+
77
+ class RTFLexer(RegexLexer):
78
+ name = "rtf"
79
+
80
+ tokens = {
81
+ "root": [
82
+ (r"(\\[a-z*\\_~\{\}]+)(-?\d+)?", bygroups(t.Keyword, t.Number.Integer)),
83
+ (r"{\\\*\\cxcomment\s+", t.Comment.Multiline, "comment"),
84
+ (
85
+ r"({)(\\\*\\cxs)(\s+)([A-Z#0-9\-/#!,]+)(})",
86
+ bygroups(t.Operator, t.Keyword, t.Text, t.String, t.Operator),
87
+ ),
88
+ (r"{", t.Operator),
89
+ (r"}", t.Operator),
90
+ (r".+?", t.Text),
91
+ ],
92
+ "comment": [
93
+ (r"{", t.Comment.Multiline, "#push"),
94
+ (r"}", t.Comment.Multiline, "#pop"),
95
+ (r".+", t.Comment.Multiline),
96
+ ],
97
+ }
98
+
99
+
100
+ lexers["rtf"] = RTFLexer(startinline=True)
@@ -1,8 +1,8 @@
1
1
  # Environment setup
2
2
 
3
- You need Python >= 3.10 installed, and you need [tox](https://pypi.org/project/tox/) >= 4.0.
3
+ You need Python installed.
4
4
  It is recommended to install the same Python version that is packaged in the official installer files.
5
- You can look up this version in the file `.github/workflows/ci/workflow_context.yml` in the vars section.
5
+ You can look up this version in the file `.github/workflows/ci/workflow_context.yml` in the vars section (`default_python`).
6
6
 
7
7
  Tox simplifies the process of creating and managing isolated virtual environments,
8
8
  handling dependency installation, and running the test suite in isolation. This
@@ -13,6 +13,33 @@ environment created using tools like [venv](https://docs.python.org/3/library/ve
13
13
  This helps keep your global Python environment clean, avoids project conflicts, and
14
14
  isolates tox and its dependencies.
15
15
 
16
+ A typical setup looks like this:
17
+
18
+ ### Linux/macOS (Bash):
19
+ ```bash
20
+ cd path/to/plover
21
+ python -m venv .venv
22
+ source .venv/bin/activate
23
+ pip install -r reqs/dev.txt
24
+ pre-commit install
25
+ pre-commit run --all-files
26
+ tox
27
+ ```
28
+
29
+ ### Windows (PowerShell):
30
+ ```powershell
31
+ cd path\to\plover
32
+ python -m venv .venv
33
+ .venv\Scripts\Activate.ps1
34
+ pip install -r reqs\dev.txt
35
+ pre-commit install
36
+ pre-commit run --all-files
37
+ tox
38
+ ```
39
+ Some features require a Bash shell, so on Windows you may need to use Git Bash or WSL instead of PowerShell.
40
+
41
+ ## Tox
42
+
16
43
  The command for using tox is: `tox {-e envlist} {-- arguments}`. Use `tox -a
17
44
  -v` to get a list of available environments.
18
45
 
@@ -27,9 +27,9 @@ keywords = plover plover_plugin
27
27
  [options]
28
28
  zip_safe = True
29
29
  setup_requires =
30
- setuptools>=30.3.0
30
+ setuptools>=79.0.0 # just an example, might need to be higher
31
31
  install_requires =
32
- plover>=4.0.0.dev10
32
+ plover>=4.0.0.dev10 # or higher, especially for GUI plugins
33
33
  packages =
34
34
  ... # Your packages go here
35
35
  py_modules =
@@ -28,36 +28,42 @@
28
28
  pip/_vendor/distlib/*.exe
29
29
  setuptools/*.exe
30
30
 
31
- # Plover.
32
- :usr/lib/python${pyversion}/site-packages/plover
33
- gui_qt/*.ui
34
- messages/**/*.po
35
- messages/plover.pot
36
-
37
- # PySide6.
31
+ # PySide6.
38
32
  :usr/bin
39
33
  pylupdate6
40
34
  pyuic6
41
35
  :usr/lib/python${pyversion}/site-packages/PySide6
42
- **/*Designer*
36
+ **/*[Aa]ssistant*
37
+ **/*[Dd]esigner*
43
38
  **/*[Hh]elp*
39
+ **/*[Ll]inguist*
40
+ **/*[Oo]pen[Gg][Ll]*
44
41
  **/*[Qq]ml*
45
42
  **/*[Qq]uick*
46
- **/*Test*
43
+ **/*[Ss]ql*
44
+ **/*[Tt]est*
47
45
  **/*[Ww]eb[Ee]ngine*
46
+ **/*.tmpl.py
48
47
  bindings
49
- Qt6/plugins/egldeviceintegrations
50
- Qt6/plugins/geoservices
51
- Qt6/plugins/platforms/libqeglfs.so
52
- Qt6/plugins/platforms/libqlinuxfb.so
53
- Qt6/plugins/platforms/libqminimal.so
54
- Qt6/plugins/platforms/libqminimalegl.so
55
- Qt6/plugins/platforms/libqoffscreen.so
56
- Qt6/plugins/platforms/libqvnc.so
57
- Qt6/plugins/platforms/libqwebgl.so
58
- Qt6/plugins/sceneparsers
59
- Qt6/plugins/webview
48
+ lupdate
49
+ lrelease
50
+ Qt/plugins/egldeviceintegrations
51
+ Qt/plugins/geoservices
52
+ Qt/plugins/platforms/libqeglfs.so
53
+ Qt/plugins/platforms/libqlinuxfb.so
54
+ Qt/plugins/platforms/libqminimal.so
55
+ Qt/plugins/platforms/libqminimalegl.so
56
+ Qt/plugins/platforms/libqoffscreen.so
57
+ Qt/plugins/platforms/libqvnc.so
58
+ Qt/plugins/platforms/libqwebgl.so
59
+ Qt/plugins/sceneparsers
60
+ Qt/plugins/webview
61
+ Qt/translations/qtdeclarative_*
60
62
  pylupdate*
61
63
  uic
62
64
 
63
- # vim: ft=config
65
+ # Plover.
66
+ :usr/lib/python${pyversion}/site-packages/plover
67
+ gui_qt/*.ui
68
+ messages/**/*.po
69
+ messages/plover.pot
@@ -0,0 +1,21 @@
1
+ from distutils import sysconfig
2
+ import sys
3
+
4
+ print(
5
+ "; ".join(
6
+ "py%s=%r" % (k, v)
7
+ for k, v in sorted(
8
+ {
9
+ "exe": sys.executable,
10
+ "prefix": getattr(sys, "base_prefix", sys.prefix),
11
+ "version": sysconfig.get_python_version(),
12
+ "include": sysconfig.get_python_inc(prefix=""),
13
+ "ldlib": sysconfig.get_config_var("LDLIBRARY"),
14
+ "py3lib": sysconfig.get_config_var("PY3LIBRARY"),
15
+ "stdlib": sysconfig.get_python_lib(standard_lib=1, prefix=""),
16
+ "purelib": sysconfig.get_python_lib(plat_specific=0, prefix=""),
17
+ "platlib": sysconfig.get_python_lib(plat_specific=1, prefix=""),
18
+ }.items()
19
+ )
20
+ )
21
+ )
@@ -0,0 +1,101 @@
1
+ # Python.
2
+ :
3
+ _CodeSignature
4
+ share
5
+ Resources/Python.app
6
+ :bin
7
+ !python
8
+ !python3*
9
+ !Info.plist
10
+ *
11
+ :lib
12
+ **/*.tcl
13
+ itcl*
14
+ pkgconfig
15
+ tcl*
16
+ [Tt]k*
17
+ :lib/python$python_base_version
18
+ pkgconfig
19
+ tkinter
20
+ idlelib
21
+ ensurepip
22
+ test
23
+ turtle*
24
+ **/*.exe
25
+ */test*
26
+ # PySide6.
27
+ :lib/python$python_base_version/site-packages/PySide6
28
+ **/*3D*
29
+ **/*AxContainer*
30
+ **/*Bluetooth*
31
+ **/*CLucene*
32
+ **/*Concurrent*
33
+ **/*DataVisualization*
34
+ **/*Designer*
35
+ **/*Graphs*
36
+ **/*Network*
37
+ **/*PrintSupport*
38
+ **/*Location*
39
+ **/*Nfc*
40
+ **/*Sensors*
41
+ **/*Serial*
42
+ **/*QtExampleIcons*
43
+ **/*QtHelp*
44
+ **/*QtLabs*
45
+ **/*QtOpenGL*
46
+ **/*QtQuick*
47
+ **/*QtQml*
48
+ **/*QtUiTools*
49
+ **/*QtXml*
50
+ **/*SpacialAudio*
51
+ **/*TextToSpeech*
52
+ **/*WebChannel*
53
+ **/*WebEngine*
54
+ **/*Sql*
55
+ **/*Pdf*
56
+ **/*Test*
57
+ **/*.app
58
+ **/*.tmpl.py
59
+ Qt/plugins/audio
60
+ Qt/plugins/bearer
61
+ Qt/plugins/designer
62
+ Qt/plugins/generic
63
+ Qt/plugins/geoservices
64
+ Qt/plugins/imageformats/libqtiff*.dylib
65
+ Qt/plugins/mediaservice
66
+ Qt/plugins/platforms/libqminimal*.dylib
67
+ Qt/plugins/platforms/libqoffscreen*.dylib
68
+ Qt/plugins/playlistformats
69
+ Qt/plugins/position
70
+ Qt/plugins/printsupport
71
+ Qt/plugins/qml*
72
+ Qt/plugins/sceneparsers
73
+ Qt/plugins/sensor*
74
+ Qt/plugins/sqldrivers
75
+ Qt/plugins/tls
76
+ Qt/qml
77
+ Qt/resources
78
+ Qt/translations/assistant_*
79
+ Qt/translations/designer_*
80
+ Qt/translations/linguist_*
81
+ Qt/translations/qt_help_*
82
+ Qt/translations/qtconnectivity_*
83
+ Qt/translations/qtdeclarative_*
84
+ Qt/translations/qtlocation_*
85
+ Qt/translations/qtmultimedia_*
86
+ Qt/translations/qtquick*
87
+ Qt/translations/qtserialport_*
88
+ Qt/translations/qtwebsockets_*
89
+ lupdate
90
+ pylupdate*
91
+ qmlls
92
+ qmlformat
93
+ scripts
94
+ uic
95
+ # Plover.
96
+ :lib/python$python_base_version/site-packages/plover
97
+ gui_qt/*.ui
98
+ messages/**/*.po
99
+ messages/plover.pot
100
+
101
+ # vim: ft=config
@@ -3,39 +3,37 @@
3
3
  import plistlib
4
4
  import os.path
5
5
 
6
- application = defines.get('app', './dist/Plover.app')
6
+ application = defines.get("app", "./dist/Plover.app")
7
7
  appname = os.path.basename(application)
8
8
 
9
9
 
10
10
  def icon_from_app(app_path):
11
- plist_path = os.path.join(app_path, 'Contents', 'Info.plist')
12
- with open(plist_path, 'rb') as plist_file:
11
+ plist_path = os.path.join(app_path, "Contents", "Info.plist")
12
+ with open(plist_path, "rb") as plist_file:
13
13
  plist = plistlib.load(plist_file)
14
- icon_name = plist['CFBundleIconFile']
14
+ icon_name = plist["CFBundleIconFile"]
15
15
  icon_root, icon_ext = os.path.splitext(icon_name)
16
16
  if not icon_ext:
17
- icon_ext = '.icns'
17
+ icon_ext = ".icns"
18
18
  icon_name = icon_root + icon_ext
19
- return os.path.join(app_path, 'Contents', 'Resources', icon_name)
19
+ return os.path.join(app_path, "Contents", "Resources", icon_name)
20
20
 
21
- format = defines.get('format', 'UDBZ')
21
+
22
+ format = defines.get("format", "UDBZ")
22
23
 
23
24
  # Files to include
24
25
  files = [application]
25
26
 
26
27
  # Symlinks to create
27
- symlinks = {'Applications': '/Applications'}
28
+ symlinks = {"Applications": "/Applications"}
28
29
 
29
30
  # Volume icon
30
31
  badge_icon = icon_from_app(application)
31
32
 
32
33
  # Where to put the icons
33
- icon_locations = {
34
- appname: (114, 244),
35
- 'Applications': (527, 236)
36
- }
34
+ icon_locations = {appname: (114, 244), "Applications": (527, 236)}
37
35
 
38
- background = 'osx/dmg_resources/background.png'
36
+ background = "osx/dmg_resources/background.png"
39
37
 
40
38
  show_status_bar = False
41
39
  show_tab_view = False
@@ -46,15 +44,15 @@ show_sidebar = False
46
44
  # Window position in ((x, y), (w, h)) format
47
45
  window_rect = ((100, 100), (640, 380))
48
46
 
49
- default_view = 'icon-view'
47
+ default_view = "icon-view"
50
48
  show_icon_preview = False
51
- include_icon_view_settings = 'auto'
52
- include_list_view_settings = 'auto'
49
+ include_icon_view_settings = "auto"
50
+ include_list_view_settings = "auto"
53
51
 
54
52
  arrange_by = None
55
53
  grid_offset = (0, 0)
56
54
  grid_spacing = 50
57
55
  scroll_position = (0, 0)
58
- label_pos = 'bottom'
56
+ label_pos = "bottom"
59
57
  text_size = 16
60
58
  icon_size = 86
@@ -3,8 +3,9 @@
3
3
 
4
4
  """Plover: Open Source Stenography Software"""
5
5
 
6
- if __name__ == 'plover':
6
+ if __name__ == "plover":
7
7
  from plover.i18n import Translator
8
+
8
9
  _ = Translator(__package__)
9
10
  else:
10
11
  # exec from `setup.py`, package data
@@ -12,10 +13,10 @@ else:
12
13
  # want to translate anyway.
13
14
  _ = lambda s: s
14
15
 
15
- __version__ = '5.0.0.dev2'
16
- __copyright__ = '(C) Open Steno Project'
17
- __url__ = 'http://www.openstenoproject.org/'
18
- __download_url__ = 'http://www.openstenoproject.org/plover'
16
+ __version__ = "5.0.0.dev3"
17
+ __copyright__ = "(C) Open Steno Project"
18
+ __url__ = "http://www.openstenoproject.org/"
19
+ __download_url__ = "http://www.openstenoproject.org/plover"
19
20
  __credits__ = _("""\
20
21
  Founded by stenographer Mirabai Knight.
21
22
 
@@ -30,9 +31,9 @@ Martin Koerner
30
31
 
31
32
  and many more on GitHub:
32
33
  <https://github.com/openstenoproject/plover>""")
33
- __license__ = 'GNU General Public License v2 or later (GPLv2+)'
34
+ __license__ = "GNU General Public License v2 or later (GPLv2+)"
34
35
  # i18n: Short description for Plover, currently not used in the interface.
35
- __description__ = _('Open Source Stenography Software')
36
+ __description__ = _("Open Source Stenography Software")
36
37
  __long_description__ = _("""\
37
38
  Plover is a free open source program intended to bring realtime
38
39
  stenographic technology not just to stenographers, but also to
@@ -1,5 +1,5 @@
1
1
  from plover.scripts.main import main
2
2
 
3
3
 
4
- if __name__ == '__main__':
4
+ if __name__ == "__main__":
5
5
  main()
@@ -22,11 +22,14 @@ def set_config(engine, cmdline):
22
22
 
23
23
 
24
24
  def _cmdline_to_dict(cmdline):
25
- """ Add braces and parse the entire command line as a Python dict literal. """
25
+ """Add braces and parse the entire command line as a Python dict literal."""
26
26
  try:
27
- opt_dict = ast.literal_eval('{'+cmdline+'}')
27
+ opt_dict = ast.literal_eval("{" + cmdline + "}")
28
28
  assert isinstance(opt_dict, dict)
29
29
  return opt_dict
30
30
  except (AssertionError, SyntaxError, ValueError) as e:
31
- raise ValueError('Bad command string "%s" for PLOVER:SET_CONFIG.\n' % cmdline
32
- + 'See for reference:\n\n' + set_config.__doc__) from e
31
+ raise ValueError(
32
+ 'Bad command string "%s" for PLOVER:SET_CONFIG.\n' % cmdline
33
+ + "See for reference:\n\n"
34
+ + set_config.__doc__
35
+ ) from e