예제 #1
0
def createScene(rootNode):
    sys.argv = ['./mysphinx.py', '-M', 'html', 'source', 'build']
    backlist = ["PythonMainScriptController"]
    rootNode.createObject("MechanicalObject")

    for (name, desc) in Sofa.getAvailableComponents():
        categories = ["Legacy"]
        args = {}
        if name not in backlist:
            try:
                print("Processing: " + name)
                obj = rootNode.createObject(name)
                #args = obj.getDataFields()
                args = obj.getListOfDataFields()
                categories = obj.getCategories()
            except Exception, e:
                print("UNable to get DOC")
                pass
        params = kv2params(args)
        params2 = kv2call(args)
        paramsmd = kv2doc(args)
        code = """
        
def %s(attachedTo %s, **kwargs):
    \"\"\"%s

    Args:

%s
    \"\"\"
    return attachedTo.createObject(\"%s\" %s, **kwargs)
""" % (name, params, desc, paramsmd, name, params2)

        targetpath = "sofacomponents/"

        if not os.path.exists(targetpath):
            os.mkdir(targetpath)

        pathname = targetpath + categories[0] + "/"
        if not os.path.exists(pathname):
            os.mkdir(pathname)
        outfile = open(pathname + name + ".py", "wt")
        outfile.write("# -*- coding: utf-8 -*-\n\n")
        outfile.write("""
\"\"\"
Component %s

.. autofunction:: %s

Indices and tables
******************

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
\"\"\"
""" % (name, name))

        outfile.write(code)
예제 #2
0
def refreshComponentListFromFactory():
    global sofaComponents, sofaAliases
    sofaComponents = []
    sofaAliases = {}
    for (name, desc) in Sofa.getAvailableComponents():
        sofaComponents.append(name)
        sofaHelp[name] = desc
        for alias in Sofa.getAliasesFor(name):
            sofaAliases[alias] = name
예제 #3
0
def refreshComponentListFromFactory():
    global sofaComponents, sofaAliases
    sofaComponents = []
    sofaAliases = {}
    for (name, desc) in Sofa.getAvailableComponents():
            sofaComponents.append(name)
            sofaHelp[name] = desc
            for alias in Sofa.getAliasesFor(name):
                sofaAliases[alias] = name
예제 #4
0
# -*- coding: utf-8 -*-
"""
All...

"""

import Sofa
for (name,desc) in Sofa.getAvailableComponents():
    code = """def %s(owner, **kwargs):
        \"\"\"%s\"\"\"
        if kwargs == None:
                kwargs = {}
        owner.createObject(\"%s\", **kwargs)
""" % (name,desc,name)
    exec(code)

예제 #5
0
파일: dsl.py 프로젝트: FabienPean/sofa
class psltemplate(object):
   def __init__(self, f):
       self.function = f
       if not "PSLExport" in f.func_globals:
           f.func_globals["PSLExport"] = []
       f.func_globals["PSLExport"].append(self.function.func_name)

   def __call__(self, node, **kwargs):
       if not "name" in kwargs:
           kwargs["name"] = "undefined"
       templatenode = node.createChild(kwargs["name"])
       self.function(templatenode, **kwargs)
       calledAs = self.function.func_name+"("
       for k in kwargs:
           calledAs += str(k)+"="+repr(kwargs[k])
       calledAs += ")"
       #templatenode.addNewData("psl_instanceof", "PSL", "", "s", "PythonDecoratorTemplate")
       #templatenode.addNewData("psl_templatename", "PSL", "", "s", calledAs)
       return templatenode

for (name,desc) in Sofa.getAvailableComponents():
    code = """def %s(owner, **kwargs):
        \"\"\"%s\"\"\"
        if kwargs == None:
                kwargs = {}
        owner.createObject(\"%s\", **kwargs)
""" % (name,desc,name)
    exec(code)