コード例 #1
0
    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)
コード例 #2
0
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)