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()
Пример #2
0
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()
Пример #4
0
---
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(
Пример #5
0
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)
Пример #6
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",
Пример #7
0
'''
 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
Пример #8
0
'''
 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):
Пример #9
0
# -*- 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) == \
Пример #10
0
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()
Пример #11
0
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
Пример #12
0
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
Пример #13
0
#!/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
Пример #14
0
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