PyGObject 3.54.2__tar.gz → 3.54.5__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 (433) hide show
  1. {pygobject-3.54.2 → pygobject-3.54.5}/NEWS +10 -0
  2. {pygobject-3.54.2 → pygobject-3.54.5}/PKG-INFO +1 -1
  3. {pygobject-3.54.2 → pygobject-3.54.5}/gi/overrides/Gio.py +22 -6
  4. pygobject-3.54.5/gi/overrides/GioUnix.py +170 -0
  5. {pygobject-3.54.2 → pygobject-3.54.5}/gi/overrides/meson.build +1 -0
  6. {pygobject-3.54.2 → pygobject-3.54.5}/meson.build +1 -1
  7. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_gio.py +201 -38
  8. {pygobject-3.54.2 → pygobject-3.54.5}/.clang-format +0 -0
  9. {pygobject-3.54.2 → pygobject-3.54.5}/.coveragerc +0 -0
  10. {pygobject-3.54.2 → pygobject-3.54.5}/.git-blame-ignore-revs +0 -0
  11. {pygobject-3.54.2 → pygobject-3.54.5}/.gitignore +0 -0
  12. {pygobject-3.54.2 → pygobject-3.54.5}/.gitlab-ci/Dockerfile +0 -0
  13. {pygobject-3.54.2 → pygobject-3.54.5}/.gitlab-ci/README.rst +0 -0
  14. {pygobject-3.54.2 → pygobject-3.54.5}/.gitlab-ci/build-sdists.sh +0 -0
  15. {pygobject-3.54.2 → pygobject-3.54.5}/.gitlab-ci/coverage-docker.sh +0 -0
  16. {pygobject-3.54.2 → pygobject-3.54.5}/.gitlab-ci/fixup-lcov-paths.py +0 -0
  17. {pygobject-3.54.2 → pygobject-3.54.5}/.gitlab-ci/lcovrc +0 -0
  18. {pygobject-3.54.2 → pygobject-3.54.5}/.gitlab-ci/org.gnome.PyGObject.Devel.yaml +0 -0
  19. {pygobject-3.54.2 → pygobject-3.54.5}/.gitlab-ci/run-docker-runtime.sh +0 -0
  20. {pygobject-3.54.2 → pygobject-3.54.5}/.gitlab-ci/run-docker.sh +0 -0
  21. {pygobject-3.54.2 → pygobject-3.54.5}/.gitlab-ci/test-docker.sh +0 -0
  22. {pygobject-3.54.2 → pygobject-3.54.5}/.gitlab-ci/test-flatpak.sh +0 -0
  23. {pygobject-3.54.2 → pygobject-3.54.5}/.gitlab-ci/test-msys2.sh +0 -0
  24. {pygobject-3.54.2 → pygobject-3.54.5}/.gitlab-ci.yml +0 -0
  25. {pygobject-3.54.2 → pygobject-3.54.5}/.pre-commit-config.yaml +0 -0
  26. {pygobject-3.54.2 → pygobject-3.54.5}/COPYING +0 -0
  27. {pygobject-3.54.2 → pygobject-3.54.5}/METADATA.in +0 -0
  28. {pygobject-3.54.2 → pygobject-3.54.5}/README.rst +0 -0
  29. {pygobject-3.54.2 → pygobject-3.54.5}/docs/Makefile +0 -0
  30. {pygobject-3.54.2 → pygobject-3.54.5}/docs/bugs_repo.rst +0 -0
  31. {pygobject-3.54.2 → pygobject-3.54.5}/docs/changelog.rst +0 -0
  32. {pygobject-3.54.2 → pygobject-3.54.5}/docs/conf.py +0 -0
  33. {pygobject-3.54.2 → pygobject-3.54.5}/docs/contact.rst +0 -0
  34. {pygobject-3.54.2 → pygobject-3.54.5}/docs/devguide/analysis/classes_without_constructor.rst +0 -0
  35. {pygobject-3.54.2 → pygobject-3.54.5}/docs/devguide/analysis/index.rst +0 -0
  36. {pygobject-3.54.2 → pygobject-3.54.5}/docs/devguide/analysis/object_ref_counting_for_vfuncs_and_closures.rst +0 -0
  37. {pygobject-3.54.2 → pygobject-3.54.5}/docs/devguide/analysis/property_object_transfer.rst +0 -0
  38. {pygobject-3.54.2 → pygobject-3.54.5}/docs/devguide/analysis/signal_transfer.rst +0 -0
  39. {pygobject-3.54.2 → pygobject-3.54.5}/docs/devguide/dev_environ.rst +0 -0
  40. {pygobject-3.54.2 → pygobject-3.54.5}/docs/devguide/gbytes_marshaller_tutorial.rst +0 -0
  41. {pygobject-3.54.2 → pygobject-3.54.5}/docs/devguide/index.rst +0 -0
  42. {pygobject-3.54.2 → pygobject-3.54.5}/docs/devguide/initializer_deprecations.rst +0 -0
  43. {pygobject-3.54.2 → pygobject-3.54.5}/docs/devguide/introspection_porting.rst +0 -0
  44. {pygobject-3.54.2 → pygobject-3.54.5}/docs/devguide/maintguide.rst +0 -0
  45. {pygobject-3.54.2 → pygobject-3.54.5}/docs/devguide/override_guidelines.rst +0 -0
  46. {pygobject-3.54.2 → pygobject-3.54.5}/docs/devguide/overview.rst +0 -0
  47. {pygobject-3.54.2 → pygobject-3.54.5}/docs/devguide/packagingguide.rst +0 -0
  48. {pygobject-3.54.2 → pygobject-3.54.5}/docs/devguide/profiling.rst +0 -0
  49. {pygobject-3.54.2 → pygobject-3.54.5}/docs/devguide/style_guide.rst +0 -0
  50. {pygobject-3.54.2 → pygobject-3.54.5}/docs/extra.css +0 -0
  51. {pygobject-3.54.2 → pygobject-3.54.5}/docs/getting_started.rst +0 -0
  52. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/api/api.rst +0 -0
  53. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/api/basic_types.rst +0 -0
  54. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/api/error_handling.rst +0 -0
  55. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/api/flags_enums.rst +0 -0
  56. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/api/gobject.rst +0 -0
  57. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/api/index.rst +0 -0
  58. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/api/properties.rst +0 -0
  59. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/api/signals.rst +0 -0
  60. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/api/weakrefs.rst +0 -0
  61. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/asynchronous.rst +0 -0
  62. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/cairo_integration.rst +0 -0
  63. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/code/cairo-demo.py +0 -0
  64. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/debug_profile.rst +0 -0
  65. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/deploy.rst +0 -0
  66. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/download_asyncio.py +0 -0
  67. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/download_callback.py +0 -0
  68. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/faq.rst +0 -0
  69. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/flatpak.rst +0 -0
  70. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/gtk_template.rst +0 -0
  71. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/images/cairo_integration.png +0 -0
  72. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/imports.rst +0 -0
  73. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/index.rst +0 -0
  74. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/porting.rst +0 -0
  75. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/sysdeps.rst +0 -0
  76. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/testing.rst +0 -0
  77. {pygobject-3.54.2 → pygobject-3.54.5}/docs/guide/threading.rst +0 -0
  78. {pygobject-3.54.2 → pygobject-3.54.5}/docs/icons.rst +0 -0
  79. {pygobject-3.54.2 → pygobject-3.54.5}/docs/images/LICENSE +0 -0
  80. {pygobject-3.54.2 → pygobject-3.54.5}/docs/images/arch-dark.svg +0 -0
  81. {pygobject-3.54.2 → pygobject-3.54.5}/docs/images/arch.svg +0 -0
  82. {pygobject-3.54.2 → pygobject-3.54.5}/docs/images/favicon.ico +0 -0
  83. {pygobject-3.54.2 → pygobject-3.54.5}/docs/images/logo.svg +0 -0
  84. {pygobject-3.54.2 → pygobject-3.54.5}/docs/images/overview-dark.svg +0 -0
  85. {pygobject-3.54.2 → pygobject-3.54.5}/docs/images/overview.dia +0 -0
  86. {pygobject-3.54.2 → pygobject-3.54.5}/docs/images/overview.svg +0 -0
  87. {pygobject-3.54.2 → pygobject-3.54.5}/docs/images/pygobject-dark.svg +0 -0
  88. {pygobject-3.54.2 → pygobject-3.54.5}/docs/images/pygobject-small.svg +0 -0
  89. {pygobject-3.54.2 → pygobject-3.54.5}/docs/images/pygobject.svg +0 -0
  90. {pygobject-3.54.2 → pygobject-3.54.5}/docs/images/start_linux.png +0 -0
  91. {pygobject-3.54.2 → pygobject-3.54.5}/docs/images/start_macos.png +0 -0
  92. {pygobject-3.54.2 → pygobject-3.54.5}/docs/images/start_windows.png +0 -0
  93. {pygobject-3.54.2 → pygobject-3.54.5}/docs/index.rst +0 -0
  94. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/_static/custom.css +0 -0
  95. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gobject/basics.rst +0 -0
  96. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gobject/examples/listmodel.py +0 -0
  97. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gobject/interfaces.rst +0 -0
  98. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gobject/subclassing.rst +0 -0
  99. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gobject.rst +0 -0
  100. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk3.rst +0 -0
  101. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/application.rst +0 -0
  102. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/basics.rst +0 -0
  103. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/clipboard.rst +0 -0
  104. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/buttons.rst +0 -0
  105. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/check-radio-buttons.rst +0 -0
  106. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/dropdown.rst +0 -0
  107. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/entries.rst +0 -0
  108. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/examples/button.py +0 -0
  109. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/examples/check_radio_buttons.py +0 -0
  110. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/examples/dropdown.py +0 -0
  111. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/examples/entries.py +0 -0
  112. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/examples/linkbutton.py +0 -0
  113. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/examples/spinbutton.py +0 -0
  114. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/examples/switch.py +0 -0
  115. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/examples/togglebutton.py +0 -0
  116. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/images/button.png +0 -0
  117. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/images/check_radio_buttons.png +0 -0
  118. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/images/dropdown.png +0 -0
  119. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/images/entries.png +0 -0
  120. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/images/linkbutton.png +0 -0
  121. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/images/spinbutton.png +0 -0
  122. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/images/switch.png +0 -0
  123. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/images/togglebutton.png +0 -0
  124. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/scale.rst +0 -0
  125. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/spinbutton.rst +0 -0
  126. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls/switch.rst +0 -0
  127. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/controls.rst +0 -0
  128. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/display-widgets/examples/label.py +0 -0
  129. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/display-widgets/examples/picture.py +0 -0
  130. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/display-widgets/examples/progressbar.py +0 -0
  131. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/display-widgets/examples/spinner.py +0 -0
  132. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/display-widgets/examples/spinner_ext.py +0 -0
  133. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/display-widgets/image.rst +0 -0
  134. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/display-widgets/images/label.png +0 -0
  135. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/display-widgets/images/picture.png +0 -0
  136. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/display-widgets/images/progressbar.png +0 -0
  137. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/display-widgets/images/spinner.png +0 -0
  138. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/display-widgets/images/spinner_ext.png +0 -0
  139. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/display-widgets/label.rst +0 -0
  140. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/display-widgets/picture.rst +0 -0
  141. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/display-widgets/progressbar.rst +0 -0
  142. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/display-widgets/spinner.rst +0 -0
  143. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/display-widgets.rst +0 -0
  144. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/drag-and-drop.rst +0 -0
  145. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/examples/application.py +0 -0
  146. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/examples/clipboard.py +0 -0
  147. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/examples/drag_and_drop.py +0 -0
  148. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/examples/extended_example.py +0 -0
  149. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/examples/layout_box.py +0 -0
  150. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/examples/layout_center.py +0 -0
  151. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/examples/layout_flowbox.py +0 -0
  152. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/examples/layout_grid.py +0 -0
  153. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/examples/layout_headerbar.py +0 -0
  154. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/examples/layout_listbox.py +0 -0
  155. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/examples/layout_notebook.py +0 -0
  156. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/examples/layout_stack.py +0 -0
  157. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/examples/popover.py +0 -0
  158. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/examples/popover_menu.py +0 -0
  159. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/examples/simple_example.py +0 -0
  160. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/examples/textview.py +0 -0
  161. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/images/application.png +0 -0
  162. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/images/basic_example.png +0 -0
  163. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/images/clipboard.png +0 -0
  164. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/images/drag_and_drop.png +0 -0
  165. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/images/extended_example.png +0 -0
  166. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/images/layout_box.png +0 -0
  167. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/images/layout_center.png +0 -0
  168. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/images/layout_flowbox.png +0 -0
  169. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/images/layout_grid.png +0 -0
  170. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/images/layout_headerbar.png +0 -0
  171. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/images/layout_listbox.png +0 -0
  172. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/images/layout_notebook.png +0 -0
  173. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/images/layout_stack.png +0 -0
  174. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/images/popover.png +0 -0
  175. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/images/popover_menu.png +0 -0
  176. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/images/textview.png +0 -0
  177. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/introduction.rst +0 -0
  178. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/layout-widgets.rst +0 -0
  179. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/popovers.rst +0 -0
  180. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4/textview.rst +0 -0
  181. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/gtk4.rst +0 -0
  182. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/index.rst +0 -0
  183. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/libadwaita/application.rst +0 -0
  184. {pygobject-3.54.2 → pygobject-3.54.5}/docs/tutorials/libadwaita.rst +0 -0
  185. {pygobject-3.54.2 → pygobject-3.54.5}/gi/__init__.py +0 -0
  186. {pygobject-3.54.2 → pygobject-3.54.5}/gi/_constants.py +0 -0
  187. {pygobject-3.54.2 → pygobject-3.54.5}/gi/_enum.py +0 -0
  188. {pygobject-3.54.2 → pygobject-3.54.5}/gi/_error.py +0 -0
  189. {pygobject-3.54.2 → pygobject-3.54.5}/gi/_gtktemplate.py +0 -0
  190. {pygobject-3.54.2 → pygobject-3.54.5}/gi/_option.py +0 -0
  191. {pygobject-3.54.2 → pygobject-3.54.5}/gi/_ossighelper.py +0 -0
  192. {pygobject-3.54.2 → pygobject-3.54.5}/gi/_propertyhelper.py +0 -0
  193. {pygobject-3.54.2 → pygobject-3.54.5}/gi/_signalhelper.py +0 -0
  194. {pygobject-3.54.2 → pygobject-3.54.5}/gi/_signature.py +0 -0
  195. {pygobject-3.54.2 → pygobject-3.54.5}/gi/docstring.py +0 -0
  196. {pygobject-3.54.2 → pygobject-3.54.5}/gi/events.py +0 -0
  197. {pygobject-3.54.2 → pygobject-3.54.5}/gi/gimodule.c +0 -0
  198. {pygobject-3.54.2 → pygobject-3.54.5}/gi/gimodule.h +0 -0
  199. {pygobject-3.54.2 → pygobject-3.54.5}/gi/importer.py +0 -0
  200. {pygobject-3.54.2 → pygobject-3.54.5}/gi/meson.build +0 -0
  201. {pygobject-3.54.2 → pygobject-3.54.5}/gi/module.py +0 -0
  202. {pygobject-3.54.2 → pygobject-3.54.5}/gi/overrides/GIMarshallingTests.py +0 -0
  203. {pygobject-3.54.2 → pygobject-3.54.5}/gi/overrides/GLib.py +0 -0
  204. {pygobject-3.54.2 → pygobject-3.54.5}/gi/overrides/GObject.py +0 -0
  205. {pygobject-3.54.2 → pygobject-3.54.5}/gi/overrides/Gdk.py +0 -0
  206. {pygobject-3.54.2 → pygobject-3.54.5}/gi/overrides/GdkPixbuf.py +0 -0
  207. {pygobject-3.54.2 → pygobject-3.54.5}/gi/overrides/Gtk.py +0 -0
  208. {pygobject-3.54.2 → pygobject-3.54.5}/gi/overrides/Pango.py +0 -0
  209. {pygobject-3.54.2 → pygobject-3.54.5}/gi/overrides/__init__.py +0 -0
  210. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygboxed.c +0 -0
  211. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygboxed.h +0 -0
  212. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygenum.c +0 -0
  213. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygenum.h +0 -0
  214. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygflags.c +0 -0
  215. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygflags.h +0 -0
  216. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-argument.c +0 -0
  217. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-argument.h +0 -0
  218. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-array.c +0 -0
  219. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-array.h +0 -0
  220. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-async.c +0 -0
  221. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-async.h +0 -0
  222. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-basictype.c +0 -0
  223. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-basictype.h +0 -0
  224. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-boxed.c +0 -0
  225. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-boxed.h +0 -0
  226. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-cache.c +0 -0
  227. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-cache.h +0 -0
  228. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-ccallback.c +0 -0
  229. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-ccallback.h +0 -0
  230. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-closure.c +0 -0
  231. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-closure.h +0 -0
  232. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-enum-marshal.c +0 -0
  233. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-enum-marshal.h +0 -0
  234. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-error.c +0 -0
  235. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-error.h +0 -0
  236. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-foreign-api.h +0 -0
  237. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-foreign-cairo.c +0 -0
  238. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-foreign.c +0 -0
  239. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-foreign.h +0 -0
  240. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-fundamental.c +0 -0
  241. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-fundamental.h +0 -0
  242. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-hashtable.c +0 -0
  243. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-hashtable.h +0 -0
  244. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-info.c +0 -0
  245. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-info.h +0 -0
  246. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-invoke-state-struct.h +0 -0
  247. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-invoke.c +0 -0
  248. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-invoke.h +0 -0
  249. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-list.c +0 -0
  250. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-list.h +0 -0
  251. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-marshal-cleanup.c +0 -0
  252. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-marshal-cleanup.h +0 -0
  253. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-object.c +0 -0
  254. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-object.h +0 -0
  255. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-property.c +0 -0
  256. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-property.h +0 -0
  257. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-repository.c +0 -0
  258. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-repository.h +0 -0
  259. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-resulttuple.c +0 -0
  260. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-resulttuple.h +0 -0
  261. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-signal-closure.c +0 -0
  262. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-signal-closure.h +0 -0
  263. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-source.c +0 -0
  264. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-source.h +0 -0
  265. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-struct-marshal.c +0 -0
  266. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-struct-marshal.h +0 -0
  267. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-struct.c +0 -0
  268. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-struct.h +0 -0
  269. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-type.c +0 -0
  270. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-type.h +0 -0
  271. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-util.c +0 -0
  272. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-util.h +0 -0
  273. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-value.c +0 -0
  274. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygi-value.h +0 -0
  275. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pyginterface.c +0 -0
  276. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pyginterface.h +0 -0
  277. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygobject-internal.h +0 -0
  278. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygobject-object.c +0 -0
  279. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygobject-object.h +0 -0
  280. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygobject.h +0 -0
  281. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygoptioncontext.c +0 -0
  282. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygoptioncontext.h +0 -0
  283. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygoptiongroup.c +0 -0
  284. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygoptiongroup.h +0 -0
  285. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygpointer.c +0 -0
  286. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygpointer.h +0 -0
  287. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygspawn.c +0 -0
  288. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygspawn.h +0 -0
  289. {pygobject-3.54.2 → pygobject-3.54.5}/gi/pygtkcompat.py +0 -0
  290. {pygobject-3.54.2 → pygobject-3.54.5}/gi/repository/__init__.py +0 -0
  291. {pygobject-3.54.2 → pygobject-3.54.5}/gi/repository/meson.build +0 -0
  292. {pygobject-3.54.2 → pygobject-3.54.5}/gi/types.py +0 -0
  293. {pygobject-3.54.2 → pygobject-3.54.5}/meson_options.txt +0 -0
  294. {pygobject-3.54.2 → pygobject-3.54.5}/pygobject-3.0.pc.in +0 -0
  295. {pygobject-3.54.2 → pygobject-3.54.5}/pygobject.doap +0 -0
  296. {pygobject-3.54.2 → pygobject-3.54.5}/pygtkcompat/__init__.py +0 -0
  297. {pygobject-3.54.2 → pygobject-3.54.5}/pygtkcompat/meson.build +0 -0
  298. {pygobject-3.54.2 → pygobject-3.54.5}/pygtkcompat/pygtkcompat.py +0 -0
  299. {pygobject-3.54.2 → pygobject-3.54.5}/pyproject.toml +0 -0
  300. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/glib.wrap +0 -0
  301. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/.clang-format +0 -0
  302. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/.editorconfig +0 -0
  303. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/.gitlab-ci.yml +0 -0
  304. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/.reuse/dep5 +0 -0
  305. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/LICENSES/CC0-1.0.txt +0 -0
  306. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/LICENSES/GPL-2.0-or-later.txt +0 -0
  307. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/LICENSES/LGPL-2.0-or-later.txt +0 -0
  308. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/LICENSES/LGPL-2.1-or-later.txt +0 -0
  309. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/LICENSES/MIT.txt +0 -0
  310. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/README.md +0 -0
  311. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/annotation.c +0 -0
  312. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/annotation.h +0 -0
  313. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/docs/provenance.txt +0 -0
  314. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/drawable.c +0 -0
  315. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/drawable.h +0 -0
  316. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/foo.c +0 -0
  317. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/foo.h +0 -0
  318. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/gimarshallingtests.c +0 -0
  319. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/gimarshallingtests.h +0 -0
  320. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/gimarshallingtestsextra.c +0 -0
  321. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/gimarshallingtestsextra.h +0 -0
  322. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/gitestmacros.h +0 -0
  323. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/gobject-introspection-tests.doap +0 -0
  324. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/meson.build +0 -0
  325. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/meson_options.txt +0 -0
  326. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/regress-unix.c +0 -0
  327. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/regress-unix.h +0 -0
  328. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/regress.c +0 -0
  329. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/regress.h +0 -0
  330. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/regressextra.c +0 -0
  331. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/regressextra.h +0 -0
  332. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/tools/iwyu.imp +0 -0
  333. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/tools/run_clang_format.sh +0 -0
  334. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/tools/run_iwyu.sh +0 -0
  335. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/utility.c +0 -0
  336. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/utility.h +0 -0
  337. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/warnlib.c +0 -0
  338. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests/warnlib.h +0 -0
  339. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection-tests.wrap +0 -0
  340. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/gobject-introspection.wrap +0 -0
  341. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/libffi.wrap +0 -0
  342. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/packagefiles/pythoncapi-compat-dist.py +0 -0
  343. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/packagefiles/pythoncapi-compat-meson.diff +0 -0
  344. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pycairo.wrap +0 -0
  345. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/.github/workflows/build.yml +0 -0
  346. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/.gitignore +0 -0
  347. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/.meson-subproject-wrap-hash.txt +0 -0
  348. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/.readthedocs.yaml +0 -0
  349. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/CODE_OF_CONDUCT.md +0 -0
  350. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/COPYING +0 -0
  351. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/README.rst +0 -0
  352. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/docs/Makefile +0 -0
  353. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/docs/api.rst +0 -0
  354. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/docs/changelog.rst +0 -0
  355. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/docs/conf.py +0 -0
  356. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/docs/index.rst +0 -0
  357. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/docs/links.rst +0 -0
  358. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/docs/make.bat +0 -0
  359. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/docs/tests.rst +0 -0
  360. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/docs/upgrade.rst +0 -0
  361. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/docs/users.rst +0 -0
  362. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/meson.build +0 -0
  363. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/pythoncapi_compat.h +0 -0
  364. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/runtests.py +0 -0
  365. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/tests/__init__.py +0 -0
  366. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/tests/setup.py +0 -0
  367. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/tests/test_pythoncapi_compat.py +0 -0
  368. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/tests/test_pythoncapi_compat_cext.c +0 -0
  369. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/tests/test_pythoncapi_compat_cppext.cpp +0 -0
  370. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/tests/test_upgrade_pythoncapi.py +0 -0
  371. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/tests/utils.py +0 -0
  372. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat/upgrade_pythoncapi.py +0 -0
  373. {pygobject-3.54.2 → pygobject-3.54.5}/subprojects/pythoncapi-compat.wrap +0 -0
  374. {pygobject-3.54.2 → pygobject-3.54.5}/tests/conftest.py +0 -0
  375. {pygobject-3.54.2 → pygobject-3.54.5}/tests/gi/overrides/Regress.py +0 -0
  376. {pygobject-3.54.2 → pygobject-3.54.5}/tests/gi/overrides/__init__.py +0 -0
  377. {pygobject-3.54.2 → pygobject-3.54.5}/tests/helper.py +0 -0
  378. {pygobject-3.54.2 → pygobject-3.54.5}/tests/meson.build +0 -0
  379. {pygobject-3.54.2 → pygobject-3.54.5}/tests/org.gnome.test.gschema.xml +0 -0
  380. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test-floating.c +0 -0
  381. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test-floating.h +0 -0
  382. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test-thread.c +0 -0
  383. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test-thread.h +0 -0
  384. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test-unknown.c +0 -0
  385. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test-unknown.h +0 -0
  386. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_async.py +0 -0
  387. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_atoms.py +0 -0
  388. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_cairo.py +0 -0
  389. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_callback.py +0 -0
  390. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_docstring.py +0 -0
  391. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_enum.py +0 -0
  392. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_error.py +0 -0
  393. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_events.py +0 -0
  394. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_everything.py +0 -0
  395. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_fields.py +0 -0
  396. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_fundamental.py +0 -0
  397. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_gdbus.py +0 -0
  398. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_gi.py +0 -0
  399. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_glib.py +0 -0
  400. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_gobject.py +0 -0
  401. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_gtk_template.py +0 -0
  402. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_gtype.py +0 -0
  403. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_import_machinery.py +0 -0
  404. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_interface.py +0 -0
  405. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_internal_api.py +0 -0
  406. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_iochannel.py +0 -0
  407. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_mainloop.py +0 -0
  408. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_object_marshaling.py +0 -0
  409. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_option.py +0 -0
  410. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_ossig.py +0 -0
  411. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_overrides_gdk.py +0 -0
  412. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_overrides_gdkpixbuf.py +0 -0
  413. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_overrides_gio.py +0 -0
  414. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_overrides_glib.py +0 -0
  415. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_overrides_gobject.py +0 -0
  416. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_overrides_gtk.py +0 -0
  417. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_overrides_pango.py +0 -0
  418. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_properties.py +0 -0
  419. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_pycapi.py +0 -0
  420. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_pygtkcompat.py +0 -0
  421. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_repository.py +0 -0
  422. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_resulttuple.py +0 -0
  423. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_signal.py +0 -0
  424. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_signature.py +0 -0
  425. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_source.py +0 -0
  426. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_subprocess.py +0 -0
  427. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_thread.py +0 -0
  428. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_typeclass.py +0 -0
  429. {pygobject-3.54.2 → pygobject-3.54.5}/tests/test_unknown.py +0 -0
  430. {pygobject-3.54.2 → pygobject-3.54.5}/tests/testhelpermodule.c +0 -0
  431. {pygobject-3.54.2 → pygobject-3.54.5}/tests/valgrind.supp +0 -0
  432. {pygobject-3.54.2 → pygobject-3.54.5}/tools/mkmetadata.py +0 -0
  433. {pygobject-3.54.2 → pygobject-3.54.5}/tools/pygi-convert.sh +0 -0
@@ -1,3 +1,13 @@
1
+ 3.54.5 - 2025-10-18
2
+ -------------------
3
+
4
+ * Backport: GLib 2.86/GioUnix compatibility :mr:`461`
5
+
6
+ 3.54.3 - 2025-09-21
7
+ -------------------
8
+
9
+ * Do not skip symbols both in Gio and in platform specific :mr:`452`
10
+
1
11
  3.54.2 - 2025-09-13
2
12
  -------------------
3
13
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyGObject
3
- Version: 3.54.2
3
+ Version: 3.54.5
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>
@@ -634,12 +634,7 @@ if GioPlatform:
634
634
  platform_name_lower = platform_name.lower()
635
635
 
636
636
  for attr in dir(GioPlatform):
637
- if (
638
- attr.startswith("_")
639
- or attr in __all__
640
- or attr in gio_globals
641
- or hasattr(Gio, attr)
642
- ):
637
+ if attr.startswith("_"):
643
638
  continue
644
639
 
645
640
  original_attr = getattr(GioPlatform, attr)
@@ -657,6 +652,27 @@ if GioPlatform:
657
652
  except AttributeError:
658
653
  pass
659
654
 
655
+ if wrapper_attr == attr and hasattr(Gio, wrapper_attr):
656
+ try:
657
+ name = original_attr.__name__[0]
658
+ except (AttributeError, IndexError):
659
+ name = original_attr
660
+
661
+ # Fallback if we don't have the original name.
662
+ if name.islower():
663
+ wrapper_attr = f"{platform_name_lower}_{attr}"
664
+ elif "_" in name:
665
+ wrapper_attr = f"{platform_name.upper()}_{attr}"
666
+ elif name:
667
+ wrapper_attr = f"{platform_name}{attr}"
668
+
669
+ if (
670
+ wrapper_attr in __all__
671
+ or wrapper_attr in gio_globals
672
+ or hasattr(Gio, wrapper_attr)
673
+ ):
674
+ continue
675
+
660
676
  gio_globals[wrapper_attr] = original_attr
661
677
  deprecated_attr(
662
678
  Gio._namespace, wrapper_attr, f"{GioPlatform._namespace}.{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']
@@ -1,7 +1,7 @@
1
1
  project(
2
2
  'pygobject',
3
3
  'c',
4
- version : '3.54.2',
4
+ version : '3.54.5',
5
5
  meson_version : '>= 0.64.0',
6
6
  default_options : ['warning_level=1', 'buildtype=debugoptimized']
7
7
  )
@@ -61,21 +61,26 @@ class TestGioPlatform(unittest.TestCase):
61
61
  Version=1.0
62
62
  Type=Application
63
63
  Name=Some Application
64
- Exec={GLib.find_program_in_path("sh")}
64
+ Exec={GLib.find_program_in_path("true")} %u
65
+ Actions=act;
66
+ Categories=Development;Profiling;
67
+ GenericName=Test
68
+ Hidden=true
69
+ Keywords=test;example;
70
+ NoDisplay=true
71
+ OnlyShowIn=GNOME;
72
+ StartupWMClass=testTest
73
+ X-Bool=true
74
+
75
+ [Desktop Action act]
76
+ Name=Take action!
77
+ Exec={GLib.find_program_in_path("true")} action
65
78
  """
66
79
 
67
80
  def setUp(self):
68
81
  super().setUp()
69
82
 
70
- required_glib = GLib.MAJOR_VERSION > 2 or (
71
- GLib.MAJOR_VERSION == 2
72
- and (
73
- GLib.MINOR_VERSION > 85
74
- or (GLib.MINOR_VERSION == 85 and GLib.MICRO_VERSION >= 5)
75
- )
76
- )
77
-
78
- if not required_glib:
83
+ if (GLib.MAJOR_VERSION, GLib.MINOR_VERSION) < (2, 80):
79
84
  self.skipTest("Installed Gio is not new enough for this test")
80
85
 
81
86
  if GioUnix:
@@ -86,49 +91,146 @@ Exec={GLib.find_program_in_path("sh")}
86
91
  GLib.KeyFileFlags.NONE,
87
92
  )
88
93
 
89
- @unittest.skipIf(GioUnix is None, "Not supported")
94
+ def assert_expected_desktop_app_info(self, app_info):
95
+ # All functionality is available as ordinary methods, without
96
+ # needing extraneous arguments
97
+ # https://gitlab.gnome.org/GNOME/pygobject/-/issues/719
98
+ self.assertEqual(app_info.get_action_name("act"), "Take action!")
99
+ self.assertEqual(app_info.get_boolean("X-Bool"), True)
100
+ self.assertEqual(app_info.get_categories(), "Development;Profiling;")
101
+ self.assertIsNone(app_info.get_filename())
102
+ self.assertEqual(app_info.get_generic_name(), "Test")
103
+ self.assertEqual(app_info.get_is_hidden(), True)
104
+ self.assertEqual(app_info.get_keywords(), ["test", "example"])
105
+ self.assertEqual(app_info.get_locale_string("Keywords"), "test;example;")
106
+ self.assertEqual(app_info.get_nodisplay(), True)
107
+ self.assertEqual(app_info.get_show_in("GNOME"), True)
108
+ self.assertEqual(app_info.get_show_in("KDE"), False)
109
+ # get_show_in() can be called without an argument, which means NULL
110
+ self.assertIn(app_info.get_show_in(), [True, False])
111
+ self.assertIn(app_info.get_show_in(None), [True, False])
112
+ self.assertEqual(app_info.get_startup_wm_class(), "testTest")
113
+ self.assertEqual(app_info.get_string("StartupWMClass"), "testTest")
114
+ self.assertEqual(app_info.get_string_list("Keywords"), ["test", "example"])
115
+ self.assertEqual(app_info.has_key("Keywords"), True)
116
+ self.assertEqual(app_info.list_actions(), ["act"])
117
+
118
+ # All functionality is also available via unbound methods:
119
+ # for example Cinnamon relies on this as of October 2025
120
+ self.assertEqual(
121
+ GioUnix.DesktopAppInfo.get_action_name(app_info, "act"), "Take action!"
122
+ )
123
+ self.assertEqual(
124
+ Gio.DesktopAppInfo.get_action_name(app_info, "act"), "Take action!"
125
+ )
126
+
127
+ # Exercise methods that actually launch something
128
+ app_info.launch_action("act")
129
+ app_info.launch_action("act", None)
130
+ self.assertTrue(
131
+ app_info.launch_uris_as_manager(
132
+ ["about:blank"],
133
+ None,
134
+ GLib.SpawnFlags.DEFAULT,
135
+ None,
136
+ None,
137
+ None,
138
+ None,
139
+ ),
140
+ )
141
+ self.assertTrue(
142
+ app_info.launch_uris_as_manager(
143
+ ["about:blank"],
144
+ None,
145
+ GLib.SpawnFlags.DEFAULT,
146
+ ),
147
+ )
148
+ self.assertTrue(
149
+ app_info.launch_uris_as_manager_with_fds(
150
+ ["about:blank"],
151
+ None,
152
+ GLib.SpawnFlags.DEFAULT,
153
+ None,
154
+ None,
155
+ None,
156
+ None,
157
+ -1,
158
+ -1,
159
+ -1,
160
+ ),
161
+ )
162
+
163
+ @unittest.skipIf(
164
+ GioUnix is None or "DesktopAppInfo" not in dir(GioUnix), "Not supported"
165
+ )
90
166
  def test_desktop_app_info_can_be_created_from_gio_unix(self):
91
167
  app_info = GioUnix.DesktopAppInfo.new_from_keyfile(self.key_file)
92
168
  self.assertIsNotNone(app_info)
93
169
  self.assertIsInstance(app_info, GioUnix.DesktopAppInfo)
94
170
  self.assertIsInstance(app_info, Gio.AppInfo)
171
+ self.assert_expected_desktop_app_info(app_info)
95
172
 
96
- @unittest.skipIf(GioUnix is None, "Not supported")
173
+ @unittest.skipIf(
174
+ GioUnix is None or "DesktopAppInfo" not in dir(GioUnix), "Not supported"
175
+ )
97
176
  def test_desktop_app_info_can_be_created_from_gio(self):
98
177
  with warnings.catch_warnings(record=True) as warn:
99
178
  warnings.simplefilter("always")
100
179
  app_info = Gio.DesktopAppInfo.new_from_keyfile(self.key_file)
101
180
 
102
- self.assertEqual(len(warn), 1)
103
- self.assertTrue(issubclass(warn[0].category, PyGIDeprecationWarning))
104
- self.assertEqual(
105
- str(warn[0].message),
106
- "Gio.DesktopAppInfo is deprecated; "
107
- + "use GioUnix.DesktopAppInfo instead",
108
- )
181
+ if (GLib.MAJOR_VERSION, GLib.MINOR_VERSION) >= (2, 86):
182
+ self.assertEqual(len(warn), 1)
183
+ self.assertTrue(issubclass(warn[0].category, PyGIDeprecationWarning))
184
+ self.assertEqual(
185
+ str(warn[0].message),
186
+ "Gio.DesktopAppInfo is deprecated; "
187
+ + "use GioUnix.DesktopAppInfo instead",
188
+ )
109
189
 
110
190
  self.assertIsNotNone(app_info)
111
191
  self.assertIsInstance(app_info, Gio.DesktopAppInfo)
112
192
  self.assertIsInstance(app_info, Gio.AppInfo)
113
193
 
114
- @unittest.skipIf(GioUnix is None, "Not supported")
194
+ @unittest.skipIf(
195
+ GioUnix is None or "FDMessage" not in dir(GioUnix), "Not supported"
196
+ )
197
+ def test_fd_message(self):
198
+ message = GioUnix.FDMessage.new()
199
+ self.assertIsNotNone(message)
200
+
201
+ with open("/dev/null", "r+b") as devnull:
202
+ self.assertTrue(message.append_fd(devnull.fileno()))
203
+ self.assertIsNotNone(message.get_fd_list())
204
+ fds = message.steal_fds()
205
+ self.assertEqual(len(fds), 1)
206
+ os.close(fds[0])
207
+
208
+ @unittest.skipIf(
209
+ GioUnix is None or "DesktopAppInfo" not in dir(GioUnix), "Not supported"
210
+ )
115
211
  def test_gio_unix_desktop_app_info_provides_platform_independent_functions(self):
116
212
  app_info = GioUnix.DesktopAppInfo.new_from_keyfile(self.key_file)
117
213
  self.assertEqual(app_info.get_name(), "Some Application")
118
214
 
119
- @unittest.skipIf(GioUnix is None, "Not supported")
215
+ @unittest.skipIf(
216
+ GioUnix is None or "DesktopAppInfo" not in dir(GioUnix), "Not supported"
217
+ )
120
218
  @ignore_gi_deprecation_warnings
121
219
  def test_gio_desktop_app_info_provides_platform_independent_functions(self):
122
220
  app_info = Gio.DesktopAppInfo.new_from_keyfile(self.key_file)
123
221
  self.assertEqual(app_info.get_name(), "Some Application")
124
222
 
125
- @unittest.skipIf(GioUnix is None, "Not supported")
223
+ @unittest.skipIf(
224
+ GioUnix is None or "DesktopAppInfo" not in dir(GioUnix), "Not supported"
225
+ )
126
226
  def test_gio_unix_desktop_app_info_provides_unix_only_functions(self):
127
227
  app_info = GioUnix.DesktopAppInfo.new_from_keyfile(self.key_file)
128
228
  self.assertTrue(app_info.has_key("Name"))
129
229
  self.assertEqual(app_info.get_string("Name"), "Some Application")
130
230
 
131
- @unittest.skipIf(GioUnix is None, "Not supported")
231
+ @unittest.skipIf(
232
+ GioUnix is None or "DesktopAppInfo" not in dir(GioUnix), "Not supported"
233
+ )
132
234
  @ignore_gi_deprecation_warnings
133
235
  def test_gio_desktop_app_info_provides_unix_only_functions(self):
134
236
  app_info = Gio.DesktopAppInfo.new_from_keyfile(self.key_file)
@@ -141,16 +243,53 @@ Exec={GLib.find_program_in_path("sh")}
141
243
  warnings.simplefilter("always")
142
244
  mount_points = Gio.unix_mount_points_get()
143
245
 
144
- self.assertEqual(len(warn), 1)
145
- self.assertTrue(issubclass(warn[0].category, PyGIDeprecationWarning))
146
- self.assertEqual(
147
- str(warn[0].message),
148
- "Gio.unix_mount_points_get is deprecated; "
149
- + "use GioUnix.mount_points_get instead",
150
- )
246
+ if (GLib.MAJOR_VERSION, GLib.MINOR_VERSION) >= (2, 86):
247
+ self.assertEqual(len(warn), 1)
248
+ self.assertTrue(issubclass(warn[0].category, PyGIDeprecationWarning))
249
+ self.assertEqual(
250
+ str(warn[0].message),
251
+ "Gio.unix_mount_points_get is deprecated; "
252
+ + "use GioUnix.mount_points_get instead",
253
+ )
151
254
 
152
255
  self.assertIsNotNone(mount_points)
153
- self.assertEqual(GioUnix.mount_points_get, Gio.unix_mount_points_get)
256
+
257
+ if (GLib.MAJOR_VERSION, GLib.MINOR_VERSION) >= (2, 86):
258
+ self.assertEqual(GioUnix.mount_points_get, Gio.unix_mount_points_get)
259
+
260
+ def assert_expected_unix_stream_type(self, stream_type):
261
+ with open("/dev/null", "r+b") as devnull:
262
+ stream = stream_type.new(devnull.fileno(), False)
263
+ self.assertIsNotNone(stream)
264
+ self.assertEqual(stream.get_close_fd(), False)
265
+ stream.set_close_fd(False)
266
+ self.assertNotEqual(stream.get_fd(), -1)
267
+
268
+ @unittest.skipIf(GioUnix is None, "Not supported")
269
+ def test_deprecated_unix_type_can_be_used_if_equal_exists_in_gio(self):
270
+ with warnings.catch_warnings(record=True) as warn:
271
+ warnings.simplefilter("always")
272
+
273
+ input_stream = Gio.UnixInputStream
274
+
275
+ if (GLib.MAJOR_VERSION, GLib.MINOR_VERSION) >= (2, 86):
276
+ self.assertEqual(len(warn), 1)
277
+ self.assertTrue(issubclass(warn[0].category, PyGIDeprecationWarning))
278
+ self.assertEqual(
279
+ str(warn[0].message),
280
+ "Gio.UnixInputStream is deprecated; "
281
+ + "use GioUnix.InputStream instead",
282
+ )
283
+
284
+ self.assertIsNotNone(input_stream)
285
+ self.assertEqual(Gio.UnixInputStream, GioUnix.InputStream)
286
+ self.assertNotEqual(Gio.InputStream, GioUnix.InputStream)
287
+
288
+ self.assert_expected_unix_stream_type(Gio.UnixInputStream)
289
+ self.assert_expected_unix_stream_type(GioUnix.InputStream)
290
+
291
+ self.assert_expected_unix_stream_type(Gio.UnixOutputStream)
292
+ self.assert_expected_unix_stream_type(GioUnix.OutputStream)
154
293
 
155
294
  @unittest.skipIf(GioUnix is None, "Not supported")
156
295
  def test_deprecated_unix_class_can_be_used_from_gio(self):
@@ -158,17 +297,41 @@ Exec={GLib.find_program_in_path("sh")}
158
297
  warnings.simplefilter("always")
159
298
  monitor = Gio.UnixMountMonitor.get()
160
299
 
161
- self.assertEqual(len(warn), 1)
162
- self.assertTrue(issubclass(warn[0].category, PyGIDeprecationWarning))
163
- self.assertEqual(
164
- str(warn[0].message),
165
- "Gio.UnixMountMonitor is deprecated; "
166
- + "use GioUnix.MountMonitor instead",
167
- )
300
+ if (GLib.MAJOR_VERSION, GLib.MINOR_VERSION) >= (2, 86):
301
+ self.assertEqual(len(warn), 1)
302
+ self.assertTrue(issubclass(warn[0].category, PyGIDeprecationWarning))
303
+ self.assertEqual(
304
+ str(warn[0].message),
305
+ "Gio.UnixMountMonitor is deprecated; "
306
+ + "use GioUnix.MountMonitor instead",
307
+ )
168
308
 
169
309
  self.assertIsNotNone(monitor)
170
310
  self.assertEqual(Gio.UnixMountMonitor.get, GioUnix.MountMonitor.get)
171
311
 
312
+ @unittest.skipIf(GioUnix is None, "Not supported")
313
+ def test_deprecated_unix_gobject_class_can_be_used_from_gio(self):
314
+ with warnings.catch_warnings(record=True) as warn:
315
+ warnings.simplefilter("always")
316
+
317
+ input_stream_class = Gio.UnixInputStreamClass
318
+
319
+ if (GLib.MAJOR_VERSION, GLib.MINOR_VERSION) >= (2, 86):
320
+ self.assertEqual(len(warn), 1)
321
+ self.assertTrue(issubclass(warn[0].category, PyGIDeprecationWarning))
322
+ self.assertEqual(
323
+ str(warn[0].message),
324
+ "Gio.UnixInputStreamClass is deprecated; "
325
+ + "use GioUnix.InputStreamClass instead",
326
+ )
327
+
328
+ self.assertIsNotNone(input_stream_class)
329
+
330
+ if (GLib.MAJOR_VERSION, GLib.MINOR_VERSION) >= (2, 86):
331
+ self.assertEqual(Gio.UnixInputStreamClass, GioUnix.InputStreamClass)
332
+
333
+ self.assertNotEqual(Gio.InputStreamClass, GioUnix.InputStreamClass)
334
+
172
335
 
173
336
  class TestGSettings(unittest.TestCase):
174
337
  def setUp(self):
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes