aboutsummaryrefslogtreecommitdiffstats
path: root/src/scripts/pyolian
diff options
context:
space:
mode:
authorDave Andreoli <dave@gurumeditation.it>2018-03-01 16:35:22 +0100
committerDave Andreoli <dave@gurumeditation.it>2018-03-01 16:35:22 +0100
commit20f7d6f35fe5a9633451857bb2c79eb7dedbfc57 (patch)
treee8b8a4f3569f3fdbcd61440b0d08bb10bbcc98dd /src/scripts/pyolian
parentPyolian: new APIs for class retrieval (diff)
downloadefl-20f7d6f35fe5a9633451857bb2c79eb7dedbfc57.tar.gz
Pyolian: new variable lookup APIs
with adjusted tests
Diffstat (limited to 'src/scripts/pyolian')
-rw-r--r--src/scripts/pyolian/eolian.py65
-rw-r--r--src/scripts/pyolian/eolian_lib.py56
-rwxr-xr-xsrc/scripts/pyolian/test_eolian.py14
3 files changed, 84 insertions, 51 deletions
diff --git a/src/scripts/pyolian/eolian.py b/src/scripts/pyolian/eolian.py
index 0ce750fb05..d181a0fc60 100644
--- a/src/scripts/pyolian/eolian.py
+++ b/src/scripts/pyolian/eolian.py
@@ -350,6 +350,23 @@ class Eolian_Unit(EolianBaseObject):
return Class(c_cls) if c_cls else None
@property
+ def constants(self):
+ return Iterator(Variable, lib.eolian_unit_constants_get(self._obj))
+
+ def constant_by_name_get(self, name):
+ c_var = lib.eolian_unit_constant_by_name_get(self._obj, _str_to_bytes(name))
+ return Variable(c_var) if c_var else None
+
+ @property
+ def globals(self):
+ return Iterator(Variable, lib.eolian_unit_globals_get(self._obj))
+
+ def global_by_name_get(self, name):
+ c_var = lib.eolian_unit_global_by_name_get(self._obj, _str_to_bytes(name))
+ return Variable(c_var) if c_var else None
+
+
+ @property
def all_namespaces(self):
# TODO find a better way to find namespaces (maybe inside eolian?)
nspaces = set()
@@ -403,30 +420,6 @@ class Eolian_Unit(EolianBaseObject):
lib.eolian_typedecl_aliases_get_by_file(self._obj, _str_to_bytes(fname)))
@property
- def variable_all_constants(self):
- return Iterator(Variable, lib.eolian_variable_all_constants_get(self._obj))
-
- def variable_constant_get_by_name(self, name):
- c_var = lib.eolian_variable_constant_get_by_name(self._obj, _str_to_bytes(name))
- return Variable(c_var) if c_var else None
-
- def variable_constants_get_by_file(self, fname):
- return Iterator(Variable,
- lib.eolian_variable_constants_get_by_file(self._obj, _str_to_bytes(fname)))
-
- @property
- def variable_all_globals(self):
- return Iterator(Variable, lib.eolian_variable_all_globals_get(self._obj))
-
- def variable_global_get_by_name(self, name):
- c_var = lib.eolian_variable_global_get_by_name(self._obj, _str_to_bytes(name))
- return Variable(c_var) if c_var else None
-
- def variable_globals_get_by_file(self, fname):
- return Iterator(Variable,
- lib.eolian_variable_globals_get_by_file(self._obj, _str_to_bytes(fname)))
-
- @property
def all_declarations(self):
return Iterator(Declaration, lib.eolian_all_declarations_get(self._obj))
@@ -499,6 +492,30 @@ class Eolian_State(Eolian_Unit):
c_cls = lib.eolian_state_class_by_file_get(self._obj, _str_to_bytes(file_name))
return Class(c_cls) if c_cls else None
+ @property
+ def constants(self):
+ return Iterator(Variable, lib.eolian_state_constants_get(self._obj))
+
+ def constant_by_name_get(self, name):
+ c_var = lib.eolian_state_constant_by_name_get(self._obj, _str_to_bytes(name))
+ return Variable(c_var) if c_var else None
+
+ def constants_by_file_get(self, file_name):
+ return Iterator(Variable,
+ lib.eolian_state_constants_by_file_get(self._obj, _str_to_bytes(file_name)))
+
+ @property
+ def globals(self):
+ return Iterator(Variable, lib.eolian_state_globals_get(self._obj))
+
+ def global_by_name_get(self, name):
+ c_var = lib.eolian_state_global_by_name_get(self._obj, _str_to_bytes(name))
+ return Variable(c_var) if c_var else None
+
+ def globals_by_file_get(self, file_name):
+ return Iterator(Variable,
+ lib.eolian_state_globals_by_file_get(self._obj, _str_to_bytes(file_name)))
+
### Namespace Utility Class #################################################
diff --git a/src/scripts/pyolian/eolian_lib.py b/src/scripts/pyolian/eolian_lib.py
index afd747384a..75ab22246c 100644
--- a/src/scripts/pyolian/eolian_lib.py
+++ b/src/scripts/pyolian/eolian_lib.py
@@ -105,6 +105,30 @@ lib.eolian_state_class_by_file_get.restype = c_void_p
lib.eolian_state_classes_get.argtypes = [c_void_p,]
lib.eolian_state_classes_get.restype = c_void_p
+# EAPI const Eolian_Variable *eolian_state_global_by_name_get(const Eolian_State *state, const char *name);
+lib.eolian_state_global_by_name_get.argtypes = [c_void_p, c_char_p]
+lib.eolian_state_global_by_name_get.restype = c_void_p
+
+# EAPI const Eolian_Variable *eolian_state_constant_by_name_get(const Eolian_State *state, const char *name);
+lib.eolian_state_constant_by_name_get.argtypes = [c_void_p, c_char_p]
+lib.eolian_state_constant_by_name_get.restype = c_void_p
+
+# EAPI Eina_Iterator *eolian_state_globals_by_file_get(const Eolian_State *state, const char *file_name);
+lib.eolian_state_globals_by_file_get.argtypes = [c_void_p, c_char_p]
+lib.eolian_state_globals_by_file_get.restype = c_void_p
+
+# EAPI Eina_Iterator *eolian_state_constants_by_file_get(const Eolian_State *state, const char *file_name);
+lib.eolian_state_constants_by_file_get.argtypes = [c_void_p, c_char_p]
+lib.eolian_state_constants_by_file_get.restype = c_void_p
+
+# EAPI Eina_Iterator *eolian_state_constants_get(const Eolian_State *state);
+lib.eolian_state_constants_get.argtypes = [c_void_p,]
+lib.eolian_state_constants_get.restype = c_void_p
+
+# EAPI Eina_Iterator *eolian_state_globals_get(const Eolian_State *state);
+lib.eolian_state_globals_get.argtypes = [c_void_p,]
+lib.eolian_state_globals_get.restype = c_void_p
+
# EAPI Eina_Iterator *eolian_declarations_get_by_file(const Eolian_State *state, const char *fname);
lib.eolian_declarations_get_by_file.argtypes = [c_void_p, c_char_p]
lib.eolian_declarations_get_by_file.restype = c_void_p
@@ -163,29 +187,21 @@ lib.eolian_typedecl_all_structs_get.restype = c_void_p
lib.eolian_typedecl_all_enums_get.argtypes = [c_void_p,]
lib.eolian_typedecl_all_enums_get.restype = c_void_p
-# EAPI const Eolian_Variable *eolian_variable_global_get_by_name(const Eolian_Unit *unit, const char *name);
-lib.eolian_variable_global_get_by_name.argtypes = [c_void_p, c_char_p]
-lib.eolian_variable_global_get_by_name.restype = c_void_p
-
-# EAPI const Eolian_Variable *eolian_variable_constant_get_by_name(const Eolian_Unit *unit, const char *name);
-lib.eolian_variable_constant_get_by_name.argtypes = [c_void_p, c_char_p]
-lib.eolian_variable_constant_get_by_name.restype = c_void_p
-
-# EAPI Eina_Iterator *eolian_variable_globals_get_by_file(const Eolian_Unit *unit, const char *fname);
-lib.eolian_variable_globals_get_by_file.argtypes = [c_void_p, c_char_p]
-lib.eolian_variable_globals_get_by_file.restype = c_void_p
+# EAPI const Eolian_Variable *eolian_unit_global_by_name_get(const Eolian_Unit *unit, const char *name);
+lib.eolian_unit_global_by_name_get.argtypes = [c_void_p, c_char_p]
+lib.eolian_unit_global_by_name_get.restype = c_void_p
-# EAPI Eina_Iterator *eolian_variable_constants_get_by_file(const Eolian_Unit *unit, const char *fname);
-lib.eolian_variable_constants_get_by_file.argtypes = [c_void_p, c_char_p]
-lib.eolian_variable_constants_get_by_file.restype = c_void_p
+# EAPI const Eolian_Variable *eolian_unit_constant_by_name_get(const Eolian_Unit *unit, const char *name);
+lib.eolian_unit_constant_by_name_get.argtypes = [c_void_p, c_char_p]
+lib.eolian_unit_constant_by_name_get.restype = c_void_p
-# EAPI Eina_Iterator *eolian_variable_all_constants_get(const Eolian_Unit *unit);
-lib.eolian_variable_all_constants_get.argtypes = [c_void_p,]
-lib.eolian_variable_all_constants_get.restype = c_void_p
+# EAPI Eina_Iterator *eolian_unit_constants_get(const Eolian_Unit *unit);
+lib.eolian_unit_constants_get.argtypes = [c_void_p,]
+lib.eolian_unit_constants_get.restype = c_void_p
-# EAPI Eina_Iterator *eolian_variable_all_globals_get(const Eolian_Unit *unit);
-lib.eolian_variable_all_globals_get.argtypes = [c_void_p,]
-lib.eolian_variable_all_globals_get.restype = c_void_p
+# EAPI Eina_Iterator *eolian_unit_globals_get(const Eolian_Unit *unit);
+lib.eolian_unit_globals_get.argtypes = [c_void_p,]
+lib.eolian_unit_globals_get.restype = c_void_p
# EAPI Eina_Iterator *eolian_all_declarations_get(const Eolian_Unit *unit);
lib.eolian_all_declarations_get.argtypes = [c_void_p,]
diff --git a/src/scripts/pyolian/test_eolian.py b/src/scripts/pyolian/test_eolian.py
index 25615993df..13c7b2aaf0 100755
--- a/src/scripts/pyolian/test_eolian.py
+++ b/src/scripts/pyolian/test_eolian.py
@@ -139,19 +139,19 @@ class TestEolianUnit(unittest.TestCase):
self.assertGreater(all_count, 10)
def test_variable_listing(self):
- l = list(eolian_db.variable_all_constants)
+ l = list(eolian_db.constants)
self.assertGreater(len(l), 2)
self.assertIsInstance(l[0], eolian.Variable)
- l = list(eolian_db.variable_all_globals)
+ l = list(eolian_db.globals)
self.assertGreater(len(l), 20)
self.assertIsInstance(l[0], eolian.Variable)
- l = list(eolian_db.variable_constants_get_by_file('efl_gfx_stack.eo'))
+ l = list(eolian_db.constants_by_file_get('efl_gfx_stack.eo'))
self.assertGreater(len(l), 1)
self.assertIsInstance(l[0], eolian.Variable)
- l = list(eolian_db.variable_globals_get_by_file('efl_net_http_types.eot'))
+ l = list(eolian_db.globals_by_file_get('efl_net_http_types.eot'))
self.assertGreater(len(l), 10)
self.assertIsInstance(l[0], eolian.Variable)
@@ -393,7 +393,7 @@ class TestEolianDocumentation(unittest.TestCase):
class TestEolianVariable(unittest.TestCase):
def test_variable_global(self):
- var = eolian_db.variable_global_get_by_name('Efl.Net.Http.Error.BAD_CONTENT_ENCODING')
+ var = eolian_db.global_by_name_get('Efl.Net.Http.Error.BAD_CONTENT_ENCODING')
self.assertIsInstance(var, eolian.Variable)
self.assertEqual(var.full_name, 'Efl.Net.Http.Error.BAD_CONTENT_ENCODING')
self.assertEqual(var.name, 'BAD_CONTENT_ENCODING')
@@ -406,7 +406,7 @@ class TestEolianVariable(unittest.TestCase):
self.assertIsNone(var.value) # TODO is None correct here? no value?
def test_variable_constant(self):
- var = eolian_db.variable_constant_get_by_name('Efl.Gfx.Size.Hint.Fill')
+ var = eolian_db.constant_by_name_get('Efl.Gfx.Size.Hint.Fill')
self.assertIsInstance(var, eolian.Variable)
self.assertEqual(var.full_name, 'Efl.Gfx.Size.Hint.Fill')
self.assertEqual(var.name, 'Fill')
@@ -575,7 +575,7 @@ class TestEolianExpression(unittest.TestCase):
self.assertEqual(exp.serialize, '100')
def test_expression_unary(self):
- var = eolian_db.variable_constant_get_by_name('Efl.Gfx.Size.Hint.Fill')
+ var = eolian_db.constant_by_name_get('Efl.Gfx.Size.Hint.Fill')
exp = var.value
self.assertIsInstance(exp, eolian.Expression)
self.assertEqual(exp.type, eolian.Eolian_Expression_Type.UNARY)