aboutsummaryrefslogtreecommitdiffstats
path: root/modules/plugin-python
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2012-06-19 04:08:35 +0800
committerMatthew Barnes <mbarnes@redhat.com>2012-06-19 08:48:32 +0800
commite9c96b8b790130deadc0fe88c1c18ba6355104e2 (patch)
treeaadd3e34f926ece935f0a28cadf093857bf7478a /modules/plugin-python
parent0252395e8e3a7fe24eeb2b1420e0e1db03bb0c45 (diff)
downloadgsoc2013-evolution-e9c96b8b790130deadc0fe88c1c18ba6355104e2.tar
gsoc2013-evolution-e9c96b8b790130deadc0fe88c1c18ba6355104e2.tar.gz
gsoc2013-evolution-e9c96b8b790130deadc0fe88c1c18ba6355104e2.tar.bz2
gsoc2013-evolution-e9c96b8b790130deadc0fe88c1c18ba6355104e2.tar.lz
gsoc2013-evolution-e9c96b8b790130deadc0fe88c1c18ba6355104e2.tar.xz
gsoc2013-evolution-e9c96b8b790130deadc0fe88c1c18ba6355104e2.tar.zst
gsoc2013-evolution-e9c96b8b790130deadc0fe88c1c18ba6355104e2.zip
Remove Mono and Python EPlugin bindings.
EPlugin is deprecated. These bindings have never been used for anything and they're never going to be used at this point. Remove the dead weight.
Diffstat (limited to 'modules/plugin-python')
-rw-r--r--modules/plugin-python/Makefile.am32
-rw-r--r--modules/plugin-python/e-plugin-python.c238
-rw-r--r--modules/plugin-python/e-plugin-python.h70
-rw-r--r--modules/plugin-python/evolution-module-plugin-python.c43
-rw-r--r--modules/plugin-python/example/Makefile.am30
-rw-r--r--modules/plugin-python/example/hello_python.py5
-rw-r--r--modules/plugin-python/example/org-gnome-hello-python-ui.xml16
-rw-r--r--modules/plugin-python/example/org-gnome-hello-python.eplug.xml20
8 files changed, 0 insertions, 454 deletions
diff --git a/modules/plugin-python/Makefile.am b/modules/plugin-python/Makefile.am
deleted file mode 100644
index aaeca9abc5..0000000000
--- a/modules/plugin-python/Makefile.am
+++ /dev/null
@@ -1,32 +0,0 @@
-module_LTLIBRARIES = module-plugin-python.la
-
-module_plugin_python_la_CPPFLAGS = \
- $(AM_CPPFLAGS) \
- -DG_LOG_DOMAIN=\"evolution-plugin-python\" \
- -I$(top_srcdir) \
- $(EVOLUTION_DATA_SERVER_CFLAGS) \
- $(PY_INCLUDES)
-
-module_plugin_python_la_SOURCES = \
- evolution-module-plugin-python.c \
- e-plugin-python.c \
- e-plugin-python.h
-
-module_plugin_python_la_LIBADD = \
- -ldl -lutil -lm \
- $(top_builddir)/e-util/libeutil.la \
- $(EVOLUTION_DATA_SERVER_LIBS) \
- $(PY_LIBS)
-
-module_plugin_python_la_LDFLAGS = \
- -module -avoid-version $(NO_UNDEFINED)
-
-example_sources = \
- example/hello_python.py \
- example/org-gnome-hello-python-ui.xml \
- example/org-gnome-hello-python.eplug.xml \
- example/Makefile.am
-
-EXTRA_DIST = $(example_sources)
-
--include $(top_srcdir)/git.mk
diff --git a/modules/plugin-python/e-plugin-python.c b/modules/plugin-python/e-plugin-python.c
deleted file mode 100644
index fc13ade627..0000000000
--- a/modules/plugin-python/e-plugin-python.c
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * e-plugin-python.c
- *
- * This program 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 of the License, or (at your option) version 3.
- *
- * This program 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 the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-/* Include <Python.h> first to avoid:
- * warning: "_POSIX_C_SOURCE" redefined */
-#include <Python.h>
-
-#include "e-plugin-python.h"
-
-#include <sys/types.h>
-#include <string.h>
-
-#define E_PLUGIN_PYTHON_GET_PRIVATE(obj) \
- (G_TYPE_INSTANCE_GET_PRIVATE \
- ((obj), E_TYPE_PLUGIN_PYTHON, EPluginPythonPrivate))
-
-struct _EPluginPythonPrivate {
- PyObject *pModule;
- PyObject *pClass;
- PyObject *pFunc;
- PyObject *pDict;
- GHashTable *methods;
-};
-
-static gpointer parent_class;
-static GType plugin_python_type;
-
-static gchar *
-get_xml_prop (xmlNodePtr node,
- const gchar *id)
-{
- xmlChar *prop;
- gchar *out = NULL;
-
- prop = xmlGetProp (node, (xmlChar *) id);
-
- if (prop != NULL) {
- out = g_strdup ((gchar *) prop);
- xmlFree (prop);
- }
-
- return out;
-}
-
-static void
-plugin_python_finalize (GObject *object)
-{
- EPluginPython *plugin_python;
-
- plugin_python = E_PLUGIN_PYTHON (object);
-
- g_free (plugin_python->location);
- g_free (plugin_python->module_name);
- g_free (plugin_python->pClass);
-
- g_hash_table_destroy (plugin_python->priv->methods);
-
- /* Chain up to parent's finalize() method. */
- G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
-static gint
-plugin_python_construct (EPlugin *plugin,
- xmlNodePtr root)
-{
- EPluginPython *plugin_python;
-
- /* Chain up to parent's construct() method. */
- if (E_PLUGIN_CLASS (parent_class)->construct (plugin, root) == -1)
- return -1;
-
- plugin_python = E_PLUGIN_PYTHON (plugin);
- plugin_python->location = get_xml_prop (root, "location");
- plugin_python->module_name = get_xml_prop (root, "module_name");
- plugin_python->pClass = get_xml_prop (root, "pClass");
-
- return (plugin_python->location != NULL) ? 0 : -1;
-}
-
-static gpointer
-plugin_python_invoke (EPlugin *plugin,
- const gchar *name,
- gpointer data)
-{
- EPluginPython *plugin_python;
- EPluginPythonPrivate *priv;
- PyObject *pModuleName, *pFunc;
- PyObject *pValue = NULL;
-
- plugin_python = E_PLUGIN_PYTHON (plugin);
- priv = plugin_python->priv;
-
- /* We need to do this every time since we may be called
- * from any thread for some uses. */
- Py_Initialize ();
-
- if (priv->pModule == NULL) {
- gchar *string;
-
- pModuleName = PyString_FromString (plugin_python->module_name);
-
- string = g_strdup_printf (
- "import sys; "
- "sys.path.insert(0, '%s')",
- plugin_python->location);
- PyRun_SimpleString (string);
- g_free (string);
-
- priv->pModule = PyImport_Import (pModuleName);
-
- Py_DECREF (pModuleName);
-
- if (priv->pModule == NULL) {
- PyErr_Print ();
- g_warning (
- "Can't load python module '%s'",
- plugin_python->location);
- return NULL;
- }
-
- priv->pDict = PyModule_GetDict (priv->pModule);
-
- if (plugin_python->pClass != NULL) {
- priv->pClass = PyDict_GetItemString (
- priv->pDict, plugin_python->pClass);
- }
- }
-
- if (priv->pClass) {
-
- if (PyCallable_Check (priv->pClass)) {
- PyObject *pInstance;
-
- pInstance = PyObject_CallObject (priv->pClass, NULL);
- pValue = PyObject_CallMethod (pInstance, (gchar *) name, NULL);
- }
-
- } else {
-
- pFunc = PyDict_GetItemString (priv->pDict, name);
-
- if (pFunc && PyCallable_Check (pFunc))
- pValue = PyObject_CallObject (pFunc, NULL);
- else
- PyErr_Print ();
- }
-
- if (pValue) {
- Py_DECREF (pValue);
- /* Fixme */
- return NULL;
- } else
- return NULL;
-}
-
-static void
-plugin_python_class_init (EPluginPythonClass *class)
-{
- GObjectClass *object_class;
- EPluginClass *plugin_class;
-
- parent_class = g_type_class_peek_parent (class);
- g_type_class_add_private (class, sizeof (EPluginPythonPrivate));
-
- object_class = G_OBJECT_CLASS (class);
- object_class->finalize = plugin_python_finalize;
-
- plugin_class = E_PLUGIN_CLASS (class);
- plugin_class->construct = plugin_python_construct;
- plugin_class->invoke = plugin_python_invoke;
- plugin_class->type = "python";
-}
-
-static void
-plugin_python_init (EPluginPython *plugin_python)
-{
- GHashTable *methods;
-
- methods = g_hash_table_new_full (
- g_str_hash, g_str_equal,
- (GDestroyNotify) g_free,
- (GDestroyNotify) NULL);
-
- plugin_python->priv = E_PLUGIN_PYTHON_GET_PRIVATE (plugin_python);
- plugin_python->priv->methods = methods;
-}
-
-GType
-e_plugin_python_get_type (void)
-{
- return plugin_python_type;
-}
-
-void
-e_plugin_python_register_type (GTypeModule *type_module)
-{
- static const GTypeInfo type_info = {
- sizeof (EPluginPythonClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) plugin_python_class_init,
- (GClassFinalizeFunc) NULL,
- NULL, /* class_data */
- sizeof (EPluginPython),
- 0, /* n_preallocs */
- (GInstanceInitFunc) plugin_python_init,
- NULL /* value_table */
- };
-
- plugin_python_type = g_type_module_register_type (
- type_module, E_TYPE_PLUGIN,
- "EPluginPython", &type_info, 0);
-
- /* TODO Does this mean I can cache the instance of pyobjects? */
- Py_Initialize ();
-}
diff --git a/modules/plugin-python/e-plugin-python.h b/modules/plugin-python/e-plugin-python.h
deleted file mode 100644
index 9ee780c76c..0000000000
--- a/modules/plugin-python/e-plugin-python.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * e-plugin-python.h
- *
- * This program 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 of the License, or (at your option) version 3.
- *
- * This program 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 the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- */
-
-#ifndef E_PLUGIN_PYTHON_H
-#define E_PLUGIN_PYTHON_H
-
-#include <e-util/e-plugin.h>
-
-/* Standard GObject macros */
-#define E_TYPE_PLUGIN_PYTHON \
- (e_plugin_python_get_type ())
-#define E_PLUGIN_PYTHON(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST \
- ((obj), E_TYPE_PLUGIN_PYTHON, EPluginPython))
-#define E_PLUGIN_PYTHON_CLASS(cls) \
- (G_TYPE_CHECK_CLASS_CAST \
- ((cls), E_TYPE_PLUGIN_PYTHON, EPluginPythonClass))
-#define E_IS_PLUGIN_PYTHON(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE \
- ((obj), E_TYPE_PLUGIN_PYTHON))
-#define E_IS_PLUGIN_PYTHON_CLASS(cls) \
- (G_TYPE_CHECK_CLASS_TYPE \
- ((cls), E_TYPE_PLUGIN_PYTHON))
-#define E_PLUGIN_PYTHON_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS \
- ((obj), E_TYPE_PLUGIN_PYTHON, EPluginPythonClass))
-
-G_BEGIN_DECLS
-
-typedef struct _EPluginPython EPluginPython;
-typedef struct _EPluginPythonClass EPluginPythonClass;
-typedef struct _EPluginPythonPrivate EPluginPythonPrivate;
-
-struct _EPluginPython {
- EPlugin parent;
- EPluginPythonPrivate *priv;
-
- gchar *location;
- gchar *pClass;
- gchar *module_name;
-};
-
-struct _EPluginPythonClass {
- EPluginClass parent_class;
-};
-
-GType e_plugin_python_get_type (void);
-void e_plugin_python_register_type (GTypeModule *type_module);
-
-G_END_DECLS
-
-#endif /* E_PLUGIN_PYTHON_H */
diff --git a/modules/plugin-python/evolution-module-plugin-python.c b/modules/plugin-python/evolution-module-plugin-python.c
deleted file mode 100644
index 7adeadaf05..0000000000
--- a/modules/plugin-python/evolution-module-plugin-python.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * evolution-module-plugin-python.c
- *
- * This program 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 of the License, or (at your option) version 3.
- *
- * This program 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 the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "e-plugin-python.h"
-
-/* Module Entry Points */
-void e_module_load (GTypeModule *type_module);
-void e_module_unload (GTypeModule *type_module);
-
-G_MODULE_EXPORT void
-e_module_load (GTypeModule *type_module)
-{
- /* Register dynamically loaded types. */
-
- e_plugin_python_register_type (type_module);
-}
-
-G_MODULE_EXPORT void
-e_module_unload (GTypeModule *type_module)
-{
-}
diff --git a/modules/plugin-python/example/Makefile.am b/modules/plugin-python/example/Makefile.am
deleted file mode 100644
index f9c5687982..0000000000
--- a/modules/plugin-python/example/Makefile.am
+++ /dev/null
@@ -1,30 +0,0 @@
-@EVO_PLUGIN_RULE@
-
-plugin_DATA = \
- hello_python.py \
- org-gnome-hello-python-ui.xml \
- org-gnome-hello-python.eplug
-
-liborg_gnome_py_plug_test_la_CPPFLAGS = \
- $(AM_CPPFLAGS) \
- -DEVOLUTION_UIDIR=\""$(uidir)"\" \
- -DEVOLUTION_IMAGESDIR=\""$(imagesdir)"\"
-
-liborg_gnome_py_plug_test_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
-
-errordir = $(privdatadir)/errors
-
-BUILDME = org-gnome-hello-python.eplug \
-$(error_i18n)
-
-BUILT_SOURCES = \
- $(BUILDME)
-
-EXTRA_DIST = \
- hello_python.py \
- org-gnome-hello-python-ui.xml \
- org-gnome-hello-python.eplug.xml
-
-CLEANFILES = $(BUILT_SOURCES)
-
--include $(top_srcdir)/git.mk
diff --git a/modules/plugin-python/example/hello_python.py b/modules/plugin-python/example/hello_python.py
deleted file mode 100644
index 16dc2a12f8..0000000000
--- a/modules/plugin-python/example/hello_python.py
+++ /dev/null
@@ -1,5 +0,0 @@
-'''hello_python.py - Python source designed to '''
-'''demonstrate the use of python Eplugins'''
-
-def say_hello():
- print 'Hello ! From python'
diff --git a/modules/plugin-python/example/org-gnome-hello-python-ui.xml b/modules/plugin-python/example/org-gnome-hello-python-ui.xml
deleted file mode 100644
index 074960e84d..0000000000
--- a/modules/plugin-python/example/org-gnome-hello-python-ui.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<Root>
- <commands>
- <cmd name="HelloPy" _label="Hello Python"
- _tip="Python Plugin Loader tests"
- />
- </commands>
-
- <menu>
- <placeholder name="MessagePlaceholder">
- <submenu name="Message">
- <separator f="" name="sep"/>
- <menuitem name="HelloPy" verb=""/>
- </submenu>
- </placeholder>
- </menu>
-</Root>
diff --git a/modules/plugin-python/example/org-gnome-hello-python.eplug.xml b/modules/plugin-python/example/org-gnome-hello-python.eplug.xml
deleted file mode 100644
index 8f77d5ba01..0000000000
--- a/modules/plugin-python/example/org-gnome-hello-python.eplug.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<e-plugin-list>
- <e-plugin id="org.gnome.evolution.hello_python" type="python" _name="Python Test Plugin" location="@PLUGINDIR@" module_name="hello_python">
-
- <author name="Johnny Jacob" email="jjohnny@novell.com"/>
-
- <_description>
- Test Plugin for Python EPlugin loader.
- </_description>
-
- <hook class="org.gnome.evolution.mail.bonobomenu:1.0">
- <menu id="org.gnome.evolution.mail.browser" target="select">
- <!-- the path to the bonobo menu description. Any UI items on Evolution should come here -->
- <ui file="@PLUGINDIR@/org-gnome-hello-python-ui.xml"/>
- <item type="item" verb="HelloPy" path="/commands/HelloPy" enable="one" activate="say_hello"/>
- </menu>
- </hook>
-
- </e-plugin>
-</e-plugin-list>