wxPython 4.3.2__cp315-cp315-win_amd64.whl

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 (472) hide show
  1. wx/WebView2Loader.dll +0 -0
  2. wx/__init__.py +22 -0
  3. wx/__init__.pyi +10 -0
  4. wx/__version__.py +9 -0
  5. wx/__version__.pyi +15 -0
  6. wx/_adv.cp315-win_amd64.pyd +0 -0
  7. wx/_aui.cp315-win_amd64.pyd +0 -0
  8. wx/_core.cp315-win_amd64.pyd +0 -0
  9. wx/_dataview.cp315-win_amd64.pyd +0 -0
  10. wx/_glcanvas.cp315-win_amd64.pyd +0 -0
  11. wx/_grid.cp315-win_amd64.pyd +0 -0
  12. wx/_html.cp315-win_amd64.pyd +0 -0
  13. wx/_html2.cp315-win_amd64.pyd +0 -0
  14. wx/_media.cp315-win_amd64.pyd +0 -0
  15. wx/_msw.cp315-win_amd64.pyd +0 -0
  16. wx/_propgrid.cp315-win_amd64.pyd +0 -0
  17. wx/_ribbon.cp315-win_amd64.pyd +0 -0
  18. wx/_richtext.cp315-win_amd64.pyd +0 -0
  19. wx/_stc.cp315-win_amd64.pyd +0 -0
  20. wx/_xml.cp315-win_amd64.pyd +0 -0
  21. wx/_xrc.cp315-win_amd64.pyd +0 -0
  22. wx/adv.py +127 -0
  23. wx/adv.pyi +5931 -0
  24. wx/aui.py +70 -0
  25. wx/aui.pyi +4805 -0
  26. wx/core.py +3417 -0
  27. wx/core.pyi +62949 -0
  28. wx/dataview.py +176 -0
  29. wx/dataview.pyi +3828 -0
  30. wx/gizmos.py +18 -0
  31. wx/glcanvas.py +13 -0
  32. wx/glcanvas.pyi +544 -0
  33. wx/grid.py +237 -0
  34. wx/grid.pyi +5678 -0
  35. wx/html.py +38 -0
  36. wx/html.pyi +3283 -0
  37. wx/html2.py +46 -0
  38. wx/html2.pyi +1301 -0
  39. wx/include/wxPython/sip.h +1938 -0
  40. wx/include/wxPython/wxpy_api.h +418 -0
  41. wx/lib/CDate.py +201 -0
  42. wx/lib/ClickableHtmlWindow.py +57 -0
  43. wx/lib/__init__.py +0 -0
  44. wx/lib/activex.py +178 -0
  45. wx/lib/activexwrapper.py +153 -0
  46. wx/lib/agw/__init__.py +128 -0
  47. wx/lib/agw/advancedsplash.py +563 -0
  48. wx/lib/agw/aquabutton.py +1127 -0
  49. wx/lib/agw/artmanager.py +2110 -0
  50. wx/lib/agw/aui/__init__.py +295 -0
  51. wx/lib/agw/aui/aui_constants.py +2616 -0
  52. wx/lib/agw/aui/aui_switcherdialog.py +1232 -0
  53. wx/lib/agw/aui/aui_utilities.py +648 -0
  54. wx/lib/agw/aui/auibar.py +4045 -0
  55. wx/lib/agw/aui/auibook.py +6288 -0
  56. wx/lib/agw/aui/dockart.py +1198 -0
  57. wx/lib/agw/aui/framemanager.py +10485 -0
  58. wx/lib/agw/aui/tabart.py +2749 -0
  59. wx/lib/agw/aui/tabmdi.py +679 -0
  60. wx/lib/agw/balloontip.py +1157 -0
  61. wx/lib/agw/buttonpanel.py +2787 -0
  62. wx/lib/agw/cubecolourdialog.py +3529 -0
  63. wx/lib/agw/customtreectrl.py +9908 -0
  64. wx/lib/agw/data/ShortcutEditor_1.png +0 -0
  65. wx/lib/agw/data/ShortcutEditor_1_thumb.png +0 -0
  66. wx/lib/agw/data/ShortcutEditor_2.png +0 -0
  67. wx/lib/agw/data/ShortcutEditor_2_thumb.png +0 -0
  68. wx/lib/agw/data/ShortcutEditor_3.png +0 -0
  69. wx/lib/agw/data/ShortcutEditor_3_thumb.png +0 -0
  70. wx/lib/agw/data/ShortcutEditor_4.png +0 -0
  71. wx/lib/agw/data/ShortcutEditor_4_thumb.png +0 -0
  72. wx/lib/agw/data/default_help_text.html +105 -0
  73. wx/lib/agw/flatmenu.py +7392 -0
  74. wx/lib/agw/flatnotebook.py +6669 -0
  75. wx/lib/agw/floatspin.py +1820 -0
  76. wx/lib/agw/fmcustomizedlg.py +535 -0
  77. wx/lib/agw/fmresources.py +407 -0
  78. wx/lib/agw/foldpanelbar.py +2282 -0
  79. wx/lib/agw/fourwaysplitter.py +1130 -0
  80. wx/lib/agw/genericmessagedialog.py +1549 -0
  81. wx/lib/agw/gradientbutton.py +731 -0
  82. wx/lib/agw/hyperlink.py +664 -0
  83. wx/lib/agw/hypertreelist.py +5756 -0
  84. wx/lib/agw/infobar.py +885 -0
  85. wx/lib/agw/knobctrl.py +944 -0
  86. wx/lib/agw/labelbook.py +3028 -0
  87. wx/lib/agw/multidirdialog.py +581 -0
  88. wx/lib/agw/peakmeter.py +1028 -0
  89. wx/lib/agw/persist/__init__.py +188 -0
  90. wx/lib/agw/persist/persist_constants.py +283 -0
  91. wx/lib/agw/persist/persist_handlers.py +2614 -0
  92. wx/lib/agw/persist/persistencemanager.py +863 -0
  93. wx/lib/agw/piectrl.py +1082 -0
  94. wx/lib/agw/pybusyinfo.py +399 -0
  95. wx/lib/agw/pycollapsiblepane.py +940 -0
  96. wx/lib/agw/pygauge.py +570 -0
  97. wx/lib/agw/pyprogress.py +916 -0
  98. wx/lib/agw/ribbon/__init__.py +198 -0
  99. wx/lib/agw/ribbon/art.py +219 -0
  100. wx/lib/agw/ribbon/art_aui.py +1283 -0
  101. wx/lib/agw/ribbon/art_default.py +81 -0
  102. wx/lib/agw/ribbon/art_internal.py +248 -0
  103. wx/lib/agw/ribbon/art_msw.py +2735 -0
  104. wx/lib/agw/ribbon/art_osx.py +52 -0
  105. wx/lib/agw/ribbon/bar.py +1259 -0
  106. wx/lib/agw/ribbon/buttonbar.py +1317 -0
  107. wx/lib/agw/ribbon/control.py +205 -0
  108. wx/lib/agw/ribbon/gallery.py +973 -0
  109. wx/lib/agw/ribbon/page.py +946 -0
  110. wx/lib/agw/ribbon/panel.py +1170 -0
  111. wx/lib/agw/ribbon/toolbar.py +1441 -0
  112. wx/lib/agw/rulerctrl.py +1885 -0
  113. wx/lib/agw/scrolledthumbnail.py +2116 -0
  114. wx/lib/agw/shapedbutton.py +1809 -0
  115. wx/lib/agw/shortcuteditor.py +2642 -0
  116. wx/lib/agw/speedmeter.py +1800 -0
  117. wx/lib/agw/supertooltip.py +1443 -0
  118. wx/lib/agw/thumbnailctrl.py +529 -0
  119. wx/lib/agw/toasterbox.py +1327 -0
  120. wx/lib/agw/ultimatelistctrl.py +13671 -0
  121. wx/lib/agw/xlsgrid.py +2111 -0
  122. wx/lib/agw/zoombar.py +1336 -0
  123. wx/lib/analogclock/__init__.py +140 -0
  124. wx/lib/analogclock/analogclock.py +630 -0
  125. wx/lib/analogclock/helpers.py +986 -0
  126. wx/lib/analogclock/lib_setup/__init__.py +0 -0
  127. wx/lib/analogclock/lib_setup/buttontreectrlpanel.py +297 -0
  128. wx/lib/analogclock/lib_setup/fontselect.py +57 -0
  129. wx/lib/analogclock/setup.py +490 -0
  130. wx/lib/analogclock/styles.py +47 -0
  131. wx/lib/anchors.py +103 -0
  132. wx/lib/art/__init__.py +4 -0
  133. wx/lib/art/flagart.py +1583 -0
  134. wx/lib/art/img2pyartprov.py +56 -0
  135. wx/lib/busy.py +152 -0
  136. wx/lib/buttons.py +1140 -0
  137. wx/lib/calendar.py +1596 -0
  138. wx/lib/checkbox.py +837 -0
  139. wx/lib/colourchooser/__init__.py +36 -0
  140. wx/lib/colourchooser/canvas.py +145 -0
  141. wx/lib/colourchooser/intl.py +24 -0
  142. wx/lib/colourchooser/pycolourbox.py +89 -0
  143. wx/lib/colourchooser/pycolourchooser.py +626 -0
  144. wx/lib/colourchooser/pycolourslider.py +98 -0
  145. wx/lib/colourchooser/pypalette.py +208 -0
  146. wx/lib/colourdb.py +740 -0
  147. wx/lib/colourselect.py +385 -0
  148. wx/lib/colourutils.py +118 -0
  149. wx/lib/combotreebox.py +944 -0
  150. wx/lib/delayedresult.py +420 -0
  151. wx/lib/dialogs.py +510 -0
  152. wx/lib/docview.py +3210 -0
  153. wx/lib/dragscroller.py +79 -0
  154. wx/lib/editor/README.txt +77 -0
  155. wx/lib/editor/__init__.py +24 -0
  156. wx/lib/editor/editor.py +974 -0
  157. wx/lib/editor/images.py +15 -0
  158. wx/lib/editor/selection.py +44 -0
  159. wx/lib/embeddedimage.py +76 -0
  160. wx/lib/eventStack.py +136 -0
  161. wx/lib/eventwatcher.py +440 -0
  162. wx/lib/evtmgr.py +521 -0
  163. wx/lib/expando.py +393 -0
  164. wx/lib/fancytext.py +494 -0
  165. wx/lib/filebrowsebutton.py +461 -0
  166. wx/lib/flashwin.py +262 -0
  167. wx/lib/flashwin_old.py +651 -0
  168. wx/lib/floatcanvas/FCEvents.py +53 -0
  169. wx/lib/floatcanvas/FCObjects.py +2910 -0
  170. wx/lib/floatcanvas/FloatCanvas.py +1025 -0
  171. wx/lib/floatcanvas/GUIMode.py +396 -0
  172. wx/lib/floatcanvas/NavCanvas.py +162 -0
  173. wx/lib/floatcanvas/Resources.py +319 -0
  174. wx/lib/floatcanvas/ScreenShot.py +1788 -0
  175. wx/lib/floatcanvas/Utilities/BBox.py +313 -0
  176. wx/lib/floatcanvas/Utilities/Colors.py +137 -0
  177. wx/lib/floatcanvas/Utilities/GUI.py +91 -0
  178. wx/lib/floatcanvas/Utilities/__init__.py +7 -0
  179. wx/lib/floatcanvas/__init__.py +124 -0
  180. wx/lib/foldmenu.py +89 -0
  181. wx/lib/gestures.py +310 -0
  182. wx/lib/gizmos/__init__.py +18 -0
  183. wx/lib/gizmos/dynamicsash.py +1202 -0
  184. wx/lib/gizmos/ledctrl.py +299 -0
  185. wx/lib/gizmos/treelistctrl.py +87 -0
  186. wx/lib/graphics.py +1942 -0
  187. wx/lib/gridmovers.py +516 -0
  188. wx/lib/iewin.py +249 -0
  189. wx/lib/iewin_old.py +894 -0
  190. wx/lib/imagebrowser.py +853 -0
  191. wx/lib/imageutils.py +163 -0
  192. wx/lib/infoframe.py +490 -0
  193. wx/lib/inspection.py +1254 -0
  194. wx/lib/intctrl.py +990 -0
  195. wx/lib/itemspicker.py +256 -0
  196. wx/lib/langlistctrl.py +480 -0
  197. wx/lib/layoutf.py +271 -0
  198. wx/lib/masked/__init__.py +27 -0
  199. wx/lib/masked/combobox.py +839 -0
  200. wx/lib/masked/ctrl.py +108 -0
  201. wx/lib/masked/ipaddrctrl.py +241 -0
  202. wx/lib/masked/maskededit.py +7262 -0
  203. wx/lib/masked/numctrl.py +2000 -0
  204. wx/lib/masked/textctrl.py +465 -0
  205. wx/lib/masked/timectrl.py +1465 -0
  206. wx/lib/mixins/__init__.py +17 -0
  207. wx/lib/mixins/grid.py +47 -0
  208. wx/lib/mixins/gridlabelrenderer.py +277 -0
  209. wx/lib/mixins/imagelist.py +77 -0
  210. wx/lib/mixins/inspection.py +184 -0
  211. wx/lib/mixins/listctrl.py +893 -0
  212. wx/lib/mixins/rubberband.py +403 -0
  213. wx/lib/mixins/treemixin.py +678 -0
  214. wx/lib/msgpanel.py +95 -0
  215. wx/lib/multisash.py +746 -0
  216. wx/lib/myole4ax.idl +178 -0
  217. wx/lib/myole4ax.tlb +0 -0
  218. wx/lib/newevent.py +229 -0
  219. wx/lib/newevent.pyi +25 -0
  220. wx/lib/nvdlg.py +156 -0
  221. wx/lib/ogl/__init__.py +13 -0
  222. wx/lib/ogl/basic.py +3989 -0
  223. wx/lib/ogl/bmpshape.py +86 -0
  224. wx/lib/ogl/canvas.py +467 -0
  225. wx/lib/ogl/composit.py +1576 -0
  226. wx/lib/ogl/diagram.py +230 -0
  227. wx/lib/ogl/divided.py +482 -0
  228. wx/lib/ogl/drawn.py +898 -0
  229. wx/lib/ogl/lines.py +1809 -0
  230. wx/lib/ogl/oglmisc.py +607 -0
  231. wx/lib/pdfviewer/__init__.py +113 -0
  232. wx/lib/pdfviewer/bitmaps/ArrowLeft.png +0 -0
  233. wx/lib/pdfviewer/bitmaps/ArrowRight.png +0 -0
  234. wx/lib/pdfviewer/bitmaps/DirectionH.png +0 -0
  235. wx/lib/pdfviewer/bitmaps/DirectionV.png +0 -0
  236. wx/lib/pdfviewer/bitmaps/PlayerFirst.png +0 -0
  237. wx/lib/pdfviewer/bitmaps/PlayerLast.png +0 -0
  238. wx/lib/pdfviewer/bitmaps/PlayerNext.png +0 -0
  239. wx/lib/pdfviewer/bitmaps/PlayerPrev.png +0 -0
  240. wx/lib/pdfviewer/bitmaps/Printer.png +0 -0
  241. wx/lib/pdfviewer/bitmaps/ReadMe.txt +28 -0
  242. wx/lib/pdfviewer/bitmaps/Save.png +0 -0
  243. wx/lib/pdfviewer/bitmaps/ZoomIn.png +0 -0
  244. wx/lib/pdfviewer/bitmaps/ZoomOut.png +0 -0
  245. wx/lib/pdfviewer/bitmaps/encode_bitmaps.py +37 -0
  246. wx/lib/pdfviewer/buttonpanel.py +285 -0
  247. wx/lib/pdfviewer/images.py +240 -0
  248. wx/lib/pdfviewer/viewer.py +1118 -0
  249. wx/lib/pdfwin.py +295 -0
  250. wx/lib/pdfwin_old.py +789 -0
  251. wx/lib/platebtn.py +789 -0
  252. wx/lib/plot/CHANGELOG.md +150 -0
  253. wx/lib/plot/README.md +16 -0
  254. wx/lib/plot/__init__.py +46 -0
  255. wx/lib/plot/__main__.py +5 -0
  256. wx/lib/plot/examples/__init__.py +0 -0
  257. wx/lib/plot/examples/demo.py +1010 -0
  258. wx/lib/plot/examples/simple_example.py +56 -0
  259. wx/lib/plot/plotcanvas.py +2985 -0
  260. wx/lib/plot/polyobjects.py +1524 -0
  261. wx/lib/plot/utils.py +334 -0
  262. wx/lib/popupctl.py +251 -0
  263. wx/lib/printout.py +1155 -0
  264. wx/lib/progressindicator.py +151 -0
  265. wx/lib/pubsub/LICENSE_BSD_Simple.txt +23 -0
  266. wx/lib/pubsub/README_WxPython.txt +22 -0
  267. wx/lib/pubsub/RELEASE_NOTES.txt +71 -0
  268. wx/lib/pubsub/__init__.py +25 -0
  269. wx/lib/pubsub/core/__init__.py +92 -0
  270. wx/lib/pubsub/core/arg1/__init__.py +16 -0
  271. wx/lib/pubsub/core/arg1/listenerimpl.py +97 -0
  272. wx/lib/pubsub/core/arg1/publisher.py +40 -0
  273. wx/lib/pubsub/core/arg1/publishermixin.py +34 -0
  274. wx/lib/pubsub/core/arg1/topicargspecimpl.py +66 -0
  275. wx/lib/pubsub/core/arg1/topicmgrimpl.py +19 -0
  276. wx/lib/pubsub/core/callables.py +198 -0
  277. wx/lib/pubsub/core/imp2.py +62 -0
  278. wx/lib/pubsub/core/itopicdefnprovider.py +0 -0
  279. wx/lib/pubsub/core/kwargs/__init__.py +16 -0
  280. wx/lib/pubsub/core/kwargs/datamsg.py +27 -0
  281. wx/lib/pubsub/core/kwargs/listenerimpl.py +93 -0
  282. wx/lib/pubsub/core/kwargs/publisher.py +77 -0
  283. wx/lib/pubsub/core/kwargs/publishermixin.py +65 -0
  284. wx/lib/pubsub/core/kwargs/topicargspecimpl.py +216 -0
  285. wx/lib/pubsub/core/kwargs/topicmgrimpl.py +13 -0
  286. wx/lib/pubsub/core/listener.py +40 -0
  287. wx/lib/pubsub/core/listenerbase.py +185 -0
  288. wx/lib/pubsub/core/notificationmgr.py +185 -0
  289. wx/lib/pubsub/core/publisherbase.py +189 -0
  290. wx/lib/pubsub/core/topicargspec.py +77 -0
  291. wx/lib/pubsub/core/topicdefnprovider.py +631 -0
  292. wx/lib/pubsub/core/topicexc.py +72 -0
  293. wx/lib/pubsub/core/topicmgr.py +454 -0
  294. wx/lib/pubsub/core/topicobj.py +472 -0
  295. wx/lib/pubsub/core/topictreetraverser.py +143 -0
  296. wx/lib/pubsub/core/topicutils.py +119 -0
  297. wx/lib/pubsub/core/treeconfig.py +21 -0
  298. wx/lib/pubsub/core/validatedefnargs.py +29 -0
  299. wx/lib/pubsub/core/weakmethod.py +102 -0
  300. wx/lib/pubsub/policies.py +24 -0
  301. wx/lib/pubsub/pub.py +199 -0
  302. wx/lib/pubsub/setuparg1.py +47 -0
  303. wx/lib/pubsub/setupkwargs.py +29 -0
  304. wx/lib/pubsub/utils/__init__.py +27 -0
  305. wx/lib/pubsub/utils/exchandling.py +100 -0
  306. wx/lib/pubsub/utils/misc.py +99 -0
  307. wx/lib/pubsub/utils/notification.py +331 -0
  308. wx/lib/pubsub/utils/topictreeprinter.py +195 -0
  309. wx/lib/pubsub/utils/xmltopicdefnprovider.py +286 -0
  310. wx/lib/pydocview.py +3300 -0
  311. wx/lib/rcsizer.py +227 -0
  312. wx/lib/resizewidget.py +357 -0
  313. wx/lib/scrolledpanel.py +243 -0
  314. wx/lib/sheet.py +350 -0
  315. wx/lib/sized_controls.py +691 -0
  316. wx/lib/softwareupdate.py +355 -0
  317. wx/lib/splitter.py +925 -0
  318. wx/lib/statbmp.py +199 -0
  319. wx/lib/stattext.py +321 -0
  320. wx/lib/throbber.py +424 -0
  321. wx/lib/ticker.py +306 -0
  322. wx/lib/ticker_xrc.py +48 -0
  323. wx/lib/utils.py +89 -0
  324. wx/lib/wordwrap.py +97 -0
  325. wx/lib/wxcairo/__init__.py +139 -0
  326. wx/lib/wxcairo/wx_cairocffi.py +200 -0
  327. wx/lib/wxcairo/wx_pycairo.py +455 -0
  328. wx/lib/wxpTag.py +274 -0
  329. wx/libcairo-2.dll +0 -0
  330. wx/locale/af/LC_MESSAGES/wxstd.mo +0 -0
  331. wx/locale/an/LC_MESSAGES/wxstd.mo +0 -0
  332. wx/locale/ar/LC_MESSAGES/wxstd.mo +0 -0
  333. wx/locale/ca/LC_MESSAGES/wxstd.mo +0 -0
  334. wx/locale/ca@valencia/LC_MESSAGES/wxstd.mo +0 -0
  335. wx/locale/co/LC_MESSAGES/wxstd.mo +0 -0
  336. wx/locale/cs/LC_MESSAGES/wxstd.mo +0 -0
  337. wx/locale/da/LC_MESSAGES/wxstd.mo +0 -0
  338. wx/locale/de/LC_MESSAGES/wxstd.mo +0 -0
  339. wx/locale/el/LC_MESSAGES/wxstd.mo +0 -0
  340. wx/locale/es/LC_MESSAGES/wxstd.mo +0 -0
  341. wx/locale/eu/LC_MESSAGES/wxstd.mo +0 -0
  342. wx/locale/fa_IR/LC_MESSAGES/wxstd.mo +0 -0
  343. wx/locale/fi/LC_MESSAGES/wxstd.mo +0 -0
  344. wx/locale/fr/LC_MESSAGES/wxstd.mo +0 -0
  345. wx/locale/gl_ES/LC_MESSAGES/wxstd.mo +0 -0
  346. wx/locale/hi/LC_MESSAGES/wxstd.mo +0 -0
  347. wx/locale/hr/LC_MESSAGES/wxstd.mo +0 -0
  348. wx/locale/hu/LC_MESSAGES/wxstd.mo +0 -0
  349. wx/locale/id/LC_MESSAGES/wxstd.mo +0 -0
  350. wx/locale/it/LC_MESSAGES/wxstd.mo +0 -0
  351. wx/locale/ja/LC_MESSAGES/wxstd.mo +0 -0
  352. wx/locale/ka/LC_MESSAGES/wxstd.mo +0 -0
  353. wx/locale/ko_KR/LC_MESSAGES/wxstd.mo +0 -0
  354. wx/locale/lt/LC_MESSAGES/wxstd.mo +0 -0
  355. wx/locale/lv/LC_MESSAGES/wxstd.mo +0 -0
  356. wx/locale/ms/LC_MESSAGES/wxstd.mo +0 -0
  357. wx/locale/nb/LC_MESSAGES/wxstd.mo +0 -0
  358. wx/locale/ne/LC_MESSAGES/wxstd.mo +0 -0
  359. wx/locale/nl/LC_MESSAGES/wxstd.mo +0 -0
  360. wx/locale/pl/LC_MESSAGES/wxstd.mo +0 -0
  361. wx/locale/pt/LC_MESSAGES/wxstd.mo +0 -0
  362. wx/locale/pt_BR/LC_MESSAGES/wxstd.mo +0 -0
  363. wx/locale/ro/LC_MESSAGES/wxstd.mo +0 -0
  364. wx/locale/ru/LC_MESSAGES/wxstd.mo +0 -0
  365. wx/locale/sk/LC_MESSAGES/wxstd.mo +0 -0
  366. wx/locale/sl/LC_MESSAGES/wxstd.mo +0 -0
  367. wx/locale/sq/LC_MESSAGES/wxstd.mo +0 -0
  368. wx/locale/sr/LC_MESSAGES/wxstd.mo +0 -0
  369. wx/locale/sv/LC_MESSAGES/wxstd.mo +0 -0
  370. wx/locale/ta/LC_MESSAGES/wxstd.mo +0 -0
  371. wx/locale/tr/LC_MESSAGES/wxstd.mo +0 -0
  372. wx/locale/uk/LC_MESSAGES/wxstd.mo +0 -0
  373. wx/locale/vi/LC_MESSAGES/wxstd.mo +0 -0
  374. wx/locale/zh_CN/LC_MESSAGES/wxstd.mo +0 -0
  375. wx/locale/zh_TW/LC_MESSAGES/wxstd.mo +0 -0
  376. wx/media.py +30 -0
  377. wx/media.pyi +272 -0
  378. wx/msw.py +16 -0
  379. wx/msw.pyi +91 -0
  380. wx/propgrid.py +498 -0
  381. wx/propgrid.pyi +7427 -0
  382. wx/py/CHANGES.txt +796 -0
  383. wx/py/Py.ico +0 -0
  384. wx/py/PyAlaCarte.py +34 -0
  385. wx/py/PyAlaMode.py +34 -0
  386. wx/py/PyAlaModeTest.py +33 -0
  387. wx/py/PyCrust.ico +0 -0
  388. wx/py/PyCrust.py +78 -0
  389. wx/py/PyCrust_16.png +0 -0
  390. wx/py/PyCrust_32.png +0 -0
  391. wx/py/PyFilling.py +35 -0
  392. wx/py/PyShell.py +78 -0
  393. wx/py/PySlices.ico +0 -0
  394. wx/py/PySlices.py +98 -0
  395. wx/py/PySlicesShell.py +94 -0
  396. wx/py/PySlices_16.png +0 -0
  397. wx/py/PySlices_32.png +0 -0
  398. wx/py/PyWrap.py +52 -0
  399. wx/py/README.txt +77 -0
  400. wx/py/__init__.py +20 -0
  401. wx/py/buffer.py +136 -0
  402. wx/py/crust.py +403 -0
  403. wx/py/crustslices.py +403 -0
  404. wx/py/dispatcher.py +259 -0
  405. wx/py/document.py +37 -0
  406. wx/py/editor.py +844 -0
  407. wx/py/editwindow.py +316 -0
  408. wx/py/filling.py +358 -0
  409. wx/py/frame.py +976 -0
  410. wx/py/images.py +212 -0
  411. wx/py/interpreter.py +161 -0
  412. wx/py/introspect.py +402 -0
  413. wx/py/magic.py +98 -0
  414. wx/py/parse.py +134 -0
  415. wx/py/path.py +36 -0
  416. wx/py/pseudo.py +99 -0
  417. wx/py/shell.py +1579 -0
  418. wx/py/sliceshell.py +3805 -0
  419. wx/py/tests/test_interpreter.py +71 -0
  420. wx/py/tests/test_introspect.py +810 -0
  421. wx/py/tests/test_pseudo.py +70 -0
  422. wx/py/tests/test_version.py +36 -0
  423. wx/py/tests/testall.py +22 -0
  424. wx/py/version.py +7 -0
  425. wx/py.typed +0 -0
  426. wx/ribbon.py +48 -0
  427. wx/ribbon.pyi +3099 -0
  428. wx/richtext.py +141 -0
  429. wx/richtext.pyi +13581 -0
  430. wx/siplib.cp315-win_amd64.pyd +0 -0
  431. wx/siplib.pyi +19 -0
  432. wx/stc.py +59 -0
  433. wx/stc.pyi +9918 -0
  434. wx/svg/__init__.py +363 -0
  435. wx/svg/_nanosvg.cp315-win_amd64.pyd +0 -0
  436. wx/tools/__init__.py +18 -0
  437. wx/tools/dbg.py +268 -0
  438. wx/tools/genaxmodule.py +50 -0
  439. wx/tools/helpviewer.py +92 -0
  440. wx/tools/img2img.py +85 -0
  441. wx/tools/img2png.py +54 -0
  442. wx/tools/img2py.py +306 -0
  443. wx/tools/img2xpm.py +54 -0
  444. wx/tools/pywxrc.py +951 -0
  445. wx/tools/wxget.py +254 -0
  446. wx/tools/wxget_docs_demo.py +183 -0
  447. wx/wxbase334u_net_vc140_x64.dll +0 -0
  448. wx/wxbase334u_vc140_x64.dll +0 -0
  449. wx/wxbase334u_xml_vc140_x64.dll +0 -0
  450. wx/wxmsw334u_adv_vc140_x64.dll +0 -0
  451. wx/wxmsw334u_aui_vc140_x64.dll +0 -0
  452. wx/wxmsw334u_core_vc140_x64.dll +0 -0
  453. wx/wxmsw334u_gl_vc140_x64.dll +0 -0
  454. wx/wxmsw334u_html_vc140_x64.dll +0 -0
  455. wx/wxmsw334u_media_vc140_x64.dll +0 -0
  456. wx/wxmsw334u_propgrid_vc140_x64.dll +0 -0
  457. wx/wxmsw334u_qa_vc140_x64.dll +0 -0
  458. wx/wxmsw334u_ribbon_vc140_x64.dll +0 -0
  459. wx/wxmsw334u_richtext_vc140_x64.dll +0 -0
  460. wx/wxmsw334u_stc_vc140_x64.dll +0 -0
  461. wx/wxmsw334u_webview_vc140_x64.dll +0 -0
  462. wx/wxmsw334u_xrc_vc140_x64.dll +0 -0
  463. wx/xml.py +18 -0
  464. wx/xml.pyi +728 -0
  465. wx/xrc.py +68 -0
  466. wx/xrc.pyi +896 -0
  467. wxpython-4.3.2.dist-info/METADATA +71 -0
  468. wxpython-4.3.2.dist-info/RECORD +472 -0
  469. wxpython-4.3.2.dist-info/WHEEL +5 -0
  470. wxpython-4.3.2.dist-info/entry_points.txt +13 -0
  471. wxpython-4.3.2.dist-info/licenses/LICENSE.txt +610 -0
  472. wxpython-4.3.2.dist-info/top_level.txt +1 -0
@@ -0,0 +1,195 @@
1
+ """
2
+ Output various aspects of topic tree to string or file.
3
+
4
+ :copyright: Copyright since 2006 by Oliver Schoenborn, all rights reserved.
5
+ :license: BSD, see LICENSE_BSD_Simple.txt for details.
6
+ """
7
+
8
+ from textwrap import TextWrapper
9
+
10
+ from ..core.topictreetraverser import (ITopicTreeVisitor, TopicTreeTraverser)
11
+
12
+
13
+ class TopicTreePrinter(ITopicTreeVisitor):
14
+ """
15
+ Example topic tree visitor that prints a prettified representation
16
+ of topic tree by doing a depth-first traversal of topic tree and
17
+ print information at each (topic) node of tree. Extra info to be
18
+ printed is specified via the 'extra' kwarg. Its value must be a
19
+ list of characters, the order determines output order:
20
+ - D: print description of topic
21
+ - a: print kwarg names only
22
+ - A: print topic kwargs and their description
23
+ - L: print listeners currently subscribed to topic
24
+
25
+ E.g. TopicTreePrinter(extra='LaDA') would print, for each topic,
26
+ the list of subscribed listeners, the topic's list of kwargs, the
27
+ topic description, and the description for each kwarg,
28
+
29
+ >>> Topic "delTopic"
30
+ >> Listeners:
31
+ > listener1_2880 (from yourModule)
32
+ > listener2_3450 (from yourModule)
33
+ >> Names of Message arguments:
34
+ > arg1
35
+ > arg2
36
+ >> Description: whenever a topic is deleted
37
+ >> Descriptions of Message arguments:
38
+ > arg1: (required) its description
39
+ > arg2: some other description
40
+
41
+ """
42
+
43
+ allowedExtras = frozenset('DAaL') # must NOT change
44
+ ALL_TOPICS_NAME = 'ALL_TOPICS' # output for name of 'all topics' topic
45
+
46
+ def __init__(self, extra=None, width=70, indentStep=4,
47
+ bulletTopic='\\--', bulletTopicItem='|==', bulletTopicArg='-', fileObj=None):
48
+ """Topic tree printer will print listeners for each topic only
49
+ if printListeners is True. The width will be used to limit
50
+ the width of text output, while indentStep is the number of
51
+ spaces added each time the text is indented further. The
52
+ three bullet parameters define the strings used for each
53
+ item (topic, topic items, and kwargs). """
54
+ self.__contentMeth = dict(
55
+ D = self.__printTopicDescription,
56
+ A = self.__printTopicArgsAll,
57
+ a = self.__printTopicArgNames,
58
+ L = self.__printTopicListeners)
59
+ assert self.allowedExtras == set(self.__contentMeth)
60
+ import sys
61
+ self.__destination = fileObj or sys.stdout
62
+ self.__output = []
63
+
64
+ self.__content = extra or ''
65
+ unknownSel = set(self.__content) - self.allowedExtras
66
+ if unknownSel:
67
+ msg = 'These extra chars not known: %s' % ','.join(unknownSel)
68
+ raise ValueError(msg)
69
+
70
+ self.__width = width
71
+ self.__wrapper = TextWrapper(width)
72
+ self.__indent = 0
73
+ self.__indentStep = indentStep
74
+ self.__topicsBullet = bulletTopic
75
+ self.__topicItemsBullet = bulletTopicItem
76
+ self.__topicArgsBullet = bulletTopicArg
77
+
78
+ def getOutput(self):
79
+ return '\n'.join( self.__output )
80
+
81
+ def _doneTraversal(self):
82
+ if self.__destination is not None:
83
+ self.__destination.write(self.getOutput())
84
+
85
+ def _onTopic(self, topicObj):
86
+ """This gets called for each topic. Print as per specified content."""
87
+
88
+ # topic name
89
+ self.__wrapper.width = self.__width
90
+ indent = self.__indent
91
+ if topicObj.isAll():
92
+ topicName = self.ALL_TOPICS_NAME
93
+ else:
94
+ topicName = topicObj.getNodeName()
95
+ head = '%s Topic "%s"' % (self.__topicsBullet, topicName)
96
+ self.__output.append( self.__formatDefn(indent, head) )
97
+ indent += self.__indentStep
98
+
99
+ # each extra content (assume constructor verified that chars are valid)
100
+ for item in self.__content:
101
+ function = self.__contentMeth[item]
102
+ function(indent, topicObj)
103
+
104
+ def _startChildren(self):
105
+ """Increase the indent"""
106
+ self.__indent += self.__indentStep
107
+
108
+ def _endChildren(self):
109
+ """Decrease the indent"""
110
+ self.__indent -= self.__indentStep
111
+
112
+ def __formatDefn(self, indent, item, defn='', sep=': '):
113
+ """Print a definition: a block of text at a certain indent,
114
+ has item name, and an optional definition separated from
115
+ item by sep. """
116
+ if defn:
117
+ prefix = '%s%s%s' % (' '*indent, item, sep)
118
+ self.__wrapper.initial_indent = prefix
119
+ self.__wrapper.subsequent_indent = ' '*(indent+self.__indentStep)
120
+ return self.__wrapper.fill(defn)
121
+ else:
122
+ return '%s%s' % (' '*indent, item)
123
+
124
+ def __printTopicDescription(self, indent, topicObj):
125
+ # topic description
126
+ defn = '%s Description' % self.__topicItemsBullet
127
+ self.__output.append(
128
+ self.__formatDefn(indent, defn, topicObj.getDescription()) )
129
+
130
+ def __printTopicArgsAll(self, indent, topicObj, desc=True):
131
+ # topic kwargs
132
+ args = topicObj.getArgDescriptions()
133
+ if args:
134
+ #required, optional, complete = topicObj.getArgs()
135
+ headName = 'Names of Message arguments:'
136
+ if desc:
137
+ headName = 'Descriptions of message arguments:'
138
+ head = '%s %s' % (self.__topicItemsBullet, headName)
139
+ self.__output.append( self.__formatDefn(indent, head) )
140
+ tmpIndent = indent + self.__indentStep
141
+ required = topicObj.getArgs()[0]
142
+ for key, arg in args.items(): # iter in 3, list in 2 ok
143
+ if not desc:
144
+ arg = ''
145
+ elif key in required:
146
+ arg = '(required) %s' % arg
147
+ msg = '%s %s' % (self.__topicArgsBullet,key)
148
+ self.__output.append( self.__formatDefn(tmpIndent, msg, arg) )
149
+
150
+ def __printTopicArgNames(self, indent, topicObj):
151
+ self.__printTopicArgsAll(indent, topicObj, False)
152
+
153
+ def __printTopicListeners(self, indent, topicObj):
154
+ if topicObj.hasListeners():
155
+ item = '%s Listeners:' % self.__topicItemsBullet
156
+ self.__output.append( self.__formatDefn(indent, item) )
157
+ tmpIndent = indent + self.__indentStep
158
+ for listener in topicObj.getListenersIter():
159
+ item = '%s %s (from %s)' % (self.__topicArgsBullet, listener.name(), listener.module())
160
+ self.__output.append( self.__formatDefn(tmpIndent, item) )
161
+
162
+
163
+ def printTreeDocs(rootTopic=None, topicMgr=None, **kwargs):
164
+ """Print out the topic tree to a file (or file-like object like a
165
+ StringIO), starting at rootTopic. If root topic should be root of
166
+ whole tree, get it from pub.getDefaultTopicTreeRoot().
167
+ The treeVisitor is an instance of pub.TopicTreeTraverser.
168
+
169
+ Printing the tree docs would normally involve this::
170
+
171
+ from pubsub import pub
172
+ from pubsub.utils.topictreeprinter import TopicTreePrinter
173
+ traverser = pub.TopicTreeTraverser( TopicTreePrinter(**kwargs) )
174
+ traverser.traverse( pub.getDefaultTopicTreeRoot() )
175
+
176
+ With printTreeDocs, it looks like this::
177
+
178
+ from pubsub import pub
179
+ from pubsub.utils import printTreeDocs
180
+ printTreeDocs()
181
+
182
+ The kwargs are the same as for TopicTreePrinter constructor:
183
+ extra(None), width(70), indentStep(4), bulletTopic, bulletTopicItem,
184
+ bulletTopicArg, fileObj(stdout). If fileObj not given, stdout is used."""
185
+ if rootTopic is None:
186
+ if topicMgr is None:
187
+ from .. import pub
188
+ topicMgr = pub.getDefaultTopicMgr()
189
+ rootTopic = topicMgr.getRootAllTopics()
190
+
191
+ printer = TopicTreePrinter(**kwargs)
192
+ traverser = TopicTreeTraverser(printer)
193
+ traverser.traverse(rootTopic)
194
+
195
+
@@ -0,0 +1,286 @@
1
+ """
2
+ Contributed by Joshua R English, adapted by Oliver Schoenborn to be
3
+ consistent with pubsub API.
4
+
5
+ An extension for pubsub (http://pubsub.sourceforge.net) so topic tree
6
+ specification can be encoded in XML format rather than pubsub's default
7
+ Python nested class format.
8
+
9
+ To use:
10
+
11
+ xml = '''
12
+ <topicdefntree>
13
+ <description>Test showing topic hierarchy and inheritance</description>
14
+ <topic id="parent">
15
+ <description>Parent with a parameter and subtopics</description>
16
+ <listenerspec>
17
+ <arg id="name" optional="true">given name</arg>
18
+ <arg id="lastname">surname</arg>
19
+ </listenerspec>
20
+
21
+ <topic id="child">
22
+ <description>This is the first child</description>
23
+ <listenerspec>
24
+ <arg id="nick">A nickname</arg>
25
+ </listenerspec>
26
+ </topic>
27
+ </topic>
28
+ </topicdefntree>
29
+ '''
30
+
31
+ These topic definitions are loaded through an XmlTopicDefnProvider:
32
+
33
+ pub.addTopicDefnProvider( XmlTopicDefnProvider(xml) )
34
+
35
+ The XmlTopicDefnProvider also accepts a filename instead of XML string:
36
+
37
+ provider = XmlTopicDefnProvider("path/to/XMLfile.xml", TOPIC_TREE_FROM_FILE)
38
+ pub.addTopicDefnProvider( provider )
39
+
40
+ Topics can be exported to an XML file using the exportTopicTreeSpecXml function.
41
+ This will create a text file for the XML and return the string representation
42
+ of the XML tree.
43
+
44
+ :copyright: Copyright since 2013 by Oliver Schoenborn, all rights reserved.
45
+ :license: BSD, see LICENSE_BSD_Simple.txt for details.
46
+ """
47
+
48
+ __author__ = 'Joshua R English'
49
+ __revision__ = 6
50
+ __date__ = '2013-07-27'
51
+
52
+
53
+ from ..core.topictreetraverser import ITopicTreeVisitor
54
+ from ..core.topicdefnprovider import (
55
+ ITopicDefnProvider,
56
+ ArgSpecGiven,
57
+ TOPIC_TREE_FROM_STRING,
58
+ )
59
+
60
+ try:
61
+ from elementtree import ElementTree as ET
62
+ except ImportError:
63
+ try: # for Python 2.4, must use cElementTree:
64
+ from xml.etree import ElementTree as ET
65
+ except ImportError:
66
+ from cElementTree import ElementTree as ET
67
+
68
+ __all__ = [
69
+ 'XmlTopicDefnProvider',
70
+ 'exportTopicTreeSpecXml',
71
+ 'TOPIC_TREE_FROM_FILE'
72
+ ]
73
+
74
+
75
+ def _get_elem(elem):
76
+ """Assume an ETree.Element object or a string representation.
77
+ Return the ETree.Element object"""
78
+ if not ET.iselement(elem):
79
+ try:
80
+ elem = ET.fromstring(elem)
81
+ except:
82
+ print("Value Error", elem)
83
+ raise ValueError("Cannot convert to element")
84
+ return elem
85
+
86
+
87
+ TOPIC_TREE_FROM_FILE = 'file'
88
+
89
+
90
+ class XmlTopicDefnProvider(ITopicDefnProvider):
91
+
92
+ class XmlParserError(RuntimeError): pass
93
+
94
+ class UnrecognizedSourceFormatError(ValueError): pass
95
+
96
+ def __init__(self, xml, format=TOPIC_TREE_FROM_STRING):
97
+ self._topics = {}
98
+ self._treeDoc = ''
99
+ if format == TOPIC_TREE_FROM_FILE:
100
+ with open(xml, mode="r") as fid:
101
+ self._parse_tree(_get_elem(fid.read()))
102
+ elif format == TOPIC_TREE_FROM_STRING:
103
+ self._parse_tree(_get_elem(xml))
104
+ else:
105
+ raise UnrecognizedSourceFormatError()
106
+
107
+ def _parse_tree(self, tree):
108
+ doc_node = tree.find('description')
109
+
110
+ if doc_node is None:
111
+ self._treeDoc = "UNDOCUMENTED"
112
+ else:
113
+ self._treeDoc = ' '.join(doc_node.text.split())
114
+
115
+ for node in tree.findall('topic'):
116
+ self._parse_topic(node)
117
+
118
+ def _parse_topic(self, node, parents=None, specs=None, reqlist=None):
119
+ parents = parents or []
120
+ specs = specs or {}
121
+ reqlist = reqlist or []
122
+
123
+ descNode = node.find('description')
124
+
125
+ if descNode is None:
126
+ desc = "UNDOCUMENTED"
127
+ else:
128
+ desc = ' '.join(descNode.text.split())
129
+
130
+ node_id = node.get('id')
131
+ if node_id is None:
132
+ raise XmlParserError("topic element must have an id attribute")
133
+
134
+ for this in (node.findall('listenerspec/arg')):
135
+ this_id = this.get('id')
136
+ if this_id is None:
137
+ raise XmlParserError("arg element must have an id attribute")
138
+
139
+ this_desc = this.text.strip()
140
+ this_desc = this_desc or "UNDOCUMENTED"
141
+ this_desc = ' '.join(this_desc.split())
142
+
143
+ specs[this_id] = this_desc
144
+
145
+ if this.get('optional', '').lower() not in ['true', 't','yes','y']:
146
+ reqlist.append(this_id)
147
+
148
+ defn = ArgSpecGiven(specs, tuple(reqlist))
149
+
150
+ parents.append(node.get('id'))
151
+
152
+ self._topics[tuple(parents)] = desc, defn
153
+
154
+ for subtopic in node.findall('topic'):
155
+ self._parse_topic(subtopic, parents[:], specs.copy(), reqlist[:])
156
+
157
+
158
+ def getDefn(self, topicNameTuple):
159
+ return self._topics.get(topicNameTuple, (None, None))
160
+
161
+ def topicNames(self):
162
+ return iter(self._topics.keys())
163
+
164
+ def getTreeDoc(self):
165
+ return self._treeDoc
166
+
167
+
168
+ class XmlVisitor(ITopicTreeVisitor):
169
+ def __init__(self, elem):
170
+ self.tree = elem
171
+ self.known_topics = []
172
+
173
+ def _startTraversal(self):
174
+ self.roots = [self.tree]
175
+
176
+ def _onTopic(self, topicObj):
177
+ if topicObj.isAll():
178
+ self.last_elem = self.tree
179
+ return
180
+ if self.roots:
181
+ this_elem = ET.SubElement(self.roots[-1], 'topic',
182
+ {'id':topicObj.getNodeName()})
183
+ else:
184
+ this_elem = ET.Element('topic', {'id':topicObj.getNodeName()})
185
+ req, opt = topicObj.getArgs()
186
+ req = req or ()
187
+ opt = opt or ()
188
+ desc_elem = ET.SubElement(this_elem, 'description')
189
+ topicDesc = topicObj.getDescription()
190
+ if topicDesc:
191
+ desc_elem.text = ' '.join(topicDesc.split())
192
+ else:
193
+ desc_elem.text = "UNDOCUMENTED"
194
+ argDescriptions = topicObj.getArgDescriptions()
195
+
196
+ # pubsub way of getting known_args
197
+ known_args = []
198
+ parent = topicObj.getParent()
199
+ while parent:
200
+ if parent in self.known_topics:
201
+ p_req, p_opt = parent.getArgs()
202
+ if p_req:
203
+ known_args.extend(p_req)
204
+ if p_opt:
205
+ known_args.extend(p_opt)
206
+ parent = parent.getParent()
207
+
208
+ # there is probably a cleaner way to do this
209
+ if req or opt:
210
+ spec = ET.SubElement(this_elem, 'listenerspec')
211
+ for arg in req:
212
+ if arg in known_args:
213
+ continue
214
+ arg_elem = ET.SubElement(spec, 'arg', {'id': arg})
215
+ arg_elem.text = ' '.join(argDescriptions.get(arg, 'UNDOCUMENTED').split())
216
+ for arg in opt:
217
+ if arg in known_args:
218
+ continue
219
+ arg_elem = ET.SubElement(spec, 'arg', {'id': arg, 'optional':'True'})
220
+ arg_elem.text = ' '.join(argDescriptions.get(arg, 'UNDOCUMENTED').split())
221
+
222
+ self.last_elem = this_elem
223
+ self.known_topics.append(topicObj)
224
+
225
+ def _startChildren(self):
226
+ self.roots.append(self.last_elem)
227
+
228
+ def _endChildren(self):
229
+ self.roots.pop()
230
+
231
+
232
+ ## http://infix.se/2007/02/06/gentlemen-indent-your-xml
233
+ def indent(elem, level=0):
234
+ i = "\n" + level*" "
235
+ if len(elem):
236
+ if not elem.text or not elem.text.strip():
237
+ elem.text = i + " "
238
+ for e in elem:
239
+ indent(e, level+1)
240
+ if not e.tail or not e.tail.strip():
241
+ e.tail = i + " "
242
+ if not e.tail or not e.tail.strip():
243
+ e.tail = i
244
+ else:
245
+ if level and (not elem.tail or not elem.tail.strip()):
246
+ elem.tail = i
247
+ else:
248
+ elem.tail="\n"
249
+
250
+
251
+ def exportTopicTreeSpecXml(moduleName=None, rootTopic=None, bak='bak', moduleDoc=None):
252
+ """
253
+ If rootTopic is None, then pub.getDefaultTopicTreeRoot() is assumed.
254
+ """
255
+
256
+ if rootTopic is None:
257
+ from .. import pub
258
+ rootTopic = pub.getDefaultTopicTreeRoot()
259
+ elif isinstance(rootTopic, str):
260
+ from .. import pub
261
+ rootTopic = pub.getTopic(rootTopic)
262
+
263
+ tree = ET.Element('topicdefntree')
264
+ if moduleDoc:
265
+ mod_desc = ET.SubElement(tree, 'description')
266
+ mod_desc.text = ' '.join(moduleDoc.split())
267
+
268
+ traverser = pub.TopicTreeTraverser(XmlVisitor(tree))
269
+ traverser.traverse(rootTopic)
270
+
271
+ indent(tree)
272
+
273
+ if moduleName:
274
+
275
+ filename = '%s.xml' % moduleName
276
+ if bak:
277
+ pub._backupIfExists(filename, bak)
278
+
279
+ fulltree= ET.ElementTree(tree)
280
+ fulltree.write(filename, "utf-8", True)
281
+
282
+ return ET.tostring(tree)
283
+
284
+
285
+
286
+