py2docfx 0.1.15.dev2025501__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.
Files changed (597) hide show
  1. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_core_metadata.py +21 -5
  2. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -0
  3. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
  4. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/__init__.py +27 -8
  5. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
  6. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
  7. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
  8. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  9. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  10. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
  11. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
  12. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
  13. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
  14. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
  15. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
  16. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
  17. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
  18. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
  19. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/util.py +7 -6
  20. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_normalization.py +29 -0
  21. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
  22. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
  23. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
  24. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
  25. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
  26. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
  27. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
  28. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
  29. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
  30. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
  31. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
  32. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +48 -11
  33. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
  34. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
  35. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
  36. py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +115 -9
  37. py2docfx/venv/basevenv/Lib/site-packages/setuptools/msvc.py +12 -3
  38. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
  39. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
  40. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
  41. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
  42. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
  43. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
  44. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +1 -1
  45. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +4 -4
  46. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +4 -4
  47. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +4 -4
  48. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_database.py +22 -4
  49. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +82 -35
  50. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +4 -4
  51. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +4 -4
  52. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +4 -4
  53. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/builder.py +4 -3
  54. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/containers.py +13 -0
  55. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/decoder.py +62 -115
  56. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_edition_defaults.py +1 -1
  57. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_message.py +15 -18
  58. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/testing_refleaks.py +4 -1
  59. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/type_checkers.py +5 -0
  60. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/well_known_types.py +3 -3
  61. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/json_format.py +25 -9
  62. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message.py +26 -0
  63. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message_factory.py +0 -63
  64. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto.py +38 -1
  65. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto_text.py +129 -0
  66. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/reflection.py +0 -49
  67. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +3 -3
  68. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +4 -4
  69. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +4 -4
  70. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/symbol_database.py +0 -18
  71. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_format.py +8 -3
  72. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +4 -4
  73. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +4 -4
  74. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/unknown_fields.py +3 -4
  75. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +4 -4
  76. py2docfx/venv/venv1/Lib/site-packages/msal/__init__.py +1 -1
  77. py2docfx/venv/venv1/Lib/site-packages/msal/application.py +51 -17
  78. py2docfx/venv/venv1/Lib/site-packages/msal/broker.py +18 -4
  79. py2docfx/venv/venv1/Lib/site-packages/msal/cloudshell.py +5 -1
  80. py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +5 -4
  81. py2docfx/venv/venv1/Lib/site-packages/msal/sku.py +6 -0
  82. py2docfx/venv/venv1/Lib/site-packages/msal/token_cache.py +31 -10
  83. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/__init__.py +2 -3
  84. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/cache_lock.py +4 -1
  85. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/filelock.py +62 -0
  86. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/libsecret.py +1 -1
  87. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/token_cache.py +7 -1
  88. py2docfx/venv/venv1/Lib/site-packages/setuptools/_core_metadata.py +21 -5
  89. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -0
  90. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
  91. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/__init__.py +27 -8
  92. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
  93. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
  94. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
  95. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  96. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  97. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
  98. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
  99. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
  100. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
  101. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
  102. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
  103. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
  104. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
  105. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
  106. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/util.py +7 -6
  107. py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py +29 -0
  108. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
  109. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
  110. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
  111. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
  112. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
  113. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
  114. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
  115. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
  116. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
  117. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
  118. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
  119. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +48 -11
  120. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
  121. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
  122. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
  123. py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +115 -9
  124. py2docfx/venv/venv1/Lib/site-packages/setuptools/msvc.py +12 -3
  125. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
  126. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
  127. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
  128. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
  129. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
  130. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
  131. {py2docfx-0.1.15.dev2025501.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/METADATA +1 -1
  132. {py2docfx-0.1.15.dev2025501.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/RECORD +134 -590
  133. py2docfx/venv/venv1/Lib/site-packages/adodbapi/__init__.py +0 -82
  134. py2docfx/venv/venv1/Lib/site-packages/adodbapi/ado_consts.py +0 -283
  135. py2docfx/venv/venv1/Lib/site-packages/adodbapi/adodbapi.py +0 -1153
  136. py2docfx/venv/venv1/Lib/site-packages/adodbapi/apibase.py +0 -723
  137. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_print.py +0 -72
  138. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_table_names.py +0 -21
  139. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_read.py +0 -41
  140. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_write.py +0 -41
  141. py2docfx/venv/venv1/Lib/site-packages/adodbapi/is64bit.py +0 -34
  142. py2docfx/venv/venv1/Lib/site-packages/adodbapi/process_connect_string.py +0 -137
  143. py2docfx/venv/venv1/Lib/site-packages/adodbapi/schema_table.py +0 -16
  144. py2docfx/venv/venv1/Lib/site-packages/adodbapi/setup.py +0 -68
  145. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitest.py +0 -1547
  146. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitestconfig.py +0 -184
  147. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/dbapi20.py +0 -879
  148. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/is64bit.py +0 -34
  149. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/setuptestframework.py +0 -98
  150. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/test_adodbapi_dbapi20.py +0 -195
  151. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/tryconnection.py +0 -30
  152. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/_parameterized.py +0 -420
  153. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/service.py +0 -213
  154. py2docfx/venv/venv1/Lib/site-packages/isapi/__init__.py +0 -39
  155. py2docfx/venv/venv1/Lib/site-packages/isapi/install.py +0 -809
  156. py2docfx/venv/venv1/Lib/site-packages/isapi/isapicon.py +0 -121
  157. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/advanced.py +0 -218
  158. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector.py +0 -116
  159. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_asynch.py +0 -85
  160. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_with_filter.py +0 -162
  161. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/test.py +0 -195
  162. py2docfx/venv/venv1/Lib/site-packages/isapi/simple.py +0 -73
  163. py2docfx/venv/venv1/Lib/site-packages/isapi/test/extension_simple.py +0 -114
  164. py2docfx/venv/venv1/Lib/site-packages/isapi/threaded_extension.py +0 -191
  165. py2docfx/venv/venv1/Lib/site-packages/portalocker/__about__.py +0 -6
  166. py2docfx/venv/venv1/Lib/site-packages/portalocker/__init__.py +0 -79
  167. py2docfx/venv/venv1/Lib/site-packages/portalocker/__main__.py +0 -122
  168. py2docfx/venv/venv1/Lib/site-packages/portalocker/constants.py +0 -59
  169. py2docfx/venv/venv1/Lib/site-packages/portalocker/exceptions.py +0 -27
  170. py2docfx/venv/venv1/Lib/site-packages/portalocker/portalocker.py +0 -154
  171. py2docfx/venv/venv1/Lib/site-packages/portalocker/redis.py +0 -236
  172. py2docfx/venv/venv1/Lib/site-packages/portalocker/utils.py +0 -569
  173. py2docfx/venv/venv1/Lib/site-packages/pythoncom.py +0 -4
  174. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/basictimerapp.py +0 -258
  175. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/customprint.py +0 -183
  176. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/demoutils.py +0 -63
  177. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dlgappdemo.py +0 -51
  178. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dojobapp.py +0 -71
  179. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/helloapp.py +0 -53
  180. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/cmdserver.py +0 -113
  181. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/createwin.py +0 -114
  182. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/demoutils.py +0 -65
  183. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dibdemo.py +0 -73
  184. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dlgtest.py +0 -145
  185. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dyndlg.py +0 -104
  186. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/fontdemo.py +0 -85
  187. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/guidemo.py +0 -53
  188. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/hiertest.py +0 -138
  189. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/menutest.py +0 -13
  190. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/objdoc.py +0 -57
  191. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/demoutils.py +0 -63
  192. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/flash.py +0 -95
  193. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/msoffice.py +0 -159
  194. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxserialtest.py +0 -132
  195. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxtest.py +0 -243
  196. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/webbrowser.py +0 -72
  197. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/openGLDemo.py +0 -415
  198. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/progressbar.py +0 -105
  199. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/sliderdemo.py +0 -76
  200. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/splittst.py +0 -79
  201. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/threadedgui.py +0 -189
  202. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/toolbar.py +0 -105
  203. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/__init__.py +0 -3
  204. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/__init__.py +0 -133
  205. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/configui.py +0 -34
  206. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgcon.py +0 -31
  207. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgpyapp.py +0 -48
  208. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/debugger.py +0 -1097
  209. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/fail.py +0 -54
  210. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/__init__.py +0 -0
  211. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/ideoptions.py +0 -136
  212. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/list.py +0 -146
  213. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/login.py +0 -155
  214. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/status.py +0 -242
  215. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/DockingBar.py +0 -676
  216. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/__init__.py +0 -0
  217. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/__init__.py +0 -0
  218. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/app.py +0 -411
  219. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/bitmap.py +0 -168
  220. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/cmdline.py +0 -54
  221. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dbgcommands.py +0 -188
  222. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dlgappcore.py +0 -76
  223. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/ModuleBrowser.py +0 -235
  224. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/__init__.py +0 -105
  225. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/__init__.py +0 -0
  226. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/coloreditor.py +0 -646
  227. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/configui.py +0 -299
  228. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/document.py +0 -379
  229. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/editor.py +0 -511
  230. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/frame.py +0 -74
  231. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/template.py +0 -59
  232. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/vss.py +0 -104
  233. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/help.py +0 -173
  234. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/interact.py +0 -995
  235. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpyapp.py +0 -552
  236. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpydde.py +0 -65
  237. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/scriptutils.py +0 -684
  238. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/sgrepmdi.py +0 -749
  239. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/startup.py +0 -70
  240. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/stdin.py +0 -172
  241. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/toolmenu.py +0 -279
  242. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/window.py +0 -14
  243. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/winout.py +0 -589
  244. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoExpand.py +0 -95
  245. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoIndent.py +0 -536
  246. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/CallTips.py +0 -216
  247. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/FormatParagraph.py +0 -166
  248. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/IdleHistory.py +0 -87
  249. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/PyParse.py +0 -585
  250. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/__init__.py +0 -1
  251. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/__init__.py +0 -0
  252. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/activex.py +0 -79
  253. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/afxres.py +0 -501
  254. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/dialog.py +0 -277
  255. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/docview.py +0 -151
  256. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/object.py +0 -66
  257. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/thread.py +0 -25
  258. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/window.py +0 -50
  259. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/IDLEenvironment.py +0 -593
  260. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/__init__.py +0 -1
  261. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/bindings.py +0 -180
  262. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/config.py +0 -363
  263. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/configui.py +0 -291
  264. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/control.py +0 -565
  265. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/document.py +0 -312
  266. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/find.py +0 -511
  267. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/formatter.py +0 -704
  268. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/keycodes.py +0 -190
  269. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/scintillacon.py +0 -3083
  270. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/view.py +0 -841
  271. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/TraceCollector.py +0 -79
  272. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/__init__.py +0 -0
  273. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browseProjects.py +0 -323
  274. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browser.py +0 -494
  275. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/hierlist.py +0 -353
  276. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regedit.py +0 -382
  277. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regpy.py +0 -80
  278. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupRead_BackupWrite.py +0 -119
  279. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupSeek_streamheaders.py +0 -137
  280. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CopyFileEx.py +0 -57
  281. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CreateFileTransacted_MiniVersion.py +0 -122
  282. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtFormatMessage.py +0 -83
  283. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_pull.py +0 -28
  284. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_push.py +0 -32
  285. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/FileSecurityTest.py +0 -137
  286. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/GetSaveFileName.py +0 -43
  287. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/NetValidatePasswordPolicy.py +0 -127
  288. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/OpenEncryptedFileRaw.py +0 -66
  289. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegCreateKeyTransacted.py +0 -60
  290. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegRestoreKey.py +0 -71
  291. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/SystemParametersInfo.py +0 -210
  292. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/c_extension/setup.py +0 -26
  293. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeclient.py +0 -18
  294. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeserver.py +0 -42
  295. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/desktopmanager.py +0 -246
  296. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/eventLogDemo.py +0 -143
  297. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/getfilever.py +0 -33
  298. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/mmapfile_demo.py +0 -101
  299. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/cat.py +0 -17
  300. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/runproc.py +0 -114
  301. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/print_desktop.py +0 -113
  302. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/rastest.py +0 -166
  303. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/GetTokenInformation.py +0 -110
  304. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/account_rights.py +0 -49
  305. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/explicit_entries.py +0 -170
  306. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/get_policy_info.py +0 -39
  307. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/list_rights.py +0 -35
  308. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/localized_names.py +0 -70
  309. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsaregevent.py +0 -14
  310. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsastore.py +0 -12
  311. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/query_information.py +0 -25
  312. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsave_sa.py +0 -61
  313. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsecurity.py +0 -36
  314. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sa_inherit.py +0 -8
  315. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/security_enums.py +0 -336
  316. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_audit.py +0 -106
  317. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_owner.py +0 -73
  318. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_policy_info.py +0 -25
  319. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setkernelobjectsecurity.py +0 -134
  320. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setnamedsecurityinfo.py +0 -131
  321. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setsecurityinfo.py +0 -131
  322. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setuserobjectsecurity.py +0 -102
  323. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/fetch_url.py +0 -158
  324. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/simple_auth.py +0 -72
  325. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/socket_server.py +0 -199
  326. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/validate_password.py +0 -41
  327. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/nativePipeTestService.py +0 -63
  328. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestService.py +0 -185
  329. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestServiceClient.py +0 -158
  330. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/serviceEvents.py +0 -98
  331. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/timer_demo.py +0 -72
  332. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboardDemo.py +0 -155
  333. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboard_bitmapdemo.py +0 -117
  334. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32comport_demo.py +0 -174
  335. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32console_demo.py +0 -132
  336. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32cred_demo.py +0 -82
  337. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32fileDemo.py +0 -41
  338. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_demo.py +0 -177
  339. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_devicenotify.py +0 -106
  340. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_dialog.py +0 -445
  341. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_menu.py +0 -464
  342. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_taskbar.py +0 -136
  343. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32netdemo.py +0 -272
  344. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32rcparser_demo.py +0 -86
  345. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32servicedemo.py +0 -23
  346. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32ts_logoff_disconnected.py +0 -25
  347. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/testwnet.py +0 -123
  348. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/winnetwk.py +0 -100
  349. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/winprocess.py +0 -230
  350. py2docfx/venv/venv1/Lib/site-packages/win32/lib/_win32verstamp_pywin32ctypes.py +0 -164
  351. py2docfx/venv/venv1/Lib/site-packages/win32/lib/afxres.py +0 -8
  352. py2docfx/venv/venv1/Lib/site-packages/win32/lib/commctrl.py +0 -1551
  353. py2docfx/venv/venv1/Lib/site-packages/win32/lib/mmsystem.py +0 -956
  354. py2docfx/venv/venv1/Lib/site-packages/win32/lib/netbios.py +0 -293
  355. py2docfx/venv/venv1/Lib/site-packages/win32/lib/ntsecuritycon.py +0 -731
  356. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_bootstrap.py +0 -21
  357. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_testutil.py +0 -291
  358. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywintypes.py +0 -124
  359. py2docfx/venv/venv1/Lib/site-packages/win32/lib/rasutil.py +0 -40
  360. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regcheck.py +0 -161
  361. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regutil.py +0 -395
  362. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspi.py +0 -413
  363. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspicon.py +0 -477
  364. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win2kras.py +0 -14
  365. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32con.py +0 -5064
  366. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32cryptcon.py +0 -1922
  367. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32evtlogutil.py +0 -225
  368. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32gui_struct.py +0 -957
  369. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32inetcon.py +0 -1086
  370. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32netcon.py +0 -627
  371. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhquery.py +0 -570
  372. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhutil.py +0 -212
  373. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32rcparser.py +0 -674
  374. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32serviceutil.py +0 -1073
  375. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32timezone.py +0 -1201
  376. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32traceutil.py +0 -59
  377. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32verstamp.py +0 -235
  378. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winerror.py +0 -7362
  379. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winioctlcon.py +0 -1079
  380. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winnt.py +0 -1347
  381. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winperf.py +0 -236
  382. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winxptheme.py +0 -8
  383. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/ControlService.py +0 -594
  384. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/BrandProject.py +0 -97
  385. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/bulkstamp.py +0 -156
  386. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/vssutil.py +0 -201
  387. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/backupEventLog.py +0 -46
  388. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/h2py.py +0 -194
  389. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/killProcName.py +0 -62
  390. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_postinstall.py +0 -733
  391. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_testall.py +0 -120
  392. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/rasutil.py +0 -98
  393. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/regsetup.py +0 -607
  394. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/setup_d.py +0 -111
  395. py2docfx/venv/venv1/Lib/site-packages/win32/test/handles.py +0 -175
  396. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_clipboard.py +0 -137
  397. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_exceptions.py +0 -213
  398. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_odbc.py +0 -264
  399. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_pywintypes.py +0 -111
  400. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_security.py +0 -166
  401. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_sspi.py +0 -229
  402. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32api.py +0 -273
  403. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32clipboard.py +0 -59
  404. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32cred.py +0 -91
  405. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32crypt.py +0 -144
  406. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32event.py +0 -119
  407. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32file.py +0 -1096
  408. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32gui.py +0 -227
  409. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32guistruct.py +0 -333
  410. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32inet.py +0 -108
  411. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32net.py +0 -23
  412. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32pipe.py +0 -148
  413. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32print.py +0 -24
  414. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32profile.py +0 -19
  415. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32rcparser.py +0 -70
  416. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32timezone.py +0 -16
  417. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32trace.py +0 -366
  418. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32ts.py +0 -19
  419. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32wnet.py +0 -174
  420. py2docfx/venv/venv1/Lib/site-packages/win32/test/testall.py +0 -223
  421. py2docfx/venv/venv1/Lib/site-packages/win32/winxpgui.py +0 -13
  422. py2docfx/venv/venv1/Lib/site-packages/win32com/__init__.py +0 -134
  423. py2docfx/venv/venv1/Lib/site-packages/win32com/client/CLSIDToClass.py +0 -60
  424. py2docfx/venv/venv1/Lib/site-packages/win32com/client/__init__.py +0 -717
  425. py2docfx/venv/venv1/Lib/site-packages/win32com/client/build.py +0 -771
  426. py2docfx/venv/venv1/Lib/site-packages/win32com/client/combrowse.py +0 -604
  427. py2docfx/venv/venv1/Lib/site-packages/win32com/client/connect.py +0 -48
  428. py2docfx/venv/venv1/Lib/site-packages/win32com/client/dynamic.py +0 -699
  429. py2docfx/venv/venv1/Lib/site-packages/win32com/client/gencache.py +0 -825
  430. py2docfx/venv/venv1/Lib/site-packages/win32com/client/genpy.py +0 -1350
  431. py2docfx/venv/venv1/Lib/site-packages/win32com/client/makepy.py +0 -453
  432. py2docfx/venv/venv1/Lib/site-packages/win32com/client/selecttlb.py +0 -182
  433. py2docfx/venv/venv1/Lib/site-packages/win32com/client/tlbrowse.py +0 -277
  434. py2docfx/venv/venv1/Lib/site-packages/win32com/client/util.py +0 -103
  435. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/__init__.py +0 -0
  436. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/connect.py +0 -96
  437. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/dump_clipboard.py +0 -74
  438. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsApartmentThreaded.py +0 -98
  439. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsFreeThreaded.py +0 -92
  440. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelAddin.py +0 -169
  441. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelRTDServer.py +0 -434
  442. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/iebutton.py +0 -214
  443. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/ietoolbar.py +0 -368
  444. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/outlookAddin.py +0 -135
  445. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/trybag.py +0 -78
  446. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/__init__.py +0 -1
  447. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegw.py +0 -618
  448. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwenum.py +0 -331
  449. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwparse.py +0 -1017
  450. py2docfx/venv/venv1/Lib/site-packages/win32com/olectl.py +0 -70
  451. py2docfx/venv/venv1/Lib/site-packages/win32com/server/__init__.py +0 -1
  452. py2docfx/venv/venv1/Lib/site-packages/win32com/server/connect.py +0 -85
  453. py2docfx/venv/venv1/Lib/site-packages/win32com/server/dispatcher.py +0 -239
  454. py2docfx/venv/venv1/Lib/site-packages/win32com/server/exception.py +0 -99
  455. py2docfx/venv/venv1/Lib/site-packages/win32com/server/factory.py +0 -26
  456. py2docfx/venv/venv1/Lib/site-packages/win32com/server/localserver.py +0 -53
  457. py2docfx/venv/venv1/Lib/site-packages/win32com/server/policy.py +0 -803
  458. py2docfx/venv/venv1/Lib/site-packages/win32com/server/register.py +0 -677
  459. py2docfx/venv/venv1/Lib/site-packages/win32com/server/util.py +0 -229
  460. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/PythonTools.py +0 -47
  461. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/__init__.py +0 -0
  462. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/dictionary.py +0 -133
  463. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/interp.py +0 -59
  464. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/perfmon.py +0 -36
  465. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/test_pycomtest.py +0 -181
  466. py2docfx/venv/venv1/Lib/site-packages/win32com/storagecon.py +0 -142
  467. py2docfx/venv/venv1/Lib/site-packages/win32com/test/GenTestScripts.py +0 -95
  468. py2docfx/venv/venv1/Lib/site-packages/win32com/test/__init__.py +0 -1
  469. py2docfx/venv/venv1/Lib/site-packages/win32com/test/daodump.py +0 -88
  470. py2docfx/venv/venv1/Lib/site-packages/win32com/test/errorSemantics.py +0 -243
  471. py2docfx/venv/venv1/Lib/site-packages/win32com/test/pippo_server.py +0 -96
  472. py2docfx/venv/venv1/Lib/site-packages/win32com/test/policySemantics.py +0 -115
  473. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testADOEvents.py +0 -100
  474. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAXScript.py +0 -44
  475. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAccess.py +0 -185
  476. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testArrays.py +0 -99
  477. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testClipboard.py +0 -169
  478. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testCollections.py +0 -159
  479. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testConversionErrors.py +0 -35
  480. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDCOM.py +0 -50
  481. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDates.py +0 -74
  482. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDictionary.py +0 -101
  483. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDynamic.py +0 -83
  484. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExchange.py +0 -121
  485. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExplorer.py +0 -139
  486. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGIT.py +0 -142
  487. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGatewayAddresses.py +0 -149
  488. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testIterators.py +0 -140
  489. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOffice.py +0 -184
  490. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOfficeEvents.py +0 -138
  491. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMarshal.py +0 -160
  492. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPersist.py +0 -227
  493. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPippo.py +0 -80
  494. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPyComTest.py +0 -918
  495. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testROT.py +0 -29
  496. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testServers.py +0 -51
  497. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testShell.py +0 -272
  498. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStorage.py +0 -88
  499. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStreams.py +0 -147
  500. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testWMI.py +0 -18
  501. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testall.py +0 -320
  502. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testmakepy.py +0 -54
  503. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvb.py +0 -583
  504. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvbscript_regexp.py +0 -40
  505. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testxslt.py +0 -34
  506. py2docfx/venv/venv1/Lib/site-packages/win32com/test/util.py +0 -262
  507. py2docfx/venv/venv1/Lib/site-packages/win32com/universal.py +0 -224
  508. py2docfx/venv/venv1/Lib/site-packages/win32com/util.py +0 -35
  509. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/__init__.py +0 -113
  510. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/adsicon.py +0 -340
  511. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/objectPicker.py +0 -68
  512. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/scp.py +0 -565
  513. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/search.py +0 -151
  514. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/test.py +0 -274
  515. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/__init__.py +0 -6
  516. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditSecurity.py +0 -229
  517. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditServiceSecurity.py +0 -219
  518. py2docfx/venv/venv1/Lib/site-packages/win32comext/axcontrol/__init__.py +0 -4
  519. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/__init__.py +0 -4
  520. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/adb.py +0 -467
  521. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/codecontainer.py +0 -279
  522. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/contexts.py +0 -58
  523. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/debugger.py +0 -238
  524. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/documents.py +0 -135
  525. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/dump.py +0 -57
  526. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/expressions.py +0 -212
  527. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/gateways.py +0 -583
  528. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/stackframe.py +0 -178
  529. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/util.py +0 -98
  530. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/__init__.py +0 -4
  531. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/asputil.py +0 -13
  532. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/__init__.py +0 -1
  533. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/debug.py +0 -223
  534. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/error.py +0 -262
  535. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/framework.py +0 -1291
  536. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pydumper.py +0 -78
  537. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript.py +0 -438
  538. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript_rexec.py +0 -54
  539. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/scriptdispatch.py +0 -103
  540. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/__init__.py +0 -0
  541. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/axsite.py +0 -145
  542. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/leakTest.py +0 -185
  543. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost.py +0 -240
  544. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost4Dbg.py +0 -83
  545. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/__init__.py +0 -6
  546. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/show_all_jobs.py +0 -48
  547. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/test_bits.py +0 -119
  548. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/__init__.py +0 -4
  549. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/__init__.py +0 -1
  550. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_record.py +0 -60
  551. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_test.py +0 -402
  552. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/__init__.py +0 -1
  553. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/demo/filterDemo.py +0 -300
  554. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/ifiltercon.py +0 -110
  555. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/__init__.py +0 -4
  556. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/inetcon.py +0 -261
  557. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/__init__.py +0 -21
  558. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/demos/mapisend.py +0 -98
  559. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/emsabtags.py +0 -875
  560. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapitags.py +0 -1023
  561. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapiutil.py +0 -211
  562. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/__init__.py +0 -1
  563. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/pscon.py +0 -838
  564. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/test/testpropsys.py +0 -5
  565. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/__init__.py +0 -4
  566. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IActiveDesktop.py +0 -83
  567. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IFileOperationProgressSink.py +0 -179
  568. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IShellLinkDataList.py +0 -67
  569. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/ITransferAdviseSink.py +0 -93
  570. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IUniformResourceLocator.py +0 -56
  571. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/browse_for_folder.py +0 -45
  572. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/create_link.py +0 -73
  573. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/dump_link.py +0 -58
  574. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/explorer_browser.py +0 -143
  575. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/column_provider.py +0 -125
  576. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/context_menu.py +0 -122
  577. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/copy_hook.py +0 -84
  578. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/empty_volume_cache.py +0 -188
  579. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/folder_view.py +0 -866
  580. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/icon_handler.py +0 -81
  581. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/shell_view.py +0 -971
  582. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/shellexecuteex.py +0 -19
  583. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/viewstate.py +0 -68
  584. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/walk_shell_folders.py +0 -24
  585. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/shellcon.py +0 -1615
  586. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testSHFileOperation.py +0 -75
  587. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellFolder.py +0 -21
  588. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellItem.py +0 -69
  589. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/__init__.py +0 -6
  590. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask.py +0 -66
  591. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_1.py +0 -68
  592. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_2.py +0 -49
  593. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_localsystem.py +0 -3
  594. py2docfx/venv/venv1/Scripts/pywin32_postinstall.py +0 -733
  595. py2docfx/venv/venv1/Scripts/pywin32_testall.py +0 -120
  596. {py2docfx-0.1.15.dev2025501.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/WHEEL +0 -0
  597. {py2docfx-0.1.15.dev2025501.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/top_level.txt +0 -0
@@ -1,1097 +0,0 @@
1
- # debugger.py
2
-
3
- # A debugger for Pythonwin. Built from pdb.
4
-
5
- # Mark Hammond (MHammond@skippinet.com.au) - Dec 94.
6
-
7
- # usage:
8
- # >>> import pywin.debugger
9
- # >>> pywin.debugger.GetDebugger().run("command")
10
-
11
- import bdb
12
- import os
13
- import pdb
14
- import string
15
- import sys
16
- import traceback
17
- import types
18
-
19
- import commctrl
20
- import pywin.docking.DockingBar
21
- import win32api
22
- import win32con
23
- import win32ui
24
- from pywin.framework import app, editor, interact, scriptutils
25
- from pywin.framework.editor.color.coloreditor import MARKER_BREAKPOINT, MARKER_CURRENT
26
- from pywin.mfc import afxres, window
27
- from pywin.tools import browser, hierlist
28
-
29
- from .dbgcon import *
30
-
31
- LVN_ENDLABELEDIT = commctrl.LVN_ENDLABELEDITW
32
-
33
-
34
- def SetInteractiveContext(globs, locs):
35
- if interact.edit is not None and interact.edit.currentView is not None:
36
- interact.edit.currentView.SetContext(globs, locs)
37
-
38
-
39
- def _LineStateToMarker(ls):
40
- if ls == LINESTATE_CURRENT:
41
- return MARKER_CURRENT
42
- # elif ls == LINESTATE_CALLSTACK:
43
- # return MARKER_CALLSTACK
44
- return MARKER_BREAKPOINT
45
-
46
-
47
- class HierListItem(browser.HLIPythonObject):
48
- pass
49
-
50
-
51
- class HierFrameItem(HierListItem):
52
- def __init__(self, frame, debugger):
53
- HierListItem.__init__(self, frame, repr(frame))
54
- self.debugger = debugger
55
-
56
- def GetText(self):
57
- name = self.myobject.f_code.co_name
58
- if not name or name == "?":
59
- # See if locals has a '__name__' (ie, a module)
60
- if "__name__" in self.myobject.f_locals:
61
- name = str(self.myobject.f_locals["__name__"]) + " module"
62
- else:
63
- name = "<Debugger Context>"
64
-
65
- return "%s (%s:%d)" % (
66
- name,
67
- os.path.split(self.myobject.f_code.co_filename)[1],
68
- self.myobject.f_lineno,
69
- )
70
-
71
- def GetBitmapColumn(self):
72
- if self.debugger.curframe is self.myobject:
73
- return 7
74
- else:
75
- return 8
76
-
77
- def GetSubList(self):
78
- ret = []
79
- ret.append(HierFrameDict(self.myobject.f_locals, "Locals", 2))
80
- ret.append(HierFrameDict(self.myobject.f_globals, "Globals", 1))
81
- return ret
82
-
83
- def IsExpandable(self):
84
- return 1
85
-
86
- def TakeDefaultAction(self):
87
- # Set the default frame to be this frame.
88
- self.debugger.set_cur_frame(self.myobject)
89
- return 1
90
-
91
-
92
- class HierFrameDict(browser.HLIDict):
93
- def __init__(self, dict, name, bitmapColumn):
94
- self.bitmapColumn = bitmapColumn
95
- browser.HLIDict.__init__(self, dict, name)
96
-
97
- def GetBitmapColumn(self):
98
- return self.bitmapColumn
99
-
100
-
101
- class NoStackAvailableItem(HierListItem):
102
- def __init__(self, why):
103
- HierListItem.__init__(self, None, why)
104
-
105
- def IsExpandable(self):
106
- return 0
107
-
108
- def GetText(self):
109
- return self.name
110
-
111
- def GetBitmapColumn(self):
112
- return 8
113
-
114
-
115
- class HierStackRoot(HierListItem):
116
- def __init__(self, debugger):
117
- HierListItem.__init__(self, debugger, None)
118
- self.last_stack = []
119
-
120
- # def __del__(self):
121
- # print("HierStackRoot dieing")
122
- def GetSubList(self):
123
- debugger = self.myobject
124
- # print(self.debugger.stack, self.debugger.curframe)
125
- ret = []
126
- if debugger.debuggerState == DBGSTATE_BREAK:
127
- stackUse = debugger.stack[:]
128
- stackUse.reverse()
129
- self.last_stack = []
130
- for frame, lineno in stackUse:
131
- self.last_stack.append((frame, lineno))
132
- if (
133
- frame is debugger.userbotframe
134
- ): # Don't bother showing frames below our bottom frame.
135
- break
136
- for frame, lineno in self.last_stack:
137
- ret.append(HierFrameItem(frame, debugger))
138
- ## elif debugger.debuggerState==DBGSTATE_NOT_DEBUGGING:
139
- ## ret.append(NoStackAvailableItem('<nothing is being debugged>'))
140
- ## else:
141
- ## ret.append(NoStackAvailableItem('<stack not available while running>'))
142
- return ret
143
-
144
- def GetText(self):
145
- return "root item"
146
-
147
- def IsExpandable(self):
148
- return 1
149
-
150
-
151
- class HierListDebugger(hierlist.HierListWithItems):
152
- """Hier List of stack frames, breakpoints, whatever"""
153
-
154
- def __init__(self):
155
- hierlist.HierListWithItems.__init__(
156
- self, None, win32ui.IDB_DEBUGGER_HIER, None, win32api.RGB(255, 0, 0)
157
- )
158
-
159
- def Setup(self, debugger):
160
- root = HierStackRoot(debugger)
161
- self.AcceptRoot(root)
162
-
163
-
164
- # def Refresh(self):
165
- # self.Setup()
166
-
167
-
168
- class DebuggerWindow(window.Wnd):
169
- def __init__(self, ob):
170
- window.Wnd.__init__(self, ob)
171
- self.debugger = None
172
-
173
- def Init(self, debugger):
174
- self.debugger = debugger
175
-
176
- def GetDefRect(self):
177
- defRect = app.LoadWindowSize("Debugger Windows\\" + self.title)
178
- if defRect[2] - defRect[0] == 0:
179
- defRect = 0, 0, 150, 150
180
- return defRect
181
-
182
- def OnDestroy(self, msg):
183
- newSize = self.GetWindowPlacement()[4]
184
- pywin.framework.app.SaveWindowSize("Debugger Windows\\" + self.title, newSize)
185
- return window.Wnd.OnDestroy(self, msg)
186
-
187
- def OnKeyDown(self, msg):
188
- key = msg[2]
189
- if key in (13, 27, 32):
190
- return 1
191
- if key in (46, 8): # delete/BS key
192
- self.DeleteSelected()
193
- return 0
194
- view = scriptutils.GetActiveView()
195
- try:
196
- firer = view.bindings.fire_key_event
197
- except AttributeError:
198
- firer = None
199
- if firer is not None:
200
- return firer(msg)
201
- else:
202
- return 1
203
-
204
- def DeleteSelected(self):
205
- win32api.MessageBeep()
206
-
207
- def EditSelected(self):
208
- win32api.MessageBeep()
209
-
210
-
211
- class DebuggerStackWindow(DebuggerWindow):
212
- title = "Stack"
213
-
214
- def __init__(self):
215
- DebuggerWindow.__init__(self, win32ui.CreateTreeCtrl())
216
- self.list = HierListDebugger()
217
- self.listOK = 0
218
-
219
- def SaveState(self):
220
- self.list.DeleteAllItems()
221
- self.listOK = 0
222
- win32ui.WriteProfileVal(
223
- "Debugger Windows\\" + self.title, "Visible", self.IsWindowVisible()
224
- )
225
-
226
- def CreateWindow(self, parent):
227
- style = (
228
- win32con.WS_CHILD
229
- | win32con.WS_VISIBLE
230
- | win32con.WS_BORDER
231
- | commctrl.TVS_HASLINES
232
- | commctrl.TVS_LINESATROOT
233
- | commctrl.TVS_HASBUTTONS
234
- )
235
- self._obj_.CreateWindow(style, self.GetDefRect(), parent, win32ui.IDC_LIST1)
236
- self.HookMessage(self.OnKeyDown, win32con.WM_KEYDOWN)
237
- self.HookMessage(self.OnKeyDown, win32con.WM_SYSKEYDOWN)
238
- self.list.HierInit(parent, self)
239
- self.listOK = 0 # delayed setup
240
- # self.list.Setup()
241
-
242
- def RespondDebuggerState(self, state):
243
- assert self.debugger is not None, "Init not called"
244
- if not self.listOK:
245
- self.listOK = 1
246
- self.list.Setup(self.debugger)
247
- else:
248
- self.list.Refresh()
249
-
250
- def RespondDebuggerData(self):
251
- try:
252
- handle = self.GetChildItem(0)
253
- except win32ui.error:
254
- return # No items
255
- while 1:
256
- item = self.list.ItemFromHandle(handle)
257
- col = self.list.GetBitmapColumn(item)
258
- selCol = self.list.GetSelectedBitmapColumn(item)
259
- if selCol is None:
260
- selCol = col
261
- if self.list.GetItemImage(handle) != (col, selCol):
262
- self.list.SetItemImage(handle, col, selCol)
263
- try:
264
- handle = self.GetNextSiblingItem(handle)
265
- except win32ui.error:
266
- break
267
-
268
-
269
- class DebuggerListViewWindow(DebuggerWindow):
270
- def __init__(self):
271
- DebuggerWindow.__init__(self, win32ui.CreateListCtrl())
272
-
273
- def CreateWindow(self, parent):
274
- list = self
275
- style = (
276
- win32con.WS_CHILD
277
- | win32con.WS_VISIBLE
278
- | win32con.WS_BORDER
279
- | commctrl.LVS_EDITLABELS
280
- | commctrl.LVS_REPORT
281
- )
282
- self._obj_.CreateWindow(style, self.GetDefRect(), parent, win32ui.IDC_LIST1)
283
- self.HookMessage(self.OnKeyDown, win32con.WM_KEYDOWN)
284
- self.HookMessage(self.OnKeyDown, win32con.WM_SYSKEYDOWN)
285
- list = self
286
- title, width = self.columns[0]
287
- itemDetails = (commctrl.LVCFMT_LEFT, width, title, 0)
288
- list.InsertColumn(0, itemDetails)
289
- col = 1
290
- for title, width in self.columns[1:]:
291
- col += 1
292
- itemDetails = (commctrl.LVCFMT_LEFT, width, title, 0)
293
- list.InsertColumn(col, itemDetails)
294
- parent.HookNotify(self.OnListEndLabelEdit, LVN_ENDLABELEDIT)
295
- parent.HookNotify(self.OnItemRightClick, commctrl.NM_RCLICK)
296
- parent.HookNotify(self.OnItemDoubleClick, commctrl.NM_DBLCLK)
297
-
298
- def RespondDebuggerData(self):
299
- pass
300
-
301
- def RespondDebuggerState(self, state):
302
- pass
303
-
304
- def EditSelected(self):
305
- try:
306
- sel = self.GetNextItem(-1, commctrl.LVNI_SELECTED)
307
- except win32ui.error:
308
- return
309
- self.EditLabel(sel)
310
-
311
- def OnKeyDown(self, msg):
312
- key = msg[2]
313
- # If someone starts typing, they probably are trying to edit the text!
314
- if chr(key) in string.ascii_uppercase:
315
- self.EditSelected()
316
- return 0
317
- return DebuggerWindow.OnKeyDown(self, msg)
318
-
319
- def OnItemDoubleClick(self, notify_data, extra):
320
- self.EditSelected()
321
-
322
- def OnItemRightClick(self, notify_data, extra):
323
- # First select the item we right-clicked on.
324
- pt = self.ScreenToClient(win32api.GetCursorPos())
325
- flags, hItem, subitem = self.HitTest(pt)
326
- if hItem == -1 or commctrl.TVHT_ONITEM & flags == 0:
327
- return None
328
- self.SetItemState(hItem, commctrl.LVIS_SELECTED, commctrl.LVIS_SELECTED)
329
-
330
- menu = win32ui.CreatePopupMenu()
331
- menu.AppendMenu(win32con.MF_STRING | win32con.MF_ENABLED, 1000, "Edit item")
332
- menu.AppendMenu(win32con.MF_STRING | win32con.MF_ENABLED, 1001, "Delete item")
333
- dockbar = self.GetParent()
334
- if dockbar.IsFloating():
335
- hook_parent = win32ui.GetMainFrame()
336
- else:
337
- hook_parent = self.GetParentFrame()
338
- hook_parent.HookCommand(self.OnEditItem, 1000)
339
- hook_parent.HookCommand(self.OnDeleteItem, 1001)
340
- menu.TrackPopupMenu(win32api.GetCursorPos()) # track at mouse position.
341
- return None
342
-
343
- def OnDeleteItem(self, command, code):
344
- self.DeleteSelected()
345
-
346
- def OnEditItem(self, command, code):
347
- self.EditSelected()
348
-
349
-
350
- class DebuggerBreakpointsWindow(DebuggerListViewWindow):
351
- title = "Breakpoints"
352
- columns = [("Condition", 70), ("Location", 1024)]
353
-
354
- def SaveState(self):
355
- items = []
356
- for i in range(self.GetItemCount()):
357
- items.append(self.GetItemText(i, 0))
358
- items.append(self.GetItemText(i, 1))
359
- win32ui.WriteProfileVal(
360
- "Debugger Windows\\" + self.title, "BreakpointList", "\t".join(items)
361
- )
362
- win32ui.WriteProfileVal(
363
- "Debugger Windows\\" + self.title, "Visible", self.IsWindowVisible()
364
- )
365
- return 1
366
-
367
- def OnListEndLabelEdit(self, std, extra):
368
- item = extra[0]
369
- text = item[4]
370
- if text is None:
371
- return
372
-
373
- item_id = self.GetItem(item[0])[6]
374
-
375
- from bdb import Breakpoint
376
-
377
- for bplist in Breakpoint.bplist.values():
378
- for bp in bplist:
379
- if id(bp) == item_id:
380
- if text.strip().lower() == "none":
381
- text = None
382
- bp.cond = text
383
- break
384
- self.RespondDebuggerData()
385
-
386
- def DeleteSelected(self):
387
- try:
388
- num = self.GetNextItem(-1, commctrl.LVNI_SELECTED)
389
- item_id = self.GetItem(num)[6]
390
- from bdb import Breakpoint
391
-
392
- for bplist in Breakpoint.bplist.values():
393
- for bp in bplist:
394
- if id(bp) == item_id:
395
- self.debugger.clear_break(bp.file, bp.line)
396
- break
397
- except win32ui.error:
398
- win32api.MessageBeep()
399
- self.RespondDebuggerData()
400
-
401
- def RespondDebuggerData(self):
402
- l = self
403
- l.DeleteAllItems()
404
- index = -1
405
- from bdb import Breakpoint
406
-
407
- for bplist in Breakpoint.bplist.values():
408
- for bp in bplist:
409
- baseName = os.path.split(bp.file)[1]
410
- cond = bp.cond
411
- item = index + 1, 0, 0, 0, str(cond), 0, id(bp)
412
- index = l.InsertItem(item)
413
- l.SetItemText(index, 1, f"{baseName}: {bp.line}")
414
-
415
-
416
- class DebuggerWatchWindow(DebuggerListViewWindow):
417
- title = "Watch"
418
- columns = [("Expression", 70), ("Value", 1024)]
419
-
420
- def CreateWindow(self, parent):
421
- DebuggerListViewWindow.CreateWindow(self, parent)
422
- items = win32ui.GetProfileVal(
423
- "Debugger Windows\\" + self.title, "Items", ""
424
- ).split("\t")
425
- index = -1
426
- for item in items:
427
- if item:
428
- index = self.InsertItem(index + 1, item)
429
- self.InsertItem(index + 1, "<New Item>")
430
-
431
- def SaveState(self):
432
- items = []
433
- for i in range(self.GetItemCount() - 1):
434
- items.append(self.GetItemText(i, 0))
435
- win32ui.WriteProfileVal(
436
- "Debugger Windows\\" + self.title, "Items", "\t".join(items)
437
- )
438
- win32ui.WriteProfileVal(
439
- "Debugger Windows\\" + self.title, "Visible", self.IsWindowVisible()
440
- )
441
- return 1
442
-
443
- def OnListEndLabelEdit(self, std, extra):
444
- item = extra[0]
445
- itemno = item[0]
446
- text = item[4]
447
- if text is None:
448
- return
449
- self.SetItemText(itemno, 0, text)
450
- if itemno == self.GetItemCount() - 1:
451
- self.InsertItem(itemno + 1, "<New Item>")
452
- self.RespondDebuggerState(self.debugger.debuggerState)
453
-
454
- def DeleteSelected(self):
455
- try:
456
- num = self.GetNextItem(-1, commctrl.LVNI_SELECTED)
457
- if num < self.GetItemCount() - 1: # We can't delete the last
458
- self.DeleteItem(num)
459
- except win32ui.error:
460
- win32api.MessageBeep()
461
-
462
- def RespondDebuggerState(self, state):
463
- globs = locs = None
464
- if state == DBGSTATE_BREAK:
465
- if self.debugger.curframe:
466
- globs = self.debugger.curframe.f_globals
467
- locs = self.debugger.curframe.f_locals
468
- elif state == DBGSTATE_NOT_DEBUGGING:
469
- import __main__
470
-
471
- globs = locs = __main__.__dict__
472
- for i in range(self.GetItemCount() - 1):
473
- text = self.GetItemText(i, 0)
474
- if globs is None:
475
- val = ""
476
- else:
477
- try:
478
- val = repr(eval(text, globs, locs))
479
- except SyntaxError:
480
- val = "Syntax Error"
481
- except:
482
- t, v, tb = sys.exc_info()
483
- val = traceback.format_exception_only(t, v)[0].strip()
484
- tb = None # prevent a cycle.
485
- self.SetItemText(i, 1, val)
486
-
487
-
488
- def CreateDebuggerDialog(parent, klass):
489
- control = klass()
490
- control.CreateWindow(parent)
491
- return control
492
-
493
-
494
- DebuggerDialogInfos = (
495
- (0xE810, DebuggerStackWindow, None),
496
- (0xE811, DebuggerBreakpointsWindow, (10, 10)),
497
- (0xE812, DebuggerWatchWindow, None),
498
- )
499
-
500
-
501
- # Prepare all the "control bars" for this package.
502
- # If control bars are not all loaded when the toolbar-state functions are
503
- # called, things go horribly wrong.
504
- def PrepareControlBars(frame):
505
- style = (
506
- win32con.WS_CHILD
507
- | afxres.CBRS_SIZE_DYNAMIC
508
- | afxres.CBRS_TOP
509
- | afxres.CBRS_TOOLTIPS
510
- | afxres.CBRS_FLYBY
511
- )
512
- tbd = win32ui.CreateToolBar(frame, style, win32ui.ID_VIEW_TOOLBAR_DBG)
513
- tbd.ModifyStyle(0, commctrl.TBSTYLE_FLAT)
514
- tbd.LoadToolBar(win32ui.IDR_DEBUGGER)
515
- tbd.EnableDocking(afxres.CBRS_ALIGN_ANY)
516
- tbd.SetWindowText("Debugger")
517
- frame.DockControlBar(tbd)
518
-
519
- # and the other windows.
520
- for id, klass, float in DebuggerDialogInfos:
521
- try:
522
- frame.GetControlBar(id)
523
- exists = 1
524
- except win32ui.error:
525
- exists = 0
526
- if exists:
527
- continue
528
- bar = pywin.docking.DockingBar.DockingBar()
529
- style = win32con.WS_CHILD | afxres.CBRS_LEFT # don't create visible.
530
- bar.CreateWindow(
531
- frame,
532
- CreateDebuggerDialog,
533
- klass.title,
534
- id,
535
- style,
536
- childCreatorArgs=(klass,),
537
- )
538
- bar.SetBarStyle(
539
- bar.GetBarStyle()
540
- | afxres.CBRS_TOOLTIPS
541
- | afxres.CBRS_FLYBY
542
- | afxres.CBRS_SIZE_DYNAMIC
543
- )
544
- bar.EnableDocking(afxres.CBRS_ALIGN_ANY)
545
- if float is None:
546
- frame.DockControlBar(bar)
547
- else:
548
- frame.FloatControlBar(bar, float, afxres.CBRS_ALIGN_ANY)
549
-
550
- ## frame.ShowControlBar(bar, 0, 1)
551
-
552
-
553
- SKIP_NONE = 0
554
- SKIP_STEP = 1
555
- SKIP_RUN = 2
556
-
557
- debugger_parent = pdb.Pdb
558
-
559
-
560
- class Debugger(debugger_parent):
561
- def __init__(self):
562
- self.inited = 0
563
- self.skipBotFrame = SKIP_NONE
564
- self.userbotframe = None
565
- self.frameShutdown = 0
566
- self.pumping = 0
567
- self.debuggerState = DBGSTATE_NOT_DEBUGGING # Assume so, anyway.
568
- self.shownLineCurrent = None # The last filename I highlighted.
569
- self.shownLineCallstack = None # The last filename I highlighted.
570
- self.last_cmd_debugged = ""
571
- self.abortClosed = 0
572
- self.isInitialBreakpoint = 0
573
- debugger_parent.__init__(self)
574
-
575
- # See if any break-points have been set in the editor
576
- for doc in editor.editorTemplate.GetDocumentList():
577
- lineNo = -1
578
- while 1:
579
- lineNo = doc.MarkerGetNext(lineNo + 1, MARKER_BREAKPOINT)
580
- if lineNo <= 0:
581
- break
582
- self.set_break(doc.GetPathName(), lineNo)
583
-
584
- self.reset()
585
- self.inForcedGUI = win32ui.GetApp().IsInproc()
586
- self.options = LoadDebuggerOptions()
587
- self.bAtException = self.bAtPostMortem = 0
588
-
589
- def __del__(self):
590
- self.close()
591
-
592
- def close(self, frameShutdown=0):
593
- # abortClose indicates if we have total shutdown
594
- # (ie, main window is dieing)
595
- if self.pumping:
596
- # Can stop pump here, as it only posts a message, and
597
- # returns immediately.
598
- if not self.StopDebuggerPump(): # User cancelled close.
599
- return 0
600
- # NOTE - from this point on the close can not be
601
- # stopped - the WM_QUIT message is already in the queue.
602
- self.frameShutdown = frameShutdown
603
- if not self.inited:
604
- return 1
605
- self.inited = 0
606
-
607
- SetInteractiveContext(None, None)
608
-
609
- frame = win32ui.GetMainFrame()
610
- # Hide the debuger toolbars (as they won't normally form part of the main toolbar state.
611
- for id, klass, float in DebuggerDialogInfos:
612
- try:
613
- tb = frame.GetControlBar(id)
614
- if tb.dialog is not None: # We may never have actually been shown.
615
- tb.dialog.SaveState()
616
- frame.ShowControlBar(tb, 0, 1)
617
- except win32ui.error:
618
- pass
619
-
620
- self._UnshowCurrentLine()
621
- self.set_quit()
622
- return 1
623
-
624
- def StopDebuggerPump(self):
625
- assert self.pumping, "Can't stop the debugger pump if I'm not pumping!"
626
- # After stopping a pump, I may never return.
627
- if self.GUIAboutToFinishInteract():
628
- self.pumping = 0
629
- win32ui.StopDebuggerPump() # Posts a message, so we do return.
630
- return 1
631
- return 0
632
-
633
- def get_option(self, option):
634
- """Public interface into debugger options"""
635
- try:
636
- return self.options[option]
637
- except KeyError as error:
638
- raise KeyError(f"Option {option} is not a valid option") from error
639
-
640
- def prep_run(self, cmd):
641
- pass
642
-
643
- def done_run(self, cmd=None):
644
- self.RespondDebuggerState(DBGSTATE_NOT_DEBUGGING)
645
- self.close()
646
-
647
- def canonic(self, fname):
648
- return os.path.abspath(fname).lower()
649
-
650
- def reset(self):
651
- debugger_parent.reset(self)
652
- self.userbotframe = None
653
- self.UpdateAllLineStates()
654
- self._UnshowCurrentLine()
655
-
656
- def setup(self, f, t):
657
- debugger_parent.setup(self, f, t)
658
- self.bAtException = t is not None
659
-
660
- def set_break(self, filename, lineno, temporary=0, cond=None):
661
- filename = self.canonic(filename)
662
- self.SetLineState(filename, lineno, LINESTATE_BREAKPOINT)
663
- return debugger_parent.set_break(self, filename, lineno, temporary, cond)
664
-
665
- def clear_break(self, filename, lineno):
666
- filename = self.canonic(filename)
667
- self.ResetLineState(filename, lineno, LINESTATE_BREAKPOINT)
668
- return debugger_parent.clear_break(self, filename, lineno)
669
-
670
- def cmdloop(self):
671
- if self.frameShutdown:
672
- return # App in the process of closing - never break in!
673
- self.GUIAboutToBreak()
674
-
675
- def print_stack_entry(self, frame):
676
- # We don't want a stack printed - our GUI is better :-)
677
- pass
678
-
679
- def user_return(self, frame, return_value):
680
- # Same as parent, just no "print"
681
- # This function is called when a return trap is set here
682
- frame.f_locals["__return__"] = return_value
683
- self.interaction(frame, None)
684
-
685
- def user_call(self, frame, args):
686
- # base class has an annoying 'print' that adds no value to us...
687
- if self.stop_here(frame):
688
- self.interaction(frame, None)
689
-
690
- def user_exception(self, frame, exc_info):
691
- # This function is called if an exception occurs,
692
- # but only if we are to stop at or just below this level
693
- (exc_type, exc_value, exc_traceback) = exc_info
694
- if self.get_option(OPT_STOP_EXCEPTIONS):
695
- frame.f_locals["__exception__"] = exc_type, exc_value
696
- print("Unhandled exception while debugging...")
697
- # We may be called with exc_value
698
- # being the args to the exception, or it may already be
699
- # instantiated (IOW, PyErr_Normalize() hasn't been
700
- # called on the args). traceback.print_exception fails.
701
- # So we instantiate an exception instance to print.
702
- if not isinstance(exc_value, BaseException):
703
- # they are args - may be a single item or already a tuple
704
- if not isinstance(exc_value, tuple):
705
- exc_value = (exc_value,)
706
- exc_value = exc_type(*exc_value)
707
-
708
- traceback.print_exception(exc_type, exc_value, exc_traceback)
709
- self.interaction(frame, exc_traceback)
710
-
711
- def user_line(self, frame):
712
- if frame.f_lineno == 0:
713
- return
714
- debugger_parent.user_line(self, frame)
715
-
716
- def stop_here(self, frame):
717
- if self.isInitialBreakpoint:
718
- self.isInitialBreakpoint = 0
719
- self.set_continue()
720
- return 0
721
- if frame is self.botframe and self.skipBotFrame == SKIP_RUN:
722
- self.set_continue()
723
- return 0
724
- if frame is self.botframe and self.skipBotFrame == SKIP_STEP:
725
- self.set_step()
726
- return 0
727
- return debugger_parent.stop_here(self, frame)
728
-
729
- def run(self, cmd, globals=None, locals=None, start_stepping=1):
730
- if not isinstance(cmd, (str, types.CodeType)):
731
- raise TypeError("Only strings can be run")
732
- self.last_cmd_debugged = cmd
733
- if start_stepping:
734
- self.isInitialBreakpoint = 0
735
- else:
736
- self.isInitialBreakpoint = 1
737
- try:
738
- if globals is None:
739
- import __main__
740
-
741
- globals = __main__.__dict__
742
- if locals is None:
743
- locals = globals
744
- self.reset()
745
- self.prep_run(cmd)
746
- sys.settrace(self.trace_dispatch)
747
- if not isinstance(cmd, types.CodeType):
748
- cmd += "\n"
749
- try:
750
- try:
751
- if start_stepping:
752
- self.skipBotFrame = SKIP_STEP
753
- else:
754
- self.skipBotFrame = SKIP_RUN
755
- exec(cmd, globals, locals)
756
- except bdb.BdbQuit:
757
- pass
758
- finally:
759
- self.skipBotFrame = SKIP_NONE
760
- self.quitting = 1
761
- sys.settrace(None)
762
-
763
- finally:
764
- self.done_run(cmd)
765
-
766
- def runeval(self, expr, globals=None, locals=None):
767
- self.prep_run(expr)
768
- try:
769
- debugger_parent.runeval(self, expr, globals, locals)
770
- finally:
771
- self.done_run(expr)
772
-
773
- def runexec(self, what, globs=None, locs=None):
774
- self.reset()
775
- sys.settrace(self.trace_dispatch)
776
- try:
777
- try:
778
- exec(what, globs, locs)
779
- except bdb.BdbQuit:
780
- pass
781
- finally:
782
- self.quitting = 1
783
- sys.settrace(None)
784
-
785
- def do_set_step(self):
786
- if self.GUIAboutToRun():
787
- self.set_step()
788
-
789
- def do_set_next(self):
790
- if self.GUIAboutToRun():
791
- self.set_next(self.curframe)
792
-
793
- def do_set_return(self):
794
- if self.GUIAboutToRun():
795
- self.set_return(self.curframe)
796
-
797
- def do_set_continue(self):
798
- if self.GUIAboutToRun():
799
- self.set_continue()
800
-
801
- def set_quit(self):
802
- ok = 1
803
- if self.pumping:
804
- ok = self.StopDebuggerPump()
805
- if ok:
806
- debugger_parent.set_quit(self)
807
-
808
- def _dump_frame_(self, frame, name=None):
809
- if name is None:
810
- name = ""
811
- if frame:
812
- if frame.f_code and frame.f_code.co_filename:
813
- fname = os.path.split(frame.f_code.co_filename)[1]
814
- else:
815
- fname = "??"
816
- print(repr(name), fname, frame.f_lineno, frame)
817
- else:
818
- print(repr(name), "None")
819
-
820
- def set_trace(self):
821
- # Start debugging from _2_ levels up!
822
- try:
823
- 1 + ""
824
- except:
825
- frame = sys.exc_info()[2].tb_frame.f_back.f_back
826
- self.reset()
827
- self.userbotframe = None
828
- while frame:
829
- # scriptutils.py creates a local variable with name
830
- # '_debugger_stop_frame_', and we don't go past it
831
- # (everything above this is Pythonwin framework code)
832
- if "_debugger_stop_frame_" in frame.f_locals:
833
- self.userbotframe = frame
834
- break
835
-
836
- frame.f_trace = self.trace_dispatch
837
- self.botframe = frame
838
- frame = frame.f_back
839
- self.set_step()
840
- sys.settrace(self.trace_dispatch)
841
-
842
- def set_cur_frame(self, frame):
843
- # Sets the "current" frame - ie, the frame with focus. This is the
844
- # frame on which "step out" etc actions are taken.
845
- # This may or may not be the top of the stack.
846
- assert frame is not None, "You must pass a valid frame"
847
- self.curframe = frame
848
- for f, index in self.stack:
849
- if f is frame:
850
- self.curindex = index
851
- break
852
- else:
853
- assert False, "Can't find the frame in the stack."
854
- SetInteractiveContext(frame.f_globals, frame.f_locals)
855
- self.GUIRespondDebuggerData()
856
- self.ShowCurrentLine()
857
-
858
- def IsBreak(self):
859
- return self.debuggerState == DBGSTATE_BREAK
860
-
861
- def IsDebugging(self):
862
- return self.debuggerState != DBGSTATE_NOT_DEBUGGING
863
-
864
- def RespondDebuggerState(self, state):
865
- if state == self.debuggerState:
866
- return
867
- if state == DBGSTATE_NOT_DEBUGGING: # Debugger exists, but not doing anything
868
- title = ""
869
- elif state == DBGSTATE_RUNNING: # Code is running under the debugger.
870
- title = " - running"
871
- elif state == DBGSTATE_BREAK: # We are at a breakpoint or stepping or whatever.
872
- if not self.bAtException:
873
- title = " - break"
874
- elif self.bAtPostMortem:
875
- title = " - post mortem exception"
876
- else:
877
- title = " - exception"
878
- else:
879
- raise ValueError("Invalid debugger state passed!")
880
- win32ui.GetMainFrame().SetWindowText(
881
- win32ui.LoadString(win32ui.IDR_MAINFRAME) + title
882
- )
883
- if self.debuggerState == DBGSTATE_QUITTING and state != DBGSTATE_NOT_DEBUGGING:
884
- print("Ignoring state change cos I'm trying to stop!", state)
885
- return
886
- self.debuggerState = state
887
- try:
888
- frame = win32ui.GetMainFrame()
889
- except win32ui.error:
890
- frame = None
891
- if frame is not None:
892
- for id, klass, float in DebuggerDialogInfos:
893
- cb = win32ui.GetMainFrame().GetControlBar(id).dialog
894
- cb.RespondDebuggerState(state)
895
- # Tell each open editor window about the state transition
896
- for doc in editor.editorTemplate.GetDocumentList():
897
- doc.OnDebuggerStateChange(state)
898
- self.ShowCurrentLine()
899
-
900
- #
901
- # GUI debugger interface.
902
- #
903
- def GUICheckInit(self):
904
- if self.inited:
905
- return
906
- self.inited = 1
907
- frame = win32ui.GetMainFrame()
908
-
909
- # Ensure the debugger windows are attached to the debugger.
910
- for id, klass, float in DebuggerDialogInfos:
911
- w = frame.GetControlBar(id)
912
- w.dialog.Init(self)
913
- # Show toolbar if it was visible during last debug session
914
- # This would be better done using a CDockState, but that class is not wrapped yet
915
- if win32ui.GetProfileVal(
916
- "Debugger Windows\\" + w.dialog.title, "Visible", 0
917
- ):
918
- frame.ShowControlBar(w, 1, 1)
919
-
920
- # ALWAYS show debugging toolbar, regardless of saved state
921
- tb = frame.GetControlBar(win32ui.ID_VIEW_TOOLBAR_DBG)
922
- frame.ShowControlBar(tb, 1, 1)
923
- self.GUIRespondDebuggerData()
924
-
925
- # frame.RecalcLayout()
926
-
927
- def GetDebuggerBar(self, barName):
928
- frame = win32ui.GetMainFrame()
929
- for id, klass, float in DebuggerDialogInfos:
930
- if klass.title == barName:
931
- return frame.GetControlBar(id)
932
- assert False, "Can't find a bar of that name!"
933
-
934
- def GUIRespondDebuggerData(self):
935
- if not self.inited: # GUI not inited - no toolbars etc.
936
- return
937
-
938
- for id, klass, float in DebuggerDialogInfos:
939
- cb = win32ui.GetMainFrame().GetControlBar(id).dialog
940
- cb.RespondDebuggerData()
941
-
942
- def GUIAboutToRun(self):
943
- if not self.StopDebuggerPump():
944
- return 0
945
- self._UnshowCurrentLine()
946
- self.RespondDebuggerState(DBGSTATE_RUNNING)
947
- SetInteractiveContext(None, None)
948
- return 1
949
-
950
- def GUIAboutToBreak(self):
951
- "Called as the GUI debugger is about to get context, and take control of the running program."
952
- self.GUICheckInit()
953
- self.RespondDebuggerState(DBGSTATE_BREAK)
954
- self.GUIAboutToInteract()
955
- if self.pumping:
956
- print("!!! Already pumping - outa here")
957
- return
958
- self.pumping = 1
959
- win32ui.StartDebuggerPump() # NOTE - This will NOT return until the user is finished interacting
960
- assert not self.pumping, "Should not be pumping once the pump has finished"
961
- if self.frameShutdown: # User shut down app while debugging
962
- win32ui.GetMainFrame().PostMessage(win32con.WM_CLOSE)
963
-
964
- def GUIAboutToInteract(self):
965
- "Called as the GUI is about to perform any interaction with the user"
966
- frame = win32ui.GetMainFrame()
967
- # Remember the enabled state of our main frame
968
- # may be disabled primarily if a modal dialog is displayed.
969
- # Only get at enabled via GetWindowLong.
970
- self.bFrameEnabled = frame.IsWindowEnabled()
971
- self.oldForeground = None
972
- fw = win32ui.GetForegroundWindow()
973
- if fw is not frame:
974
- self.oldForeground = fw
975
- # fw.EnableWindow(0) Leave enabled for now?
976
- self.oldFrameEnableState = frame.IsWindowEnabled()
977
- frame.EnableWindow(1)
978
- if self.inForcedGUI and not frame.IsWindowVisible():
979
- frame.ShowWindow(win32con.SW_SHOW)
980
- frame.UpdateWindow()
981
- if self.curframe:
982
- SetInteractiveContext(self.curframe.f_globals, self.curframe.f_locals)
983
- else:
984
- SetInteractiveContext(None, None)
985
- self.GUIRespondDebuggerData()
986
-
987
- def GUIAboutToFinishInteract(self):
988
- """Called as the GUI is about to finish any interaction with the user
989
- Returns non zero if we are allowed to stop interacting"""
990
- if self.oldForeground is not None:
991
- try:
992
- win32ui.GetMainFrame().EnableWindow(self.oldFrameEnableState)
993
- self.oldForeground.EnableWindow(1)
994
- except win32ui.error:
995
- # old window may be dead.
996
- pass
997
- # self.oldForeground.SetForegroundWindow() - fails??
998
- if not self.inForcedGUI:
999
- return 1 # Never a problem, and nothing else to do.
1000
- # If we are running a forced GUI, we may never get an opportunity
1001
- # to interact again. Therefore we perform a "SaveAll", to makesure that
1002
- # any documents are saved before leaving.
1003
- for template in win32ui.GetApp().GetDocTemplateList():
1004
- for doc in template.GetDocumentList():
1005
- if not doc.SaveModified():
1006
- return 0
1007
- # All documents saved - now hide the app and debugger.
1008
- if self.get_option(OPT_HIDE):
1009
- frame = win32ui.GetMainFrame()
1010
- frame.ShowWindow(win32con.SW_HIDE)
1011
- return 1
1012
-
1013
- #
1014
- # Pythonwin interface - all stuff to do with showing source files,
1015
- # changing line states etc.
1016
- #
1017
- def ShowLineState(self, fileName, lineNo, lineState):
1018
- # Set the state of a line, open if not already
1019
- self.ShowLineNo(fileName, lineNo)
1020
- self.SetLineState(fileName, lineNo, lineState)
1021
-
1022
- def SetLineState(self, fileName, lineNo, lineState):
1023
- # Set the state of a line if the document is open.
1024
- doc = editor.editorTemplate.FindOpenDocument(fileName)
1025
- if doc is not None:
1026
- marker = _LineStateToMarker(lineState)
1027
- if not doc.MarkerCheck(lineNo, marker):
1028
- doc.MarkerAdd(lineNo, marker)
1029
-
1030
- def ResetLineState(self, fileName, lineNo, lineState):
1031
- # Set the state of a line if the document is open.
1032
- doc = editor.editorTemplate.FindOpenDocument(fileName)
1033
- if doc is not None:
1034
- marker = _LineStateToMarker(lineState)
1035
- doc.MarkerDelete(lineNo, marker)
1036
-
1037
- def UpdateDocumentLineStates(self, doc):
1038
- # Show all lines in their special status color. If the doc is open
1039
- # all line states are reset.
1040
- doc.MarkerDeleteAll(MARKER_BREAKPOINT)
1041
- doc.MarkerDeleteAll(MARKER_CURRENT)
1042
- fname = self.canonic(doc.GetPathName())
1043
- # Now loop over all break-points
1044
- for line in self.breaks.get(fname, []):
1045
- doc.MarkerAdd(line, MARKER_BREAKPOINT)
1046
- # And the current line if in this document.
1047
- if self.shownLineCurrent and fname == self.shownLineCurrent[0]:
1048
- lineNo = self.shownLineCurrent[1]
1049
- if not doc.MarkerCheck(lineNo, MARKER_CURRENT):
1050
- doc.MarkerAdd(lineNo, MARKER_CURRENT)
1051
-
1052
- # if self.shownLineCallstack and fname == self.shownLineCallstack[0]:
1053
- # doc.MarkerAdd(self.shownLineCallstack[1], MARKER_CURRENT)
1054
-
1055
- def UpdateAllLineStates(self):
1056
- for doc in editor.editorTemplate.GetDocumentList():
1057
- self.UpdateDocumentLineStates(doc)
1058
-
1059
- def ShowCurrentLine(self):
1060
- # Show the current line. Only ever 1 current line - undoes last current
1061
- # The "Current Line" is self.curframe.
1062
- # The "Callstack Line" is the top of the stack.
1063
- # If current == callstack, only show as current.
1064
- self._UnshowCurrentLine() # un-highlight the old one.
1065
- if self.curframe:
1066
- fileName = self.canonic(self.curframe.f_code.co_filename)
1067
- lineNo = self.curframe.f_lineno
1068
- self.shownLineCurrent = fileName, lineNo
1069
- self.ShowLineState(fileName, lineNo, LINESTATE_CURRENT)
1070
-
1071
- def _UnshowCurrentLine(self):
1072
- "Unshow the current line, and forget it"
1073
- if self.shownLineCurrent is not None:
1074
- fname, lineno = self.shownLineCurrent
1075
- self.ResetLineState(fname, lineno, LINESTATE_CURRENT)
1076
- self.shownLineCurrent = None
1077
-
1078
- def ShowLineNo(self, filename, lineno):
1079
- wasOpen = editor.editorTemplate.FindOpenDocument(filename) is not None
1080
- if os.path.isfile(filename) and scriptutils.JumpToDocument(filename, lineno):
1081
- if not wasOpen:
1082
- doc = editor.editorTemplate.FindOpenDocument(filename)
1083
- if doc is not None:
1084
- self.UpdateDocumentLineStates(doc)
1085
- return 1
1086
- return 0
1087
- return 1
1088
- else:
1089
- # Can't find the source file - linecache may have it?
1090
- import linecache
1091
-
1092
- line = linecache.getline(filename, lineno)
1093
- print(
1094
- "%s(%d): %s"
1095
- % (os.path.basename(filename), lineno, line[:-1].expandtabs(4))
1096
- )
1097
- return 0