wxPython 4.3.2__cp315-cp315-win_arm64.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.
- wx/WebView2Loader.dll +0 -0
- wx/__init__.py +22 -0
- wx/__init__.pyi +10 -0
- wx/__version__.py +9 -0
- wx/__version__.pyi +15 -0
- wx/_adv.cp315-win_arm64.pyd +0 -0
- wx/_aui.cp315-win_arm64.pyd +0 -0
- wx/_core.cp315-win_arm64.pyd +0 -0
- wx/_dataview.cp315-win_arm64.pyd +0 -0
- wx/_glcanvas.cp315-win_arm64.pyd +0 -0
- wx/_grid.cp315-win_arm64.pyd +0 -0
- wx/_html.cp315-win_arm64.pyd +0 -0
- wx/_html2.cp315-win_arm64.pyd +0 -0
- wx/_media.cp315-win_arm64.pyd +0 -0
- wx/_msw.cp315-win_arm64.pyd +0 -0
- wx/_propgrid.cp315-win_arm64.pyd +0 -0
- wx/_ribbon.cp315-win_arm64.pyd +0 -0
- wx/_richtext.cp315-win_arm64.pyd +0 -0
- wx/_stc.cp315-win_arm64.pyd +0 -0
- wx/_xml.cp315-win_arm64.pyd +0 -0
- wx/_xrc.cp315-win_arm64.pyd +0 -0
- wx/adv.py +127 -0
- wx/adv.pyi +5931 -0
- wx/aui.py +70 -0
- wx/aui.pyi +4805 -0
- wx/core.py +3417 -0
- wx/core.pyi +62949 -0
- wx/dataview.py +176 -0
- wx/dataview.pyi +3828 -0
- wx/gizmos.py +18 -0
- wx/glcanvas.py +13 -0
- wx/glcanvas.pyi +544 -0
- wx/grid.py +237 -0
- wx/grid.pyi +5678 -0
- wx/html.py +38 -0
- wx/html.pyi +3283 -0
- wx/html2.py +46 -0
- wx/html2.pyi +1301 -0
- wx/include/wxPython/sip.h +1938 -0
- wx/include/wxPython/wxpy_api.h +418 -0
- wx/lib/CDate.py +201 -0
- wx/lib/ClickableHtmlWindow.py +57 -0
- wx/lib/__init__.py +0 -0
- wx/lib/activex.py +178 -0
- wx/lib/activexwrapper.py +153 -0
- wx/lib/agw/__init__.py +128 -0
- wx/lib/agw/advancedsplash.py +563 -0
- wx/lib/agw/aquabutton.py +1127 -0
- wx/lib/agw/artmanager.py +2110 -0
- wx/lib/agw/aui/__init__.py +295 -0
- wx/lib/agw/aui/aui_constants.py +2616 -0
- wx/lib/agw/aui/aui_switcherdialog.py +1232 -0
- wx/lib/agw/aui/aui_utilities.py +648 -0
- wx/lib/agw/aui/auibar.py +4045 -0
- wx/lib/agw/aui/auibook.py +6288 -0
- wx/lib/agw/aui/dockart.py +1198 -0
- wx/lib/agw/aui/framemanager.py +10485 -0
- wx/lib/agw/aui/tabart.py +2749 -0
- wx/lib/agw/aui/tabmdi.py +679 -0
- wx/lib/agw/balloontip.py +1157 -0
- wx/lib/agw/buttonpanel.py +2787 -0
- wx/lib/agw/cubecolourdialog.py +3529 -0
- wx/lib/agw/customtreectrl.py +9908 -0
- wx/lib/agw/data/ShortcutEditor_1.png +0 -0
- wx/lib/agw/data/ShortcutEditor_1_thumb.png +0 -0
- wx/lib/agw/data/ShortcutEditor_2.png +0 -0
- wx/lib/agw/data/ShortcutEditor_2_thumb.png +0 -0
- wx/lib/agw/data/ShortcutEditor_3.png +0 -0
- wx/lib/agw/data/ShortcutEditor_3_thumb.png +0 -0
- wx/lib/agw/data/ShortcutEditor_4.png +0 -0
- wx/lib/agw/data/ShortcutEditor_4_thumb.png +0 -0
- wx/lib/agw/data/default_help_text.html +105 -0
- wx/lib/agw/flatmenu.py +7392 -0
- wx/lib/agw/flatnotebook.py +6669 -0
- wx/lib/agw/floatspin.py +1820 -0
- wx/lib/agw/fmcustomizedlg.py +535 -0
- wx/lib/agw/fmresources.py +407 -0
- wx/lib/agw/foldpanelbar.py +2282 -0
- wx/lib/agw/fourwaysplitter.py +1130 -0
- wx/lib/agw/genericmessagedialog.py +1549 -0
- wx/lib/agw/gradientbutton.py +731 -0
- wx/lib/agw/hyperlink.py +664 -0
- wx/lib/agw/hypertreelist.py +5756 -0
- wx/lib/agw/infobar.py +885 -0
- wx/lib/agw/knobctrl.py +944 -0
- wx/lib/agw/labelbook.py +3028 -0
- wx/lib/agw/multidirdialog.py +581 -0
- wx/lib/agw/peakmeter.py +1028 -0
- wx/lib/agw/persist/__init__.py +188 -0
- wx/lib/agw/persist/persist_constants.py +283 -0
- wx/lib/agw/persist/persist_handlers.py +2614 -0
- wx/lib/agw/persist/persistencemanager.py +863 -0
- wx/lib/agw/piectrl.py +1082 -0
- wx/lib/agw/pybusyinfo.py +399 -0
- wx/lib/agw/pycollapsiblepane.py +940 -0
- wx/lib/agw/pygauge.py +570 -0
- wx/lib/agw/pyprogress.py +916 -0
- wx/lib/agw/ribbon/__init__.py +198 -0
- wx/lib/agw/ribbon/art.py +219 -0
- wx/lib/agw/ribbon/art_aui.py +1283 -0
- wx/lib/agw/ribbon/art_default.py +81 -0
- wx/lib/agw/ribbon/art_internal.py +248 -0
- wx/lib/agw/ribbon/art_msw.py +2735 -0
- wx/lib/agw/ribbon/art_osx.py +52 -0
- wx/lib/agw/ribbon/bar.py +1259 -0
- wx/lib/agw/ribbon/buttonbar.py +1317 -0
- wx/lib/agw/ribbon/control.py +205 -0
- wx/lib/agw/ribbon/gallery.py +973 -0
- wx/lib/agw/ribbon/page.py +946 -0
- wx/lib/agw/ribbon/panel.py +1170 -0
- wx/lib/agw/ribbon/toolbar.py +1441 -0
- wx/lib/agw/rulerctrl.py +1885 -0
- wx/lib/agw/scrolledthumbnail.py +2116 -0
- wx/lib/agw/shapedbutton.py +1809 -0
- wx/lib/agw/shortcuteditor.py +2642 -0
- wx/lib/agw/speedmeter.py +1800 -0
- wx/lib/agw/supertooltip.py +1443 -0
- wx/lib/agw/thumbnailctrl.py +529 -0
- wx/lib/agw/toasterbox.py +1327 -0
- wx/lib/agw/ultimatelistctrl.py +13671 -0
- wx/lib/agw/xlsgrid.py +2111 -0
- wx/lib/agw/zoombar.py +1336 -0
- wx/lib/analogclock/__init__.py +140 -0
- wx/lib/analogclock/analogclock.py +630 -0
- wx/lib/analogclock/helpers.py +986 -0
- wx/lib/analogclock/lib_setup/__init__.py +0 -0
- wx/lib/analogclock/lib_setup/buttontreectrlpanel.py +297 -0
- wx/lib/analogclock/lib_setup/fontselect.py +57 -0
- wx/lib/analogclock/setup.py +490 -0
- wx/lib/analogclock/styles.py +47 -0
- wx/lib/anchors.py +103 -0
- wx/lib/art/__init__.py +4 -0
- wx/lib/art/flagart.py +1583 -0
- wx/lib/art/img2pyartprov.py +56 -0
- wx/lib/busy.py +152 -0
- wx/lib/buttons.py +1140 -0
- wx/lib/calendar.py +1596 -0
- wx/lib/checkbox.py +837 -0
- wx/lib/colourchooser/__init__.py +36 -0
- wx/lib/colourchooser/canvas.py +145 -0
- wx/lib/colourchooser/intl.py +24 -0
- wx/lib/colourchooser/pycolourbox.py +89 -0
- wx/lib/colourchooser/pycolourchooser.py +626 -0
- wx/lib/colourchooser/pycolourslider.py +98 -0
- wx/lib/colourchooser/pypalette.py +208 -0
- wx/lib/colourdb.py +740 -0
- wx/lib/colourselect.py +385 -0
- wx/lib/colourutils.py +118 -0
- wx/lib/combotreebox.py +944 -0
- wx/lib/delayedresult.py +420 -0
- wx/lib/dialogs.py +510 -0
- wx/lib/docview.py +3210 -0
- wx/lib/dragscroller.py +79 -0
- wx/lib/editor/README.txt +77 -0
- wx/lib/editor/__init__.py +24 -0
- wx/lib/editor/editor.py +974 -0
- wx/lib/editor/images.py +15 -0
- wx/lib/editor/selection.py +44 -0
- wx/lib/embeddedimage.py +76 -0
- wx/lib/eventStack.py +136 -0
- wx/lib/eventwatcher.py +440 -0
- wx/lib/evtmgr.py +521 -0
- wx/lib/expando.py +393 -0
- wx/lib/fancytext.py +494 -0
- wx/lib/filebrowsebutton.py +461 -0
- wx/lib/flashwin.py +262 -0
- wx/lib/flashwin_old.py +651 -0
- wx/lib/floatcanvas/FCEvents.py +53 -0
- wx/lib/floatcanvas/FCObjects.py +2910 -0
- wx/lib/floatcanvas/FloatCanvas.py +1025 -0
- wx/lib/floatcanvas/GUIMode.py +396 -0
- wx/lib/floatcanvas/NavCanvas.py +162 -0
- wx/lib/floatcanvas/Resources.py +319 -0
- wx/lib/floatcanvas/ScreenShot.py +1788 -0
- wx/lib/floatcanvas/Utilities/BBox.py +313 -0
- wx/lib/floatcanvas/Utilities/Colors.py +137 -0
- wx/lib/floatcanvas/Utilities/GUI.py +91 -0
- wx/lib/floatcanvas/Utilities/__init__.py +7 -0
- wx/lib/floatcanvas/__init__.py +124 -0
- wx/lib/foldmenu.py +89 -0
- wx/lib/gestures.py +310 -0
- wx/lib/gizmos/__init__.py +18 -0
- wx/lib/gizmos/dynamicsash.py +1202 -0
- wx/lib/gizmos/ledctrl.py +299 -0
- wx/lib/gizmos/treelistctrl.py +87 -0
- wx/lib/graphics.py +1942 -0
- wx/lib/gridmovers.py +516 -0
- wx/lib/iewin.py +249 -0
- wx/lib/iewin_old.py +894 -0
- wx/lib/imagebrowser.py +853 -0
- wx/lib/imageutils.py +163 -0
- wx/lib/infoframe.py +490 -0
- wx/lib/inspection.py +1254 -0
- wx/lib/intctrl.py +990 -0
- wx/lib/itemspicker.py +256 -0
- wx/lib/langlistctrl.py +480 -0
- wx/lib/layoutf.py +271 -0
- wx/lib/masked/__init__.py +27 -0
- wx/lib/masked/combobox.py +839 -0
- wx/lib/masked/ctrl.py +108 -0
- wx/lib/masked/ipaddrctrl.py +241 -0
- wx/lib/masked/maskededit.py +7262 -0
- wx/lib/masked/numctrl.py +2000 -0
- wx/lib/masked/textctrl.py +465 -0
- wx/lib/masked/timectrl.py +1465 -0
- wx/lib/mixins/__init__.py +17 -0
- wx/lib/mixins/grid.py +47 -0
- wx/lib/mixins/gridlabelrenderer.py +277 -0
- wx/lib/mixins/imagelist.py +77 -0
- wx/lib/mixins/inspection.py +184 -0
- wx/lib/mixins/listctrl.py +893 -0
- wx/lib/mixins/rubberband.py +403 -0
- wx/lib/mixins/treemixin.py +678 -0
- wx/lib/msgpanel.py +95 -0
- wx/lib/multisash.py +746 -0
- wx/lib/myole4ax.idl +178 -0
- wx/lib/myole4ax.tlb +0 -0
- wx/lib/newevent.py +229 -0
- wx/lib/newevent.pyi +25 -0
- wx/lib/nvdlg.py +156 -0
- wx/lib/ogl/__init__.py +13 -0
- wx/lib/ogl/basic.py +3989 -0
- wx/lib/ogl/bmpshape.py +86 -0
- wx/lib/ogl/canvas.py +467 -0
- wx/lib/ogl/composit.py +1576 -0
- wx/lib/ogl/diagram.py +230 -0
- wx/lib/ogl/divided.py +482 -0
- wx/lib/ogl/drawn.py +898 -0
- wx/lib/ogl/lines.py +1809 -0
- wx/lib/ogl/oglmisc.py +607 -0
- wx/lib/pdfviewer/__init__.py +113 -0
- wx/lib/pdfviewer/bitmaps/ArrowLeft.png +0 -0
- wx/lib/pdfviewer/bitmaps/ArrowRight.png +0 -0
- wx/lib/pdfviewer/bitmaps/DirectionH.png +0 -0
- wx/lib/pdfviewer/bitmaps/DirectionV.png +0 -0
- wx/lib/pdfviewer/bitmaps/PlayerFirst.png +0 -0
- wx/lib/pdfviewer/bitmaps/PlayerLast.png +0 -0
- wx/lib/pdfviewer/bitmaps/PlayerNext.png +0 -0
- wx/lib/pdfviewer/bitmaps/PlayerPrev.png +0 -0
- wx/lib/pdfviewer/bitmaps/Printer.png +0 -0
- wx/lib/pdfviewer/bitmaps/ReadMe.txt +28 -0
- wx/lib/pdfviewer/bitmaps/Save.png +0 -0
- wx/lib/pdfviewer/bitmaps/ZoomIn.png +0 -0
- wx/lib/pdfviewer/bitmaps/ZoomOut.png +0 -0
- wx/lib/pdfviewer/bitmaps/encode_bitmaps.py +37 -0
- wx/lib/pdfviewer/buttonpanel.py +285 -0
- wx/lib/pdfviewer/images.py +240 -0
- wx/lib/pdfviewer/viewer.py +1118 -0
- wx/lib/pdfwin.py +295 -0
- wx/lib/pdfwin_old.py +789 -0
- wx/lib/platebtn.py +789 -0
- wx/lib/plot/CHANGELOG.md +150 -0
- wx/lib/plot/README.md +16 -0
- wx/lib/plot/__init__.py +46 -0
- wx/lib/plot/__main__.py +5 -0
- wx/lib/plot/examples/__init__.py +0 -0
- wx/lib/plot/examples/demo.py +1010 -0
- wx/lib/plot/examples/simple_example.py +56 -0
- wx/lib/plot/plotcanvas.py +2985 -0
- wx/lib/plot/polyobjects.py +1524 -0
- wx/lib/plot/utils.py +334 -0
- wx/lib/popupctl.py +251 -0
- wx/lib/printout.py +1155 -0
- wx/lib/progressindicator.py +151 -0
- wx/lib/pubsub/LICENSE_BSD_Simple.txt +23 -0
- wx/lib/pubsub/README_WxPython.txt +22 -0
- wx/lib/pubsub/RELEASE_NOTES.txt +71 -0
- wx/lib/pubsub/__init__.py +25 -0
- wx/lib/pubsub/core/__init__.py +92 -0
- wx/lib/pubsub/core/arg1/__init__.py +16 -0
- wx/lib/pubsub/core/arg1/listenerimpl.py +97 -0
- wx/lib/pubsub/core/arg1/publisher.py +40 -0
- wx/lib/pubsub/core/arg1/publishermixin.py +34 -0
- wx/lib/pubsub/core/arg1/topicargspecimpl.py +66 -0
- wx/lib/pubsub/core/arg1/topicmgrimpl.py +19 -0
- wx/lib/pubsub/core/callables.py +198 -0
- wx/lib/pubsub/core/imp2.py +62 -0
- wx/lib/pubsub/core/itopicdefnprovider.py +0 -0
- wx/lib/pubsub/core/kwargs/__init__.py +16 -0
- wx/lib/pubsub/core/kwargs/datamsg.py +27 -0
- wx/lib/pubsub/core/kwargs/listenerimpl.py +93 -0
- wx/lib/pubsub/core/kwargs/publisher.py +77 -0
- wx/lib/pubsub/core/kwargs/publishermixin.py +65 -0
- wx/lib/pubsub/core/kwargs/topicargspecimpl.py +216 -0
- wx/lib/pubsub/core/kwargs/topicmgrimpl.py +13 -0
- wx/lib/pubsub/core/listener.py +40 -0
- wx/lib/pubsub/core/listenerbase.py +185 -0
- wx/lib/pubsub/core/notificationmgr.py +185 -0
- wx/lib/pubsub/core/publisherbase.py +189 -0
- wx/lib/pubsub/core/topicargspec.py +77 -0
- wx/lib/pubsub/core/topicdefnprovider.py +631 -0
- wx/lib/pubsub/core/topicexc.py +72 -0
- wx/lib/pubsub/core/topicmgr.py +454 -0
- wx/lib/pubsub/core/topicobj.py +472 -0
- wx/lib/pubsub/core/topictreetraverser.py +143 -0
- wx/lib/pubsub/core/topicutils.py +119 -0
- wx/lib/pubsub/core/treeconfig.py +21 -0
- wx/lib/pubsub/core/validatedefnargs.py +29 -0
- wx/lib/pubsub/core/weakmethod.py +102 -0
- wx/lib/pubsub/policies.py +24 -0
- wx/lib/pubsub/pub.py +199 -0
- wx/lib/pubsub/setuparg1.py +47 -0
- wx/lib/pubsub/setupkwargs.py +29 -0
- wx/lib/pubsub/utils/__init__.py +27 -0
- wx/lib/pubsub/utils/exchandling.py +100 -0
- wx/lib/pubsub/utils/misc.py +99 -0
- wx/lib/pubsub/utils/notification.py +331 -0
- wx/lib/pubsub/utils/topictreeprinter.py +195 -0
- wx/lib/pubsub/utils/xmltopicdefnprovider.py +286 -0
- wx/lib/pydocview.py +3300 -0
- wx/lib/rcsizer.py +227 -0
- wx/lib/resizewidget.py +357 -0
- wx/lib/scrolledpanel.py +243 -0
- wx/lib/sheet.py +350 -0
- wx/lib/sized_controls.py +691 -0
- wx/lib/softwareupdate.py +355 -0
- wx/lib/splitter.py +925 -0
- wx/lib/statbmp.py +199 -0
- wx/lib/stattext.py +321 -0
- wx/lib/throbber.py +424 -0
- wx/lib/ticker.py +306 -0
- wx/lib/ticker_xrc.py +48 -0
- wx/lib/utils.py +89 -0
- wx/lib/wordwrap.py +97 -0
- wx/lib/wxcairo/__init__.py +139 -0
- wx/lib/wxcairo/wx_cairocffi.py +200 -0
- wx/lib/wxcairo/wx_pycairo.py +455 -0
- wx/lib/wxpTag.py +274 -0
- wx/locale/af/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/an/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ar/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ca/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ca@valencia/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/co/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/cs/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/da/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/de/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/el/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/es/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/eu/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/fa_IR/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/fi/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/fr/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/gl_ES/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/hi/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/hr/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/hu/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/id/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/it/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ja/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ka/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ko_KR/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/lt/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/lv/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ms/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/nb/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ne/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/nl/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/pl/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/pt/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/pt_BR/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ro/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ru/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/sk/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/sl/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/sq/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/sr/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/sv/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/ta/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/tr/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/uk/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/vi/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/zh_CN/LC_MESSAGES/wxstd.mo +0 -0
- wx/locale/zh_TW/LC_MESSAGES/wxstd.mo +0 -0
- wx/media.py +30 -0
- wx/media.pyi +272 -0
- wx/msw.py +16 -0
- wx/msw.pyi +91 -0
- wx/propgrid.py +498 -0
- wx/propgrid.pyi +7427 -0
- wx/py/CHANGES.txt +796 -0
- wx/py/Py.ico +0 -0
- wx/py/PyAlaCarte.py +34 -0
- wx/py/PyAlaMode.py +34 -0
- wx/py/PyAlaModeTest.py +33 -0
- wx/py/PyCrust.ico +0 -0
- wx/py/PyCrust.py +78 -0
- wx/py/PyCrust_16.png +0 -0
- wx/py/PyCrust_32.png +0 -0
- wx/py/PyFilling.py +35 -0
- wx/py/PyShell.py +78 -0
- wx/py/PySlices.ico +0 -0
- wx/py/PySlices.py +98 -0
- wx/py/PySlicesShell.py +94 -0
- wx/py/PySlices_16.png +0 -0
- wx/py/PySlices_32.png +0 -0
- wx/py/PyWrap.py +52 -0
- wx/py/README.txt +77 -0
- wx/py/__init__.py +20 -0
- wx/py/buffer.py +136 -0
- wx/py/crust.py +403 -0
- wx/py/crustslices.py +403 -0
- wx/py/dispatcher.py +259 -0
- wx/py/document.py +37 -0
- wx/py/editor.py +844 -0
- wx/py/editwindow.py +316 -0
- wx/py/filling.py +358 -0
- wx/py/frame.py +976 -0
- wx/py/images.py +212 -0
- wx/py/interpreter.py +161 -0
- wx/py/introspect.py +402 -0
- wx/py/magic.py +98 -0
- wx/py/parse.py +134 -0
- wx/py/path.py +36 -0
- wx/py/pseudo.py +99 -0
- wx/py/shell.py +1579 -0
- wx/py/sliceshell.py +3805 -0
- wx/py/tests/test_interpreter.py +71 -0
- wx/py/tests/test_introspect.py +810 -0
- wx/py/tests/test_pseudo.py +70 -0
- wx/py/tests/test_version.py +36 -0
- wx/py/tests/testall.py +22 -0
- wx/py/version.py +7 -0
- wx/py.typed +0 -0
- wx/ribbon.py +48 -0
- wx/ribbon.pyi +3099 -0
- wx/richtext.py +141 -0
- wx/richtext.pyi +13581 -0
- wx/siplib.cp315-win_arm64.pyd +0 -0
- wx/siplib.pyi +19 -0
- wx/stc.py +59 -0
- wx/stc.pyi +9918 -0
- wx/svg/__init__.py +363 -0
- wx/svg/_nanosvg.cp315-win_arm64.pyd +0 -0
- wx/tools/__init__.py +18 -0
- wx/tools/dbg.py +268 -0
- wx/tools/genaxmodule.py +50 -0
- wx/tools/helpviewer.py +92 -0
- wx/tools/img2img.py +85 -0
- wx/tools/img2png.py +54 -0
- wx/tools/img2py.py +306 -0
- wx/tools/img2xpm.py +54 -0
- wx/tools/pywxrc.py +951 -0
- wx/tools/wxget.py +254 -0
- wx/tools/wxget_docs_demo.py +183 -0
- wx/wxbase334u_net_vc140_arm64.dll +0 -0
- wx/wxbase334u_vc140_arm64.dll +0 -0
- wx/wxbase334u_xml_vc140_arm64.dll +0 -0
- wx/wxmsw334u_adv_vc140_arm64.dll +0 -0
- wx/wxmsw334u_aui_vc140_arm64.dll +0 -0
- wx/wxmsw334u_core_vc140_arm64.dll +0 -0
- wx/wxmsw334u_gl_vc140_arm64.dll +0 -0
- wx/wxmsw334u_html_vc140_arm64.dll +0 -0
- wx/wxmsw334u_media_vc140_arm64.dll +0 -0
- wx/wxmsw334u_propgrid_vc140_arm64.dll +0 -0
- wx/wxmsw334u_qa_vc140_arm64.dll +0 -0
- wx/wxmsw334u_ribbon_vc140_arm64.dll +0 -0
- wx/wxmsw334u_richtext_vc140_arm64.dll +0 -0
- wx/wxmsw334u_stc_vc140_arm64.dll +0 -0
- wx/wxmsw334u_webview_vc140_arm64.dll +0 -0
- wx/wxmsw334u_xrc_vc140_arm64.dll +0 -0
- wx/xml.py +18 -0
- wx/xml.pyi +728 -0
- wx/xrc.py +68 -0
- wx/xrc.pyi +896 -0
- wxpython-4.3.2.dist-info/METADATA +71 -0
- wxpython-4.3.2.dist-info/RECORD +471 -0
- wxpython-4.3.2.dist-info/WHEEL +5 -0
- wxpython-4.3.2.dist-info/entry_points.txt +13 -0
- wxpython-4.3.2.dist-info/licenses/LICENSE.txt +610 -0
- wxpython-4.3.2.dist-info/top_level.txt +1 -0
wx/tools/wxget.py
ADDED
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
#----------------------------------------------------------------------
|
|
4
|
+
# Name: wx.tools.wxget
|
|
5
|
+
# Purpose: wx Based alternative to wget
|
|
6
|
+
#
|
|
7
|
+
# Author: Steve Barnes
|
|
8
|
+
#
|
|
9
|
+
# Created: 06-Aug-2017
|
|
10
|
+
# Copyright: (c) 2017-2020 by Steve Barnes
|
|
11
|
+
# Licence: wxWindows license
|
|
12
|
+
# Tags: phoenix-port, py3-port
|
|
13
|
+
#
|
|
14
|
+
# Module to allow cross platform downloads originally from answers to:
|
|
15
|
+
# https://stackoverflow.com/questions/22676/how-do-i-download-a-file-over-http-using-python
|
|
16
|
+
# by Stan and PabloG then converted to wx.
|
|
17
|
+
#----------------------------------------------------------------------
|
|
18
|
+
|
|
19
|
+
"""
|
|
20
|
+
wxget.py -- wx Version of wget utility for platform that don't have it already.
|
|
21
|
+
|
|
22
|
+
Usage:
|
|
23
|
+
wxget URL [DEST_DIR]
|
|
24
|
+
|
|
25
|
+
Where URL is a file URL and the optional DEST_DIR is a destination directory to
|
|
26
|
+
download to, (default is to prompt the user).
|
|
27
|
+
The --trusted option can be used to suppress certificate checks.
|
|
28
|
+
"""
|
|
29
|
+
import sys
|
|
30
|
+
import os
|
|
31
|
+
import wx
|
|
32
|
+
import subprocess
|
|
33
|
+
import ssl
|
|
34
|
+
|
|
35
|
+
from urllib.error import (HTTPError, URLError)
|
|
36
|
+
import urllib.request as urllib2
|
|
37
|
+
import urllib.parse as urlparse
|
|
38
|
+
|
|
39
|
+
try:
|
|
40
|
+
import pip
|
|
41
|
+
except ImportError as e:
|
|
42
|
+
pip = None
|
|
43
|
+
|
|
44
|
+
def get_docs_demo_url(demo=False):
|
|
45
|
+
""" Get the URL for the docs or demo."""
|
|
46
|
+
if demo:
|
|
47
|
+
pkg = 'demo'
|
|
48
|
+
else:
|
|
49
|
+
pkg = 'docs'
|
|
50
|
+
base_url = "https://github.com/wxWidgets/Phoenix/releases/download/%s/wxPython-%s-%s.tar.gz"
|
|
51
|
+
ver = wx.version().split(' ')[0]
|
|
52
|
+
major = ver.split('.')[0]
|
|
53
|
+
if major != '4':
|
|
54
|
+
raise ValueError("wx Versions before 4 not supported!")
|
|
55
|
+
# Snapshot prereleases are tagged with the bare version, which is the only
|
|
56
|
+
# kind of version that carries a "+<hash>" local label.
|
|
57
|
+
tag = ver if '+' in ver else 'wxPython-%s' % ver
|
|
58
|
+
return base_url % (tag, pkg, ver)
|
|
59
|
+
|
|
60
|
+
def get_save_path(url, dest_dir, force=False):
|
|
61
|
+
""" Get the file save location."""
|
|
62
|
+
old_dir = os.getcwd()
|
|
63
|
+
if not dest_dir:
|
|
64
|
+
dest_dir = os.getcwd()
|
|
65
|
+
else:
|
|
66
|
+
if not os.path.exists(dest_dir):
|
|
67
|
+
os.makedirs(dest_dir)
|
|
68
|
+
os.chdir(dest_dir)
|
|
69
|
+
filename = os.path.basename(urlparse.urlsplit(url)[2])
|
|
70
|
+
if not filename:
|
|
71
|
+
filename = 'downloaded.file'
|
|
72
|
+
|
|
73
|
+
if not force:
|
|
74
|
+
with wx.FileDialog(
|
|
75
|
+
None, message="Save As ...", defaultDir=dest_dir,
|
|
76
|
+
defaultFile=filename, style=wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT
|
|
77
|
+
) as dlg:
|
|
78
|
+
if dlg.ShowModal() == wx.ID_OK:
|
|
79
|
+
dest_dir, filename = os.path.split(dlg.GetPath())
|
|
80
|
+
else:
|
|
81
|
+
url = None
|
|
82
|
+
else:
|
|
83
|
+
if not os.path.exists(dest_dir):
|
|
84
|
+
os.makedirs(dest_dir)
|
|
85
|
+
elif not os.path.isdir(dest_dir):
|
|
86
|
+
url = None
|
|
87
|
+
|
|
88
|
+
if dest_dir:
|
|
89
|
+
filename = os.path.join(dest_dir, filename)
|
|
90
|
+
os.chdir(old_dir)
|
|
91
|
+
|
|
92
|
+
return (url, filename)
|
|
93
|
+
|
|
94
|
+
def download_wget(url, filename, trusted=False):
|
|
95
|
+
""" Try to download via wget."""
|
|
96
|
+
result = False
|
|
97
|
+
try:
|
|
98
|
+
cmd = ["wget", url, '-O', filename]
|
|
99
|
+
if trusted:
|
|
100
|
+
cmd.append('--no-check-certificate')
|
|
101
|
+
print("Trying:\n ", ' '.join(cmd))
|
|
102
|
+
result = subprocess.check_call(cmd)
|
|
103
|
+
# note some users may need to add "--no-check-certificate" on some sites
|
|
104
|
+
result = result == 0
|
|
105
|
+
except Exception:
|
|
106
|
+
print("wget did not work or not installed - trying urllib")
|
|
107
|
+
return result
|
|
108
|
+
|
|
109
|
+
def download_urllib(url, filename):
|
|
110
|
+
""" Try to download via urllib."""
|
|
111
|
+
print("Trying to Download via urllib from:\n ", url)
|
|
112
|
+
keep_going = True
|
|
113
|
+
try:
|
|
114
|
+
url_res = urllib2.urlopen(url)
|
|
115
|
+
except (HTTPError, URLError, ssl.CertificateError) as err:
|
|
116
|
+
print("Error: %s" % err)
|
|
117
|
+
return False
|
|
118
|
+
with open(filename, 'wb') as outfile:
|
|
119
|
+
block_sz = 8192
|
|
120
|
+
meta = url_res.info()
|
|
121
|
+
meta_func = meta.getheaders if hasattr(meta, 'getheaders') else meta.get_all
|
|
122
|
+
meta_length = meta_func("Content-Length")
|
|
123
|
+
file_size = None
|
|
124
|
+
if meta_length:
|
|
125
|
+
file_size = int(meta_length[0])
|
|
126
|
+
message = "Downloading: {0}\nBytes: {1}\n".format(url, file_size)
|
|
127
|
+
dstyle = wx.PD_APP_MODAL | wx.PD_CAN_ABORT | wx.PD_AUTO_HIDE
|
|
128
|
+
if file_size:
|
|
129
|
+
progress = wx.ProgressDialog('Downloading', message,
|
|
130
|
+
maximum=1+file_size//block_sz, style=dstyle)
|
|
131
|
+
else:
|
|
132
|
+
progress = wx.ProgressDialog('Downloading', message, style=dstyle)
|
|
133
|
+
|
|
134
|
+
file_size_dl = 0
|
|
135
|
+
while keep_going:
|
|
136
|
+
read_buffer = url_res.read(block_sz)
|
|
137
|
+
if not read_buffer:
|
|
138
|
+
progress.Update(file_size_dl // block_sz, "message+\nDONE!")
|
|
139
|
+
wx.MilliSleep(200)
|
|
140
|
+
break
|
|
141
|
+
|
|
142
|
+
file_size_dl += len(read_buffer)
|
|
143
|
+
outfile.write(read_buffer)
|
|
144
|
+
|
|
145
|
+
status = "{0:16}".format(file_size_dl)
|
|
146
|
+
if file_size:
|
|
147
|
+
status += " [{0:6.2f}%]".format(file_size_dl * 100 / file_size)
|
|
148
|
+
(keep_going, dummy_skip) = progress.Update(file_size_dl // block_sz,
|
|
149
|
+
message+status)
|
|
150
|
+
wx.MilliSleep(80) # Give the GUI some update time
|
|
151
|
+
progress.Destroy()
|
|
152
|
+
|
|
153
|
+
result = os.path.exists(filename) and os.stat(filename).st_size > 0
|
|
154
|
+
return result
|
|
155
|
+
|
|
156
|
+
def download_pip(url, filename, force=False, trusted=False):
|
|
157
|
+
""" Try to download via pip."""
|
|
158
|
+
download_dir = os.path.split(filename)[0]
|
|
159
|
+
if len(download_dir) == 0:
|
|
160
|
+
download_dir = '.'
|
|
161
|
+
print("Trying to use pip to download From:\n ", url, 'To:\n ', filename)
|
|
162
|
+
cmds = ['pip', 'download', url, '--dest', download_dir, "--no-deps",
|
|
163
|
+
'--exists-action', 'i']
|
|
164
|
+
if force:
|
|
165
|
+
cmds.append('--no-cache-dir')
|
|
166
|
+
if trusted:
|
|
167
|
+
host = '/'.join(url.split('/')[:3]) # take up to http://something/ as host
|
|
168
|
+
cmds.extend(['--trusted-host', host])
|
|
169
|
+
if force and os.path.exists(filename):
|
|
170
|
+
print("Delete Existing", filename)
|
|
171
|
+
os.unlink(filename)
|
|
172
|
+
print("Running pip", ' '.join(cmds))
|
|
173
|
+
try:
|
|
174
|
+
print("\nAbusing pip so expect possible error(s) in the next few lines.")
|
|
175
|
+
result = subprocess.check_call(cmds)
|
|
176
|
+
print(result)
|
|
177
|
+
except (FileNotFoundError, subprocess.CalledProcessError) as Error:
|
|
178
|
+
print("Download via pip may have Failed!")
|
|
179
|
+
print(Error)
|
|
180
|
+
result = 0
|
|
181
|
+
result = os.path.exists(filename) and os.stat(filename).st_size > 0
|
|
182
|
+
return result
|
|
183
|
+
|
|
184
|
+
def download_file(url, dest=None, force=False, trusted=False):
|
|
185
|
+
"""
|
|
186
|
+
Download and save a file specified by url to dest directory, with force will
|
|
187
|
+
operate silently and overwrite any existing file.
|
|
188
|
+
"""
|
|
189
|
+
url, filename = get_save_path(url, dest, force)
|
|
190
|
+
keep_going = True
|
|
191
|
+
success = False
|
|
192
|
+
if url is None:
|
|
193
|
+
return 'Aborted!'
|
|
194
|
+
|
|
195
|
+
if url:
|
|
196
|
+
success = download_wget(url, filename, trusted) # Try wget
|
|
197
|
+
if not success:
|
|
198
|
+
success = download_urllib(url, filename) # Try urllib
|
|
199
|
+
if not success and pip is not None:
|
|
200
|
+
success = download_pip(url, filename, force, trusted) # Try pip
|
|
201
|
+
if not success:
|
|
202
|
+
split_url = url.split('/')
|
|
203
|
+
msg = '\n'.join([
|
|
204
|
+
"\n\nERROR in Web Access! - You may be behind a firewall!",
|
|
205
|
+
"-" * 52,
|
|
206
|
+
"You should be able to bybass this by using a browser to download:",
|
|
207
|
+
"\t%s\nfrom:\t%s\nthen copying the download file to:\n\t%s" % (
|
|
208
|
+
split_url[-1], '/'.join(split_url[:-1]), filename),
|
|
209
|
+
])
|
|
210
|
+
print(msg, '\n')
|
|
211
|
+
wx.MessageBox(msg, caption='WDOWNLOAD ERROR!',
|
|
212
|
+
style=wx.OK|wx.CENTRE|wx.ICON_ERROR)
|
|
213
|
+
return "FAILURE or Abort!"
|
|
214
|
+
|
|
215
|
+
return filename
|
|
216
|
+
|
|
217
|
+
def main(args=sys.argv):
|
|
218
|
+
""" Entry point for wxget."""
|
|
219
|
+
APP = wx.App()
|
|
220
|
+
dest_dir = '.'
|
|
221
|
+
force_flag = '--force'
|
|
222
|
+
trusted_flag = '--trusted'
|
|
223
|
+
force = False
|
|
224
|
+
trusted = False
|
|
225
|
+
|
|
226
|
+
if force_flag in args:
|
|
227
|
+
force = True
|
|
228
|
+
args.remove(force_flag)
|
|
229
|
+
|
|
230
|
+
if trusted_flag in args:
|
|
231
|
+
trusted = True
|
|
232
|
+
args.remove(force_flag)
|
|
233
|
+
|
|
234
|
+
if len(args) > 2:
|
|
235
|
+
dest_dir = args[2]
|
|
236
|
+
else:
|
|
237
|
+
dest_dir = None
|
|
238
|
+
if len(args) > 1:
|
|
239
|
+
url = args[1]
|
|
240
|
+
else:
|
|
241
|
+
print(__doc__)
|
|
242
|
+
yes_no = wx.MessageBox(__doc__+"\n\nRUN TEST?", "wxget",
|
|
243
|
+
wx.YES_NO|wx.CENTER)
|
|
244
|
+
if yes_no == wx.YES:
|
|
245
|
+
print("Testing with wxDemo")
|
|
246
|
+
url = get_docs_demo_url()
|
|
247
|
+
else:
|
|
248
|
+
url = None
|
|
249
|
+
if url:
|
|
250
|
+
FILENAME = download_file(url=url, dest=dest_dir, force=force, trusted=trusted)
|
|
251
|
+
print(FILENAME)
|
|
252
|
+
|
|
253
|
+
if __name__ == "__main__": # Only run if this file is called directly
|
|
254
|
+
main()
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
#----------------------------------------------------------------------
|
|
4
|
+
# Name: wx.tools.wxget_docs_demo
|
|
5
|
+
# Purpose: wx fetch and launch demo or docs
|
|
6
|
+
#
|
|
7
|
+
# Author: Steve Barnes
|
|
8
|
+
#
|
|
9
|
+
# Created: 06-Aug-2017
|
|
10
|
+
# Copyright: (c) 2017-2020 by Steve Barnes
|
|
11
|
+
# Licence: wxWindows license
|
|
12
|
+
# Tags: phoenix-port, py3-port
|
|
13
|
+
#
|
|
14
|
+
# Module to allow the correct version of the documents and/or demos to be
|
|
15
|
+
# launched after, if necessarily being fetched.
|
|
16
|
+
#----------------------------------------------------------------------
|
|
17
|
+
|
|
18
|
+
"""
|
|
19
|
+
wxget_docs_demo.py -- Launch the appropriate wx Docs or Demo.
|
|
20
|
+
|
|
21
|
+
Usage:
|
|
22
|
+
wxget_docs_demo [docs|demo]
|
|
23
|
+
|
|
24
|
+
Will install if missing, the requested item for the current version and then
|
|
25
|
+
launch it.
|
|
26
|
+
|
|
27
|
+
Use: doc|demo --force to force a fresh download.
|
|
28
|
+
"""
|
|
29
|
+
import sys
|
|
30
|
+
import os
|
|
31
|
+
import subprocess
|
|
32
|
+
import webbrowser
|
|
33
|
+
import tarfile
|
|
34
|
+
import warnings
|
|
35
|
+
from urllib.error import HTTPError
|
|
36
|
+
import urllib.request as urllib2
|
|
37
|
+
import urllib.parse as urlparse
|
|
38
|
+
from urllib.request import pathname2url
|
|
39
|
+
|
|
40
|
+
import wx
|
|
41
|
+
from wx.tools import wxget
|
|
42
|
+
|
|
43
|
+
print(sys.version_info, sys.version, sys.argv)
|
|
44
|
+
APP = None
|
|
45
|
+
if wx.VERSION[0] != 4:
|
|
46
|
+
raise ValueError("wx Versions other than 4 not currently supported!")
|
|
47
|
+
|
|
48
|
+
def ensure_wx_app():
|
|
49
|
+
""" Ensure that there is a wx.App instance."""
|
|
50
|
+
global APP
|
|
51
|
+
if APP is None and not wx.GetApp():
|
|
52
|
+
APP = wx.App()
|
|
53
|
+
APP.SetAppName("wxPython")
|
|
54
|
+
return (APP is not None)
|
|
55
|
+
|
|
56
|
+
def get_paths_dict():
|
|
57
|
+
""" Get a dictionary of the required paths."""
|
|
58
|
+
global APP
|
|
59
|
+
ensure_wx_app()
|
|
60
|
+
sp = wx.StandardPaths.Get()
|
|
61
|
+
pathdict = {}
|
|
62
|
+
pathdict['TempDir'] = sp.GetTempDir()
|
|
63
|
+
pathdict['Cache'] = os.path.join(sp.GetUserLocalDataDir(), 'wxDocsDemoCache',
|
|
64
|
+
wx.VERSION_STRING)
|
|
65
|
+
pathdict['Docs_URL'] = wxget.get_docs_demo_url(False)
|
|
66
|
+
#pathdict['wxDocs'] = os.path.join(sp.GetAppDocumentsDir(), 'wxDocs', wx.VERSION_STRING)
|
|
67
|
+
pathdict['wxDocs'] = sp.GetAppDocumentsDir()
|
|
68
|
+
pathdict['Docs_Name'] = "wxPython-docs-%s" % wx.VERSION_STRING
|
|
69
|
+
pathdict['Demo_URL'] = wxget.get_docs_demo_url(True)
|
|
70
|
+
#pathdict['wxDemo'] = os.path.join(sp.GetUserLocalDataDir(), 'wxDemo', wx.VERSION_STRING)
|
|
71
|
+
pathdict['wxDemo'] = sp.GetUserLocalDataDir()
|
|
72
|
+
pathdict['Demo_Name'] = "wxPython-demo-%s" % wx.VERSION_STRING
|
|
73
|
+
pathdict['Ext'] = 'tar.gz'
|
|
74
|
+
return pathdict
|
|
75
|
+
|
|
76
|
+
def unpack_cached(cached, dest_dir):
|
|
77
|
+
""" Unpack from the cache."""
|
|
78
|
+
print('Unpack', cached, 'to', dest_dir)
|
|
79
|
+
with tarfile.open(cached, "r:*") as tf:
|
|
80
|
+
try:
|
|
81
|
+
tf.extractall(dest_dir, filter='data')
|
|
82
|
+
except TypeError:
|
|
83
|
+
warnings.warn('Falling back to less safe tarfile.extractall')
|
|
84
|
+
tf.extractall(dest_dir)
|
|
85
|
+
dest_dir = os.listdir(dest_dir)[0]
|
|
86
|
+
return dest_dir
|
|
87
|
+
|
|
88
|
+
def get_item(final, url, cache, name, ext, forced=False):
|
|
89
|
+
""" Get the item """
|
|
90
|
+
print('Looking for', name, 'at', final)
|
|
91
|
+
fullpath = os.path.join(final, name)
|
|
92
|
+
if os.path.exists(fullpath) and not forced: # Already exists
|
|
93
|
+
return fullpath
|
|
94
|
+
|
|
95
|
+
cached = os.path.join(cache, name)
|
|
96
|
+
cached = os.path.extsep.join([cached, ext])
|
|
97
|
+
print('Looking for cached', cached)
|
|
98
|
+
if not os.path.exists(cached) or forced: # No cached copy
|
|
99
|
+
yes_no = wx.MessageBox(
|
|
100
|
+
"\n".join(
|
|
101
|
+
["%s is not yet installed." % name,
|
|
102
|
+
"Go on-line to get it?",
|
|
103
|
+
"(Select No on charged or slow connections)"]),
|
|
104
|
+
"Download Prompt", wx.YES_NO|wx.CENTER|wx.ICON_INFORMATION)
|
|
105
|
+
if yes_no == wx.YES:
|
|
106
|
+
cached = wxget.download_file(url, cache, force=forced, trusted=True)
|
|
107
|
+
else:
|
|
108
|
+
report_error("Download Cancelled!")
|
|
109
|
+
|
|
110
|
+
if os.path.exists(cached): # We now have a cached copy
|
|
111
|
+
unpack_cached(cached, final)
|
|
112
|
+
else:
|
|
113
|
+
fullpath = None
|
|
114
|
+
return fullpath
|
|
115
|
+
|
|
116
|
+
def report_error(err_text):
|
|
117
|
+
""" Report a problem."""
|
|
118
|
+
ensure_wx_app()
|
|
119
|
+
wx.MessageBox(err_text, caption='ERROR!',
|
|
120
|
+
style=wx.OK|wx.CENTRE|wx.ICON_ERROR)
|
|
121
|
+
|
|
122
|
+
def done(result=0):
|
|
123
|
+
""" Tidy up and exit."""
|
|
124
|
+
global APP
|
|
125
|
+
if APP:
|
|
126
|
+
print("Closing Launcher App!") # Debug
|
|
127
|
+
if result:
|
|
128
|
+
print(result)
|
|
129
|
+
wx.Exit()
|
|
130
|
+
print("Done!")
|
|
131
|
+
sys.exit(result)
|
|
132
|
+
|
|
133
|
+
def docs_main(args=sys.argv):
|
|
134
|
+
""" Get/Launch Docs."""
|
|
135
|
+
ensure_wx_app()
|
|
136
|
+
result = 0
|
|
137
|
+
print("Launch Docs for wxPython V%s" % wx.VERSION_STRING)
|
|
138
|
+
pd = get_paths_dict()
|
|
139
|
+
location = get_item(pd['wxDocs'], pd['Docs_URL'], pd['Cache'],
|
|
140
|
+
pd['Docs_Name'], pd['Ext'], forced="--force" in args)
|
|
141
|
+
if location:
|
|
142
|
+
location = os.path.join(location, 'docs', 'html', 'index.html')
|
|
143
|
+
location_url = urlparse.urljoin('file:', pathname2url(location))
|
|
144
|
+
print("Show Docs at:", location)
|
|
145
|
+
webbrowser.open(location_url)
|
|
146
|
+
else:
|
|
147
|
+
result = 'Unable to find and show the wxPython Documentation!'
|
|
148
|
+
report_error(result)
|
|
149
|
+
done(result)
|
|
150
|
+
|
|
151
|
+
def demo_main(args=sys.argv):
|
|
152
|
+
""" Get/Launch Demo."""
|
|
153
|
+
result = 0
|
|
154
|
+
ensure_wx_app()
|
|
155
|
+
print("Launch Demo for wxPython V%s" % wx.VERSION_STRING)
|
|
156
|
+
pd = get_paths_dict()
|
|
157
|
+
location = get_item(pd['wxDemo'], pd['Demo_URL'], pd['Cache'],
|
|
158
|
+
pd['Demo_Name'], pd['Ext'], forced="--force" in args)
|
|
159
|
+
if location:
|
|
160
|
+
cmds = [sys.executable, os.path.join(location, "demo", "demo.py")]
|
|
161
|
+
print("Launching", cmds[1])
|
|
162
|
+
pid = subprocess.Popen(cmds).pid
|
|
163
|
+
#subprocess.check_call(cmds) # Use instead for debug
|
|
164
|
+
print("Demo starting as PID %s - may take a few seconds!" % pid)
|
|
165
|
+
else:
|
|
166
|
+
result = 'Unable to find and start the wxPython Demo!'
|
|
167
|
+
report_error(result)
|
|
168
|
+
done(result)
|
|
169
|
+
|
|
170
|
+
def main(args=sys.argv):
|
|
171
|
+
""" Command line main."""
|
|
172
|
+
if len(args) > 1:
|
|
173
|
+
if "demo" in args[1].lower():
|
|
174
|
+
return demo_main()
|
|
175
|
+
elif "docs" in args[1].lower():
|
|
176
|
+
return docs_main()
|
|
177
|
+
#else:
|
|
178
|
+
print(__doc__)
|
|
179
|
+
#else:
|
|
180
|
+
#APP = wx.App()
|
|
181
|
+
|
|
182
|
+
if __name__ == "__main__":
|
|
183
|
+
main()
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
wx/xml.py
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# This file is generated by wxPython's SIP generator. Do not edit by hand.
|
|
2
|
+
#
|
|
3
|
+
# Copyright: (c) 2020 by Total Control Software
|
|
4
|
+
# License: wxWindows License
|
|
5
|
+
|
|
6
|
+
"""
|
|
7
|
+
Some simple XML classes for use with XRC.
|
|
8
|
+
|
|
9
|
+
For more advanced XML needs it would be better to use one of the XML packages
|
|
10
|
+
provided by Python.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from ._xml import *
|
|
14
|
+
|
|
15
|
+
import wx
|
|
16
|
+
|
|
17
|
+
XmlProperty = wx.deprecated(XmlAttribute, 'Use XmlProperty instead.')
|
|
18
|
+
|