def announce_remote(data, remote): import pgi pgi.install_as_gi() pgi.require_version('Notify', '0.7') from gi.repository import Notify Notify.init("Network Switcher") Hello = Notify.Notification.new( "Network change detected", "{} set to {}".format(data['target'], remote), "dialog-information") Hello.show()
def main(args): import pgi pgi.require_version("Gtk", "3.0") from pgi.repository import Gtk dest = get_class_image_dir("Gtk", "3.0") mapping = MAPPING # make sure there are no typos in the mapping for key in mapping.keys(): if not hasattr(Gtk, key): print(key, "missing...") missing = [] for name in dir(Gtk): value = getattr(Gtk, name) try: if issubclass(value, Gtk.Widget): if name not in GTK_MAPPING: missing.append(name) except TypeError: pass print("Following widget sublasses are missing an image:") print(missing) resp = requests.get("https://gitlab.gnome.org/GNOME/gtk/tree/master/docs/reference/gtk/images/") resp.raise_for_status() mapped_images = GTK_MAPPING.values() not_mapped = [] for image in set(re.findall("([^>/'\"]+?)\\.png", resp.text)): if image not in mapped_images: not_mapped.append(image) not_mapped.sort() print("Following images on the server aren't linked to a widget") print("https://gitlab.gnome.org/GNOME/gtk/tree/master/docs/reference/gtk/images") print(not_mapped) with ThreadPool(20) as pool: items = mapping.items() with progress(len(items)) as update: for i, (key, data) in enumerate(pool.imap_unordered(fetch, items)): update(i + 1) dest_path = os.path.join(dest, key + ".png") with open(dest_path, "wb") as h: h.write(data)
import pgi pgi.require_version('Notify', '0.7') from pgi.repository import Notify Notify.init("Test Notifier") class DisplayNotification(object): def __init__(self, reputation): self.rep = reputation notification = Notify.Notification.new( "Your Reputation \n", self.rep + "\n", "Bronze", ) notification.show()
--- Author: Diogo A. Ferrari This script turns on and off xbindkeys with some remaping to emulate vim-like keyboard. It shows the status on the top bar and on a notification message. The notifications can be turned off easily below. ===================================================== """ import signal, os, re, subprocess import pgi from pgi.repository import Gtk as gtk from pgi.repository import Keybinder as kbd from pgi.repository import AppIndicator3 as appindicator from pgi.repository import Notify as notify from pgi.repository import GObject from threading import Thread pgi.require_version('Gtk', '3.0') pgi.require_version('Keybinder', '3.0') pgi.require_version('AppIndicator3', '0.1') path = os.path.dirname(os.path.abspath(__file__)) APPINDICATOR_ID = 'myappindicator' class Indicator(): def __init__(self): self.app = 'Vim_Keyboard' self.state = int(0) self.icon_on = os.path.join(path, "icon", "vim-on.png") self.icon_off = os.path.join(path, "icon", "vim-off.png") # after you defined the initial indicator, you can alter the icon! self.ind = appindicator.Indicator.new(
import pgi pgi.require_version('Gtk', '3.0') from pgi.repository import Gtk, GLib class EntryWindow(Gtk.Window): def __init__(self): Gtk.Window.__init__(self, title="PDF Split") self.set_size_request(200, 100) self.set_border_width(10) self.timeout_id = None vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=10) self.add(vbox) self.entry = Gtk.Entry() self.entry.set_text("Entra la ruta del archivo") vbox.pack_start(self.entry, True, True, 0) hbox = Gtk.Box(spacing=6) self.add(hbox) button = Gtk.Button.new_with_label("Click Me") button.connect("clicked", self.on_click_me_clicked) hbox.pack_start(button, True, True, 0) button = Gtk.Button.new_with_mnemonic("_Open") button.connect("clicked", self.on_open_clicked) hbox.pack_start(button, True, True, 0)
#!/usr/bin/python # Copyright 2014 Christoph Reiter # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. import os import requests from multiprocessing import Pool import pgi pgi.require_version("Gtk", "3.0") from pgi.repository import Gtk DESTINATION = os.path.join("data", "clsimages", "Gtk-3.0") GTK_MAPPING = { "Gtk.Button": "button", "Gtk.Switch": "switch", "Gtk.ToggleButton": "toggle-button", "Gtk.CheckButton": "check-button", "Gtk.LinkButton": "link-button", "Gtk.MenuButton": "menu-button", "Gtk.LockButton": "lock-button", "Gtk.Entry": "entry", "Gtk.SearchEntry": "search-entry", "Gtk.RadioButton": "radio-group",
''' rmtoo Free and Open Source Requirements Management Tool First GUI: This is read only. (c) 2012,2017 by flonatel GmbH & Co. KG For licensing details see COPYING ''' import pgi pgi.require_version('Gtk', '3.0') # noqa: E402 from pgi.repository import Gtk, GObject import sys from rmtoo.lib.main.MainHelper import MainHelper from rmtoo.lib.RMTException import RMTException from rmtoo.lib.TopicContinuumSet import TopicContinuumSet, \ TopicContinuumSetIterator def advance(iter, n): for i in range(0, n): iter.next() class GTMIterator: def __init__(self, iterator, type_name): self.__iterator = iterator
''' rmtoo Free and Open Source Requirements Management Tool First GUI: This is read only. (c) 2012,2017 by flonatel GmbH & Co. KG For licensing details see COPYING ''' import pgi pgi.require_version('Gtk', '3.0') # noqa: E402 from pgi.repository import Gtk, GObject import sys from rmtoo.lib.main.MainHelper import MainHelper from rmtoo.lib.RMTException import RMTException from rmtoo.lib.TopicContinuumSet import TopicContinuumSet, \ TopicContinuumSetIterator def advance(iter, n): for i in range(0, n): iter.next() class GTMIterator: def __init__(self, iterator, type_name):
# -*- coding: utf-8 -*- # Copyright 2013 Christoph Reiter # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. import os import unittest import pgi pgi.require_version("Gtk", "3.0") from pgidocgen.util import is_staticmethod, \ is_method_owner, is_fundamental, is_object, instance_to_rest, \ get_child_properties, fake_subclasses, get_style_properties, \ unescape_parameter, fake_bases, is_attribute_owner, unindent, \ get_csv_line, get_signature_string class TUtil(unittest.TestCase): def test_get_signature_string(self): from pgi.repository import GLib, Gio func = GLib.Error.__init__ assert get_signature_string(func) == "()" assert get_signature_string(GLib.IOChannel.new_file) == \ "(filename, mode)" assert get_signature_string(GLib.IOChannel) == \
import socket import signal import asyncio import logging.config from asyncio import StreamReader, StreamWriter from time import sleep once = True linux, windows = (None, ) * 2 try: import pgi as linux linux.install_as_gi() linux.require_version('Notify', '0.7') from pgi.repository import Notify Notify.init('Client Notifier') except ImportError: linux, Notify = (None, ) * 2 if not linux: try: import win10toast as windows except ImportError: windows = None if linux: def get_icon(state): _state = state.lower()
import numpy as np from django.conf import settings from django.core import checks from PIL import Image from shapely.affinity import translate from shapely.geometry import LineString, Polygon # import gobject-inspect, cairo and rsvg if the native rsvg SVG_RENDERER should be used from shapely.ops import unary_union from c3nav.mapdata.render.engines.base import FillAttribs, RenderEngine, StrokeAttribs if settings.SVG_RENDERER == 'rsvg': import pgi import cairocffi pgi.require_version('Rsvg', '2.0') from pgi.repository import Rsvg @checks.register() def check_svg_renderer(app_configs, **kwargs): errors = [] if settings.SVG_RENDERER not in ('rsvg', 'rsvg-convert', 'inkscape'): errors.append( checks.Error( 'Invalid SVG renderer: ' + settings.SVG_RENDERER, obj='settings.SVG_RENDERER', id='c3nav.mapdata.E002', )) return errors
import sys import warnings from pgi.overrides import override, get_introspection_module, \ strip_boolean_result from pgi.util import PyGIDeprecationWarning from pgi import require_version Gdk = get_introspection_module('Gdk') __all__ = [] # https://bugzilla.gnome.org/show_bug.cgi?id=673396 try: require_version("GdkX11", Gdk._version) from pgi.repository import GdkX11 GdkX11 # pyflakes except (ValueError, ImportError): pass class Color(Gdk.Color): MAX_VALUE = 65535 def __init__(self, red, green, blue): Gdk.Color.__init__(self) self.red = red self.green = green self.blue = blue
#!/usr/bin/env python # https://github.com/cvzi/py_save_face_xmp import pgi import os import platform import tempfile import random import shutil import cv2 import subprocess import numpy as np pgi.require_version('GExiv2', '0.10') from pgi.repository import GExiv2 #https://git.gnome.org/browse/gexiv2/tree/gexiv2/gexiv2-metadata.h class Imagedata(GExiv2.Metadata): def __init__(self, filename): super(Imagedata, self).__init__() self.open_path(filename) def save_file(self, path): super(Imagedata, self).save_file(path) def get_tags(self): return self.get_exif_tags() + self.get_iptc_tags() + self.get_xmp_tags() def get(self, key, default=None): return self.get_tag_string(key) if self.has_tag(key) else default
import numpy as np from django.conf import settings from django.core import checks from PIL import Image from shapely.affinity import translate from shapely.geometry import LineString, Polygon # import gobject-inspect, cairo and rsvg if the native rsvg SVG_RENDERER should be used from shapely.ops import unary_union from c3nav.mapdata.render.engines.base import FillAttribs, RenderEngine, StrokeAttribs if settings.SVG_RENDERER == 'rsvg': import pgi import cairocffi pgi.require_version('Rsvg', '2.0') from pgi.repository import Rsvg @checks.register() def check_svg_renderer(app_configs, **kwargs): errors = [] if settings.SVG_RENDERER not in ('rsvg', 'rsvg-convert', 'inkscape'): errors.append( checks.Error( 'Invalid SVG renderer: '+settings.SVG_RENDERER, obj='settings.SVG_RENDERER', id='c3nav.mapdata.E002', ) ) return errors