[tepache] Inital import (#710194)

Richard Shaw hobbes1069 at fedoraproject.org
Fri Jun 3 20:38:22 UTC 2011


commit e98851864649c9fdb69c81f30ad3e4362b05eeee
Author: Richard M. Shaw <hobbes1069 at gmail.com>
Date:   Fri Jun 3 15:38:12 2011 -0500

    Inital import (#710194)

 sources                   |    1 +
 tepache-1.1.2-rev_6.patch |  782 +++++++++++++++++++++++++++++++++++++++++++++
 tepache.spec              |   46 +++
 3 files changed, 829 insertions(+), 0 deletions(-)
---
diff --git a/sources b/sources
index e69de29..38f847d 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+b7a560d05a96f9cd7e374ef74a36c8cb  tepache-1.1.2.tar.gz
diff --git a/tepache-1.1.2-rev_6.patch b/tepache-1.1.2-rev_6.patch
new file mode 100644
index 0000000..3ce209c
--- /dev/null
+++ b/tepache-1.1.2-rev_6.patch
@@ -0,0 +1,782 @@
+=== added file '.bzrignore'
+--- .bzrignore	1970-01-01 00:00:00 +0000
++++ .bzrignore	2009-06-12 02:12:35 +0000
+@@ -0,0 +1,2 @@
++build
++dist
+
+=== modified file 'README'
+--- README	2008-03-24 01:15:41 +0000
++++ README	2009-06-12 02:12:35 +0000
+@@ -5,10 +5,8 @@
+ Mantainer:
+     Jorge "kad" Gallegos <kad at blegh.net>
+ Current version:
+-    1.1.1
+-Release date:
+-    Mar 23 2008
+-                     
++    1.2
++
+ 
+ License
+ -------
+
+=== added file 'SimpleGladeApp.py'
+--- SimpleGladeApp.py	1970-01-01 00:00:00 +0000
++++ SimpleGladeApp.py	2009-06-12 02:12:35 +0000
+@@ -0,0 +1,344 @@
++#!/usr/bin/env python
++
++"""
++ SimpleGladeApp.py
++ Module that provides an object oriented abstraction to pygtk and libglade.
++ Copyright (C) 2004 Sandino Flores Moreno
++"""
++
++# 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.
++#
++# This library is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++# Lesser General Public License for more details.
++#
++# You should have received a copy of the GNU Lesser General Public
++# License along with this library; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
++# USA
++
++import os
++import sys
++import re
++
++import tokenize
++import gtk
++import gtk.glade
++import weakref
++import inspect
++
++__version__ = "1.0"
++__author__ = 'Sandino "tigrux" Flores-Moreno'
++
++def bindtextdomain(app_name, locale_dir=None):
++    """    
++    Bind the domain represented by app_name to the locale directory locale_dir.
++    It has the effect of loading translations, enabling applications for different
++    languages.
++
++    app_name:
++        a domain to look for translations, tipically the name of an application.
++
++    locale_dir:
++        a directory with locales like locale_dir/lang_isocode/LC_MESSAGES/app_name.mo
++        If omitted or None, then the current binding for app_name is used.
++    """    
++    try:
++        import locale
++        import gettext
++        locale.setlocale(locale.LC_ALL, "")
++        gtk.glade.bindtextdomain(app_name, locale_dir)
++        gettext.install(app_name, locale_dir, unicode=1)
++    except (IOError,locale.Error), e:
++        print "Warning", app_name, e
++        __builtins__.__dict__["_"] = lambda x : x
++
++
++class SimpleGladeApp:
++
++    def __init__(self, path, root=None, domain=None, **kwargs):
++        """
++        Load a glade file specified by glade_filename, using root as
++        root widget and domain as the domain for translations.
++
++        If it receives extra named arguments (argname=value), then they are used
++        as attributes of the instance.
++
++        path:
++            path to a glade filename.
++            If glade_filename cannot be found, then it will be searched in the
++            same directory of the program (sys.argv[0])
++
++        root:
++            the name of the widget that is the root of the user interface,
++            usually a window or dialog (a top level widget).
++            If None or ommited, the full user interface is loaded.
++
++        domain:
++            A domain to use for loading translations.
++            If None or ommited, no translation is loaded.
++
++        **kwargs:
++            a dictionary representing the named extra arguments.
++            It is useful to set attributes of new instances, for example:
++                glade_app = SimpleGladeApp("ui.glade", foo="some value", bar="another value")
++            sets two attributes (foo and bar) to glade_app.
++        """        
++        if os.path.isfile(path):
++            self.glade_path = path
++        else:
++            glade_dir = os.path.dirname( sys.argv[0] )
++            self.glade_path = os.path.join(glade_dir, path)
++        for key, value in kwargs.items():
++            try:
++                setattr(self, key, weakref.proxy(value) )
++            except TypeError:
++                setattr(self, key, value)
++        self.glade = None
++        self.install_custom_handler(self.custom_handler)
++        self.glade = self.create_glade(self.glade_path, root, domain)
++        if root:
++            self.main_widget = self.get_widget(root)
++        else:
++            self.main_widget = None
++        self.normalize_names()
++        self.add_callbacks(self)
++        self.new()
++
++    def __repr__(self):
++        class_name = self.__class__.__name__
++        if self.main_widget:
++            root = gtk.Widget.get_name(self.main_widget)
++            repr = '%s(path="%s", root="%s")' % (class_name, self.glade_path, root)
++        else:
++            repr = '%s(path="%s")' % (class_name, self.glade_path)
++        return repr
++
++    def new(self):
++        """
++        Method called when the user interface is loaded and ready to be used.
++        At this moment, the widgets are loaded and can be refered as self.widget_name
++        """
++        pass
++
++    def add_callbacks(self, callbacks_proxy):
++        """
++        It uses the methods of callbacks_proxy as callbacks.
++        The callbacks are specified by using:
++            Properties window -> Signals tab
++            in glade-2 (or any other gui designer like gazpacho).
++
++        Methods of classes inheriting from SimpleGladeApp are used as
++        callbacks automatically.
++
++        callbacks_proxy:
++            an instance with methods as code of callbacks.
++            It means it has methods like on_button1_clicked, on_entry1_activate, etc.
++        """        
++        self.glade.signal_autoconnect(callbacks_proxy)
++
++    def normalize_names(self):
++        """
++        It is internally used to normalize the name of the widgets.
++        It means a widget named foo:vbox-dialog in glade
++        is refered self.vbox_dialog in the code.
++
++        It also sets a data "prefixes" with the list of
++        prefixes a widget has for each widget.
++        """
++        for widget in self.get_widgets():
++            widget_name = gtk.Widget.get_name(widget)
++            prefixes_name_l = widget_name.split(":")
++            prefixes = prefixes_name_l[ : -1]
++            widget_api_name = prefixes_name_l[-1]
++            widget_api_name = "_".join( re.findall(tokenize.Name, widget_api_name) )
++            gtk.Widget.set_name(widget, widget_api_name)
++            if hasattr(self, widget_api_name):
++                raise AttributeError("instance %s already has an attribute %s" % (self,widget_api_name))
++            else:
++                setattr(self, widget_api_name, widget)
++                if prefixes:
++                    gtk.Widget.set_data(widget, "prefixes", prefixes)
++
++    def add_prefix_actions(self, prefix_actions_proxy):
++        """
++        By using a gui designer (glade-2, gazpacho, etc)
++        widgets can have a prefix in theirs names
++        like foo:entry1 or foo:label3
++        It means entry1 and label3 has a prefix action named foo.
++
++        Then, prefix_actions_proxy must have a method named prefix_foo which
++        is called everytime a widget with prefix foo is found, using the found widget
++        as argument.
++
++        prefix_actions_proxy:
++            An instance with methods as prefix actions.
++            It means it has methods like prefix_foo, prefix_bar, etc.
++        """        
++        prefix_s = "prefix_"
++        prefix_pos = len(prefix_s)
++
++        is_method = lambda t : callable( t[1] )
++        is_prefix_action = lambda t : t[0].startswith(prefix_s)
++        drop_prefix = lambda (k,w): (k[prefix_pos:],w)
++
++        members_t = inspect.getmembers(prefix_actions_proxy)
++        methods_t = filter(is_method, members_t)
++        prefix_actions_t = filter(is_prefix_action, methods_t)
++        prefix_actions_d = dict( map(drop_prefix, prefix_actions_t) )
++
++        for widget in self.get_widgets():
++            prefixes = gtk.Widget.get_data(widget, "prefixes")
++            if prefixes:
++                for prefix in prefixes:
++                    if prefix in prefix_actions_d:
++                        prefix_action = prefix_actions_d[prefix]
++                        prefix_action(widget)
++
++    def custom_handler(self,
++            glade, function_name, widget_name,
++            str1, str2, int1, int2):
++        """
++        Generic handler for creating custom widgets, internally used to
++        enable custom widgets (custom widgets of glade).
++
++        The custom widgets have a creation function specified in design time.
++        Those creation functions are always called with str1,str2,int1,int2 as
++        arguments, that are values specified in design time.
++
++        Methods of classes inheriting from SimpleGladeApp are used as
++        creation functions automatically.
++
++        If a custom widget has create_foo as creation function, then the
++        method named create_foo is called with str1,str2,int1,int2 as arguments.
++        """
++        try:
++            handler = getattr(self, function_name)
++            return handler(str1, str2, int1, int2)
++        except AttributeError:
++            return None
++
++    def gtk_widget_show(self, widget, *args):
++        """
++        Predefined callback.
++        The widget is showed.
++        Equivalent to widget.show()
++        """
++        widget.show()
++
++    def gtk_widget_hide(self, widget, *args):
++        """
++        Predefined callback.
++        The widget is hidden.
++        Equivalent to widget.hide()
++        """
++        widget.hide()
++
++    def gtk_widget_grab_focus(self, widget, *args):
++        """
++        Predefined callback.
++        The widget grabs the focus.
++        Equivalent to widget.grab_focus()
++        """
++        widget.grab_focus()
++
++    def gtk_widget_destroy(self, widget, *args):
++        """
++        Predefined callback.
++        The widget is destroyed.
++        Equivalent to widget.destroy()
++        """
++        widget.destroy()
++
++    def gtk_window_activate_default(self, window, *args):
++        """
++        Predefined callback.
++        The default widget of the window is activated.
++        Equivalent to window.activate_default()
++        """
++        widget.activate_default()
++
++    def gtk_true(self, *args):
++        """
++        Predefined callback.
++        Equivalent to return True in a callback.
++        Useful for stopping propagation of signals.
++        """
++        return True
++
++    def gtk_false(self, *args):
++        """
++        Predefined callback.
++        Equivalent to return False in a callback.
++        """
++        return False
++
++    def gtk_main_quit(self, *args):
++        """
++        Predefined callback.
++        Equivalent to self.quit()
++        """
++        self.quit()
++
++    def main(self):
++        """
++        Starts the main loop of processing events.
++        The default implementation calls gtk.main()
++
++        Useful for applications that needs a non gtk main loop.
++        For example, applications based on gstreamer needs to override
++        this method with gst.main()
++
++        Do not directly call this method in your programs.
++        Use the method run() instead.
++        """
++        gtk.main()
++
++    def quit(self):
++        """
++        Quit processing events.
++        The default implementation calls gtk.main_quit()
++        
++        Useful for applications that needs a non gtk main loop.
++        For example, applications based on gstreamer needs to override
++        this method with gst.main_quit()
++        """
++        gtk.main_quit()
++
++    def run(self):
++        """
++        Starts the main loop of processing events checking for Control-C.
++
++        The default implementation checks wheter a Control-C is pressed,
++        then calls on_keyboard_interrupt().
++
++        Use this method for starting programs.
++        """
++        try:
++            self.main()
++        except KeyboardInterrupt:
++            self.on_keyboard_interrupt()
++
++    def on_keyboard_interrupt(self):
++        """
++        This method is called by the default implementation of run()
++        after a program is finished by pressing Control-C.
++        """
++        pass
++
++    def install_custom_handler(self, custom_handler):
++        gtk.glade.set_custom_handler(custom_handler)
++
++    def create_glade(self, glade_path, root, domain):
++        return gtk.glade.XML(self.glade_path, root, domain)
++
++    def get_widget(self, widget_name):
++        return self.glade.get_widget(widget_name)
++
++    def get_widgets(self):
++        return self.glade.get_widget_prefix("")
++
+
+=== added file '__init__.py'
+=== modified file 'setup.py'
+--- setup.py	2009-01-30 08:57:32 +0000
++++ setup.py	2009-06-12 02:12:35 +0000
+@@ -4,12 +4,16 @@
+ 
+ setup(
+     name = "tepache",
+-    version = "1.1.2",
+-    description = "write a python code sketch from a glade file",
++    version = "1.2",
++    description = "Write a python code sketch from a glade file",
++    long_description = 'This programs takes a glade file and writes a python module with its events and handlers in place',
+     author = "Sandino Flores-Moreno",
+     author_email = "tigrux at ximian.com",
+-    mantainer = "Jorge A Gallegos",
+-    mantainer_email = "kad at blegh.net",
++    maintainer = "Jorge A Gallegos",
++    maintainer_email = "kad at blegh.net",
+     url = "https://launchpad.net/tepache",
+-    scripts = ['tepache']
++    download_url = 'https://launchpad.net/tepache/+download',
++    license = 'LGPL',
++    scripts = ['tepache'],
++    py_modules = ['SimpleGladeApp']
+ )
+
+=== modified file 'tepache'
+--- tepache	2009-01-30 08:23:30 +0000
++++ tepache	2009-06-12 02:12:35 +0000
+@@ -35,7 +35,7 @@
+ if not hasattr(__builtins__, "set"):
+     from sets import Set as set
+ 
+-__version__ = "1.1"
++__version__ = "1.2"
+ __autor__ = 'Sandino "tigrux" Flores-Moreno'
+ __WIN32__ = sys.platform.startswith("win")
+ 
+@@ -454,8 +454,6 @@
+     short_f = os.path.basename(output_file)
+     short_f_orig = short_f + ".orig"
+     short_f_bak = short_f + ".bak"
+-    helper_module = os.path.join(os.path.dirname(output_file),
+-        "SimpleGladeApp.py")
+     diff_file = "custom.diff"
+ 
+     exists_output_file = os.path.exists(output_file)
+@@ -502,8 +500,6 @@
+         shutil.copy(output_file, output_file_orig)
+ 
+     os.chmod(output_file, 0755)
+-    if not options.no_helper and not os.path.isfile(helper_module):
+-            open(helper_module, "w").write(SimpleGladeApp_content)
+     print "written file", output_file
+     return 0
+ 
+@@ -612,350 +608,6 @@
+ #-- main }
+ '''
+ 
+-SimpleGladeApp_content = '''\
+-"""
+- SimpleGladeApp.py
+- Module that provides an object oriented abstraction to pygtk and libglade.
+- Copyright (C) 2004 Sandino Flores Moreno
+-"""
+-
+-# 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.
+-#
+-# This library is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-# Lesser General Public License for more details.
+-#
+-# You should have received a copy of the GNU Lesser General Public
+-# License along with this library; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+-# USA
+-
+-import os
+-import sys
+-import re
+-
+-import tokenize
+-import gtk
+-import gtk.glade
+-import weakref
+-import inspect
+-
+-__version__ = "1.0"
+-__author__ = 'Sandino "tigrux" Flores-Moreno'
+-
+-def bindtextdomain(app_name, locale_dir=None):
+-    """    
+-    Bind the domain represented by app_name to the locale directory locale_dir.
+-    It has the effect of loading translations, enabling applications for different
+-    languages.
+-
+-    app_name:
+-        a domain to look for translations, tipically the name of an application.
+-
+-    locale_dir:
+-        a directory with locales like locale_dir/lang_isocode/LC_MESSAGES/app_name.mo
+-        If omitted or None, then the current binding for app_name is used.
+-    """    
+-    try:
+-        import locale
+-        import gettext
+-        locale.setlocale(locale.LC_ALL, "")
+-        gtk.glade.bindtextdomain(app_name, locale_dir)
+-        gettext.install(app_name, locale_dir, unicode=1)
+-    except (IOError,locale.Error), e:
+-        print "Warning", app_name, e
+-        __builtins__.__dict__["_"] = lambda x : x
+-
+-
+-class SimpleGladeApp:
+-
+-    def __init__(self, path, root=None, domain=None, **kwargs):
+-        """
+-        Load a glade file specified by glade_filename, using root as
+-        root widget and domain as the domain for translations.
+-
+-        If it receives extra named arguments (argname=value), then they are used
+-        as attributes of the instance.
+-
+-        path:
+-            path to a glade filename.
+-            If glade_filename cannot be found, then it will be searched in the
+-            same directory of the program (sys.argv[0])
+-
+-        root:
+-            the name of the widget that is the root of the user interface,
+-            usually a window or dialog (a top level widget).
+-            If None or ommited, the full user interface is loaded.
+-
+-        domain:
+-            A domain to use for loading translations.
+-            If None or ommited, no translation is loaded.
+-
+-        **kwargs:
+-            a dictionary representing the named extra arguments.
+-            It is useful to set attributes of new instances, for example:
+-                glade_app = SimpleGladeApp("ui.glade", foo="some value", bar="another value")
+-            sets two attributes (foo and bar) to glade_app.
+-        """        
+-        if os.path.isfile(path):
+-            self.glade_path = path
+-        else:
+-            glade_dir = os.path.dirname( sys.argv[0] )
+-            self.glade_path = os.path.join(glade_dir, path)
+-        for key, value in kwargs.items():
+-            try:
+-                setattr(self, key, weakref.proxy(value) )
+-            except TypeError:
+-                setattr(self, key, value)
+-        self.glade = None
+-        self.install_custom_handler(self.custom_handler)
+-        self.glade = self.create_glade(self.glade_path, root, domain)
+-        if root:
+-            self.main_widget = self.get_widget(root)
+-        else:
+-            self.main_widget = None
+-        self.normalize_names()
+-        self.add_callbacks(self)
+-        self.new()
+-
+-    def __repr__(self):
+-        class_name = self.__class__.__name__
+-        if self.main_widget:
+-            root = gtk.Widget.get_name(self.main_widget)
+-            repr = '%s(path="%s", root="%s")' % (class_name, self.glade_path, root)
+-        else:
+-            repr = '%s(path="%s")' % (class_name, self.glade_path)
+-        return repr
+-
+-    def new(self):
+-        """
+-        Method called when the user interface is loaded and ready to be used.
+-        At this moment, the widgets are loaded and can be refered as self.widget_name
+-        """
+-        pass
+-
+-    def add_callbacks(self, callbacks_proxy):
+-        """
+-        It uses the methods of callbacks_proxy as callbacks.
+-        The callbacks are specified by using:
+-            Properties window -> Signals tab
+-            in glade-2 (or any other gui designer like gazpacho).
+-
+-        Methods of classes inheriting from SimpleGladeApp are used as
+-        callbacks automatically.
+-
+-        callbacks_proxy:
+-            an instance with methods as code of callbacks.
+-            It means it has methods like on_button1_clicked, on_entry1_activate, etc.
+-        """        
+-        self.glade.signal_autoconnect(callbacks_proxy)
+-
+-    def normalize_names(self):
+-        """
+-        It is internally used to normalize the name of the widgets.
+-        It means a widget named foo:vbox-dialog in glade
+-        is refered self.vbox_dialog in the code.
+-
+-        It also sets a data "prefixes" with the list of
+-        prefixes a widget has for each widget.
+-        """
+-        for widget in self.get_widgets():
+-            widget_name = gtk.Widget.get_name(widget)
+-            prefixes_name_l = widget_name.split(":")
+-            prefixes = prefixes_name_l[ : -1]
+-            widget_api_name = prefixes_name_l[-1]
+-            widget_api_name = "_".join( re.findall(tokenize.Name, widget_api_name) )
+-            gtk.Widget.set_name(widget, widget_api_name)
+-            if hasattr(self, widget_api_name):
+-                raise AttributeError("instance %s already has an attribute %s" % (self,widget_api_name))
+-            else:
+-                setattr(self, widget_api_name, widget)
+-                if prefixes:
+-                    gtk.Widget.set_data(widget, "prefixes", prefixes)
+-
+-    def add_prefix_actions(self, prefix_actions_proxy):
+-        """
+-        By using a gui designer (glade-2, gazpacho, etc)
+-        widgets can have a prefix in theirs names
+-        like foo:entry1 or foo:label3
+-        It means entry1 and label3 has a prefix action named foo.
+-
+-        Then, prefix_actions_proxy must have a method named prefix_foo which
+-        is called everytime a widget with prefix foo is found, using the found widget
+-        as argument.
+-
+-        prefix_actions_proxy:
+-            An instance with methods as prefix actions.
+-            It means it has methods like prefix_foo, prefix_bar, etc.
+-        """        
+-        prefix_s = "prefix_"
+-        prefix_pos = len(prefix_s)
+-
+-        is_method = lambda t : callable( t[1] )
+-        is_prefix_action = lambda t : t[0].startswith(prefix_s)
+-        drop_prefix = lambda (k,w): (k[prefix_pos:],w)
+-
+-        members_t = inspect.getmembers(prefix_actions_proxy)
+-        methods_t = filter(is_method, members_t)
+-        prefix_actions_t = filter(is_prefix_action, methods_t)
+-        prefix_actions_d = dict( map(drop_prefix, prefix_actions_t) )
+-
+-        for widget in self.get_widgets():
+-            prefixes = gtk.Widget.get_data(widget, "prefixes")
+-            if prefixes:
+-                for prefix in prefixes:
+-                    if prefix in prefix_actions_d:
+-                        prefix_action = prefix_actions_d[prefix]
+-                        prefix_action(widget)
+-
+-    def custom_handler(self,
+-            glade, function_name, widget_name,
+-            str1, str2, int1, int2):
+-        """
+-        Generic handler for creating custom widgets, internally used to
+-        enable custom widgets (custom widgets of glade).
+-
+-        The custom widgets have a creation function specified in design time.
+-        Those creation functions are always called with str1,str2,int1,int2 as
+-        arguments, that are values specified in design time.
+-
+-        Methods of classes inheriting from SimpleGladeApp are used as
+-        creation functions automatically.
+-
+-        If a custom widget has create_foo as creation function, then the
+-        method named create_foo is called with str1,str2,int1,int2 as arguments.
+-        """
+-        try:
+-            handler = getattr(self, function_name)
+-            return handler(str1, str2, int1, int2)
+-        except AttributeError:
+-            return None
+-
+-    def gtk_widget_show(self, widget, *args):
+-        """
+-        Predefined callback.
+-        The widget is showed.
+-        Equivalent to widget.show()
+-        """
+-        widget.show()
+-
+-    def gtk_widget_hide(self, widget, *args):
+-        """
+-        Predefined callback.
+-        The widget is hidden.
+-        Equivalent to widget.hide()
+-        """
+-        widget.hide()
+-
+-    def gtk_widget_grab_focus(self, widget, *args):
+-        """
+-        Predefined callback.
+-        The widget grabs the focus.
+-        Equivalent to widget.grab_focus()
+-        """
+-        widget.grab_focus()
+-
+-    def gtk_widget_destroy(self, widget, *args):
+-        """
+-        Predefined callback.
+-        The widget is destroyed.
+-        Equivalent to widget.destroy()
+-        """
+-        widget.destroy()
+-
+-    def gtk_window_activate_default(self, window, *args):
+-        """
+-        Predefined callback.
+-        The default widget of the window is activated.
+-        Equivalent to window.activate_default()
+-        """
+-        widget.activate_default()
+-
+-    def gtk_true(self, *args):
+-        """
+-        Predefined callback.
+-        Equivalent to return True in a callback.
+-        Useful for stopping propagation of signals.
+-        """
+-        return True
+-
+-    def gtk_false(self, *args):
+-        """
+-        Predefined callback.
+-        Equivalent to return False in a callback.
+-        """
+-        return False
+-
+-    def gtk_main_quit(self, *args):
+-        """
+-        Predefined callback.
+-        Equivalent to self.quit()
+-        """
+-        self.quit()
+-
+-    def main(self):
+-        """
+-        Starts the main loop of processing events.
+-        The default implementation calls gtk.main()
+-
+-        Useful for applications that needs a non gtk main loop.
+-        For example, applications based on gstreamer needs to override
+-        this method with gst.main()
+-
+-        Do not directly call this method in your programs.
+-        Use the method run() instead.
+-        """
+-        gtk.main()
+-
+-    def quit(self):
+-        """
+-        Quit processing events.
+-        The default implementation calls gtk.main_quit()
+-        
+-        Useful for applications that needs a non gtk main loop.
+-        For example, applications based on gstreamer needs to override
+-        this method with gst.main_quit()
+-        """
+-        gtk.main_quit()
+-
+-    def run(self):
+-        """
+-        Starts the main loop of processing events checking for Control-C.
+-
+-        The default implementation checks wheter a Control-C is pressed,
+-        then calls on_keyboard_interrupt().
+-
+-        Use this method for starting programs.
+-        """
+-        try:
+-            self.main()
+-        except KeyboardInterrupt:
+-            self.on_keyboard_interrupt()
+-
+-    def on_keyboard_interrupt(self):
+-        """
+-        This method is called by the default implementation of run()
+-        after a program is finished by pressing Control-C.
+-        """
+-        pass
+-
+-    def install_custom_handler(self, custom_handler):
+-        gtk.glade.set_custom_handler(custom_handler)
+-
+-    def create_glade(self, glade_path, root, domain):
+-        return gtk.glade.XML(self.glade_path, root, domain)
+-
+-    def get_widget(self, widget_name):
+-        return self.glade.get_widget(widget_name)
+-
+-    def get_widgets(self):
+-        return self.glade.get_widget_prefix("")        
+-'''
+-
+ if __name__ == "__main__":
+     exit_code = main()
+     sys.exit(exit_code)
+
diff --git a/tepache.spec b/tepache.spec
new file mode 100644
index 0000000..fda79af
--- /dev/null
+++ b/tepache.spec
@@ -0,0 +1,46 @@
+Name:           tepache
+Version:        1.1.2
+Release:        1%{?dist}
+Summary:        Code sketcher for python
+
+Group:          Development/Tools
+License:        LGPLv2+
+URL:            http://launchpad.net/tepache
+Source0:        http://launchpad.net/tepache/trunk/%{version}/+download/%{name}-%{version}.tar.gz
+Patch0:         tepache-1.1.2-rev_6.patch
+
+BuildArch:      noarch
+BuildRequires:  python2-devel
+
+%description
+Tepache is a code sketcher for python that uses pygtk and glade. It could look
+like other glade codegens, but it is totally different. Not a glade
+codegen but a code sketcher.
+
+
+%prep
+%setup -q
+%patch0
+
+
+%build
+%{__python} setup.py build
+
+
+%install
+%{__python} setup.py install -O1 --skip-build --root %{buildroot}
+
+# Python scripts in site-packages should not be executible
+sed -i -e 's,#!/usr/bin/env python,#,g' %{buildroot}%{python_sitelib}/*.py
+
+ 
+%files
+%defattr(-,root,root,-)
+%doc README
+%{_bindir}/tepache
+%{python_sitelib}/*
+
+
+%changelog
+* Wed Jun 01 2011 - Richard Shaw <hobbes1069 at gmail.com> - 1.1.2-1
+- Initial release.


More information about the scm-commits mailing list