py2docfx 0.1.15.dev2025736__py3-none-any.whl → 0.1.15.dev2038852__py3-none-any.whl

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