summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog13
-rw-r--r--glib/glibmodule.c66
-rw-r--r--gobject/__init__.py10
-rw-r--r--gobject/gobjectmodule.c85
-rw-r--r--tests/test_gio.py30
-rw-r--r--tests/test_mainloop.py6
-rw-r--r--tests/test_source.py22
-rw-r--r--tests/test_subprocess.py10
-rw-r--r--tests/test_thread.py9
9 files changed, 151 insertions, 100 deletions
diff --git a/ChangeLog b/ChangeLog
index 3877cf8..8698389 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,18 @@
2008-07-26 Johan Dahlin <johan@gnome.org>
+ * glib/glibmodule.c (pyglib_register_constants), (init_glib):
+ * gobject/__init__.py:
+ * gobject/gobjectmodule.c (init_gobject):
+ Move over glib constants to gobject
+ * tests/test_gio.py:
+ * tests/test_mainloop.py:
+ * tests/test_source.py:
+ * tests/test_subprocess.py:
+ * tests/test_thread.py:
+ Update tests to refer to glib when appropriate
+
+2008-07-26 Johan Dahlin <johan@gnome.org>
+
* README:
* configure.ac:
Bump required glib version to 2.10
diff --git a/glib/glibmodule.c b/glib/glibmodule.c
index 0abf505..b4a5b09 100644
--- a/glib/glibmodule.c
+++ b/glib/glibmodule.c
@@ -618,14 +618,78 @@ pyglib_register_version_tuples(PyObject *d)
Py_DECREF(o);
}
+static void
+pyglib_register_constants(PyObject *m)
+{
+
+ PyModule_AddIntConstant(m, "SPAWN_LEAVE_DESCRIPTORS_OPEN",
+ G_SPAWN_LEAVE_DESCRIPTORS_OPEN);
+ PyModule_AddIntConstant(m, "SPAWN_DO_NOT_REAP_CHILD",
+ G_SPAWN_DO_NOT_REAP_CHILD);
+ PyModule_AddIntConstant(m, "SPAWN_SEARCH_PATH",
+ G_SPAWN_SEARCH_PATH);
+ PyModule_AddIntConstant(m, "SPAWN_STDOUT_TO_DEV_NULL",
+ G_SPAWN_STDOUT_TO_DEV_NULL);
+ PyModule_AddIntConstant(m, "SPAWN_STDERR_TO_DEV_NULL",
+ G_SPAWN_STDERR_TO_DEV_NULL);
+ PyModule_AddIntConstant(m, "SPAWN_CHILD_INHERITS_STDIN",
+ G_SPAWN_CHILD_INHERITS_STDIN);
+ PyModule_AddIntConstant(m, "SPAWN_FILE_AND_ARGV_ZERO",
+ G_SPAWN_FILE_AND_ARGV_ZERO);
+
+ PyModule_AddIntConstant(m, "PRIORITY_HIGH",
+ G_PRIORITY_HIGH);
+ PyModule_AddIntConstant(m, "PRIORITY_DEFAULT",
+ G_PRIORITY_DEFAULT);
+ PyModule_AddIntConstant(m, "PRIORITY_HIGH_IDLE",
+ G_PRIORITY_HIGH_IDLE);
+ PyModule_AddIntConstant(m, "PRIORITY_DEFAULT_IDLE",
+ G_PRIORITY_DEFAULT_IDLE);
+ PyModule_AddIntConstant(m, "PRIORITY_LOW",
+ G_PRIORITY_LOW);
+
+ PyModule_AddIntConstant(m, "IO_IN", G_IO_IN);
+ PyModule_AddIntConstant(m, "IO_OUT", G_IO_OUT);
+ PyModule_AddIntConstant(m, "IO_PRI", G_IO_PRI);
+ PyModule_AddIntConstant(m, "IO_ERR", G_IO_ERR);
+ PyModule_AddIntConstant(m, "IO_HUP", G_IO_HUP);
+ PyModule_AddIntConstant(m, "IO_NVAL", G_IO_NVAL);
+
+ PyModule_AddIntConstant(m, "IO_STATUS_ERROR",
+ G_IO_STATUS_ERROR);
+ PyModule_AddIntConstant(m, "IO_STATUS_NORMAL",
+ G_IO_STATUS_NORMAL);
+ PyModule_AddIntConstant(m, "IO_STATUS_EOF",
+ G_IO_STATUS_EOF);
+ PyModule_AddIntConstant(m, "IO_STATUS_AGAIN",
+ G_IO_STATUS_AGAIN);
+ PyModule_AddIntConstant(m, "IO_FLAG_APPEND",
+ G_IO_FLAG_APPEND);
+ PyModule_AddIntConstant(m, "IO_FLAG_NONBLOCK",
+ G_IO_FLAG_NONBLOCK);
+ PyModule_AddIntConstant(m, "IO_FLAG_IS_READABLE",
+ G_IO_FLAG_IS_READABLE);
+ PyModule_AddIntConstant(m, "IO_FLAG_IS_WRITEABLE",
+ G_IO_FLAG_IS_WRITEABLE);
+ PyModule_AddIntConstant(m, "IO_FLAG_IS_SEEKABLE",
+ G_IO_FLAG_IS_SEEKABLE);
+ PyModule_AddIntConstant(m, "IO_FLAG_MASK",
+ G_IO_FLAG_MASK);
+ PyModule_AddIntConstant(m, "IO_FLAG_GET_MASK",
+ G_IO_FLAG_GET_MASK);
+ PyModule_AddIntConstant(m, "IO_FLAG_SET_MASK",
+ G_IO_FLAG_SET_MASK);
+
+}
DL_EXPORT(void)
init_glib(void)
{
PyObject *m, *d;
m = Py_InitModule("glib._glib", pyglib_functions);
- d = PyModule_GetDict(m);
+ pyglib_register_constants(m);
+ d = PyModule_GetDict(m);
pyglib_register_api(d);
pyglib_register_error(d);
pyglib_register_version_tuples(d);
diff --git a/gobject/__init__.py b/gobject/__init__.py
index eba3eaf..04b9a31 100644
--- a/gobject/__init__.py
+++ b/gobject/__init__.py
@@ -34,6 +34,15 @@ from glib import spawn_async, idle_add, timeout_add, timeout_add_seconds, \
get_prgname, set_prgname, main_depth, Pid, GError, glib_version, \
MainLoop, MainContext, main_context_default, IOChannel, Source, Idle, \
Timeout, PollFD
+from glib import SPAWN_LEAVE_DESCRIPTORS_OPEN, SPAWN_DO_NOT_REAP_CHILD, \
+ SPAWN_SEARCH_PATH, SPAWN_STDOUT_TO_DEV_NULL, SPAWN_STDERR_TO_DEV_NULL, \
+ SPAWN_CHILD_INHERITS_STDIN, SPAWN_FILE_AND_ARGV_ZERO, PRIORITY_HIGH, \
+ PRIORITY_DEFAULT, PRIORITY_HIGH_IDLE, PRIORITY_DEFAULT_IDLE, \
+ PRIORITY_LOW, IO_IN, IO_OUT, IO_PRI, IO_ERR, IO_HUP, IO_NVAL, \
+ IO_STATUS_ERROR, IO_STATUS_NORMAL, IO_STATUS_EOF, IO_STATUS_AGAIN, \
+ IO_FLAG_APPEND, IO_FLAG_NONBLOCK, IO_FLAG_IS_READABLE, \
+ IO_FLAG_IS_WRITEABLE, IO_FLAG_IS_SEEKABLE, IO_FLAG_MASK, \
+ IO_FLAG_GET_MASK, IO_FLAG_SET_MASK
from gobject.constants import *
from _gobject import *
@@ -41,6 +50,7 @@ _PyGObject_API = _gobject._PyGObject_API
from propertyhelper import property
+
class GObjectMeta(type):
"Metaclass for automatically registering GObject classes"
def __init__(cls, name, bases, dict_):
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c
index a6da00f..81b8892 100644
--- a/gobject/gobjectmodule.c
+++ b/gobject/gobjectmodule.c
@@ -2795,67 +2795,30 @@ init_gobject(void)
PyModule_AddIntConstant(m, "PARAM_LAX_VALIDATION", G_PARAM_LAX_VALIDATION);
PyModule_AddIntConstant(m, "PARAM_READWRITE", G_PARAM_READWRITE);
- PyModule_AddIntConstant(m, "PRIORITY_HIGH", G_PRIORITY_HIGH);
- PyModule_AddIntConstant(m, "PRIORITY_DEFAULT", G_PRIORITY_DEFAULT);
- PyModule_AddIntConstant(m, "PRIORITY_HIGH_IDLE", G_PRIORITY_HIGH_IDLE);
- PyModule_AddIntConstant(m, "PRIORITY_DEFAULT_IDLE",G_PRIORITY_DEFAULT_IDLE);
- PyModule_AddIntConstant(m, "PRIORITY_LOW", G_PRIORITY_LOW);
-
- PyModule_AddIntConstant(m, "IO_IN", G_IO_IN);
- PyModule_AddIntConstant(m, "IO_OUT", G_IO_OUT);
- PyModule_AddIntConstant(m, "IO_PRI", G_IO_PRI);
- PyModule_AddIntConstant(m, "IO_ERR", G_IO_ERR);
- PyModule_AddIntConstant(m, "IO_HUP", G_IO_HUP);
- PyModule_AddIntConstant(m, "IO_NVAL", G_IO_NVAL);
-
-#define addint(x) PyModule_AddIntConstant(m, #x, G_##x)
-
- addint(IO_STATUS_ERROR);
- addint(IO_STATUS_NORMAL);
- addint(IO_STATUS_EOF);
- addint(IO_STATUS_AGAIN);
-
- addint(IO_FLAG_APPEND);
- addint(IO_FLAG_NONBLOCK);
- addint(IO_FLAG_IS_READABLE);
- addint(IO_FLAG_IS_WRITEABLE);
- addint(IO_FLAG_IS_SEEKABLE);
- addint(IO_FLAG_MASK);
- addint(IO_FLAG_GET_MASK);
- addint(IO_FLAG_SET_MASK);
-
- addint(OPTION_FLAG_HIDDEN);
- addint(OPTION_FLAG_IN_MAIN);
- addint(OPTION_FLAG_REVERSE);
- addint(OPTION_FLAG_NO_ARG);
- addint(OPTION_FLAG_FILENAME);
- addint(OPTION_FLAG_OPTIONAL_ARG);
- addint(OPTION_FLAG_NOALIAS);
-
- addint(OPTION_ERROR_UNKNOWN_OPTION);
- addint(OPTION_ERROR_BAD_VALUE);
- addint(OPTION_ERROR_FAILED);
-
-#undef addint
-
- PyModule_AddStringConstant(m, "OPTION_REMAINING", G_OPTION_REMAINING);
-
- PyModule_AddStringConstant(m, "OPTION_ERROR", (char*) g_quark_to_string(G_OPTION_ERROR));
-
- PyModule_AddIntConstant(m, "SPAWN_LEAVE_DESCRIPTORS_OPEN",
- G_SPAWN_LEAVE_DESCRIPTORS_OPEN);
- PyModule_AddIntConstant(m, "SPAWN_DO_NOT_REAP_CHILD",
- G_SPAWN_DO_NOT_REAP_CHILD);
- PyModule_AddIntConstant(m, "SPAWN_SEARCH_PATH",
- G_SPAWN_SEARCH_PATH);
- PyModule_AddIntConstant(m, "SPAWN_STDOUT_TO_DEV_NULL",
- G_SPAWN_STDOUT_TO_DEV_NULL);
- PyModule_AddIntConstant(m, "SPAWN_STDERR_TO_DEV_NULL",
- G_SPAWN_STDERR_TO_DEV_NULL);
- PyModule_AddIntConstant(m, "SPAWN_CHILD_INHERITS_STDIN",
- G_SPAWN_CHILD_INHERITS_STDIN);
- PyModule_AddIntConstant(m, "SPAWN_FILE_AND_ARGV_ZERO",
- G_SPAWN_FILE_AND_ARGV_ZERO);
+ PyModule_AddIntConstant(m, "OPTION_FLAG_HIDDEN",
+ G_OPTION_FLAG_HIDDEN);
+ PyModule_AddIntConstant(m, "OPTION_FLAG_IN_MAIN",
+ G_OPTION_FLAG_IN_MAIN);
+ PyModule_AddIntConstant(m, "OPTION_FLAG_REVERSE",
+ G_OPTION_FLAG_REVERSE);
+ PyModule_AddIntConstant(m, "OPTION_FLAG_NO_ARG",
+ G_OPTION_FLAG_NO_ARG);
+ PyModule_AddIntConstant(m, "OPTION_FLAG_FILENAME",
+ G_OPTION_FLAG_FILENAME);
+ PyModule_AddIntConstant(m, "OPTION_FLAG_OPTIONAL_ARG",
+ G_OPTION_FLAG_OPTIONAL_ARG);
+ PyModule_AddIntConstant(m, "OPTION_FLAG_NOALIAS)",
+ G_OPTION_FLAG_NOALIAS);
+ PyModule_AddIntConstant(m, "OPTION_ERROR_UNKNOWN_OPTION",
+ G_OPTION_ERROR_UNKNOWN_OPTION);
+ PyModule_AddIntConstant(m, "OPTION_ERROR_BAD_VALUE",
+ G_OPTION_ERROR_BAD_VALUE);
+ PyModule_AddIntConstant(m, "OPTION_ERROR_FAILED",
+ G_OPTION_ERROR_FAILED);
+ PyModule_AddStringConstant(m, "OPTION_REMAINING",
+ G_OPTION_REMAINING);
+ PyModule_AddStringConstant(m, "OPTION_ERROR",
+ (char*) g_quark_to_string(G_OPTION_ERROR));
/* The rest of the types are set in __init__.py */
PyModule_AddObject(m, "TYPE_INVALID", pyg_type_wrapper_new(G_TYPE_INVALID));
diff --git a/tests/test_gio.py b/tests/test_gio.py
index 2d39220..128494f 100644
--- a/tests/test_gio.py
+++ b/tests/test_gio.py
@@ -3,7 +3,7 @@
import os
import unittest
-from common import gio, gobject
+from common import gio, glib
class TestFile(unittest.TestCase):
@@ -29,7 +29,7 @@ class TestFile(unittest.TestCase):
self.file.read_async(callback)
- loop = gobject.MainLoop()
+ loop = glib.MainLoop()
loop.run()
def testReadAsyncError(self):
@@ -87,7 +87,7 @@ class TestFile(unittest.TestCase):
canc = gio.Cancellable()
self.file.load_contents_async(callback, cancellable=canc)
- loop = gobject.MainLoop()
+ loop = glib.MainLoop()
loop.run()
def testMountMountable(self):
@@ -103,7 +103,7 @@ class TestFile(unittest.TestCase):
try:
try:
retval = gfile.mount_enclosing_volume_finish(result)
- except gobject.GError, e:
+ except glib.GError, e:
# If we run the tests too fast
if (e.domain == gio.ERROR and
e.code == gio.ERROR_ALREADY_MOUNTED):
@@ -121,7 +121,7 @@ class TestFile(unittest.TestCase):
gfile.mount_enclosing_volume(mount_operation,
mount_enclosing_volume_done)
- loop = gobject.MainLoop()
+ loop = glib.MainLoop()
loop.run()
def testCopy(self):
@@ -182,7 +182,7 @@ class TestGFileEnumerator(unittest.TestCase):
self.file.enumerate_children_async(
"standard::*", callback)
- loop = gobject.MainLoop()
+ loop = glib.MainLoop()
loop.run()
def testNextFilesAsync(self):
@@ -199,7 +199,7 @@ class TestGFileEnumerator(unittest.TestCase):
enumerator = self.file.enumerate_children(
"standard::*", gio.FILE_QUERY_INFO_NOFOLLOW_SYMLINKS)
enumerator.next_files_async(1000, callback)
- loop = gobject.MainLoop()
+ loop = glib.MainLoop()
loop.run()
@@ -229,7 +229,7 @@ class TestInputStream(unittest.TestCase):
self.stream.read_async(7, callback)
- loop = gobject.MainLoop()
+ loop = glib.MainLoop()
loop.run()
def testReadAsyncError(self):
@@ -239,14 +239,14 @@ class TestInputStream(unittest.TestCase):
self.count += 1
if self.count == 1:
return
- self.assertRaises(gobject.GError, stream.read_finish, result)
+ self.assertRaises(glib.GError, stream.read_finish, result)
finally:
loop.quit()
self.stream.read_async(10240, callback)
self.stream.read_async(10240, callback)
- loop = gobject.MainLoop()
+ loop = glib.MainLoop()
loop.run()
self.assertEquals(self.count, 2)
@@ -273,7 +273,7 @@ class TestInputStream(unittest.TestCase):
self.stream.close_async(callback)
- loop = gobject.MainLoop()
+ loop = glib.MainLoop()
loop.run()
@@ -304,21 +304,21 @@ class TestOutputStream(unittest.TestCase):
self.stream.write_async("testing", callback)
- loop = gobject.MainLoop()
+ loop = glib.MainLoop()
loop.run()
def testWriteAsyncError(self):
def callback(stream, result):
self.assertEquals(result.get_op_res_gssize(), 0)
try:
- self.assertRaises(gobject.GError, stream.write_finish, result)
+ self.assertRaises(glib.GError, stream.write_finish, result)
finally:
loop.quit()
self.stream.close()
self.stream.write_async("testing", callback)
- loop = gobject.MainLoop()
+ loop = glib.MainLoop()
loop.run()
self.assertRaises(TypeError, self.stream.write_async)
@@ -342,7 +342,7 @@ class TestOutputStream(unittest.TestCase):
self.stream.close_async(callback)
- loop = gobject.MainLoop()
+ loop = glib.MainLoop()
loop.run()
diff --git a/tests/test_mainloop.py b/tests/test_mainloop.py
index 8294642..95e5f78 100644
--- a/tests/test_mainloop.py
+++ b/tests/test_mainloop.py
@@ -6,7 +6,7 @@ import sys
import select
import unittest
-from common import gobject
+from common import glib
class TestMainLoop(unittest.TestCase):
def testExceptionHandling(self):
@@ -23,8 +23,8 @@ class TestMainLoop(unittest.TestCase):
loop.quit()
raise Exception("deadbabe")
- loop = gobject.MainLoop()
- gobject.child_watch_add(pid, child_died, loop)
+ loop = glib.MainLoop()
+ glib.child_watch_add(pid, child_died, loop)
os.close(pipe_r)
os.write(pipe_w, "Y")
diff --git a/tests/test_source.py b/tests/test_source.py
index 8e7e81c..a5118a9 100644
--- a/tests/test_source.py
+++ b/tests/test_source.py
@@ -6,11 +6,11 @@ import sys
import select
import unittest
-from common import gobject
+from common import glib, gobject
-class Idle(gobject.Idle):
+class Idle(glib.Idle):
def __init__(self, loop):
- gobject.Idle.__init__(self)
+ glib.Idle.__init__(self)
self.count = 0
self.set_callback(self.callback, loop)
@@ -18,9 +18,9 @@ class Idle(gobject.Idle):
self.count += 1
return True
-class MySource(gobject.Source):
+class MySource(glib.Source):
def __init__(self):
- gobject.Source.__init__(self)
+ glib.Source.__init__(self)
def prepare(self):
return True, 0
@@ -40,12 +40,12 @@ class TestSource(unittest.TestCase):
return True
def setup_timeout(self, loop):
- timeout = gobject.Timeout(500)
+ timeout = glib.Timeout(500)
timeout.set_callback(self.timeout_callback, loop)
timeout.attach()
def testSources(self):
- loop = gobject.MainLoop()
+ loop = glib.MainLoop()
self.setup_timeout(loop)
@@ -65,9 +65,9 @@ class TestSource(unittest.TestCase):
def testSourcePrepare(self):
# this test may not terminate if prepare() is wrapped incorrectly
dispatched = [False]
- loop = gobject.MainLoop()
+ loop = glib.MainLoop()
- class CustomTimeout(gobject.Source):
+ class CustomTimeout(glib.Source):
def prepare(self):
return (False, 10)
@@ -93,8 +93,8 @@ class TestSource(unittest.TestCase):
class TestTimeout(unittest.TestCase):
def test504337(self):
- timeout_source = gobject.Timeout(20)
- idle_source = gobject.Idle()
+ timeout_source = glib.Timeout(20)
+ idle_source = glib.Idle()
if __name__ == '__main__':
diff --git a/tests/test_subprocess.py b/tests/test_subprocess.py
index b1c7dde..8495010 100644
--- a/tests/test_subprocess.py
+++ b/tests/test_subprocess.py
@@ -4,7 +4,7 @@ import gc
import unittest
import sys
-from common import gobject
+from common import glib, gobject
class TestProcess(unittest.TestCase):
@@ -14,12 +14,12 @@ class TestProcess(unittest.TestCase):
def testChildWatch(self):
self.data = None
- self.loop = gobject.MainLoop()
+ self.loop = glib.MainLoop()
argv = [sys.executable, '-c', 'import sys']
- pid, stdin, stdout, stderr = gobject.spawn_async(
- argv, flags=gobject.SPAWN_DO_NOT_REAP_CHILD)
+ pid, stdin, stdout, stderr = glib.spawn_async(
+ argv, flags=glib.SPAWN_DO_NOT_REAP_CHILD)
pid.close()
- gobject.child_watch_add(pid, self._child_watch_cb, 12345)
+ glib.child_watch_add(pid, self._child_watch_cb, 12345)
self.loop.run()
self.assertEqual(self.data, 12345)
diff --git a/tests/test_thread.py b/tests/test_thread.py
index f1ec01a..9f77f0b 100644
--- a/tests/test_thread.py
+++ b/tests/test_thread.py
@@ -1,8 +1,9 @@
import os
import unittest
-from common import gobject, testhelper
-main = gobject.MainLoop()
+from common import glib, testhelper
+
+main = glib.MainLoop()
class TestThread(unittest.TestCase):
def from_thread_cb(self, test, enum):
@@ -16,8 +17,8 @@ class TestThread(unittest.TestCase):
self.obj.emit('emit-signal')
def testExtensionModule(self):
- gobject.idle_add(self.idle_cb)
- gobject.timeout_add(50, self.timeout_cb)
+ glib.idle_add(self.idle_cb)
+ glib.timeout_add(50, self.timeout_cb)
main.run()
def timeout_cb(self):