[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