tilemap-editor 2.0.8__tar.gz → 2.0.10__tar.gz

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 (676) hide show
  1. tilemap_editor-2.0.10/PKG-INFO +24 -0
  2. tilemap_editor-2.0.10/README.md +8 -0
  3. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/pyproject.toml +1 -3
  4. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/editor.py +2 -1
  5. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/object_tileset_collision/editor.py +52 -22
  6. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/object_tileset_collision/standalone.py +4 -0
  7. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/tileset_collision/editor.py +2 -7
  8. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/standalone_error_console.py +47 -7
  9. tilemap_editor-2.0.10/src/tilemap_editor.egg-info/PKG-INFO +24 -0
  10. tilemap_editor-2.0.10/src/tilemap_editor.egg-info/SOURCES.txt +131 -0
  11. tilemap_editor-2.0.10/src/tilemap_editor.egg-info/requires.txt +1 -0
  12. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/utils/error_handler.py +6 -6
  13. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/ui/region_selector.py +1 -1
  14. tilemap_editor-2.0.8/CHANGELOG.md +0 -84
  15. tilemap_editor-2.0.8/PKG-INFO +0 -141
  16. tilemap_editor-2.0.8/README.md +0 -123
  17. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/__init__.py +0 -13
  18. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/__main__.py +0 -24
  19. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/__pip-runner__.py +0 -50
  20. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/__init__.py +0 -18
  21. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/build_env.py +0 -606
  22. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/cache.py +0 -291
  23. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/cli/__init__.py +0 -3
  24. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/cli/autocompletion.py +0 -184
  25. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/cli/base_command.py +0 -255
  26. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/cli/cmdoptions.py +0 -1267
  27. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/cli/command_context.py +0 -28
  28. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/cli/index_command.py +0 -195
  29. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/cli/main.py +0 -85
  30. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/cli/main_parser.py +0 -136
  31. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/cli/parser.py +0 -358
  32. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/cli/progress_bars.py +0 -153
  33. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/cli/req_command.py +0 -447
  34. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/cli/spinners.py +0 -235
  35. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/cli/status_codes.py +0 -6
  36. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/__init__.py +0 -139
  37. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/cache.py +0 -255
  38. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/check.py +0 -66
  39. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/completion.py +0 -136
  40. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/configuration.py +0 -288
  41. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/debug.py +0 -203
  42. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/download.py +0 -146
  43. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/freeze.py +0 -107
  44. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/hash.py +0 -58
  45. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/help.py +0 -40
  46. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/index.py +0 -166
  47. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/inspect.py +0 -92
  48. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/install.py +0 -810
  49. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/list.py +0 -398
  50. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/lock.py +0 -175
  51. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/search.py +0 -178
  52. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/show.py +0 -231
  53. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/uninstall.py +0 -113
  54. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/commands/wheel.py +0 -171
  55. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/configuration.py +0 -396
  56. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/distributions/__init__.py +0 -21
  57. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/distributions/base.py +0 -55
  58. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/distributions/installed.py +0 -33
  59. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/distributions/sdist.py +0 -164
  60. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/distributions/wheel.py +0 -44
  61. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/exceptions.py +0 -971
  62. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/index/__init__.py +0 -1
  63. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/index/collector.py +0 -488
  64. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/index/package_finder.py +0 -1125
  65. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/index/sources.py +0 -287
  66. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/locations/__init__.py +0 -440
  67. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/locations/_distutils.py +0 -173
  68. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/locations/_sysconfig.py +0 -218
  69. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/locations/base.py +0 -82
  70. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/main.py +0 -12
  71. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/metadata/__init__.py +0 -169
  72. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/metadata/_json.py +0 -87
  73. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/metadata/base.py +0 -685
  74. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/metadata/importlib/__init__.py +0 -6
  75. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/metadata/importlib/_compat.py +0 -87
  76. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/metadata/importlib/_dists.py +0 -229
  77. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/metadata/importlib/_envs.py +0 -143
  78. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/metadata/pkg_resources.py +0 -298
  79. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/models/__init__.py +0 -1
  80. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/models/candidate.py +0 -25
  81. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/models/direct_url.py +0 -227
  82. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/models/format_control.py +0 -78
  83. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/models/index.py +0 -28
  84. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/models/installation_report.py +0 -57
  85. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/models/link.py +0 -617
  86. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/models/release_control.py +0 -92
  87. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/models/scheme.py +0 -25
  88. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/models/search_scope.py +0 -126
  89. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/models/selection_prefs.py +0 -56
  90. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/models/target_python.py +0 -122
  91. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/models/wheel.py +0 -80
  92. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/network/__init__.py +0 -1
  93. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/network/auth.py +0 -568
  94. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/network/cache.py +0 -128
  95. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/network/download.py +0 -341
  96. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/network/lazy_wheel.py +0 -215
  97. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/network/session.py +0 -532
  98. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/network/utils.py +0 -98
  99. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/network/xmlrpc.py +0 -61
  100. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/operations/build/__init__.py +0 -0
  101. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/operations/build/build_tracker.py +0 -140
  102. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/operations/build/metadata.py +0 -38
  103. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/operations/build/metadata_editable.py +0 -41
  104. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/operations/build/wheel.py +0 -38
  105. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/operations/build/wheel_editable.py +0 -47
  106. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/operations/check.py +0 -175
  107. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/operations/freeze.py +0 -259
  108. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/operations/install/__init__.py +0 -1
  109. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/operations/install/wheel.py +0 -745
  110. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/operations/prepare.py +0 -747
  111. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/pyproject.py +0 -123
  112. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/req/__init__.py +0 -103
  113. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/req/constructors.py +0 -568
  114. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/req/pep723.py +0 -41
  115. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/req/req_dependency_group.py +0 -75
  116. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/req/req_file.py +0 -631
  117. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/req/req_install.py +0 -828
  118. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/req/req_set.py +0 -81
  119. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/req/req_uninstall.py +0 -639
  120. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/resolution/__init__.py +0 -0
  121. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/resolution/base.py +0 -20
  122. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  123. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/resolution/legacy/resolver.py +0 -598
  124. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  125. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/base.py +0 -142
  126. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/candidates.py +0 -591
  127. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/factory.py +0 -856
  128. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +0 -166
  129. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/provider.py +0 -285
  130. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/reporter.py +0 -98
  131. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/requirements.py +0 -251
  132. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/resolver.py +0 -332
  133. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/self_outdated_check.py +0 -255
  134. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/__init__.py +0 -0
  135. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/_jaraco_text.py +0 -109
  136. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/_log.py +0 -38
  137. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/appdirs.py +0 -52
  138. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/compat.py +0 -85
  139. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/compatibility_tags.py +0 -201
  140. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/datetime.py +0 -28
  141. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/deprecation.py +0 -126
  142. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/direct_url_helpers.py +0 -87
  143. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/egg_link.py +0 -81
  144. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/entrypoints.py +0 -88
  145. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/filesystem.py +0 -203
  146. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/filetypes.py +0 -24
  147. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/glibc.py +0 -102
  148. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/hashes.py +0 -150
  149. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/logging.py +0 -396
  150. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/misc.py +0 -771
  151. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/packaging.py +0 -44
  152. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/pylock.py +0 -116
  153. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/retry.py +0 -45
  154. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/subprocess.py +0 -248
  155. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/temp_dir.py +0 -294
  156. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/unpacking.py +0 -362
  157. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/urls.py +0 -55
  158. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/virtualenv.py +0 -105
  159. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/utils/wheel.py +0 -132
  160. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/vcs/__init__.py +0 -15
  161. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/vcs/bazaar.py +0 -130
  162. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/vcs/git.py +0 -571
  163. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/vcs/mercurial.py +0 -186
  164. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/vcs/subversion.py +0 -335
  165. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/vcs/versioncontrol.py +0 -695
  166. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/wheel_builder.py +0 -261
  167. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/__init__.py +0 -117
  168. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/__init__.py +0 -32
  169. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/_cmd.py +0 -70
  170. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/adapter.py +0 -167
  171. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/cache.py +0 -75
  172. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +0 -8
  173. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +0 -145
  174. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +0 -48
  175. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/controller.py +0 -511
  176. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/filewrapper.py +0 -121
  177. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/heuristics.py +0 -157
  178. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/serialize.py +0 -146
  179. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/cachecontrol/wrapper.py +0 -43
  180. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/certifi/__init__.py +0 -4
  181. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/certifi/__main__.py +0 -12
  182. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/certifi/core.py +0 -83
  183. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/dependency_groups/__init__.py +0 -13
  184. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/dependency_groups/__main__.py +0 -65
  185. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/dependency_groups/_implementation.py +0 -209
  186. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/dependency_groups/_lint_dependency_groups.py +0 -59
  187. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/dependency_groups/_pip_wrapper.py +0 -62
  188. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/dependency_groups/_toml_compat.py +0 -9
  189. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/distlib/__init__.py +0 -33
  190. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/distlib/compat.py +0 -1137
  191. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/distlib/resources.py +0 -358
  192. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/distlib/scripts.py +0 -447
  193. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/distlib/util.py +0 -1984
  194. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/distro/__init__.py +0 -54
  195. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/distro/__main__.py +0 -4
  196. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/distro/distro.py +0 -1403
  197. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/idna/__init__.py +0 -45
  198. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/idna/codec.py +0 -122
  199. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/idna/compat.py +0 -15
  200. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/idna/core.py +0 -437
  201. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/idna/idnadata.py +0 -4309
  202. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/idna/intranges.py +0 -57
  203. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/idna/package_data.py +0 -1
  204. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/idna/uts46data.py +0 -8841
  205. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/msgpack/__init__.py +0 -55
  206. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/msgpack/exceptions.py +0 -48
  207. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/msgpack/ext.py +0 -170
  208. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/msgpack/fallback.py +0 -929
  209. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/__init__.py +0 -15
  210. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/_elffile.py +0 -108
  211. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/_manylinux.py +0 -262
  212. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/_musllinux.py +0 -85
  213. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/_parser.py +0 -365
  214. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/_structures.py +0 -69
  215. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/_tokenizer.py +0 -193
  216. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/licenses/__init__.py +0 -147
  217. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/licenses/_spdx.py +0 -799
  218. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/markers.py +0 -388
  219. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/metadata.py +0 -978
  220. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/pylock.py +0 -635
  221. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/requirements.py +0 -86
  222. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/specifiers.py +0 -1068
  223. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/tags.py +0 -651
  224. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/utils.py +0 -158
  225. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/version.py +0 -792
  226. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pkg_resources/__init__.py +0 -3676
  227. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/platformdirs/__init__.py +0 -631
  228. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/platformdirs/__main__.py +0 -55
  229. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/platformdirs/android.py +0 -249
  230. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/platformdirs/api.py +0 -299
  231. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/platformdirs/macos.py +0 -146
  232. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/platformdirs/unix.py +0 -272
  233. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/platformdirs/version.py +0 -34
  234. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/platformdirs/windows.py +0 -278
  235. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/__init__.py +0 -82
  236. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/__main__.py +0 -17
  237. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/console.py +0 -70
  238. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/filter.py +0 -70
  239. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/filters/__init__.py +0 -940
  240. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/formatter.py +0 -129
  241. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/formatters/__init__.py +0 -157
  242. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/formatters/_mapping.py +0 -23
  243. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/lexer.py +0 -963
  244. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/lexers/__init__.py +0 -362
  245. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/lexers/_mapping.py +0 -602
  246. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/lexers/python.py +0 -1201
  247. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/modeline.py +0 -43
  248. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/plugin.py +0 -72
  249. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/regexopt.py +0 -91
  250. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/scanner.py +0 -104
  251. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/sphinxext.py +0 -247
  252. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/style.py +0 -203
  253. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/styles/__init__.py +0 -61
  254. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/styles/_mapping.py +0 -54
  255. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/token.py +0 -214
  256. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/unistring.py +0 -153
  257. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pygments/util.py +0 -324
  258. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/__init__.py +0 -31
  259. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/_impl.py +0 -410
  260. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py +0 -21
  261. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +0 -389
  262. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/requests/__init__.py +0 -179
  263. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/requests/__version__.py +0 -14
  264. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/requests/_internal_utils.py +0 -50
  265. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/requests/adapters.py +0 -696
  266. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/requests/api.py +0 -157
  267. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/requests/auth.py +0 -314
  268. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/requests/certs.py +0 -17
  269. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/requests/compat.py +0 -90
  270. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/requests/cookies.py +0 -561
  271. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/requests/exceptions.py +0 -151
  272. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/requests/help.py +0 -127
  273. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/requests/hooks.py +0 -33
  274. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/requests/models.py +0 -1039
  275. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/requests/packages.py +0 -25
  276. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/requests/sessions.py +0 -831
  277. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/requests/status_codes.py +0 -128
  278. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/requests/structures.py +0 -99
  279. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/requests/utils.py +0 -1086
  280. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/resolvelib/__init__.py +0 -27
  281. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/resolvelib/providers.py +0 -196
  282. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/resolvelib/reporters.py +0 -55
  283. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/resolvelib/resolvers/__init__.py +0 -27
  284. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/resolvelib/resolvers/abstract.py +0 -47
  285. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/resolvelib/resolvers/criterion.py +0 -48
  286. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/resolvelib/resolvers/exceptions.py +0 -57
  287. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/resolvelib/resolvers/resolution.py +0 -627
  288. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/resolvelib/structs.py +0 -209
  289. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/__init__.py +0 -177
  290. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/__main__.py +0 -245
  291. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_cell_widths.py +0 -454
  292. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_emoji_codes.py +0 -3610
  293. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_emoji_replace.py +0 -32
  294. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_export_format.py +0 -76
  295. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_extension.py +0 -10
  296. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_fileno.py +0 -24
  297. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_inspect.py +0 -268
  298. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_log_render.py +0 -94
  299. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_loop.py +0 -43
  300. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_null_file.py +0 -69
  301. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_palettes.py +0 -309
  302. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_pick.py +0 -17
  303. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_ratio.py +0 -153
  304. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_spinners.py +0 -482
  305. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_stack.py +0 -16
  306. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_timer.py +0 -19
  307. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_win32_console.py +0 -661
  308. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_windows.py +0 -71
  309. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_windows_renderer.py +0 -56
  310. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/_wrap.py +0 -93
  311. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/abc.py +0 -33
  312. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/align.py +0 -306
  313. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/ansi.py +0 -241
  314. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/bar.py +0 -93
  315. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/box.py +0 -474
  316. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/cells.py +0 -174
  317. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/color.py +0 -621
  318. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/color_triplet.py +0 -38
  319. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/columns.py +0 -187
  320. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/console.py +0 -2680
  321. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/constrain.py +0 -37
  322. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/containers.py +0 -167
  323. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/control.py +0 -219
  324. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/default_styles.py +0 -193
  325. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/diagnose.py +0 -39
  326. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/emoji.py +0 -91
  327. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/errors.py +0 -34
  328. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/file_proxy.py +0 -57
  329. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/filesize.py +0 -88
  330. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/highlighter.py +0 -232
  331. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/json.py +0 -139
  332. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/jupyter.py +0 -101
  333. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/layout.py +0 -442
  334. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/live.py +0 -400
  335. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/live_render.py +0 -106
  336. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/logging.py +0 -297
  337. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/markup.py +0 -251
  338. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/measure.py +0 -151
  339. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/padding.py +0 -141
  340. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/pager.py +0 -34
  341. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/palette.py +0 -100
  342. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/panel.py +0 -317
  343. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/pretty.py +0 -1016
  344. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/progress.py +0 -1715
  345. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/progress_bar.py +0 -223
  346. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/prompt.py +0 -400
  347. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/protocol.py +0 -42
  348. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/region.py +0 -10
  349. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/repr.py +0 -149
  350. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/rule.py +0 -130
  351. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/scope.py +0 -86
  352. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/screen.py +0 -54
  353. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/segment.py +0 -752
  354. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/spinner.py +0 -132
  355. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/status.py +0 -131
  356. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/style.py +0 -792
  357. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/styled.py +0 -42
  358. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/syntax.py +0 -985
  359. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/table.py +0 -1006
  360. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/terminal_theme.py +0 -153
  361. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/text.py +0 -1361
  362. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/theme.py +0 -115
  363. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/themes.py +0 -5
  364. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/traceback.py +0 -899
  365. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/rich/tree.py +0 -257
  366. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/tomli/__init__.py +0 -8
  367. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/tomli/_parser.py +0 -777
  368. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/tomli/_re.py +0 -115
  369. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/tomli/_types.py +0 -10
  370. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/tomli_w/__init__.py +0 -4
  371. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/tomli_w/_writer.py +0 -229
  372. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/truststore/__init__.py +0 -36
  373. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/truststore/_api.py +0 -341
  374. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/truststore/_macos.py +0 -571
  375. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/truststore/_openssl.py +0 -68
  376. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/truststore/_ssl_constants.py +0 -31
  377. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/truststore/_windows.py +0 -567
  378. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/__init__.py +0 -102
  379. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/_collections.py +0 -355
  380. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/_version.py +0 -2
  381. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/connection.py +0 -572
  382. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/connectionpool.py +0 -1140
  383. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  384. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +0 -36
  385. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  386. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +0 -519
  387. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +0 -397
  388. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/appengine.py +0 -314
  389. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +0 -130
  390. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +0 -518
  391. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +0 -920
  392. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/contrib/socks.py +0 -216
  393. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/exceptions.py +0 -323
  394. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/fields.py +0 -274
  395. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/filepost.py +0 -98
  396. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/packages/__init__.py +0 -0
  397. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  398. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +0 -51
  399. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py +0 -155
  400. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/packages/six.py +0 -1076
  401. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/poolmanager.py +0 -540
  402. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/request.py +0 -191
  403. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/response.py +0 -879
  404. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/__init__.py +0 -49
  405. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/connection.py +0 -149
  406. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/proxy.py +0 -57
  407. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/queue.py +0 -22
  408. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/request.py +0 -137
  409. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/response.py +0 -107
  410. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/retry.py +0 -622
  411. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/ssl_.py +0 -504
  412. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +0 -159
  413. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/ssltransport.py +0 -221
  414. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/timeout.py +0 -271
  415. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/url.py +0 -435
  416. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_vendor/urllib3/util/wait.py +0 -152
  417. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/__briefcase/__init__.py +0 -0
  418. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/__briefcase/pygame_ce.py +0 -148
  419. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/__init__.py +0 -474
  420. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/__pyinstaller/__init__.py +0 -5
  421. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/__pyinstaller/hook-pygame.py +0 -45
  422. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/_camera_opencv.py +0 -175
  423. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/_data_classes.py +0 -13
  424. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/_debug.py +0 -186
  425. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/_sdl2/__init__.py +0 -4
  426. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/_sdl2/window.py +0 -1
  427. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/_sprite.py +0 -28
  428. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/camera.py +0 -184
  429. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/colordict.py +0 -692
  430. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/cursors.py +0 -984
  431. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/docs/__init__.py +0 -10
  432. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/docs/__main__.py +0 -17
  433. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/docs/serve.py +0 -70
  434. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/docs/static.py +0 -26
  435. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/__init__.py +0 -0
  436. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/aacircle.py +0 -46
  437. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/aliens.py +0 -400
  438. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/arraydemo.py +0 -120
  439. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/audiocapture.py +0 -82
  440. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/blend_fill.py +0 -115
  441. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/blit_blends.py +0 -203
  442. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/camera.py +0 -124
  443. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/chimp.py +0 -200
  444. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/cursors.py +0 -256
  445. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/dropevent.py +0 -79
  446. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/eventlist.py +0 -183
  447. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/font_viewer.py +0 -286
  448. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/fonty.py +0 -86
  449. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/freetype_misc.py +0 -163
  450. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/glcube.py +0 -607
  451. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/go_over_there.py +0 -92
  452. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/headless_no_windows_needed.py +0 -48
  453. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/joystick.py +0 -141
  454. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/liquid.py +0 -93
  455. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/mask.py +0 -202
  456. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/midi.py +0 -877
  457. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/moveit.py +0 -120
  458. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/multiplayer_joystick.py +0 -157
  459. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/music_drop_fade.py +0 -242
  460. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/ninepatch.py +0 -164
  461. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/pixelarray.py +0 -143
  462. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/playmus.py +0 -131
  463. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/prevent_display_stretching.py +0 -98
  464. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/resizing_new.py +0 -49
  465. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/retro_scaling.py +0 -78
  466. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/scaletest.py +0 -147
  467. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/scrap_clipboard.py +0 -73
  468. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/scroll.py +0 -198
  469. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/setmodescale.py +0 -91
  470. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/sound.py +0 -47
  471. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/sound_array_demos.py +0 -218
  472. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/sprite_texture.py +0 -105
  473. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/stars.py +0 -135
  474. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/testsprite.py +0 -237
  475. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/textinput.py +0 -314
  476. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/vgrade.py +0 -104
  477. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/video.py +0 -163
  478. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/examples/window_opengl.py +0 -82
  479. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/freetype.py +0 -78
  480. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/ftfont.py +0 -232
  481. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/locals.py +0 -30
  482. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/macosx.py +0 -13
  483. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/midi.py +0 -716
  484. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/pkgdata.py +0 -87
  485. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/sndarray.py +0 -138
  486. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/sprite.py +0 -1788
  487. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/surfarray.py +0 -446
  488. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/sysfont.py +0 -563
  489. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/__init__.py +0 -40
  490. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/__main__.py +0 -143
  491. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/base_test.py +0 -619
  492. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/blit_test.py +0 -253
  493. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/bufferproxy_test.py +0 -502
  494. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/camera_test.py +0 -5
  495. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/color_test.py +0 -1593
  496. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/constants_test.py +0 -426
  497. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/controller_test.py +0 -271
  498. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/cursors_test.py +0 -294
  499. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/debug_test.py +0 -24
  500. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/display_test.py +0 -1112
  501. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/docs_test.py +0 -35
  502. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/draw_test.py +0 -7551
  503. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/event_test.py +0 -1007
  504. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/font_test.py +0 -1216
  505. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/freetype_test.py +0 -1810
  506. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/ftfont_test.py +0 -18
  507. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/geometry_test.py +0 -2253
  508. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/gfxdraw_test.py +0 -917
  509. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/image__save_gl_surface_test.py +0 -46
  510. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/image_test.py +0 -1496
  511. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/imageext_test.py +0 -80
  512. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/joystick_test.py +0 -170
  513. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/key_test.py +0 -319
  514. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/locals_test.py +0 -17
  515. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/mask_test.py +0 -6699
  516. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/math_test.py +0 -3309
  517. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/midi_test.py +0 -462
  518. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/mixer_music_test.py +0 -531
  519. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/mixer_test.py +0 -1439
  520. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/mouse_test.py +0 -420
  521. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/pixelarray_test.py +0 -1683
  522. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/pixelcopy_test.py +0 -708
  523. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/rect_test.py +0 -3566
  524. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/render_test.py +0 -484
  525. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/rwobject_test.py +0 -134
  526. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/scrap_test.py +0 -221
  527. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/sndarray_tags.py +0 -11
  528. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/sndarray_test.py +0 -153
  529. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/sprite_test.py +0 -1406
  530. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/surface_test.py +0 -4388
  531. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/surfarray_tags.py +0 -11
  532. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/surfarray_test.py +0 -733
  533. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/surflock_test.py +0 -144
  534. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/sysfont_test.py +0 -95
  535. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/system_test.py +0 -123
  536. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/test_utils/__init__.py +0 -180
  537. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/test_utils/arrinter.py +0 -438
  538. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/test_utils/async_sub.py +0 -301
  539. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/test_utils/buftools.py +0 -603
  540. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/test_utils/png.py +0 -4005
  541. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/test_utils/run_tests.py +0 -343
  542. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/test_utils/test_machinery.py +0 -89
  543. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/test_utils/test_runner.py +0 -330
  544. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/time_test.py +0 -511
  545. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/touch_test.py +0 -109
  546. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/transform_test.py +0 -2143
  547. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/typing_test.py +0 -26
  548. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/version_test.py +0 -30
  549. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/video_test.py +0 -53
  550. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/tests/window_test.py +0 -475
  551. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/typing.py +0 -75
  552. tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pygame/version.py +0 -75
  553. tilemap_editor-2.0.8/src/tilemap_editor.egg-info/PKG-INFO +0 -141
  554. tilemap_editor-2.0.8/src/tilemap_editor.egg-info/SOURCES.txt +0 -669
  555. tilemap_editor-2.0.8/src/tilemap_editor.egg-info/requires.txt +0 -3
  556. tilemap_editor-2.0.8/src/widgets/__init__.py +0 -0
  557. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/LICENSE +0 -0
  558. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/MANIFEST.in +0 -0
  559. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
  560. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
  561. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
  562. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
  563. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
  564. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
  565. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
  566. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
  567. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/arrow-down.svg +0 -0
  568. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/check.svg +0 -0
  569. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/checked.svg +0 -0
  570. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/close.svg +0 -0
  571. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/duplicate.svg +0 -0
  572. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/error.svg +0 -0
  573. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/file.svg +0 -0
  574. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/filedead.svg +0 -0
  575. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/fit.svg +0 -0
  576. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/folder.svg +0 -0
  577. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/grid.svg +0 -0
  578. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/image.svg +0 -0
  579. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/info.svg +0 -0
  580. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/load.svg +0 -0
  581. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/loop.svg +0 -0
  582. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/pan.svg +0 -0
  583. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/pause.svg +0 -0
  584. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/pencil.svg +0 -0
  585. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/play.svg +0 -0
  586. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/plus.svg +0 -0
  587. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/radio.svg +0 -0
  588. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/reset.svg +0 -0
  589. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/save.svg +0 -0
  590. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/stop.svg +0 -0
  591. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/tilemap.svg +0 -0
  592. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/tileset.svg +0 -0
  593. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/unchecked.svg +0 -0
  594. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/warning.svg +0 -0
  595. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/zoomin.svg +0 -0
  596. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/assets/icons/zoomout.svg +0 -0
  597. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/setup.cfg +0 -0
  598. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/configs/themes.py +0 -0
  599. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/constants.py +0 -0
  600. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/event_map.py +0 -0
  601. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/layers.py +0 -0
  602. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/main.py +0 -0
  603. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/__init__.py +0 -0
  604. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/character_collision/__init__.py +0 -0
  605. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/character_collision/editor.py +0 -0
  606. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/character_collision/models.py +0 -0
  607. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/character_collision/protocols.py +0 -0
  608. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/character_collision/shape_editor.py +0 -0
  609. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/character_collision/standalone.py +0 -0
  610. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/object_tileset_collision/__init__.py +0 -0
  611. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/object_tileset_collision/models.py +0 -0
  612. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/object_tileset_collision/protocols.py +0 -0
  613. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/sprite_animation/__init__.py +0 -0
  614. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/sprite_animation/__main__.py +0 -0
  615. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/sprite_animation/clipboard_util.py +0 -0
  616. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/sprite_animation/editor.py +0 -0
  617. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/sprite_animation/frame_picker.py +0 -0
  618. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/sprite_animation/models.py +0 -0
  619. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/sprite_animation/preview.py +0 -0
  620. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/sprite_animation/protocols.py +0 -0
  621. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/sprite_animation/runtime_load.py +0 -0
  622. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/sprite_animation/standalone.py +0 -0
  623. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/sprite_animation/timeline.py +0 -0
  624. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/sprite_animation/validation.py +0 -0
  625. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/tileset_collision/__init__.py +0 -0
  626. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/tileset_collision/collision_painter.py +0 -0
  627. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/tileset_collision/models.py +0 -0
  628. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/tileset_collision/protocols.py +0 -0
  629. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/plugins/tileset_collision/standalone.py +0 -0
  630. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/standalone_automap.py +0 -0
  631. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/standalone_filemanager.py +0 -0
  632. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/standalone_image_viewer.py +0 -0
  633. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/tilemap.py +0 -0
  634. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/tilemap_editor/__init__.py +0 -0
  635. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/tilemap_editor/__main__.py +0 -0
  636. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/tilemap_editor/cli.py +0 -0
  637. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/tilemap_editor/main.py +0 -0
  638. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/tilemap_editor/settings.py +0 -0
  639. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/tilemap_editor.egg-info/dependency_links.txt +0 -0
  640. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/tilemap_editor.egg-info/entry_points.txt +0 -0
  641. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/tilemap_editor.egg-info/top_level.txt +0 -0
  642. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/ttypes/__init__.py +0 -0
  643. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/ttypes/tilemap.py +0 -0
  644. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/utils/__init__.py +0 -0
  645. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/utils/editor_preference.py +0 -0
  646. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/utils/font_manager.py +0 -0
  647. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/utils/history.py +0 -0
  648. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/utils/icon_manager.py +0 -0
  649. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/utils/icons_cache.py +0 -0
  650. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/utils/log_capture.py +0 -0
  651. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/utils/serialization.py +0 -0
  652. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/utils/standalone.py +0 -0
  653. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/utils/validation.py +0 -0
  654. {tilemap_editor-2.0.8/src/.venv/lib/python3.14/site-packages/pip/_internal/operations → tilemap_editor-2.0.10/src/widgets}/__init__.py +0 -0
  655. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/automap_models.py +0 -0
  656. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/autotile_template.py +0 -0
  657. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/autotiler.py +0 -0
  658. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/filemanager.py +0 -0
  659. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/input.py +0 -0
  660. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/layer_selector.py +0 -0
  661. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/mapsetup.py +0 -0
  662. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/regex_automap_designer.py +0 -0
  663. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/tile_grid.py +0 -0
  664. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/tile_selector.py +0 -0
  665. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/ui/draw_utils.py +0 -0
  666. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/ui/fileinput.py +0 -0
  667. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/ui/layer_type_dialog.py +0 -0
  668. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/ui/menubar.py +0 -0
  669. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/ui/mode_indicator.py +0 -0
  670. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/ui/notification.py +0 -0
  671. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/ui/property_editor.py +0 -0
  672. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/ui/status_bar.py +0 -0
  673. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/ui/theme.py +0 -0
  674. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/ui/tileset_type_dialog.py +0 -0
  675. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/ui/toolbar.py +0 -0
  676. {tilemap_editor-2.0.8 → tilemap_editor-2.0.10}/src/widgets/ui/tooltip.py +0 -0
@@ -0,0 +1,24 @@
1
+ Metadata-Version: 2.4
2
+ Name: tilemap-editor
3
+ Version: 2.0.10
4
+ Summary: Pygame tilemap editor with SVG icons, professional UI, and sprite animation tools
5
+ Author: tilemap editor contributors
6
+ License: Proprietary
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: Programming Language :: Python :: 3 :: Only
9
+ Classifier: Topic :: Games/Entertainment
10
+ Classifier: Topic :: Software Development
11
+ Requires-Python: >=3.10
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ Requires-Dist: pygame-ce>=2.5
15
+ Dynamic: license-file
16
+
17
+ # tilemap-editor
18
+
19
+
20
+ `tilemap-editor` is a pygame-based map editor focused on fast iteration for 2D games.
21
+ `tilemap-parser` to parse this editor. (https://pypi.org/project/tilemap-editor/)[https://pypi.org/project/tilemap-editor/]
22
+
23
+
24
+ `tilemap-parser` to parse this editor. (https://pypi.org/project/tilemap-parser/)[https://pypi.org/project/tilemap-parser/]
@@ -0,0 +1,8 @@
1
+ # tilemap-editor
2
+
3
+
4
+ `tilemap-editor` is a pygame-based map editor focused on fast iteration for 2D games.
5
+ `tilemap-parser` to parse this editor. (https://pypi.org/project/tilemap-editor/)[https://pypi.org/project/tilemap-editor/]
6
+
7
+
8
+ `tilemap-parser` to parse this editor. (https://pypi.org/project/tilemap-parser/)[https://pypi.org/project/tilemap-parser/]
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tilemap-editor"
7
- version = "2.0.8"
7
+ version = "2.0.10"
8
8
  description = "Pygame tilemap editor with SVG icons, professional UI, and sprite animation tools"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -12,8 +12,6 @@ license = { text = "Proprietary" }
12
12
  authors = [{ name = "tilemap editor contributors" }]
13
13
  dependencies = [
14
14
  "pygame-ce>=2.5",
15
- "numpy>=1.0",
16
- "Pillow>=10.0",
17
15
  ]
18
16
  classifiers = [
19
17
  "Programming Language :: Python :: 3",
@@ -745,10 +745,11 @@ class Editor:
745
745
  def _launch_object_tileset_collision_editor_with_image(self, path: Path):
746
746
  """Launch object tileset collision editor (region-based)."""
747
747
  logger = self.logger if hasattr(self, 'logger') else None
748
- args = [str(path), "--data-root", str(self.data_root)]
749
748
 
750
749
  collision_dir = self.data_root / self.config.get("collision_paths", {}).get("object_tileset", "collision")
751
750
  collision_path = collision_dir / f"{path.stem}.object_collision.json"
751
+
752
+ args = [str(path), "--data-root", str(self.data_root), "--collision-dir", str(collision_dir)]
752
753
  if collision_path.exists():
753
754
  args.extend(["--load", str(collision_path)])
754
755
 
@@ -81,6 +81,8 @@ class ObjectTilesetCollisionEditor:
81
81
  self._tileset_surface = tileset_surface
82
82
  self._tileset_name = "Object Tileset"
83
83
  self._data_root: Optional[Path] = None
84
+ self._collision_dir: Optional[Path] = None
85
+ self._tileset_path_stem: Optional[str] = None
84
86
 
85
87
  # Data model
86
88
  self.library = ObjectTilesetCollisionLibrary(tileset_name=self._tileset_name)
@@ -109,6 +111,10 @@ class ObjectTilesetCollisionEditor:
109
111
  self._help_scroll = 0
110
112
  self._help_content_height = 0
111
113
 
114
+ # Regions list state
115
+ self._regions_list_scroll = 0
116
+ self._regions_item_height = 50
117
+
112
118
  # Fonts
113
119
  self._font = font_manager.get_font(FONTS.name, FONTS.size_md, FontWeight.REGULAR)
114
120
  self._font_sm = font_manager.get_font(FONTS.name, FONTS.size_sm, FontWeight.REGULAR)
@@ -423,7 +429,7 @@ class ObjectTilesetCollisionEditor:
423
429
 
424
430
  def _on_polygon_added(self, vertices: List[Tuple[float, float]]) -> None:
425
431
  """Called when a polygon is added to the painter"""
426
- print(f"[POLYGON_ADDED] {len(vertices)} vertices")
432
+ error_handler.capture_info(f"Polygon added with {len(vertices)} vertices", context="object_collision_painter")
427
433
  self._save_current_collision_data()
428
434
  self._update_status()
429
435
 
@@ -439,13 +445,12 @@ class ObjectTilesetCollisionEditor:
439
445
  def _save_current_collision_data(self) -> None:
440
446
  """Save current painter polygons to library"""
441
447
  if not self._current_region_id:
442
- print("[SAVE_CURRENT] No current region selected")
443
448
  return
444
449
 
445
450
  polygons = self.painter.get_polygons()
446
451
  one_way_flags = self.painter.get_one_way_flags()
447
452
 
448
- print(f"[SAVE_CURRENT] Region {self._current_region_id}: {len(polygons)} polygons from painter")
453
+ error_handler.capture_info(f"Saving collision for region {self._current_region_id}: {len(polygons)} polygons", context="object_collision_save")
449
454
 
450
455
  shapes = [
451
456
  CollisionPolygon(vertices=poly, one_way=one_way)
@@ -454,7 +459,6 @@ class ObjectTilesetCollisionEditor:
454
459
 
455
460
  region = self._get_current_region()
456
461
  if not region:
457
- print("[SAVE_CURRENT] Could not get current region")
458
462
  return
459
463
 
460
464
  if self._current_region_id in self.library.regions:
@@ -492,6 +496,14 @@ class ObjectTilesetCollisionEditor:
492
496
 
493
497
  # === Toolbar Actions ===
494
498
 
499
+ def _get_collision_dir(self) -> Path:
500
+ """Get the collision directory path."""
501
+ if self._collision_dir:
502
+ return self._collision_dir
503
+ if self._data_root:
504
+ return self._data_root / "collision"
505
+ raise RuntimeError("No collision directory configured. Set collision_dir or data_root.")
506
+
495
507
  def _save_collision(self) -> None:
496
508
  """Save collision data to file"""
497
509
  if not self._data_root:
@@ -499,19 +511,18 @@ class ObjectTilesetCollisionEditor:
499
511
  return
500
512
 
501
513
  try:
502
- collision_dir = self._data_root / "collision"
514
+ collision_dir = self._get_collision_dir()
503
515
  collision_dir.mkdir(parents=True, exist_ok=True)
504
- save_path = collision_dir / f"{self._tileset_name}.object_collision.json"
516
+ stem = getattr(self, '_tileset_path_stem', self._tileset_name)
517
+ save_path = collision_dir / f"{stem}.object_collision.json"
505
518
 
506
519
  # Sync current painter data
507
520
  if self._mode == EditorMode.PAINT_COLLISION:
508
521
  self._save_current_collision_data()
509
522
 
510
- # Debug: Print what we're saving
523
+ # Log what we're saving
511
524
  total_shapes = sum(len(data.shapes) for data in self.library.regions.values())
512
- print(f"[SAVE] Saving {len(self.library.regions)} regions with {total_shapes} total shapes to {save_path}")
513
- for region_id, data in self.library.regions.items():
514
- print(f" - {region_id} ({data.name}): {len(data.shapes)} shapes")
525
+ error_handler.capture_info(f"Saving {len(self.library.regions)} regions with {total_shapes} total shapes to {save_path}", context="object_collision_save")
515
526
 
516
527
  self.library.save(save_path)
517
528
  self.status_bar.success("Saved", f"{save_path.name}")
@@ -519,7 +530,6 @@ class ObjectTilesetCollisionEditor:
519
530
  except Exception as e:
520
531
  self.status_bar.error("Save failed", str(e))
521
532
  error_handler.capture(e, context="object_collision_editor_save")
522
- print(f"[SAVE ERROR] {e}")
523
533
 
524
534
  def load_from_file(self, path: Path) -> None:
525
535
  """Load collision data from a specific file path"""
@@ -559,8 +569,9 @@ class ObjectTilesetCollisionEditor:
559
569
  self.status_bar.error("Cannot load", "No data root specified")
560
570
  return
561
571
 
562
- collision_dir = self._data_root / "collision"
563
- load_path = collision_dir / f"{self._tileset_name}.object_collision.json"
572
+ collision_dir = self._get_collision_dir()
573
+ stem = getattr(self, '_tileset_path_stem', self._tileset_name)
574
+ load_path = collision_dir / f"{stem}.object_collision.json"
564
575
  self.load_from_file(load_path)
565
576
 
566
577
  def _toggle_help(self) -> None:
@@ -593,7 +604,7 @@ class ObjectTilesetCollisionEditor:
593
604
  pygame.draw.rect(screen, COLORS.border, panel_rect, 2, border_radius=SHAPE.radius)
594
605
 
595
606
  # Title
596
- title = self._font.render("Object Collision Editor Help", True, COLORS.text)
607
+ title = self._font.render("Object Tileset Collision Editor Help", True, COLORS.text)
597
608
  screen.blit(title, (panel_x + 15, panel_y + 15))
598
609
 
599
610
  # Close button
@@ -773,11 +784,11 @@ class ObjectTilesetCollisionEditor:
773
784
  if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1:
774
785
  mouse = pygame.mouse.get_pos()
775
786
  if self.regions_list_rect.collidepoint(mouse):
776
- # Calculate which region was clicked
777
- list_y = mouse[1] - (self.regions_list_rect.y + 35)
778
- item_height = 50
779
- if list_y >= 0:
780
- idx = list_y // item_height
787
+ # Calculate which region was clicked (accounting for scroll)
788
+ rel_y = mouse[1] - (self.regions_list_rect.y + 35 - self._regions_list_scroll)
789
+ item_height = self._regions_item_height
790
+ if rel_y >= 0:
791
+ idx = int(rel_y) // item_height
781
792
  if idx < len(self.region_selector.regions):
782
793
  region = self.region_selector.regions[idx]
783
794
  # Check if clicking same region (might be renaming)
@@ -812,6 +823,15 @@ class ObjectTilesetCollisionEditor:
812
823
  self._toggle_help()
813
824
  return True
814
825
 
826
+ # Mouse wheel scrolling for regions list
827
+ if event.type == pygame.MOUSEWHEEL:
828
+ mouse = pygame.mouse.get_pos()
829
+ if self.regions_list_rect.collidepoint(mouse):
830
+ self._regions_list_scroll -= event.y * 30
831
+ max_scroll = max(0, len(self.region_selector.regions) * self._regions_item_height - (self.regions_list_rect.height - 35))
832
+ self._regions_list_scroll = max(0, min(self._regions_list_scroll, max_scroll))
833
+ return True
834
+
815
835
  # Keyboard shortcuts
816
836
  if event.type == pygame.KEYDOWN:
817
837
  mods = pygame.key.get_mods()
@@ -901,14 +921,21 @@ class ObjectTilesetCollisionEditor:
901
921
  header = self._font.render("Regions", True, COLORS.text)
902
922
  screen.blit(header, (self.regions_list_rect.x + 10, self.regions_list_rect.y + 10))
903
923
 
904
- # List regions
905
- y = self.regions_list_rect.y + 35
906
- item_height = 50
924
+ # List regions (with scroll offset)
925
+ y = self.regions_list_rect.y + 35 - self._regions_list_scroll
926
+ item_height = self._regions_item_height
907
927
 
908
928
  clip = screen.get_clip()
909
929
  screen.set_clip(self.regions_list_rect)
910
930
 
911
931
  for region in self.region_selector.regions:
932
+ # Skip items outside visible area
933
+ if y + item_height < self.regions_list_rect.y:
934
+ y += item_height
935
+ continue
936
+ if y > self.regions_list_rect.bottom:
937
+ break
938
+
912
939
  is_selected = region.id == self._current_region_id
913
940
  is_renaming = region.id == self._renaming_region_id
914
941
 
@@ -1015,12 +1042,15 @@ class ObjectTilesetCollisionEditor:
1015
1042
  tileset_path: Path,
1016
1043
  window_size: Tuple[int, int] = (1200, 800),
1017
1044
  data_root: Path = None,
1045
+ collision_dir: Path = None,
1018
1046
  ) -> "ObjectTilesetCollisionEditor":
1019
1047
  """Create editor from tileset image path"""
1020
1048
  surface = pygame.image.load(tileset_path).convert_alpha()
1021
1049
  rect = Rect(0, 0, window_size[0], window_size[1])
1022
1050
  editor = cls(rect, surface)
1023
1051
  editor._data_root = data_root
1052
+ editor._collision_dir = collision_dir
1053
+ editor._tileset_path_stem = tileset_path.stem
1024
1054
  editor._tileset_name = tileset_path.stem
1025
1055
  editor.library.tileset_name = tileset_path.stem
1026
1056
  return editor
@@ -34,6 +34,7 @@ def main(argv: list[str] | None = None) -> None:
34
34
  parser.add_argument("image", type=Path, help="Path to object tileset image")
35
35
  parser.add_argument("--window-size", type=str, default="1200x800", help="Window size WxH")
36
36
  parser.add_argument("--data-root", type=Path, required=True, help="Data root path")
37
+ parser.add_argument("--collision-dir", type=Path, default=None, help="Collision directory override")
37
38
  parser.add_argument("--load", type=Path, default=None, help="Load existing collision file")
38
39
 
39
40
  args = parser.parse_args(argv)
@@ -48,10 +49,13 @@ def main(argv: list[str] | None = None) -> None:
48
49
  screen = pygame.display.set_mode(window_size, pygame.RESIZABLE)
49
50
  pygame.display.set_caption(f"Object Tileset Collision — {args.image.name}")
50
51
 
52
+ collision_dir = args.collision_dir
53
+
51
54
  editor = ObjectTilesetCollisionEditor.from_path(
52
55
  args.image,
53
56
  window_size=window_size,
54
57
  data_root=args.data_root,
58
+ collision_dir=collision_dir,
55
59
  )
56
60
 
57
61
  if args.load and args.load.exists():
@@ -144,7 +144,6 @@ class TilesetCollisionEditor:
144
144
  collision_dir.mkdir(parents=True, exist_ok=True)
145
145
  stem = getattr(self, '_tileset_path_stem', self._tileset_name)
146
146
  save_path = collision_dir / f"{stem}.collision.json"
147
- print(f"[SAVE] Saving to: {save_path}")
148
147
  self.save_to_file(save_path)
149
148
 
150
149
  def _load_collision(self) -> None:
@@ -152,12 +151,8 @@ class TilesetCollisionEditor:
152
151
  collision_dir = self._get_collision_dir()
153
152
  stem = getattr(self, '_tileset_path_stem', self._tileset_name)
154
153
  load_path = collision_dir / f"{stem}.collision.json"
155
- print(f"[LOAD] Trying: {load_path}, exists={load_path.exists()}")
156
154
  if load_path.exists():
157
155
  self.load_from_file(load_path)
158
- print(f"[LOAD] Loaded: {load_path}")
159
- else:
160
- print(f"[LOAD] File not found")
161
156
 
162
157
  def _get_collision_dir(self) -> Path:
163
158
  """Get collision directory path"""
@@ -787,8 +782,8 @@ class TilesetCollisionEditor:
787
782
  elif event.key == pygame.K_l and (
788
783
  pygame.key.get_mods() & (pygame.KMOD_LCTRL | pygame.KMOD_LMETA)
789
784
  ):
790
- # Ctrl+L / Cmd+L to load
791
- load_path = Path("collision_data.json")
785
+ collision_dir = self._get_collision_dir()
786
+ load_path = collision_dir / f"{getattr(self, '_tileset_path_stem', self._tileset_name)}.collision.json"
792
787
  if load_path.exists():
793
788
  self.load_from_file(load_path)
794
789
  print(f"Loaded collision data from {load_path}")
@@ -53,6 +53,8 @@ PALETTE_DARK = {
53
53
  "info_bg": (20, 30, 60),
54
54
  "dot_live": (35, 209, 96),
55
55
  "scrollbar_thumb": (80, 80, 80),
56
+ "danger": (248, 81, 73),
57
+ "danger_bg": (62, 20, 20),
56
58
  }
57
59
 
58
60
  C = PALETTE_DARK
@@ -229,7 +231,10 @@ class StandaloneErrorConsole:
229
231
  bx += bw + 8
230
232
 
231
233
  # Clear Button
232
- self._clear_btn = Rect(w - 90, self.TITLEBAR_H + 10, 75, 26)
234
+ self._clear_btn = Rect(w - 175, self.TITLEBAR_H + 10, 75, 26)
235
+
236
+ # Delete Logs Button
237
+ self._delete_logs_btn = Rect(w - 90, self.TITLEBAR_H + 10, 75, 26)
233
238
 
234
239
  # Content Area
235
240
  content_top = self.TITLEBAR_H + self.TOOLBAR_H
@@ -258,6 +263,21 @@ class StandaloneErrorConsole:
258
263
  error_handler.capture(e, severity="error")
259
264
  self._refresh_entries()
260
265
 
266
+ def _purge_logs(self) -> None:
267
+ """Permanently purge the log file (truncate to empty)."""
268
+ try:
269
+ if self.log_file and self.log_file.exists():
270
+ with open(self.log_file, "w", encoding="utf-8") as f:
271
+ pass
272
+ self.last_file_size = 0
273
+ self._all_entries = []
274
+ self._visible_entries = []
275
+ self._expanded_ids = set()
276
+ self._scroll_offset = 0
277
+ self._refresh_entries()
278
+ except Exception as e:
279
+ error_handler.capture(e, context="error_console_purge_logs")
280
+
261
281
  def _monitor_file(self):
262
282
  while self.running:
263
283
  try:
@@ -285,7 +305,7 @@ class StandaloneErrorConsole:
285
305
 
286
306
  def _get_entry_layout(self, entry: Dict, width: int) -> Dict[str, Any]:
287
307
  """Calculates dynamic height and text wrapping for a specific entry."""
288
- wrap_w = width - 200 # Space for timestamp and tags
308
+ wrap_w = width - 245 # Space for timestamp (YYYY-MM-DD HH:MM:SS) + tag + padding
289
309
  msg_text = entry.get("message", "No message")
290
310
  ctx_text = entry.get("context", "")
291
311
 
@@ -368,6 +388,10 @@ class StandaloneErrorConsole:
368
388
  self._all_entries = []
369
389
  self._refresh_entries()
370
390
 
391
+ # Handle Delete Logs
392
+ if self._delete_logs_btn.collidepoint(event.pos):
393
+ self._purge_logs()
394
+
371
395
  # Handle Entry Expansion
372
396
  if self.content_rect.collidepoint(event.pos):
373
397
  rel_y = event.pos[1] - self.content_rect.y + self._scroll_offset
@@ -518,14 +542,15 @@ class StandaloneErrorConsole:
518
542
  sev_icon = icon_manager.get_icon(icon_name, 14, icon_color)
519
543
  self.screen.blit(sev_icon, (8, curr_y + self.CELL_PADDING))
520
544
 
521
- # 1. Timestamp
522
- ts = entry.get("timestamp", "")[11:19]
545
+ # 1. Timestamp (full ISO: YYYY-MM-DD HH:MM:SS)
546
+ raw_ts = entry.get("timestamp", "")
547
+ ts = raw_ts[:10].replace("T", " ") + " " + raw_ts[11:19] if raw_ts else ""
523
548
  ts_surf = self.f_small.render(ts, True, C["text_tertiary"])
524
- self.screen.blit(ts_surf, (15, curr_y + self.CELL_PADDING))
549
+ self.screen.blit(ts_surf, (12, curr_y + self.CELL_PADDING))
525
550
 
526
551
  # 2. Tag
527
552
  tag_col = C[f"{sev}_stripe"]
528
- tag_rect = Rect(85, curr_y + self.CELL_PADDING - 2, 65, 18)
553
+ tag_rect = Rect(165, curr_y + self.CELL_PADDING - 2, 65, 18)
529
554
  pygame.draw.rect(self.screen, tag_col, tag_rect, 1, border_radius=3)
530
555
  tag_txt = self.f_small.render(sev.upper(), True, tag_col)
531
556
  self.screen.blit(
@@ -537,7 +562,7 @@ class StandaloneErrorConsole:
537
562
  )
538
563
 
539
564
  # 3. Message (Wrapped)
540
- text_x = 165
565
+ text_x = 245
541
566
  text_y = curr_y + self.CELL_PADDING
542
567
  for i, line in enumerate(layout["msg_lines"]):
543
568
  m_surf = self.f_main.render(line, True, C["text_primary"])
@@ -701,6 +726,21 @@ class StandaloneErrorConsole:
701
726
  ),
702
727
  )
703
728
 
729
+ # Delete Logs
730
+ is_hover_delete = self._delete_logs_btn.collidepoint(self.mouse_pos)
731
+ delete_bg = C["danger_bg"] if is_hover_delete else C["bg_secondary"]
732
+ pygame.draw.rect(
733
+ self.screen, delete_bg, self._delete_logs_btn, border_radius=4
734
+ )
735
+ dtxt = self.f_small.render("Delete Logs", True, C["danger"])
736
+ self.screen.blit(
737
+ dtxt,
738
+ (
739
+ self._delete_logs_btn.centerx - dtxt.get_width() // 2,
740
+ self._delete_logs_btn.centery - dtxt.get_height() // 2,
741
+ ),
742
+ )
743
+
704
744
  # 3. Status Bar
705
745
  pygame.draw.rect(
706
746
  self.screen,
@@ -0,0 +1,24 @@
1
+ Metadata-Version: 2.4
2
+ Name: tilemap-editor
3
+ Version: 2.0.10
4
+ Summary: Pygame tilemap editor with SVG icons, professional UI, and sprite animation tools
5
+ Author: tilemap editor contributors
6
+ License: Proprietary
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: Programming Language :: Python :: 3 :: Only
9
+ Classifier: Topic :: Games/Entertainment
10
+ Classifier: Topic :: Software Development
11
+ Requires-Python: >=3.10
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ Requires-Dist: pygame-ce>=2.5
15
+ Dynamic: license-file
16
+
17
+ # tilemap-editor
18
+
19
+
20
+ `tilemap-editor` is a pygame-based map editor focused on fast iteration for 2D games.
21
+ `tilemap-parser` to parse this editor. (https://pypi.org/project/tilemap-editor/)[https://pypi.org/project/tilemap-editor/]
22
+
23
+
24
+ `tilemap-parser` to parse this editor. (https://pypi.org/project/tilemap-parser/)[https://pypi.org/project/tilemap-parser/]
@@ -0,0 +1,131 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf
6
+ assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf
7
+ assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf
8
+ assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf
9
+ assets/fonts/noto/NotoSans-Bold.ttf
10
+ assets/fonts/noto/NotoSans-BoldItalic.ttf
11
+ assets/fonts/noto/NotoSans-Italic.ttf
12
+ assets/fonts/noto/NotoSans-Regular.ttf
13
+ assets/icons/arrow-down.svg
14
+ assets/icons/check.svg
15
+ assets/icons/checked.svg
16
+ assets/icons/close.svg
17
+ assets/icons/duplicate.svg
18
+ assets/icons/error.svg
19
+ assets/icons/file.svg
20
+ assets/icons/filedead.svg
21
+ assets/icons/fit.svg
22
+ assets/icons/folder.svg
23
+ assets/icons/grid.svg
24
+ assets/icons/image.svg
25
+ assets/icons/info.svg
26
+ assets/icons/load.svg
27
+ assets/icons/loop.svg
28
+ assets/icons/pan.svg
29
+ assets/icons/pause.svg
30
+ assets/icons/pencil.svg
31
+ assets/icons/play.svg
32
+ assets/icons/plus.svg
33
+ assets/icons/radio.svg
34
+ assets/icons/reset.svg
35
+ assets/icons/save.svg
36
+ assets/icons/stop.svg
37
+ assets/icons/tilemap.svg
38
+ assets/icons/tileset.svg
39
+ assets/icons/unchecked.svg
40
+ assets/icons/warning.svg
41
+ assets/icons/zoomin.svg
42
+ assets/icons/zoomout.svg
43
+ src/constants.py
44
+ src/editor.py
45
+ src/event_map.py
46
+ src/layers.py
47
+ src/main.py
48
+ src/standalone_automap.py
49
+ src/standalone_error_console.py
50
+ src/standalone_filemanager.py
51
+ src/standalone_image_viewer.py
52
+ src/tilemap.py
53
+ src/configs/themes.py
54
+ src/plugins/__init__.py
55
+ src/plugins/character_collision/__init__.py
56
+ src/plugins/character_collision/editor.py
57
+ src/plugins/character_collision/models.py
58
+ src/plugins/character_collision/protocols.py
59
+ src/plugins/character_collision/shape_editor.py
60
+ src/plugins/character_collision/standalone.py
61
+ src/plugins/object_tileset_collision/__init__.py
62
+ src/plugins/object_tileset_collision/editor.py
63
+ src/plugins/object_tileset_collision/models.py
64
+ src/plugins/object_tileset_collision/protocols.py
65
+ src/plugins/object_tileset_collision/standalone.py
66
+ src/plugins/sprite_animation/__init__.py
67
+ src/plugins/sprite_animation/__main__.py
68
+ src/plugins/sprite_animation/clipboard_util.py
69
+ src/plugins/sprite_animation/editor.py
70
+ src/plugins/sprite_animation/frame_picker.py
71
+ src/plugins/sprite_animation/models.py
72
+ src/plugins/sprite_animation/preview.py
73
+ src/plugins/sprite_animation/protocols.py
74
+ src/plugins/sprite_animation/runtime_load.py
75
+ src/plugins/sprite_animation/standalone.py
76
+ src/plugins/sprite_animation/timeline.py
77
+ src/plugins/sprite_animation/validation.py
78
+ src/plugins/tileset_collision/__init__.py
79
+ src/plugins/tileset_collision/collision_painter.py
80
+ src/plugins/tileset_collision/editor.py
81
+ src/plugins/tileset_collision/models.py
82
+ src/plugins/tileset_collision/protocols.py
83
+ src/plugins/tileset_collision/standalone.py
84
+ src/tilemap_editor/__init__.py
85
+ src/tilemap_editor/__main__.py
86
+ src/tilemap_editor/cli.py
87
+ src/tilemap_editor/main.py
88
+ src/tilemap_editor/settings.py
89
+ src/tilemap_editor.egg-info/PKG-INFO
90
+ src/tilemap_editor.egg-info/SOURCES.txt
91
+ src/tilemap_editor.egg-info/dependency_links.txt
92
+ src/tilemap_editor.egg-info/entry_points.txt
93
+ src/tilemap_editor.egg-info/requires.txt
94
+ src/tilemap_editor.egg-info/top_level.txt
95
+ src/ttypes/__init__.py
96
+ src/ttypes/tilemap.py
97
+ src/utils/__init__.py
98
+ src/utils/editor_preference.py
99
+ src/utils/error_handler.py
100
+ src/utils/font_manager.py
101
+ src/utils/history.py
102
+ src/utils/icon_manager.py
103
+ src/utils/icons_cache.py
104
+ src/utils/log_capture.py
105
+ src/utils/serialization.py
106
+ src/utils/standalone.py
107
+ src/utils/validation.py
108
+ src/widgets/__init__.py
109
+ src/widgets/automap_models.py
110
+ src/widgets/autotile_template.py
111
+ src/widgets/autotiler.py
112
+ src/widgets/filemanager.py
113
+ src/widgets/input.py
114
+ src/widgets/layer_selector.py
115
+ src/widgets/mapsetup.py
116
+ src/widgets/regex_automap_designer.py
117
+ src/widgets/tile_grid.py
118
+ src/widgets/tile_selector.py
119
+ src/widgets/ui/draw_utils.py
120
+ src/widgets/ui/fileinput.py
121
+ src/widgets/ui/layer_type_dialog.py
122
+ src/widgets/ui/menubar.py
123
+ src/widgets/ui/mode_indicator.py
124
+ src/widgets/ui/notification.py
125
+ src/widgets/ui/property_editor.py
126
+ src/widgets/ui/region_selector.py
127
+ src/widgets/ui/status_bar.py
128
+ src/widgets/ui/theme.py
129
+ src/widgets/ui/tileset_type_dialog.py
130
+ src/widgets/ui/toolbar.py
131
+ src/widgets/ui/tooltip.py
@@ -0,0 +1 @@
1
+ pygame-ce>=2.5
@@ -12,7 +12,7 @@ import json
12
12
  import traceback
13
13
  from datetime import datetime
14
14
  from pathlib import Path
15
- from typing import List, Dict, Any
15
+ from typing import List, Dict, Any, Optional
16
16
  from contextlib import contextmanager
17
17
 
18
18
 
@@ -90,10 +90,10 @@ class ErrorHandler:
90
90
  message: The info message to log
91
91
  context: Context string describing where message originated
92
92
  """
93
- self._capture_impl(ValueError(message), context, "info")
93
+ self._capture_impl(None, context, "info", message=message)
94
94
 
95
95
  def _capture_impl(
96
- self, error: Exception, context: str = "", severity: str = "error"
96
+ self, error: Optional[Exception], context: str = "", severity: str = "error", message: Optional[str] = None
97
97
  ) -> None:
98
98
  """
99
99
  Internal implementation of error capture.
@@ -104,11 +104,11 @@ class ErrorHandler:
104
104
 
105
105
  error_data = {
106
106
  "timestamp": datetime.utcnow().isoformat() + "Z",
107
- "error_type": type(error).__name__,
108
- "message": str(error),
107
+ "error_type": type(error).__name__ if error else severity,
108
+ "message": str(error) if error else (message or ""),
109
109
  "context": context,
110
110
  "severity": severity,
111
- "stack_trace": traceback.format_exc(),
111
+ "stack_trace": "".join(traceback.format_exception(type(error), error, error.__traceback__)) if error else None,
112
112
  "thread_id": threading.current_thread().ident,
113
113
  }
114
114
 
@@ -636,7 +636,7 @@ class RegionSelector:
636
636
  def set_regions(self, regions: List[Region]) -> None:
637
637
  """Set all regions at once"""
638
638
  self.regions = regions
639
- self.selected_id = None
639
+ self.select_region(None)
640
640
 
641
641
  def get_regions(self) -> List[Region]:
642
642
  """Get all regions"""