PyGObject 3.49.0.dev0__tar.gz → 3.51.0.dev0__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 (374) hide show
  1. pygobject-3.51.0.dev0/.clang-format +198 -0
  2. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/.gitignore +3 -2
  3. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/.gitlab-ci/Dockerfile +17 -14
  4. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/.gitlab-ci/build-sdists.sh +8 -5
  5. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/.gitlab-ci/coverage-docker.sh +6 -2
  6. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/.gitlab-ci/lcovrc +2 -0
  7. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/.gitlab-ci/run-docker.sh +1 -1
  8. pygobject-3.51.0.dev0/.gitlab-ci/test-docker.sh +48 -0
  9. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/.gitlab-ci/test-flatpak.sh +4 -2
  10. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/.gitlab-ci/test-msys2.sh +11 -6
  11. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/.gitlab-ci.yml +67 -89
  12. pygobject-3.51.0.dev0/.pre-commit-config.yaml +12 -0
  13. pygobject-3.51.0.dev0/METADATA.in +20 -0
  14. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/NEWS +30 -1
  15. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/PKG-INFO +5 -5
  16. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/README.rst +1 -1
  17. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/conf.py +2 -5
  18. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/devguide/dev_environ.rst +29 -5
  19. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/devguide/index.rst +3 -0
  20. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/devguide/override_guidelines.rst +0 -1
  21. pygobject-3.51.0.dev0/docs/devguide/overview.rst +13 -0
  22. {pygobject-3.49.0.dev0/docs → pygobject-3.51.0.dev0/docs/devguide}/packagingguide.rst +1 -1
  23. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/getting_started.rst +8 -1
  24. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/api/properties.rst +1 -1
  25. pygobject-3.51.0.dev0/docs/guide/asynchronous.rst +171 -0
  26. pygobject-3.51.0.dev0/docs/guide/download_asyncio.py +93 -0
  27. pygobject-3.51.0.dev0/docs/guide/download_callback.py +90 -0
  28. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/imports.rst +17 -0
  29. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/index.rst +1 -0
  30. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/porting.rst +6 -3
  31. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/sysdeps.rst +5 -0
  32. pygobject-3.51.0.dev0/docs/guide/threading.rst +149 -0
  33. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/index.rst +12 -6
  34. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gobject/subclassing.rst +9 -9
  35. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/application.rst +2 -2
  36. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/dropdown.rst +1 -5
  37. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/__init__.py +29 -0
  38. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/_option.py +6 -3
  39. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/_ossighelper.py +6 -5
  40. pygobject-3.51.0.dev0/gi/_signature.py +186 -0
  41. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/docstring.py +6 -6
  42. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/events.py +161 -12
  43. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/gimodule.c +103 -327
  44. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/importer.py +1 -1
  45. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/meson.build +5 -3
  46. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/module.py +8 -32
  47. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/overrides/GLib.py +7 -9
  48. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/overrides/GObject.py +3 -15
  49. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/overrides/Gdk.py +34 -31
  50. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/overrides/GdkPixbuf.py +2 -2
  51. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/overrides/Gio.py +50 -30
  52. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/overrides/Gtk.py +7 -5
  53. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/overrides/__init__.py +30 -44
  54. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/overrides/meson.build +0 -1
  55. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygboxed.c +4 -6
  56. pygobject-3.51.0.dev0/gi/pygenum.c +403 -0
  57. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygenum.h +15 -10
  58. pygobject-3.51.0.dev0/gi/pygflags.c +435 -0
  59. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygflags.h +18 -17
  60. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-argument.c +207 -279
  61. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-argument.h +2 -4
  62. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-array.c +72 -84
  63. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-array.h +1 -1
  64. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-async.c +47 -45
  65. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-async.h +1 -1
  66. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-basictype.c +9 -8
  67. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-basictype.h +1 -1
  68. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-boxed.c +19 -22
  69. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-boxed.h +3 -2
  70. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-cache.c +175 -168
  71. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-cache.h +35 -21
  72. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-ccallback.c +14 -12
  73. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-ccallback.h +5 -3
  74. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-closure.c +81 -105
  75. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-closure.h +11 -3
  76. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-enum-marshal.c +38 -68
  77. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-enum-marshal.h +3 -3
  78. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-error.c +4 -4
  79. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-error.h +1 -1
  80. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-foreign-api.h +4 -4
  81. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-foreign-cairo.c +19 -20
  82. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-foreign.c +10 -9
  83. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-foreign.h +5 -4
  84. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-fundamental.c +15 -14
  85. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-fundamental.h +5 -5
  86. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-hashtable.c +8 -6
  87. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-hashtable.h +1 -1
  88. pygobject-3.51.0.dev0/gi/pygi-info.c +2401 -0
  89. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-info.h +7 -17
  90. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-invoke-state-struct.h +2 -3
  91. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-invoke.c +138 -166
  92. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-invoke.h +7 -9
  93. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-list.c +6 -4
  94. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-list.h +1 -1
  95. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-marshal-cleanup.c +5 -5
  96. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-object.c +6 -6
  97. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-object.h +2 -2
  98. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-property.c +59 -67
  99. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-property.h +2 -2
  100. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-repository.c +113 -61
  101. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-repository.h +4 -2
  102. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-resulttuple.c +3 -2
  103. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-signal-closure.c +26 -25
  104. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-signal-closure.h +3 -2
  105. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-source.c +8 -6
  106. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-struct-marshal.c +38 -41
  107. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-struct-marshal.h +4 -4
  108. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-struct.c +13 -13
  109. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-struct.h +1 -1
  110. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-type.c +27 -31
  111. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-type.h +3 -2
  112. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-util.c +4 -4
  113. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-util.h +1 -1
  114. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-value.c +60 -71
  115. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-value.h +2 -2
  116. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pyginterface.c +3 -3
  117. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygobject-object.c +35 -48
  118. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygobject-object.h +2 -1
  119. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygobject.h +1 -2
  120. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygoptioncontext.c +14 -20
  121. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygoptiongroup.c +9 -11
  122. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygoptiongroup.h +1 -1
  123. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygpointer.c +6 -8
  124. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygpointer.h +1 -1
  125. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygspawn.c +10 -14
  126. pygobject-3.51.0.dev0/gi/pygtkcompat.py +12 -0
  127. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/types.py +7 -1
  128. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/meson.build +17 -8
  129. pygobject-3.51.0.dev0/pygtkcompat/__init__.py +6 -0
  130. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/pygtkcompat/meson.build +0 -1
  131. pygobject-3.51.0.dev0/pygtkcompat/pygtkcompat.py +30 -0
  132. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/pyproject.toml +9 -5
  133. pygobject-3.51.0.dev0/subprojects/gobject-introspection-tests.wrap +6 -0
  134. pygobject-3.51.0.dev0/subprojects/packagefiles/pythoncapi-compat-meson.diff +12 -0
  135. pygobject-3.51.0.dev0/subprojects/pythoncapi-compat.wrap +6 -0
  136. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/conftest.py +17 -7
  137. pygobject-3.51.0.dev0/tests/meson.build +47 -0
  138. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test-thread.c +1 -1
  139. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_docstring.py +0 -3
  140. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_events.py +89 -1
  141. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_everything.py +3 -8
  142. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_gi.py +72 -90
  143. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_gobject.py +6 -14
  144. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_gtk_template.py +1 -1
  145. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_mainloop.py +7 -2
  146. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_object_marshaling.py +30 -2
  147. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_option.py +34 -30
  148. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_overrides_gdk.py +15 -15
  149. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_overrides_gdkpixbuf.py +2 -4
  150. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_properties.py +6 -0
  151. pygobject-3.51.0.dev0/tests/test_pygtkcompat.py +11 -0
  152. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_repository.py +9 -35
  153. pygobject-3.51.0.dev0/tests/test_signature.py +291 -0
  154. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/testhelpermodule.c +11 -15
  155. pygobject-3.51.0.dev0/tools/mkmetadata.py +20 -0
  156. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tools/pygi-convert.sh +5 -5
  157. pygobject-3.49.0.dev0/.gitlab-ci/Dockerfile.old +0 -40
  158. pygobject-3.49.0.dev0/.gitlab-ci/run-docker-old.sh +0 -11
  159. pygobject-3.49.0.dev0/.gitlab-ci/test-docker-old.sh +0 -24
  160. pygobject-3.49.0.dev0/.gitlab-ci/test-docker.sh +0 -52
  161. pygobject-3.49.0.dev0/METADATA.in +0 -21
  162. pygobject-3.49.0.dev0/docs/devguide/overview.rst +0 -16
  163. pygobject-3.49.0.dev0/docs/further.rst +0 -10
  164. pygobject-3.49.0.dev0/docs/guide/threading.rst +0 -296
  165. pygobject-3.49.0.dev0/gi/overrides/keysyms.py +0 -53
  166. pygobject-3.49.0.dev0/gi/pygenum.c +0 -408
  167. pygobject-3.49.0.dev0/gi/pygflags.c +0 -528
  168. pygobject-3.49.0.dev0/gi/pygi-info.c +0 -2551
  169. pygobject-3.49.0.dev0/gi/pygtkcompat.py +0 -26
  170. pygobject-3.49.0.dev0/pygtkcompat/__init__.py +0 -20
  171. pygobject-3.49.0.dev0/pygtkcompat/generictreemodel.py +0 -426
  172. pygobject-3.49.0.dev0/pygtkcompat/pygtkcompat.py +0 -628
  173. pygobject-3.49.0.dev0/subprojects/.gitignore +0 -4
  174. pygobject-3.49.0.dev0/tests/gimarshallingtestsextra.c +0 -195
  175. pygobject-3.49.0.dev0/tests/gimarshallingtestsextra.h +0 -76
  176. pygobject-3.49.0.dev0/tests/meson.build +0 -134
  177. pygobject-3.49.0.dev0/tests/regressextra.c +0 -553
  178. pygobject-3.49.0.dev0/tests/regressextra.h +0 -119
  179. pygobject-3.49.0.dev0/tests/test_generictreemodel.py +0 -435
  180. pygobject-3.49.0.dev0/tests/test_pygtkcompat.py +0 -342
  181. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/.coveragerc +0 -0
  182. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/.flake8 +0 -0
  183. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/.gitlab-ci/README.rst +0 -0
  184. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/.gitlab-ci/fixup-lcov-paths.py +0 -0
  185. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/.gitlab-ci/run-docker-runtime.sh +0 -0
  186. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/.gitlab-ci/set_env.sh +0 -0
  187. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/COPYING +0 -0
  188. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/Makefile +0 -0
  189. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/bugs_repo.rst +0 -0
  190. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/changelog.rst +0 -0
  191. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/contact.rst +0 -0
  192. {pygobject-3.49.0.dev0/docs → pygobject-3.51.0.dev0/docs/devguide}/maintguide.rst +0 -0
  193. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/devguide/style_guide.rst +0 -0
  194. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/extra.css +0 -0
  195. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/api/api.rst +0 -0
  196. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/api/basic_types.rst +0 -0
  197. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/api/error_handling.rst +0 -0
  198. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/api/flags_enums.rst +0 -0
  199. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/api/gobject.rst +0 -0
  200. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/api/index.rst +0 -0
  201. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/api/signals.rst +0 -0
  202. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/api/weakrefs.rst +0 -0
  203. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/cairo_integration.rst +0 -0
  204. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/code/cairo-demo.py +0 -0
  205. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/debug_profile.rst +0 -0
  206. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/deploy.rst +0 -0
  207. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/faq.rst +0 -0
  208. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/flatpaking.rst +0 -0
  209. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/gtk_template.rst +0 -0
  210. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/images/cairo_integration.png +0 -0
  211. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/guide/testing.rst +0 -0
  212. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/icons.rst +0 -0
  213. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/images/LICENSE +0 -0
  214. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/images/favicon.ico +0 -0
  215. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/images/logo.svg +0 -0
  216. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/images/overview-dark.svg +0 -0
  217. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/images/overview.dia +0 -0
  218. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/images/overview.svg +0 -0
  219. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/images/pygobject-small.svg +0 -0
  220. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/images/pygobject.svg +0 -0
  221. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/images/start_linux.png +0 -0
  222. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/images/start_macos.png +0 -0
  223. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/images/start_windows.png +0 -0
  224. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/_static/custom.css +0 -0
  225. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gobject/basics.rst +0 -0
  226. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gobject/examples/listmodel.py +0 -0
  227. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gobject/interfaces.rst +0 -0
  228. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gobject.rst +0 -0
  229. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk3.rst +0 -0
  230. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/basics.rst +0 -0
  231. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/clipboard.rst +0 -0
  232. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/buttons.rst +0 -0
  233. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/check-radio-buttons.rst +0 -0
  234. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/entries.rst +0 -0
  235. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/examples/button.py +0 -0
  236. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/examples/check_radio_buttons.py +0 -0
  237. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/examples/dropdown.py +0 -0
  238. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/examples/entries.py +0 -0
  239. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/examples/linkbutton.py +0 -0
  240. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/examples/spinbutton.py +0 -0
  241. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/examples/switch.py +0 -0
  242. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/examples/togglebutton.py +0 -0
  243. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/images/button.png +0 -0
  244. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/images/check_radio_buttons.png +0 -0
  245. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/images/dropdown.png +0 -0
  246. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/images/entries.png +0 -0
  247. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/images/linkbutton.png +0 -0
  248. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/images/spinbutton.png +0 -0
  249. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/images/switch.png +0 -0
  250. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/images/togglebutton.png +0 -0
  251. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/scale.rst +0 -0
  252. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/spinbutton.rst +0 -0
  253. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls/switch.rst +0 -0
  254. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/controls.rst +0 -0
  255. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/display-widgets/examples/label.py +0 -0
  256. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/display-widgets/examples/picture.py +0 -0
  257. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/display-widgets/examples/progressbar.py +0 -0
  258. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/display-widgets/examples/spinner.py +0 -0
  259. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/display-widgets/examples/spinner_ext.py +0 -0
  260. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/display-widgets/image.rst +0 -0
  261. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/display-widgets/images/label.png +0 -0
  262. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/display-widgets/images/picture.png +0 -0
  263. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/display-widgets/images/progressbar.png +0 -0
  264. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/display-widgets/images/spinner.png +0 -0
  265. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/display-widgets/images/spinner_ext.png +0 -0
  266. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/display-widgets/label.rst +0 -0
  267. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/display-widgets/picture.rst +0 -0
  268. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/display-widgets/progressbar.rst +0 -0
  269. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/display-widgets/spinner.rst +0 -0
  270. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/display-widgets.rst +0 -0
  271. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/drag-and-drop.rst +0 -0
  272. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/examples/application.py +0 -0
  273. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/examples/clipboard.py +0 -0
  274. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/examples/drag_and_drop.py +0 -0
  275. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/examples/extended_example.py +0 -0
  276. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/examples/layout_box.py +0 -0
  277. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/examples/layout_center.py +0 -0
  278. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/examples/layout_flowbox.py +0 -0
  279. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/examples/layout_grid.py +0 -0
  280. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/examples/layout_headerbar.py +0 -0
  281. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/examples/layout_listbox.py +0 -0
  282. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/examples/layout_notebook.py +0 -0
  283. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/examples/layout_stack.py +0 -0
  284. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/examples/popover.py +0 -0
  285. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/examples/popover_menu.py +0 -0
  286. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/examples/simple_example.py +0 -0
  287. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/examples/textview.py +0 -0
  288. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/images/application.png +0 -0
  289. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/images/basic_example.png +0 -0
  290. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/images/clipboard.png +0 -0
  291. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/images/drag_and_drop.png +0 -0
  292. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/images/extended_example.png +0 -0
  293. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/images/layout_box.png +0 -0
  294. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/images/layout_center.png +0 -0
  295. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/images/layout_flowbox.png +0 -0
  296. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/images/layout_grid.png +0 -0
  297. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/images/layout_headerbar.png +0 -0
  298. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/images/layout_listbox.png +0 -0
  299. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/images/layout_notebook.png +0 -0
  300. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/images/layout_stack.png +0 -0
  301. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/images/popover.png +0 -0
  302. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/images/popover_menu.png +0 -0
  303. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/images/textview.png +0 -0
  304. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/introduction.rst +0 -0
  305. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/layout-widgets.rst +0 -0
  306. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/popovers.rst +0 -0
  307. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4/textview.rst +0 -0
  308. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/gtk4.rst +0 -0
  309. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/index.rst +0 -0
  310. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/libadwaita/application.rst +0 -0
  311. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/docs/tutorials/libadwaita.rst +0 -0
  312. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/_constants.py +0 -0
  313. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/_error.py +0 -0
  314. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/_gtktemplate.py +0 -0
  315. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/_propertyhelper.py +0 -0
  316. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/_signalhelper.py +0 -0
  317. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/gimodule.h +0 -0
  318. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/overrides/GIMarshallingTests.py +0 -0
  319. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/overrides/Pango.py +0 -0
  320. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygboxed.h +0 -0
  321. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-marshal-cleanup.h +0 -0
  322. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-resulttuple.h +0 -0
  323. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygi-source.h +0 -0
  324. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pyginterface.h +0 -0
  325. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygobject-internal.h +0 -0
  326. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygoptioncontext.h +0 -0
  327. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/pygspawn.h +0 -0
  328. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/repository/__init__.py +0 -0
  329. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/gi/repository/meson.build +0 -0
  330. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/meson_options.txt +0 -0
  331. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/pygobject-3.0.pc.in +0 -0
  332. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/pygobject.doap +0 -0
  333. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/subprojects/glib.wrap +0 -0
  334. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/subprojects/gobject-introspection.wrap +0 -0
  335. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/subprojects/libffi.wrap +0 -0
  336. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/subprojects/pycairo.wrap +0 -0
  337. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/gi/overrides/Regress.py +0 -0
  338. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/gi/overrides/__init__.py +0 -0
  339. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/helper.py +0 -0
  340. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/org.gnome.test.gschema.xml +0 -0
  341. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test-floating.c +0 -0
  342. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test-floating.h +0 -0
  343. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test-thread.h +0 -0
  344. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test-unknown.c +0 -0
  345. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test-unknown.h +0 -0
  346. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_async.py +0 -0
  347. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_atoms.py +0 -0
  348. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_cairo.py +0 -0
  349. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_error.py +0 -0
  350. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_fields.py +0 -0
  351. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_fundamental.py +0 -0
  352. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_gdbus.py +0 -0
  353. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_gio.py +0 -0
  354. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_glib.py +0 -0
  355. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_gtype.py +0 -0
  356. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_import_machinery.py +0 -0
  357. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_interface.py +0 -0
  358. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_internal_api.py +0 -0
  359. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_iochannel.py +0 -0
  360. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_ossig.py +0 -0
  361. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_overrides_gio.py +0 -0
  362. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_overrides_glib.py +0 -0
  363. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_overrides_gobject.py +0 -0
  364. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_overrides_gtk.py +0 -0
  365. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_overrides_pango.py +0 -0
  366. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_pycapi.py +0 -0
  367. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_resulttuple.py +0 -0
  368. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_signal.py +0 -0
  369. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_source.py +0 -0
  370. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_subprocess.py +0 -0
  371. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_thread.py +0 -0
  372. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_typeclass.py +0 -0
  373. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/test_unknown.py +0 -0
  374. {pygobject-3.49.0.dev0 → pygobject-3.51.0.dev0}/tests/valgrind.supp +0 -0
@@ -0,0 +1,198 @@
1
+ ---
2
+ # Reference: https://clang.llvm.org/docs/ClangFormatStyleOptions.html
3
+ Language: Cpp
4
+ BasedOnStyle: LLVM
5
+ AccessModifierOffset: -4
6
+ AlignAfterOpenBracket: Align
7
+ AlignArrayOfStructures: None
8
+ AlignConsecutiveAssignments: None
9
+ AlignConsecutiveBitFields: AcrossEmptyLines
10
+ AlignConsecutiveDeclarations: None
11
+ AlignConsecutiveMacros: Consecutive
12
+ AlignEscapedNewlines: Right
13
+ AlignOperands: Align
14
+ AlignTrailingComments:
15
+ Kind: Always
16
+ OverEmptyLines: 1
17
+ AllowAllArgumentsOnNextLine: false
18
+ AllowAllParametersOfDeclarationOnNextLine: false
19
+ AllowBreakBeforeNoexceptSpecifier: OnlyWithParen
20
+ AllowShortBlocksOnASingleLine: Never
21
+ AllowShortCaseExpressionOnASingleLine: true
22
+ AllowShortCaseLabelsOnASingleLine: false
23
+ AllowShortCompoundRequirementOnASingleLine: true
24
+ AllowShortEnumsOnASingleLine: true
25
+ AllowShortFunctionsOnASingleLine: All
26
+ AllowShortIfStatementsOnASingleLine: WithoutElse
27
+ AllowShortLambdasOnASingleLine: All
28
+ AllowShortLoopsOnASingleLine: true
29
+ AlwaysBreakAfterDefinitionReturnType: None
30
+ AlwaysBreakBeforeMultilineStrings: true
31
+ BinPackArguments: true
32
+ BinPackParameters: true
33
+ BitFieldColonSpacing: None
34
+ BraceWrapping:
35
+ AfterCaseLabel: false
36
+ AfterClass: false
37
+ AfterControlStatement: Never
38
+ AfterEnum: false
39
+ AfterExternBlock: false
40
+ AfterFunction: true
41
+ AfterNamespace: false
42
+ AfterObjCDeclaration: false
43
+ AfterStruct: false
44
+ AfterUnion: false
45
+ BeforeCatch: true
46
+ BeforeElse: false
47
+ BeforeLambdaBody: false
48
+ BeforeWhile: false
49
+ IndentBraces: false
50
+ SplitEmptyFunction: true
51
+ SplitEmptyRecord: true
52
+ SplitEmptyNamespace: true
53
+ BreakAdjacentStringLiterals: true
54
+ BreakAfterAttributes: Leave
55
+ BreakAfterReturnType: AllDefinitions
56
+ BreakBeforeBinaryOperators: NonAssignment
57
+ BreakBeforeConceptDeclarations: Always
58
+ BreakBeforeBraces: Custom
59
+ BreakBeforeInlineASMColon: OnlyMultiline
60
+ BreakBeforeTernaryOperators: true
61
+ BreakConstructorInitializers: BeforeColon
62
+ BreakFunctionDefinitionParameters: false
63
+ BreakInheritanceList: BeforeColon
64
+ BreakStringLiterals: true
65
+ BreakTemplateDeclarations: Yes
66
+ ColumnLimit: 79
67
+ CompactNamespaces: false
68
+ ConstructorInitializerIndentWidth: 4
69
+ ContinuationIndentWidth: 4
70
+ Cpp11BracedListStyle: true
71
+ DerivePointerAlignment: true
72
+ EmptyLineAfterAccessModifier: Never
73
+ EmptyLineBeforeAccessModifier: LogicalBlock
74
+ FixNamespaceComments: true
75
+ IncludeBlocks: Regroup
76
+ IncludeCategories:
77
+ - Regex: '^[<"]Python\.h[">]$'
78
+ Priority: 2
79
+ CaseSensitive: true
80
+ - Regex: '^<[[:alnum:]_/]+(\.h)?>$'
81
+ Priority: 1
82
+ - Regex: '.*'
83
+ Priority: 3
84
+ IndentAccessModifiers: false
85
+ IndentCaseBlocks: false
86
+ IndentCaseLabels: false
87
+ IndentExternBlock: NoIndent
88
+ IndentGotoLabels: false
89
+ IndentPPDirectives: None
90
+ IndentRequiresClause: true
91
+ IndentWidth: 4
92
+ IndentWrappedFunctionNames: false
93
+ InsertBraces: false
94
+ InsertNewlineAtEOF: true
95
+ InsertTrailingCommas: None
96
+ KeepEmptyLines:
97
+ AtEndOfFile: false
98
+ AtStartOfBlock: false
99
+ AtStartOfFile: false
100
+ LambdaBodyIndentation: Signature
101
+ LineEnding: DeriveLF
102
+ MacroBlockBegin: ''
103
+ MacroBlockEnd: ''
104
+ Macros:
105
+ - >-
106
+ PyObject_HEAD_INIT(type)={
107
+ /* this is not exactly match with PyObject_HEAD_INIT in Python source code
108
+ * but it is enough for clang-format */
109
+ { 0xFFFFFFFF },
110
+ (type)
111
+ },
112
+ - >-
113
+ PyVarObject_HEAD_INIT(type, size)={
114
+ {
115
+ /* manually expand PyObject_HEAD_INIT(type) above
116
+ * because clang-format do not support recursive expansion */
117
+ { 0xFFFFFFFF },
118
+ (type)
119
+ },
120
+ (size)
121
+ },
122
+ - PyMODINIT_FUNC=PyObject *
123
+ - _PyGI_ENUM_BEGIN(name)={
124
+ - _PyGI_ENUM_ADD_VALUE(prefix, name)=(prefix##_##name);
125
+ - _PyGI_ENUM_END=}
126
+ MainIncludeChar: Quote
127
+ MaxEmptyLinesToKeep: 2
128
+ NamespaceIndentation: None
129
+ PackConstructorInitializers: NextLine
130
+ PenaltyBreakAssignment: 20
131
+ PenaltyBreakBeforeFirstCallParameter: 1
132
+ PenaltyBreakComment: 300
133
+ PenaltyBreakFirstLessLess: 120
134
+ PenaltyBreakOpenParenthesis: 0
135
+ PenaltyBreakScopeResolution: 500
136
+ PenaltyBreakString: 1000
137
+ PenaltyBreakTemplateDeclaration: 10
138
+ PenaltyExcessCharacter: 1000000
139
+ PenaltyIndentedWhitespace: 0
140
+ PenaltyReturnTypeOnItsOwnLine: 1000000000
141
+ PointerAlignment: Right
142
+ PPIndentWidth: -1
143
+ QualifierAlignment: Custom
144
+ QualifierOrder:
145
+ [friend, static, inline, const, constexpr, volatile, type, restrict]
146
+ ReferenceAlignment: Right
147
+ ReflowComments: false
148
+ RemoveBracesLLVM: false
149
+ RemoveParentheses: MultipleParentheses
150
+ RemoveSemicolon: true
151
+ RequiresClausePosition: OwnLine
152
+ RequiresExpressionIndentation: OuterScope
153
+ SeparateDefinitionBlocks: Leave
154
+ ShortNamespaceLines: 1
155
+ SkipMacroDefinitionBody: false
156
+ SortIncludes: CaseSensitive
157
+ SortUsingDeclarations: LexicographicNumeric
158
+ SpaceAfterCStyleCast: false
159
+ SpaceAfterLogicalNot: false
160
+ SpaceAfterTemplateKeyword: true
161
+ SpaceAroundPointerQualifiers: Default
162
+ SpaceBeforeAssignmentOperators: true
163
+ SpaceBeforeCaseColon: false
164
+ SpaceBeforeCpp11BracedList: false
165
+ SpaceBeforeCtorInitializerColon: true
166
+ SpaceBeforeInheritanceColon: true
167
+ SpaceBeforeJsonColon: false
168
+ SpaceBeforeParens: Always
169
+ SpaceBeforeRangeBasedForLoopColon: true
170
+ SpaceBeforeSquareBrackets: false
171
+ SpaceInEmptyBlock: false
172
+ SpacesBeforeTrailingComments: 2
173
+ SpacesInAngles: Never
174
+ SpacesInContainerLiterals: true
175
+ SpacesInLineCommentPrefix:
176
+ Minimum: 1
177
+ Maximum: -1
178
+ SpacesInParens: Never
179
+ SpacesInSquareBrackets: false
180
+ Standard: c++11
181
+ StatementAttributeLikeMacros:
182
+ StatementMacros:
183
+ - PyObject_HEAD
184
+ TableGenBreakInsideDAGArg: DontBreak
185
+ TabWidth: 4
186
+ TypeNames:
187
+ # Defined in Include/pytypedefs.h
188
+ - PyModuleDef
189
+ - PyModuleDef_Slot
190
+ - PyMethodDef
191
+ - PyGetSetDef
192
+ - PyMemberDef
193
+ - PyObject
194
+ - PyLongObject
195
+ - PyTypeObject
196
+ - PyThreadState
197
+ - PyInterpreterState
198
+ UseTab: Never
@@ -19,15 +19,16 @@
19
19
  .idea
20
20
  .cache
21
21
  .pytest_cache
22
- /config.h
23
22
  /tmp/*
24
23
  /build/
25
24
  /dist/
26
25
  /pygobject.egg-info/
27
26
  /docs/_build
28
27
  /PyGObject.egg-info/
28
+ /subprojects/*/
29
+ !/subprojects/packagefiles/
29
30
  *.pyd
30
31
  *.dll.a
31
32
  .coverage
32
33
  pdm.lock
33
- .pdm-python
34
+ .pdm-python
@@ -1,4 +1,4 @@
1
- FROM ubuntu:jammy
1
+ FROM ubuntu:noble
2
2
 
3
3
  ENV DEBIAN_FRONTEND=noninteractive
4
4
 
@@ -8,6 +8,8 @@ RUN apt-get update && apt-get install -y \
8
8
  ccache \
9
9
  curl \
10
10
  dbus \
11
+ gir1.2-freedesktop-dev \
12
+ gir1.2-girepository-3.0-dev \
11
13
  gir1.2-gtk-3.0 \
12
14
  gir1.2-gtk-4.0 \
13
15
  git \
@@ -16,7 +18,7 @@ RUN apt-get update && apt-get install -y \
16
18
  libbz2-dev \
17
19
  libcairo2-dev \
18
20
  libffi-dev \
19
- libgirepository1.0-dev \
21
+ libgirepository-2.0-dev \
20
22
  libglib2.0-dev \
21
23
  libgtk-3-0 \
22
24
  libgtk-4-1 \
@@ -34,36 +36,37 @@ RUN apt-get update && apt-get install -y \
34
36
  RUN add-apt-repository -y ppa:pypy/ppa \
35
37
  && apt-get update \
36
38
  && apt-get install -y pypy3 pypy3-dev pypy3-venv \
37
- && rm -rf /var/lib/apt/lists/*
39
+ && rm -rf /var/lib/apt/lists/* \
40
+ && sed -i 's#/build/pypy3-[^/]*/[^/]*#/usr#g' /usr/lib/pypy3.*/_sysconfigdata__x86_64-linux-gnu.py
38
41
 
39
42
  ARG HOST_USER_ID=5555
40
- ENV HOST_USER_ID ${HOST_USER_ID}
41
- RUN useradd -u $HOST_USER_ID -ms /bin/bash user
42
- RUN echo 'user ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
43
+ ENV HOST_USER_ID=${HOST_USER_ID}
44
+ RUN useradd -u $HOST_USER_ID -ms /bin/bash user \
45
+ && echo 'user ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
43
46
 
44
47
  USER user
45
48
  WORKDIR /home/user
46
49
 
47
- ENV LANG C.UTF-8
48
- ENV CI true
49
- ENV PYENV_ROOT /home/user/.pyenv
50
+ ENV LANG=C.UTF-8
51
+ ENV CI=true
52
+ ENV PYENV_ROOT=/home/user/.pyenv
50
53
  ENV PATH="${PYENV_ROOT}/shims:${PYENV_ROOT}/bin:${PATH}"
51
54
  ENV PYTHON_CONFIGURE_OPTS="--enable-shared"
52
55
 
53
56
  # https://github.com/pyenv/pyenv/releases
54
- ENV PYENV_GIT_TAG v2.3.31
57
+ ENV PYENV_GIT_TAG=v2.4.17
55
58
  RUN curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
56
59
 
57
60
  # Register the pypy3 system installation
58
- RUN mkdir -p "${PYENV_ROOT}/versions/pypy3-system/bin/"
59
- RUN sudo ln -s /usr/bin/pypy3 "${PYENV_ROOT}/versions/pypy3-system/bin/python"
60
- RUN pyenv rehash
61
+ RUN mkdir -p "${PYENV_ROOT}/versions/pypy3-system/bin/" \
62
+ && sudo ln -s /usr/bin/pypy3 "${PYENV_ROOT}/versions/pypy3-system/bin/python" \
63
+ && pyenv rehash
61
64
 
62
- RUN pyenv install --debug 3.8
63
65
  RUN pyenv install --debug 3.9
64
66
  RUN pyenv install --debug 3.10
65
67
  RUN pyenv install --debug 3.11
66
68
  RUN pyenv install --debug 3.12
69
+ RUN pyenv install --debug 3.13
67
70
 
68
71
  ENV PATH="/usr/lib/ccache:${PATH}"
69
72
 
@@ -4,6 +4,7 @@ set -e
4
4
 
5
5
  rm -Rf _venv_sdist
6
6
  python3 -m venv _venv_sdist
7
+ # shellcheck disable=SC1091
7
8
  source _venv_sdist/bin/activate
8
9
  mkdir -p dist
9
10
 
@@ -11,18 +12,20 @@ mkdir -p dist
11
12
  python -m pip install --upgrade meson pycairo
12
13
  rm -Rf _sdist_build
13
14
  meson setup _sdist_build
14
- meson dist --no-tests --allow-dirty -C _sdist_build
15
- mv _sdist_build/meson-dist/*.tar.xz dist/
15
+ meson dist --no-tests --allow-dirty --include-subprojects -C _sdist_build
16
+ cp _sdist_build/meson-dist/*.tar.xz dist/
16
17
 
17
- VERSION=$(meson introspect --projectinfo --indent _sdist_build | awk -F'"' '/version/ { print $4 }')
18
+ [ -n "${TARBALL_ARTIFACT_PATH}" ] && cp _sdist_build/meson-dist/*.tar.xz "${TARBALL_ARTIFACT_PATH}"
19
+
20
+ VERSION=$(meson introspect --projectinfo --indent _sdist_build | python -c 'import json, sys; print(json.load(sys.stdin)["version"])')
18
21
 
19
22
  rm -Rf _sdist_build
20
23
 
21
24
  # Now the sdist for pypi
22
25
  # Mark odd versions as PEP440 development versions (e.g. 0.1.0 -> 0.1.0.dev0)
23
- [[ "$VERSION" =~ ^[0-9]\.[0-9]*[13579]\. ]] && meson rewrite kwargs set project / version ${VERSION}.dev0
26
+ [[ "$VERSION" =~ ^[0-9]\.[0-9]*[13579]\. ]] && meson rewrite kwargs set project / version "${VERSION}".dev0
24
27
 
25
28
  python -m pip install --upgrade build
26
29
  python -m build --sdist
27
30
 
28
- meson rewrite kwargs set project / version ${VERSION}
31
+ meson rewrite kwargs set project / version "${VERSION}"
@@ -10,13 +10,17 @@ for path in coverage/*.lcov; do
10
10
  lcov --config-file .gitlab-ci/lcovrc -r "${path}" '/usr/include/*' -o "${path}"
11
11
  lcov --config-file .gitlab-ci/lcovrc -r "${path}" '/home/*' -o "${path}"
12
12
  lcov --config-file .gitlab-ci/lcovrc -r "${path}" '*/msys64/*' -o "${path}"
13
+ lcov --config-file .gitlab-ci/lcovrc -r "${path}" '*site-packages/*' -o "${path}"
13
14
  lcov --config-file .gitlab-ci/lcovrc -r "${path}" '*subprojects/*' -o "${path}"
14
15
  lcov --config-file .gitlab-ci/lcovrc -r "${path}" '*tmp-introspect*' -o "${path}"
16
+ lcov --config-file .gitlab-ci/lcovrc -r "${path}" '*/meson-private/*' -o "${path}"
17
+
18
+ test -s "${path}" || rm "${path}"
15
19
  done
16
20
 
17
- genhtml --ignore-errors=source --config-file .gitlab-ci/lcovrc \
21
+ genhtml --config-file .gitlab-ci/lcovrc \
18
22
  coverage/*.lcov -o coverage/
19
23
 
20
24
  cd coverage
21
25
  rm -f .coverage*
22
- rm -f *.lcov
26
+ rm -f ./*.lcov
@@ -4,6 +4,8 @@
4
4
  # Always enable branch coverage
5
5
  lcov_branch_coverage = 1
6
6
 
7
+ stop_on_error = 0
8
+
7
9
  # Exclude precondition assertions, as we can never reasonably get full branch
8
10
  # coverage of them, as they should never normally fail.
9
11
  # See https://github.com/linux-test-project/lcov/issues/44
@@ -2,7 +2,7 @@
2
2
 
3
3
  set -e
4
4
 
5
- TAG="registry.gitlab.gnome.org/gnome/pygobject/main:v23"
5
+ TAG="registry.gitlab.gnome.org/gnome/pygobject/main:v25"
6
6
 
7
7
  sudo docker build --build-arg HOST_USER_ID="$UID" --tag "${TAG}" \
8
8
  --file "Dockerfile" .
@@ -0,0 +1,48 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ python --version
6
+
7
+ SOURCE_DIR="$(pwd)"
8
+ COV_DIR="${SOURCE_DIR}/coverage"
9
+ COV_KEY="${CI_JOB_NAME_SLUG}"
10
+ JUNIT_XML="${SOURCE_DIR}/test-results.xml"
11
+
12
+ CFLAGS="-coverage -ftest-coverage -fprofile-arcs -Werror"
13
+ MALLOC_CHECK_=3
14
+ MALLOC_PERTURB_=$((RANDOM % 255 + 1))
15
+ G_SLICE="debug-blocks"
16
+ COVERAGE_FILE="${COV_DIR}/.coverage.${COV_KEY}"
17
+ CCACHE_BASEDIR="$(pwd)"
18
+ CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
19
+ export CFLAGS MALLOC_CHECK_ MALLOC_PERTURB_ G_SLICE COVERAGE_FILE \
20
+ CCACHE_BASEDIR CCACHE_DIR
21
+
22
+ # https://docs.python.org/3/using/cmdline.html#envvar-PYTHONDEVMODE
23
+ export PYTHONDEVMODE=1
24
+ export MESONPY_EDITABLE_VERBOSE=1
25
+
26
+ mkdir -p "${CCACHE_DIR}"
27
+ mkdir -p "${COV_DIR}"
28
+
29
+ python -m venv /tmp/venv
30
+ # shellcheck disable=SC1091
31
+ source /tmp/venv/bin/activate
32
+
33
+ python -m pip install --upgrade pip
34
+ python -m pip install meson meson-python pycairo pytest pytest-cov
35
+
36
+ # BUILD & TEST
37
+ python -m pip install --config-settings=setup-args="-Dtests=true" --no-build-isolation --editable .
38
+
39
+ # TEST
40
+ lcov --config-file .gitlab-ci/lcovrc --directory . --capture --initial --output-file \
41
+ "${COV_DIR}/${CI_JOB_NAME_SLUG}-baseline.lcov"
42
+
43
+ xvfb-run -a python -m pytest -vs --cov --junit-xml="${JUNIT_XML}"
44
+ python -m coverage lcov -o "${COV_DIR}/${COV_KEY}.py.lcov"
45
+
46
+ # COLLECT GCOV COVERAGE
47
+ lcov --config-file .gitlab-ci/lcovrc --directory . --capture --output-file \
48
+ "${COV_DIR}/${CI_JOB_NAME_SLUG}.lcov"
@@ -7,7 +7,8 @@ DIR="$( cd "$( dirname "$0" )" && pwd )"
7
7
  if [[ "$1" == "inflatpak" ]]; then
8
8
  COV_DIR="$(pwd)/coverage"
9
9
  COV_KEY="flatpak-$TEST_GTK_VERSION"
10
- export COVERAGE_FILE="${COV_DIR}/.coverage.${COV_KEY}"
10
+ COVERAGE_FILE="${COV_DIR}/.coverage.${COV_KEY}"
11
+ export COVERAGE_FILE
11
12
  mkdir -p "${COV_DIR}"
12
13
 
13
14
  python3 --version
@@ -19,6 +20,7 @@ if [[ "$1" == "inflatpak" ]]; then
19
20
  chmod -R 777 "${COV_DIR}"
20
21
  else
21
22
  # https://gitlab.gnome.org/GNOME/gnome-runtime-images/-/issues/7
22
- export DBUS_SYSTEM_BUS_ADDRESS="$(dbus-daemon --session --print-address --fork)"
23
+ DBUS_SYSTEM_BUS_ADDRESS="$(dbus-daemon --session --print-address --fork)"
24
+ export DBUS_SYSTEM_BUS_ADDRESS
23
25
  xvfb-run -a flatpak run --user --filesystem=host --share=network --socket=x11 --command=bash org.gnome.Sdk//master -x "${DIR}"/test-flatpak.sh inflatpak
24
26
  fi
@@ -24,28 +24,33 @@ pacman --noconfirm -S --needed \
24
24
  # ccache setup
25
25
  export PATH="$MSYSTEM/lib/ccache/bin:$PATH"
26
26
  mkdir -p _ccache
27
- export CCACHE_BASEDIR="$(pwd)"
28
- export CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
27
+ CCACHE_BASEDIR="$(pwd)"
28
+ export CCACHE_BASEDIR
29
+ CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
30
+ export CCACHE_DIR
29
31
 
30
32
  # coverage setup
31
33
  COV_DIR="$(pwd)/coverage"
32
- COV_KEY="${CI_JOB_NAME}"
34
+ COV_KEY="${CI_JOB_NAME_SLUG}"
33
35
  mkdir -p "${COV_DIR}"
34
36
  export COVERAGE_FILE="${COV_DIR}/.coverage.${COV_KEY}"
35
37
 
38
+ # Test results
39
+ JUNIT_XML="test-results.xml"
40
+
36
41
  # https://docs.python.org/3/using/cmdline.html#envvar-PYTHONDEVMODE
37
42
  export PYTHONDEVMODE=1
38
43
 
39
44
 
40
- MSYSTEM= CFLAGS="-coverage -ftest-coverage -fprofile-arcs -Werror" meson setup _build
45
+ MSYSTEM='' CFLAGS="-coverage -ftest-coverage -fprofile-arcs -Werror" meson setup _build
41
46
 
42
47
  lcov \
43
48
  --config-file .gitlab-ci/lcovrc \
44
49
  --directory "$(pwd)" --capture --initial --output-file \
45
50
  "${COV_DIR}/${COV_KEY}-baseline.lcov"
46
51
 
47
- MSYSTEM= PYTEST_ADDOPTS="--cov" meson test --suite pygobject --timeout-multiplier 4 -C _build -v
48
- MSYSTEM= python -m coverage lcov -o "${COV_DIR}/${COV_KEY}.py.lcov"
52
+ MSYSTEM='' PYTEST_ADDOPTS="--cov -sv --junit-xml=${JUNIT_XML}" meson test --suite pygobject --timeout-multiplier 4 -C _build -v
53
+ MSYSTEM='' python -m coverage lcov -o "${COV_DIR}/${COV_KEY}.py.lcov"
49
54
 
50
55
  lcov \
51
56
  --config-file .gitlab-ci/lcovrc \
@@ -1,29 +1,79 @@
1
- image: registry.gitlab.gnome.org/gnome/pygobject/main:v23
2
-
1
+ include:
2
+ - component: gitlab.gnome.org/GNOME/citemplates/release-service@master
3
+ inputs:
4
+ dist-job-name: "sdist"
5
+ tarball-artifact-path: "${TARBALL_ARTIFACT_PATH}"
6
+
3
7
  stages:
8
+ - pre-commit
4
9
  - build_and_test
5
10
  - coverage
6
11
  - deploy
7
12
 
8
- cache:
9
- paths:
10
- - _ccache/
13
+ variables:
14
+ TARBALL_ARTIFACT_PATH: "dist/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.tar.xz"
15
+
16
+ default:
17
+ image: registry.gitlab.gnome.org/gnome/pygobject/main:v26
18
+ cache:
19
+ paths:
20
+ - _ccache/
11
21
 
12
- .defaults: &defaults
22
+ pre-commit:
23
+ stage: pre-commit
24
+ variables:
25
+ PYTHON_VERSION: "3.13"
26
+ XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache"
27
+ script:
28
+ - git config --global --add safe.directory "$CI_PROJECT_DIR"
29
+ - python -m pip install -q pre-commit
30
+ - python -m pre_commit run --all-files
31
+ artifacts:
32
+ when: on_failure
33
+ paths:
34
+ - .cache/pre-commit/pre-commit.log
35
+
36
+ linux:
13
37
  stage: build_and_test
38
+ parallel:
39
+ matrix:
40
+ - PYTHON_VERSION:
41
+ - "3.9"
42
+ - "3.10"
43
+ - "3.11"
44
+ - "3.12"
45
+ - "3.13"
46
+ - "pypy3"
47
+ TEST_GTK_VERSION: "3.0"
48
+ - PYTHON_VERSION: "3.11"
49
+ TEST_GTK_VERSION: "4.0"
14
50
  artifacts:
51
+ when: always
15
52
  paths:
16
53
  - coverage/
54
+ - test-results.xml
55
+ reports:
56
+ junit: test-results.xml
17
57
  script:
18
58
  - bash -x ./.gitlab-ci/test-docker.sh
19
59
 
20
- .mingw-defaults: &mingw-defaults
60
+ windows:
21
61
  stage: build_and_test
22
62
  tags:
23
63
  - win32-ps
64
+ parallel:
65
+ matrix:
66
+ - MSYSTEM:
67
+ - "MINGW32"
68
+ - "MINGW64"
24
69
  artifacts:
70
+ when: always
25
71
  paths:
26
72
  - coverage/
73
+ - _build/meson-logs
74
+ - test-results.xml
75
+ reports:
76
+ junit: test-results.xml
27
77
  script:
28
78
  - $env:CHERE_INVOKING = 'yes'
29
79
  - C:\msys64\usr\bin\pacman --noconfirm -Syyuu
@@ -54,8 +104,8 @@ pages:
54
104
  paths:
55
105
  - public
56
106
  expire_in: 30 days
57
- only:
58
- - main
107
+ rules:
108
+ - if: $CI_COMMIT_BRANCH == "main"
59
109
 
60
110
  sdist:
61
111
  stage: build_and_test
@@ -66,91 +116,19 @@ sdist:
66
116
  - git config --global --add safe.directory "$CI_PROJECT_DIR"
67
117
  - bash -x ./.gitlab-ci/build-sdists.sh
68
118
 
69
- mingw32:
70
- variables:
71
- MSYSTEM: "MINGW32"
72
- <<: *mingw-defaults
73
-
74
- mingw64:
75
- variables:
76
- MSYSTEM: "MINGW64"
77
- <<: *mingw-defaults
78
-
79
- python3.9:
80
- variables:
81
- PYTHON_VERSION: "3.9"
82
- TEST_GTK_VERSION: "3.0"
83
- <<: *defaults
84
-
85
- python3.10:
86
- variables:
87
- PYTHON_VERSION: "3.10"
88
- TEST_GTK_VERSION: "3.0"
89
- <<: *defaults
90
-
91
- python3.11:
92
- variables:
93
- PYTHON_VERSION: "3.11"
94
- TEST_GTK_VERSION: "3.0"
95
- <<: *defaults
96
-
97
- python3.11-gtk4:
98
- variables:
99
- PYTHON_VERSION: "3.11"
100
- TEST_GTK_VERSION: "4.0"
101
- <<: *defaults
102
-
103
- python3.12:
104
- variables:
105
- PYTHON_VERSION: "3.12"
106
- TEST_GTK_VERSION: "3.0"
107
- <<: *defaults
108
-
109
- pypy3:
110
- variables:
111
- PYTHON_VERSION: "pypy3"
112
- TEST_GTK_VERSION: "3.0"
113
- <<: *defaults
114
-
115
- old-i386-py3:
116
- stage: build_and_test
117
- image: registry.gitlab.gnome.org/gnome/pygobject/old:v6
118
- artifacts:
119
- paths:
120
- - coverage/
121
- script:
122
- - bash -x ./.gitlab-ci/test-docker-old.sh
123
- # This build sometimes fails with message:
124
- # ninja: error: loading 'build.ninja': Value too large for defined data type
125
- retry:
126
- max: 2
127
- when: runner_system_failure
128
- exit_codes: 1
129
-
130
119
  gnome-master:
131
120
  stage: build_and_test
132
121
  image: quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master
133
122
  tags:
134
123
  - flatpak
124
+ parallel:
125
+ matrix:
126
+ - TEST_GTK_VERSION:
127
+ - "3.0"
128
+ - "4.0"
135
129
  artifacts:
136
130
  paths:
137
131
  - coverage/
138
- variables:
139
- TEST_GTK_VERSION: "3.0"
140
- script:
141
- - bash -x ./.gitlab-ci/test-flatpak.sh
142
-
143
- gnome-master-gtk4:
144
- allow_failure: true
145
- stage: build_and_test
146
- image: quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master
147
- tags:
148
- - flatpak
149
- artifacts:
150
- paths:
151
- - coverage/
152
- variables:
153
- TEST_GTK_VERSION: "4.0"
154
132
  script:
155
133
  - bash -x ./.gitlab-ci/test-flatpak.sh
156
134
 
@@ -168,10 +146,10 @@ python3.12-pdm:
168
146
  minimal-meson:
169
147
  allow_failure: true
170
148
  stage: build_and_test
171
- image: quay.io/fedora/fedora:39
149
+ image: quay.io/fedora/fedora:40
172
150
  before_script:
173
- - dnf install --assumeyes gcc meson git flex bison diffutils python3-devel python3-pytest
151
+ - dnf install --assumeyes gcc meson git flex bison diffutils python3-devel python3-pytest gobject-introspection-devel
174
152
  script:
175
153
  - meson setup _build
176
154
  - meson compile -C _build
177
- - PYTEST_ADDOPTS="-k 'not test_cairo'" meson test -C _build --verbose
155
+ - PYTEST_ADDOPTS="-sv -k 'not test_cairo'" meson test -C _build --suite pygobject --verbose
@@ -0,0 +1,12 @@
1
+ # This is a configuration file for the pre-commit tool.
2
+ # Documentation is available at https://pre-commit.com/#plugins
3
+
4
+ repos:
5
+ - repo: https://github.com/shellcheck-py/shellcheck-py
6
+ rev: a23f6b85d0fdd5bb9d564e2579e678033debbdff # frozen: v0.10.0.1
7
+ hooks:
8
+ - id: shellcheck
9
+ - repo: https://github.com/PyCQA/flake8
10
+ rev: 7.1.1
11
+ hooks:
12
+ - id: flake8