py2docfx 0.1.15rc2025477__py3-none-any.whl → 0.1.16.dev2051338__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.dev2051338.dist-info}/METADATA +1 -1
  139. {py2docfx-0.1.15rc2025477.dist-info → py2docfx-0.1.16.dev2051338.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.dev2051338.dist-info}/WHEEL +0 -0
  604. {py2docfx-0.1.15rc2025477.dist-info → py2docfx-0.1.16.dev2051338.dist-info}/top_level.txt +0 -0
@@ -1,995 +0,0 @@
1
- ##################################################################
2
- ##
3
- ## Interactive Shell Window
4
- ##
5
-
6
- import array
7
- import code
8
- import os
9
- import string
10
- import sys
11
- import traceback
12
-
13
- import __main__
14
- import pywin.framework.app
15
- import pywin.scintilla.control
16
- import pywin.scintilla.formatter
17
- import pywin.scintilla.IDLEenvironment # nopycln: import # Injects fast_readline into the IDLE auto-indent extension
18
- import win32api
19
- import win32clipboard
20
- import win32con
21
- import win32ui
22
- from pywin.mfc import afxres
23
-
24
- ## sequential after ID_GOTO_LINE defined in editor.py
25
- ID_EDIT_COPY_CODE = 0xE2002
26
- ID_EDIT_EXEC_CLIPBOARD = 0x2003
27
-
28
- trace = pywin.scintilla.formatter.trace
29
-
30
- import re
31
-
32
- from . import winout
33
-
34
- # from IDLE.
35
- _is_block_opener = re.compile(r":\s*(#.*)?$").search
36
- _is_block_closer = re.compile(
37
- r"""
38
- \s*
39
- ( return
40
- | break
41
- | continue
42
- | raise
43
- | pass
44
- )
45
- \b
46
- """,
47
- re.VERBOSE,
48
- ).match
49
-
50
- tracebackHeader = b"Traceback ("
51
-
52
- sectionProfile = "Interactive Window"
53
- valueFormatTitle = "FormatTitle"
54
- valueFormatInput = "FormatInput"
55
- valueFormatOutput = "FormatOutput"
56
- valueFormatOutputError = "FormatOutputError"
57
-
58
- # These are defaults only. Values are read from the registry.
59
- formatTitle = (-536870897, 0, 220, 0, 16711680, 184, 34, "Arial")
60
- formatInput = (-402653169, 0, 200, 0, 0, 0, 49, "Courier New")
61
- formatOutput = (-402653169, 0, 200, 0, 8421376, 0, 49, "Courier New")
62
- formatOutputError = (-402653169, 0, 200, 0, 255, 0, 49, "Courier New")
63
-
64
- try:
65
- sys.ps1
66
- except AttributeError:
67
- sys.ps1 = ">>> "
68
- sys.ps2 = "... "
69
-
70
-
71
- def LoadPreference(preference, default=""):
72
- return win32ui.GetProfileVal(sectionProfile, preference, default)
73
-
74
-
75
- def SavePreference(prefName, prefValue):
76
- win32ui.WriteProfileVal(sectionProfile, prefName, prefValue)
77
-
78
-
79
- def SaveFontPreferences():
80
- win32ui.WriteProfileVal(sectionProfile, valueFormatTitle, str(formatTitle))
81
- win32ui.WriteProfileVal(sectionProfile, valueFormatInput, str(formatInput))
82
- win32ui.WriteProfileVal(sectionProfile, valueFormatOutput, str(formatOutput))
83
- win32ui.WriteProfileVal(
84
- sectionProfile, valueFormatOutputError, str(formatOutputError)
85
- )
86
-
87
-
88
- def GetPromptPrefix(line):
89
- ps1 = sys.ps1
90
- if line[: len(ps1)] == ps1:
91
- return ps1
92
- ps2 = sys.ps2
93
- if line[: len(ps2)] == ps2:
94
- return ps2
95
-
96
-
97
- #############################################################
98
- #
99
- # Colorizer related code.
100
- #
101
- #############################################################
102
- STYLE_INTERACTIVE_EOL = "Interactive EOL"
103
- STYLE_INTERACTIVE_OUTPUT = "Interactive Output"
104
- STYLE_INTERACTIVE_PROMPT = "Interactive Prompt"
105
- STYLE_INTERACTIVE_BANNER = "Interactive Banner"
106
- STYLE_INTERACTIVE_ERROR = "Interactive Error"
107
- STYLE_INTERACTIVE_ERROR_FINALLINE = "Interactive Error (final line)"
108
-
109
- INTERACTIVE_STYLES = [
110
- STYLE_INTERACTIVE_EOL,
111
- STYLE_INTERACTIVE_OUTPUT,
112
- STYLE_INTERACTIVE_PROMPT,
113
- STYLE_INTERACTIVE_BANNER,
114
- STYLE_INTERACTIVE_ERROR,
115
- STYLE_INTERACTIVE_ERROR_FINALLINE,
116
- ]
117
-
118
- FormatterParent = pywin.scintilla.formatter.PythonSourceFormatter
119
-
120
-
121
- class InteractiveFormatter(FormatterParent):
122
- def __init__(self, scintilla):
123
- FormatterParent.__init__(self, scintilla)
124
- self.bannerDisplayed = False
125
-
126
- def SetStyles(self):
127
- FormatterParent.SetStyles(self)
128
- Style = pywin.scintilla.formatter.Style
129
- self.RegisterStyle(Style(STYLE_INTERACTIVE_EOL, STYLE_INTERACTIVE_PROMPT))
130
- self.RegisterStyle(Style(STYLE_INTERACTIVE_PROMPT, formatInput))
131
- self.RegisterStyle(Style(STYLE_INTERACTIVE_OUTPUT, formatOutput))
132
- self.RegisterStyle(Style(STYLE_INTERACTIVE_BANNER, formatTitle))
133
- self.RegisterStyle(Style(STYLE_INTERACTIVE_ERROR, formatOutputError))
134
- self.RegisterStyle(
135
- Style(STYLE_INTERACTIVE_ERROR_FINALLINE, STYLE_INTERACTIVE_ERROR)
136
- )
137
-
138
- def LoadPreference(self, name, default):
139
- rc = win32ui.GetProfileVal("Format", name, default)
140
- if rc == default:
141
- rc = win32ui.GetProfileVal(sectionProfile, name, default)
142
- return rc
143
-
144
- def ColorizeInteractiveCode(self, cdoc, styleStart, stylePyStart):
145
- lengthDoc = len(cdoc)
146
- if lengthDoc == 0:
147
- return
148
- state = styleStart
149
- # As per comments in Colorize(), we work with the raw utf8
150
- # bytes. To avoid too much pain, we treat each utf8 byte
151
- # as a latin-1 unicode character - we only use it to compare
152
- # against ascii chars anyway...
153
- chNext = cdoc[0:1].decode("latin-1")
154
- startSeg = 0
155
- i = 0
156
- lastState = state # debug only
157
- while i < lengthDoc:
158
- ch = chNext
159
- chNext = cdoc[i + 1 : i + 2].decode("latin-1")
160
-
161
- # trace("ch=%r, i=%d, next=%r, state=%s" % (ch, i, chNext, state))
162
- if state == STYLE_INTERACTIVE_EOL:
163
- if ch not in "\r\n":
164
- self.ColorSeg(startSeg, i - 1, state)
165
- startSeg = i
166
- if ch in (str(sys.ps1)[0], str(sys.ps2)[0]):
167
- state = STYLE_INTERACTIVE_PROMPT
168
- elif cdoc[i : i + len(tracebackHeader)] == tracebackHeader:
169
- state = STYLE_INTERACTIVE_ERROR
170
- else:
171
- state = STYLE_INTERACTIVE_OUTPUT
172
- elif state == STYLE_INTERACTIVE_PROMPT:
173
- if ch not in sys.ps1 + sys.ps2 + " ":
174
- self.ColorSeg(startSeg, i - 1, state)
175
- startSeg = i
176
- if ch in "\r\n":
177
- state = STYLE_INTERACTIVE_EOL
178
- else:
179
- state = stylePyStart # Start coloring Python code.
180
- elif state in (STYLE_INTERACTIVE_OUTPUT,):
181
- if ch in "\r\n":
182
- self.ColorSeg(startSeg, i - 1, state)
183
- startSeg = i
184
- state = STYLE_INTERACTIVE_EOL
185
- elif state == STYLE_INTERACTIVE_ERROR:
186
- if ch in "\r\n" and chNext and chNext not in string.whitespace:
187
- # Everything including me
188
- self.ColorSeg(startSeg, i, state)
189
- startSeg = i + 1
190
- state = STYLE_INTERACTIVE_ERROR_FINALLINE
191
- elif i == 0 and ch not in string.whitespace:
192
- # If we are coloring from the start of a line,
193
- # we need this better check for the last line
194
- # Color up to not including me
195
- self.ColorSeg(startSeg, i - 1, state)
196
- startSeg = i
197
- state = STYLE_INTERACTIVE_ERROR_FINALLINE
198
- elif state == STYLE_INTERACTIVE_ERROR_FINALLINE:
199
- if ch in "\r\n":
200
- self.ColorSeg(startSeg, i - 1, state)
201
- startSeg = i
202
- state = STYLE_INTERACTIVE_EOL
203
- elif state == STYLE_INTERACTIVE_BANNER:
204
- if ch in "\r\n" and (chNext == "" or chNext in ">["):
205
- # Everything including me
206
- self.ColorSeg(startSeg, i - 1, state)
207
- startSeg = i
208
- state = STYLE_INTERACTIVE_EOL
209
- else:
210
- # It is a PythonColorizer state - seek past the end of the line
211
- # and ask the Python colorizer to color that.
212
- end = startSeg
213
- while end < lengthDoc and cdoc[end] not in b"\r\n":
214
- end += 1
215
- self.ColorizePythonCode(cdoc[:end], startSeg, state)
216
- stylePyStart = self.GetStringStyle(end - 1)
217
- if stylePyStart is None:
218
- stylePyStart = pywin.scintilla.formatter.STYLE_DEFAULT
219
- else:
220
- stylePyStart = stylePyStart.name
221
- startSeg = end
222
- i = end - 1 # ready for increment.
223
- chNext = cdoc[end : end + 1].decode("latin-1")
224
- state = STYLE_INTERACTIVE_EOL
225
- if lastState != state:
226
- lastState = state
227
- i += 1
228
- # and the rest
229
- if startSeg < i:
230
- self.ColorSeg(startSeg, i - 1, state)
231
-
232
- def Colorize(self, start=0, end=-1):
233
- # scintilla's formatting is all done in terms of utf, so
234
- # we work with utf8 bytes instead of unicode. This magically
235
- # works as any extended chars found in the utf8 don't change
236
- # the semantics.
237
- stringVal = self.scintilla.GetTextRange(start, end, decode=False)
238
- styleStart = None
239
- stylePyStart = None
240
- if start > 1:
241
- # Likely we are being asked to color from the start of the line.
242
- # We find the last formatted character on the previous line.
243
- # If TQString, we continue it. Otherwise, we reset.
244
- look = start - 1
245
- while look and self.scintilla.SCIGetCharAt(look) in "\n\r":
246
- look -= 1
247
- if look and look < start - 1: # Did we find a char before the \n\r sets?
248
- strstyle = self.GetStringStyle(look)
249
- quote_char = None
250
- if strstyle is not None:
251
- if strstyle.name == pywin.scintilla.formatter.STYLE_TQSSTRING:
252
- quote_char = "'"
253
- elif strstyle.name == pywin.scintilla.formatter.STYLE_TQDSTRING:
254
- quote_char = '"'
255
- if quote_char is not None:
256
- # It is a TQS. If the TQS is not terminated, we
257
- # carry the style through.
258
- if look > 2:
259
- look_str = (
260
- self.scintilla.SCIGetCharAt(look - 2)
261
- + self.scintilla.SCIGetCharAt(look - 1)
262
- + self.scintilla.SCIGetCharAt(look)
263
- )
264
- if look_str != quote_char * 3:
265
- stylePyStart = strstyle.name
266
- if stylePyStart is None:
267
- stylePyStart = pywin.scintilla.formatter.STYLE_DEFAULT
268
-
269
- if start > 0:
270
- stylenum = self.scintilla.SCIGetStyleAt(start - 1)
271
- styleStart = self.GetStyleByNum(stylenum).name
272
- elif self.bannerDisplayed:
273
- styleStart = STYLE_INTERACTIVE_EOL
274
- else:
275
- styleStart = STYLE_INTERACTIVE_BANNER
276
- self.bannerDisplayed = True
277
- self.scintilla.SCIStartStyling(start, 31)
278
- self.style_buffer = array.array("b", (0,) * len(stringVal))
279
- self.ColorizeInteractiveCode(stringVal, styleStart, stylePyStart)
280
- self.scintilla.SCISetStylingEx(self.style_buffer)
281
- self.style_buffer = None
282
-
283
-
284
- ###############################################################
285
- #
286
- # This class handles the Python interactive interpreter.
287
- #
288
- # It uses a basic EditWindow, and does all the magic.
289
- # This is triggered by the enter key hander attached by the
290
- # start-up code. It determines if a command is to be executed
291
- # or continued (ie, emit "... ") by snooping around the current
292
- # line, looking for the prompts
293
- #
294
- class PythonwinInteractiveInterpreter(code.InteractiveInterpreter):
295
- def __init__(self, locals=None, globals=None):
296
- if locals is None:
297
- locals = __main__.__dict__
298
- if globals is None:
299
- globals = locals
300
- self.globals = globals
301
- code.InteractiveInterpreter.__init__(self, locals)
302
-
303
- def showsyntaxerror(self, filename=None, **kwargs):
304
- sys.stderr.write(
305
- tracebackHeader.decode("ascii")
306
- ) # So the color syntaxer recognises it.
307
- code.InteractiveInterpreter.showsyntaxerror(self, filename)
308
-
309
- def runcode(self, code):
310
- try:
311
- exec(code, self.globals, self.locals)
312
- except SystemExit:
313
- raise
314
- except:
315
- self.showtraceback()
316
-
317
-
318
- class InteractiveCore:
319
- def __init__(self, banner=None):
320
- self.banner = banner
321
-
322
- # LoadFontPreferences()
323
- def Init(self):
324
- self.oldStdOut = self.oldStdErr = None
325
-
326
- # self.SetWordWrap(win32ui.CRichEditView_WrapNone)
327
- self.interp = PythonwinInteractiveInterpreter()
328
-
329
- self.OutputGrab() # Release at cleanup.
330
-
331
- if self.GetTextLength() == 0:
332
- if self.banner is None:
333
- suffix = ""
334
- if win32ui.debug:
335
- suffix = ", debug build"
336
- sys.stderr.write(
337
- f"PythonWin {sys.version} on {sys.platform}{suffix}.\n"
338
- )
339
- sys.stderr.write(
340
- "Portions {} - see 'Help/About PythonWin' for further copyright information.\n".format(
341
- win32ui.copyright
342
- )
343
- )
344
- else:
345
- sys.stderr.write(self.banner)
346
- rcfile = os.environ.get("PYTHONSTARTUP")
347
- if rcfile:
348
- import __main__
349
-
350
- try:
351
- exec(
352
- compile(
353
- open(rcfile, "rb").read(), rcfile, "exec", dont_inherit=True
354
- ),
355
- __main__.__dict__,
356
- __main__.__dict__,
357
- )
358
- except:
359
- sys.stderr.write(
360
- ">>> \nError executing PYTHONSTARTUP script %r\n" % (rcfile)
361
- )
362
- traceback.print_exc(file=sys.stderr)
363
- self.AppendToPrompt([])
364
-
365
- def SetContext(self, globals, locals, name="Dbg"):
366
- oldPrompt = sys.ps1
367
- if globals is None:
368
- # Reset
369
- sys.ps1 = ">>> "
370
- sys.ps2 = "... "
371
- locals = globals = __main__.__dict__
372
- else:
373
- sys.ps1 = "[%s]>>> " % name
374
- sys.ps2 = "[%s]... " % name
375
- self.interp.locals = locals
376
- self.interp.globals = globals
377
- self.AppendToPrompt([], oldPrompt)
378
-
379
- def GetContext(self):
380
- return self.interp.globals, self.interp.locals
381
-
382
- def DoGetLine(self, line=-1):
383
- if line == -1:
384
- line = self.LineFromChar()
385
- line = self.GetLine(line)
386
- while line and line[-1] in ("\r", "\n"):
387
- line = line[:-1]
388
- return line
389
-
390
- def AppendToPrompt(self, bufLines, oldPrompt=None):
391
- "Take a command and stick it at the end of the buffer (with python prompts inserted if required)."
392
- self.flush()
393
- lastLineNo = self.GetLineCount() - 1
394
- line = self.DoGetLine(lastLineNo)
395
- if oldPrompt and line == oldPrompt:
396
- self.SetSel(self.GetTextLength() - len(oldPrompt), self.GetTextLength())
397
- self.ReplaceSel(sys.ps1)
398
- elif line != str(sys.ps1):
399
- if len(line) != 0:
400
- self.write("\n")
401
- self.write(sys.ps1)
402
- self.flush()
403
- self.idle.text.mark_set("iomark", "end-1c")
404
- if not bufLines:
405
- return
406
- terms = (["\n" + sys.ps2] * (len(bufLines) - 1)) + [""]
407
- for bufLine, term in zip(bufLines, terms):
408
- if bufLine.strip():
409
- self.write(bufLine + term)
410
- self.flush()
411
-
412
- def EnsureNoPrompt(self):
413
- # Get ready to write some text NOT at a Python prompt.
414
- self.flush()
415
- lastLineNo = self.GetLineCount() - 1
416
- line = self.DoGetLine(lastLineNo)
417
- if not line or line in (sys.ps1, sys.ps2):
418
- self.SetSel(self.GetTextLength() - len(line), self.GetTextLength())
419
- self.ReplaceSel("")
420
- else:
421
- # Just add a new line.
422
- self.write("\n")
423
-
424
- def _GetSubConfigNames(self):
425
- return ["interactive"] # Allow [Keys:Interactive] sections to be specific
426
-
427
- def HookHandlers(self):
428
- # Hook menu command (executed when a menu item with that ID is selected from a menu/toolbar
429
- self.HookCommand(self.OnSelectBlock, win32ui.ID_EDIT_SELECT_BLOCK)
430
- self.HookCommand(self.OnEditCopyCode, ID_EDIT_COPY_CODE)
431
- self.HookCommand(self.OnEditExecClipboard, ID_EDIT_EXEC_CLIPBOARD)
432
- mod = pywin.scintilla.IDLEenvironment.GetIDLEModule("IdleHistory")
433
- if mod is not None:
434
- self.history = mod.History(self.idle.text, "\n" + sys.ps2)
435
- else:
436
- self.history = None
437
- # hack for now for event handling.
438
-
439
- # GetBlockBoundary takes a line number, and will return the
440
- # start and and line numbers of the block, and a flag indicating if the
441
- # block is a Python code block.
442
- # If the line specified has a Python prompt, then the lines are parsed
443
- # backwards and forwards, and the flag is true.
444
- # If the line does not start with a prompt, the block is searched forward
445
- # and backward until a prompt _is_ found, and all lines in between without
446
- # prompts are returned, and the flag is false.
447
- def GetBlockBoundary(self, lineNo):
448
- line = self.DoGetLine(lineNo)
449
- maxLineNo = self.GetLineCount() - 1
450
- prefix = GetPromptPrefix(line)
451
- if prefix is None: # Non code block
452
- flag = 0
453
- startLineNo = lineNo
454
- while startLineNo > 0:
455
- if GetPromptPrefix(self.DoGetLine(startLineNo - 1)) is not None:
456
- break # there _is_ a prompt
457
- startLineNo -= 1
458
- endLineNo = lineNo
459
- while endLineNo < maxLineNo:
460
- if GetPromptPrefix(self.DoGetLine(endLineNo + 1)) is not None:
461
- break # there _is_ a prompt
462
- endLineNo += 1
463
- else: # Code block
464
- flag = 1
465
- startLineNo = lineNo
466
- while startLineNo > 0 and prefix != str(sys.ps1):
467
- prefix = GetPromptPrefix(self.DoGetLine(startLineNo - 1))
468
- if prefix is None:
469
- break
470
- # there is no prompt.
471
- startLineNo -= 1
472
- endLineNo = lineNo
473
- while endLineNo < maxLineNo:
474
- prefix = GetPromptPrefix(self.DoGetLine(endLineNo + 1))
475
- if prefix is None:
476
- break # there is no prompt
477
- if prefix == str(sys.ps1):
478
- break # this is another command
479
- endLineNo += 1
480
- # continue until end of buffer, or no prompt
481
- return (startLineNo, endLineNo, flag)
482
-
483
- def ExtractCommand(self, lines):
484
- start, end = lines
485
- retList = []
486
- while end >= start:
487
- thisLine = self.DoGetLine(end)
488
- promptLen = len(GetPromptPrefix(thisLine))
489
- retList = [thisLine[promptLen:]] + retList
490
- end -= 1
491
- return retList
492
-
493
- def OutputGrab(self):
494
- # import win32traceutil; return
495
- self.oldStdOut = sys.stdout
496
- self.oldStdErr = sys.stderr
497
- sys.stdout = self
498
- sys.stderr = self
499
- self.flush()
500
-
501
- def OutputRelease(self):
502
- # a command may have overwritten these - only restore if not.
503
- if self.oldStdOut is not None:
504
- if sys.stdout == self:
505
- sys.stdout = self.oldStdOut
506
- if self.oldStdErr is not None:
507
- if sys.stderr == self:
508
- sys.stderr = self.oldStdErr
509
- self.oldStdOut = None
510
- self.oldStdErr = None
511
- self.flush()
512
-
513
- ###################################
514
- #
515
- # Message/Command/Key Hooks.
516
- #
517
- # Enter key handler
518
- #
519
- def ProcessEnterEvent(self, event):
520
- # If autocompletion has been triggered, complete and do not process event
521
- if self.SCIAutoCActive():
522
- self.SCIAutoCComplete()
523
- self.SCICancel()
524
- return
525
-
526
- self.SCICancel()
527
- # First, check for an error message
528
- haveGrabbedOutput = 0
529
- if self.HandleSpecialLine():
530
- return 0
531
-
532
- lineNo = self.LineFromChar()
533
- start, end, isCode = self.GetBlockBoundary(lineNo)
534
- # If we are not in a code block just go to the prompt (or create a new one)
535
- if not isCode:
536
- self.AppendToPrompt([])
537
- win32ui.SetStatusText(win32ui.LoadString(afxres.AFX_IDS_IDLEMESSAGE))
538
- return
539
-
540
- lines = self.ExtractCommand((start, end))
541
-
542
- # If we are in a code-block, but it isn't at the end of the buffer
543
- # then copy it to the end ready for editing and subsequent execution
544
- if end != self.GetLineCount() - 1:
545
- win32ui.SetStatusText("Press ENTER to execute command")
546
- self.AppendToPrompt(lines)
547
- self.SetSel(-2)
548
- return
549
-
550
- # If SHIFT held down, we want new code here and now!
551
- bNeedIndent = (
552
- win32api.GetKeyState(win32con.VK_SHIFT) < 0
553
- or win32api.GetKeyState(win32con.VK_CONTROL) < 0
554
- )
555
- if bNeedIndent:
556
- self.ReplaceSel("\n")
557
- else:
558
- self.SetSel(-2)
559
- self.ReplaceSel("\n")
560
- source = "\n".join(lines)
561
- while source and source[-1] in "\t ":
562
- source = source[:-1]
563
- self.OutputGrab() # grab the output for the command exec.
564
- try:
565
- if self.interp.runsource(
566
- source, "<interactive input>"
567
- ): # Need more input!
568
- bNeedIndent = 1
569
- else:
570
- # If the last line isn't empty, append a newline
571
- if self.history is not None:
572
- self.history.history_store(source)
573
- self.AppendToPrompt([])
574
- win32ui.SetStatusText(
575
- win32ui.LoadString(afxres.AFX_IDS_IDLEMESSAGE)
576
- )
577
- # win32ui.SetStatusText('Successfully executed statement')
578
- finally:
579
- self.OutputRelease()
580
- if bNeedIndent:
581
- win32ui.SetStatusText("Ready to continue the command")
582
- # Now attempt correct indentation (should use IDLE?)
583
- curLine = self.DoGetLine(lineNo)[len(sys.ps2) :]
584
- pos = 0
585
- indent = ""
586
- while len(curLine) > pos and curLine[pos] in string.whitespace:
587
- indent += curLine[pos]
588
- pos += 1
589
- if _is_block_opener(curLine):
590
- indent += "\t"
591
- elif _is_block_closer(curLine):
592
- indent = indent[:-1]
593
- # use ReplaceSel to ensure it goes at the cursor rather than end of buffer.
594
- self.ReplaceSel(sys.ps2 + indent)
595
- return 0
596
-
597
- # ESC key handler
598
- def ProcessEscEvent(self, event):
599
- # Implement a cancel.
600
- if self.SCIAutoCActive() or self.SCICallTipActive():
601
- self.SCICancel()
602
- else:
603
- win32ui.SetStatusText("Cancelled.")
604
- self.AppendToPrompt(("",))
605
- return 0
606
-
607
- def OnSelectBlock(self, command, code):
608
- lineNo = self.LineFromChar()
609
- start, end, isCode = self.GetBlockBoundary(lineNo)
610
- startIndex = self.LineIndex(start)
611
- endIndex = self.LineIndex(end + 1) - 2 # skip \r + \n
612
- if endIndex < 0: # must be beyond end of buffer
613
- endIndex = -2 # self.Length()
614
- self.SetSel(startIndex, endIndex)
615
-
616
- def OnEditCopyCode(self, command, code):
617
- """Sanitizes code from interactive window, removing prompts and output,
618
- and inserts it in the clipboard."""
619
- code = self.GetSelText()
620
- lines = code.splitlines()
621
- out_lines = []
622
- for line in lines:
623
- if line.startswith(sys.ps1):
624
- line = line[len(sys.ps1) :]
625
- out_lines.append(line)
626
- elif line.startswith(sys.ps2):
627
- line = line[len(sys.ps2) :]
628
- out_lines.append(line)
629
- out_code = os.linesep.join(out_lines)
630
- win32clipboard.OpenClipboard()
631
- try:
632
- win32clipboard.SetClipboardData(
633
- win32clipboard.CF_UNICODETEXT, str(out_code)
634
- )
635
- finally:
636
- win32clipboard.CloseClipboard()
637
-
638
- def OnEditExecClipboard(self, command, code):
639
- """Executes python code directly from the clipboard."""
640
- win32clipboard.OpenClipboard()
641
- try:
642
- code = win32clipboard.GetClipboardData(win32clipboard.CF_UNICODETEXT)
643
- finally:
644
- win32clipboard.CloseClipboard()
645
-
646
- code = code.replace("\r\n", "\n") + "\n"
647
- try:
648
- o = compile(code, "<clipboard>", "exec")
649
- exec(o, __main__.__dict__)
650
- except:
651
- traceback.print_exc()
652
-
653
- def GetRightMenuItems(self):
654
- # Just override parents
655
- ret = []
656
- flags = 0
657
- ret.append((flags, win32ui.ID_EDIT_UNDO, "&Undo"))
658
- ret.append(win32con.MF_SEPARATOR)
659
- ret.append((flags, win32ui.ID_EDIT_CUT, "Cu&t"))
660
- ret.append((flags, win32ui.ID_EDIT_COPY, "&Copy"))
661
-
662
- start, end = self.GetSel()
663
- if start != end:
664
- ret.append((flags, ID_EDIT_COPY_CODE, "Copy code without prompts"))
665
- if win32clipboard.IsClipboardFormatAvailable(win32clipboard.CF_UNICODETEXT):
666
- ret.append(
667
- (flags, ID_EDIT_EXEC_CLIPBOARD, "Execute python code from clipboard")
668
- )
669
-
670
- ret.append((flags, win32ui.ID_EDIT_PASTE, "&Paste"))
671
- ret.append(win32con.MF_SEPARATOR)
672
- ret.append((flags, win32ui.ID_EDIT_SELECT_ALL, "&Select all"))
673
- ret.append((flags, win32ui.ID_EDIT_SELECT_BLOCK, "Select &block"))
674
- ret.append((flags, win32ui.ID_VIEW_WHITESPACE, "View &Whitespace"))
675
- return ret
676
-
677
- def MDINextEvent(self, event):
678
- win32ui.GetMainFrame().MDINext(0)
679
-
680
- def MDIPrevEvent(self, event):
681
- win32ui.GetMainFrame().MDINext(0)
682
-
683
- def WindowBackEvent(self, event):
684
- parent = self.GetParentFrame()
685
- if parent == win32ui.GetMainFrame():
686
- # It is docked.
687
- try:
688
- wnd, isactive = parent.MDIGetActive()
689
- wnd.SetFocus()
690
- except win32ui.error:
691
- # No MDI window active!
692
- pass
693
- else:
694
- # Normal Window
695
- try:
696
- lastActive = self.GetParentFrame().lastActive
697
- # If the window is invalid, reset it.
698
- if lastActive is not None and (
699
- lastActive._obj_ is None or lastActive.GetSafeHwnd() == 0
700
- ):
701
- lastActive = self.GetParentFrame().lastActive = None
702
- win32ui.SetStatusText("The last active Window has been closed.")
703
- except AttributeError:
704
- print("Can't find the last active window!")
705
- lastActive = None
706
- if lastActive is not None:
707
- lastActive.MDIActivate()
708
-
709
-
710
- class InteractiveView(InteractiveCore, winout.WindowOutputView):
711
- def __init__(self, doc):
712
- InteractiveCore.__init__(self)
713
- winout.WindowOutputView.__init__(self, doc)
714
- self.encoding = pywin.default_scintilla_encoding
715
-
716
- def _MakeColorizer(self):
717
- return InteractiveFormatter(self)
718
-
719
- def OnInitialUpdate(self):
720
- winout.WindowOutputView.OnInitialUpdate(self)
721
- self.SetWordWrap()
722
- self.Init()
723
-
724
- def HookHandlers(self):
725
- winout.WindowOutputView.HookHandlers(self)
726
- InteractiveCore.HookHandlers(self)
727
-
728
-
729
- class CInteractivePython(winout.WindowOutput):
730
- def __init__(self, makeDoc=None, makeFrame=None):
731
- self.IsFinalDestroy = 0
732
- winout.WindowOutput.__init__(
733
- self,
734
- sectionProfile,
735
- sectionProfile,
736
- winout.flags.WQ_LINE,
737
- 1,
738
- None,
739
- makeDoc,
740
- makeFrame,
741
- InteractiveView,
742
- )
743
- self.Create()
744
-
745
- def OnViewDestroy(self, view):
746
- if self.IsFinalDestroy:
747
- view.OutputRelease()
748
- winout.WindowOutput.OnViewDestroy(self, view)
749
-
750
- def Close(self):
751
- self.IsFinalDestroy = 1
752
- winout.WindowOutput.Close(self)
753
-
754
-
755
- class InteractiveFrame(winout.WindowOutputFrame):
756
- def __init__(self):
757
- self.lastActive = None
758
- winout.WindowOutputFrame.__init__(self)
759
-
760
- def OnMDIActivate(self, bActive, wndActive, wndDeactive):
761
- if bActive:
762
- self.lastActive = wndDeactive
763
-
764
-
765
- ######################################################################
766
- ##
767
- ## Dockable Window Support
768
- ##
769
- ######################################################################
770
- ID_DOCKED_INTERACTIVE_CONTROLBAR = 0xE802
771
-
772
- DockedInteractiveViewParent = InteractiveView
773
-
774
-
775
- class DockedInteractiveView(DockedInteractiveViewParent):
776
- def HookHandlers(self):
777
- DockedInteractiveViewParent.HookHandlers(self)
778
- self.HookMessage(self.OnSetFocus, win32con.WM_SETFOCUS)
779
- self.HookMessage(self.OnKillFocus, win32con.WM_KILLFOCUS)
780
-
781
- def OnSetFocus(self, msg):
782
- self.GetParentFrame().SetActiveView(self)
783
- return 1
784
-
785
- def OnKillFocus(self, msg):
786
- # If we are losing focus to another in this app, reset the main frame's active view.
787
- hwnd = wparam = msg[2]
788
- try:
789
- wnd = win32ui.CreateWindowFromHandle(hwnd)
790
- reset = wnd.GetTopLevelFrame() == self.GetTopLevelFrame()
791
- except win32ui.error:
792
- reset = 0 # Not my window
793
- if reset:
794
- self.GetParentFrame().SetActiveView(None)
795
- return 1
796
-
797
- def OnDestroy(self, msg):
798
- newSize = self.GetWindowPlacement()[4]
799
- pywin.framework.app.SaveWindowSize("Interactive Window", newSize, "docked")
800
- try:
801
- if self.GetParentFrame().GetActiveView == self:
802
- self.GetParentFrame().SetActiveView(None)
803
- except win32ui.error:
804
- pass
805
- try:
806
- if win32ui.GetMainFrame().GetActiveView() == self:
807
- win32ui.GetMainFrame().SetActiveView(None)
808
- except win32ui.error:
809
- pass
810
- return DockedInteractiveViewParent.OnDestroy(self, msg)
811
-
812
-
813
- class CDockedInteractivePython(CInteractivePython):
814
- def __init__(self, dockbar):
815
- self.bFirstCreated = 0
816
- self.dockbar = dockbar
817
- CInteractivePython.__init__(self)
818
-
819
- def NeedRecreateWindow(self):
820
- if self.bCreating:
821
- return 0
822
- try:
823
- frame = win32ui.GetMainFrame()
824
- if frame.closing:
825
- return 0 # Dieing!
826
- except (win32ui.error, AttributeError):
827
- return 0 # The app is dieing!
828
- try:
829
- cb = frame.GetControlBar(ID_DOCKED_INTERACTIVE_CONTROLBAR)
830
- return not cb.IsWindowVisible()
831
- except win32ui.error:
832
- return 1 # Control bar does not exist!
833
-
834
- def RecreateWindow(self):
835
- try:
836
- dockbar = win32ui.GetMainFrame().GetControlBar(
837
- ID_DOCKED_INTERACTIVE_CONTROLBAR
838
- )
839
- win32ui.GetMainFrame().ShowControlBar(dockbar, 1, 1)
840
- except win32ui.error:
841
- CreateDockedInteractiveWindow()
842
-
843
- def Create(self):
844
- self.bCreating = 1
845
- doc = InteractiveDocument(None, self.DoCreateDoc())
846
- view = DockedInteractiveView(doc)
847
- defRect = pywin.framework.app.LoadWindowSize("Interactive Window", "docked")
848
- if defRect[2] - defRect[0] == 0:
849
- defRect = 0, 0, 500, 200
850
- style = win32con.WS_CHILD | win32con.WS_VISIBLE | win32con.WS_BORDER
851
- id = 1050 # win32ui.AFX_IDW_PANE_FIRST
852
- view.CreateWindow(self.dockbar, id, style, defRect)
853
- view.OnInitialUpdate()
854
- self.bFirstCreated = 1
855
-
856
- self.currentView = doc.GetFirstView()
857
- self.bCreating = 0
858
- if self.title:
859
- doc.SetTitle(self.title)
860
-
861
-
862
- # The factory we pass to the dockable window support.
863
- def InteractiveViewCreator(parent):
864
- global edit
865
- edit = CDockedInteractivePython(parent)
866
- return edit.currentView
867
-
868
-
869
- def CreateDockedInteractiveWindow():
870
- # Later, the DockingBar should be capable of hosting multiple
871
- # children.
872
- from pywin.docking.DockingBar import DockingBar
873
-
874
- bar = DockingBar()
875
- creator = InteractiveViewCreator
876
- bar.CreateWindow(
877
- win32ui.GetMainFrame(),
878
- creator,
879
- "Interactive Window",
880
- ID_DOCKED_INTERACTIVE_CONTROLBAR,
881
- )
882
- bar.SetBarStyle(
883
- bar.GetBarStyle()
884
- | afxres.CBRS_TOOLTIPS
885
- | afxres.CBRS_FLYBY
886
- | afxres.CBRS_SIZE_DYNAMIC
887
- )
888
- bar.EnableDocking(afxres.CBRS_ALIGN_ANY)
889
- win32ui.GetMainFrame().DockControlBar(bar, afxres.AFX_IDW_DOCKBAR_BOTTOM)
890
-
891
-
892
- ######################################################################
893
- #
894
- # The public interface to this module.
895
- #
896
- ######################################################################
897
- # No extra functionality now, but maybe later, so
898
- # publicize these names.
899
- InteractiveDocument = winout.WindowOutputDocument
900
-
901
- # We remember our one and only interactive window in the "edit" variable.
902
- edit = None
903
-
904
-
905
- def CreateInteractiveWindowUserPreference(makeDoc=None, makeFrame=None):
906
- """Create some sort of interactive window if the user's preference say we should."""
907
- bCreate = LoadPreference("Show at startup", 1)
908
- if bCreate:
909
- CreateInteractiveWindow(makeDoc, makeFrame)
910
-
911
-
912
- def CreateInteractiveWindow(makeDoc=None, makeFrame=None):
913
- """Create a standard or docked interactive window unconditionally"""
914
- assert edit is None, "Creating second interactive window!"
915
- bDocking = LoadPreference("Docking", 0)
916
- if bDocking:
917
- CreateDockedInteractiveWindow()
918
- else:
919
- CreateMDIInteractiveWindow(makeDoc, makeFrame)
920
- assert edit is not None, "Created interactive window, but did not set the global!"
921
- edit.currentView.SetFocus()
922
-
923
-
924
- def CreateMDIInteractiveWindow(makeDoc=None, makeFrame=None):
925
- """Create a standard (non-docked) interactive window unconditionally"""
926
- global edit
927
- if makeDoc is None:
928
- makeDoc = InteractiveDocument
929
- if makeFrame is None:
930
- makeFrame = InteractiveFrame
931
- edit = CInteractivePython(makeDoc=makeDoc, makeFrame=makeFrame)
932
-
933
-
934
- def DestroyInteractiveWindow():
935
- """Destroy the interactive window.
936
- This is different to Closing the window,
937
- which may automatically re-appear. Once destroyed, it can never be recreated,
938
- and a complete new instance must be created (which the various other helper
939
- functions will then do after making this call
940
- """
941
- global edit
942
- if edit is not None and edit.currentView is not None:
943
- if edit.currentView.GetParentFrame() == win32ui.GetMainFrame():
944
- # It is docked - do nothing now (this is only called at shutdown!)
945
- pass
946
- else:
947
- # It is a standard window - call Close on the container.
948
- edit.Close()
949
- edit = None
950
-
951
-
952
- def CloseInteractiveWindow():
953
- """Close the interactive window, allowing it to be re-created on demand."""
954
- global edit
955
- if edit is not None and edit.currentView is not None:
956
- if edit.currentView.GetParentFrame() == win32ui.GetMainFrame():
957
- # It is docked, just hide the dock bar.
958
- frame = win32ui.GetMainFrame()
959
- cb = frame.GetControlBar(ID_DOCKED_INTERACTIVE_CONTROLBAR)
960
- frame.ShowControlBar(cb, 0, 1)
961
- else:
962
- # It is a standard window - destroy the frame/view, allowing the object itself to remain.
963
- edit.currentView.GetParentFrame().DestroyWindow()
964
-
965
-
966
- def ToggleInteractiveWindow():
967
- """If the interactive window is visible, hide it, otherwise show it."""
968
- if edit is None:
969
- CreateInteractiveWindow()
970
- else:
971
- if edit.NeedRecreateWindow():
972
- edit.RecreateWindow()
973
- else:
974
- # Close it, allowing a reopen.
975
- CloseInteractiveWindow()
976
-
977
-
978
- def ShowInteractiveWindow():
979
- """Shows (or creates if necessary) an interactive window"""
980
- if edit is None:
981
- CreateInteractiveWindow()
982
- else:
983
- if edit.NeedRecreateWindow():
984
- edit.RecreateWindow()
985
- else:
986
- parent = edit.currentView.GetParentFrame()
987
- if parent == win32ui.GetMainFrame(): # It is docked.
988
- edit.currentView.SetFocus()
989
- else: # It is a "normal" window
990
- edit.currentView.GetParentFrame().AutoRestore()
991
- win32ui.GetMainFrame().MDIActivate(edit.currentView.GetParentFrame())
992
-
993
-
994
- def IsInteractiveWindowVisible():
995
- return edit is not None and not edit.NeedRecreateWindow()