Example #1
0
            "versions=",
            vers_cnstr,
        )
        if sys.version_info < (3, 0):
            request = raw_input("Do you want to proceed? Y/N \n")
        else:
            request = input("Do you want to proceed? Y/N \n")
        if request == "Y":
            if not admin:
                # if not admin write date/e-mail/message and list of version ids to file
                fout = open(
                    outdir + "warning_" + os.environ["USER"] + "_" + datetime.now().strftime("%Y%m%dT%H%M") + ".txt",
                    "w",
                )
                fout.write(",".join([datetime.now().strftime("%Y%m%d"), email, warning]))
                fout.write("," + ",".join([str(v.id) for v in db_results]))
                fout.close()
            else:
                # if admin add warning directly to database, commit happens in function
                for v in db_results:
                    insert_unique(
                        db,
                        VersionWarning,
                        **{
                            "version_id": v.id,
                            "warning": warning,
                            "added_by": email,
                            "added_on": datetime.now().strftime("%Y%m%d"),
                        }
                    )
Example #2
0
for inst in instances:
# call file_details to retrieve experiment, variable, model etc. from filename
# call drs_details to retrieve model, experiment, freq. & realm (become mip), variable, ensemble from drstree path
# return dictionary
    # could i create an Instance, Version and file object instead and pass that on?
    kw_instance={}
    kw_version={}
    kw_files={}
    frequency, kw_instance = drs_details(inst)
    kw_instance['mip'] = get_mip(inst)
    #print(kw_instance)
# make sure details list isn't empty
    if kw_instance:
        versions = list_drs_versions(inst) 
        # add instance to db if not already existing
        inst_obj,new = insert_unique(db, Instance, **kw_instance)
        print(inst)
        print(inst_obj.id,new)
        #P use following two lines  if tmp/tree
        #kw_version['version'] = find_version(bits[:-1], version)
        #kw_version['path'] = '/'.join(bits[:-1])
        kw_version['instance_id'] = inst_obj.id
        for v in versions:
            # add version to db if not already existing
            kw_version['version'] = v
            files = list_drs_files(inst+"/"+v) 
            kw_version['path'] = tree_path("/".join([inst,v,files[0]])) 
            #print(kw_version.items())
            v_obj,new = insert_unique(db, Version, **kw_version)
            print(v)
            print(v_obj.id,new)