def __init__(self, con: Connection = None, project_iri: str = None, newentry: bool = True, *args, **kw): super().__init__(*args, **kw, title="Project Entry", style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER) self.project_iri = project_iri self.con = con try: if newentry: self.project = Project(con=con) else: tmpproject = Project(con=con, id=project_iri) self.project = tmpproject.read() #self.all_projects = Project.getAllProjects(con) #self.all_groups = Group.getAllGroups(con) except KnoraError as knerr: show_error("Couldn't get information from knora", knerr) return topsizer = wx.BoxSizer(wx.VERTICAL) panel1 = wx.Panel(self) if newentry: cols = 2 else: cols = 3 gsizer = wx.FlexGridSizer(cols=cols) tmp_shortcode = None if newentry else self.project.shortcode if self.project.shortcode is not None else "" self.shortcode = KnDialogTextCtrl(panel1, gsizer, "Shortcode: ", "shortcode", tmp_shortcode) tmp_shortname = None if newentry else self.project.shortname if self.project.shortname is not None else "" self.shortname = KnDialogTextCtrl(panel1, gsizer, "Shortname: ", "shortname", tmp_shortname) tmp_longname = None if newentry else self.project.longname if self.project.longname is not None else "" self.longname = KnDialogTextCtrl(panel1, gsizer, "Longname: ", "longname", tmp_longname, size=wx.Size(200, 50), style=wx.TE_MULTILINE) self.selfjoin = KnDialogCheckBox(panel1, gsizer, "Selfjoin: ", "selfjoin", self.project.selfjoin) self.status = KnDialogCheckBox(panel1, gsizer, "Status: ", "active", self.project.status) gsizer.SetSizeHints(panel1) panel1.SetSizer(gsizer) panel1.SetAutoLayout(1) gsizer.Fit(panel1) topsizer.Add(panel1, flag=wx.EXPAND | wx.ALL, border=5) bsizer = self.CreateStdDialogButtonSizer(wx.OK | wx.CANCEL) topsizer.Add(bsizer, flag=wx.EXPAND | wx.ALL, border=5) self.SetSizerAndFit(topsizer)
def program(args): # # parse the arguments of the command line # parser = argparse.ArgumentParser() #parser.add_argument("datamodelfile", help="path to data model file") parser.add_argument("-s", "--server", type=str, default="http://0.0.0.0:3333", help="URL of the Knora server") parser.add_argument("-u", "--user", type=str, default="*****@*****.**", help="Username for Knora") parser.add_argument("-p", "--password", type=str, default="test", help="The password for login") parser.add_argument("-c", "--shortcode", type=str, help="Shortcode of the project") parser.add_argument("-n", "--shortname", type=str, help="Shortname of the project") parser.add_argument("-i", "--iri", type=str, help="Project iri") args = parser.parse_args(args) current_dir = os.path.dirname(os.path.realpath(__file__)) # # Connect to the DaSCH Service Platform API # con = Connection(args.server) #con.login(args.user, args.password) # # First we get the project information... # if args.shortcode: project = Project(con=con, shortcode=args.shortcode) elif args.shortname: project = Project(con=con, shortname=args.shortname) elif args.iri: project = Project(con=con, shortname=args.iri) else: print("ERROR") exit(-1) project = project.read() projectobj = project.createDefinitionFileObj() # # now collect the lists # listroots = ListNode.getAllLists(con=con, project_iri=project.id) listobj = [] for listroot in listroots: complete_list = listroot.getAllNodes() listobj.append(complete_list.createDefinitionFileObj()) projectobj["lists"] = listobj projectobj["ontologies"] = [] for ontology in project.ontologies: oparts = ontology.split("/") name = oparts[len(oparts) - 1] shortcode = oparts[len(oparts) - 2] lastmoddate, ontology = Ontology.getOntologyFromServer( con=con, shortcode=shortcode, name=name) projectobj["ontologies"].append(ontology.createDefinitionFileObj()) umbrella = { "prefixes": ontology.context.get_externals_used(), "project": projectobj } with open('data.json', 'w', encoding='utf8') as outfile: json.dump(umbrella, outfile, indent=3, ensure_ascii=False) print(ontology.context)