PyGObject 3.49.0.dev0__tar.gz → 3.50.1__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.
- pygobject-3.50.1/.flake8 +3 -0
- pygobject-3.50.1/.gitlab-ci/build-sdists.sh +20 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/.gitlab-ci/test-msys2.sh +12 -6
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/.gitlab-ci.yml +51 -88
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/NEWS +11 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/PKG-INFO +1 -1
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/events.py +32 -8
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/meson.build +1 -1
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/pyproject.toml +4 -1
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_events.py +136 -1
- pygobject-3.49.0.dev0/.flake8 +0 -3
- pygobject-3.49.0.dev0/.gitlab-ci/build-sdists.sh +0 -28
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/.coveragerc +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/.gitignore +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/.gitlab-ci/Dockerfile +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/.gitlab-ci/Dockerfile.old +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/.gitlab-ci/README.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/.gitlab-ci/coverage-docker.sh +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/.gitlab-ci/fixup-lcov-paths.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/.gitlab-ci/lcovrc +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/.gitlab-ci/run-docker-old.sh +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/.gitlab-ci/run-docker-runtime.sh +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/.gitlab-ci/run-docker.sh +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/.gitlab-ci/set_env.sh +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/.gitlab-ci/test-docker-old.sh +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/.gitlab-ci/test-docker.sh +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/.gitlab-ci/test-flatpak.sh +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/COPYING +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/METADATA.in +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/README.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/Makefile +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/bugs_repo.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/changelog.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/conf.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/contact.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/devguide/dev_environ.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/devguide/index.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/devguide/override_guidelines.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/devguide/overview.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/devguide/style_guide.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/extra.css +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/further.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/getting_started.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/api/api.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/api/basic_types.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/api/error_handling.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/api/flags_enums.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/api/gobject.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/api/index.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/api/properties.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/api/signals.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/api/weakrefs.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/cairo_integration.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/code/cairo-demo.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/debug_profile.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/deploy.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/faq.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/flatpaking.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/gtk_template.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/images/cairo_integration.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/imports.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/index.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/porting.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/sysdeps.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/testing.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/guide/threading.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/icons.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/images/LICENSE +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/images/favicon.ico +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/images/logo.svg +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/images/overview-dark.svg +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/images/overview.dia +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/images/overview.svg +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/images/pygobject-small.svg +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/images/pygobject.svg +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/images/start_linux.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/images/start_macos.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/images/start_windows.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/index.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/maintguide.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/packagingguide.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/_static/custom.css +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gobject/basics.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gobject/examples/listmodel.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gobject/interfaces.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gobject/subclassing.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gobject.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk3.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/application.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/basics.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/clipboard.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/buttons.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/check-radio-buttons.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/dropdown.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/entries.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/examples/button.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/examples/check_radio_buttons.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/examples/dropdown.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/examples/entries.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/examples/linkbutton.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/examples/spinbutton.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/examples/switch.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/examples/togglebutton.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/images/button.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/images/check_radio_buttons.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/images/dropdown.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/images/entries.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/images/linkbutton.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/images/spinbutton.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/images/switch.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/images/togglebutton.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/scale.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/spinbutton.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls/switch.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/controls.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/display-widgets/examples/label.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/display-widgets/examples/picture.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/display-widgets/examples/progressbar.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/display-widgets/examples/spinner.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/display-widgets/examples/spinner_ext.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/display-widgets/image.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/display-widgets/images/label.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/display-widgets/images/picture.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/display-widgets/images/progressbar.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/display-widgets/images/spinner.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/display-widgets/images/spinner_ext.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/display-widgets/label.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/display-widgets/picture.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/display-widgets/progressbar.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/display-widgets/spinner.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/display-widgets.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/drag-and-drop.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/examples/application.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/examples/clipboard.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/examples/drag_and_drop.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/examples/extended_example.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/examples/layout_box.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/examples/layout_center.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/examples/layout_flowbox.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/examples/layout_grid.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/examples/layout_headerbar.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/examples/layout_listbox.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/examples/layout_notebook.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/examples/layout_stack.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/examples/popover.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/examples/popover_menu.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/examples/simple_example.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/examples/textview.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/images/application.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/images/basic_example.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/images/clipboard.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/images/drag_and_drop.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/images/extended_example.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/images/layout_box.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/images/layout_center.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/images/layout_flowbox.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/images/layout_grid.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/images/layout_headerbar.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/images/layout_listbox.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/images/layout_notebook.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/images/layout_stack.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/images/popover.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/images/popover_menu.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/images/textview.png +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/introduction.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/layout-widgets.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/popovers.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4/textview.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/gtk4.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/index.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/libadwaita/application.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/docs/tutorials/libadwaita.rst +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/__init__.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/_constants.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/_error.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/_gtktemplate.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/_option.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/_ossighelper.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/_propertyhelper.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/_signalhelper.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/docstring.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/gimodule.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/gimodule.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/importer.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/meson.build +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/module.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/overrides/GIMarshallingTests.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/overrides/GLib.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/overrides/GObject.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/overrides/Gdk.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/overrides/GdkPixbuf.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/overrides/Gio.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/overrides/Gtk.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/overrides/Pango.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/overrides/__init__.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/overrides/keysyms.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/overrides/meson.build +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygboxed.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygboxed.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygenum.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygenum.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygflags.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygflags.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-argument.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-argument.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-array.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-array.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-async.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-async.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-basictype.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-basictype.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-boxed.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-boxed.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-cache.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-cache.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-ccallback.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-ccallback.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-closure.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-closure.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-enum-marshal.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-enum-marshal.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-error.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-error.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-foreign-api.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-foreign-cairo.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-foreign.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-foreign.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-fundamental.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-fundamental.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-hashtable.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-hashtable.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-info.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-info.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-invoke-state-struct.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-invoke.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-invoke.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-list.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-list.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-marshal-cleanup.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-marshal-cleanup.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-object.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-object.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-property.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-property.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-repository.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-repository.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-resulttuple.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-resulttuple.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-signal-closure.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-signal-closure.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-source.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-source.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-struct-marshal.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-struct-marshal.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-struct.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-struct.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-type.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-type.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-util.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-util.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-value.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygi-value.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pyginterface.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pyginterface.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygobject-internal.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygobject-object.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygobject-object.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygobject.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygoptioncontext.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygoptioncontext.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygoptiongroup.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygoptiongroup.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygpointer.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygpointer.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygspawn.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygspawn.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/pygtkcompat.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/repository/__init__.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/repository/meson.build +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/gi/types.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/meson_options.txt +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/pygobject-3.0.pc.in +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/pygobject.doap +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/pygtkcompat/__init__.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/pygtkcompat/generictreemodel.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/pygtkcompat/meson.build +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/pygtkcompat/pygtkcompat.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/subprojects/.gitignore +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/subprojects/glib.wrap +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/subprojects/gobject-introspection.wrap +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/subprojects/libffi.wrap +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/subprojects/pycairo.wrap +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/conftest.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/gi/overrides/Regress.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/gi/overrides/__init__.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/gimarshallingtestsextra.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/gimarshallingtestsextra.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/helper.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/meson.build +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/org.gnome.test.gschema.xml +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/regressextra.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/regressextra.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test-floating.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test-floating.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test-thread.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test-thread.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test-unknown.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test-unknown.h +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_async.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_atoms.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_cairo.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_docstring.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_error.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_everything.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_fields.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_fundamental.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_gdbus.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_generictreemodel.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_gi.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_gio.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_glib.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_gobject.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_gtk_template.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_gtype.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_import_machinery.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_interface.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_internal_api.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_iochannel.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_mainloop.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_object_marshaling.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_option.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_ossig.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_overrides_gdk.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_overrides_gdkpixbuf.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_overrides_gio.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_overrides_glib.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_overrides_gobject.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_overrides_gtk.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_overrides_pango.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_properties.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_pycapi.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_pygtkcompat.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_repository.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_resulttuple.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_signal.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_source.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_subprocess.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_thread.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_typeclass.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/test_unknown.py +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/testhelpermodule.c +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tests/valgrind.supp +0 -0
- {pygobject-3.49.0.dev0 → pygobject-3.50.1}/tools/pygi-convert.sh +0 -0
pygobject-3.50.1/.flake8
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
python -m pip install --upgrade pdm
|
|
6
|
+
python -m pdm build
|
|
7
|
+
|
|
8
|
+
VERSION=$(grep version meson.build | head -1 | sed "s/^.*'\([0-9\.]*\)'.*$/\1/")
|
|
9
|
+
|
|
10
|
+
if [[ "$VERSION" =~ ^[0-9]\.[0-9]*[13579]\. ]]
|
|
11
|
+
then
|
|
12
|
+
cat << EOF
|
|
13
|
+
|
|
14
|
+
****************** ATTENTION ******************
|
|
15
|
+
This is an UNstable release.
|
|
16
|
+
Do NOT upload this release to PyPI.
|
|
17
|
+
****************** ATTENTION ******************
|
|
18
|
+
|
|
19
|
+
EOF
|
|
20
|
+
fi
|
|
@@ -24,28 +24,34 @@ pacman --noconfirm -S --needed \
|
|
|
24
24
|
# ccache setup
|
|
25
25
|
export PATH="$MSYSTEM/lib/ccache/bin:$PATH"
|
|
26
26
|
mkdir -p _ccache
|
|
27
|
-
|
|
28
|
-
export
|
|
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="${
|
|
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=
|
|
48
|
-
MSYSTEM=
|
|
52
|
+
MSYSTEM='' meson compile -C _build -v
|
|
53
|
+
MSYSTEM='' PYTEST_ADDOPTS="--cov -sv --junit-xml=${JUNIT_XML}" meson test --suite pygobject --timeout-multiplier 4 -C _build -v
|
|
54
|
+
MSYSTEM='' python -m coverage lcov -o "${COV_DIR}/${COV_KEY}.py.lcov"
|
|
49
55
|
|
|
50
56
|
lcov \
|
|
51
57
|
--config-file .gitlab-ci/lcovrc \
|
|
@@ -1,29 +1,63 @@
|
|
|
1
|
-
|
|
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}"
|
|
2
6
|
|
|
3
7
|
stages:
|
|
4
8
|
- build_and_test
|
|
5
9
|
- coverage
|
|
6
10
|
- deploy
|
|
7
11
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
- _ccache/
|
|
12
|
+
variables:
|
|
13
|
+
TARBALL_ARTIFACT_PATH: "dist/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.tar.gz"
|
|
11
14
|
|
|
12
|
-
|
|
15
|
+
default:
|
|
16
|
+
image: registry.gitlab.gnome.org/gnome/pygobject/main:v23
|
|
17
|
+
cache:
|
|
18
|
+
paths:
|
|
19
|
+
- _ccache/
|
|
20
|
+
|
|
21
|
+
linux:
|
|
13
22
|
stage: build_and_test
|
|
23
|
+
parallel:
|
|
24
|
+
matrix:
|
|
25
|
+
- PYTHON_VERSION:
|
|
26
|
+
- "3.9"
|
|
27
|
+
- "3.10"
|
|
28
|
+
- "3.11"
|
|
29
|
+
- "3.12"
|
|
30
|
+
- "pypy3"
|
|
31
|
+
TEST_GTK_VERSION: "3.0"
|
|
32
|
+
- PYTHON_VERSION: "3.11"
|
|
33
|
+
TEST_GTK_VERSION: "4.0"
|
|
14
34
|
artifacts:
|
|
35
|
+
when: always
|
|
15
36
|
paths:
|
|
16
37
|
- coverage/
|
|
38
|
+
- test-results.xml
|
|
39
|
+
reports:
|
|
40
|
+
junit: test-results.xml
|
|
17
41
|
script:
|
|
18
42
|
- bash -x ./.gitlab-ci/test-docker.sh
|
|
19
43
|
|
|
20
|
-
|
|
44
|
+
windows:
|
|
21
45
|
stage: build_and_test
|
|
22
46
|
tags:
|
|
23
47
|
- win32-ps
|
|
48
|
+
parallel:
|
|
49
|
+
matrix:
|
|
50
|
+
- MSYSTEM:
|
|
51
|
+
- "MINGW32"
|
|
52
|
+
- "MINGW64"
|
|
24
53
|
artifacts:
|
|
54
|
+
when: always
|
|
25
55
|
paths:
|
|
26
56
|
- coverage/
|
|
57
|
+
- _build/meson-logs
|
|
58
|
+
- test-results.xml
|
|
59
|
+
reports:
|
|
60
|
+
junit: test-results.xml
|
|
27
61
|
script:
|
|
28
62
|
- $env:CHERE_INVOKING = 'yes'
|
|
29
63
|
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu
|
|
@@ -54,8 +88,9 @@ pages:
|
|
|
54
88
|
paths:
|
|
55
89
|
- public
|
|
56
90
|
expire_in: 30 days
|
|
57
|
-
|
|
58
|
-
- main
|
|
91
|
+
rules:
|
|
92
|
+
- if: $CI_COMMIT_BRANCH == "main"
|
|
93
|
+
- if: $CI_COMMIT_TAG
|
|
59
94
|
|
|
60
95
|
sdist:
|
|
61
96
|
stage: build_and_test
|
|
@@ -66,91 +101,19 @@ sdist:
|
|
|
66
101
|
- git config --global --add safe.directory "$CI_PROJECT_DIR"
|
|
67
102
|
- bash -x ./.gitlab-ci/build-sdists.sh
|
|
68
103
|
|
|
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
104
|
gnome-master:
|
|
131
105
|
stage: build_and_test
|
|
132
106
|
image: quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master
|
|
133
107
|
tags:
|
|
134
108
|
- flatpak
|
|
109
|
+
parallel:
|
|
110
|
+
matrix:
|
|
111
|
+
- TEST_GTK_VERSION:
|
|
112
|
+
- "3.0"
|
|
113
|
+
- "4.0"
|
|
135
114
|
artifacts:
|
|
136
115
|
paths:
|
|
137
116
|
- 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
117
|
script:
|
|
155
118
|
- bash -x ./.gitlab-ci/test-flatpak.sh
|
|
156
119
|
|
|
@@ -168,10 +131,10 @@ python3.12-pdm:
|
|
|
168
131
|
minimal-meson:
|
|
169
132
|
allow_failure: true
|
|
170
133
|
stage: build_and_test
|
|
171
|
-
image: quay.io/fedora/fedora:
|
|
134
|
+
image: quay.io/fedora/fedora:40
|
|
172
135
|
before_script:
|
|
173
|
-
- dnf install --assumeyes gcc meson git flex bison diffutils python3-devel python3-pytest
|
|
136
|
+
- dnf install --assumeyes gcc meson git flex bison diffutils python3-devel python3-pytest gobject-introspection-devel
|
|
174
137
|
script:
|
|
175
138
|
- meson setup _build
|
|
176
139
|
- meson compile -C _build
|
|
177
|
-
- PYTEST_ADDOPTS="-k 'not test_cairo'" meson test -C _build --verbose
|
|
140
|
+
- PYTEST_ADDOPTS="-sv -k 'not test_cairo'" meson test -C _build --suite pygobject --verbose
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
3.50.1 - 2025-05-25
|
|
2
|
+
-------------------
|
|
3
|
+
|
|
4
|
+
* Backport: Fix event loop selector with Python 3.13 :mr:`423`
|
|
5
|
+
|
|
6
|
+
3.50.0 - 2024-09-12
|
|
7
|
+
-------------------
|
|
8
|
+
|
|
9
|
+
* tests: Fix event test errors when GTK is not installed :mr:`347`
|
|
10
|
+
|
|
11
|
+
|
|
1
12
|
3.49.0 - 2024-09-06 (pre-release)
|
|
2
13
|
---------------------------------
|
|
3
14
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: PyGObject
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.50.1
|
|
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>
|
|
@@ -28,6 +28,7 @@ import threading
|
|
|
28
28
|
import selectors
|
|
29
29
|
import weakref
|
|
30
30
|
import warnings
|
|
31
|
+
from collections.abc import Mapping
|
|
31
32
|
from contextlib import contextmanager
|
|
32
33
|
from . import _ossighelper
|
|
33
34
|
|
|
@@ -381,9 +382,33 @@ if sys.platform != 'win32':
|
|
|
381
382
|
# Subclass to attach _tag
|
|
382
383
|
pass
|
|
383
384
|
|
|
385
|
+
class _FileObjectMapping(Mapping):
|
|
386
|
+
def __init__(self, fd_dict):
|
|
387
|
+
self.fd_dict = fd_dict
|
|
388
|
+
|
|
389
|
+
def __len__(self):
|
|
390
|
+
return len(self.fd_dict)
|
|
391
|
+
|
|
392
|
+
def get(self, fileobj, default=None):
|
|
393
|
+
fd = _fileobj_to_fd(fileobj)
|
|
394
|
+
return self.fd_dict.get(fd, default)
|
|
395
|
+
|
|
396
|
+
def __getitem__(self, fileobj):
|
|
397
|
+
value = self.get(fileobj)
|
|
398
|
+
if value is None:
|
|
399
|
+
raise KeyError("{!r} is not registered".format(fileobj))
|
|
400
|
+
return value
|
|
401
|
+
|
|
402
|
+
def __iter__(self):
|
|
403
|
+
return iter(self.fd_dict)
|
|
404
|
+
|
|
384
405
|
class _Selector(_SelectorMixin, selectors.BaseSelector):
|
|
385
406
|
"""A Selector for gi.events.GLibEventLoop registering python IO with GLib."""
|
|
386
407
|
|
|
408
|
+
def __init__(self, context, loop):
|
|
409
|
+
super().__init__(context, loop)
|
|
410
|
+
self._map = _FileObjectMapping(self._fd_to_key)
|
|
411
|
+
|
|
387
412
|
def attach(self):
|
|
388
413
|
self._source.attach(self._loop._context)
|
|
389
414
|
|
|
@@ -407,7 +432,9 @@ if sys.platform != 'win32':
|
|
|
407
432
|
raise ValueError("Invalid events: {!r}".format(events))
|
|
408
433
|
|
|
409
434
|
fd = _fileobj_to_fd(fileobj)
|
|
410
|
-
|
|
435
|
+
if fd in self._fd_to_key:
|
|
436
|
+
raise KeyError("{!r} (FD {}) is already registered"
|
|
437
|
+
.format(fileobj, fd))
|
|
411
438
|
|
|
412
439
|
key = _SelectorKey(fileobj, fd, events, data)
|
|
413
440
|
|
|
@@ -430,15 +457,12 @@ if sys.platform != 'win32':
|
|
|
430
457
|
# We could override modify, but it is only slightly when the "events" change.
|
|
431
458
|
|
|
432
459
|
def get_key(self, fileobj):
|
|
433
|
-
|
|
434
|
-
return self._fd_to_key[fd]
|
|
460
|
+
return self._map[fileobj]
|
|
435
461
|
|
|
436
462
|
def get_map(self):
|
|
437
|
-
"""Return a mapping of file objects
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
# python decides to use it for debug purposes.
|
|
441
|
-
return {k.fileobj: k for k in self._fd_to_key.values()}
|
|
463
|
+
"""Return a mapping of file objects or file descriptors to
|
|
464
|
+
selector keys."""
|
|
465
|
+
return self._map
|
|
442
466
|
|
|
443
467
|
|
|
444
468
|
else:
|
|
@@ -59,7 +59,10 @@ install = [
|
|
|
59
59
|
"--config-setting=setup-args=-Dbuildtype=debug",
|
|
60
60
|
"--config-setting=editable-verbose=true",
|
|
61
61
|
]
|
|
62
|
-
build = [
|
|
62
|
+
build = [
|
|
63
|
+
"--no-wheel",
|
|
64
|
+
"--config-setting=setup-args=-Dtests=true",
|
|
65
|
+
]
|
|
63
66
|
|
|
64
67
|
[tool.meson-python.args]
|
|
65
68
|
setup = ["-Dtests=false", "-Dwheel=true", "--wrap-mode=nofallback"]
|
|
@@ -45,8 +45,14 @@ import sys
|
|
|
45
45
|
import gi
|
|
46
46
|
import gi.events
|
|
47
47
|
import asyncio
|
|
48
|
+
import socket
|
|
48
49
|
import threading
|
|
49
|
-
from gi.repository import GLib
|
|
50
|
+
from gi.repository import GLib
|
|
51
|
+
|
|
52
|
+
try:
|
|
53
|
+
from gi.repository import Gtk
|
|
54
|
+
except ImportError:
|
|
55
|
+
Gtk = None
|
|
50
56
|
|
|
51
57
|
|
|
52
58
|
GTK4 = (Gtk and Gtk._version == "4.0")
|
|
@@ -75,6 +81,74 @@ class SubprocessWatcherTests(SubprocessMixin, TestCase):
|
|
|
75
81
|
self.loop.close()
|
|
76
82
|
super().tearDown()
|
|
77
83
|
|
|
84
|
+
# Fix broken test for Python 3.12
|
|
85
|
+
@unittest.skipUnless(sys.version_info >= (3, 12), "test is added in Python 3.12")
|
|
86
|
+
def test_subprocess_consistent_callbacks(self):
|
|
87
|
+
# gh-108973: Test that all subprocess protocol methods are called.
|
|
88
|
+
# The protocol methods are not called in a determistic order.
|
|
89
|
+
# The order depends on the event loop and the operating system.
|
|
90
|
+
events = []
|
|
91
|
+
fds = [1, 2]
|
|
92
|
+
expected = [
|
|
93
|
+
('pipe_data_received', 1, b'stdout'),
|
|
94
|
+
('pipe_data_received', 2, b'stderr'),
|
|
95
|
+
('pipe_connection_lost', 1),
|
|
96
|
+
('pipe_connection_lost', 2),
|
|
97
|
+
'process_exited',
|
|
98
|
+
]
|
|
99
|
+
per_fd_expected = [
|
|
100
|
+
'pipe_data_received',
|
|
101
|
+
'pipe_connection_lost',
|
|
102
|
+
]
|
|
103
|
+
|
|
104
|
+
class MyProtocol(asyncio.SubprocessProtocol):
|
|
105
|
+
def __init__(self, exit_future: asyncio.Future) -> None:
|
|
106
|
+
self.exit_future = exit_future
|
|
107
|
+
|
|
108
|
+
def pipe_data_received(self, fd, data) -> None:
|
|
109
|
+
events.append(('pipe_data_received', fd, data))
|
|
110
|
+
self.exit_maybe()
|
|
111
|
+
|
|
112
|
+
def pipe_connection_lost(self, fd, exc) -> None:
|
|
113
|
+
events.append(('pipe_connection_lost', fd))
|
|
114
|
+
self.exit_maybe()
|
|
115
|
+
|
|
116
|
+
def process_exited(self) -> None:
|
|
117
|
+
events.append('process_exited')
|
|
118
|
+
self.exit_maybe()
|
|
119
|
+
|
|
120
|
+
def exit_maybe(self):
|
|
121
|
+
# Only exit when we got all expected events
|
|
122
|
+
if len(events) >= len(expected):
|
|
123
|
+
self.exit_future.set_result(True)
|
|
124
|
+
|
|
125
|
+
async def main() -> None:
|
|
126
|
+
loop = asyncio.get_running_loop()
|
|
127
|
+
exit_future = asyncio.Future()
|
|
128
|
+
code = 'import sys; sys.stdout.write("stdout"); sys.stderr.write("stderr")'
|
|
129
|
+
transport, _ = await loop.subprocess_exec(lambda: MyProtocol(exit_future),
|
|
130
|
+
sys.executable, '-c', code, stdin=None)
|
|
131
|
+
await exit_future
|
|
132
|
+
transport.close()
|
|
133
|
+
|
|
134
|
+
return events
|
|
135
|
+
|
|
136
|
+
events = self.loop.run_until_complete(main())
|
|
137
|
+
|
|
138
|
+
# First, make sure that we received all events
|
|
139
|
+
self.assertSetEqual(set(events), set(expected))
|
|
140
|
+
|
|
141
|
+
# Second, check order of pipe events per file descriptor
|
|
142
|
+
per_fd_events = {fd: [] for fd in fds}
|
|
143
|
+
for event in events:
|
|
144
|
+
if event == 'process_exited':
|
|
145
|
+
continue
|
|
146
|
+
name, fd = event[:2]
|
|
147
|
+
per_fd_events[fd].append(name)
|
|
148
|
+
|
|
149
|
+
for fd in fds:
|
|
150
|
+
self.assertEqual(per_fd_events[fd], per_fd_expected, (fd, events))
|
|
151
|
+
|
|
78
152
|
|
|
79
153
|
class GLibEventLoopPolicyTests(unittest.TestCase):
|
|
80
154
|
|
|
@@ -232,6 +306,7 @@ class GLibEventLoopPolicyTests(unittest.TestCase):
|
|
|
232
306
|
loop.close()
|
|
233
307
|
self.assertEqual(called, True)
|
|
234
308
|
|
|
309
|
+
@unittest.skipUnless(Gtk, 'no Gtk')
|
|
235
310
|
def test_recursive_stop(self):
|
|
236
311
|
"""Calling stop() on the EventLoop will quit it, even if iteration
|
|
237
312
|
is done recursively."""
|
|
@@ -256,3 +331,63 @@ class GLibEventLoopPolicyTests(unittest.TestCase):
|
|
|
256
331
|
GLib.MainLoop().run()
|
|
257
332
|
|
|
258
333
|
loop.close()
|
|
334
|
+
|
|
335
|
+
@unittest.skipIf(sys.platform == 'win32', 'add reader/writer not implemented')
|
|
336
|
+
def test_source_fileobj_fd(self):
|
|
337
|
+
"""Regression test for
|
|
338
|
+
https://gitlab.gnome.org/GNOME/pygobject/-/issues/689
|
|
339
|
+
"""
|
|
340
|
+
class Echo:
|
|
341
|
+
def __init__(self, sock, expect_bytes):
|
|
342
|
+
self.sock = sock
|
|
343
|
+
self.sent_bytes = 0
|
|
344
|
+
self.expect_bytes = expect_bytes
|
|
345
|
+
self.done = asyncio.Future()
|
|
346
|
+
self.data = bytes()
|
|
347
|
+
|
|
348
|
+
def send(self):
|
|
349
|
+
if self.done.done():
|
|
350
|
+
return
|
|
351
|
+
if self.sent_bytes < len(self.data):
|
|
352
|
+
self.sent_bytes += self.sock.send(
|
|
353
|
+
self.data[self.sent_bytes:])
|
|
354
|
+
print('sent', self.data)
|
|
355
|
+
if self.sent_bytes >= self.expect_bytes:
|
|
356
|
+
self.done.set_result(None)
|
|
357
|
+
self.sock.shutdown(socket.SHUT_WR)
|
|
358
|
+
|
|
359
|
+
def recv(self):
|
|
360
|
+
if self.done.done():
|
|
361
|
+
return
|
|
362
|
+
self.data += self.sock.recv(self.expect_bytes)
|
|
363
|
+
print('received', self.data)
|
|
364
|
+
if len(self.data) >= self.expect_bytes:
|
|
365
|
+
self.sock.shutdown(socket.SHUT_RD)
|
|
366
|
+
|
|
367
|
+
async def run():
|
|
368
|
+
loop = asyncio.get_running_loop()
|
|
369
|
+
s1, s2 = socket.socketpair()
|
|
370
|
+
sample = b'Hello!'
|
|
371
|
+
e = Echo(s1, len(sample))
|
|
372
|
+
# register using file object and file descriptor
|
|
373
|
+
loop.add_reader(s1, e.recv)
|
|
374
|
+
loop.add_writer(s1.fileno(), e.send)
|
|
375
|
+
s2.sendall(sample)
|
|
376
|
+
await asyncio.wait_for(e.done, timeout=2.0)
|
|
377
|
+
echo = bytes()
|
|
378
|
+
for _ in range(len(sample)):
|
|
379
|
+
echo += s2.recv(len(sample))
|
|
380
|
+
if len(echo) == len(sample):
|
|
381
|
+
break
|
|
382
|
+
# remove using file object and file descriptor
|
|
383
|
+
loop.remove_reader(s1)
|
|
384
|
+
loop.remove_writer(s1.fileno())
|
|
385
|
+
s1.close()
|
|
386
|
+
s2.close()
|
|
387
|
+
# check if the data was echoed correctly
|
|
388
|
+
self.assertEqual(sample, echo)
|
|
389
|
+
|
|
390
|
+
policy = self.create_policy()
|
|
391
|
+
loop = policy.get_event_loop()
|
|
392
|
+
loop.run_until_complete(run())
|
|
393
|
+
loop.close()
|
pygobject-3.49.0.dev0/.flake8
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
set -e
|
|
4
|
-
|
|
5
|
-
rm -Rf _venv_sdist
|
|
6
|
-
python3 -m venv _venv_sdist
|
|
7
|
-
source _venv_sdist/bin/activate
|
|
8
|
-
mkdir -p dist
|
|
9
|
-
|
|
10
|
-
# First we create a tarball for GNOME
|
|
11
|
-
python -m pip install --upgrade meson pycairo
|
|
12
|
-
rm -Rf _sdist_build
|
|
13
|
-
meson setup _sdist_build
|
|
14
|
-
meson dist --no-tests --allow-dirty -C _sdist_build
|
|
15
|
-
mv _sdist_build/meson-dist/*.tar.xz dist/
|
|
16
|
-
|
|
17
|
-
VERSION=$(meson introspect --projectinfo --indent _sdist_build | awk -F'"' '/version/ { print $4 }')
|
|
18
|
-
|
|
19
|
-
rm -Rf _sdist_build
|
|
20
|
-
|
|
21
|
-
# Now the sdist for pypi
|
|
22
|
-
# 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
|
|
24
|
-
|
|
25
|
-
python -m pip install --upgrade build
|
|
26
|
-
python -m build --sdist
|
|
27
|
-
|
|
28
|
-
meson rewrite kwargs set project / version ${VERSION}
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|