Example #1
0
class Mapper():

    def __init__(self):
        self.config = Config("http://localhost:8182/graphs/orientdbsample", username="******", password="******")
        self.client = RexsterClient(self.config)

    def search(self):
        g = Graph(self.config)
        

    def show_vertices(self):
        vertices = client.get_all_vertices()
        res = vertices.get_results()[0]
    
        for r in res:
            print sj.dumps(r.data, sort_keys=True, indent=4)
    

    def root_save(self, root_input):
    
        # print "mapping.."
    
        odml_root = load(root_input)
    
        output = {}
    
        output['author']     = odml_root.author
        output['date']       = odml_root.date
        output['repository'] = odml_root.repository
        output['version']    = odml_root.version
    
        r_id = ((self.client.create_vertex(output)).get_results()[0]).get_id()

        # print "Root ID = " + r_id

        for section in odml_root.sections:
            s_id = self.section_save(section)
            self.client.create_edge(r_id, "root-section", s_id)
            self.client.create_edge(s_id, "section-root", r_id)
    
    
    def section_save(self, source_section):
    
        output = {}
    
        output['name']       = source_section.name
        output['type_name']  = source_section.type
        output['reference']  = source_section.reference
        output['definition'] = source_section.definition
        output['repository'] = source_section.repository
        output['mapping']    = source_section.mapping
        output['link']       = source_section.link
        output['include']    = source_section.include
        
        properties = []

        for pro in source_section.properties:

            # print "property.."

            p = {}

            p["name"]            = pro.name 
            p["definition"]      = pro.definition
            p["mapping"]         = pro.mapping 
            p["dependency"]      = pro.dependency
            p["dependencyValue"] = pro.dependency_value

            values = []

            for value in pro.values:

                v = {}

                v["value"]       = value.value      
                v["uncertainty"] = value.uncertainty
                v["unit"]        = value.unit       
                v["type_name"]   = value.dtype 
                v["definition"]  = value.definition 
                v["reference"]   = value.reference  
                v["filename"]    = value.filename   
                v["encoder"]     = value.encoder    
                v["checksum "]   = value.checksum

                values.append(v)

            p['values'] = values

            properties.append(p)

        output['properties_coll'] = properties

        section_id = ((self.client.create_vertex(output)).get_results()[0]).get_id()

        for subsection in source_section.sections:
            s_id = self.section_save(subsection)
            self.client.create_edge(section_id, "section-section", s_id)
            self.client.create_edge(s_id, "section-section", section_id)

        return section_id