Added basic implementation for Python code evaluation
This commit is contained in:
+39
-1
@@ -1,4 +1,3 @@
|
||||
|
||||
def sysarg_to_string(argv):
|
||||
"""
|
||||
Transform a list of strings into a single string
|
||||
@@ -18,3 +17,42 @@ def sysarg_to_string(argv):
|
||||
first = False
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def get_class(kls):
|
||||
"""
|
||||
Loads a class from its string full qualified name
|
||||
:param kls:
|
||||
:return:
|
||||
"""
|
||||
parts = kls.split('.')
|
||||
module = ".".join(parts[:-1])
|
||||
m = __import__(module)
|
||||
for comp in parts[1:]:
|
||||
m = getattr(m, comp)
|
||||
return m
|
||||
|
||||
|
||||
def get_object(kls, *args, **kwargs):
|
||||
"""
|
||||
New instance of an object
|
||||
:param kls:
|
||||
:param args:
|
||||
:param kwargs:
|
||||
:return:
|
||||
"""
|
||||
obj_type = get_class(kls)
|
||||
return obj_type(*args, **kwargs)
|
||||
|
||||
|
||||
def get_full_qualified_name(obj):
|
||||
"""
|
||||
Returns the full qualified name of a class (including its module name )
|
||||
:param obj:
|
||||
:return:
|
||||
"""
|
||||
module = obj.__class__.__module__
|
||||
if module is None or module == str.__class__.__module__:
|
||||
return obj.__class__.__name__ # Avoid reporting __builtin__
|
||||
else:
|
||||
return module + '.' + obj.__class__.__name__
|
||||
|
||||
Reference in New Issue
Block a user