py2docfx 0.1.15.dev2025736__py3-none-any.whl → 0.1.15.dev2038852__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/docfx_yaml/process_doctree.py +34 -21
- py2docfx/docfx_yaml/tests/test_method_arguments.py +7 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_core_metadata.py +21 -5
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/__init__.py +27 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/util.py +7 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_normalization.py +29 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +48 -11
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +115 -9
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/msvc.py +12 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_database.py +22 -4
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +82 -35
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/builder.py +4 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/containers.py +13 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/decoder.py +62 -115
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_edition_defaults.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_message.py +15 -18
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/testing_refleaks.py +4 -1
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/type_checkers.py +5 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/well_known_types.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/json_format.py +25 -9
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message.py +26 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message_factory.py +0 -63
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto.py +38 -1
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto_text.py +129 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/reflection.py +0 -49
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/symbol_database.py +0 -18
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_format.py +8 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/unknown_fields.py +3 -4
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/msal/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/msal/application.py +51 -17
- py2docfx/venv/venv1/Lib/site-packages/msal/broker.py +18 -4
- py2docfx/venv/venv1/Lib/site-packages/msal/cloudshell.py +5 -1
- py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +5 -4
- py2docfx/venv/venv1/Lib/site-packages/msal/sku.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/token_cache.py +31 -10
- py2docfx/venv/venv1/Lib/site-packages/msal_extensions/__init__.py +2 -3
- py2docfx/venv/venv1/Lib/site-packages/msal_extensions/cache_lock.py +4 -1
- py2docfx/venv/venv1/Lib/site-packages/msal_extensions/filelock.py +62 -0
- py2docfx/venv/venv1/Lib/site-packages/msal_extensions/libsecret.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/msal_extensions/token_cache.py +7 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_core_metadata.py +21 -5
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/__init__.py +27 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/util.py +7 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py +29 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +48 -11
- py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
- py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +115 -9
- py2docfx/venv/venv1/Lib/site-packages/setuptools/msvc.py +12 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
- {py2docfx-0.1.15.dev2025736.dist-info → py2docfx-0.1.15.dev2038852.dist-info}/METADATA +1 -1
- {py2docfx-0.1.15.dev2025736.dist-info → py2docfx-0.1.15.dev2038852.dist-info}/RECORD +136 -593
- py2docfx/docfx_yaml/tests/test_process_doctree.py +0 -120
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/__init__.py +0 -82
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/ado_consts.py +0 -283
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/adodbapi.py +0 -1153
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/apibase.py +0 -723
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_print.py +0 -72
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_table_names.py +0 -21
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_read.py +0 -41
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_write.py +0 -41
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/is64bit.py +0 -34
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/process_connect_string.py +0 -137
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/schema_table.py +0 -16
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/setup.py +0 -68
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitest.py +0 -1547
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitestconfig.py +0 -184
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/dbapi20.py +0 -879
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/is64bit.py +0 -34
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/setuptestframework.py +0 -98
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/test_adodbapi_dbapi20.py +0 -195
- py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/tryconnection.py +0 -30
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/_parameterized.py +0 -420
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/service.py +0 -213
- py2docfx/venv/venv1/Lib/site-packages/isapi/__init__.py +0 -39
- py2docfx/venv/venv1/Lib/site-packages/isapi/install.py +0 -809
- py2docfx/venv/venv1/Lib/site-packages/isapi/isapicon.py +0 -121
- py2docfx/venv/venv1/Lib/site-packages/isapi/samples/advanced.py +0 -218
- py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector.py +0 -116
- py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_asynch.py +0 -85
- py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_with_filter.py +0 -162
- py2docfx/venv/venv1/Lib/site-packages/isapi/samples/test.py +0 -195
- py2docfx/venv/venv1/Lib/site-packages/isapi/simple.py +0 -73
- py2docfx/venv/venv1/Lib/site-packages/isapi/test/extension_simple.py +0 -114
- py2docfx/venv/venv1/Lib/site-packages/isapi/threaded_extension.py +0 -191
- py2docfx/venv/venv1/Lib/site-packages/portalocker/__about__.py +0 -6
- py2docfx/venv/venv1/Lib/site-packages/portalocker/__init__.py +0 -79
- py2docfx/venv/venv1/Lib/site-packages/portalocker/__main__.py +0 -122
- py2docfx/venv/venv1/Lib/site-packages/portalocker/constants.py +0 -59
- py2docfx/venv/venv1/Lib/site-packages/portalocker/exceptions.py +0 -27
- py2docfx/venv/venv1/Lib/site-packages/portalocker/portalocker.py +0 -154
- py2docfx/venv/venv1/Lib/site-packages/portalocker/redis.py +0 -236
- py2docfx/venv/venv1/Lib/site-packages/portalocker/utils.py +0 -569
- py2docfx/venv/venv1/Lib/site-packages/pythoncom.py +0 -4
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/basictimerapp.py +0 -258
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/customprint.py +0 -183
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/demoutils.py +0 -63
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dlgappdemo.py +0 -51
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dojobapp.py +0 -71
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/helloapp.py +0 -53
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/cmdserver.py +0 -113
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/createwin.py +0 -114
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/demoutils.py +0 -65
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dibdemo.py +0 -73
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dlgtest.py +0 -145
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dyndlg.py +0 -104
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/fontdemo.py +0 -85
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/guidemo.py +0 -53
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/hiertest.py +0 -138
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/menutest.py +0 -13
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/objdoc.py +0 -57
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/demoutils.py +0 -63
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/flash.py +0 -95
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/msoffice.py +0 -159
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxserialtest.py +0 -132
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxtest.py +0 -243
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/webbrowser.py +0 -72
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/openGLDemo.py +0 -415
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/progressbar.py +0 -105
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/sliderdemo.py +0 -76
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/splittst.py +0 -79
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/threadedgui.py +0 -189
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/toolbar.py +0 -105
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/__init__.py +0 -3
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/__init__.py +0 -133
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/configui.py +0 -34
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgcon.py +0 -31
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgpyapp.py +0 -48
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/debugger.py +0 -1097
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/fail.py +0 -54
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/ideoptions.py +0 -136
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/list.py +0 -146
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/login.py +0 -155
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/status.py +0 -242
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/DockingBar.py +0 -676
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/app.py +0 -411
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/bitmap.py +0 -168
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/cmdline.py +0 -54
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dbgcommands.py +0 -188
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dlgappcore.py +0 -76
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/ModuleBrowser.py +0 -235
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/__init__.py +0 -105
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/coloreditor.py +0 -646
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/configui.py +0 -299
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/document.py +0 -379
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/editor.py +0 -511
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/frame.py +0 -74
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/template.py +0 -59
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/vss.py +0 -104
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/help.py +0 -173
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/interact.py +0 -995
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpyapp.py +0 -552
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpydde.py +0 -65
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/scriptutils.py +0 -684
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/sgrepmdi.py +0 -749
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/startup.py +0 -70
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/stdin.py +0 -172
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/toolmenu.py +0 -279
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/window.py +0 -14
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/winout.py +0 -589
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoExpand.py +0 -95
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoIndent.py +0 -536
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/CallTips.py +0 -216
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/FormatParagraph.py +0 -166
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/IdleHistory.py +0 -87
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/PyParse.py +0 -585
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/__init__.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/activex.py +0 -79
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/afxres.py +0 -501
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/dialog.py +0 -277
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/docview.py +0 -151
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/object.py +0 -66
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/thread.py +0 -25
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/window.py +0 -50
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/IDLEenvironment.py +0 -593
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/__init__.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/bindings.py +0 -180
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/config.py +0 -363
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/configui.py +0 -291
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/control.py +0 -565
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/document.py +0 -312
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/find.py +0 -511
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/formatter.py +0 -704
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/keycodes.py +0 -190
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/scintillacon.py +0 -3083
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/view.py +0 -841
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/TraceCollector.py +0 -79
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browseProjects.py +0 -323
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browser.py +0 -494
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/hierlist.py +0 -353
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regedit.py +0 -382
- py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regpy.py +0 -80
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupRead_BackupWrite.py +0 -119
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupSeek_streamheaders.py +0 -137
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CopyFileEx.py +0 -57
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CreateFileTransacted_MiniVersion.py +0 -122
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtFormatMessage.py +0 -83
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_pull.py +0 -28
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_push.py +0 -32
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/FileSecurityTest.py +0 -137
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/GetSaveFileName.py +0 -43
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/NetValidatePasswordPolicy.py +0 -127
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/OpenEncryptedFileRaw.py +0 -66
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegCreateKeyTransacted.py +0 -60
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegRestoreKey.py +0 -71
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/SystemParametersInfo.py +0 -210
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/c_extension/setup.py +0 -26
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeclient.py +0 -18
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeserver.py +0 -42
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/desktopmanager.py +0 -246
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/eventLogDemo.py +0 -143
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/getfilever.py +0 -33
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/mmapfile_demo.py +0 -101
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/cat.py +0 -17
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/runproc.py +0 -114
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/print_desktop.py +0 -113
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/rastest.py +0 -166
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/GetTokenInformation.py +0 -110
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/account_rights.py +0 -49
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/explicit_entries.py +0 -170
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/get_policy_info.py +0 -39
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/list_rights.py +0 -35
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/localized_names.py +0 -70
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsaregevent.py +0 -14
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsastore.py +0 -12
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/query_information.py +0 -25
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsave_sa.py +0 -61
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsecurity.py +0 -36
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sa_inherit.py +0 -8
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/security_enums.py +0 -336
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_audit.py +0 -106
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_owner.py +0 -73
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_policy_info.py +0 -25
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setkernelobjectsecurity.py +0 -134
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setnamedsecurityinfo.py +0 -131
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setsecurityinfo.py +0 -131
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setuserobjectsecurity.py +0 -102
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/fetch_url.py +0 -158
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/simple_auth.py +0 -72
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/socket_server.py +0 -199
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/validate_password.py +0 -41
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/nativePipeTestService.py +0 -63
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestService.py +0 -185
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestServiceClient.py +0 -158
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/serviceEvents.py +0 -98
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/timer_demo.py +0 -72
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboardDemo.py +0 -155
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboard_bitmapdemo.py +0 -117
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32comport_demo.py +0 -174
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32console_demo.py +0 -132
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32cred_demo.py +0 -82
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32fileDemo.py +0 -41
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_demo.py +0 -177
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_devicenotify.py +0 -106
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_dialog.py +0 -445
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_menu.py +0 -464
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_taskbar.py +0 -136
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32netdemo.py +0 -272
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32rcparser_demo.py +0 -86
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32servicedemo.py +0 -23
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32ts_logoff_disconnected.py +0 -25
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/testwnet.py +0 -123
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/winnetwk.py +0 -100
- py2docfx/venv/venv1/Lib/site-packages/win32/Demos/winprocess.py +0 -230
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/_win32verstamp_pywin32ctypes.py +0 -164
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/afxres.py +0 -8
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/commctrl.py +0 -1551
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/mmsystem.py +0 -956
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/netbios.py +0 -293
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/ntsecuritycon.py +0 -731
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_bootstrap.py +0 -21
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_testutil.py +0 -291
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywintypes.py +0 -124
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/rasutil.py +0 -40
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/regcheck.py +0 -161
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/regutil.py +0 -395
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspi.py +0 -413
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspicon.py +0 -477
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win2kras.py +0 -14
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32con.py +0 -5064
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32cryptcon.py +0 -1922
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32evtlogutil.py +0 -225
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32gui_struct.py +0 -957
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32inetcon.py +0 -1086
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32netcon.py +0 -627
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhquery.py +0 -570
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhutil.py +0 -212
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32rcparser.py +0 -674
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32serviceutil.py +0 -1073
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32timezone.py +0 -1201
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32traceutil.py +0 -59
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32verstamp.py +0 -235
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/winerror.py +0 -7362
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/winioctlcon.py +0 -1079
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/winnt.py +0 -1347
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/winperf.py +0 -236
- py2docfx/venv/venv1/Lib/site-packages/win32/lib/winxptheme.py +0 -8
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/ControlService.py +0 -594
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/BrandProject.py +0 -97
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/bulkstamp.py +0 -156
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/vssutil.py +0 -201
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/backupEventLog.py +0 -46
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/h2py.py +0 -194
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/killProcName.py +0 -62
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_postinstall.py +0 -733
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_testall.py +0 -120
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/rasutil.py +0 -98
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/regsetup.py +0 -607
- py2docfx/venv/venv1/Lib/site-packages/win32/scripts/setup_d.py +0 -111
- py2docfx/venv/venv1/Lib/site-packages/win32/test/handles.py +0 -175
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_clipboard.py +0 -137
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_exceptions.py +0 -213
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_odbc.py +0 -264
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_pywintypes.py +0 -111
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_security.py +0 -166
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_sspi.py +0 -229
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32api.py +0 -273
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32clipboard.py +0 -59
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32cred.py +0 -91
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32crypt.py +0 -144
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32event.py +0 -119
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32file.py +0 -1096
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32gui.py +0 -227
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32guistruct.py +0 -333
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32inet.py +0 -108
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32net.py +0 -23
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32pipe.py +0 -148
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32print.py +0 -24
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32profile.py +0 -19
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32rcparser.py +0 -70
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32timezone.py +0 -16
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32trace.py +0 -366
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32ts.py +0 -19
- py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32wnet.py +0 -174
- py2docfx/venv/venv1/Lib/site-packages/win32/test/testall.py +0 -223
- py2docfx/venv/venv1/Lib/site-packages/win32/winxpgui.py +0 -13
- py2docfx/venv/venv1/Lib/site-packages/win32com/__init__.py +0 -134
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/CLSIDToClass.py +0 -60
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/__init__.py +0 -717
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/build.py +0 -771
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/combrowse.py +0 -604
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/connect.py +0 -48
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/dynamic.py +0 -699
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/gencache.py +0 -825
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/genpy.py +0 -1350
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/makepy.py +0 -453
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/selecttlb.py +0 -182
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/tlbrowse.py +0 -277
- py2docfx/venv/venv1/Lib/site-packages/win32com/client/util.py +0 -103
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/connect.py +0 -96
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/dump_clipboard.py +0 -74
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsApartmentThreaded.py +0 -98
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsFreeThreaded.py +0 -92
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelAddin.py +0 -169
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelRTDServer.py +0 -434
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/iebutton.py +0 -214
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/ietoolbar.py +0 -368
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/outlookAddin.py +0 -135
- py2docfx/venv/venv1/Lib/site-packages/win32com/demos/trybag.py +0 -78
- py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/__init__.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegw.py +0 -618
- py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwenum.py +0 -331
- py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwparse.py +0 -1017
- py2docfx/venv/venv1/Lib/site-packages/win32com/olectl.py +0 -70
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/__init__.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/connect.py +0 -85
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/dispatcher.py +0 -239
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/exception.py +0 -99
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/factory.py +0 -26
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/localserver.py +0 -53
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/policy.py +0 -803
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/register.py +0 -677
- py2docfx/venv/venv1/Lib/site-packages/win32com/server/util.py +0 -229
- py2docfx/venv/venv1/Lib/site-packages/win32com/servers/PythonTools.py +0 -47
- py2docfx/venv/venv1/Lib/site-packages/win32com/servers/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/win32com/servers/dictionary.py +0 -133
- py2docfx/venv/venv1/Lib/site-packages/win32com/servers/interp.py +0 -59
- py2docfx/venv/venv1/Lib/site-packages/win32com/servers/perfmon.py +0 -36
- py2docfx/venv/venv1/Lib/site-packages/win32com/servers/test_pycomtest.py +0 -181
- py2docfx/venv/venv1/Lib/site-packages/win32com/storagecon.py +0 -142
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/GenTestScripts.py +0 -95
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/__init__.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/daodump.py +0 -88
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/errorSemantics.py +0 -243
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/pippo_server.py +0 -96
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/policySemantics.py +0 -115
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testADOEvents.py +0 -100
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAXScript.py +0 -44
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAccess.py +0 -185
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testArrays.py +0 -99
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testClipboard.py +0 -169
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testCollections.py +0 -159
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testConversionErrors.py +0 -35
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDCOM.py +0 -50
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDates.py +0 -74
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDictionary.py +0 -101
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDynamic.py +0 -83
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExchange.py +0 -121
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExplorer.py +0 -139
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGIT.py +0 -142
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGatewayAddresses.py +0 -149
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testIterators.py +0 -140
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOffice.py +0 -184
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOfficeEvents.py +0 -138
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMarshal.py +0 -160
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPersist.py +0 -227
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPippo.py +0 -80
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPyComTest.py +0 -918
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testROT.py +0 -29
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testServers.py +0 -51
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testShell.py +0 -272
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStorage.py +0 -88
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStreams.py +0 -147
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testWMI.py +0 -18
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testall.py +0 -320
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testmakepy.py +0 -54
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvb.py +0 -583
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvbscript_regexp.py +0 -40
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/testxslt.py +0 -34
- py2docfx/venv/venv1/Lib/site-packages/win32com/test/util.py +0 -262
- py2docfx/venv/venv1/Lib/site-packages/win32com/universal.py +0 -224
- py2docfx/venv/venv1/Lib/site-packages/win32com/util.py +0 -35
- py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/__init__.py +0 -113
- py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/adsicon.py +0 -340
- py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/objectPicker.py +0 -68
- py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/scp.py +0 -565
- py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/search.py +0 -151
- py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/test.py +0 -274
- py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/__init__.py +0 -6
- py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditSecurity.py +0 -229
- py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditServiceSecurity.py +0 -219
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axcontrol/__init__.py +0 -4
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/__init__.py +0 -4
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/adb.py +0 -467
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/codecontainer.py +0 -279
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/contexts.py +0 -58
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/debugger.py +0 -238
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/documents.py +0 -135
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/dump.py +0 -57
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/expressions.py +0 -212
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/gateways.py +0 -583
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/stackframe.py +0 -178
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/util.py +0 -98
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/__init__.py +0 -4
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/asputil.py +0 -13
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/__init__.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/debug.py +0 -223
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/error.py +0 -262
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/framework.py +0 -1291
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pydumper.py +0 -78
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript.py +0 -438
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript_rexec.py +0 -54
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/scriptdispatch.py +0 -103
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/axsite.py +0 -145
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/leakTest.py +0 -185
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost.py +0 -240
- py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost4Dbg.py +0 -83
- py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/__init__.py +0 -6
- py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/show_all_jobs.py +0 -48
- py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/test_bits.py +0 -119
- py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/__init__.py +0 -4
- py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/__init__.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_record.py +0 -60
- py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_test.py +0 -402
- py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/__init__.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/demo/filterDemo.py +0 -300
- py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/ifiltercon.py +0 -110
- py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/__init__.py +0 -4
- py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/inetcon.py +0 -261
- py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/__init__.py +0 -21
- py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/demos/mapisend.py +0 -98
- py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/emsabtags.py +0 -875
- py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapitags.py +0 -1023
- py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapiutil.py +0 -211
- py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/__init__.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/pscon.py +0 -838
- py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/test/testpropsys.py +0 -5
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/__init__.py +0 -4
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IActiveDesktop.py +0 -83
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IFileOperationProgressSink.py +0 -179
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IShellLinkDataList.py +0 -67
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/ITransferAdviseSink.py +0 -93
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IUniformResourceLocator.py +0 -56
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/browse_for_folder.py +0 -45
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/create_link.py +0 -73
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/dump_link.py +0 -58
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/explorer_browser.py +0 -143
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/column_provider.py +0 -125
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/context_menu.py +0 -122
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/copy_hook.py +0 -84
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/empty_volume_cache.py +0 -188
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/folder_view.py +0 -866
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/icon_handler.py +0 -81
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/shell_view.py +0 -971
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/shellexecuteex.py +0 -19
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/viewstate.py +0 -68
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/walk_shell_folders.py +0 -24
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/shellcon.py +0 -1615
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testSHFileOperation.py +0 -75
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellFolder.py +0 -21
- py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellItem.py +0 -69
- py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/__init__.py +0 -6
- py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask.py +0 -66
- py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_1.py +0 -68
- py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_2.py +0 -49
- py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_localsystem.py +0 -3
- py2docfx/venv/venv1/Scripts/pywin32_postinstall.py +0 -733
- py2docfx/venv/venv1/Scripts/pywin32_testall.py +0 -120
- {py2docfx-0.1.15.dev2025736.dist-info → py2docfx-0.1.15.dev2038852.dist-info}/WHEEL +0 -0
- {py2docfx-0.1.15.dev2025736.dist-info → py2docfx-0.1.15.dev2038852.dist-info}/top_level.txt +0 -0
@@ -1,191 +0,0 @@
|
|
1
|
-
"""An ISAPI extension base class implemented using a thread-pool."""
|
2
|
-
|
3
|
-
# $Id$
|
4
|
-
|
5
|
-
import sys
|
6
|
-
import threading
|
7
|
-
import time
|
8
|
-
import traceback
|
9
|
-
|
10
|
-
from pywintypes import OVERLAPPED
|
11
|
-
from win32event import INFINITE
|
12
|
-
from win32file import (
|
13
|
-
CloseHandle,
|
14
|
-
CreateIoCompletionPort,
|
15
|
-
GetQueuedCompletionStatus,
|
16
|
-
PostQueuedCompletionStatus,
|
17
|
-
)
|
18
|
-
from win32security import SetThreadToken
|
19
|
-
|
20
|
-
import isapi.simple
|
21
|
-
from isapi import ExtensionError, isapicon
|
22
|
-
|
23
|
-
ISAPI_REQUEST = 1
|
24
|
-
ISAPI_SHUTDOWN = 2
|
25
|
-
|
26
|
-
|
27
|
-
class WorkerThread(threading.Thread):
|
28
|
-
def __init__(self, extension, io_req_port):
|
29
|
-
self.running = False
|
30
|
-
self.io_req_port = io_req_port
|
31
|
-
self.extension = extension
|
32
|
-
threading.Thread.__init__(self)
|
33
|
-
# We wait 15 seconds for a thread to terminate, but if it fails to,
|
34
|
-
# we don't want the process to hang at exit waiting for it...
|
35
|
-
self.setDaemon(True)
|
36
|
-
|
37
|
-
def run(self):
|
38
|
-
self.running = True
|
39
|
-
while self.running:
|
40
|
-
errCode, bytes, key, overlapped = GetQueuedCompletionStatus(
|
41
|
-
self.io_req_port, INFINITE
|
42
|
-
)
|
43
|
-
if key == ISAPI_SHUTDOWN and overlapped is None:
|
44
|
-
break
|
45
|
-
|
46
|
-
# Let the parent extension handle the command.
|
47
|
-
dispatcher = self.extension.dispatch_map.get(key)
|
48
|
-
if dispatcher is None:
|
49
|
-
raise RuntimeError(f"Bad request '{key}'")
|
50
|
-
|
51
|
-
dispatcher(errCode, bytes, key, overlapped)
|
52
|
-
|
53
|
-
def call_handler(self, cblock):
|
54
|
-
self.extension.Dispatch(cblock)
|
55
|
-
|
56
|
-
|
57
|
-
# A generic thread-pool based extension, using IO Completion Ports.
|
58
|
-
# Sub-classes can override one method to implement a simple extension, or
|
59
|
-
# may leverage the CompletionPort to queue their own requests, and implement a
|
60
|
-
# fully asynch extension.
|
61
|
-
class ThreadPoolExtension(isapi.simple.SimpleExtension):
|
62
|
-
"Base class for an ISAPI extension based around a thread-pool"
|
63
|
-
|
64
|
-
max_workers = 20
|
65
|
-
worker_shutdown_wait = 15000 # 15 seconds for workers to quit...
|
66
|
-
|
67
|
-
def __init__(self):
|
68
|
-
self.workers = []
|
69
|
-
# extensible dispatch map, for sub-classes that need to post their
|
70
|
-
# own requests to the completion port.
|
71
|
-
# Each of these functions is called with the result of
|
72
|
-
# GetQueuedCompletionStatus for our port.
|
73
|
-
self.dispatch_map = {
|
74
|
-
ISAPI_REQUEST: self.DispatchConnection,
|
75
|
-
}
|
76
|
-
|
77
|
-
def GetExtensionVersion(self, vi):
|
78
|
-
isapi.simple.SimpleExtension.GetExtensionVersion(self, vi)
|
79
|
-
# As per Q192800, the CompletionPort should be created with the number
|
80
|
-
# of processors, even if the number of worker threads is much larger.
|
81
|
-
# Passing 0 means the system picks the number.
|
82
|
-
self.io_req_port = CreateIoCompletionPort(-1, None, 0, 0)
|
83
|
-
# start up the workers
|
84
|
-
self.workers = []
|
85
|
-
for i in range(self.max_workers):
|
86
|
-
worker = WorkerThread(self, self.io_req_port)
|
87
|
-
worker.start()
|
88
|
-
self.workers.append(worker)
|
89
|
-
|
90
|
-
def HttpExtensionProc(self, control_block):
|
91
|
-
overlapped = OVERLAPPED()
|
92
|
-
overlapped.object = control_block
|
93
|
-
PostQueuedCompletionStatus(self.io_req_port, 0, ISAPI_REQUEST, overlapped)
|
94
|
-
return isapicon.HSE_STATUS_PENDING
|
95
|
-
|
96
|
-
def TerminateExtension(self, status):
|
97
|
-
for worker in self.workers:
|
98
|
-
worker.running = False
|
99
|
-
for worker in self.workers:
|
100
|
-
PostQueuedCompletionStatus(self.io_req_port, 0, ISAPI_SHUTDOWN, None)
|
101
|
-
# wait for them to terminate - pity we aren't using 'native' threads
|
102
|
-
# as then we could do a smart wait - but now we need to poll....
|
103
|
-
end_time = time.time() + self.worker_shutdown_wait / 1000
|
104
|
-
alive = self.workers
|
105
|
-
while alive:
|
106
|
-
if time.time() > end_time:
|
107
|
-
# xxx - might be nice to log something here.
|
108
|
-
break
|
109
|
-
time.sleep(0.2)
|
110
|
-
alive = [w for w in alive if w.is_alive()]
|
111
|
-
self.dispatch_map = {} # break circles
|
112
|
-
CloseHandle(self.io_req_port)
|
113
|
-
|
114
|
-
# This is the one operation the base class supports - a simple
|
115
|
-
# Connection request. We setup the thread-token, and dispatch to the
|
116
|
-
# sub-class's 'Dispatch' method.
|
117
|
-
def DispatchConnection(self, errCode, bytes, key, overlapped):
|
118
|
-
control_block = overlapped.object
|
119
|
-
# setup the correct user for this request
|
120
|
-
hRequestToken = control_block.GetImpersonationToken()
|
121
|
-
SetThreadToken(None, hRequestToken)
|
122
|
-
try:
|
123
|
-
try:
|
124
|
-
self.Dispatch(control_block)
|
125
|
-
except:
|
126
|
-
self.HandleDispatchError(control_block)
|
127
|
-
finally:
|
128
|
-
# reset the security context
|
129
|
-
SetThreadToken(None, None)
|
130
|
-
|
131
|
-
def Dispatch(self, ecb):
|
132
|
-
"""Overridden by the sub-class to handle connection requests.
|
133
|
-
|
134
|
-
This class creates a thread-pool using a Windows completion port,
|
135
|
-
and dispatches requests via this port. Sub-classes can generally
|
136
|
-
implement each connection request using blocking reads and writes, and
|
137
|
-
the thread-pool will still provide decent response to the end user.
|
138
|
-
|
139
|
-
The sub-class can set a max_workers attribute (default is 20). Note
|
140
|
-
that this generally does *not* mean 20 threads will all be concurrently
|
141
|
-
running, via the magic of Windows completion ports.
|
142
|
-
|
143
|
-
There is no default implementation - sub-classes must implement this.
|
144
|
-
"""
|
145
|
-
raise NotImplementedError("sub-classes should override Dispatch")
|
146
|
-
|
147
|
-
def HandleDispatchError(self, ecb):
|
148
|
-
"""Handles errors in the Dispatch method.
|
149
|
-
|
150
|
-
When a Dispatch method call fails, this method is called to handle
|
151
|
-
the exception. The default implementation formats the traceback
|
152
|
-
in the browser.
|
153
|
-
"""
|
154
|
-
ecb.HttpStatusCode = isapicon.HSE_STATUS_ERROR
|
155
|
-
# control_block.LogData = "we failed!"
|
156
|
-
exc_typ, exc_val, exc_tb = sys.exc_info()
|
157
|
-
limit = None
|
158
|
-
try:
|
159
|
-
try:
|
160
|
-
import html
|
161
|
-
|
162
|
-
ecb.SendResponseHeaders(
|
163
|
-
"200 OK", "Content-type: text/html\r\n\r\n", False
|
164
|
-
)
|
165
|
-
print(file=ecb)
|
166
|
-
print("<H3>Traceback (most recent call last):</H3>", file=ecb)
|
167
|
-
list = traceback.format_tb(
|
168
|
-
exc_tb, limit
|
169
|
-
) + traceback.format_exception_only(exc_typ, exc_val)
|
170
|
-
bold = list.pop()
|
171
|
-
print(
|
172
|
-
"<PRE>{}<B>{}</B></PRE>".format(
|
173
|
-
html.escape("".join(list)),
|
174
|
-
html.escape(bold),
|
175
|
-
),
|
176
|
-
file=ecb,
|
177
|
-
)
|
178
|
-
except ExtensionError:
|
179
|
-
# The client disconnected without reading the error body -
|
180
|
-
# it's probably not a real browser at the other end, ignore it.
|
181
|
-
pass
|
182
|
-
except:
|
183
|
-
print("FAILED to render the error message!")
|
184
|
-
traceback.print_exc()
|
185
|
-
print("ORIGINAL extension error:")
|
186
|
-
traceback.print_exception(exc_typ, exc_val, exc_tb)
|
187
|
-
finally:
|
188
|
-
# holding tracebacks in a local of a frame that may itself be
|
189
|
-
# part of a traceback used to be evil and cause leaks!
|
190
|
-
exc_tb = None
|
191
|
-
ecb.DoneWithSession()
|
@@ -1,79 +0,0 @@
|
|
1
|
-
from . import __about__, constants, exceptions, portalocker
|
2
|
-
from .utils import (
|
3
|
-
BoundedSemaphore,
|
4
|
-
Lock,
|
5
|
-
RLock,
|
6
|
-
TemporaryFileLock,
|
7
|
-
open_atomic,
|
8
|
-
)
|
9
|
-
|
10
|
-
try: # pragma: no cover
|
11
|
-
from .redis import RedisLock
|
12
|
-
except ImportError: # pragma: no cover
|
13
|
-
RedisLock = None # type: ignore
|
14
|
-
|
15
|
-
|
16
|
-
#: The package name on Pypi
|
17
|
-
__package_name__ = __about__.__package_name__
|
18
|
-
#: Current author and maintainer, view the git history for the previous ones
|
19
|
-
__author__ = __about__.__author__
|
20
|
-
#: Current author's email address
|
21
|
-
__email__ = __about__.__email__
|
22
|
-
#: Version number
|
23
|
-
__version__ = '2.10.1'
|
24
|
-
#: Package description for Pypi
|
25
|
-
__description__ = __about__.__description__
|
26
|
-
#: Package homepage
|
27
|
-
__url__ = __about__.__url__
|
28
|
-
|
29
|
-
|
30
|
-
#: Exception thrown when the file is already locked by someone else
|
31
|
-
AlreadyLocked = exceptions.AlreadyLocked
|
32
|
-
#: Exception thrown if an error occurred during locking
|
33
|
-
LockException = exceptions.LockException
|
34
|
-
|
35
|
-
|
36
|
-
#: Lock a file. Note that this is an advisory lock on Linux/Unix systems
|
37
|
-
lock = portalocker.lock
|
38
|
-
#: Unlock a file
|
39
|
-
unlock = portalocker.unlock
|
40
|
-
|
41
|
-
#: Place an exclusive lock.
|
42
|
-
#: Only one process may hold an exclusive lock for a given file at a given
|
43
|
-
#: time.
|
44
|
-
LOCK_EX: constants.LockFlags = constants.LockFlags.EXCLUSIVE
|
45
|
-
|
46
|
-
#: Place a shared lock.
|
47
|
-
#: More than one process may hold a shared lock for a given file at a given
|
48
|
-
#: time.
|
49
|
-
LOCK_SH: constants.LockFlags = constants.LockFlags.SHARED
|
50
|
-
|
51
|
-
#: Acquire the lock in a non-blocking fashion.
|
52
|
-
LOCK_NB: constants.LockFlags = constants.LockFlags.NON_BLOCKING
|
53
|
-
|
54
|
-
#: Remove an existing lock held by this process.
|
55
|
-
LOCK_UN: constants.LockFlags = constants.LockFlags.UNBLOCK
|
56
|
-
|
57
|
-
#: Locking flags enum
|
58
|
-
LockFlags = constants.LockFlags
|
59
|
-
|
60
|
-
#: Locking utility class to automatically handle opening with timeouts and
|
61
|
-
#: context wrappers
|
62
|
-
|
63
|
-
__all__ = [
|
64
|
-
'lock',
|
65
|
-
'unlock',
|
66
|
-
'LOCK_EX',
|
67
|
-
'LOCK_SH',
|
68
|
-
'LOCK_NB',
|
69
|
-
'LOCK_UN',
|
70
|
-
'LockFlags',
|
71
|
-
'LockException',
|
72
|
-
'Lock',
|
73
|
-
'RLock',
|
74
|
-
'AlreadyLocked',
|
75
|
-
'BoundedSemaphore',
|
76
|
-
'TemporaryFileLock',
|
77
|
-
'open_atomic',
|
78
|
-
'RedisLock',
|
79
|
-
]
|
@@ -1,122 +0,0 @@
|
|
1
|
-
import argparse
|
2
|
-
import logging
|
3
|
-
import os
|
4
|
-
import pathlib
|
5
|
-
import re
|
6
|
-
import typing
|
7
|
-
|
8
|
-
base_path = pathlib.Path(__file__).parent.parent
|
9
|
-
src_path = base_path / 'portalocker'
|
10
|
-
dist_path = base_path / 'dist'
|
11
|
-
_default_output_path = base_path / 'dist' / 'portalocker.py'
|
12
|
-
|
13
|
-
_NAMES_RE = re.compile(r'(?P<names>[^()]+)$')
|
14
|
-
_RELATIVE_IMPORT_RE = re.compile(
|
15
|
-
r'^from \.(?P<from>.*?) import (?P<paren>\(?)(?P<names>[^()]+)$',
|
16
|
-
)
|
17
|
-
_USELESS_ASSIGNMENT_RE = re.compile(r'^(?P<name>\w+) = \1\n$')
|
18
|
-
|
19
|
-
_TEXT_TEMPLATE = """'''
|
20
|
-
{}
|
21
|
-
'''
|
22
|
-
|
23
|
-
"""
|
24
|
-
|
25
|
-
logger = logging.getLogger(__name__)
|
26
|
-
|
27
|
-
|
28
|
-
def main(argv=None):
|
29
|
-
parser = argparse.ArgumentParser()
|
30
|
-
|
31
|
-
subparsers = parser.add_subparsers(required=True)
|
32
|
-
combine_parser = subparsers.add_parser(
|
33
|
-
'combine',
|
34
|
-
help='Combine all Python files into a single unified `portalocker.py` '
|
35
|
-
'file for easy distribution',
|
36
|
-
)
|
37
|
-
combine_parser.add_argument(
|
38
|
-
'--output-file',
|
39
|
-
'-o',
|
40
|
-
type=argparse.FileType('w'),
|
41
|
-
default=str(_default_output_path),
|
42
|
-
)
|
43
|
-
|
44
|
-
combine_parser.set_defaults(func=combine)
|
45
|
-
args = parser.parse_args(argv)
|
46
|
-
args.func(args)
|
47
|
-
|
48
|
-
|
49
|
-
def _read_file(path: pathlib.Path, seen_files: typing.Set[pathlib.Path]):
|
50
|
-
if path in seen_files:
|
51
|
-
return
|
52
|
-
|
53
|
-
names = set()
|
54
|
-
seen_files.add(path)
|
55
|
-
paren = False
|
56
|
-
from_ = None
|
57
|
-
for line in path.open():
|
58
|
-
if paren:
|
59
|
-
if ')' in line:
|
60
|
-
line = line.split(')', 1)[1]
|
61
|
-
paren = False
|
62
|
-
continue
|
63
|
-
|
64
|
-
match = _NAMES_RE.match(line)
|
65
|
-
else:
|
66
|
-
match = _RELATIVE_IMPORT_RE.match(line)
|
67
|
-
|
68
|
-
if match:
|
69
|
-
if not paren:
|
70
|
-
paren = bool(match.group('paren'))
|
71
|
-
from_ = match.group('from')
|
72
|
-
|
73
|
-
if from_:
|
74
|
-
names.add(from_)
|
75
|
-
yield from _read_file(src_path / f'{from_}.py', seen_files)
|
76
|
-
else:
|
77
|
-
for name in match.group('names').split(','):
|
78
|
-
name = name.strip()
|
79
|
-
names.add(name)
|
80
|
-
yield from _read_file(src_path / f'{name}.py', seen_files)
|
81
|
-
else:
|
82
|
-
yield _clean_line(line, names)
|
83
|
-
|
84
|
-
|
85
|
-
def _clean_line(line, names):
|
86
|
-
# Replace `some_import.spam` with `spam`
|
87
|
-
if names:
|
88
|
-
joined_names = '|'.join(names)
|
89
|
-
line = re.sub(fr'\b({joined_names})\.', '', line)
|
90
|
-
|
91
|
-
# Replace useless assignments (e.g. `spam = spam`)
|
92
|
-
return _USELESS_ASSIGNMENT_RE.sub('', line)
|
93
|
-
|
94
|
-
|
95
|
-
def combine(args):
|
96
|
-
output_file = args.output_file
|
97
|
-
pathlib.Path(output_file.name).parent.mkdir(parents=True, exist_ok=True)
|
98
|
-
|
99
|
-
output_file.write(
|
100
|
-
_TEXT_TEMPLATE.format((base_path / 'README.rst').read_text()),
|
101
|
-
)
|
102
|
-
output_file.write(
|
103
|
-
_TEXT_TEMPLATE.format((base_path / 'LICENSE').read_text()),
|
104
|
-
)
|
105
|
-
|
106
|
-
seen_files: typing.Set[pathlib.Path] = set()
|
107
|
-
for line in _read_file(src_path / '__init__.py', seen_files):
|
108
|
-
output_file.write(line)
|
109
|
-
|
110
|
-
output_file.flush()
|
111
|
-
output_file.close()
|
112
|
-
|
113
|
-
logger.info(f'Wrote combined file to {output_file.name}')
|
114
|
-
# Run black and ruff if available. If not then just run the file.
|
115
|
-
os.system(f'black {output_file.name}')
|
116
|
-
os.system(f'ruff --fix {output_file.name}')
|
117
|
-
os.system(f'python3 {output_file.name}')
|
118
|
-
|
119
|
-
|
120
|
-
if __name__ == '__main__':
|
121
|
-
logging.basicConfig(level=logging.INFO)
|
122
|
-
main()
|
@@ -1,59 +0,0 @@
|
|
1
|
-
'''
|
2
|
-
Locking constants
|
3
|
-
|
4
|
-
Lock types:
|
5
|
-
|
6
|
-
- `EXCLUSIVE` exclusive lock
|
7
|
-
- `SHARED` shared lock
|
8
|
-
|
9
|
-
Lock flags:
|
10
|
-
|
11
|
-
- `NON_BLOCKING` non-blocking
|
12
|
-
|
13
|
-
Manually unlock, only needed internally
|
14
|
-
|
15
|
-
- `UNBLOCK` unlock
|
16
|
-
'''
|
17
|
-
|
18
|
-
import enum
|
19
|
-
import os
|
20
|
-
|
21
|
-
# The actual tests will execute the code anyhow so the following code can
|
22
|
-
# safely be ignored from the coverage tests
|
23
|
-
if os.name == 'nt': # pragma: no cover
|
24
|
-
import msvcrt
|
25
|
-
|
26
|
-
#: exclusive lock
|
27
|
-
LOCK_EX = 0x1
|
28
|
-
#: shared lock
|
29
|
-
LOCK_SH = 0x2
|
30
|
-
#: non-blocking
|
31
|
-
LOCK_NB = 0x4
|
32
|
-
#: unlock
|
33
|
-
LOCK_UN = msvcrt.LK_UNLCK # type: ignore
|
34
|
-
|
35
|
-
elif os.name == 'posix': # pragma: no cover
|
36
|
-
import fcntl
|
37
|
-
|
38
|
-
#: exclusive lock
|
39
|
-
LOCK_EX = fcntl.LOCK_EX
|
40
|
-
#: shared lock
|
41
|
-
LOCK_SH = fcntl.LOCK_SH
|
42
|
-
#: non-blocking
|
43
|
-
LOCK_NB = fcntl.LOCK_NB
|
44
|
-
#: unlock
|
45
|
-
LOCK_UN = fcntl.LOCK_UN
|
46
|
-
|
47
|
-
else: # pragma: no cover
|
48
|
-
raise RuntimeError('PortaLocker only defined for nt and posix platforms')
|
49
|
-
|
50
|
-
|
51
|
-
class LockFlags(enum.IntFlag):
|
52
|
-
#: exclusive lock
|
53
|
-
EXCLUSIVE = LOCK_EX
|
54
|
-
#: shared lock
|
55
|
-
SHARED = LOCK_SH
|
56
|
-
#: non-blocking
|
57
|
-
NON_BLOCKING = LOCK_NB
|
58
|
-
#: unlock
|
59
|
-
UNBLOCK = LOCK_UN
|
@@ -1,27 +0,0 @@
|
|
1
|
-
import typing
|
2
|
-
|
3
|
-
|
4
|
-
class BaseLockException(Exception): # noqa: N818
|
5
|
-
# Error codes:
|
6
|
-
LOCK_FAILED = 1
|
7
|
-
|
8
|
-
def __init__(
|
9
|
-
self,
|
10
|
-
*args: typing.Any,
|
11
|
-
fh: typing.Union[typing.IO, None, int] = None,
|
12
|
-
**kwargs: typing.Any,
|
13
|
-
) -> None:
|
14
|
-
self.fh = fh
|
15
|
-
Exception.__init__(self, *args)
|
16
|
-
|
17
|
-
|
18
|
-
class LockException(BaseLockException):
|
19
|
-
pass
|
20
|
-
|
21
|
-
|
22
|
-
class AlreadyLocked(LockException):
|
23
|
-
pass
|
24
|
-
|
25
|
-
|
26
|
-
class FileToLarge(LockException):
|
27
|
-
pass
|
@@ -1,154 +0,0 @@
|
|
1
|
-
import os
|
2
|
-
import typing
|
3
|
-
|
4
|
-
from . import constants, exceptions
|
5
|
-
|
6
|
-
# Alias for readability. Due to import recursion issues we cannot do:
|
7
|
-
# from .constants import LockFlags
|
8
|
-
LockFlags = constants.LockFlags
|
9
|
-
|
10
|
-
|
11
|
-
class HasFileno(typing.Protocol):
|
12
|
-
def fileno(self) -> int: ...
|
13
|
-
|
14
|
-
|
15
|
-
LOCKER: typing.Optional[typing.Callable[
|
16
|
-
[typing.Union[int, HasFileno], int], typing.Any]] = None
|
17
|
-
|
18
|
-
|
19
|
-
if os.name == 'nt': # pragma: no cover
|
20
|
-
import msvcrt
|
21
|
-
|
22
|
-
import pywintypes
|
23
|
-
import win32con
|
24
|
-
import win32file
|
25
|
-
import winerror
|
26
|
-
|
27
|
-
__overlapped = pywintypes.OVERLAPPED()
|
28
|
-
|
29
|
-
def lock(file_: typing.Union[typing.IO, int], flags: LockFlags):
|
30
|
-
# Windows locking does not support locking through `fh.fileno()` so
|
31
|
-
# we cast it to make mypy and pyright happy
|
32
|
-
file_ = typing.cast(typing.IO, file_)
|
33
|
-
|
34
|
-
mode = 0
|
35
|
-
if flags & LockFlags.NON_BLOCKING:
|
36
|
-
mode |= win32con.LOCKFILE_FAIL_IMMEDIATELY
|
37
|
-
|
38
|
-
if flags & LockFlags.EXCLUSIVE:
|
39
|
-
mode |= win32con.LOCKFILE_EXCLUSIVE_LOCK
|
40
|
-
|
41
|
-
# Save the old position so we can go back to that position but
|
42
|
-
# still lock from the beginning of the file
|
43
|
-
savepos = file_.tell()
|
44
|
-
if savepos:
|
45
|
-
file_.seek(0)
|
46
|
-
|
47
|
-
os_fh = msvcrt.get_osfhandle(file_.fileno()) # type: ignore
|
48
|
-
try:
|
49
|
-
win32file.LockFileEx(os_fh, mode, 0, -0x10000, __overlapped)
|
50
|
-
except pywintypes.error as exc_value:
|
51
|
-
# error: (33, 'LockFileEx', 'The process cannot access the file
|
52
|
-
# because another process has locked a portion of the file.')
|
53
|
-
if exc_value.winerror == winerror.ERROR_LOCK_VIOLATION:
|
54
|
-
raise exceptions.AlreadyLocked(
|
55
|
-
exceptions.LockException.LOCK_FAILED,
|
56
|
-
exc_value.strerror,
|
57
|
-
fh=file_,
|
58
|
-
) from exc_value
|
59
|
-
else:
|
60
|
-
# Q: Are there exceptions/codes we should be dealing with
|
61
|
-
# here?
|
62
|
-
raise
|
63
|
-
finally:
|
64
|
-
if savepos:
|
65
|
-
file_.seek(savepos)
|
66
|
-
|
67
|
-
def unlock(file_: typing.IO):
|
68
|
-
try:
|
69
|
-
savepos = file_.tell()
|
70
|
-
if savepos:
|
71
|
-
file_.seek(0)
|
72
|
-
|
73
|
-
os_fh = msvcrt.get_osfhandle(file_.fileno()) # type: ignore
|
74
|
-
try:
|
75
|
-
win32file.UnlockFileEx(
|
76
|
-
os_fh,
|
77
|
-
0,
|
78
|
-
-0x10000,
|
79
|
-
__overlapped,
|
80
|
-
)
|
81
|
-
except pywintypes.error as exc:
|
82
|
-
if exc.winerror != winerror.ERROR_NOT_LOCKED:
|
83
|
-
# Q: Are there exceptions/codes we should be
|
84
|
-
# dealing with here?
|
85
|
-
raise
|
86
|
-
finally:
|
87
|
-
if savepos:
|
88
|
-
file_.seek(savepos)
|
89
|
-
except OSError as exc:
|
90
|
-
raise exceptions.LockException(
|
91
|
-
exceptions.LockException.LOCK_FAILED,
|
92
|
-
exc.strerror,
|
93
|
-
fh=file_,
|
94
|
-
) from exc
|
95
|
-
|
96
|
-
elif os.name == 'posix': # pragma: no cover
|
97
|
-
import errno
|
98
|
-
import fcntl
|
99
|
-
|
100
|
-
# The locking implementation.
|
101
|
-
# Expected values are either fcntl.flock() or fcntl.lockf(),
|
102
|
-
# but any callable that matches the syntax will be accepted.
|
103
|
-
LOCKER = fcntl.flock
|
104
|
-
|
105
|
-
def lock(file_: typing.Union[typing.IO, int], flags: LockFlags):
|
106
|
-
assert LOCKER is not None, 'We need a locking function in `LOCKER` '
|
107
|
-
# Locking with NON_BLOCKING without EXCLUSIVE or SHARED enabled
|
108
|
-
# results in an error
|
109
|
-
if (flags & LockFlags.NON_BLOCKING) and not flags & (
|
110
|
-
LockFlags.SHARED | LockFlags.EXCLUSIVE
|
111
|
-
):
|
112
|
-
raise RuntimeError(
|
113
|
-
'When locking in non-blocking mode the SHARED '
|
114
|
-
'or EXCLUSIVE flag must be specified as well',
|
115
|
-
)
|
116
|
-
|
117
|
-
try:
|
118
|
-
LOCKER(file_, flags)
|
119
|
-
except OSError as exc_value:
|
120
|
-
# Python can use one of several different exception classes to
|
121
|
-
# represent timeout (most likely is BlockingIOError and IOError),
|
122
|
-
# but these errors may also represent other failures. On some
|
123
|
-
# systems, `IOError is OSError` which means checking for either
|
124
|
-
# IOError or OSError can mask other errors.
|
125
|
-
# The safest check is to catch OSError (from which the others
|
126
|
-
# inherit) and check the errno (which should be EACCESS or EAGAIN
|
127
|
-
# according to the spec).
|
128
|
-
if exc_value.errno in (errno.EACCES, errno.EAGAIN):
|
129
|
-
# A timeout exception, wrap this so the outer code knows to try
|
130
|
-
# again (if it wants to).
|
131
|
-
raise exceptions.AlreadyLocked(
|
132
|
-
exc_value,
|
133
|
-
fh=file_,
|
134
|
-
) from exc_value
|
135
|
-
else:
|
136
|
-
# Something else went wrong; don't wrap this so we stop
|
137
|
-
# immediately.
|
138
|
-
raise exceptions.LockException(
|
139
|
-
exc_value,
|
140
|
-
fh=file_,
|
141
|
-
) from exc_value
|
142
|
-
except EOFError as exc_value:
|
143
|
-
# On NFS filesystems, flock can raise an EOFError
|
144
|
-
raise exceptions.LockException(
|
145
|
-
exc_value,
|
146
|
-
fh=file_,
|
147
|
-
) from exc_value
|
148
|
-
|
149
|
-
def unlock(file_: typing.IO):
|
150
|
-
assert LOCKER is not None, 'We need a locking function in `LOCKER` '
|
151
|
-
LOCKER(file_.fileno(), LockFlags.UNBLOCK)
|
152
|
-
|
153
|
-
else: # pragma: no cover
|
154
|
-
raise RuntimeError('PortaLocker only defined for nt and posix platforms')
|