From: Dave Andreoli Date: Sat, 17 Mar 2018 09:01:24 +0000 (+0100) Subject: Pyolian: new API eolian_object_unit_get X-Git-Tag: upstream/1.21.0~1600 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d7ea36688250587084b4492b4ebed77b2d694494;p=platform%2Fupstream%2Fefl.git Pyolian: new API eolian_object_unit_get Also implemented __repr__ for Unit and State --- diff --git a/src/scripts/pyolian/eolian.py b/src/scripts/pyolian/eolian.py index 56b7913..580cc1f 100644 --- a/src/scripts/pyolian/eolian.py +++ b/src/scripts/pyolian/eolian.py @@ -312,6 +312,8 @@ class EolianBaseObject(object): ### Main Eolian Unit ######################################################## class Eolian_Unit(EolianBaseObject): + def __repr__(self): + return "".format(self) @property def children(self): @@ -404,6 +406,9 @@ class Eolian_State(Eolian_Unit): if not _already_halted: # do not free after eolian_shutdown lib.eolian_state_free(self._obj) + def __repr__(self): + return "" % len(list(self.units)) + def file_parse(self, filepath): c_unit = lib.eolian_state_file_parse(self._obj, _str_to_bytes(filepath)) return Eolian_Unit(c_unit) if c_unit else None @@ -573,6 +578,11 @@ class Object(EolianBaseObject): return "".format(self) @cached_property + def unit(self): + c_unit = lib.eolian_object_unit_get(self._obj) + return Eolian_Unit(c_unit) if c_unit else None + + @cached_property def name(self): return _str_to_py(lib.eolian_object_name_get(self._obj)) diff --git a/src/scripts/pyolian/eolian_lib.py b/src/scripts/pyolian/eolian_lib.py index 4b79265..8d3f830 100644 --- a/src/scripts/pyolian/eolian_lib.py +++ b/src/scripts/pyolian/eolian_lib.py @@ -196,6 +196,10 @@ lib.eolian_unit_globals_get.restype = c_void_p lib.eolian_object_type_get.argtypes = [c_void_p] lib.eolian_object_type_get.restype = c_int +# EAPI const Eolian_Unit *eolian_object_unit_get(const Eolian_Object *obj); +lib.eolian_object_unit_get.argtypes = [c_void_p,] +lib.eolian_object_unit_get.restype = c_void_p + # EAPI const char *eolian_object_file_get(const Eolian_Object *obj); lib.eolian_object_file_get.argtypes = [c_void_p] lib.eolian_object_file_get.restype = c_char_p diff --git a/src/scripts/pyolian/test_eolian.py b/src/scripts/pyolian/test_eolian.py index 5ce260e..39936bb 100755 --- a/src/scripts/pyolian/test_eolian.py +++ b/src/scripts/pyolian/test_eolian.py @@ -270,6 +270,11 @@ class TestEolianObject(unittest.TestCase): self.assertIsInstance(obj, eolian.Class) self.assertEqual(obj.name, 'Efl.Ui.Frame') + def test_unit(self): + obj = eolian_db.object_by_name_get('Efl.Ui.Frame') + self.assertIsInstance(obj.unit, eolian.Eolian_Unit) + self.assertEqual(obj.unit.file, 'efl_ui_frame.eo') + def test_name(self): obj = eolian_db.object_by_name_get('Efl.Ui.Frame') self.assertEqual(obj.name, 'Efl.Ui.Frame')