pyglet 2.1.dev2__tar.gz → 2.1.dev3__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 (797) hide show
  1. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/.github/workflows/unittests.yml +1 -1
  2. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/PKG-INFO +1 -1
  3. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/RELEASE_NOTES +24 -11
  4. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/contrib/qt_sprite_preview.py +35 -31
  5. pyglet-2.1.dev3/doc/_static/css/custom.css +29 -0
  6. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/conf.py +147 -49
  7. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/index.rst +1 -0
  8. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/internal/doc.rst +47 -14
  9. pyglet-2.1.dev3/doc/modules/customtypes.rst +16 -0
  10. pyglet-2.1.dev3/doc/modules/font.rst +12 -0
  11. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/input.rst +2 -0
  12. pyglet-2.1.dev3/doc/modules/sprite.rst +15 -0
  13. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/text/layout.rst +1 -0
  14. pyglet-2.1.dev3/doc/programming_guide/options.rst +54 -0
  15. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/rendering.rst +17 -8
  16. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/requirements.txt +1 -0
  17. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/model/fpscamera.py +27 -26
  18. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/model/model.py +1 -1
  19. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/opengl/torus.py +1 -1
  20. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/sprite/depth_sprite.py +2 -6
  21. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/sprite/multi_texture_sprite.py +77 -48
  22. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/sprite/sprite_batching.py +9 -6
  23. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/make.py +12 -4
  24. pyglet-2.1.dev3/pyglet/__init__.py +468 -0
  25. pyglet-2.1.dev3/pyglet/__init__.pyi +29 -0
  26. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/app/__init__.py +6 -8
  27. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/app/base.py +86 -88
  28. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/clock.py +93 -117
  29. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/display/__init__.py +24 -29
  30. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/display/base.py +44 -100
  31. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/event.py +105 -98
  32. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/experimental/hidraw.py +28 -87
  33. pyglet-2.1.dev3/pyglet/experimental/particles.py +389 -0
  34. pyglet-2.1.dev3/pyglet/extlibs/earcut.py +714 -0
  35. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/font/__init__.py +54 -41
  36. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/font/base.py +147 -133
  37. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/font/directwrite.py +654 -597
  38. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/font/fontconfig.py +109 -91
  39. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/font/freetype.py +102 -71
  40. pyglet-2.1.dev3/pyglet/font/freetype_lib.py +598 -0
  41. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/font/quartz.py +42 -36
  42. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/font/ttf.py +238 -239
  43. pyglet-2.1.dev3/pyglet/font/user.py +291 -0
  44. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/font/win32.py +32 -36
  45. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/base.py +131 -192
  46. pyglet-2.1.dev3/pyglet/gl/wgl.py +314 -0
  47. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/graphics/__init__.py +9 -2
  48. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/graphics/shader.py +4 -1
  49. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/graphics/vertexdomain.py +2 -4
  50. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gui/__init__.py +1 -0
  51. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gui/frame.py +68 -38
  52. pyglet-2.1.dev3/pyglet/gui/ninepatch.py +269 -0
  53. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gui/widgets.py +137 -129
  54. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/image/__init__.py +48 -10
  55. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/image/animation.py +38 -77
  56. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/image/atlas.py +74 -110
  57. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/image/buffer.py +91 -50
  58. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/input/__init__.py +27 -38
  59. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/input/base.py +379 -427
  60. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/input/controller.py +33 -37
  61. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/input/linux/evdev.py +12 -64
  62. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/input/win32/__init__.py +4 -4
  63. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/input/win32/wintab.py +8 -10
  64. pyglet-2.1.dev3/pyglet/libs/__init__.py +19 -0
  65. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/darwin/cocoapy/runtime.py +262 -31
  66. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/darwin/coreaudio.py +86 -19
  67. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/darwin/quartzkey.py +32 -13
  68. pyglet-2.1.dev3/pyglet/libs/ioctl.py +129 -0
  69. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/x11/xlib.py +1480 -947
  70. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/math.py +64 -65
  71. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/__init__.py +22 -17
  72. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/codecs/__init__.py +4 -1
  73. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/player.py +34 -67
  74. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/player_worker_thread.py +31 -21
  75. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/synthesis.py +105 -81
  76. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/model/__init__.py +106 -58
  77. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/model/codecs/__init__.py +12 -3
  78. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/resource.py +295 -363
  79. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/shapes.py +892 -498
  80. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/sprite.py +255 -260
  81. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/text/__init__.py +218 -244
  82. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/text/caret.py +45 -92
  83. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/text/document.py +216 -210
  84. pyglet-2.1.dev3/pyglet/text/formats/__init__.py +1 -0
  85. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/text/formats/attributed.py +32 -29
  86. pyglet-2.1.dev3/pyglet/text/formats/html.py +336 -0
  87. pyglet-2.1.dev3/pyglet/text/formats/plaintext.py +17 -0
  88. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/text/formats/structured.py +97 -85
  89. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/text/layout/__init__.py +28 -16
  90. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/text/layout/base.py +372 -383
  91. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/text/layout/incremental.py +189 -258
  92. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/text/layout/scrolling.py +77 -60
  93. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/text/runlist.py +91 -84
  94. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/window/__init__.py +440 -580
  95. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/window/cocoa/__init__.py +66 -68
  96. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/window/cocoa/pyglet_delegate.py +49 -36
  97. pyglet-2.1.dev3/pyglet/window/cocoa/pyglet_textview.py +181 -0
  98. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/window/cocoa/pyglet_view.py +75 -55
  99. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/window/cocoa/pyglet_window.py +31 -18
  100. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/window/cocoa/systemcursor.py +4 -2
  101. pyglet-2.1.dev3/pyglet/window/event.py +120 -0
  102. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/window/headless/__init__.py +39 -31
  103. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/window/key.py +20 -33
  104. pyglet-2.1.dev3/pyglet/window/mouse.py +114 -0
  105. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/window/win32/__init__.py +373 -340
  106. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/window/xlib/__init__.py +256 -221
  107. pyglet-2.1.dev3/pyproject.toml +79 -0
  108. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/media/test_driver.py +0 -1
  109. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/media/test_player.py +0 -1
  110. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/media/test_player.py +3 -2
  111. pyglet-2.1.dev2/doc/modules/font.rst +0 -6
  112. pyglet-2.1.dev2/doc/modules/sprite.rst +0 -38
  113. pyglet-2.1.dev2/doc/programming_guide/options.rst +0 -33
  114. pyglet-2.1.dev2/pyglet/__init__.py +0 -370
  115. pyglet-2.1.dev2/pyglet/__init__.pyi +0 -13
  116. pyglet-2.1.dev2/pyglet/font/freetype_lib.py +0 -558
  117. pyglet-2.1.dev2/pyglet/font/user.py +0 -182
  118. pyglet-2.1.dev2/pyglet/gl/wgl.py +0 -338
  119. pyglet-2.1.dev2/pyglet/libs/x11/__init__.py +0 -1
  120. pyglet-2.1.dev2/pyglet/text/formats/__init__.py +0 -4
  121. pyglet-2.1.dev2/pyglet/text/formats/html.py +0 -336
  122. pyglet-2.1.dev2/pyglet/text/formats/plaintext.py +0 -11
  123. pyglet-2.1.dev2/pyglet/window/cocoa/pyglet_textview.py +0 -169
  124. pyglet-2.1.dev2/pyglet/window/event.py +0 -115
  125. pyglet-2.1.dev2/pyglet/window/mouse.py +0 -100
  126. pyglet-2.1.dev2/pyproject.toml +0 -14
  127. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/.coveragerc +0 -0
  128. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  129. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  130. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/.github/ISSUE_TEMPLATE/questions--or-other.md +0 -0
  131. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/.github/workflows/codeql.yml +0 -0
  132. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/.gitignore +0 -0
  133. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/.readthedocs.yml +0 -0
  134. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/LICENSE +0 -0
  135. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/MANIFEST.in +0 -0
  136. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/README.md +0 -0
  137. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/contrib/aseprite_codec/README +0 -0
  138. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/contrib/aseprite_codec/asedemo.py +0 -0
  139. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/contrib/aseprite_codec/aseprite.py +0 -0
  140. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/contrib/aseprite_codec/running.ase +0 -0
  141. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/contrib/logo3d/logo3d.jpg +0 -0
  142. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/contrib/logo3d/logo3d.obj.zip +0 -0
  143. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/contrib/logo3d/logo3d.wings +0 -0
  144. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/contrib/scenemanager.py +0 -0
  145. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/contrib/toys/follow_mouse.py +0 -0
  146. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/Makefile +0 -0
  147. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/README.md +0 -0
  148. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/_static/favicon.ico +0 -0
  149. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/_static/logo.png +0 -0
  150. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/_static/logo5.svg +0 -0
  151. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/_static/relatedlogo.png +0 -0
  152. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/external_resources.rst +0 -0
  153. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/internal/contributing.rst +0 -0
  154. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/internal/dist.rst +0 -0
  155. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/internal/generated.rst +0 -0
  156. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/internal/gl.rst +0 -0
  157. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/internal/media_logging_manual.rst +0 -0
  158. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/internal/media_manual.rst +0 -0
  159. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/internal/testing.rst +0 -0
  160. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/internal/virtualenv.rst +0 -0
  161. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/internal/wraptypes-class.svg +0 -0
  162. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/internal/wraptypes.rst +0 -0
  163. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/make.bat +0 -0
  164. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/app.rst +0 -0
  165. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/canvas.rst +0 -0
  166. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/clock.rst +0 -0
  167. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/event.rst +0 -0
  168. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/gl.rst +0 -0
  169. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/graphics/allocation.rst +0 -0
  170. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/graphics/index.rst +0 -0
  171. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/graphics/shader.rst +0 -0
  172. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/graphics/vertexbuffer.rst +0 -0
  173. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/graphics/vertexdomain.rst +0 -0
  174. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/gui.rst +0 -0
  175. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/image/animation.rst +0 -0
  176. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/image/atlas.rst +0 -0
  177. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/image/buffer.rst +0 -0
  178. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/image/index.rst +0 -0
  179. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/info.rst +0 -0
  180. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/math.rst +0 -0
  181. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/media.rst +0 -0
  182. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/media_synthesis.rst +0 -0
  183. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/pyglet.rst +0 -0
  184. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/resource.rst +0 -0
  185. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/shapes.rst +0 -0
  186. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/text/caret.rst +0 -0
  187. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/text/document.rst +0 -0
  188. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/text/index.rst +0 -0
  189. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/window.rst +0 -0
  190. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/window_key.rst +0 -0
  191. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/modules/window_mouse.rst +0 -0
  192. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/context.rst +0 -0
  193. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/debug.rst +0 -0
  194. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/eventloop.rst +0 -0
  195. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/events.rst +0 -0
  196. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/examplegame.rst +0 -0
  197. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/gl.rst +0 -0
  198. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/gui.rst +0 -0
  199. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/image.rst +0 -0
  200. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/abstract_image.png +0 -0
  201. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/abstract_image.svg +0 -0
  202. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/buffer_image.png +0 -0
  203. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/buffer_image.svg +0 -0
  204. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/context_flow.png +0 -0
  205. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/context_flow.svg +0 -0
  206. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_mac_crosshair.png +0 -0
  207. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_mac_default.png +0 -0
  208. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_mac_hand.png +0 -0
  209. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_mac_no.png +0 -0
  210. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_mac_size_down.png +0 -0
  211. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_mac_size_left.png +0 -0
  212. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_mac_size_left_right.png +0 -0
  213. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_mac_size_right.png +0 -0
  214. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_mac_size_up.png +0 -0
  215. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_mac_size_up_down.png +0 -0
  216. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_mac_text.png +0 -0
  217. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_mac_wait.png +0 -0
  218. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_win_crosshair.png +0 -0
  219. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_win_default.png +0 -0
  220. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_win_hand.png +0 -0
  221. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_win_help.png +0 -0
  222. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_win_no.png +0 -0
  223. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_win_size.png +0 -0
  224. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_win_size_left_right.png +0 -0
  225. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_win_size_nesw.png +0 -0
  226. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_win_size_nwse.png +0 -0
  227. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_win_size_up_down.png +0 -0
  228. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_win_text.png +0 -0
  229. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_win_wait.png +0 -0
  230. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/cursor_win_wait_arrow.png +0 -0
  231. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/explosion.png +0 -0
  232. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/font_metrics.png +0 -0
  233. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/font_metrics.svg +0 -0
  234. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/image_classes.png +0 -0
  235. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/image_classes.svg +0 -0
  236. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/image_grid.png +0 -0
  237. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/image_grid.svg +0 -0
  238. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/image_sequence.png +0 -0
  239. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/image_sequence.svg +0 -0
  240. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/mouse_coordinates.png +0 -0
  241. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/mouse_coordinates.svg +0 -0
  242. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/screens.png +0 -0
  243. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/screens.svg +0 -0
  244. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/text_classes.png +0 -0
  245. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/text_classes.svg +0 -0
  246. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/window_location.png +0 -0
  247. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/window_location.svg +0 -0
  248. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/window_osx_borderless.png +0 -0
  249. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/window_osx_default.png +0 -0
  250. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/window_osx_dialog.png +0 -0
  251. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/window_osx_tool.png +0 -0
  252. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/window_xp_default.png +0 -0
  253. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/window_xp_dialog.png +0 -0
  254. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/window_xp_overlay.png +0 -0
  255. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/window_xp_tool.png +0 -0
  256. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/img/window_xp_transparent.png +0 -0
  257. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/input.rst +0 -0
  258. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/installation.rst +0 -0
  259. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/keyboard.rst +0 -0
  260. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/math.rst +0 -0
  261. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/media.rst +0 -0
  262. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/migration.rst +0 -0
  263. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/mouse.rst +0 -0
  264. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/quickstart.rst +0 -0
  265. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/resources.rst +0 -0
  266. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/shapes.rst +0 -0
  267. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/text.rst +0 -0
  268. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/time.rst +0 -0
  269. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/doc/programming_guide/windowing.rst +0 -0
  270. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/clipboard.py +0 -0
  271. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/dpi_scaled_window.py +0 -0
  272. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/events/events_key_state_handler.py +0 -0
  273. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/events/register_event_type.py +0 -0
  274. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/events/window_events.py +0 -0
  275. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/events/window_platform_event.py +0 -0
  276. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/file_dialog.py +0 -0
  277. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/resources/asteroid.png +0 -0
  278. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/resources/bullet.png +0 -0
  279. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/resources/bullet.wav +0 -0
  280. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/resources/engine_flame.png +0 -0
  281. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/resources/player.png +0 -0
  282. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version1/asteroid.py +0 -0
  283. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version1/game/__init__.py +0 -0
  284. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version1/game/load.py +0 -0
  285. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version1/game/resources.py +0 -0
  286. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version2/asteroid.py +0 -0
  287. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version2/game/__init__.py +0 -0
  288. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version2/game/load.py +0 -0
  289. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version2/game/physicalobject.py +0 -0
  290. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version2/game/player.py +0 -0
  291. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version2/game/resources.py +0 -0
  292. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version3/asteroid.py +0 -0
  293. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version3/game/__init__.py +0 -0
  294. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version3/game/load.py +0 -0
  295. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version3/game/physicalobject.py +0 -0
  296. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version3/game/player.py +0 -0
  297. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version3/game/resources.py +0 -0
  298. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version3/game/util.py +0 -0
  299. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version4/asteroid.py +0 -0
  300. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version4/game/__init__.py +0 -0
  301. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version4/game/asteroid.py +0 -0
  302. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version4/game/bullet.py +0 -0
  303. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version4/game/load.py +0 -0
  304. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version4/game/physicalobject.py +0 -0
  305. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version4/game/player.py +0 -0
  306. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version4/game/resources.py +0 -0
  307. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version4/game/util.py +0 -0
  308. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version5/asteroid.py +0 -0
  309. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version5/game/__init__.py +0 -0
  310. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version5/game/asteroid.py +0 -0
  311. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version5/game/bullet.py +0 -0
  312. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version5/game/load.py +0 -0
  313. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version5/game/physicalobject.py +0 -0
  314. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version5/game/player.py +0 -0
  315. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version5/game/resources.py +0 -0
  316. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/game/version5/game/util.py +0 -0
  317. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/graphics/image_convert.py +0 -0
  318. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/graphics/image_display.py +0 -0
  319. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/gui/bar.png +0 -0
  320. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/gui/button_hover.png +0 -0
  321. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/gui/button_pressed.png +0 -0
  322. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/gui/button_unpressed.png +0 -0
  323. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/gui/knob.png +0 -0
  324. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/gui/widgets.py +0 -0
  325. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/hello_world.py +0 -0
  326. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/input/apple_remote.py +0 -0
  327. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/input/controller.py +0 -0
  328. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/input/input.py +0 -0
  329. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/input/joystick.py +0 -0
  330. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/input/tablet.py +0 -0
  331. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/media/media_info.py +0 -0
  332. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/media/media_player.py +0 -0
  333. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/media/noisy/README +0 -0
  334. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/media/noisy/ball.png +0 -0
  335. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/media/noisy/ball.wav +0 -0
  336. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/media/noisy/noisy.py +0 -0
  337. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/media/soundspace/README +0 -0
  338. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/media/soundspace/reader.py +0 -0
  339. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/media/soundspace/res/bass.wav +0 -0
  340. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/media/soundspace/res/drums.wav +0 -0
  341. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/media/soundspace/res/guitar.wav +0 -0
  342. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/media/soundspace/res/piano.wav +0 -0
  343. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/media/soundspace/res/space.txt +0 -0
  344. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/media/soundspace/soundspace.py +0 -0
  345. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/media/synthesizer.py +0 -0
  346. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/media/video.py +0 -0
  347. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/model/box.mtl +0 -0
  348. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/model/box.obj +0 -0
  349. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/model/logo3d.mtl +0 -0
  350. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/model/logo3d.obj +0 -0
  351. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/model/pyglet.png +0 -0
  352. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/opengl/compute_shader.py +0 -0
  353. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/opengl/egl_context.py +0 -0
  354. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/opengl/minimal_shader.py +0 -0
  355. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/opengl/opengl_context.py +0 -0
  356. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/opengl/opengl_core.py +0 -0
  357. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/opengl/opengl_scissor.py +0 -0
  358. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/opengl/pyglet.png +0 -0
  359. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/programming_guide/animation.py +0 -0
  360. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/programming_guide/dinosaur.gif +0 -0
  361. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/programming_guide/events.py +0 -0
  362. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/programming_guide/hello_world.py +0 -0
  363. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/programming_guide/image_viewer.py +0 -0
  364. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/programming_guide/kitten.jpg +0 -0
  365. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/programming_guide/window_subclass.py +0 -0
  366. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/resources/kitten.jpg +0 -0
  367. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/resources/pyglet.png +0 -0
  368. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/shapes.py +0 -0
  369. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/sprite/display_sprite.py +0 -0
  370. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/text/advanced_font.py +0 -0
  371. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/text/html_label.py +0 -0
  372. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/text/pyglet.png +0 -0
  373. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/text/text_input.py +0 -0
  374. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/timer.py +0 -0
  375. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/window/camera.py +0 -0
  376. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/window/camera_group.py +0 -0
  377. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/window/fixed_resolution.py +0 -0
  378. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/window/fps_change.py +0 -0
  379. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/window/multiple_windows.py +0 -0
  380. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/window/overlay_window.py +0 -0
  381. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/examples/window/transparent_window.py +0 -0
  382. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/experimental/dist_field/README +0 -0
  383. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/experimental/dist_field/genfield.py +0 -0
  384. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/experimental/dist_field/py.df.png +0 -0
  385. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/experimental/dist_field/py.png +0 -0
  386. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/experimental/dist_field/renderfield.py +0 -0
  387. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/experimental/flaccodec.py +0 -0
  388. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/experimental/hello_world.svg +0 -0
  389. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/experimental/spritebenchmark.py +0 -0
  390. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/experimental/svg_test.py +0 -0
  391. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/experimental/wayland/gbm_egl_context.py +0 -0
  392. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/experimental/win32priority.py +0 -0
  393. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/app/cocoa.py +0 -0
  394. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/app/win32.py +0 -0
  395. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/app/xlib.py +0 -0
  396. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/customtypes.py +0 -0
  397. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/display/cocoa.py +0 -0
  398. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/display/headless.py +0 -0
  399. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/display/win32.py +0 -0
  400. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/display/xlib.py +0 -0
  401. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/display/xlib_vidmoderestore.py +0 -0
  402. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/experimental/README.md +0 -0
  403. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/experimental/geoshader_sprite.py +0 -0
  404. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/experimental/net.py +0 -0
  405. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/extlibs/__init__.py +0 -0
  406. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/extlibs/png.py +0 -0
  407. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/__init__.py +0 -0
  408. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/agl.py +0 -0
  409. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/cocoa.py +0 -0
  410. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/gl.py +0 -0
  411. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/gl_compat.py +0 -0
  412. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/gl_info.py +0 -0
  413. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/glx.py +0 -0
  414. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/glx_info.py +0 -0
  415. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/glxext_arb.py +0 -0
  416. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/glxext_mesa.py +0 -0
  417. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/glxext_nv.py +0 -0
  418. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/headless.py +0 -0
  419. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/lib.py +0 -0
  420. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/lib_agl.py +0 -0
  421. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/lib_glx.py +0 -0
  422. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/lib_wgl.py +0 -0
  423. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/wgl_info.py +0 -0
  424. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/wglext_arb.py +0 -0
  425. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/wglext_nv.py +0 -0
  426. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/win32.py +0 -0
  427. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/gl/xlib.py +0 -0
  428. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/graphics/allocation.py +0 -0
  429. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/graphics/vertexarray.py +0 -0
  430. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/graphics/vertexbuffer.py +0 -0
  431. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/image/codecs/__init__.py +0 -0
  432. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/image/codecs/bmp.py +0 -0
  433. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/image/codecs/dds.py +0 -0
  434. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/image/codecs/gdiplus.py +0 -0
  435. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/image/codecs/gdkpixbuf2.py +0 -0
  436. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/image/codecs/gif.py +0 -0
  437. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/image/codecs/pil.py +0 -0
  438. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/image/codecs/png.py +0 -0
  439. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/image/codecs/quartz.py +0 -0
  440. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/image/codecs/s3tc.py +0 -0
  441. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/image/codecs/wic.py +0 -0
  442. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/info.py +0 -0
  443. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/input/controller_db.py +0 -0
  444. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/input/linux/__init__.py +0 -0
  445. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/input/linux/evdev_constants.py +0 -0
  446. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/input/linux/x11_xinput.py +0 -0
  447. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/input/linux/x11_xinput_tablet.py +0 -0
  448. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/input/macos/__init__.py +0 -0
  449. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/input/macos/darwin_hid.py +0 -0
  450. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/input/win32/directinput.py +0 -0
  451. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/input/win32/xinput.py +0 -0
  452. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/lib.py +0 -0
  453. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/darwin/__init__.py +0 -0
  454. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/darwin/cocoapy/__init__.py +0 -0
  455. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/darwin/cocoapy/cocoalibs.py +0 -0
  456. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/darwin/cocoapy/cocoatypes.py +0 -0
  457. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/egl/__init__.py +0 -0
  458. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/egl/egl.py +0 -0
  459. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/egl/eglext.py +0 -0
  460. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/egl/lib.py +0 -0
  461. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/wayland/__init__.py +0 -0
  462. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/wayland/gbm.py +0 -0
  463. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/wayland/xkbcommon.py +0 -0
  464. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/win32/__init__.py +0 -0
  465. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/win32/com.py +0 -0
  466. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/win32/constants.py +0 -0
  467. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/win32/context_managers.py +0 -0
  468. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/win32/dinput.py +0 -0
  469. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/win32/libwintab.py +0 -0
  470. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/win32/types.py +0 -0
  471. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/win32/winkey.py +0 -0
  472. {pyglet-2.1.dev2/pyglet/libs → pyglet-2.1.dev3/pyglet/libs/x11}/__init__.py +0 -0
  473. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/x11/cursorfont.py +0 -0
  474. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/x11/xf86vmode.py +0 -0
  475. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/x11/xinerama.py +0 -0
  476. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/x11/xinput.py +0 -0
  477. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/libs/x11/xsync.py +0 -0
  478. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/buffered_logger.py +0 -0
  479. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/codecs/base.py +0 -0
  480. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/codecs/coreaudio.py +0 -0
  481. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/codecs/ffmpeg.py +0 -0
  482. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/codecs/ffmpeg_lib/__init__.py +0 -0
  483. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/codecs/ffmpeg_lib/compat.py +0 -0
  484. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/codecs/ffmpeg_lib/libavcodec.py +0 -0
  485. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/codecs/ffmpeg_lib/libavformat.py +0 -0
  486. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/codecs/ffmpeg_lib/libavutil.py +0 -0
  487. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/codecs/ffmpeg_lib/libswresample.py +0 -0
  488. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/codecs/ffmpeg_lib/libswscale.py +0 -0
  489. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/codecs/gstreamer.py +0 -0
  490. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/codecs/pyogg.py +0 -0
  491. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/codecs/wave.py +0 -0
  492. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/codecs/wmf.py +0 -0
  493. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/devices/__init__.py +0 -0
  494. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/devices/base.py +0 -0
  495. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/devices/win32.py +0 -0
  496. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/__init__.py +0 -0
  497. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/base.py +0 -0
  498. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/directsound/__init__.py +0 -0
  499. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/directsound/adaptation.py +0 -0
  500. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/directsound/exceptions.py +0 -0
  501. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/directsound/interface.py +0 -0
  502. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/directsound/lib_dsound.py +0 -0
  503. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/listener.py +0 -0
  504. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/openal/__init__.py +0 -0
  505. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/openal/adaptation.py +0 -0
  506. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/openal/interface.py +0 -0
  507. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/openal/lib_alc.py +0 -0
  508. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/openal/lib_openal.py +0 -0
  509. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/pulse/__init__.py +0 -0
  510. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/pulse/adaptation.py +0 -0
  511. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/pulse/interface.py +0 -0
  512. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/pulse/lib_pulseaudio.py +0 -0
  513. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/silent/__init__.py +0 -0
  514. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/silent/adaptation.py +0 -0
  515. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/xaudio2/__init__.py +0 -0
  516. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/xaudio2/adaptation.py +0 -0
  517. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/xaudio2/interface.py +0 -0
  518. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/drivers/xaudio2/lib_xaudio2.py +0 -0
  519. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/exceptions.py +0 -0
  520. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/media/instrumentation.py +0 -0
  521. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/model/codecs/gltf.py +0 -0
  522. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/model/codecs/obj.py +0 -0
  523. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pyglet/util.py +0 -0
  524. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/pytest.ini +0 -0
  525. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/setup.py +0 -0
  526. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/__init__.py +0 -0
  527. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/annotations.py +0 -0
  528. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/base/__init__.py +0 -0
  529. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/base/data.py +0 -0
  530. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/base/event_loop.py +0 -0
  531. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/base/interactive.py +0 -0
  532. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/base/performance.py +0 -0
  533. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/conftest.py +0 -0
  534. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/fonts/README +0 -0
  535. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/fonts/action_man.ttf +0 -0
  536. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/fonts/action_man_bold.ttf +0 -0
  537. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/fonts/action_man_bold_italic.ttf +0 -0
  538. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/fonts/action_man_italic.ttf +0 -0
  539. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/fonts/courR12-ISO8859-1.pcf +0 -0
  540. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/8bpp.gif +0 -0
  541. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/cursor.png +0 -0
  542. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/dinosaur.gif +0 -0
  543. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/gdk_close.png +0 -0
  544. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/grey_background.png +0 -0
  545. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/icon1.png +0 -0
  546. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/icon_size1.png +0 -0
  547. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/icon_size2.png +0 -0
  548. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/icon_size3.png +0 -0
  549. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/icon_size4.png +0 -0
  550. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/icon_size5.png +0 -0
  551. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/l.png +0 -0
  552. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/la.png +0 -0
  553. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/multitexture.png +0 -0
  554. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/rgb.png +0 -0
  555. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/rgb_16bpp.bmp +0 -0
  556. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/rgb_1bpp.bmp +0 -0
  557. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/rgb_24bpp.bmp +0 -0
  558. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/rgb_32bpp.bmp +0 -0
  559. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/rgb_4bpp.bmp +0 -0
  560. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/rgb_8bpp.bmp +0 -0
  561. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/rgb_8bpp.png +0 -0
  562. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/rgb_8bpp_trans.png +0 -0
  563. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/rgb_dxt1.dds +0 -0
  564. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/rgba.png +0 -0
  565. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/rgba_32bpp.bmp +0 -0
  566. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/rgba_dxt1.dds +0 -0
  567. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/rgba_dxt3.dds +0 -0
  568. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/rgba_dxt5.dds +0 -0
  569. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/images/tests.interactive.test_interactive_test_base._Test.test_1.001.png +0 -0
  570. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/media/README +0 -0
  571. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/media/alert.wav +0 -0
  572. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/media/login.wav +0 -0
  573. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/media/logout.wav +0 -0
  574. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/media/receive.wav +0 -0
  575. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/media/send.wav +0 -0
  576. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/media/synthesis_sawtooth_16_11025_1ch.wav +0 -0
  577. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/media/synthesis_sawtooth_16_44800_1ch.wav +0 -0
  578. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/media/synthesis_silence_16_11025_1ch.wav +0 -0
  579. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/media/synthesis_silence_16_44800_1ch.wav +0 -0
  580. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/media/synthesis_simplefm_16_11025_1ch.wav +0 -0
  581. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/media/synthesis_simplefm_16_44800_1ch.wav +0 -0
  582. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/media/synthesis_sine_16_11025_1ch.wav +0 -0
  583. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/media/synthesis_sine_16_44800_1ch.wav +0 -0
  584. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/media/synthesis_square_16_11025_1ch.wav +0 -0
  585. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/media/synthesis_square_16_44800_1ch.wav +0 -0
  586. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/media/synthesis_triangle_16_11025_1ch.wav +0 -0
  587. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/media/synthesis_triangle_16_44800_1ch.wav +0 -0
  588. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/models/logo3d.mtl +0 -0
  589. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/data/models/logo3d.obj +0 -0
  590. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/__init__.py +0 -0
  591. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/app/__init__.py +0 -0
  592. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/app/test_eventloop.py +0 -0
  593. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/font/test_fontconfig.py +0 -0
  594. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/font/test_freetype_face.py +0 -0
  595. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/graphics/__init__.py +0 -0
  596. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/graphics/test_allocation.py +0 -0
  597. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/graphics/test_batch_migration.py +0 -0
  598. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/image/__init__.py +0 -0
  599. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/image/test_gdkpixbuf2.py +0 -0
  600. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/image/test_imagegrid.py +0 -0
  601. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/image/test_texture3d.py +0 -0
  602. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/media/__init__.py +0 -0
  603. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/media/mock_player.py +0 -0
  604. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/media/test_directsound.py +0 -0
  605. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/media/test_openal.py +0 -0
  606. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/media/test_pulse.py +0 -0
  607. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/model/__init__.py +0 -0
  608. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/model/test_loading.py +0 -0
  609. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/platform/__init__.py +0 -0
  610. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/platform/test_win_context_managers.py +0 -0
  611. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/platform/test_win_multicore_clock.py +0 -0
  612. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/resource/__init__.py +0 -0
  613. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/resource/dir1/dir1/f3.txt +0 -0
  614. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/resource/dir1/f2.txt +0 -0
  615. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/resource/dir1/res.zip +0 -0
  616. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/resource/dir2/f6.txt +0 -0
  617. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/resource/f1.txt +0 -0
  618. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/resource/rgbm.png +0 -0
  619. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/resource/test_resource_image_loading.py +0 -0
  620. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/resource/test_resource_loading.py +0 -0
  621. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/text/__init__.py +0 -0
  622. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/text/test_empty_document.py +0 -0
  623. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/text/test_label_creation.py +0 -0
  624. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/text/test_layout_creation.py +0 -0
  625. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/window/__init__.py +0 -0
  626. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/window/test_context_share.py +0 -0
  627. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/window/test_event_sequence.py +0 -0
  628. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/integration/window/test_window_caption.py +0 -0
  629. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/__init__.py +0 -0
  630. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/conftest.py +0 -0
  631. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/image/__init__.py +0 -0
  632. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/image/test_image.py +0 -0
  633. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/media/__init__.py +0 -0
  634. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/media/test_player.py +0 -0
  635. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/screenshots/committed/README +0 -0
  636. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/screenshots/session/README +0 -0
  637. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/shapes/test_shapes.py +0 -0
  638. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/test_interactive_test_base.py +0 -0
  639. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/text/__init__.py +0 -0
  640. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/text/test_caret_color.py +0 -0
  641. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/text/test_content_valign.py +0 -0
  642. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/text/test_html.py +0 -0
  643. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/text/test_inline_elements.py +0 -0
  644. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/text/test_inline_elements_style_change.py +0 -0
  645. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/text/test_multiline_wrap.py +0 -0
  646. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/text/test_plain.py +0 -0
  647. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/text/test_style.py +0 -0
  648. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/window/__init__.py +0 -0
  649. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/window/test_window_events.py +0 -0
  650. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/window/test_window_fullscreen.py +0 -0
  651. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/window/test_window_modes.py +0 -0
  652. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/window/test_window_multisample.py +0 -0
  653. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/window/test_window_open.py +0 -0
  654. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/window/test_window_settings.py +0 -0
  655. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/window/test_window_styles.py +0 -0
  656. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/window/window_util.py +0 -0
  657. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/interactive/windowed_test_base.py +0 -0
  658. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/requirements.txt +0 -0
  659. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/__init__.py +0 -0
  660. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/conftest.py +0 -0
  661. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/media/__init__.py +0 -0
  662. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/media/test_listener.py +0 -0
  663. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/media/test_sources.py +0 -0
  664. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/media/test_synthesis.py +0 -0
  665. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/shapes/__init__.py +0 -0
  666. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/shapes/conftest.py +0 -0
  667. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/shapes/test_bordered_rectangle.py +0 -0
  668. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/shapes/test_shapes.py +0 -0
  669. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/test_atlas.py +0 -0
  670. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/test_clock.py +0 -0
  671. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/test_clock_freq.py +0 -0
  672. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/test_events.py +0 -0
  673. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/test_font.py +0 -0
  674. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/test_input.py +0 -0
  675. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/test_math.py +0 -0
  676. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/test_resource_path.py +0 -0
  677. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/test_sprite.py +0 -0
  678. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/test_text.py +0 -0
  679. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/text/__init__.py +0 -0
  680. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/text/test_caret.py +0 -0
  681. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tests/unit/text/test_layout.py +0 -0
  682. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/al_info.py +0 -0
  683. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/ffmpeg/bokeh_timeline.py +0 -0
  684. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/ffmpeg/compare.py +0 -0
  685. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/ffmpeg/configure.py +0 -0
  686. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/ffmpeg/extractors.py +0 -0
  687. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/ffmpeg/fs.py +0 -0
  688. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/ffmpeg/mp.py +0 -0
  689. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/ffmpeg/mpexceptions.py +0 -0
  690. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/ffmpeg/playmany.py +0 -0
  691. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/ffmpeg/readme_ffmpeg_debbuging_branch.txt +0 -0
  692. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/ffmpeg/readme_run_tests.txt +0 -0
  693. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/ffmpeg/report.py +0 -0
  694. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/ffmpeg/reports.py +0 -0
  695. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/ffmpeg/retry_crashed.py +0 -0
  696. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/ffmpeg/run_test_suite.py +0 -0
  697. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/ffmpeg/summarize.py +0 -0
  698. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/ffmpeg/test_instrumentation.py +0 -0
  699. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/ffmpeg/timeline.py +0 -0
  700. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/gencontrollerdb.py +0 -0
  701. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/gengl.py +0 -0
  702. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/genwrappers.py +0 -0
  703. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/gl.template +0 -0
  704. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/gl.xml +0 -0
  705. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/gl_info.py +0 -0
  706. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/inspect_font.py +0 -0
  707. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/requirements.txt +0 -0
  708. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/wgl.h +0 -0
  709. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/wraptypes/__init__.py +0 -0
  710. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/wraptypes/cparser.py +0 -0
  711. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/wraptypes/ctypesparser.py +0 -0
  712. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/wraptypes/lex.py +0 -0
  713. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/wraptypes/preprocessor.py +0 -0
  714. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/wraptypes/wrap.py +0 -0
  715. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/tools/wraptypes/yacc.py +0 -0
  716. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/LICENSE.txt +0 -0
  717. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/README.rst +0 -0
  718. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/assets/favicon.ico +0 -0
  719. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/assets/static/css/example-custom-styles.css +0 -0
  720. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/assets/static/images/pyglet.png +0 -0
  721. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/content/404.html/contents.lr +0 -0
  722. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/content/404.html/ngc-5793.jpg +0 -0
  723. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/content/authors/benjamin/contents.lr +0 -0
  724. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/content/authors/benjamin/pyglet.png +0 -0
  725. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/content/authors/contents.lr +0 -0
  726. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/content/blog/contents.lr +0 -0
  727. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/content/blog/welcome-blog/contents.lr +0 -0
  728. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/content/contents.lr +0 -0
  729. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/content/eclipse.jpg +0 -0
  730. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/pyglet.lektorproject +0 -0
  731. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/AUTHORS.txt +0 -0
  732. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/CHANGELOG.md +0 -0
  733. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/CONTRIBUTING.md +0 -0
  734. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/LICENSE.txt +0 -0
  735. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/NOTICE.txt +0 -0
  736. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/README.md +0 -0
  737. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/css/bootstrap.css +0 -0
  738. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/css/icomoon.css +0 -0
  739. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/css/magnific-popup.css +0 -0
  740. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/css/style.css +0 -0
  741. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  742. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  743. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  744. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.ttf +0 -0
  745. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.woff +0 -0
  746. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/images/Preloader_2.gif +0 -0
  747. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/images/placeholder_person.png +0 -0
  748. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/js/jquery-3.3.1.min.js +0 -0
  749. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/js/jquery.easing.min.js +0 -0
  750. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/js/jquery.magnific-popup.min.js +0 -0
  751. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/js/jquery.stellar.js +0 -0
  752. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/js/jquery.stellar.min.js +0 -0
  753. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/js/jquery.waypoints.min.js +0 -0
  754. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/js/magnific-popup-options.js +0 -0
  755. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/js/main-singlelayout.js +0 -0
  756. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/assets/static/js/main.js +0 -0
  757. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/flowblocks/content.ini +0 -0
  758. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/flowblocks/gallery.ini +0 -0
  759. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/flowblocks/gallery_item.ini +0 -0
  760. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/flowblocks/member.ini +0 -0
  761. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/flowblocks/mission.ini +0 -0
  762. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/flowblocks/mission_tab.ini +0 -0
  763. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/flowblocks/service.ini +0 -0
  764. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/flowblocks/services.ini +0 -0
  765. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/flowblocks/team.ini +0 -0
  766. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/images/blog-index.png +0 -0
  767. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/images/full-blog.png +0 -0
  768. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/images/full-page.png +0 -0
  769. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/images/gallery-404.png +0 -0
  770. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/images/gallery-singlepage.png +0 -0
  771. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/images/mainpage-screenshots.png +0 -0
  772. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/images/responsive-layout.png +0 -0
  773. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/models/404.ini +0 -0
  774. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/models/author.ini +0 -0
  775. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/models/authors.ini +0 -0
  776. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/models/blog-post.ini +0 -0
  777. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/models/blog.ini +0 -0
  778. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/models/page.ini +0 -0
  779. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/models/single-layout.ini +0 -0
  780. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/templates/404.html +0 -0
  781. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/templates/author.html +0 -0
  782. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/templates/authors.html +0 -0
  783. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/templates/blocks/content.html +0 -0
  784. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/templates/blocks/gallery.html +0 -0
  785. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/templates/blocks/mission.html +0 -0
  786. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/templates/blocks/services.html +0 -0
  787. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/templates/blocks/team.html +0 -0
  788. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/templates/blog-layout.html +0 -0
  789. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/templates/blog-post.html +0 -0
  790. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/templates/blog.html +0 -0
  791. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/templates/layout.html +0 -0
  792. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/templates/macros/blog.html +0 -0
  793. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/templates/macros/pagination.html +0 -0
  794. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/templates/none.html +0 -0
  795. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/templates/page.html +0 -0
  796. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/templates/single-layout.html +0 -0
  797. {pyglet-2.1.dev2 → pyglet-2.1.dev3}/website/themes/lektor-icon/theme.ini +0 -0
@@ -28,7 +28,7 @@ jobs:
28
28
  runs-on: macos-latest
29
29
  strategy:
30
30
  matrix:
31
- python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12' ]
31
+ python-version: [ '3.10', '3.11', '3.12' ]
32
32
  name: Python ${{ matrix.python-version }} OSX
33
33
  steps:
34
34
  - uses: actions/checkout@v4
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyglet
3
- Version: 2.1.dev2
3
+ Version: 2.1.dev3
4
4
  Summary: pyglet is a cross-platform games and multimedia package.
5
5
  Author-email: Alex Holkner & contributors <Alex.Holkner@gmail.com>
6
6
  Requires-Python: >=3.8
@@ -1,3 +1,16 @@
1
+ pyglet 2.0.16
2
+
3
+ Changes and Improvements
4
+ ------------------------
5
+ - library-wide overhaul of docstrings, and addition of type hints (#1084)
6
+
7
+ Bugfixes
8
+ --------
9
+ - resource: Fix indexing of directories inside of Zip files. Remove broken code for multi-part archives.
10
+ - shapes: Add missing `thickness` property to Box.
11
+ - shapes: Add missing docstrings to `Arc` `thickness` property.
12
+
13
+
1
14
  pyglet 2.0.15
2
15
 
3
16
  Changes and Improvements
@@ -911,7 +924,7 @@ New features
911
924
  Improvements
912
925
  ------------
913
926
  - Improved font rendering for fonts with negative bearing (#99)
914
- - Sprites now have `scale_x` and `scale_y` attributes, allowing for aspect ratio changes. The
927
+ - Sprites now have `scale_x` and `scale_y` attributes, allowing for aspect ratio changes. The
915
928
  existing `scale` attribute sets the overall scaling, and functions as before.
916
929
  - Sprites have a new `update` method which allows simultaneous changing of position, scale, and
917
930
  rotation. This reduces some overhead when changing multiple attributes at once.
@@ -941,16 +954,16 @@ Bugfixes
941
954
 
942
955
 
943
956
  pyglet 1.2.3
944
- ============
945
- Minor bugfix release.
946
-
947
- Bugfixes:
948
- - Windows: Fix issue where ALT key causes app to hang.
949
- - Media: Many fixes to PulseAudio and OpenAL media drivers (a.o. #26, #27).
950
- - OSX: Fix stealing the menu when already present in cocoa.
951
- - Fix multi texturing support (#28).
952
- - OSX: Prevent segfault with multiple runs (#37/GC728)
953
- - ArchLinux: Fix segmentation fault when using gdk_pixbuf (#25)
957
+ ============
958
+ Minor bugfix release.
959
+
960
+ Bugfixes:
961
+ - Windows: Fix issue where ALT key causes app to hang.
962
+ - Media: Many fixes to PulseAudio and OpenAL media drivers (a.o. #26, #27).
963
+ - OSX: Fix stealing the menu when already present in cocoa.
964
+ - Fix multi texturing support (#28).
965
+ - OSX: Prevent segfault with multiple runs (#37/GC728)
966
+ - ArchLinux: Fix segmentation fault when using gdk_pixbuf (#25)
954
967
 
955
968
 
956
969
  pyglet 1.2.2
@@ -52,15 +52,15 @@ both frag and vertex (IE: test becomes test.vert and test.frag)
52
52
 
53
53
  Scrolling the mousewheel also zooms in.
54
54
  """
55
+ from __future__ import annotations
55
56
 
57
+ import argparse
56
58
  import os
57
59
  import sys
58
60
  import traceback
59
- import argparse
60
61
  from pathlib import Path
61
-
62
62
  from textwrap import dedent
63
- from typing import TYPE_CHECKING, Final, Dict, List, Optional, Tuple, Mapping
63
+ from typing import TYPE_CHECKING, Final, Mapping
64
64
 
65
65
  # Constants for choosing a Qt backend and summarizing their licensing
66
66
  ENV_VARIABLE: Final[str] = 'PYGLET_QT_BACKEND'
@@ -68,9 +68,9 @@ ENV_VARIABLE: Final[str] = 'PYGLET_QT_BACKEND'
68
68
  PYSIDE2: Final[str] = 'PySide2'
69
69
  PYQT5: Final[str] = 'PyQt5'
70
70
 
71
- valid_backends: Final[Dict[str, str]] = {
71
+ valid_backends: Final[dict[str, str]] = {
72
72
  PYSIDE2: "LGPL; may allow releasing under non-GPL licenses",
73
- PYQT5: "Dual GPL / Commercial license; requires GPL or a fee"
73
+ PYQT5: "Dual GPL / Commercial license; requires GPL or a fee",
74
74
  }
75
75
 
76
76
  # Default to PySide2 as part of allowing non-GPL licenses
@@ -80,34 +80,34 @@ DEFAULT: Final[str] = PYSIDE2
80
80
 
81
81
  # Argument parser for run-time config as __main__
82
82
  parser = argparse.ArgumentParser(
83
- description=dedent('''\
83
+ description=dedent("""\
84
84
  A sprite & shader previewer using Qt and pyglet together.
85
85
 
86
86
  It defaults to PySide2, but can run on PyQt5. The details of how may
87
87
  be helpful to users who want to avoid spreading PyQt5's GPL license
88
88
  while using it as a fallback. See the docstrings and comments in the
89
89
  source to learn more.
90
- '''),
90
+ """),
91
91
  formatter_class=argparse.RawTextHelpFormatter)
92
92
 
93
93
  # On Python 3.9+, argparse.BooleanOptionalAction is more concise
94
94
  # See https://docs.python.org/3.9/library/argparse.html#action
95
95
  parser.add_argument(
96
96
  '--use-qt-file-dialog', dest='native_file_dialog', action='store_false',
97
- help="Use Qt's file chooser instead of the system's. Helpful on Gnome DE."
97
+ help="Use Qt's file chooser instead of the system's. Helpful on Gnome DE.",
98
98
  )
99
99
  parser.set_defaults(native_file_dialog=True)
100
100
 
101
101
 
102
102
  # Generate options help text lines
103
103
  backend_column_width: Final[int] = max(map(len, valid_backends))
104
- help_lines: List[str] = ["Which Qt binding to use.\n"]
104
+ help_lines: list[str] = ["Which Qt binding to use.\n"]
105
105
 
106
106
  for backend, description in valid_backends.items():
107
107
  line_parts = [
108
108
  f"{backend: <{backend_column_width}} - ",
109
109
  '(Default) ' if backend == DEFAULT else '',
110
- description
110
+ description,
111
111
  ]
112
112
  help_lines.append(''.join(line_parts))
113
113
 
@@ -122,12 +122,12 @@ arguments = None
122
122
  if __name__ == "__main__":
123
123
  arguments = parser.parse_args()
124
124
 
125
- reasons_with_backend_values: Final[Dict[str, Optional[str]]] = {
125
+ reasons_with_backend_values: Final[dict[str, str | None]] = {
126
126
  'first positional argument' : None if not arguments else arguments.backend,
127
127
  # An environment variable allows specifying the binding when
128
128
  # importing the module instead of running it as a main program.
129
129
  f'{ENV_VARIABLE!r} env variable' : os.environ.get(ENV_VARIABLE, None),
130
- 'default' : DEFAULT
130
+ 'default' : DEFAULT,
131
131
  }
132
132
  reason, backend = next(filter(
133
133
  lambda t: t[1] is not None, reasons_with_backend_values.items()))
@@ -143,16 +143,14 @@ import pyglet
143
143
  # uses of PyQt5-specific features as missing. For example, pyright is
144
144
  # one of the strict type checking and linting tools which can help.
145
145
  if TYPE_CHECKING or backend == PYSIDE2:
146
- from PySide2.QtGui import QWheelEvent
147
- from PySide2.QtWidgets import QFileDialog
148
146
  from PySide2 import QtCore, QtWidgets
149
- from PySide2.QtWidgets import QOpenGLWidget
147
+ from PySide2.QtGui import QWheelEvent
148
+ from PySide2.QtWidgets import QFileDialog, QOpenGLWidget
150
149
 
151
150
  elif backend == PYQT5:
152
- from PyQt5.QtGui import QWheelEvent
153
- from PyQt5.QtWidgets import QFileDialog
154
151
  from PyQt5 import QtCore, QtWidgets
155
- from PyQt5.QtWidgets import QOpenGLWidget
152
+ from PyQt5.QtGui import QWheelEvent
153
+ from PyQt5.QtWidgets import QFileDialog, QOpenGLWidget
156
154
 
157
155
  else: # Handle import edge cases
158
156
  raise ValueError(
@@ -162,11 +160,18 @@ else: # Handle import edge cases
162
160
  # Import the other constants after the UI libraries to avoid
163
161
  # cluttering the symbol table when debugging import problems.
164
162
  from pyglet.gl import (
165
- glClear, GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT, glActiveTexture,
166
- GL_TEXTURE0, glBindTexture, GL_BLEND, glEnable, glBlendFunc, glDisable
163
+ GL_BLEND,
164
+ GL_COLOR_BUFFER_BIT,
165
+ GL_DEPTH_BUFFER_BIT,
166
+ GL_TEXTURE0,
167
+ glActiveTexture,
168
+ glBindTexture,
169
+ glBlendFunc,
170
+ glClear,
171
+ glDisable,
172
+ glEnable,
167
173
  )
168
174
 
169
-
170
175
  default_vertex_src = """#version 150 core
171
176
  in vec3 translate;
172
177
  in vec4 colors;
@@ -233,8 +238,8 @@ class MultiTextureSpriteGroup(pyglet.sprite.SpriteGroup):
233
238
  textures: Mapping[str, pyglet.image.Texture],
234
239
  blend_src: int,
235
240
  blend_dest: int,
236
- program: Optional[pyglet.graphics.shader.ShaderProgram] = None,
237
- parent: Optional[pyglet.graphics.Group] = None
241
+ program: pyglet.graphics.shader.ShaderProgram | None = None,
242
+ parent: pyglet.graphics.Group | None = None,
238
243
  ) -> None:
239
244
  """Create a sprite group for multiple textures and samplers.
240
245
 
@@ -297,7 +302,7 @@ class MultiTextureSpriteGroup(pyglet.sprite.SpriteGroup):
297
302
  self.blend_src, self.blend_dest))
298
303
 
299
304
 
300
- class MultiTextureSprite(pyglet.sprite.AdvancedSprite):
305
+ class MultiTextureSprite(pyglet.sprite.Sprite):
301
306
 
302
307
  def __init__(
303
308
  self,
@@ -305,10 +310,10 @@ class MultiTextureSprite(pyglet.sprite.AdvancedSprite):
305
310
  x: float = 0, y: float = 0, z: float = 0,
306
311
  blend_src: int = pyglet.gl.GL_SRC_ALPHA,
307
312
  blend_dest: int = pyglet.gl.GL_ONE_MINUS_SRC_ALPHA,
308
- batch: Optional[pyglet.graphics.Batch] = None,
309
- group: Optional[MultiTextureSpriteGroup] = None,
313
+ batch: pyglet.graphics.Batch | None = None,
314
+ group: MultiTextureSpriteGroup | None = None,
310
315
  subpixel: bool = False,
311
- program: pyglet.graphics.shader.ShaderProgram = None
316
+ program: pyglet.graphics.shader.ShaderProgram = None,
312
317
  ) -> None:
313
318
 
314
319
  self._x = x
@@ -484,7 +489,7 @@ class Ui_MainWindow:
484
489
  self.program = pyglet.graphics.shader.ShaderProgram(vertex_, fragment_)
485
490
 
486
491
  if len(self.images) == 1:
487
- self.sprite = pyglet.sprite.AdvancedSprite(
492
+ self.sprite = pyglet.sprite.Sprite(
488
493
  self.images[0],
489
494
  x=self.SPRITE_POSITION[0], y=self.SPRITE_POSITION[1],
490
495
  group=self.group, batch=self.openGLWidget.batch,
@@ -685,7 +690,6 @@ class PygletWidget(QOpenGLWidget):
685
690
 
686
691
  def initializeGL(self) -> None:
687
692
  """Call anything that needs a context to be created."""
688
-
689
693
  self._projection_matrix = pyglet.math.Mat4()
690
694
  self._view_matrix = pyglet.math.Mat4()
691
695
 
@@ -702,7 +706,7 @@ class PygletWidget(QOpenGLWidget):
702
706
  self.viewport = 0, 0, self.width(), self.height()
703
707
 
704
708
  @property
705
- def viewport(self) -> Tuple[int, int, int, int]:
709
+ def viewport(self) -> tuple[int, int, int, int]:
706
710
  """The Window viewport
707
711
 
708
712
  The Window viewport, expressed as (x, y, width, height).
@@ -712,7 +716,7 @@ class PygletWidget(QOpenGLWidget):
712
716
  return self._viewport
713
717
 
714
718
  @viewport.setter
715
- def viewport(self, values: Tuple[int, int, int, int]) -> None:
719
+ def viewport(self, values: tuple[int, int, int, int]) -> None:
716
720
  self._viewport = values
717
721
  pr = 1.0
718
722
  x, y, w, h = values
@@ -0,0 +1,29 @@
1
+ /* Import RTD theme before our own changes. */
2
+ @import 'theme.css';
3
+
4
+ /* CSS to fix wrapping: https://github.com/readthedocs/sphinx_rtd_theme/issues/1529#issuecomment-1918561608 */
5
+ /* Take out pointless vertical whitespace in the signatures. */
6
+ .rst-content dl .sig dl,
7
+ .rst-content dl .sig dd {
8
+ margin-bottom: 0;
9
+ margin-top: 0;
10
+ }
11
+
12
+ /* Make class boxes full-width, with view-source and header links right-aligned. */
13
+ .py.class > .sig.sig-object.py:first-of-type {
14
+ width: 100%;
15
+ }
16
+ .py.class > .sig.sig-object.py:first-of-type .viewcode-link {
17
+ display: inline-flex;
18
+ float: right;
19
+ margin-right: 1.5em;
20
+ }
21
+ .py.class > .sig.sig-object.py:first-of-type .headerlink {
22
+ position: absolute;
23
+ right: 0.5em;
24
+ }
25
+
26
+ /* Prevent multiple properties from being on the same row. */
27
+ dl.py.property {
28
+ display: block !important;
29
+ }
@@ -1,26 +1,70 @@
1
- # -*- coding: utf-8 -*-
2
1
  #
3
2
  # pyglet documentation build configuration file.
4
3
  #
5
4
  # This file is execfile()d with the current directory set to its containing dir.
6
-
7
-
5
+ import datetime
8
6
  import os
9
7
  import sys
10
8
  import time
11
- import datetime
9
+ import typing
10
+ from typing import TypeVar
11
+
12
+ import sphinx_autodoc_typehints
13
+
14
+ # -- Extensions to the Napoleon GoogleDocstring class ---------------------
15
+ from sphinx.ext.napoleon.docstring import GoogleDocstring
16
+ from sphinx.parsers import RSTParser
17
+
18
+
19
+ def parse_attributes_section(self, section):
20
+ # Combination of _format_fields and _parse_attributes_section to get type hints loaded properly using
21
+ # the theme and getting the custom name instead of Specifying just 'Variables'
22
+ field_type = "Class Variables"
23
+ fields = self._consume_fields()
24
+
25
+ field_type = ":%s:" % field_type.strip()
26
+ padding = " " * len(field_type)
27
+ multi = len(fields) > 1
28
+ lines: list[str] = []
29
+ for _name, _type, _desc in fields:
30
+ if not _type:
31
+ _type = self._lookup_annotation(_name)
32
+ if _name in self._annotations:
33
+ _type = sphinx_autodoc_typehints.add_type_css_class(
34
+ sphinx_autodoc_typehints.format_annotation(self._annotations[_name], self._app.config))
35
+
36
+ field = self._format_field(_name, _type, _desc)
37
+ if multi:
38
+ if lines:
39
+ lines.extend(self._format_block(padding + " * ", field))
40
+ else:
41
+ lines.extend(self._format_block(field_type + " * ", field))
42
+ else:
43
+ lines.extend(self._format_block(field_type + " ", field))
44
+ if lines and lines[-1]:
45
+ lines.append("")
46
+ return lines
47
+
12
48
 
13
- # Prevents instance attributes from having a default value of None
14
- # See sphinx ticket: https://github.com/sphinx-doc/sphinx/issues/2044
15
- from sphinx.ext.autodoc import ClassLevelDocumenter
49
+ GoogleDocstring._parse_attributes_section = parse_attributes_section
16
50
 
51
+ # Unpatch... the patch.
52
+ def _revert_patch():
53
+ pass
17
54
 
18
- def iad_add_directive_header(self, sig):
19
- ClassLevelDocumenter.add_directive_header(self, sig)
55
+ sphinx_autodoc_typehints.patches._patch_google_docstring_lookup_annotation = _revert_patch
20
56
 
57
+ # Patch to fix our RST insertion issues.
58
+ class _RstSnippetParser(RSTParser):
59
+ @staticmethod
60
+ def decorate(_content) -> None:
61
+ """Override to skip processing rst_epilog/rst_prolog for typing."""
62
+
63
+
64
+ sphinx_autodoc_typehints.parser.RSTParser = _RstSnippetParser
21
65
 
22
66
  def write_build(data, filename):
23
- with open(os.path.join('internal', filename), 'w') as f:
67
+ with open(os.path.join("internal", filename), "w") as f:
24
68
  f.write(".. list-table::\n")
25
69
  f.write(" :widths: 50 50\n")
26
70
  f.write("\n")
@@ -33,10 +77,10 @@ sys.is_pyglet_doc_run = True
33
77
  document_modules = ["pyglet"]
34
78
 
35
79
  # Patched extensions base path.
36
- sys.path.insert(0, os.path.abspath('.'))
80
+ sys.path.insert(0, os.path.abspath("."))
37
81
 
38
82
  # import the pyglet package.
39
- sys.path.insert(0, os.path.abspath('..'))
83
+ sys.path.insert(0, os.path.abspath(".."))
40
84
 
41
85
 
42
86
  try:
@@ -47,8 +91,11 @@ except ImportError:
47
91
  sys.exit(1)
48
92
 
49
93
 
94
+
95
+
50
96
  # -- PYGLET DOCUMENTATION CONFIGURATION ----------------------------------------
51
97
 
98
+
52
99
  # Set up substitutions that can be referenced later.
53
100
  # IMPORTANT:
54
101
  # Substitutions are moody and NEED control-like characters to be escaped
@@ -58,21 +105,17 @@ except ImportError:
58
105
  # avoid having to deal with syntax errors.
59
106
  # Also, please note that there does not appear to be a good way to use
60
107
  # substitutions within link text by default.
61
- rst_prolog = """
62
- .. |min_python_version| replace:: {min_python_version}
63
- .. |min_python_version_package_name| replace:: ``python{min_python_version}``
64
- .. |min_python_version_fancy_str| replace:: Python {min_python_version}+
65
- """.format(
66
- min_python_version=pyglet.MIN_PYTHON_VERSION_STR
67
- )
108
+ rst_epilog = rf"""
109
+ .. |min_python_version| replace:: {pyglet.MIN_PYTHON_VERSION_STR}
110
+ .. |min_python_version_package_name| replace:: ``python{pyglet.MIN_PYTHON_VERSION_STR}``
111
+ .. |min_python_version_fancy_str| replace:: Python {pyglet.MIN_PYTHON_VERSION_STR}\+
112
+ """
68
113
 
69
114
  implementations = ["cocoa", "win32", "xlib"]
70
115
 
71
116
  # For each module, a list of submodules that should not be imported.
72
117
  # If value is None, do not try to import any submodule.
73
118
  skip_modules = {"pyglet": {
74
- "pyglet.com": None,
75
- "pyglet.compat": None,
76
119
  "pyglet.lib": None,
77
120
  "pyglet.libs": None,
78
121
  "pyglet.app": implementations,
@@ -80,7 +123,8 @@ skip_modules = {"pyglet": {
80
123
  "pyglet.extlibs": None,
81
124
  "pyglet.font": ["quartz",
82
125
  "win32",
83
- "freetype", "freetype_lib",
126
+ "freetype",
127
+ "freetype_lib",
84
128
  "fontconfig",
85
129
  "win32query"],
86
130
  "pyglet.input": ["darwin_hid",
@@ -110,7 +154,7 @@ skip_modules = {"pyglet": {
110
154
  now = datetime.datetime.fromtimestamp(time.time())
111
155
  build_data = (("Date", now.strftime("%Y/%m/%d %H:%M:%S")),
112
156
  ("pyglet version", pyglet.version))
113
- write_build(build_data, 'build.rst')
157
+ write_build(build_data, "build.rst")
114
158
 
115
159
  # -- SPHINX STANDARD OPTIONS ---------------------------------------------------
116
160
 
@@ -127,38 +171,53 @@ inheritance_graph_attrs = dict(rankdir="LR", size='""')
127
171
 
128
172
  # Add any Sphinx extension module names here, as strings. They can be extensions
129
173
  # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
130
- extensions = ['sphinx.ext.autodoc',
131
- 'sphinx.ext.intersphinx',
132
- 'sphinx.ext.inheritance_diagram',
133
- 'sphinx.ext.todo',
134
- 'sphinx.ext.napoleon']
174
+ extensions = ["sphinx.ext.autodoc",
175
+ "sphinx.ext.napoleon",
176
+ "sphinx.ext.intersphinx",
177
+ "sphinx.ext.inheritance_diagram",
178
+ "sphinx.ext.todo",
179
+ "sphinx_autodoc_typehints",
180
+ ]
181
+
182
+ # Autodoc settings.
183
+ autodoc_member_order = "groupwise"
135
184
 
136
- autodoc_member_order = 'groupwise'
185
+ # Separate init from the class header as RTD theme makes it all the same color, reducing readability.
186
+ autodoc_class_signature = "separated"
187
+
188
+ # Add type hints to description and parameters in docs.
189
+ autodoc_typehints = "signature"
190
+ autodoc_typehints_format = "short"
191
+
192
+ # Configuration for sphinx_autodoc_typehints
193
+ typehints_use_signature = True
194
+ typehints_use_signature_return = True
195
+ always_use_bars_union = True
137
196
 
138
197
  # Enable links to Python's main doc
139
198
  intersphinx_mapping = {
140
- 'python': ('https://docs.python.org/3', None)
199
+ "python": ("https://docs.python.org/3", None),
141
200
  }
142
201
 
143
202
  # Add any paths that contain templates here, relative to this directory.
144
- templates_path = ['_templates']
203
+ templates_path = ["_templates"]
145
204
 
146
205
  # The suffix of source filenames.
147
- source_suffix = '.rst'
206
+ source_suffix = ".rst"
148
207
 
149
208
  # The master toctree document.
150
- master_doc = 'index'
209
+ master_doc = "index"
151
210
 
152
211
  # General information about the project.
153
- project = u'pyglet'
154
- copyright = u'2006-2008, Alex Holkner. 2008-2023 pyglet contributors'
212
+ project = "pyglet"
213
+ copyright = "2006-2008, Alex Holkner. 2008-2023 pyglet contributors"
155
214
 
156
215
  # The version info for the project you're documenting, acts as replacement for
157
216
  # |version| and |release|, also used in various other places throughout the
158
217
  # built documents.
159
218
  #
160
219
  # The short X.Y version.
161
- version = '2.0'
220
+ version = "2.0"
162
221
  # The full version, including alpha/beta/rc tags.
163
222
  release = pyglet.version
164
223
 
@@ -174,7 +233,7 @@ release = pyglet.version
174
233
 
175
234
  # List of patterns, relative to source directory, that match files and
176
235
  # directories to ignore when looking for source files.
177
- exclude_patterns = ['_build', '_templates', 'api']
236
+ exclude_patterns = ["_build", "_templates", "api"]
178
237
 
179
238
  # The reST default role (used for this markup: `text`) to use for all documents.
180
239
  #default_role = None
@@ -191,23 +250,29 @@ add_module_names = False
191
250
  #show_authors = False
192
251
 
193
252
  # The name of the Pygments (syntax highlighting) style to use.
194
- pygments_style = 'sphinx'
253
+ pygments_style = "sphinx"
195
254
 
196
255
  # A list of ignored prefixes for module index sorting.
197
- modindex_common_prefix = ['pyglet.']
256
+ modindex_common_prefix = ["pyglet."]
198
257
 
199
258
 
200
259
  # -- Options for HTML output ---------------------------------------------------
201
260
 
202
261
  # The theme to use for HTML and HTML Help pages. See the documentation for
203
262
  # a list of builtin themes.
204
- html_theme = 'sphinx_rtd_theme'
263
+ html_theme = "sphinx_rtd_theme"
205
264
 
206
265
  # Theme options are theme-specific and customize the look and feel of a theme
207
266
  # further. For a list of options available for each theme, see the
208
267
  # documentation.
209
268
  #html_theme_options = {}
210
269
 
270
+ # Force custom css to allow multiline inits.
271
+ html_css_files = [
272
+ "css/custom.css",
273
+ ]
274
+ html_style = "css/custom.css"
275
+
211
276
  # Add any paths that contain custom themes here, relative to this directory.
212
277
  # html_theme_path = ["ext/theme"]
213
278
 
@@ -230,7 +295,7 @@ html_favicon = "_static/favicon.ico"
230
295
  # Add any paths that contain custom static files (such as style sheets) here,
231
296
  # relative to this directory. They are copied after the builtin static files,
232
297
  # so a file named "default.css" will overwrite the builtin "default.css".
233
- html_static_path = ['_static']
298
+ html_static_path = ["_static"]
234
299
 
235
300
  # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
236
301
  # using the given strftime format.
@@ -274,7 +339,7 @@ html_show_sourcelink = False
274
339
  #html_file_suffix = None
275
340
 
276
341
  # Output file base name for HTML help builder.
277
- htmlhelp_basename = 'pygletdoc'
342
+ htmlhelp_basename = "pygletdoc"
278
343
 
279
344
 
280
345
  # -- Options for LaTeX output --------------------------------------------------
@@ -293,8 +358,8 @@ latex_elements = {
293
358
  # Grouping the document tree into LaTeX files. List of tuples
294
359
  # (source start file, target name, title, author, documentclass [howto/manual]).
295
360
  latex_documents = [
296
- ('index', 'pyglet.tex', u'pyglet Documentation',
297
- u'Alex Holkner', 'manual'),
361
+ ("index", "pyglet.tex", "pyglet Documentation",
362
+ "Alex Holkner", "manual"),
298
363
  ]
299
364
 
300
365
  # The name of an image file (relative to this directory) to place at the top of
@@ -323,8 +388,8 @@ latex_documents = [
323
388
  # One entry per manual page. List of tuples
324
389
  # (source start file, name, description, authors, manual section).
325
390
  man_pages = [
326
- ('index', 'pyglet', u'pyglet Documentation',
327
- [u'Alex Holkner'], 1)
391
+ ("index", "pyglet", "pyglet Documentation",
392
+ ["Alex Holkner"], 1),
328
393
  ]
329
394
 
330
395
  # If true, show URL addresses after external links.
@@ -337,9 +402,9 @@ man_pages = [
337
402
  # (source start file, target name, title, author,
338
403
  # dir menu entry, description, category)
339
404
  texinfo_documents = [
340
- ('index', 'pyglet', u'pyglet Documentation',
341
- u'Alex Holkner', 'pyglet', 'One line description of project.',
342
- 'Miscellaneous'),
405
+ ("index", "pyglet", "pyglet Documentation",
406
+ "Alex Holkner", "pyglet", "One line description of project.",
407
+ "Miscellaneous"),
343
408
  ]
344
409
 
345
410
  # Documents to append as an appendix to all manuals.
@@ -350,3 +415,36 @@ texinfo_documents = [
350
415
 
351
416
  # How to display URL addresses: 'footnote', 'no', or 'inline'.
352
417
  #texinfo_show_urls = 'footnote'
418
+
419
+ python_maximum_signature_line_length = 85
420
+
421
+ nitpicky = True
422
+
423
+ def custom_formatter(annotation, config):
424
+ # Fixes TypeVar bounds, where the bound reference is forward referenced and class cannot be determined.
425
+ # Defaults to a class style. Seems good enough for now since most bound things are classes.
426
+ if isinstance(annotation, TypeVar):
427
+ try:
428
+ module = sphinx_autodoc_typehints.get_annotation_module(annotation)
429
+ class_name = sphinx_autodoc_typehints.get_annotation_class_name(annotation, module)
430
+ args = sphinx_autodoc_typehints.get_annotation_args(annotation, module, class_name)
431
+ except ValueError:
432
+ return str(annotation).strip("'")
433
+ params = {k: getattr(annotation, f"__{k}__") for k in ("bound", "covariant", "contravariant")}
434
+ params = {k: v for k, v in params.items() if v}
435
+ if "bound" in params:
436
+ bound_param = params["bound"]
437
+ if isinstance(bound_param, typing.ForwardRef):
438
+ # May be wrong but
439
+ params["bound"] = f":py:class:`{bound_param.__forward_arg__}`"
440
+ else:
441
+ params["bound"] = f"{sphinx_autodoc_typehints.format_annotation(bound_param, config)}"
442
+ args_format = f"\\(``{annotation.__name__}``{', {}' if args else ''}"
443
+ if params:
444
+ args_format += "".join(f", *{k} =* {v}" for k, v in params.items())
445
+ args_format += ")"
446
+ formatted_args = None if args else args_format
447
+ return f":py:class:`TypeVar` {formatted_args}"
448
+ return None
449
+
450
+ typehints_formatter = custom_formatter
@@ -77,6 +77,7 @@ If you are migrating from an older version of pyglet, please read through
77
77
  modules/app
78
78
  modules/clock
79
79
  modules/display
80
+ modules/customtypes
80
81
  modules/event
81
82
  modules/font
82
83
  modules/gl