py2docfx 0.1.15.dev2025736__py3-none-any.whl → 0.1.15.dev2038808__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.dev2038808.dist-info}/METADATA +1 -1
- {py2docfx-0.1.15.dev2025736.dist-info → py2docfx-0.1.15.dev2038808.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.dev2038808.dist-info}/WHEEL +0 -0
- {py2docfx-0.1.15.dev2025736.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/top_level.txt +0 -0
@@ -154,7 +154,7 @@ class ManagedIdentityClient(object):
|
|
154
154
|
self,
|
155
155
|
managed_identity: Union[
|
156
156
|
dict,
|
157
|
-
ManagedIdentity, # Could use Type[ManagedIdentity] but it is
|
157
|
+
ManagedIdentity, # Could use Type[ManagedIdentity] but it is deprecated in Python 3.9+
|
158
158
|
SystemAssignedManagedIdentity,
|
159
159
|
UserAssignedManagedIdentity,
|
160
160
|
],
|
@@ -206,7 +206,7 @@ class ManagedIdentityClient(object):
|
|
206
206
|
you may use an environment variable (such as MY_MANAGED_IDENTITY_CONFIG)
|
207
207
|
to store a json blob like
|
208
208
|
``{"ManagedIdentityIdType": "ClientId", "Id": "foo"}`` or
|
209
|
-
``{"ManagedIdentityIdType": "
|
209
|
+
``{"ManagedIdentityIdType": "SystemAssigned", "Id": null}``.
|
210
210
|
The following app can load managed identity configuration dynamically::
|
211
211
|
|
212
212
|
import json, os, msal, requests
|
@@ -448,7 +448,9 @@ def _obtain_token_on_azure_vm(http_client, managed_identity, resource):
|
|
448
448
|
}
|
449
449
|
_adjust_param(params, managed_identity)
|
450
450
|
resp = http_client.get(
|
451
|
-
|
451
|
+
os.getenv(
|
452
|
+
"AZURE_POD_IDENTITY_AUTHORITY_HOST", "http://169.254.169.254"
|
453
|
+
).strip("/") + "/metadata/identity/oauth2/token",
|
452
454
|
params=params,
|
453
455
|
headers={"Metadata": "true"},
|
454
456
|
)
|
@@ -648,4 +650,3 @@ def _obtain_token_on_arc(http_client, endpoint, resource):
|
|
648
650
|
"error": "invalid_request",
|
649
651
|
"error_description": response.text,
|
650
652
|
}
|
651
|
-
|
@@ -43,6 +43,8 @@ class TokenCache(object):
|
|
43
43
|
self._lock = threading.RLock()
|
44
44
|
self._cache = {}
|
45
45
|
self.key_makers = {
|
46
|
+
# Note: We have changed token key format before when ordering scopes;
|
47
|
+
# changing token key won't result in cache miss.
|
46
48
|
self.CredentialType.REFRESH_TOKEN:
|
47
49
|
lambda home_account_id=None, environment=None, client_id=None,
|
48
50
|
target=None, **ignored_payload_from_a_real_token:
|
@@ -56,14 +58,18 @@ class TokenCache(object):
|
|
56
58
|
]).lower(),
|
57
59
|
self.CredentialType.ACCESS_TOKEN:
|
58
60
|
lambda home_account_id=None, environment=None, client_id=None,
|
59
|
-
realm=None, target=None,
|
60
|
-
|
61
|
+
realm=None, target=None,
|
62
|
+
# Note: New field(s) can be added here
|
63
|
+
#key_id=None,
|
64
|
+
**ignored_payload_from_a_real_token:
|
65
|
+
"-".join([ # Note: Could use a hash here to shorten key length
|
61
66
|
home_account_id or "",
|
62
67
|
environment or "",
|
63
68
|
self.CredentialType.ACCESS_TOKEN,
|
64
69
|
client_id or "",
|
65
70
|
realm or "",
|
66
71
|
target or "",
|
72
|
+
#key_id or "", # So ATs of different key_id can coexist
|
67
73
|
]).lower(),
|
68
74
|
self.CredentialType.ID_TOKEN:
|
69
75
|
lambda home_account_id=None, environment=None, client_id=None,
|
@@ -124,7 +130,7 @@ class TokenCache(object):
|
|
124
130
|
target_set <= set(entry.get("target", "").split())
|
125
131
|
if target_set else True)
|
126
132
|
|
127
|
-
def search(self, credential_type, target=None, query=None): # O(n) generator
|
133
|
+
def search(self, credential_type, target=None, query=None, *, now=None): # O(n) generator
|
128
134
|
"""Returns a generator of matching entries.
|
129
135
|
|
130
136
|
It is O(1) for AT hits, and O(n) for other types.
|
@@ -150,21 +156,33 @@ class TokenCache(object):
|
|
150
156
|
|
151
157
|
target_set = set(target)
|
152
158
|
with self._lock:
|
153
|
-
#
|
154
|
-
|
155
|
-
|
159
|
+
# O(n) search. The key is NOT used in search.
|
160
|
+
now = int(time.time() if now is None else now)
|
161
|
+
expired_access_tokens = [
|
162
|
+
# Especially when/if we key ATs by ephemeral fields such as key_id,
|
163
|
+
# stale ATs keyed by an old key_id would stay forever.
|
164
|
+
# Here we collect them for their removal.
|
165
|
+
]
|
156
166
|
for entry in self._cache.get(credential_type, {}).values():
|
167
|
+
if ( # Automatically delete expired access tokens
|
168
|
+
credential_type == self.CredentialType.ACCESS_TOKEN
|
169
|
+
and int(entry["expires_on"]) < now
|
170
|
+
):
|
171
|
+
expired_access_tokens.append(entry) # Can't delete them within current for-loop
|
172
|
+
continue
|
157
173
|
if (entry != preferred_result # Avoid yielding the same entry twice
|
158
174
|
and self._is_matching(entry, query, target_set=target_set)
|
159
175
|
):
|
160
176
|
yield entry
|
177
|
+
for at in expired_access_tokens:
|
178
|
+
self.remove_at(at)
|
161
179
|
|
162
|
-
def find(self, credential_type, target=None, query=None):
|
180
|
+
def find(self, credential_type, target=None, query=None, *, now=None):
|
163
181
|
"""Equivalent to list(search(...))."""
|
164
182
|
warnings.warn(
|
165
183
|
"Use list(search(...)) instead to explicitly get a list.",
|
166
184
|
DeprecationWarning)
|
167
|
-
return list(self.search(credential_type, target=target, query=query))
|
185
|
+
return list(self.search(credential_type, target=target, query=query, now=now))
|
168
186
|
|
169
187
|
def add(self, event, now=None):
|
170
188
|
"""Handle a token obtaining event, and add tokens into cache."""
|
@@ -249,8 +267,11 @@ class TokenCache(object):
|
|
249
267
|
"expires_on": str(now + expires_in), # Same here
|
250
268
|
"extended_expires_on": str(now + ext_expires_in) # Same here
|
251
269
|
}
|
252
|
-
|
253
|
-
|
270
|
+
at.update({k: data[k] for k in data if k in {
|
271
|
+
# Also store extra data which we explicitly allow
|
272
|
+
# So that we won't accidentally store a user's password etc.
|
273
|
+
"key_id", # It happens in SSH-cert or POP scenario
|
274
|
+
}})
|
254
275
|
if "refresh_in" in response:
|
255
276
|
refresh_in = response["refresh_in"] # It is an integer
|
256
277
|
at["refresh_on"] = str(now + refresh_in) # Schema wants a string
|
@@ -1,5 +1,5 @@
|
|
1
1
|
"""Provides auxiliary functionality to the `msal` package."""
|
2
|
-
__version__ = "1.
|
2
|
+
__version__ = "1.3.1" # Note: During/after release, copy this number to Dockerfile
|
3
3
|
|
4
4
|
from .persistence import (
|
5
5
|
FilePersistence,
|
@@ -8,6 +8,5 @@ from .persistence import (
|
|
8
8
|
KeychainPersistence,
|
9
9
|
LibsecretPersistence,
|
10
10
|
)
|
11
|
-
from .
|
12
|
-
from .token_cache import PersistedTokenCache
|
11
|
+
from .token_cache import PersistedTokenCache, CrossPlatLock, LockError
|
13
12
|
|
@@ -5,12 +5,15 @@ import errno
|
|
5
5
|
import time
|
6
6
|
import logging
|
7
7
|
|
8
|
-
import portalocker
|
8
|
+
import portalocker # pylint: disable=import-error
|
9
9
|
|
10
10
|
|
11
11
|
logger = logging.getLogger(__name__)
|
12
12
|
|
13
13
|
|
14
|
+
LockError = portalocker.exceptions.LockException
|
15
|
+
|
16
|
+
|
14
17
|
class CrossPlatLock(object):
|
15
18
|
"""Offers a mechanism for waiting until another process is finished interacting with a shared
|
16
19
|
resource. This is specifically written to interact with a class of the same name in the .NET
|
@@ -0,0 +1,62 @@
|
|
1
|
+
"""A cross-process lock based on exclusive creation of a given file name"""
|
2
|
+
import os
|
3
|
+
import sys
|
4
|
+
import errno
|
5
|
+
import time
|
6
|
+
import logging
|
7
|
+
|
8
|
+
|
9
|
+
logger = logging.getLogger(__name__)
|
10
|
+
|
11
|
+
|
12
|
+
class LockError(RuntimeError):
|
13
|
+
"""It will be raised when unable to obtain a lock"""
|
14
|
+
|
15
|
+
|
16
|
+
class CrossPlatLock(object):
|
17
|
+
"""This implementation relies only on ``open(..., 'x')``"""
|
18
|
+
def __init__(self, lockfile_path):
|
19
|
+
self._lockpath = lockfile_path
|
20
|
+
|
21
|
+
def __enter__(self):
|
22
|
+
self._create_lock_file('{} {}'.format(
|
23
|
+
os.getpid(),
|
24
|
+
sys.argv[0],
|
25
|
+
).encode('utf-8')) # pylint: disable=consider-using-f-string
|
26
|
+
return self
|
27
|
+
|
28
|
+
def _create_lock_file(self, content):
|
29
|
+
timeout = 5
|
30
|
+
check_interval = 0.25
|
31
|
+
current_time = getattr(time, "monotonic", time.time)
|
32
|
+
timeout_end = current_time() + timeout
|
33
|
+
while timeout_end > current_time():
|
34
|
+
try:
|
35
|
+
with open(self._lockpath, 'xb') as lock_file: # pylint: disable=unspecified-encoding
|
36
|
+
lock_file.write(content)
|
37
|
+
return None # Happy path
|
38
|
+
except ValueError: # This needs to be the first clause, for Python 2 to hit it
|
39
|
+
raise LockError("Python 2 does not support atomic creation of file")
|
40
|
+
except FileExistsError: # Only Python 3 will reach this clause
|
41
|
+
logger.debug(
|
42
|
+
"Process %d found existing lock file, will retry after %f second",
|
43
|
+
os.getpid(), check_interval)
|
44
|
+
time.sleep(check_interval)
|
45
|
+
raise LockError(
|
46
|
+
"Unable to obtain lock, despite trying for {} second(s). "
|
47
|
+
"You may want to manually remove the stale lock file {}".format(
|
48
|
+
timeout,
|
49
|
+
self._lockpath,
|
50
|
+
))
|
51
|
+
|
52
|
+
def __exit__(self, *args):
|
53
|
+
try:
|
54
|
+
os.remove(self._lockpath)
|
55
|
+
except OSError as ex: # pylint: disable=invalid-name
|
56
|
+
if ex.errno in (errno.ENOENT, errno.EACCES):
|
57
|
+
# Probably another process has raced this one
|
58
|
+
# and ended up clearing or locking the file for itself.
|
59
|
+
logger.debug("Unable to remove lock file")
|
60
|
+
else:
|
61
|
+
raise
|
62
|
+
|
@@ -40,7 +40,7 @@ except (ValueError, ImportError) as ex:
|
|
40
40
|
class LibSecretAgent(object):
|
41
41
|
"""A loader/saver built on top of low-level libsecret"""
|
42
42
|
# Inspired by https://developer.gnome.org/libsecret/unstable/py-examples.html
|
43
|
-
def __init__( # pylint: disable=too-many-arguments
|
43
|
+
def __init__( # pylint: disable=too-many-arguments,too-many-positional-arguments
|
44
44
|
self,
|
45
45
|
schema_name,
|
46
46
|
attributes, # {"name": "value", ...}
|
@@ -5,7 +5,13 @@ import logging
|
|
5
5
|
|
6
6
|
import msal
|
7
7
|
|
8
|
-
|
8
|
+
try: # It needs portalocker
|
9
|
+
from .cache_lock import ( # pylint: disable=unused-import
|
10
|
+
CrossPlatLock,
|
11
|
+
LockError, # We don't use LockError in this file, but __init__.py uses it.
|
12
|
+
)
|
13
|
+
except ImportError: # Falls back to file-based lock
|
14
|
+
from .filelock import CrossPlatLock, LockError # pylint: disable=unused-import
|
9
15
|
from .persistence import _mkdir_p, PersistenceNotFound
|
10
16
|
|
11
17
|
|
@@ -28,7 +28,7 @@ from distutils.util import rfc822_escape
|
|
28
28
|
def get_metadata_version(self):
|
29
29
|
mv = getattr(self, 'metadata_version', None)
|
30
30
|
if mv is None:
|
31
|
-
mv = Version('2.
|
31
|
+
mv = Version('2.4')
|
32
32
|
self.metadata_version = mv
|
33
33
|
return mv
|
34
34
|
|
@@ -88,6 +88,7 @@ def read_pkg_file(self, file):
|
|
88
88
|
self.url = _read_field_from_msg(msg, 'home-page')
|
89
89
|
self.download_url = _read_field_from_msg(msg, 'download-url')
|
90
90
|
self.license = _read_field_unescaped_from_msg(msg, 'license')
|
91
|
+
self.license_expression = _read_field_unescaped_from_msg(msg, 'license-expression')
|
91
92
|
|
92
93
|
self.long_description = _read_field_unescaped_from_msg(msg, 'description')
|
93
94
|
if self.long_description is None and self.metadata_version >= Version('2.1'):
|
@@ -175,8 +176,9 @@ def write_pkg_file(self, file): # noqa: C901 # is too complex (14) # FIXME
|
|
175
176
|
if attr_val is not None:
|
176
177
|
write_field(field, attr_val)
|
177
178
|
|
178
|
-
|
179
|
-
|
179
|
+
if license_expression := self.license_expression:
|
180
|
+
write_field('License-Expression', license_expression)
|
181
|
+
elif license := self.get_license():
|
180
182
|
write_field('License', rfc822_escape(license))
|
181
183
|
|
182
184
|
for label, url in self.project_urls.items():
|
@@ -205,7 +207,8 @@ def write_pkg_file(self, file): # noqa: C901 # is too complex (14) # FIXME
|
|
205
207
|
if self.long_description_content_type:
|
206
208
|
write_field('Description-Content-Type', self.long_description_content_type)
|
207
209
|
|
208
|
-
|
210
|
+
safe_license_files = map(_safe_license_file, self.license_files or [])
|
211
|
+
self._write_list(file, 'License-File', safe_license_files)
|
209
212
|
_write_requirements(self, file)
|
210
213
|
|
211
214
|
for field, attr in _POSSIBLE_DYNAMIC_FIELDS.items():
|
@@ -291,6 +294,14 @@ def _distribution_fullname(name: str, version: str) -> str:
|
|
291
294
|
)
|
292
295
|
|
293
296
|
|
297
|
+
def _safe_license_file(file):
|
298
|
+
# XXX: Do we need this after the deprecation discussed in #4892, #4896??
|
299
|
+
normalized = os.path.normpath(file).replace(os.sep, "/")
|
300
|
+
if "../" in normalized:
|
301
|
+
return os.path.basename(normalized) # Temporarily restore pre PEP639 behaviour
|
302
|
+
return normalized
|
303
|
+
|
304
|
+
|
294
305
|
_POSSIBLE_DYNAMIC_FIELDS = {
|
295
306
|
# Core Metadata Field x related Distribution attribute
|
296
307
|
"author": "author",
|
@@ -302,7 +313,12 @@ _POSSIBLE_DYNAMIC_FIELDS = {
|
|
302
313
|
"home-page": "url",
|
303
314
|
"keywords": "keywords",
|
304
315
|
"license": "license",
|
305
|
-
#
|
316
|
+
# XXX: License-File is complicated because the user gives globs that are expanded
|
317
|
+
# during the build. Without special handling it is likely always
|
318
|
+
# marked as Dynamic, which is an acceptable outcome according to:
|
319
|
+
# https://github.com/pypa/setuptools/issues/4629#issuecomment-2331233677
|
320
|
+
"license-file": "license_files",
|
321
|
+
"license-expression": "license_expression", # PEP 639
|
306
322
|
"maintainer": "maintainer",
|
307
323
|
"maintainer-email": "maintainer_email",
|
308
324
|
"obsoletes": "obsoletes",
|
@@ -1,13 +1,16 @@
|
|
1
|
+
from .compat.numpy import ( # noqa: F401
|
2
|
+
_default_compilers,
|
3
|
+
compiler_class,
|
4
|
+
)
|
1
5
|
from .compilers.C import base
|
2
6
|
from .compilers.C.base import (
|
3
|
-
CompileError,
|
4
|
-
LinkError,
|
5
7
|
gen_lib_options,
|
6
8
|
gen_preprocess_options,
|
7
9
|
get_default_compiler,
|
8
10
|
new_compiler,
|
9
11
|
show_compilers,
|
10
12
|
)
|
13
|
+
from .compilers.C.errors import CompileError, LinkError
|
11
14
|
|
12
15
|
__all__ = [
|
13
16
|
'CompileError',
|
@@ -3,21 +3,40 @@
|
|
3
3
|
Package containing implementation of all the standard Distutils
|
4
4
|
commands."""
|
5
5
|
|
6
|
+
from . import (
|
7
|
+
bdist,
|
8
|
+
bdist_dumb,
|
9
|
+
bdist_rpm,
|
10
|
+
build,
|
11
|
+
build_clib,
|
12
|
+
build_ext,
|
13
|
+
build_py,
|
14
|
+
build_scripts,
|
15
|
+
check,
|
16
|
+
clean,
|
17
|
+
install,
|
18
|
+
install_data,
|
19
|
+
install_headers,
|
20
|
+
install_lib,
|
21
|
+
install_scripts,
|
22
|
+
sdist,
|
23
|
+
)
|
24
|
+
|
6
25
|
__all__ = [
|
26
|
+
'bdist',
|
27
|
+
'bdist_dumb',
|
28
|
+
'bdist_rpm',
|
7
29
|
'build',
|
8
|
-
'build_py',
|
9
|
-
'build_ext',
|
10
30
|
'build_clib',
|
31
|
+
'build_ext',
|
32
|
+
'build_py',
|
11
33
|
'build_scripts',
|
34
|
+
'check',
|
12
35
|
'clean',
|
13
36
|
'install',
|
14
|
-
'
|
37
|
+
'install_data',
|
15
38
|
'install_headers',
|
39
|
+
'install_lib',
|
16
40
|
'install_scripts',
|
17
|
-
'install_data',
|
18
41
|
'sdist',
|
19
|
-
'bdist',
|
20
|
-
'bdist_dumb',
|
21
|
-
'bdist_rpm',
|
22
|
-
'check',
|
23
42
|
]
|
@@ -10,17 +10,12 @@ import sysconfig
|
|
10
10
|
from collections.abc import Callable
|
11
11
|
from typing import ClassVar
|
12
12
|
|
13
|
+
from ..ccompiler import show_compilers
|
13
14
|
from ..core import Command
|
14
15
|
from ..errors import DistutilsOptionError
|
15
16
|
from ..util import get_platform
|
16
17
|
|
17
18
|
|
18
|
-
def show_compilers():
|
19
|
-
from ..ccompiler import show_compilers
|
20
|
-
|
21
|
-
show_compilers()
|
22
|
-
|
23
|
-
|
24
19
|
class build(Command):
|
25
20
|
description = "build everything needed to install"
|
26
21
|
|
@@ -19,17 +19,12 @@ from collections.abc import Callable
|
|
19
19
|
from distutils._log import log
|
20
20
|
from typing import ClassVar
|
21
21
|
|
22
|
+
from ..ccompiler import new_compiler, show_compilers
|
22
23
|
from ..core import Command
|
23
24
|
from ..errors import DistutilsSetupError
|
24
25
|
from ..sysconfig import customize_compiler
|
25
26
|
|
26
27
|
|
27
|
-
def show_compilers():
|
28
|
-
from ..ccompiler import show_compilers
|
29
|
-
|
30
|
-
show_compilers()
|
31
|
-
|
32
|
-
|
33
28
|
class build_clib(Command):
|
34
29
|
description = "build C/C++ libraries used by Python extensions"
|
35
30
|
|
@@ -93,9 +88,6 @@ class build_clib(Command):
|
|
93
88
|
if not self.libraries:
|
94
89
|
return
|
95
90
|
|
96
|
-
# Yech -- this is cut 'n pasted from build_ext.py!
|
97
|
-
from ..ccompiler import new_compiler
|
98
|
-
|
99
91
|
self.compiler = new_compiler(
|
100
92
|
compiler=self.compiler, dry_run=self.dry_run, force=self.force
|
101
93
|
)
|
@@ -16,6 +16,7 @@ from site import USER_BASE
|
|
16
16
|
from typing import ClassVar
|
17
17
|
|
18
18
|
from .._modified import newer_group
|
19
|
+
from ..ccompiler import new_compiler, show_compilers
|
19
20
|
from ..core import Command
|
20
21
|
from ..errors import (
|
21
22
|
CCompilerError,
|
@@ -34,12 +35,6 @@ from ..util import get_platform, is_freethreaded, is_mingw
|
|
34
35
|
extension_name_re = re.compile(r'^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$')
|
35
36
|
|
36
37
|
|
37
|
-
def show_compilers():
|
38
|
-
from ..ccompiler import show_compilers
|
39
|
-
|
40
|
-
show_compilers()
|
41
|
-
|
42
|
-
|
43
38
|
class build_ext(Command):
|
44
39
|
description = "build C/C++ extensions (compile/link to build directory)"
|
45
40
|
|
@@ -303,8 +298,6 @@ class build_ext(Command):
|
|
303
298
|
raise DistutilsOptionError("parallel should be an integer")
|
304
299
|
|
305
300
|
def run(self) -> None: # noqa: C901
|
306
|
-
from ..ccompiler import new_compiler
|
307
|
-
|
308
301
|
# 'self.extensions', as supplied by setup.py, is a list of
|
309
302
|
# Extension instances. See the documentation for Extension (in
|
310
303
|
# distutils.extension) for details.
|
@@ -141,7 +141,7 @@ class check(Command):
|
|
141
141
|
document.note_source(source_path, -1)
|
142
142
|
try:
|
143
143
|
parser.parse(data, document)
|
144
|
-
except AttributeError as e:
|
144
|
+
except (AttributeError, TypeError) as e:
|
145
145
|
reporter.messages.append((
|
146
146
|
-1,
|
147
147
|
f'Could not finish the parsing: {e}.',
|
@@ -4,6 +4,7 @@ Implements the Distutils 'install' command."""
|
|
4
4
|
|
5
5
|
from __future__ import annotations
|
6
6
|
|
7
|
+
import collections
|
7
8
|
import contextlib
|
8
9
|
import itertools
|
9
10
|
import os
|
@@ -13,8 +14,6 @@ from distutils._log import log
|
|
13
14
|
from site import USER_BASE, USER_SITE
|
14
15
|
from typing import ClassVar
|
15
16
|
|
16
|
-
import jaraco.collections
|
17
|
-
|
18
17
|
from ..core import Command
|
19
18
|
from ..debug import DEBUG
|
20
19
|
from ..errors import DistutilsOptionError, DistutilsPlatformError
|
@@ -145,7 +144,7 @@ def _resolve_scheme(name):
|
|
145
144
|
try:
|
146
145
|
resolved = sysconfig.get_preferred_scheme(key)
|
147
146
|
except Exception:
|
148
|
-
resolved = fw.scheme(
|
147
|
+
resolved = fw.scheme(name)
|
149
148
|
return resolved
|
150
149
|
|
151
150
|
|
@@ -162,7 +161,7 @@ def _inject_headers(name, scheme):
|
|
162
161
|
"""
|
163
162
|
# Bypass the preferred scheme, which may not
|
164
163
|
# have defined headers.
|
165
|
-
fallback = _load_scheme(
|
164
|
+
fallback = _load_scheme(name)
|
166
165
|
scheme.setdefault('headers', fallback['headers'])
|
167
166
|
return scheme
|
168
167
|
|
@@ -172,14 +171,6 @@ def _scheme_attrs(scheme):
|
|
172
171
|
return {f'install_{key}': scheme[key] for key in SCHEME_KEYS}
|
173
172
|
|
174
173
|
|
175
|
-
def _pypy_hack(name):
|
176
|
-
PY37 = sys.version_info < (3, 8)
|
177
|
-
old_pypy = hasattr(sys, 'pypy_version_info') and PY37
|
178
|
-
prefix = not name.endswith(('_user', '_home'))
|
179
|
-
pypy_name = 'pypy' + '_nt' * (os.name == 'nt')
|
180
|
-
return pypy_name if old_pypy and prefix else name
|
181
|
-
|
182
|
-
|
183
174
|
class install(Command):
|
184
175
|
description = "install everything from build directory"
|
185
176
|
|
@@ -432,12 +423,12 @@ class install(Command):
|
|
432
423
|
local_vars['userbase'] = self.install_userbase
|
433
424
|
local_vars['usersite'] = self.install_usersite
|
434
425
|
|
435
|
-
self.config_vars =
|
436
|
-
fw.vars(),
|
437
|
-
compat_vars,
|
438
|
-
sysconfig.get_config_vars(),
|
426
|
+
self.config_vars = collections.ChainMap(
|
439
427
|
local_vars,
|
440
|
-
|
428
|
+
sysconfig.get_config_vars(),
|
429
|
+
compat_vars,
|
430
|
+
fw.vars(),
|
431
|
+
)
|
441
432
|
|
442
433
|
self.expand_basedirs()
|
443
434
|
|
@@ -120,12 +120,12 @@ class Compiler:
|
|
120
120
|
}
|
121
121
|
language_order: ClassVar[list[str]] = ["c++", "objc", "c"]
|
122
122
|
|
123
|
-
include_dirs = []
|
123
|
+
include_dirs: list[str] = []
|
124
124
|
"""
|
125
125
|
include dirs specific to this compiler class
|
126
126
|
"""
|
127
127
|
|
128
|
-
library_dirs = []
|
128
|
+
library_dirs: list[str] = []
|
129
129
|
"""
|
130
130
|
library dirs specific to this compiler class
|
131
131
|
"""
|
@@ -148,14 +148,14 @@ class Compiler:
|
|
148
148
|
self.macros: list[_Macro] = []
|
149
149
|
|
150
150
|
# 'include_dirs': a list of directories to search for include files
|
151
|
-
self.include_dirs
|
151
|
+
self.include_dirs = []
|
152
152
|
|
153
153
|
# 'libraries': a list of libraries to include in any link
|
154
154
|
# (library names, not filenames: eg. "foo" not "libfoo.a")
|
155
155
|
self.libraries: list[str] = []
|
156
156
|
|
157
157
|
# 'library_dirs': a list of directories to search for libraries
|
158
|
-
self.library_dirs
|
158
|
+
self.library_dirs = []
|
159
159
|
|
160
160
|
# 'runtime_library_dirs': a list of directories to search for
|
161
161
|
# shared libraries/objects at runtime
|
@@ -236,8 +236,11 @@ class Compiler:
|
|
236
236
|
def _is_valid_macro(name, value=None):
|
237
237
|
"""
|
238
238
|
A valid macro is a ``name : str`` and a ``value : str | None``.
|
239
|
+
|
240
|
+
>>> Compiler._is_valid_macro('foo', None)
|
241
|
+
True
|
239
242
|
"""
|
240
|
-
return isinstance(name, str) and isinstance(value, (str, None))
|
243
|
+
return isinstance(name, str) and isinstance(value, (str, type(None)))
|
241
244
|
|
242
245
|
# -- Bookkeeping methods -------------------------------------------
|
243
246
|
|
@@ -257,7 +257,7 @@ class Compiler(base.Compiler):
|
|
257
257
|
obj_extension = '.obj'
|
258
258
|
static_lib_extension = '.lib'
|
259
259
|
shared_lib_extension = '.dll'
|
260
|
-
static_lib_format =
|
260
|
+
static_lib_format = shared_lib_format = '%s%s'
|
261
261
|
exe_extension = '.exe'
|
262
262
|
|
263
263
|
def __init__(self, verbose=False, dry_run=False, force=False) -> None:
|
@@ -158,6 +158,20 @@ class Compiler(base.Compiler):
|
|
158
158
|
dylib_lib_extension = ".dll"
|
159
159
|
dylib_lib_format = "cyg%s%s"
|
160
160
|
|
161
|
+
def _fix_lib_args(self, libraries, library_dirs, runtime_library_dirs):
|
162
|
+
"""Remove standard library path from rpath"""
|
163
|
+
libraries, library_dirs, runtime_library_dirs = super()._fix_lib_args(
|
164
|
+
libraries, library_dirs, runtime_library_dirs
|
165
|
+
)
|
166
|
+
libdir = sysconfig.get_config_var('LIBDIR')
|
167
|
+
if (
|
168
|
+
runtime_library_dirs
|
169
|
+
and libdir.startswith("/usr/lib")
|
170
|
+
and (libdir in runtime_library_dirs)
|
171
|
+
):
|
172
|
+
runtime_library_dirs.remove(libdir)
|
173
|
+
return libraries, library_dirs, runtime_library_dirs
|
174
|
+
|
161
175
|
def preprocess(
|
162
176
|
self,
|
163
177
|
source: str | os.PathLike[str],
|
@@ -309,7 +323,7 @@ class Compiler(base.Compiler):
|
|
309
323
|
compiler = os.path.basename(shlex.split(cc_var)[0])
|
310
324
|
return "gcc" in compiler or "g++" in compiler
|
311
325
|
|
312
|
-
def runtime_library_dir_option(self, dir: str) -> str | list[str]:
|
326
|
+
def runtime_library_dir_option(self, dir: str) -> str | list[str]: # type: ignore[override] # Fixed in pypa/distutils#339
|
313
327
|
# XXX Hackish, at the very least. See Python bug #445902:
|
314
328
|
# https://bugs.python.org/issue445902
|
315
329
|
# Linkers on different platforms need different options to
|