py2docfx 0.1.13.dev2016723__py3-none-any.whl → 0.1.13.dev2021865__py3-none-any.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.
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/_modified.py +26 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -603
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/archive_util.py +48 -18
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/ccompiler.py +17 -1257
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/cmd.py +133 -41
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/bdist.py +19 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/bdist_dumb.py +2 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/bdist_rpm.py +6 -5
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build.py +8 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_clib.py +8 -7
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_ext.py +32 -13
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_py.py +10 -9
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +3 -14
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/clean.py +2 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/config.py +1 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install.py +22 -19
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install_data.py +4 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install_headers.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install_lib.py +11 -7
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install_scripts.py +4 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/sdist.py +22 -16
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compat/__init__.py +6 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +1391 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/cygwin.py +340 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/errors.py +24 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +614 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/{tests/test_ccompiler.py → compilers/C/tests/test_base.py} +9 -19
- py2docfx/venv/{venv1/Lib/site-packages/setuptools/_distutils/tests/test_cygwinccompiler.py → basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_cygwin.py} +7 -12
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/{tests/test_mingwccompiler.py → compilers/C/tests/test_mingw.py} +12 -20
- py2docfx/venv/{venv1/Lib/site-packages/setuptools/_distutils/tests/test_msvccompiler.py → basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_msvc.py} +11 -12
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/{tests/test_unixccompiler.py → compilers/C/tests/test_unix.py} +5 -5
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +409 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/zos.py +230 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/cygwinccompiler.py +20 -328
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/dist.py +148 -80
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/errors.py +11 -27
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/extension.py +19 -16
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/filelist.py +80 -15
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/spawn.py +22 -5
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/sysconfig.py +32 -7
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +13 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_sdist.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/unixccompiler.py +2 -401
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/util.py +38 -23
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/zosccompiler.py +2 -228
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_static.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/editable_wheel.py +3 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +2 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_py.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/unicode_utils.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/__init__.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/ado_consts.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/adodbapi.py +22 -26
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/apibase.py +3 -4
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_print.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_table_names.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/process_connect_string.py +7 -7
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/setup.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitest.py +21 -73
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitestconfig.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/dbapi20.py +11 -17
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/setuptestframework.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/isapi/install.py +8 -11
- py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_asynch.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_with_filter.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/isapi/simple.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/isapi/threaded_extension.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/basictimerapp.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/customprint.py +1 -3
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/demoutils.py +1 -3
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/cmdserver.py +2 -5
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/guidemo.py +14 -41
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/objdoc.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/demoutils.py +1 -3
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/flash.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxserialtest.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxtest.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/webbrowser.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/openGLDemo.py +57 -12
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/toolbar.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/configui.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgcon.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/debugger.py +7 -8
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/fail.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/ideoptions.py +7 -10
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/list.py +11 -8
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/login.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/DockingBar.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/app.py +19 -22
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dbgcommands.py +2 -3
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/ModuleBrowser.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/__init__.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/document.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/editor.py +6 -6
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/vss.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/help.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/interact.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpyapp.py +5 -7
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpydde.py +7 -2
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/scriptutils.py +4 -6
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/sgrepmdi.py +13 -22
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/startup.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/stdin.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/toolmenu.py +0 -2
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoIndent.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/CallTips.py +1 -3
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/activex.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/dialog.py +7 -10
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/IDLEenvironment.py +1 -5
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/bindings.py +4 -2
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/config.py +3 -5
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/configui.py +2 -3
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/document.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/formatter.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/keycodes.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/scintillacon.py +1178 -78
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/view.py +17 -21
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browser.py +6 -18
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/hierlist.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/_modified.py +26 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -603
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/archive_util.py +48 -18
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/ccompiler.py +17 -1257
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/cmd.py +133 -41
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/bdist.py +19 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/bdist_dumb.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/bdist_rpm.py +6 -5
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build.py +8 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_clib.py +8 -7
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_ext.py +32 -13
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_py.py +10 -9
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +3 -14
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/clean.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/config.py +1 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install.py +22 -19
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install_data.py +4 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install_headers.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install_lib.py +11 -7
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install_scripts.py +4 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/sdist.py +22 -16
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/__init__.py +6 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +1391 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/cygwin.py +340 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/errors.py +24 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +614 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/{tests/test_ccompiler.py → compilers/C/tests/test_base.py} +9 -19
- py2docfx/venv/{basevenv/Lib/site-packages/setuptools/_distutils/tests/test_cygwinccompiler.py → venv1/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_cygwin.py} +7 -12
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/{tests/test_mingwccompiler.py → compilers/C/tests/test_mingw.py} +12 -20
- py2docfx/venv/{basevenv/Lib/site-packages/setuptools/_distutils/tests/test_msvccompiler.py → venv1/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_msvc.py} +11 -12
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/{tests/test_unixccompiler.py → compilers/C/tests/test_unix.py} +5 -5
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +409 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/zos.py +230 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/cygwinccompiler.py +20 -328
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dist.py +148 -80
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/errors.py +11 -27
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/extension.py +19 -16
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/filelist.py +80 -15
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/spawn.py +22 -5
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/sysconfig.py +32 -7
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +13 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_sdist.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/unixccompiler.py +2 -401
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/util.py +38 -23
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/zosccompiler.py +2 -228
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_static.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/editable_wheel.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +2 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_py.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/unicode_utils.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtFormatMessage.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_push.py +8 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/GetSaveFileName.py +8 -8
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/c_extension/setup.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeclient.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeserver.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/getfilever.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/runproc.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/rastest.py +4 -6
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/GetTokenInformation.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/account_rights.py +0 -2
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/explicit_entries.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/get_policy_info.py +0 -3
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/list_rights.py +0 -2
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/localized_names.py +7 -2
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/query_information.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_audit.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_owner.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_policy_info.py +0 -3
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setkernelobjectsecurity.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setsecurityinfo.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setuserobjectsecurity.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/fetch_url.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/simple_auth.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/socket_server.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestService.py +10 -9
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestServiceClient.py +6 -3
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboardDemo.py +17 -5
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32comport_demo.py +32 -2
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32console_demo.py +1 -4
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_devicenotify.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_menu.py +60 -5
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_taskbar.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32netdemo.py +2 -5
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32ts_logoff_disconnected.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/testwnet.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/commctrl.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/netbios.py +8 -10
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_bootstrap.py +2 -10
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_testutil.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywintypes.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/regutil.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspi.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win2kras.py +14 -7
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32con.py +16 -35
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32cryptcon.py +1 -4
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32evtlogutil.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32gui_struct.py +6 -6
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhquery.py +10 -11
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhutil.py +5 -5
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32rcparser.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32serviceutil.py +4 -6
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32timezone.py +304 -121
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32verstamp.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/winerror.py +4926 -604
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/winxptheme.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/h2py.py +194 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_postinstall.py +733 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_testall.py +120 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/regsetup.py +4 -7
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/setup_d.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/test/handles.py +13 -5
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_clipboard.py +12 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_sspi.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32api.py +8 -4
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32clipboard.py +2 -3
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32cred.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32crypt.py +16 -3
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32file.py +24 -8
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32gui.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32guistruct.py +2 -5
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32inet.py +23 -6
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32net.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32ts.py +19 -0
- py2docfx/venv/venv1/Lib/site-packages/win32/winxpgui.py +3 -11
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/CLSIDToClass.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/__init__.py +97 -65
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/build.py +24 -24
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/combrowse.py +17 -33
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/dynamic.py +14 -14
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/gencache.py +30 -12
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/genpy.py +50 -98
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/makepy.py +12 -8
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/selecttlb.py +3 -4
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/util.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/dump_clipboard.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelAddin.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelRTDServer.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/iebutton.py +0 -3
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/ietoolbar.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/outlookAddin.py +1 -3
- py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegw.py +48 -56
- py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwenum.py +2 -6
- py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwparse.py +9 -11
- py2docfx/venv/venv1/Lib/site-packages/win32com/olectl.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/connect.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/dispatcher.py +20 -24
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/exception.py +8 -8
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/policy.py +4 -18
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/register.py +5 -6
- py2docfx/venv/venv1/Lib/site-packages/win32com/servers/dictionary.py +2 -5
- py2docfx/venv/venv1/Lib/site-packages/win32com/servers/interp.py +7 -7
- py2docfx/venv/venv1/Lib/site-packages/win32com/servers/test_pycomtest.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/GenTestScripts.py +2 -4
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/errorSemantics.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/pippo_server.py +1 -4
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testADOEvents.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAXScript.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDictionary.py +4 -3
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDynamic.py +3 -5
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExchange.py +2 -7
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGatewayAddresses.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testIterators.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOffice.py +40 -57
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOfficeEvents.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPersist.py +7 -7
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPippo.py +2 -3
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPyComTest.py +143 -7
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testServers.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testall.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testmakepy.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvb.py +12 -8
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/util.py +1 -3
- py2docfx/venv/venv1/Lib/site-packages/win32com/universal.py +1 -3
- py2docfx/venv/venv1/Lib/site-packages/win32com/util.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/scp.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/search.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditSecurity.py +1 -24
- py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditServiceSecurity.py +0 -20
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/adb.py +2 -8
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/codecontainer.py +16 -12
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/contexts.py +1 -3
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/debugger.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/documents.py +2 -3
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/dump.py +2 -4
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/expressions.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/util.py +7 -14
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/debug.py +2 -14
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/error.py +4 -5
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/framework.py +5 -5
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pydumper.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript.py +5 -10
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/scriptdispatch.py +3 -4
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/axsite.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/leakTest.py +2 -3
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost4Dbg.py +0 -3
- py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/test_bits.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/demo/filterDemo.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/demos/mapisend.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/emsabtags.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapitags.py +1 -3
- py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapiutil.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/test/testpropsys.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IFileOperationProgressSink.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/ITransferAdviseSink.py +5 -3
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/column_provider.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/copy_hook.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/empty_volume_cache.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/folder_view.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/icon_handler.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/shell_view.py +4 -5
- py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_2.py +0 -1
- py2docfx/venv/venv1/Scripts/pywin32_postinstall.py +77 -122
- py2docfx/venv/venv1/Scripts/pywin32_testall.py +4 -9
- {py2docfx-0.1.13.dev2016723.dist-info → py2docfx-0.1.13.dev2021865.dist-info}/METADATA +1 -1
- {py2docfx-0.1.13.dev2016723.dist-info → py2docfx-0.1.13.dev2021865.dist-info}/RECORD +342 -330
- py2docfx/venv/venv1/Lib/site-packages/docs/conf.py +0 -384
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/mdi_pychecker.py +0 -850
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testNetscape.py +0 -24
- {py2docfx-0.1.13.dev2016723.dist-info → py2docfx-0.1.13.dev2021865.dist-info}/WHEEL +0 -0
- {py2docfx-0.1.13.dev2016723.dist-info → py2docfx-0.1.13.dev2021865.dist-info}/top_level.txt +0 -0
@@ -16,11 +16,11 @@ The makepy command line etc handling is also getting large enough in its own rig
|
|
16
16
|
import os
|
17
17
|
import sys
|
18
18
|
import time
|
19
|
+
from itertools import chain
|
19
20
|
|
20
21
|
import pythoncom
|
21
|
-
import win32com
|
22
22
|
|
23
|
-
from . import build
|
23
|
+
from . import build, gencache
|
24
24
|
|
25
25
|
makepy_version = "0.5.01" # Written to generated file.
|
26
26
|
|
@@ -90,14 +90,14 @@ def MakeEventMethodName(eventName):
|
|
90
90
|
|
91
91
|
def WriteSinkEventMap(obj, stream):
|
92
92
|
print("\t_dispid_to_func_ = {", file=stream)
|
93
|
-
for
|
94
|
-
|
95
|
-
|
96
|
-
|
93
|
+
for entry in chain(
|
94
|
+
obj.propMapGet.values(),
|
95
|
+
obj.propMapPut.values(),
|
96
|
+
obj.mapFuncs.values(),
|
97
97
|
):
|
98
|
-
|
98
|
+
memid = entry.desc.memid
|
99
99
|
print(
|
100
|
-
'\t\t%9d : "%s",' % (
|
100
|
+
'\t\t%9d : "%s",' % (memid, MakeEventMethodName(entry.names[0])),
|
101
101
|
file=stream,
|
102
102
|
)
|
103
103
|
print("\t\t}", file=stream)
|
@@ -112,7 +112,7 @@ class WritableItem:
|
|
112
112
|
return self.order < other.order
|
113
113
|
|
114
114
|
def __repr__(self):
|
115
|
-
return "OleItem: doc
|
115
|
+
return f"OleItem: doc={self.doc!r}, order={self.order}"
|
116
116
|
|
117
117
|
|
118
118
|
class RecordItem(build.OleItem, WritableItem):
|
@@ -215,9 +215,7 @@ class EnumerationItem(build.OleItem, WritableItem):
|
|
215
215
|
num = 0
|
216
216
|
enumName = self.doc[0]
|
217
217
|
# Write in name alpha order
|
218
|
-
|
219
|
-
names.sort()
|
220
|
-
for name in names:
|
218
|
+
for name in sorted(self.mapVars):
|
221
219
|
entry = self.mapVars[name]
|
222
220
|
vdesc = entry.desc
|
223
221
|
if vdesc[4] == pythoncom.VAR_CONST:
|
@@ -234,10 +232,7 @@ class EnumerationItem(build.OleItem, WritableItem):
|
|
234
232
|
# Sanitize it, in case the repr contains its own quotes. (??? line breaks too ???)
|
235
233
|
use = use.replace('"', "'")
|
236
234
|
use = (
|
237
|
-
'"'
|
238
|
-
+ use
|
239
|
-
+ '"'
|
240
|
-
+ " # This VARIANT type cannot be converted automatically"
|
235
|
+
f'"{use}" # This VARIANT type cannot be converted automatically'
|
241
236
|
)
|
242
237
|
print(
|
243
238
|
"\t%-30s=%-10s # from enum %s"
|
@@ -343,11 +338,11 @@ class DispatchItem(build.DispatchItem, WritableItem):
|
|
343
338
|
)
|
344
339
|
except pythoncom.com_error:
|
345
340
|
pass
|
346
|
-
print("\tCLSID =
|
341
|
+
print(f"\tCLSID = {self.clsid!r}", file=stream)
|
347
342
|
if self.coclass_clsid is None:
|
348
343
|
print("\tcoclass_clsid = None", file=stream)
|
349
344
|
else:
|
350
|
-
print("\tcoclass_clsid =
|
345
|
+
print(f"\tcoclass_clsid = {self.coclass_clsid!r}", file=stream)
|
351
346
|
print(file=stream)
|
352
347
|
self.bWritten = 1
|
353
348
|
|
@@ -365,11 +360,11 @@ class DispatchItem(build.DispatchItem, WritableItem):
|
|
365
360
|
)
|
366
361
|
except pythoncom.com_error:
|
367
362
|
pass
|
368
|
-
print("\tCLSID = CLSID_Sink =
|
363
|
+
print(f"\tCLSID = CLSID_Sink = {self.clsid!r}", file=stream)
|
369
364
|
if self.coclass_clsid is None:
|
370
365
|
print("\tcoclass_clsid = None", file=stream)
|
371
366
|
else:
|
372
|
-
print("\tcoclass_clsid =
|
367
|
+
print(f"\tcoclass_clsid = {self.coclass_clsid!r}", file=stream)
|
373
368
|
print("\t_public_methods_ = [] # For COM Server support", file=stream)
|
374
369
|
WriteSinkEventMap(self, stream)
|
375
370
|
print(file=stream)
|
@@ -419,10 +414,8 @@ class DispatchItem(build.DispatchItem, WritableItem):
|
|
419
414
|
"\t# If you create handlers, they should have the following prototypes:",
|
420
415
|
file=stream,
|
421
416
|
)
|
422
|
-
for
|
423
|
-
|
424
|
-
+ list(self.propMapPut.items())
|
425
|
-
+ list(self.mapFuncs.items())
|
417
|
+
for entry in chain(
|
418
|
+
self.propMapGet.values(), self.propMapPut.values(), self.mapFuncs.values()
|
426
419
|
):
|
427
420
|
fdesc = entry.desc
|
428
421
|
methName = MakeEventMethodName(entry.names[0])
|
@@ -449,17 +442,14 @@ class DispatchItem(build.DispatchItem, WritableItem):
|
|
449
442
|
|
450
443
|
def WriteClassBody(self, generator):
|
451
444
|
stream = generator.file
|
452
|
-
# Write in alpha order.
|
453
|
-
names = list(self.mapFuncs.keys())
|
454
|
-
names.sort()
|
455
445
|
specialItems = {
|
456
446
|
"count": None,
|
457
447
|
"item": None,
|
458
448
|
"value": None,
|
459
449
|
"_newenum": None,
|
460
450
|
} # If found, will end up with (entry, invoke_tupe)
|
461
|
-
|
462
|
-
for name in
|
451
|
+
# Write in alpha order.
|
452
|
+
for name in sorted(self.mapFuncs):
|
463
453
|
entry = self.mapFuncs[name]
|
464
454
|
assert entry.desc.desckind == pythoncom.DESCKIND_FUNCDESC
|
465
455
|
# skip [restricted] methods, unless it is the
|
@@ -498,9 +488,7 @@ class DispatchItem(build.DispatchItem, WritableItem):
|
|
498
488
|
for line in ret:
|
499
489
|
print(line, file=stream)
|
500
490
|
print("\t_prop_map_get_ = {", file=stream)
|
501
|
-
|
502
|
-
names.sort()
|
503
|
-
for key in names:
|
491
|
+
for key in sorted(self.propMap):
|
504
492
|
entry = self.propMap[key]
|
505
493
|
if generator.bBuildHidden or not entry.hidden:
|
506
494
|
resultName = entry.GetResultName()
|
@@ -545,9 +533,7 @@ class DispatchItem(build.DispatchItem, WritableItem):
|
|
545
533
|
f'\t\t"{build.MakePublicAttributeName(key)}": {mapEntry},',
|
546
534
|
file=stream,
|
547
535
|
)
|
548
|
-
|
549
|
-
names.sort()
|
550
|
-
for key in names:
|
536
|
+
for key in sorted(self.propMapGet):
|
551
537
|
entry = self.propMapGet[key]
|
552
538
|
if generator.bBuildHidden or not entry.hidden:
|
553
539
|
if entry.GetResultName():
|
@@ -597,9 +583,7 @@ class DispatchItem(build.DispatchItem, WritableItem):
|
|
597
583
|
|
598
584
|
print("\t_prop_map_put_ = {", file=stream)
|
599
585
|
# These are "Invoke" args
|
600
|
-
|
601
|
-
names.sort()
|
602
|
-
for key in names:
|
586
|
+
for key in sorted(self.propMap):
|
603
587
|
entry = self.propMap[key]
|
604
588
|
if generator.bBuildHidden or not entry.hidden:
|
605
589
|
lkey = key.lower()
|
@@ -621,9 +605,7 @@ class DispatchItem(build.DispatchItem, WritableItem):
|
|
621
605
|
file=stream,
|
622
606
|
)
|
623
607
|
|
624
|
-
|
625
|
-
names.sort()
|
626
|
-
for key in names:
|
608
|
+
for key in sorted(self.propMapPut):
|
627
609
|
entry = self.propMapPut[key]
|
628
610
|
if generator.bBuildHidden or not entry.hidden:
|
629
611
|
details = entry.desc
|
@@ -806,14 +788,14 @@ class CoClassItem(build.OleItem, WritableItem):
|
|
806
788
|
if item.bWritten:
|
807
789
|
key = item.python_name
|
808
790
|
else:
|
809
|
-
key =
|
810
|
-
print("\t\t
|
791
|
+
key = f"'{item.clsid}'" # really the iid.
|
792
|
+
print(f"\t\t{key},", file=stream)
|
811
793
|
print("\t]", file=stream)
|
812
794
|
if defItem:
|
813
795
|
if defItem.bWritten:
|
814
796
|
defName = defItem.python_name
|
815
797
|
else:
|
816
|
-
defName =
|
798
|
+
defName = f"'{defItem.clsid}'" # really the iid.
|
817
799
|
print(f"\tdefault_source = {defName}", file=stream)
|
818
800
|
print("\tcoclass_interfaces = [", file=stream)
|
819
801
|
defItem = None
|
@@ -824,14 +806,14 @@ class CoClassItem(build.OleItem, WritableItem):
|
|
824
806
|
if item.bWritten:
|
825
807
|
key = item.python_name
|
826
808
|
else:
|
827
|
-
key =
|
809
|
+
key = f"'{item.clsid}'" # really the iid.
|
828
810
|
print(f"\t\t{key},", file=stream)
|
829
811
|
print("\t]", file=stream)
|
830
812
|
if defItem:
|
831
813
|
if defItem.bWritten:
|
832
814
|
defName = defItem.python_name
|
833
815
|
else:
|
834
|
-
defName =
|
816
|
+
defName = f"'{defItem.clsid}'" # really the iid.
|
835
817
|
print(f"\tdefault_interface = {defName}", file=stream)
|
836
818
|
self.bWritten = 1
|
837
819
|
print(file=stream)
|
@@ -983,9 +965,7 @@ class Generator:
|
|
983
965
|
return oleItem, vtableItem
|
984
966
|
|
985
967
|
def BuildOleItemsFromType(self):
|
986
|
-
assert
|
987
|
-
self.bBuildHidden
|
988
|
-
), "This code doesn't look at the hidden flag - I thought everyone set it true!?!?!"
|
968
|
+
assert self.bBuildHidden, "This code doesn't look at the hidden flag - I thought everyone set it true!?!?!"
|
989
969
|
oleItems = {}
|
990
970
|
enumItems = {}
|
991
971
|
recordItems = {}
|
@@ -1036,35 +1016,15 @@ class Generator:
|
|
1036
1016
|
|
1037
1017
|
def finish_writer(self, filename, f, worked):
|
1038
1018
|
f.close()
|
1039
|
-
try:
|
1040
|
-
os.unlink(filename)
|
1041
|
-
except OSError:
|
1042
|
-
pass
|
1043
1019
|
temp_filename = self.get_temp_filename(filename)
|
1044
1020
|
if worked:
|
1021
|
+
os.replace(temp_filename, filename)
|
1022
|
+
else:
|
1045
1023
|
try:
|
1046
|
-
os.
|
1024
|
+
os.unlink(filename)
|
1025
|
+
os.unlink(temp_filename)
|
1047
1026
|
except OSError:
|
1048
|
-
|
1049
|
-
# file in between our calls to os.unlink and os.rename. So try
|
1050
|
-
# again, but only once.
|
1051
|
-
# There are still some race conditions, but they seem difficult to
|
1052
|
-
# fix, and they probably occur much less frequently:
|
1053
|
-
# * The os.rename failure could occur more than once if more than
|
1054
|
-
# two processes are involved.
|
1055
|
-
# * In between os.unlink and os.rename, another process could try
|
1056
|
-
# to import the module, having seen that it already exists.
|
1057
|
-
# * If another process starts a COM server while we are still
|
1058
|
-
# generating __init__.py, that process sees that the folder
|
1059
|
-
# already exists and assumes that __init__.py is already there
|
1060
|
-
# as well.
|
1061
|
-
try:
|
1062
|
-
os.unlink(filename)
|
1063
|
-
except OSError:
|
1064
|
-
pass
|
1065
|
-
os.rename(temp_filename, filename)
|
1066
|
-
else:
|
1067
|
-
os.unlink(temp_filename)
|
1027
|
+
pass
|
1068
1028
|
|
1069
1029
|
def get_temp_filename(self, filename):
|
1070
1030
|
return "%s.%d.temp" % (filename, os.getpid())
|
@@ -1111,7 +1071,7 @@ class Generator:
|
|
1111
1071
|
|
1112
1072
|
print(build._makeDocString(docDesc), file=self.file)
|
1113
1073
|
|
1114
|
-
print("makepy_version =
|
1074
|
+
print(f"makepy_version = {makepy_version!r}", file=self.file)
|
1115
1075
|
print(f"python_version = 0x{sys.hexversion:x}", file=self.file)
|
1116
1076
|
print(file=self.file)
|
1117
1077
|
print(
|
@@ -1133,10 +1093,10 @@ class Generator:
|
|
1133
1093
|
print("defaultNamedNotOptArg=pythoncom.Empty", file=self.file)
|
1134
1094
|
print("defaultUnnamedArg=pythoncom.Empty", file=self.file)
|
1135
1095
|
print(file=self.file)
|
1136
|
-
print("CLSID =
|
1137
|
-
print("MajorVersion =
|
1138
|
-
print("MinorVersion =
|
1139
|
-
print("LibraryFlags =
|
1096
|
+
print(f"CLSID = {la[0]!r}", file=self.file)
|
1097
|
+
print(f"MajorVersion = {la[3]}", file=self.file)
|
1098
|
+
print(f"MinorVersion = {la[4]}", file=self.file)
|
1099
|
+
print(f"LibraryFlags = {la[5]}", file=self.file)
|
1140
1100
|
print("LCID = " + hex(la[1]), file=self.file)
|
1141
1101
|
print(file=self.file)
|
1142
1102
|
|
@@ -1160,10 +1120,8 @@ class Generator:
|
|
1160
1120
|
# Generate the constants and their support.
|
1161
1121
|
if enumItems:
|
1162
1122
|
print("class constants:", file=stream)
|
1163
|
-
items = list(enumItems.values())
|
1164
|
-
items.sort()
|
1165
1123
|
num_written = 0
|
1166
|
-
for oleitem in
|
1124
|
+
for oleitem in sorted(enumItems.values()):
|
1167
1125
|
num_written += oleitem.WriteEnumerationItems(stream)
|
1168
1126
|
self.progress.Tick()
|
1169
1127
|
if not num_written:
|
@@ -1171,15 +1129,11 @@ class Generator:
|
|
1171
1129
|
print(file=stream)
|
1172
1130
|
|
1173
1131
|
if self.generate_type == GEN_FULL:
|
1174
|
-
|
1175
|
-
items.sort()
|
1176
|
-
for oleitem in items:
|
1132
|
+
for oleitem in sorted(filter(None, oleItems.values())):
|
1177
1133
|
self.progress.Tick()
|
1178
1134
|
oleitem.WriteClass(self)
|
1179
1135
|
|
1180
|
-
|
1181
|
-
items.sort()
|
1182
|
-
for oleitem in items:
|
1136
|
+
for oleitem in sorted(vtableItems.values()):
|
1183
1137
|
self.progress.Tick()
|
1184
1138
|
oleitem.WriteClass(self)
|
1185
1139
|
else:
|
@@ -1187,18 +1141,15 @@ class Generator:
|
|
1187
1141
|
|
1188
1142
|
print("RecordMap = {", file=stream)
|
1189
1143
|
for record in recordItems.values():
|
1144
|
+
record_str = f"{record.doc[0]!r}: '{record.clsid}',"
|
1190
1145
|
if record.clsid == pythoncom.IID_NULL:
|
1191
1146
|
print(
|
1192
|
-
"\t###{}
|
1193
|
-
|
1194
|
-
),
|
1147
|
+
f"\t###{record_str}",
|
1148
|
+
"# Record disabled because it doesn't have a non-null GUID",
|
1195
1149
|
file=stream,
|
1196
1150
|
)
|
1197
1151
|
else:
|
1198
|
-
print(
|
1199
|
-
f"\t{repr(record.doc[0])}: {repr(str(record.clsid))},",
|
1200
|
-
file=stream,
|
1201
|
-
)
|
1152
|
+
print(f"\t{record_str}", file=stream)
|
1202
1153
|
print("}", file=stream)
|
1203
1154
|
print(file=stream)
|
1204
1155
|
|
@@ -1208,7 +1159,7 @@ class Generator:
|
|
1208
1159
|
for item in oleItems.values():
|
1209
1160
|
if item is not None and item.bWritten:
|
1210
1161
|
print(
|
1211
|
-
f"\t'{
|
1162
|
+
f"\t'{item.clsid}' : {item.python_name},",
|
1212
1163
|
file=stream,
|
1213
1164
|
)
|
1214
1165
|
print("}", file=stream)
|
@@ -1230,7 +1181,7 @@ class Generator:
|
|
1230
1181
|
for item in oleItems.values():
|
1231
1182
|
if item is not None:
|
1232
1183
|
print(
|
1233
|
-
f"\t'{
|
1184
|
+
f"\t'{item.clsid}' : {item.python_name!r},",
|
1234
1185
|
file=stream,
|
1235
1186
|
)
|
1236
1187
|
print("}", file=stream)
|
@@ -1355,7 +1306,8 @@ class Generator:
|
|
1355
1306
|
self.progress.Tick()
|
1356
1307
|
worked = True
|
1357
1308
|
finally:
|
1358
|
-
|
1309
|
+
with gencache.ModuleMutex(self.base_mod_name.split(".")[-1]):
|
1310
|
+
self.finish_writer(out_name, self.file, worked)
|
1359
1311
|
self.file = None
|
1360
1312
|
finally:
|
1361
1313
|
self.progress.Finished()
|
@@ -15,11 +15,12 @@
|
|
15
15
|
"""Generate a .py file from an OLE TypeLibrary file.
|
16
16
|
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
This module is concerned only with the actual writing of
|
19
|
+
a .py file. It draws on the @build@ module, which builds
|
20
|
+
the knowledge of a COM interface.
|
21
21
|
|
22
22
|
"""
|
23
|
+
|
23
24
|
usageHelp = """ \
|
24
25
|
|
25
26
|
Usage:
|
@@ -292,10 +293,11 @@ def GenerateFromTypeLibSpec(
|
|
292
293
|
for typelib, info in typelibs:
|
293
294
|
gen = genpy.Generator(typelib, info.dll, progress, bBuildHidden=bBuildHidden)
|
294
295
|
|
296
|
+
this_name = gencache.GetGeneratedFileName(
|
297
|
+
info.clsid, info.lcid, info.major, info.minor
|
298
|
+
)
|
299
|
+
|
295
300
|
if file is None:
|
296
|
-
this_name = gencache.GetGeneratedFileName(
|
297
|
-
info.clsid, info.lcid, info.major, info.minor
|
298
|
-
)
|
299
301
|
full_name = os.path.join(gencache.GetGeneratePath(), this_name)
|
300
302
|
if bForDemand:
|
301
303
|
try:
|
@@ -326,7 +328,8 @@ def GenerateFromTypeLibSpec(
|
|
326
328
|
worked = True
|
327
329
|
finally:
|
328
330
|
if file is None:
|
329
|
-
|
331
|
+
with gencache.ModuleMutex(this_name):
|
332
|
+
gen.finish_writer(outputName, fileUse, worked)
|
330
333
|
importlib.invalidate_caches()
|
331
334
|
if bToGenDir:
|
332
335
|
progress.SetDescription("Importing module")
|
@@ -371,7 +374,8 @@ def GenerateChildFromTypeLibSpec(
|
|
371
374
|
gen.generate_child(child, dir_path_name)
|
372
375
|
progress.SetDescription("Importing module")
|
373
376
|
importlib.invalidate_caches()
|
374
|
-
|
377
|
+
with gencache.ModuleMutex(dir_name):
|
378
|
+
__import__("win32com.gen_py." + dir_name + "." + child)
|
375
379
|
progress.Close()
|
376
380
|
|
377
381
|
|
@@ -1,5 +1,4 @@
|
|
1
|
-
"""Utilities for selecting and enumerating the Type Libraries installed on the system
|
2
|
-
"""
|
1
|
+
"""Utilities for selecting and enumerating the Type Libraries installed on the system"""
|
3
2
|
|
4
3
|
import pythoncom
|
5
4
|
import win32api
|
@@ -114,8 +113,8 @@ def EnumTlbs(excludeFlags=0):
|
|
114
113
|
# The Resolve() method on the TypelibSpec does this.
|
115
114
|
# For this reason, keep the version numbers as strings - that
|
116
115
|
# way we can't be wrong! Let code that really needs an int to work
|
117
|
-
# out what to do. FWIW,
|
118
|
-
# pretty clear that they *should* be hex.
|
116
|
+
# out what to do. FWIW, https://www.betaarchive.com/wiki/index.php?title=Microsoft_KB_Archive/816970
|
117
|
+
# is pretty clear that they *should* be hex.
|
119
118
|
major = major_minor[0]
|
120
119
|
minor = major_minor[1]
|
121
120
|
key3 = win32api.RegOpenKey(key2, str(version))
|
@@ -11,7 +11,7 @@ for f in formats:
|
|
11
11
|
val = getattr(win32con, f)
|
12
12
|
format_name_map[val] = f
|
13
13
|
|
14
|
-
tymeds = [attr for attr in pythoncom.__dict__
|
14
|
+
tymeds = [attr for attr in pythoncom.__dict__ if attr.startswith("TYMED_")]
|
15
15
|
|
16
16
|
|
17
17
|
def DumpClipboard():
|
@@ -50,7 +50,7 @@ import sys
|
|
50
50
|
|
51
51
|
import pythoncom
|
52
52
|
from win32com import universal
|
53
|
-
from win32com.client import
|
53
|
+
from win32com.client import DispatchWithEvents, constants, gencache
|
54
54
|
|
55
55
|
# Support for COM objects we use.
|
56
56
|
gencache.EnsureModule(
|
@@ -3,7 +3,7 @@
|
|
3
3
|
This module is a functional example of how to implement the IRTDServer interface
|
4
4
|
in python, using the pywin32 extensions. Further details, about this interface
|
5
5
|
and it can be found at:
|
6
|
-
|
6
|
+
https://learn.microsoft.com/en-us/previous-versions/office/developer/office-xp/aa140060(v=office.10)
|
7
7
|
"""
|
8
8
|
|
9
9
|
# Copyright (c) 2003-2004 by Chris Nilsson <chris@slort.org>
|
@@ -30,8 +30,6 @@ import pythoncom
|
|
30
30
|
import win32api
|
31
31
|
import win32com
|
32
32
|
import win32com.server.register
|
33
|
-
from win32com import universal
|
34
|
-
from win32com.client import Dispatch, DispatchWithEvents, constants, gencache, getevents
|
35
33
|
|
36
34
|
# This demo uses 'print' - use win32traceutil to see it if we have no
|
37
35
|
# console.
|
@@ -40,7 +38,6 @@ try:
|
|
40
38
|
except win32api.error:
|
41
39
|
import win32traceutil
|
42
40
|
|
43
|
-
import array
|
44
41
|
|
45
42
|
from win32com.axcontrol import axcontrol
|
46
43
|
|
@@ -219,7 +219,7 @@ class IEToolbar:
|
|
219
219
|
|
220
220
|
def on_first_button(self):
|
221
221
|
print("first!")
|
222
|
-
self.webbrowser.Navigate2("
|
222
|
+
self.webbrowser.Navigate2("https://github.com/mhammond/pywin32")
|
223
223
|
|
224
224
|
def on_second_button(self):
|
225
225
|
print("second!")
|
@@ -58,9 +58,7 @@ class FolderEvent:
|
|
58
58
|
try:
|
59
59
|
print("An item was added to the inbox with subject:", item.Subject)
|
60
60
|
except AttributeError:
|
61
|
-
print(
|
62
|
-
"An item was added to the inbox, but it has no subject! - ", repr(item)
|
63
|
-
)
|
61
|
+
print(f"An item was added to the inbox, but it has no subject! - {item!r}")
|
64
62
|
|
65
63
|
|
66
64
|
class OutlookAddin:
|
@@ -1,48 +1,48 @@
|
|
1
1
|
"""Utility functions for writing out gateway C++ files
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
3
|
+
This module will generate a C++/Python binding for a specific COM
|
4
|
+
interface.
|
5
|
+
|
6
|
+
Can be run from command line (passing required arguments) or the old way
|
7
|
+
(start Python, import this module, change to the directory where the generated code
|
8
|
+
should be written, and run the public function).
|
9
|
+
|
10
|
+
This module is capable of generating both 'Interfaces' (ie, Python
|
11
|
+
client side support for the interface) and 'Gateways' (ie, Python
|
12
|
+
server side support for the interface). Many COM interfaces are useful
|
13
|
+
both as Client and Server. Other interfaces, however, really only make
|
14
|
+
sense to implement one side or the other. For example, it would be pointless
|
15
|
+
for Python to implement Server side for 'IRunningObjectTable', unless we were
|
16
|
+
implementing core COM for an operating system in Python (hey - now there's an idea!)
|
17
|
+
|
18
|
+
Most COM interface code is totally boiler-plate - it consists of
|
19
|
+
converting arguments, dispatching the call to Python, and processing
|
20
|
+
any result values.
|
21
|
+
|
22
|
+
This module automates the generation of such code. It has the ability to
|
23
|
+
parse a .h file generated by the MIDL tool (ie, almost all COM .h files)
|
24
|
+
and build almost totally complete C++ code.
|
25
|
+
|
26
|
+
The module understands some of the well known data types, and how to
|
27
|
+
convert them. There are only a couple of places where hand-editing is
|
28
|
+
necessary, as detailed below:
|
29
|
+
|
30
|
+
unsupported types -- If a type is not known, the generator will
|
31
|
+
pretty much ignore it, but write a comment to the generated code. You
|
32
|
+
may want to add custom support for this type. In some cases, C++ compile errors
|
33
|
+
will result. These are intentional - generating code to remove these errors would
|
34
|
+
imply a false sense of security that the generator has done the right thing.
|
35
|
+
|
36
|
+
other return policies -- By default, Python never sees the return SCODE from
|
37
|
+
a COM function. The interface usually returns None if OK, else a COM exception
|
38
|
+
if "FAILED(scode)" is TRUE. You may need to change this if:
|
39
|
+
* EXCEPINFO is passed to the COM function. This is not detected and handled
|
40
|
+
* For some reason Python should always see the result SCODE, even if it
|
41
|
+
did fail or succeed. For example, some functions return a BOOLEAN result
|
42
|
+
in the SCODE, meaning Python should always see it.
|
43
|
+
* FAILED(scode) for the interface still has valid data to return (by default,
|
44
|
+
the code generated does not process the return values, and raise an exception
|
45
|
+
to Python/COM
|
46
46
|
"""
|
47
47
|
|
48
48
|
import argparse
|
@@ -61,7 +61,7 @@ def make_framework_support(
|
|
61
61
|
):
|
62
62
|
"""Generate C++ code for a Python Interface and Gateway
|
63
63
|
|
64
|
-
header_file_name -- The full path to the .
|
64
|
+
header_file_name -- The full path to the .h file which defines the interface.
|
65
65
|
interface_name -- The name of the interface to search for, and to generate.
|
66
66
|
bMakeInterface = 1 -- Should interface (ie, client) support be generated.
|
67
67
|
bMakeGatewayInterface = 1 -- Should gateway (ie, server) support be generated.
|
@@ -202,9 +202,7 @@ Py{name}::~Py{name}()
|
|
202
202
|
return ({name} *)Py{base}::GetI(self);
|
203
203
|
}}
|
204
204
|
|
205
|
-
""".format(
|
206
|
-
**interface.__dict__
|
207
|
-
)
|
205
|
+
""".format(**interface.__dict__)
|
208
206
|
)
|
209
207
|
|
210
208
|
ptr = re.sub(r"[a-z]", "", interface.name)
|
@@ -219,9 +217,7 @@ PyObject *Py{interfacename}::{method}(PyObject *self, PyObject *args)
|
|
219
217
|
{interfacename} *p{ptr} = GetI(self);
|
220
218
|
if ( p{ptr} == NULL )
|
221
219
|
return NULL;
|
222
|
-
""".format(
|
223
|
-
**strdict
|
224
|
-
)
|
220
|
+
""".format(**strdict)
|
225
221
|
)
|
226
222
|
argsParseTuple = argsCOM = formatChars = codePost = codePobjects = (
|
227
223
|
codeCobjects
|
@@ -294,9 +290,7 @@ PyObject *Py{interfacename}::{method}(PyObject *self, PyObject *args)
|
|
294
290
|
{cleanup_gil}
|
295
291
|
if ( FAILED(hr) )
|
296
292
|
return PyCom_BuildPyException(hr, p{ptr}, IID_{interfacename} );
|
297
|
-
""".format(
|
298
|
-
**strdict
|
299
|
-
)
|
293
|
+
""".format(**strdict)
|
300
294
|
)
|
301
295
|
codePre = codePost = formatChars = codeVarsPass = codeDecl = ""
|
302
296
|
for arg in method.args:
|
@@ -348,9 +342,7 @@ PyComTypeObject Py{name}::type("Py{name}",
|
|
348
342
|
sizeof(Py{name}),
|
349
343
|
Py{name}_methods,
|
350
344
|
GET_PYCOM_CTOR(Py{name}));
|
351
|
-
""".format(
|
352
|
-
**locals()
|
353
|
-
)
|
345
|
+
""".format(**locals())
|
354
346
|
)
|
355
347
|
|
356
348
|
|