PyGObject 3.52.2__tar.gz → 3.52.4__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 (424) hide show
  1. pygobject-3.52.4/.gitlab-ci/org.gnome.PyGObject.Devel.yaml +36 -0
  2. pygobject-3.52.4/.gitlab-ci/test-flatpak.sh +9 -0
  3. {pygobject-3.52.2 → pygobject-3.52.4}/NEWS +15 -5
  4. {pygobject-3.52.2 → pygobject-3.52.4}/PKG-INFO +2 -2
  5. {pygobject-3.52.2 → pygobject-3.52.4}/gi/events.py +32 -8
  6. {pygobject-3.52.2 → pygobject-3.52.4}/gi/importer.py +1 -1
  7. {pygobject-3.52.2 → pygobject-3.52.4}/gi/overrides/Gio.py +73 -2
  8. pygobject-3.52.4/gi/overrides/GioUnix.py +170 -0
  9. {pygobject-3.52.2 → pygobject-3.52.4}/gi/overrides/meson.build +1 -0
  10. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-info.c +1 -4
  11. {pygobject-3.52.2 → pygobject-3.52.4}/meson.build +1 -2
  12. {pygobject-3.52.2 → pygobject-3.52.4}/pyproject.toml +1 -1
  13. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/.github/workflows/build.yml +34 -9
  14. pygobject-3.52.4/subprojects/pythoncapi-compat/.meson-subproject-wrap-hash.txt +1 -0
  15. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/docs/api.rst +177 -2
  16. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/docs/changelog.rst +61 -0
  17. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/docs/users.rst +4 -1
  18. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/pythoncapi_compat.h +697 -12
  19. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/runtests.py +0 -1
  20. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/tests/setup.py +39 -38
  21. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/tests/test_pythoncapi_compat.py +14 -3
  22. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/tests/test_pythoncapi_compat_cext.c +323 -8
  23. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/upgrade_pythoncapi.py +1 -1
  24. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat.wrap +1 -1
  25. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_events.py +61 -0
  26. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_gio.py +286 -3
  27. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_object_marshaling.py +3 -2
  28. {pygobject-3.52.2 → pygobject-3.52.4}/tests/testhelpermodule.c +64 -32
  29. pygobject-3.52.2/.gitlab-ci/test-flatpak.sh +0 -26
  30. pygobject-3.52.2/subprojects/pythoncapi-compat/.meson-subproject-wrap-hash.txt +0 -1
  31. {pygobject-3.52.2 → pygobject-3.52.4}/.clang-format +0 -0
  32. {pygobject-3.52.2 → pygobject-3.52.4}/.coveragerc +0 -0
  33. {pygobject-3.52.2 → pygobject-3.52.4}/.flake8 +0 -0
  34. {pygobject-3.52.2 → pygobject-3.52.4}/.gitignore +0 -0
  35. {pygobject-3.52.2 → pygobject-3.52.4}/.gitlab-ci/Dockerfile +0 -0
  36. {pygobject-3.52.2 → pygobject-3.52.4}/.gitlab-ci/README.rst +0 -0
  37. {pygobject-3.52.2 → pygobject-3.52.4}/.gitlab-ci/build-sdists.sh +0 -0
  38. {pygobject-3.52.2 → pygobject-3.52.4}/.gitlab-ci/coverage-docker.sh +0 -0
  39. {pygobject-3.52.2 → pygobject-3.52.4}/.gitlab-ci/fixup-lcov-paths.py +0 -0
  40. {pygobject-3.52.2 → pygobject-3.52.4}/.gitlab-ci/lcovrc +0 -0
  41. {pygobject-3.52.2 → pygobject-3.52.4}/.gitlab-ci/run-docker-runtime.sh +0 -0
  42. {pygobject-3.52.2 → pygobject-3.52.4}/.gitlab-ci/run-docker.sh +0 -0
  43. {pygobject-3.52.2 → pygobject-3.52.4}/.gitlab-ci/set_env.sh +0 -0
  44. {pygobject-3.52.2 → pygobject-3.52.4}/.gitlab-ci/test-docker.sh +0 -0
  45. {pygobject-3.52.2 → pygobject-3.52.4}/.gitlab-ci/test-msys2.sh +0 -0
  46. {pygobject-3.52.2 → pygobject-3.52.4}/.gitlab-ci.yml +0 -0
  47. {pygobject-3.52.2 → pygobject-3.52.4}/.pre-commit-config.yaml +0 -0
  48. {pygobject-3.52.2 → pygobject-3.52.4}/COPYING +0 -0
  49. {pygobject-3.52.2 → pygobject-3.52.4}/METADATA.in +0 -0
  50. {pygobject-3.52.2 → pygobject-3.52.4}/README.rst +0 -0
  51. {pygobject-3.52.2 → pygobject-3.52.4}/docs/Makefile +0 -0
  52. {pygobject-3.52.2 → pygobject-3.52.4}/docs/bugs_repo.rst +0 -0
  53. {pygobject-3.52.2 → pygobject-3.52.4}/docs/changelog.rst +0 -0
  54. {pygobject-3.52.2 → pygobject-3.52.4}/docs/conf.py +0 -0
  55. {pygobject-3.52.2 → pygobject-3.52.4}/docs/contact.rst +0 -0
  56. {pygobject-3.52.2 → pygobject-3.52.4}/docs/devguide/dev_environ.rst +0 -0
  57. {pygobject-3.52.2 → pygobject-3.52.4}/docs/devguide/index.rst +0 -0
  58. {pygobject-3.52.2 → pygobject-3.52.4}/docs/devguide/maintguide.rst +0 -0
  59. {pygobject-3.52.2 → pygobject-3.52.4}/docs/devguide/override_guidelines.rst +0 -0
  60. {pygobject-3.52.2 → pygobject-3.52.4}/docs/devguide/overview.rst +0 -0
  61. {pygobject-3.52.2 → pygobject-3.52.4}/docs/devguide/packagingguide.rst +0 -0
  62. {pygobject-3.52.2 → pygobject-3.52.4}/docs/devguide/style_guide.rst +0 -0
  63. {pygobject-3.52.2 → pygobject-3.52.4}/docs/extra.css +0 -0
  64. {pygobject-3.52.2 → pygobject-3.52.4}/docs/getting_started.rst +0 -0
  65. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/api/api.rst +0 -0
  66. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/api/basic_types.rst +0 -0
  67. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/api/error_handling.rst +0 -0
  68. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/api/flags_enums.rst +0 -0
  69. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/api/gobject.rst +0 -0
  70. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/api/index.rst +0 -0
  71. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/api/properties.rst +0 -0
  72. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/api/signals.rst +0 -0
  73. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/api/weakrefs.rst +0 -0
  74. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/asynchronous.rst +0 -0
  75. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/cairo_integration.rst +0 -0
  76. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/code/cairo-demo.py +0 -0
  77. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/debug_profile.rst +0 -0
  78. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/deploy.rst +0 -0
  79. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/download_asyncio.py +0 -0
  80. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/download_callback.py +0 -0
  81. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/faq.rst +0 -0
  82. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/flatpaking.rst +0 -0
  83. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/gtk_template.rst +0 -0
  84. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/images/cairo_integration.png +0 -0
  85. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/imports.rst +0 -0
  86. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/index.rst +0 -0
  87. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/porting.rst +0 -0
  88. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/sysdeps.rst +0 -0
  89. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/testing.rst +0 -0
  90. {pygobject-3.52.2 → pygobject-3.52.4}/docs/guide/threading.rst +0 -0
  91. {pygobject-3.52.2 → pygobject-3.52.4}/docs/icons.rst +0 -0
  92. {pygobject-3.52.2 → pygobject-3.52.4}/docs/images/LICENSE +0 -0
  93. {pygobject-3.52.2 → pygobject-3.52.4}/docs/images/favicon.ico +0 -0
  94. {pygobject-3.52.2 → pygobject-3.52.4}/docs/images/logo.svg +0 -0
  95. {pygobject-3.52.2 → pygobject-3.52.4}/docs/images/overview-dark.svg +0 -0
  96. {pygobject-3.52.2 → pygobject-3.52.4}/docs/images/overview.dia +0 -0
  97. {pygobject-3.52.2 → pygobject-3.52.4}/docs/images/overview.svg +0 -0
  98. {pygobject-3.52.2 → pygobject-3.52.4}/docs/images/pygobject-dark.svg +0 -0
  99. {pygobject-3.52.2 → pygobject-3.52.4}/docs/images/pygobject-small.svg +0 -0
  100. {pygobject-3.52.2 → pygobject-3.52.4}/docs/images/pygobject.svg +0 -0
  101. {pygobject-3.52.2 → pygobject-3.52.4}/docs/images/start_linux.png +0 -0
  102. {pygobject-3.52.2 → pygobject-3.52.4}/docs/images/start_macos.png +0 -0
  103. {pygobject-3.52.2 → pygobject-3.52.4}/docs/images/start_windows.png +0 -0
  104. {pygobject-3.52.2 → pygobject-3.52.4}/docs/index.rst +0 -0
  105. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/_static/custom.css +0 -0
  106. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gobject/basics.rst +0 -0
  107. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gobject/examples/listmodel.py +0 -0
  108. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gobject/interfaces.rst +0 -0
  109. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gobject/subclassing.rst +0 -0
  110. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gobject.rst +0 -0
  111. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk3.rst +0 -0
  112. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/application.rst +0 -0
  113. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/basics.rst +0 -0
  114. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/clipboard.rst +0 -0
  115. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/buttons.rst +0 -0
  116. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/check-radio-buttons.rst +0 -0
  117. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/dropdown.rst +0 -0
  118. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/entries.rst +0 -0
  119. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/examples/button.py +0 -0
  120. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/examples/check_radio_buttons.py +0 -0
  121. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/examples/dropdown.py +0 -0
  122. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/examples/entries.py +0 -0
  123. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/examples/linkbutton.py +0 -0
  124. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/examples/spinbutton.py +0 -0
  125. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/examples/switch.py +0 -0
  126. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/examples/togglebutton.py +0 -0
  127. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/images/button.png +0 -0
  128. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/images/check_radio_buttons.png +0 -0
  129. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/images/dropdown.png +0 -0
  130. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/images/entries.png +0 -0
  131. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/images/linkbutton.png +0 -0
  132. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/images/spinbutton.png +0 -0
  133. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/images/switch.png +0 -0
  134. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/images/togglebutton.png +0 -0
  135. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/scale.rst +0 -0
  136. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/spinbutton.rst +0 -0
  137. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls/switch.rst +0 -0
  138. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/controls.rst +0 -0
  139. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/display-widgets/examples/label.py +0 -0
  140. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/display-widgets/examples/picture.py +0 -0
  141. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/display-widgets/examples/progressbar.py +0 -0
  142. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/display-widgets/examples/spinner.py +0 -0
  143. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/display-widgets/examples/spinner_ext.py +0 -0
  144. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/display-widgets/image.rst +0 -0
  145. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/display-widgets/images/label.png +0 -0
  146. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/display-widgets/images/picture.png +0 -0
  147. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/display-widgets/images/progressbar.png +0 -0
  148. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/display-widgets/images/spinner.png +0 -0
  149. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/display-widgets/images/spinner_ext.png +0 -0
  150. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/display-widgets/label.rst +0 -0
  151. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/display-widgets/picture.rst +0 -0
  152. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/display-widgets/progressbar.rst +0 -0
  153. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/display-widgets/spinner.rst +0 -0
  154. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/display-widgets.rst +0 -0
  155. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/drag-and-drop.rst +0 -0
  156. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/examples/application.py +0 -0
  157. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/examples/clipboard.py +0 -0
  158. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/examples/drag_and_drop.py +0 -0
  159. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/examples/extended_example.py +0 -0
  160. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/examples/layout_box.py +0 -0
  161. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/examples/layout_center.py +0 -0
  162. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/examples/layout_flowbox.py +0 -0
  163. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/examples/layout_grid.py +0 -0
  164. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/examples/layout_headerbar.py +0 -0
  165. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/examples/layout_listbox.py +0 -0
  166. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/examples/layout_notebook.py +0 -0
  167. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/examples/layout_stack.py +0 -0
  168. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/examples/popover.py +0 -0
  169. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/examples/popover_menu.py +0 -0
  170. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/examples/simple_example.py +0 -0
  171. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/examples/textview.py +0 -0
  172. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/images/application.png +0 -0
  173. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/images/basic_example.png +0 -0
  174. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/images/clipboard.png +0 -0
  175. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/images/drag_and_drop.png +0 -0
  176. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/images/extended_example.png +0 -0
  177. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/images/layout_box.png +0 -0
  178. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/images/layout_center.png +0 -0
  179. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/images/layout_flowbox.png +0 -0
  180. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/images/layout_grid.png +0 -0
  181. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/images/layout_headerbar.png +0 -0
  182. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/images/layout_listbox.png +0 -0
  183. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/images/layout_notebook.png +0 -0
  184. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/images/layout_stack.png +0 -0
  185. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/images/popover.png +0 -0
  186. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/images/popover_menu.png +0 -0
  187. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/images/textview.png +0 -0
  188. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/introduction.rst +0 -0
  189. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/layout-widgets.rst +0 -0
  190. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/popovers.rst +0 -0
  191. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4/textview.rst +0 -0
  192. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/gtk4.rst +0 -0
  193. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/index.rst +0 -0
  194. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/libadwaita/application.rst +0 -0
  195. {pygobject-3.52.2 → pygobject-3.52.4}/docs/tutorials/libadwaita.rst +0 -0
  196. {pygobject-3.52.2 → pygobject-3.52.4}/gi/__init__.py +0 -0
  197. {pygobject-3.52.2 → pygobject-3.52.4}/gi/_constants.py +0 -0
  198. {pygobject-3.52.2 → pygobject-3.52.4}/gi/_enum.py +0 -0
  199. {pygobject-3.52.2 → pygobject-3.52.4}/gi/_error.py +0 -0
  200. {pygobject-3.52.2 → pygobject-3.52.4}/gi/_gtktemplate.py +0 -0
  201. {pygobject-3.52.2 → pygobject-3.52.4}/gi/_option.py +0 -0
  202. {pygobject-3.52.2 → pygobject-3.52.4}/gi/_ossighelper.py +0 -0
  203. {pygobject-3.52.2 → pygobject-3.52.4}/gi/_propertyhelper.py +0 -0
  204. {pygobject-3.52.2 → pygobject-3.52.4}/gi/_signalhelper.py +0 -0
  205. {pygobject-3.52.2 → pygobject-3.52.4}/gi/_signature.py +0 -0
  206. {pygobject-3.52.2 → pygobject-3.52.4}/gi/docstring.py +0 -0
  207. {pygobject-3.52.2 → pygobject-3.52.4}/gi/gimodule.c +0 -0
  208. {pygobject-3.52.2 → pygobject-3.52.4}/gi/gimodule.h +0 -0
  209. {pygobject-3.52.2 → pygobject-3.52.4}/gi/meson.build +0 -0
  210. {pygobject-3.52.2 → pygobject-3.52.4}/gi/module.py +0 -0
  211. {pygobject-3.52.2 → pygobject-3.52.4}/gi/overrides/GIMarshallingTests.py +0 -0
  212. {pygobject-3.52.2 → pygobject-3.52.4}/gi/overrides/GLib.py +0 -0
  213. {pygobject-3.52.2 → pygobject-3.52.4}/gi/overrides/GObject.py +0 -0
  214. {pygobject-3.52.2 → pygobject-3.52.4}/gi/overrides/Gdk.py +0 -0
  215. {pygobject-3.52.2 → pygobject-3.52.4}/gi/overrides/GdkPixbuf.py +0 -0
  216. {pygobject-3.52.2 → pygobject-3.52.4}/gi/overrides/Gtk.py +0 -0
  217. {pygobject-3.52.2 → pygobject-3.52.4}/gi/overrides/Pango.py +0 -0
  218. {pygobject-3.52.2 → pygobject-3.52.4}/gi/overrides/__init__.py +0 -0
  219. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygboxed.c +0 -0
  220. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygboxed.h +0 -0
  221. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygenum.c +0 -0
  222. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygenum.h +0 -0
  223. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygflags.c +0 -0
  224. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygflags.h +0 -0
  225. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-argument.c +0 -0
  226. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-argument.h +0 -0
  227. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-array.c +0 -0
  228. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-array.h +0 -0
  229. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-async.c +0 -0
  230. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-async.h +0 -0
  231. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-basictype.c +0 -0
  232. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-basictype.h +0 -0
  233. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-boxed.c +0 -0
  234. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-boxed.h +0 -0
  235. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-cache.c +0 -0
  236. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-cache.h +0 -0
  237. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-ccallback.c +0 -0
  238. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-ccallback.h +0 -0
  239. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-closure.c +0 -0
  240. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-closure.h +0 -0
  241. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-enum-marshal.c +0 -0
  242. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-enum-marshal.h +0 -0
  243. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-error.c +0 -0
  244. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-error.h +0 -0
  245. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-foreign-api.h +0 -0
  246. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-foreign-cairo.c +0 -0
  247. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-foreign.c +0 -0
  248. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-foreign.h +0 -0
  249. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-fundamental.c +0 -0
  250. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-fundamental.h +0 -0
  251. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-hashtable.c +0 -0
  252. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-hashtable.h +0 -0
  253. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-info.h +0 -0
  254. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-invoke-state-struct.h +0 -0
  255. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-invoke.c +0 -0
  256. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-invoke.h +0 -0
  257. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-list.c +0 -0
  258. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-list.h +0 -0
  259. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-marshal-cleanup.c +0 -0
  260. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-marshal-cleanup.h +0 -0
  261. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-object.c +0 -0
  262. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-object.h +0 -0
  263. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-property.c +0 -0
  264. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-property.h +0 -0
  265. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-repository.c +0 -0
  266. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-repository.h +0 -0
  267. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-resulttuple.c +0 -0
  268. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-resulttuple.h +0 -0
  269. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-signal-closure.c +0 -0
  270. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-signal-closure.h +0 -0
  271. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-source.c +0 -0
  272. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-source.h +0 -0
  273. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-struct-marshal.c +0 -0
  274. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-struct-marshal.h +0 -0
  275. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-struct.c +0 -0
  276. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-struct.h +0 -0
  277. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-type.c +0 -0
  278. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-type.h +0 -0
  279. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-util.c +0 -0
  280. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-util.h +0 -0
  281. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-value.c +0 -0
  282. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygi-value.h +0 -0
  283. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pyginterface.c +0 -0
  284. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pyginterface.h +0 -0
  285. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygobject-internal.h +0 -0
  286. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygobject-object.c +0 -0
  287. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygobject-object.h +0 -0
  288. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygobject.h +0 -0
  289. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygoptioncontext.c +0 -0
  290. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygoptioncontext.h +0 -0
  291. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygoptiongroup.c +0 -0
  292. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygoptiongroup.h +0 -0
  293. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygpointer.c +0 -0
  294. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygpointer.h +0 -0
  295. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygspawn.c +0 -0
  296. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygspawn.h +0 -0
  297. {pygobject-3.52.2 → pygobject-3.52.4}/gi/pygtkcompat.py +0 -0
  298. {pygobject-3.52.2 → pygobject-3.52.4}/gi/repository/__init__.py +0 -0
  299. {pygobject-3.52.2 → pygobject-3.52.4}/gi/repository/meson.build +0 -0
  300. {pygobject-3.52.2 → pygobject-3.52.4}/gi/types.py +0 -0
  301. {pygobject-3.52.2 → pygobject-3.52.4}/meson_options.txt +0 -0
  302. {pygobject-3.52.2 → pygobject-3.52.4}/pygobject-3.0.pc.in +0 -0
  303. {pygobject-3.52.2 → pygobject-3.52.4}/pygobject.doap +0 -0
  304. {pygobject-3.52.2 → pygobject-3.52.4}/pygtkcompat/__init__.py +0 -0
  305. {pygobject-3.52.2 → pygobject-3.52.4}/pygtkcompat/meson.build +0 -0
  306. {pygobject-3.52.2 → pygobject-3.52.4}/pygtkcompat/pygtkcompat.py +0 -0
  307. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/glib.wrap +0 -0
  308. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/.clang-format +0 -0
  309. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/.editorconfig +0 -0
  310. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/.gitlab-ci.yml +0 -0
  311. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/.reuse/dep5 +0 -0
  312. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/LICENSES/CC0-1.0.txt +0 -0
  313. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/LICENSES/GPL-2.0-or-later.txt +0 -0
  314. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/LICENSES/LGPL-2.0-or-later.txt +0 -0
  315. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/LICENSES/LGPL-2.1-or-later.txt +0 -0
  316. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/LICENSES/MIT.txt +0 -0
  317. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/README.md +0 -0
  318. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/annotation.c +0 -0
  319. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/annotation.h +0 -0
  320. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/docs/provenance.txt +0 -0
  321. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/drawable.c +0 -0
  322. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/drawable.h +0 -0
  323. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/foo.c +0 -0
  324. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/foo.h +0 -0
  325. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/gimarshallingtests.c +0 -0
  326. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/gimarshallingtests.h +0 -0
  327. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/gimarshallingtestsextra.c +0 -0
  328. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/gimarshallingtestsextra.h +0 -0
  329. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/gitestmacros.h +0 -0
  330. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/gobject-introspection-tests.doap +0 -0
  331. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/meson.build +0 -0
  332. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/meson_options.txt +0 -0
  333. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/regress-unix.c +0 -0
  334. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/regress-unix.h +0 -0
  335. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/regress.c +0 -0
  336. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/regress.h +0 -0
  337. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/regressextra.c +0 -0
  338. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/regressextra.h +0 -0
  339. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/tools/iwyu.imp +0 -0
  340. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/tools/run_clang_format.sh +0 -0
  341. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/tools/run_iwyu.sh +0 -0
  342. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/utility.c +0 -0
  343. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/utility.h +0 -0
  344. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/warnlib.c +0 -0
  345. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests/warnlib.h +0 -0
  346. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection-tests.wrap +0 -0
  347. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/gobject-introspection.wrap +0 -0
  348. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/libffi.wrap +0 -0
  349. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/packagefiles/pythoncapi-compat-dist.py +0 -0
  350. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/packagefiles/pythoncapi-compat-meson.diff +0 -0
  351. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pycairo.wrap +0 -0
  352. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/.gitignore +0 -0
  353. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/.readthedocs.yaml +0 -0
  354. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/CODE_OF_CONDUCT.md +0 -0
  355. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/COPYING +0 -0
  356. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/README.rst +0 -0
  357. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/docs/Makefile +0 -0
  358. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/docs/conf.py +0 -0
  359. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/docs/index.rst +0 -0
  360. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/docs/links.rst +0 -0
  361. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/docs/make.bat +0 -0
  362. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/docs/tests.rst +0 -0
  363. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/docs/upgrade.rst +0 -0
  364. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/meson.build +0 -0
  365. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/tests/__init__.py +0 -0
  366. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/tests/test_pythoncapi_compat_cppext.cpp +0 -0
  367. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/tests/test_upgrade_pythoncapi.py +0 -0
  368. {pygobject-3.52.2 → pygobject-3.52.4}/subprojects/pythoncapi-compat/tests/utils.py +0 -0
  369. {pygobject-3.52.2 → pygobject-3.52.4}/tests/conftest.py +0 -0
  370. {pygobject-3.52.2 → pygobject-3.52.4}/tests/gi/overrides/Regress.py +0 -0
  371. {pygobject-3.52.2 → pygobject-3.52.4}/tests/gi/overrides/__init__.py +0 -0
  372. {pygobject-3.52.2 → pygobject-3.52.4}/tests/helper.py +0 -0
  373. {pygobject-3.52.2 → pygobject-3.52.4}/tests/meson.build +0 -0
  374. {pygobject-3.52.2 → pygobject-3.52.4}/tests/org.gnome.test.gschema.xml +0 -0
  375. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test-floating.c +0 -0
  376. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test-floating.h +0 -0
  377. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test-thread.c +0 -0
  378. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test-thread.h +0 -0
  379. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test-unknown.c +0 -0
  380. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test-unknown.h +0 -0
  381. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_async.py +0 -0
  382. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_atoms.py +0 -0
  383. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_cairo.py +0 -0
  384. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_docstring.py +0 -0
  385. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_enum.py +0 -0
  386. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_error.py +0 -0
  387. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_everything.py +0 -0
  388. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_fields.py +0 -0
  389. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_fundamental.py +0 -0
  390. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_gdbus.py +0 -0
  391. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_gi.py +0 -0
  392. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_glib.py +0 -0
  393. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_gobject.py +0 -0
  394. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_gtk_template.py +0 -0
  395. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_gtype.py +0 -0
  396. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_import_machinery.py +0 -0
  397. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_interface.py +0 -0
  398. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_internal_api.py +0 -0
  399. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_iochannel.py +0 -0
  400. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_mainloop.py +0 -0
  401. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_option.py +0 -0
  402. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_ossig.py +0 -0
  403. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_overrides_gdk.py +0 -0
  404. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_overrides_gdkpixbuf.py +0 -0
  405. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_overrides_gio.py +0 -0
  406. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_overrides_glib.py +0 -0
  407. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_overrides_gobject.py +0 -0
  408. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_overrides_gtk.py +0 -0
  409. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_overrides_pango.py +0 -0
  410. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_properties.py +0 -0
  411. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_pycapi.py +0 -0
  412. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_pygtkcompat.py +0 -0
  413. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_repository.py +0 -0
  414. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_resulttuple.py +0 -0
  415. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_signal.py +0 -0
  416. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_signature.py +0 -0
  417. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_source.py +0 -0
  418. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_subprocess.py +0 -0
  419. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_thread.py +0 -0
  420. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_typeclass.py +0 -0
  421. {pygobject-3.52.2 → pygobject-3.52.4}/tests/test_unknown.py +0 -0
  422. {pygobject-3.52.2 → pygobject-3.52.4}/tests/valgrind.supp +0 -0
  423. {pygobject-3.52.2 → pygobject-3.52.4}/tools/mkmetadata.py +0 -0
  424. {pygobject-3.52.2 → pygobject-3.52.4}/tools/pygi-convert.sh +0 -0
@@ -0,0 +1,36 @@
1
+ app-id: org.gnome.PyGObject.Devel
2
+ runtime: org.gnome.Sdk
3
+ runtime-version: master
4
+ sdk: org.gnome.Sdk
5
+ build-options:
6
+ build-args:
7
+ - '--share=network'
8
+ test-args:
9
+ - '--socket=x11'
10
+ - '--share=network'
11
+ env:
12
+ PYTEST_ADDOPTS: '-vs --cov'
13
+ TEST_GTK_VERSION: '3.0'
14
+ modules:
15
+ - name: dependencies
16
+ buildsystem: simple
17
+ build-commands:
18
+ - python3 --version
19
+ - echo "GTK VERSION ${TEST_GTK_VERSION}"
20
+ - pip3 install --prefix=${FLATPAK_DEST} pycairo pytest pytest-cov
21
+ - name: pygobject
22
+ buildsystem: meson
23
+ builddir: true
24
+ config-opts:
25
+ - '-Dtests=true'
26
+ sources:
27
+ - type: dir
28
+ path: ..
29
+ run-tests: true
30
+ test-rule: ''
31
+ test-commands:
32
+ # Remove vala-nightly, since it contains an incompatible version of libdbus
33
+ - >-
34
+ LD_LIBRARY_PATH=$(echo $LD_LIBRARY_PATH | sed s/vala-nightly/foobar/)
35
+ meson test -v
36
+ - cd .. && python3 -m coverage lcov -o "coverage/flatpak-${TEST_GTK_VERSION}.py.lcov"
@@ -0,0 +1,9 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ sed -i "/TEST_GTK_VERSION:/s/'.*'/'${TEST_GTK_VERSION:-3.0}'/" .gitlab-ci/org.gnome.PyGObject.Devel.yaml
6
+ xvfb-run -a flatpak-builder --user --keep-build-dirs --verbose --disable-rofiles-fuse flatpak_ci .gitlab-ci/org.gnome.PyGObject.Devel.yaml
7
+
8
+ mv .flatpak-builder/build/pygobject/coverage .
9
+ chmod -R 777 coverage
@@ -1,3 +1,13 @@
1
+ 3.52.4 - 2025-10-18
2
+ -------------------
3
+
4
+ * Backport: GLib 2.86/GioUnix compatibility :mr:`457`
5
+
6
+ 3.52.3 - 2025-03-16
7
+ -------------------
8
+
9
+ * Remove invalid error check for gi_constant_info_get_value :mr:`417`
10
+
1
11
  3.52.2 - 2025-03-12
2
12
  -------------------
3
13
 
@@ -42,7 +52,7 @@ extra properties, such as `value_nicks` and `value_names`.
42
52
  * Convenience API for Gdk.RGBA got GDK 4, similar to GDK 3 :mr:`351`
43
53
  * Added a [pre-commit](https://pre-commit.com/) configuration :mr:`383`
44
54
  * Use standard `enum` module for enums and flags in PyGObject :mr:`394`
45
- * Added an option to skip [automatic initialization of GTK and GDK](https://pygobject.gnome.org/guide/imports.html) :mr:`368`
55
+ * Added an option to skip [automatic initialization of GTK and GDK](https://pygobject.gnome.org/guide/imports.html) :mr:`368`
46
56
  * PyGObject is no longer automatically tested on i386 architecture :mr:`362`
47
57
  * Fixed iterator protocol implementation for properties :mr:`392`
48
58
  * Various code and documentation improvements :mr:`346` :mr:`348` :mr:`358`, a.o.
@@ -3403,7 +3413,7 @@ Documentation:
3403
3413
  registered (Paul, :bzbug:`551056`)
3404
3414
  * Fix typos breaking compilation (Frederic Peters :bzbug:`551212`)
3405
3415
  * GFile load_contents methods chop data at first \0
3406
- (Jonathan Matthew, :bzbug:`551059`)
3416
+ (Jonathan Matthew, :bzbug:`551059`)
3407
3417
 
3408
3418
  2.15.4 - 2008-09-03
3409
3419
  -------------------
@@ -3482,7 +3492,7 @@ Documentation:
3482
3492
 
3483
3493
  * Add GIO bindings (Johan, Mario Tagliaretti, Thomas Leonard)
3484
3494
  * Move codegen from PyGTK (Johan, Paul Pogonyshev, :bzbug:`542821`)
3485
- * Add more variables to the .pc files (Damien Carbery, Paul,
3495
+ * Add more variables to the .pc files (Damien Carbery, Paul,
3486
3496
  Dan Winship, :bzbug:`486876`)
3487
3497
  * Add pyg_option_group_new to the public API (Johan)
3488
3498
  * Add g_get_application_anme and g_get_progname (Sebastian Rittau)
@@ -3572,10 +3582,10 @@ Documentation:
3572
3582
 
3573
3583
  * distutils build fixes (Cedric)
3574
3584
  * documentation updates (John)
3575
- * gobject.handler_block_by_func and friends now accept methods
3585
+ * gobject.handler_block_by_func and friends now accept methods
3576
3586
  (Johan, Dima, :bzbug:`375589`)
3577
3587
  * avoid truncating of gparamspec (Yevgen Muntyan, :bzbug:`353943`)
3578
- * set __module__ on gobject derived types (Johan,
3588
+ * set __module__ on gobject derived types (Johan,
3579
3589
  Osmo Salomaa, :bzbug:`376099`)
3580
3590
  * Ensure exceptions are raised on errors in gobject.OptionGroup
3581
3591
  (Johan, Laszlo Pandy, :bzbug:`364576`
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyGObject
3
- Version: 3.52.2
3
+ Version: 3.52.4
4
4
  Summary: Python bindings for GObject Introspection
5
5
  Author-Email: James Henstridge <james@daa.com.au>
6
6
  Maintainer-Email: Christoph Reiter <creiter@src.gnome.org>, Arjan Molenaar <amolenaar@gnome.org>, Dan Yeaw <danyeaw@gnome.org>, Ignacio Casal Quinteiro <icq@gnome.org>
@@ -520,7 +520,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
520
520
  Project-URL: Homepage, https://pygobject.gnome.org
521
521
  Project-URL: Repository, https://gitlab.gnome.org/GNOME/pygobject.git
522
522
  Project-URL: Changelog, https://gitlab.gnome.org/GNOME/pygobject/-/blob/main/NEWS
523
- Requires-Python: <4.0,>=3.9
523
+ Requires-Python: >=3.9
524
524
  Requires-Dist: pycairo>=1.16
525
525
  Description-Content-Type: text/x-rst
526
526
 
@@ -28,6 +28,7 @@ import threading
28
28
  import selectors
29
29
  import weakref
30
30
  import warnings
31
+ from collections.abc import Mapping
31
32
  from contextlib import contextmanager
32
33
  from . import _ossighelper
33
34
 
@@ -508,9 +509,33 @@ if sys.platform != 'win32':
508
509
  # Subclass to attach _tag
509
510
  pass
510
511
 
512
+ class _FileObjectMapping(Mapping):
513
+ def __init__(self, fd_dict):
514
+ self.fd_dict = fd_dict
515
+
516
+ def __len__(self):
517
+ return len(self.fd_dict)
518
+
519
+ def get(self, fileobj, default=None):
520
+ fd = _fileobj_to_fd(fileobj)
521
+ return self.fd_dict.get(fd, default)
522
+
523
+ def __getitem__(self, fileobj):
524
+ value = self.get(fileobj)
525
+ if value is None:
526
+ raise KeyError("{!r} is not registered".format(fileobj))
527
+ return value
528
+
529
+ def __iter__(self):
530
+ return iter(self.fd_dict)
531
+
511
532
  class _Selector(_SelectorMixin, selectors.BaseSelector):
512
533
  """A Selector for gi.events.GLibEventLoop registering python IO with GLib."""
513
534
 
535
+ def __init__(self, context, loop):
536
+ super().__init__(context, loop)
537
+ self._map = _FileObjectMapping(self._fd_to_key)
538
+
514
539
  def attach(self):
515
540
  self._source.attach(self._loop._context)
516
541
 
@@ -534,7 +559,9 @@ if sys.platform != 'win32':
534
559
  raise ValueError("Invalid events: {!r}".format(events))
535
560
 
536
561
  fd = _fileobj_to_fd(fileobj)
537
- assert fd not in self._fd_to_key
562
+ if fd in self._fd_to_key:
563
+ raise KeyError("{!r} (FD {}) is already registered"
564
+ .format(fileobj, fd))
538
565
 
539
566
  key = _SelectorKey(fileobj, fd, events, data)
540
567
 
@@ -557,15 +584,12 @@ if sys.platform != 'win32':
557
584
  # We could override modify, but it is only slightly when the "events" change.
558
585
 
559
586
  def get_key(self, fileobj):
560
- fd = _fileobj_to_fd(fileobj)
561
- return self._fd_to_key[fd]
587
+ return self._map[fileobj]
562
588
 
563
589
  def get_map(self):
564
- """Return a mapping of file objects to selector keys."""
565
- # Horribly inefficient
566
- # It should never be called and exists just to prevent issues if e.g.
567
- # python decides to use it for debug purposes.
568
- return {k.fileobj: k for k in self._fd_to_key.values()}
590
+ """Return a mapping of file objects or file descriptors to
591
+ selector keys."""
592
+ return self._map
569
593
 
570
594
 
571
595
  else:
@@ -61,7 +61,7 @@ def _check_require_version(namespace, stacklevel):
61
61
  # namespace or by C code like libpeas
62
62
  return
63
63
 
64
- if namespace in ("GLib", "GObject", "Gio"):
64
+ if namespace in ("GLib", "GObject", "Gio", "GioUnix", "GioWin32"):
65
65
  # part of glib (we have bigger problems if versions change there)
66
66
  return
67
67
 
@@ -20,9 +20,17 @@
20
20
 
21
21
  import asyncio
22
22
  import warnings
23
+ from contextlib import suppress
23
24
 
24
25
  from .._ossighelper import register_sigint_fallback, get_event_loop
25
- from ..overrides import override, deprecated_init, wrap_list_store_equal_func, wrap_list_store_sort_func
26
+ from ..overrides import (
27
+ override,
28
+ deprecated_attr,
29
+ deprecated_init,
30
+ wrap_list_store_equal_func,
31
+ wrap_list_store_sort_func,
32
+ )
33
+ from .._gi import CallableInfo
26
34
  from ..module import get_introspection_module
27
35
  from gi import PyGIWarning
28
36
 
@@ -604,4 +612,67 @@ class File(Gio.File):
604
612
 
605
613
 
606
614
  File = override(File)
607
- __all__.append('File')
615
+ __all__.append("File")
616
+
617
+
618
+ GioPlatform = None
619
+
620
+ with suppress(ImportError):
621
+ from gi.repository import GioUnix as GioPlatform
622
+
623
+ if not GioPlatform:
624
+ with suppress(ImportError):
625
+ from gi.repository import GioWin32 as GioPlatform
626
+
627
+ if GioPlatform:
628
+ # Add support for using platform-specific Gio symbols.
629
+ gio_globals = globals()
630
+
631
+ platform_name = f"{GioPlatform._namespace[len(Gio._namespace):]}"
632
+ platform_name_lower = platform_name.lower()
633
+
634
+ for attr in dir(GioPlatform):
635
+ if attr.startswith("_"):
636
+ continue
637
+
638
+ original_attr = getattr(GioPlatform, attr)
639
+ wrapper_attr = attr
640
+
641
+ if isinstance(
642
+ original_attr, CallableInfo
643
+ ) and original_attr.get_symbol().startswith(f"g_{platform_name_lower}_"):
644
+ wrapper_attr = f"{platform_name_lower}_{attr}"
645
+ else:
646
+ try:
647
+ gtype = getattr(original_attr, "__gtype__")
648
+ if gtype.name.startswith(f"G{platform_name}"):
649
+ wrapper_attr = f"{platform_name}{attr}"
650
+ except AttributeError:
651
+ pass
652
+
653
+ if wrapper_attr == attr and hasattr(Gio, wrapper_attr):
654
+ try:
655
+ name = original_attr.__name__[0]
656
+ except (AttributeError, IndexError):
657
+ name = original_attr
658
+
659
+ # Fallback if we don't have the original name.
660
+ if name.islower():
661
+ wrapper_attr = f"{platform_name_lower}_{attr}"
662
+ elif "_" in name:
663
+ wrapper_attr = f"{platform_name.upper()}_{attr}"
664
+ elif name:
665
+ wrapper_attr = f"{platform_name}{attr}"
666
+
667
+ if (
668
+ wrapper_attr in __all__ or
669
+ wrapper_attr in gio_globals or
670
+ hasattr(Gio, wrapper_attr)
671
+ ):
672
+ continue
673
+
674
+ gio_globals[wrapper_attr] = original_attr
675
+ deprecated_attr(
676
+ Gio._namespace, wrapper_attr, f"{GioPlatform._namespace}.{attr}"
677
+ )
678
+ __all__.append(wrapper_attr)
@@ -0,0 +1,170 @@
1
+ # Copyright 2025 Simon McVittie
2
+ # SPDX-License-Identifier: LGPL-2.1-or-later
3
+
4
+ from ..module import get_introspection_module
5
+ from ..overrides import override
6
+
7
+ from gi.repository import GLib
8
+
9
+ GioUnix = get_introspection_module("GioUnix")
10
+
11
+ __all__ = []
12
+
13
+ if (GLib.MAJOR_VERSION, GLib.MINOR_VERSION) < (2, 86):
14
+ # In older versions of GLib there was some confusion between the
15
+ # platform-specific classes in GioUnix and their equivalents in Gio,
16
+ # resulting in functions like g_desktop_app_info_get_action_name()
17
+ # being assumed to be a global function that happened to take a
18
+ # Gio.DesktopAppInfo first parameter, instead of being a method on a
19
+ # GioUnix.DesktopAppInfo instance. There are not very many classes and
20
+ # methods in GioUnix, so we can wrap them and provide the intended API.
21
+
22
+ @override
23
+ class DesktopAppInfo(GioUnix.DesktopAppInfo):
24
+ def get_action_name(self, action_name):
25
+ return GioUnix.DesktopAppInfo.get_action_name(self, action_name)
26
+
27
+ def get_boolean(self, key):
28
+ return GioUnix.DesktopAppInfo.get_boolean(self, key)
29
+
30
+ def get_categories(self):
31
+ return GioUnix.DesktopAppInfo.get_categories(self)
32
+
33
+ def get_filename(self):
34
+ return GioUnix.DesktopAppInfo.get_filename(self)
35
+
36
+ def get_generic_name(self):
37
+ return GioUnix.DesktopAppInfo.get_generic_name(self)
38
+
39
+ def get_is_hidden(self):
40
+ return GioUnix.DesktopAppInfo.get_is_hidden(self)
41
+
42
+ def get_keywords(self):
43
+ return GioUnix.DesktopAppInfo.get_keywords(self)
44
+
45
+ def get_locale_string(self, key):
46
+ return GioUnix.DesktopAppInfo.get_locale_string(self, key)
47
+
48
+ def get_nodisplay(self):
49
+ return GioUnix.DesktopAppInfo.get_nodisplay(self)
50
+
51
+ def get_show_in(self, desktop_env=None):
52
+ return GioUnix.DesktopAppInfo.get_show_in(self, desktop_env)
53
+
54
+ def get_startup_wm_class(self):
55
+ return GioUnix.DesktopAppInfo.get_startup_wm_class(self)
56
+
57
+ def get_string(self, key):
58
+ return GioUnix.DesktopAppInfo.get_string(self, key)
59
+
60
+ def get_string_list(self, key):
61
+ return GioUnix.DesktopAppInfo.get_string_list(self, key)
62
+
63
+ def has_key(self, key):
64
+ return GioUnix.DesktopAppInfo.has_key(self, key)
65
+
66
+ def launch_action(self, action_name, launch_context=None):
67
+ GioUnix.DesktopAppInfo.launch_action(
68
+ self,
69
+ action_name,
70
+ launch_context,
71
+ )
72
+
73
+ def launch_uris_as_manager(
74
+ self,
75
+ uris,
76
+ launch_context,
77
+ spawn_flags,
78
+ user_setup=None,
79
+ user_setup_data=None,
80
+ pid_callback=None,
81
+ pid_callback_data=None,
82
+ ):
83
+ return GioUnix.DesktopAppInfo.launch_uris_as_manager(
84
+ self,
85
+ uris,
86
+ launch_context,
87
+ spawn_flags,
88
+ user_setup,
89
+ user_setup_data,
90
+ pid_callback,
91
+ pid_callback_data,
92
+ )
93
+
94
+ def launch_uris_as_manager_with_fds(
95
+ self,
96
+ uris,
97
+ launch_context,
98
+ spawn_flags,
99
+ user_setup,
100
+ user_setup_data,
101
+ pid_callback,
102
+ pid_callback_data,
103
+ stdin_fd,
104
+ stdout_fd,
105
+ stderr_fd,
106
+ ):
107
+ return GioUnix.DesktopAppInfo.launch_uris_as_manager_with_fds(
108
+ self,
109
+ uris,
110
+ launch_context,
111
+ spawn_flags,
112
+ user_setup,
113
+ user_setup_data,
114
+ pid_callback,
115
+ pid_callback_data,
116
+ stdin_fd,
117
+ stdout_fd,
118
+ stderr_fd,
119
+ )
120
+
121
+ def list_actions(self):
122
+ return GioUnix.DesktopAppInfo.list_actions(self)
123
+
124
+ __all__.append("DesktopAppInfo")
125
+
126
+ @override
127
+ class FDMessage(GioUnix.FDMessage):
128
+ def append_fd(self, fd):
129
+ return GioUnix.FDMessage.append_fd(self, fd)
130
+
131
+ def get_fd_list(self):
132
+ return GioUnix.FDMessage.get_fd_list(self)
133
+
134
+ def steal_fds(self):
135
+ return GioUnix.FDMessage.steal_fds(self)
136
+
137
+ __all__.append("FDMessage")
138
+
139
+ @override
140
+ class InputStream(GioUnix.InputStream):
141
+ def get_close_fd(self):
142
+ return GioUnix.InputStream.get_close_fd(self)
143
+
144
+ def get_fd(self):
145
+ return GioUnix.InputStream.get_fd(self)
146
+
147
+ def set_close_fd(self, close_fd):
148
+ GioUnix.InputStream.set_close_fd(self, close_fd)
149
+
150
+ __all__.append("InputStream")
151
+
152
+ @override
153
+ class MountMonitor(GioUnix.MountMonitor):
154
+ def set_rate_limit(self, limit_msec):
155
+ GioUnix.MountMonitor.set_rate_limit(limit_msec)
156
+
157
+ __all__.append("MountMonitor")
158
+
159
+ @override
160
+ class OutputStream(GioUnix.OutputStream):
161
+ def get_close_fd(self):
162
+ return GioUnix.OutputStream.get_close_fd(self)
163
+
164
+ def get_fd(self):
165
+ return GioUnix.OutputStream.get_fd(self)
166
+
167
+ def set_close_fd(self, close_fd):
168
+ GioUnix.OutputStream.set_close_fd(self, close_fd)
169
+
170
+ __all__.append("OutputStream")
@@ -5,6 +5,7 @@ python_sources = [
5
5
  'GdkPixbuf.py',
6
6
  'GObject.py',
7
7
  'Gio.py',
8
+ 'GioUnix.py',
8
9
  'GIMarshallingTests.py',
9
10
  'Pango.py',
10
11
  '__init__.py']
@@ -1656,10 +1656,7 @@ _wrap_gi_constant_info_get_value (PyGIBaseInfo *self)
1656
1656
  PyObject *py_value;
1657
1657
  gboolean free_array = FALSE;
1658
1658
 
1659
- if (gi_constant_info_get_value ( (GIConstantInfo *) self->info, &value) == 0) {
1660
- PyErr_SetString (PyExc_RuntimeError, "unable to get value");
1661
- return NULL;
1662
- }
1659
+ gi_constant_info_get_value ( (GIConstantInfo *) self->info, &value);
1663
1660
 
1664
1661
  type_info = gi_constant_info_get_type_info ( (GIConstantInfo *) self->info);
1665
1662
 
@@ -1,7 +1,7 @@
1
1
  project(
2
2
  'pygobject',
3
3
  'c',
4
- version : '3.52.2',
4
+ version : '3.52.4',
5
5
  meson_version : '>= 0.64.0',
6
6
  default_options : ['warning_level=1', 'buildtype=debugoptimized']
7
7
  )
@@ -127,7 +127,6 @@ else
127
127
  '-Wmissing-include-dirs',
128
128
  '-Wmissing-noreturn',
129
129
  '-Wmissing-prototypes',
130
- '-Wnested-externs',
131
130
  '-Wnull-dereference',
132
131
  '-Wold-style-definition',
133
132
  '-Wpacked',
@@ -22,7 +22,7 @@ classifiers = [
22
22
  "Programming Language :: Python",
23
23
  "Topic :: Software Development :: Libraries :: Python Modules",
24
24
  ]
25
- requires-python = ">=3.9, <4.0"
25
+ requires-python = ">=3.9"
26
26
  dependencies = [
27
27
  "pycairo>=1.16"
28
28
  ]
@@ -21,15 +21,15 @@ jobs:
21
21
  python:
22
22
  # Python versions (CPython):
23
23
  # https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json
24
- - "3.7"
25
24
  - "3.8"
26
25
  - "3.9"
27
26
  - "3.10"
28
27
  - "3.11"
29
28
  - "3.12"
30
- # CPython 3.13 final is scheduled for October 2024:
31
- # https://peps.python.org/pep-0719/
32
29
  - "3.13"
30
+ # CPython 3.14 final is scheduled for October 2025:
31
+ # https://peps.python.org/pep-0719/
32
+ - "3.14"
33
33
 
34
34
  # PyPy versions:
35
35
  # - https://github.com/actions/setup-python/blob/main/docs/advanced-usage.md
@@ -50,20 +50,45 @@ jobs:
50
50
  - "pypy3.7-v7.3.2"
51
51
 
52
52
  include:
53
- # Windows: test old and new Python
53
+ # Windows
54
+ - os: windows-latest
55
+ python: "3.6"
56
+ - os: windows-latest
57
+ python: "3.7"
58
+ - os: windows-latest
59
+ python: "3.8"
60
+ - os: windows-latest
61
+ python: "3.9"
62
+ - os: windows-latest
63
+ python: "3.10"
54
64
  - os: windows-latest
55
- python: 3.6
65
+ python: "3.11"
56
66
  - os: windows-latest
57
- python: 3.12
67
+ python: "3.12"
68
+ - os: windows-latest
69
+ python: "3.13"
58
70
 
59
- # macOS: test only new Python
71
+ # macOS
72
+ # Python 3.8 is the oldest version available on macOS/arm64.
73
+ - os: macos-latest
74
+ python: "3.8"
75
+ - os: macos-latest
76
+ python: "3.9"
77
+ - os: macos-latest
78
+ python: "3.10"
79
+ - os: macos-latest
80
+ python: "3.11"
81
+ - os: macos-latest
82
+ python: "3.12"
60
83
  - os: macos-latest
61
- python: 3.12
84
+ python: "3.13"
62
85
 
63
86
  # Ubuntu: test deadsnakes Python versions which are not supported by
64
87
  # GHA python-versions.
65
88
  - os: ubuntu-20.04
66
- python: 3.6
89
+ python: "3.6"
90
+ - os: ubuntu-22.04
91
+ python: "3.7"
67
92
 
68
93
  steps:
69
94
  # https://github.com/actions/checkout
@@ -0,0 +1 @@
1
+ 302da2eeacc8c8994aa599981ffa9faadf03ddcb8b323d1291898fd4ed10b2fc