py2docfx 0.1.15rc2025477__py3-none-any.whl → 0.1.16__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 (604) hide show
  1. py2docfx/docfx_yaml/process_doctree.py +21 -34
  2. py2docfx/docfx_yaml/tests/test_method_arguments.py +1 -7
  3. py2docfx/docfx_yaml/tests/test_process_doctree.py +120 -0
  4. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_core_metadata.py +21 -5
  5. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +13 -0
  6. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
  7. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
  8. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
  9. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
  10. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  11. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  12. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
  13. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
  14. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
  15. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
  16. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
  17. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
  18. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
  19. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
  20. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
  21. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/util.py +7 -6
  22. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_normalization.py +29 -0
  23. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
  24. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
  25. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
  26. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
  27. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
  28. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
  29. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
  30. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
  31. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
  32. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
  33. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
  34. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +49 -11
  35. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
  36. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
  37. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
  38. py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +168 -51
  39. py2docfx/venv/basevenv/Lib/site-packages/setuptools/msvc.py +12 -3
  40. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
  41. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +42 -29
  42. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +1 -1
  43. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
  44. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
  45. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
  46. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
  47. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
  48. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +1 -1
  49. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +4 -4
  50. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +4 -4
  51. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +4 -4
  52. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_database.py +22 -4
  53. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +82 -35
  54. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +4 -4
  55. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +4 -4
  56. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +4 -4
  57. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/builder.py +4 -3
  58. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/containers.py +13 -0
  59. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/decoder.py +62 -115
  60. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_edition_defaults.py +1 -1
  61. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_message.py +15 -18
  62. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/testing_refleaks.py +4 -1
  63. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/type_checkers.py +5 -0
  64. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/well_known_types.py +3 -3
  65. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/json_format.py +25 -9
  66. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message.py +26 -0
  67. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message_factory.py +0 -63
  68. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto.py +38 -1
  69. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto_text.py +129 -0
  70. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/reflection.py +0 -49
  71. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +3 -3
  72. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +4 -4
  73. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +4 -4
  74. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/symbol_database.py +0 -18
  75. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_format.py +8 -3
  76. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +4 -4
  77. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +4 -4
  78. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/unknown_fields.py +3 -4
  79. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +4 -4
  80. py2docfx/venv/venv1/Lib/site-packages/msal/__init__.py +1 -1
  81. py2docfx/venv/venv1/Lib/site-packages/msal/application.py +51 -17
  82. py2docfx/venv/venv1/Lib/site-packages/msal/broker.py +18 -4
  83. py2docfx/venv/venv1/Lib/site-packages/msal/cloudshell.py +5 -1
  84. py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +5 -4
  85. py2docfx/venv/venv1/Lib/site-packages/msal/sku.py +6 -0
  86. py2docfx/venv/venv1/Lib/site-packages/msal/token_cache.py +31 -10
  87. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/__init__.py +2 -3
  88. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/cache_lock.py +4 -1
  89. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/filelock.py +62 -0
  90. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/libsecret.py +1 -1
  91. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/token_cache.py +7 -1
  92. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/__init__.py +1 -1
  93. py2docfx/venv/venv1/Lib/site-packages/setuptools/_core_metadata.py +21 -5
  94. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +13 -0
  95. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
  96. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
  97. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
  98. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
  99. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  100. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  101. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
  102. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
  103. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
  104. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
  105. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
  106. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
  107. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
  108. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
  109. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
  110. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/util.py +7 -6
  111. py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py +29 -0
  112. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
  113. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
  114. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
  115. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
  116. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
  117. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
  118. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
  119. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
  120. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
  121. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
  122. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
  123. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +49 -11
  124. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
  125. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
  126. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
  127. py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +168 -51
  128. py2docfx/venv/venv1/Lib/site-packages/setuptools/msvc.py +12 -3
  129. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
  130. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +42 -29
  131. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +1 -1
  132. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
  133. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
  134. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
  135. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
  136. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
  137. py2docfx/venv/venv1/Lib/site-packages/typing_extensions.py +999 -74
  138. {py2docfx-0.1.15rc2025477.dist-info → py2docfx-0.1.16.dist-info}/METADATA +1 -1
  139. {py2docfx-0.1.15rc2025477.dist-info → py2docfx-0.1.16.dist-info}/RECORD +141 -596
  140. py2docfx/venv/venv1/Lib/site-packages/adodbapi/__init__.py +0 -82
  141. py2docfx/venv/venv1/Lib/site-packages/adodbapi/ado_consts.py +0 -283
  142. py2docfx/venv/venv1/Lib/site-packages/adodbapi/adodbapi.py +0 -1153
  143. py2docfx/venv/venv1/Lib/site-packages/adodbapi/apibase.py +0 -723
  144. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_print.py +0 -72
  145. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_table_names.py +0 -21
  146. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_read.py +0 -41
  147. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_write.py +0 -41
  148. py2docfx/venv/venv1/Lib/site-packages/adodbapi/is64bit.py +0 -34
  149. py2docfx/venv/venv1/Lib/site-packages/adodbapi/process_connect_string.py +0 -137
  150. py2docfx/venv/venv1/Lib/site-packages/adodbapi/schema_table.py +0 -16
  151. py2docfx/venv/venv1/Lib/site-packages/adodbapi/setup.py +0 -68
  152. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitest.py +0 -1547
  153. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitestconfig.py +0 -184
  154. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/dbapi20.py +0 -879
  155. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/is64bit.py +0 -34
  156. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/setuptestframework.py +0 -98
  157. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/test_adodbapi_dbapi20.py +0 -195
  158. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/tryconnection.py +0 -30
  159. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/_parameterized.py +0 -420
  160. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/service.py +0 -213
  161. py2docfx/venv/venv1/Lib/site-packages/isapi/__init__.py +0 -39
  162. py2docfx/venv/venv1/Lib/site-packages/isapi/install.py +0 -809
  163. py2docfx/venv/venv1/Lib/site-packages/isapi/isapicon.py +0 -121
  164. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/advanced.py +0 -218
  165. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector.py +0 -116
  166. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_asynch.py +0 -85
  167. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_with_filter.py +0 -162
  168. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/test.py +0 -195
  169. py2docfx/venv/venv1/Lib/site-packages/isapi/simple.py +0 -73
  170. py2docfx/venv/venv1/Lib/site-packages/isapi/test/extension_simple.py +0 -114
  171. py2docfx/venv/venv1/Lib/site-packages/isapi/threaded_extension.py +0 -191
  172. py2docfx/venv/venv1/Lib/site-packages/portalocker/__about__.py +0 -6
  173. py2docfx/venv/venv1/Lib/site-packages/portalocker/__init__.py +0 -79
  174. py2docfx/venv/venv1/Lib/site-packages/portalocker/__main__.py +0 -122
  175. py2docfx/venv/venv1/Lib/site-packages/portalocker/constants.py +0 -59
  176. py2docfx/venv/venv1/Lib/site-packages/portalocker/exceptions.py +0 -27
  177. py2docfx/venv/venv1/Lib/site-packages/portalocker/portalocker.py +0 -154
  178. py2docfx/venv/venv1/Lib/site-packages/portalocker/redis.py +0 -236
  179. py2docfx/venv/venv1/Lib/site-packages/portalocker/utils.py +0 -569
  180. py2docfx/venv/venv1/Lib/site-packages/pythoncom.py +0 -4
  181. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/basictimerapp.py +0 -258
  182. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/customprint.py +0 -183
  183. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/demoutils.py +0 -63
  184. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dlgappdemo.py +0 -51
  185. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dojobapp.py +0 -71
  186. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/helloapp.py +0 -53
  187. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/cmdserver.py +0 -113
  188. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/createwin.py +0 -114
  189. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/demoutils.py +0 -65
  190. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dibdemo.py +0 -73
  191. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dlgtest.py +0 -145
  192. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dyndlg.py +0 -104
  193. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/fontdemo.py +0 -85
  194. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/guidemo.py +0 -53
  195. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/hiertest.py +0 -138
  196. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/menutest.py +0 -13
  197. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/objdoc.py +0 -57
  198. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/demoutils.py +0 -63
  199. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/flash.py +0 -95
  200. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/msoffice.py +0 -159
  201. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxserialtest.py +0 -132
  202. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxtest.py +0 -243
  203. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/webbrowser.py +0 -72
  204. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/openGLDemo.py +0 -415
  205. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/progressbar.py +0 -105
  206. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/sliderdemo.py +0 -76
  207. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/splittst.py +0 -79
  208. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/threadedgui.py +0 -189
  209. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/toolbar.py +0 -105
  210. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/__init__.py +0 -3
  211. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/__init__.py +0 -133
  212. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/configui.py +0 -34
  213. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgcon.py +0 -31
  214. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgpyapp.py +0 -48
  215. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/debugger.py +0 -1097
  216. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/fail.py +0 -54
  217. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/__init__.py +0 -0
  218. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/ideoptions.py +0 -136
  219. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/list.py +0 -146
  220. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/login.py +0 -155
  221. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/status.py +0 -242
  222. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/DockingBar.py +0 -676
  223. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/__init__.py +0 -0
  224. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/__init__.py +0 -0
  225. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/app.py +0 -411
  226. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/bitmap.py +0 -168
  227. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/cmdline.py +0 -54
  228. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dbgcommands.py +0 -188
  229. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dlgappcore.py +0 -76
  230. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/ModuleBrowser.py +0 -235
  231. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/__init__.py +0 -105
  232. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/__init__.py +0 -0
  233. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/coloreditor.py +0 -646
  234. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/configui.py +0 -299
  235. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/document.py +0 -379
  236. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/editor.py +0 -511
  237. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/frame.py +0 -74
  238. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/template.py +0 -59
  239. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/vss.py +0 -104
  240. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/help.py +0 -173
  241. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/interact.py +0 -995
  242. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpyapp.py +0 -552
  243. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpydde.py +0 -65
  244. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/scriptutils.py +0 -684
  245. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/sgrepmdi.py +0 -749
  246. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/startup.py +0 -70
  247. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/stdin.py +0 -172
  248. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/toolmenu.py +0 -279
  249. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/window.py +0 -14
  250. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/winout.py +0 -589
  251. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoExpand.py +0 -95
  252. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoIndent.py +0 -536
  253. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/CallTips.py +0 -216
  254. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/FormatParagraph.py +0 -166
  255. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/IdleHistory.py +0 -87
  256. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/PyParse.py +0 -585
  257. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/__init__.py +0 -1
  258. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/__init__.py +0 -0
  259. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/activex.py +0 -79
  260. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/afxres.py +0 -501
  261. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/dialog.py +0 -277
  262. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/docview.py +0 -151
  263. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/object.py +0 -66
  264. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/thread.py +0 -25
  265. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/window.py +0 -50
  266. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/IDLEenvironment.py +0 -593
  267. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/__init__.py +0 -1
  268. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/bindings.py +0 -180
  269. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/config.py +0 -363
  270. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/configui.py +0 -291
  271. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/control.py +0 -565
  272. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/document.py +0 -312
  273. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/find.py +0 -511
  274. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/formatter.py +0 -704
  275. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/keycodes.py +0 -190
  276. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/scintillacon.py +0 -3083
  277. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/view.py +0 -841
  278. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/TraceCollector.py +0 -79
  279. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/__init__.py +0 -0
  280. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browseProjects.py +0 -323
  281. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browser.py +0 -494
  282. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/hierlist.py +0 -353
  283. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regedit.py +0 -382
  284. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regpy.py +0 -80
  285. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupRead_BackupWrite.py +0 -119
  286. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupSeek_streamheaders.py +0 -137
  287. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CopyFileEx.py +0 -57
  288. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CreateFileTransacted_MiniVersion.py +0 -122
  289. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtFormatMessage.py +0 -83
  290. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_pull.py +0 -28
  291. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_push.py +0 -32
  292. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/FileSecurityTest.py +0 -137
  293. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/GetSaveFileName.py +0 -43
  294. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/NetValidatePasswordPolicy.py +0 -127
  295. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/OpenEncryptedFileRaw.py +0 -66
  296. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegCreateKeyTransacted.py +0 -60
  297. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegRestoreKey.py +0 -71
  298. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/SystemParametersInfo.py +0 -210
  299. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/c_extension/setup.py +0 -26
  300. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeclient.py +0 -18
  301. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeserver.py +0 -42
  302. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/desktopmanager.py +0 -246
  303. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/eventLogDemo.py +0 -143
  304. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/getfilever.py +0 -33
  305. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/mmapfile_demo.py +0 -101
  306. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/cat.py +0 -17
  307. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/runproc.py +0 -114
  308. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/print_desktop.py +0 -113
  309. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/rastest.py +0 -166
  310. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/GetTokenInformation.py +0 -110
  311. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/account_rights.py +0 -49
  312. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/explicit_entries.py +0 -170
  313. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/get_policy_info.py +0 -39
  314. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/list_rights.py +0 -35
  315. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/localized_names.py +0 -70
  316. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsaregevent.py +0 -14
  317. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsastore.py +0 -12
  318. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/query_information.py +0 -25
  319. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsave_sa.py +0 -61
  320. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsecurity.py +0 -36
  321. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sa_inherit.py +0 -8
  322. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/security_enums.py +0 -336
  323. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_audit.py +0 -106
  324. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_owner.py +0 -73
  325. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_policy_info.py +0 -25
  326. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setkernelobjectsecurity.py +0 -134
  327. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setnamedsecurityinfo.py +0 -131
  328. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setsecurityinfo.py +0 -131
  329. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setuserobjectsecurity.py +0 -102
  330. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/fetch_url.py +0 -158
  331. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/simple_auth.py +0 -72
  332. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/socket_server.py +0 -199
  333. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/validate_password.py +0 -41
  334. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/nativePipeTestService.py +0 -63
  335. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestService.py +0 -185
  336. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestServiceClient.py +0 -158
  337. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/serviceEvents.py +0 -98
  338. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/timer_demo.py +0 -72
  339. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboardDemo.py +0 -155
  340. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboard_bitmapdemo.py +0 -117
  341. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32comport_demo.py +0 -174
  342. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32console_demo.py +0 -132
  343. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32cred_demo.py +0 -82
  344. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32fileDemo.py +0 -41
  345. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_demo.py +0 -177
  346. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_devicenotify.py +0 -106
  347. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_dialog.py +0 -445
  348. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_menu.py +0 -464
  349. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_taskbar.py +0 -136
  350. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32netdemo.py +0 -272
  351. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32rcparser_demo.py +0 -86
  352. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32servicedemo.py +0 -23
  353. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32ts_logoff_disconnected.py +0 -25
  354. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/testwnet.py +0 -123
  355. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/winnetwk.py +0 -100
  356. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/winprocess.py +0 -230
  357. py2docfx/venv/venv1/Lib/site-packages/win32/lib/_win32verstamp_pywin32ctypes.py +0 -164
  358. py2docfx/venv/venv1/Lib/site-packages/win32/lib/afxres.py +0 -8
  359. py2docfx/venv/venv1/Lib/site-packages/win32/lib/commctrl.py +0 -1551
  360. py2docfx/venv/venv1/Lib/site-packages/win32/lib/mmsystem.py +0 -956
  361. py2docfx/venv/venv1/Lib/site-packages/win32/lib/netbios.py +0 -293
  362. py2docfx/venv/venv1/Lib/site-packages/win32/lib/ntsecuritycon.py +0 -731
  363. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_bootstrap.py +0 -21
  364. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_testutil.py +0 -291
  365. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywintypes.py +0 -124
  366. py2docfx/venv/venv1/Lib/site-packages/win32/lib/rasutil.py +0 -40
  367. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regcheck.py +0 -161
  368. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regutil.py +0 -395
  369. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspi.py +0 -413
  370. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspicon.py +0 -477
  371. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win2kras.py +0 -14
  372. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32con.py +0 -5064
  373. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32cryptcon.py +0 -1922
  374. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32evtlogutil.py +0 -225
  375. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32gui_struct.py +0 -957
  376. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32inetcon.py +0 -1086
  377. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32netcon.py +0 -627
  378. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhquery.py +0 -570
  379. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhutil.py +0 -212
  380. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32rcparser.py +0 -674
  381. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32serviceutil.py +0 -1073
  382. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32timezone.py +0 -1201
  383. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32traceutil.py +0 -59
  384. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32verstamp.py +0 -235
  385. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winerror.py +0 -7362
  386. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winioctlcon.py +0 -1079
  387. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winnt.py +0 -1347
  388. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winperf.py +0 -236
  389. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winxptheme.py +0 -8
  390. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/ControlService.py +0 -594
  391. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/BrandProject.py +0 -97
  392. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/bulkstamp.py +0 -156
  393. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/vssutil.py +0 -201
  394. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/backupEventLog.py +0 -46
  395. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/h2py.py +0 -194
  396. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/killProcName.py +0 -62
  397. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_postinstall.py +0 -733
  398. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_testall.py +0 -120
  399. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/rasutil.py +0 -98
  400. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/regsetup.py +0 -607
  401. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/setup_d.py +0 -111
  402. py2docfx/venv/venv1/Lib/site-packages/win32/test/handles.py +0 -175
  403. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_clipboard.py +0 -137
  404. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_exceptions.py +0 -213
  405. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_odbc.py +0 -264
  406. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_pywintypes.py +0 -111
  407. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_security.py +0 -166
  408. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_sspi.py +0 -229
  409. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32api.py +0 -273
  410. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32clipboard.py +0 -59
  411. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32cred.py +0 -91
  412. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32crypt.py +0 -144
  413. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32event.py +0 -119
  414. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32file.py +0 -1096
  415. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32gui.py +0 -227
  416. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32guistruct.py +0 -333
  417. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32inet.py +0 -108
  418. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32net.py +0 -23
  419. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32pipe.py +0 -148
  420. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32print.py +0 -24
  421. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32profile.py +0 -19
  422. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32rcparser.py +0 -70
  423. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32timezone.py +0 -16
  424. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32trace.py +0 -366
  425. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32ts.py +0 -19
  426. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32wnet.py +0 -174
  427. py2docfx/venv/venv1/Lib/site-packages/win32/test/testall.py +0 -223
  428. py2docfx/venv/venv1/Lib/site-packages/win32/winxpgui.py +0 -13
  429. py2docfx/venv/venv1/Lib/site-packages/win32com/__init__.py +0 -134
  430. py2docfx/venv/venv1/Lib/site-packages/win32com/client/CLSIDToClass.py +0 -60
  431. py2docfx/venv/venv1/Lib/site-packages/win32com/client/__init__.py +0 -717
  432. py2docfx/venv/venv1/Lib/site-packages/win32com/client/build.py +0 -771
  433. py2docfx/venv/venv1/Lib/site-packages/win32com/client/combrowse.py +0 -604
  434. py2docfx/venv/venv1/Lib/site-packages/win32com/client/connect.py +0 -48
  435. py2docfx/venv/venv1/Lib/site-packages/win32com/client/dynamic.py +0 -699
  436. py2docfx/venv/venv1/Lib/site-packages/win32com/client/gencache.py +0 -825
  437. py2docfx/venv/venv1/Lib/site-packages/win32com/client/genpy.py +0 -1350
  438. py2docfx/venv/venv1/Lib/site-packages/win32com/client/makepy.py +0 -453
  439. py2docfx/venv/venv1/Lib/site-packages/win32com/client/selecttlb.py +0 -182
  440. py2docfx/venv/venv1/Lib/site-packages/win32com/client/tlbrowse.py +0 -277
  441. py2docfx/venv/venv1/Lib/site-packages/win32com/client/util.py +0 -103
  442. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/__init__.py +0 -0
  443. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/connect.py +0 -96
  444. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/dump_clipboard.py +0 -74
  445. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsApartmentThreaded.py +0 -98
  446. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsFreeThreaded.py +0 -92
  447. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelAddin.py +0 -169
  448. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelRTDServer.py +0 -434
  449. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/iebutton.py +0 -214
  450. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/ietoolbar.py +0 -368
  451. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/outlookAddin.py +0 -135
  452. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/trybag.py +0 -78
  453. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/__init__.py +0 -1
  454. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegw.py +0 -618
  455. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwenum.py +0 -331
  456. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwparse.py +0 -1017
  457. py2docfx/venv/venv1/Lib/site-packages/win32com/olectl.py +0 -70
  458. py2docfx/venv/venv1/Lib/site-packages/win32com/server/__init__.py +0 -1
  459. py2docfx/venv/venv1/Lib/site-packages/win32com/server/connect.py +0 -85
  460. py2docfx/venv/venv1/Lib/site-packages/win32com/server/dispatcher.py +0 -239
  461. py2docfx/venv/venv1/Lib/site-packages/win32com/server/exception.py +0 -99
  462. py2docfx/venv/venv1/Lib/site-packages/win32com/server/factory.py +0 -26
  463. py2docfx/venv/venv1/Lib/site-packages/win32com/server/localserver.py +0 -53
  464. py2docfx/venv/venv1/Lib/site-packages/win32com/server/policy.py +0 -803
  465. py2docfx/venv/venv1/Lib/site-packages/win32com/server/register.py +0 -677
  466. py2docfx/venv/venv1/Lib/site-packages/win32com/server/util.py +0 -229
  467. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/PythonTools.py +0 -47
  468. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/__init__.py +0 -0
  469. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/dictionary.py +0 -133
  470. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/interp.py +0 -59
  471. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/perfmon.py +0 -36
  472. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/test_pycomtest.py +0 -181
  473. py2docfx/venv/venv1/Lib/site-packages/win32com/storagecon.py +0 -142
  474. py2docfx/venv/venv1/Lib/site-packages/win32com/test/GenTestScripts.py +0 -95
  475. py2docfx/venv/venv1/Lib/site-packages/win32com/test/__init__.py +0 -1
  476. py2docfx/venv/venv1/Lib/site-packages/win32com/test/daodump.py +0 -88
  477. py2docfx/venv/venv1/Lib/site-packages/win32com/test/errorSemantics.py +0 -243
  478. py2docfx/venv/venv1/Lib/site-packages/win32com/test/pippo_server.py +0 -96
  479. py2docfx/venv/venv1/Lib/site-packages/win32com/test/policySemantics.py +0 -115
  480. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testADOEvents.py +0 -100
  481. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAXScript.py +0 -44
  482. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAccess.py +0 -185
  483. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testArrays.py +0 -99
  484. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testClipboard.py +0 -169
  485. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testCollections.py +0 -159
  486. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testConversionErrors.py +0 -35
  487. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDCOM.py +0 -50
  488. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDates.py +0 -74
  489. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDictionary.py +0 -101
  490. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDynamic.py +0 -83
  491. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExchange.py +0 -121
  492. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExplorer.py +0 -139
  493. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGIT.py +0 -142
  494. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGatewayAddresses.py +0 -149
  495. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testIterators.py +0 -140
  496. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOffice.py +0 -184
  497. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOfficeEvents.py +0 -138
  498. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMarshal.py +0 -160
  499. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPersist.py +0 -227
  500. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPippo.py +0 -80
  501. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPyComTest.py +0 -918
  502. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testROT.py +0 -29
  503. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testServers.py +0 -51
  504. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testShell.py +0 -272
  505. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStorage.py +0 -88
  506. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStreams.py +0 -147
  507. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testWMI.py +0 -18
  508. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testall.py +0 -320
  509. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testmakepy.py +0 -54
  510. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvb.py +0 -583
  511. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvbscript_regexp.py +0 -40
  512. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testxslt.py +0 -34
  513. py2docfx/venv/venv1/Lib/site-packages/win32com/test/util.py +0 -262
  514. py2docfx/venv/venv1/Lib/site-packages/win32com/universal.py +0 -224
  515. py2docfx/venv/venv1/Lib/site-packages/win32com/util.py +0 -35
  516. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/__init__.py +0 -113
  517. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/adsicon.py +0 -340
  518. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/objectPicker.py +0 -68
  519. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/scp.py +0 -565
  520. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/search.py +0 -151
  521. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/test.py +0 -274
  522. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/__init__.py +0 -6
  523. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditSecurity.py +0 -229
  524. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditServiceSecurity.py +0 -219
  525. py2docfx/venv/venv1/Lib/site-packages/win32comext/axcontrol/__init__.py +0 -4
  526. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/__init__.py +0 -4
  527. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/adb.py +0 -467
  528. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/codecontainer.py +0 -279
  529. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/contexts.py +0 -58
  530. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/debugger.py +0 -238
  531. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/documents.py +0 -135
  532. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/dump.py +0 -57
  533. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/expressions.py +0 -212
  534. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/gateways.py +0 -583
  535. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/stackframe.py +0 -178
  536. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/util.py +0 -98
  537. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/__init__.py +0 -4
  538. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/asputil.py +0 -13
  539. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/__init__.py +0 -1
  540. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/debug.py +0 -223
  541. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/error.py +0 -262
  542. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/framework.py +0 -1291
  543. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pydumper.py +0 -78
  544. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript.py +0 -438
  545. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript_rexec.py +0 -54
  546. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/scriptdispatch.py +0 -103
  547. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/__init__.py +0 -0
  548. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/axsite.py +0 -145
  549. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/leakTest.py +0 -185
  550. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost.py +0 -240
  551. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost4Dbg.py +0 -83
  552. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/__init__.py +0 -6
  553. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/show_all_jobs.py +0 -48
  554. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/test_bits.py +0 -119
  555. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/__init__.py +0 -4
  556. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/__init__.py +0 -1
  557. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_record.py +0 -60
  558. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_test.py +0 -402
  559. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/__init__.py +0 -1
  560. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/demo/filterDemo.py +0 -300
  561. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/ifiltercon.py +0 -110
  562. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/__init__.py +0 -4
  563. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/inetcon.py +0 -261
  564. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/__init__.py +0 -21
  565. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/demos/mapisend.py +0 -98
  566. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/emsabtags.py +0 -875
  567. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapitags.py +0 -1023
  568. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapiutil.py +0 -211
  569. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/__init__.py +0 -1
  570. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/pscon.py +0 -838
  571. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/test/testpropsys.py +0 -5
  572. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/__init__.py +0 -4
  573. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IActiveDesktop.py +0 -83
  574. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IFileOperationProgressSink.py +0 -179
  575. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IShellLinkDataList.py +0 -67
  576. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/ITransferAdviseSink.py +0 -93
  577. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IUniformResourceLocator.py +0 -56
  578. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/browse_for_folder.py +0 -45
  579. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/create_link.py +0 -73
  580. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/dump_link.py +0 -58
  581. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/explorer_browser.py +0 -143
  582. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/column_provider.py +0 -125
  583. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/context_menu.py +0 -122
  584. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/copy_hook.py +0 -84
  585. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/empty_volume_cache.py +0 -188
  586. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/folder_view.py +0 -866
  587. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/icon_handler.py +0 -81
  588. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/shell_view.py +0 -971
  589. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/shellexecuteex.py +0 -19
  590. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/viewstate.py +0 -68
  591. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/walk_shell_folders.py +0 -24
  592. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/shellcon.py +0 -1615
  593. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testSHFileOperation.py +0 -75
  594. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellFolder.py +0 -21
  595. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellItem.py +0 -69
  596. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/__init__.py +0 -6
  597. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask.py +0 -66
  598. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_1.py +0 -68
  599. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_2.py +0 -49
  600. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_localsystem.py +0 -3
  601. py2docfx/venv/venv1/Scripts/pywin32_postinstall.py +0 -733
  602. py2docfx/venv/venv1/Scripts/pywin32_testall.py +0 -120
  603. {py2docfx-0.1.15rc2025477.dist-info → py2docfx-0.1.16.dist-info}/WHEEL +0 -0
  604. {py2docfx-0.1.15rc2025477.dist-info → py2docfx-0.1.16.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