Commit b79d589c authored by Aurelia's avatar Aurelia
Browse files

add fichier csv qui récupère les dois créés et l'identifiant de la donnée d'origine

parent 24493852
......@@ -24,60 +24,67 @@ dataFrameCSV = pd.read_csv(INPUTFILE, delimiter=",")
with open (INPUTFILE, "r", newline='') as f:
fichierlu = csv.DictReader(f, fieldnames=None, restkey=None)
with open(INPUTFOLDER + "br_pl_polisa_rl_tch_tt_vn_listeDOI.csv", 'a', newline='') as doicsvfile:
fieldnames = ['fileId', 'DOI']
writer = csv.DictWriter(doicsvfile, fieldnames=fieldnames)
writer.writeheader()
for y, row in enumerate(fichierlu):
#print (row)
# si la colonne "DOI" ne contient pas un identifiant DOI,
if row["DOI"] == "":
#on génère les métadonnées avec la methode generateOneMetaNakala
dicoMetas = generateOneMetaNakala(row)
# POST FILE
#prend le fichier dans le dossier contenant des jpg correspondant à la ligne "linked in item" du csv
file = INPUTFOLDER+row["Linked in item"]+".jpg"
# vérifie que le fichier physique existe
if os.path.exists(file) :
# appelle la methode post_datas_uploads pour poster d'abord le fichier. Récupère un json avec le "sha1":"nr_du_sha"
shaFile = post_datas_uploads(file,TOKEN)
# ajoute ce json à une liste du decometa
dicoMetas["files"] = []
dicoMetas["files"].append(shaFile)
data=json.dumps(dicoMetas)
print(data)
# POST DATA
url = API_URL+"/datas"
APIheaders = {"X-API-KEY":TOKEN, "Content-Type": "application/json"}
# envoyer la requete post data
createDataResponse = requests.request("POST", url, headers=APIheaders, data=data)
# traiter la réponse du server. Si la réponse n'est pas 201 il y a eu un soucis.
if not "Response [201]" in str(createDataResponse) :
print("Warning : ",str(createDataResponse))
print(str(createDataResponse.text))
raise NakalaException(createDataResponse.text)
# réponse 201 c'est que la création c'est bien passée.
else:
# tout c'est bien passé donc on a un
# identifiant à récupérer dans le json retourné par le server
print(createDataResponse.text)
json_resp = json.loads(createDataResponse.text)
doi = json_resp['payload']['id']
#écrit dans un fichier csv des lignes avec l'identifiant de la donnée et le doi qui vient d'etre créé
writer.writerow({'fileId': row["Linked in item"], 'DOI': doi})
# stoque le doi dans un dataframe avec les données du fichiers csv
dataFrameCSV.loc[y,'DOI'] = doi
for y, row in enumerate(fichierlu):
#print (row)
# si la colonne "DOI" ne contient pas un identifiant DOI,
if row["DOI"] == "":
#on génère les métadonnées avec la methode generateOneMetaNakala
dicoMetas = generateOneMetaNakala(row)
# POST FILE
#prend le fichier dans le dossier contenant des jpg correspondant à la ligne "linked in item" du csv
file = INPUTFOLDER+row["Linked in item"]+".jpg"
# vérifie que le fichier physique existe
if os.path.exists(file) :
# appelle la methode post_datas_uploads pour poster d'abord le fichier. Récupère un json avec le "sha1":"nr_du_sha"
shaFile = post_datas_uploads(file,TOKEN)
# ajoute ce json à une liste du decometa
dicoMetas["files"] = []
dicoMetas["files"].append(shaFile)
data=json.dumps(dicoMetas)
print(data)
# POST DATA
url = API_URL+"/datas"
APIheaders = {"X-API-KEY":TOKEN, "Content-Type": "application/json"}
# envoyer la requete post data
createDataResponse = requests.request("POST", url, headers=APIheaders, data=data)
# traiter la réponse du server. Si la réponse n'est pas 201 il y a eu un soucis.
if not "Response [201]" in str(createDataResponse) :
print("Warning : ",str(createDataResponse))
print(str(createDataResponse.text))
raise NakalaException(createDataResponse.text)
# réponse 201 c'est que la création c'est bien passée.
else:
# tout c'est bien passé donc on a un
# identifiant à récupérer dans le json retourné par le server
print(createDataResponse.text)
json_resp = json.loads(createDataResponse.text)
doi = json_resp['payload']['id']
# stoque le doi dans un dataframe avec les données du fichiers csv
dataFrameCSV.loc[y,'DOI'] = doi
print("Le fichier " + row["Linked in item"]+".jpg n'existe pas")
pass
else:
print("Le fichier " + row["Linked in item"]+".jpg n'existe pas")
pass
else:
print ("déja traité "+ row["DOI"])
#if y == 1:
#break
print ("déja traité "+ row["DOI"])
#if y == 1:
#break
#on ecrase le fichier csv source avec le dataframe contenant le handle
dataFrameCSV.to_csv(INPUTFILE, index=False)
......@@ -69,7 +69,7 @@ VOCABTYPE_reverse={
"http://purl.org/coar/resource_type/c_93fc": "report",
"http://purl.org/coar/resource_type/c_2659":"periodical",
"http://purl.org/coar/resource_type/c_816b": "print",
"http://purl.org/coar/resource_type/c_efa0": "review",
"http://purl.org/coar/resource_type/c_efa0":"review",
"http://purl.org/coar/resource_type/c_18cw":"musical notation",
"http://purl.org/coar/resource_type/c_46ec":"thesis",
"http://purl.org/coar/resource_type/c_7ad9":"website",
......@@ -81,6 +81,6 @@ VOCABTYPE_reverse={
"https://w3id.org/survey-ontology#SurveyDataSet":"survey dataset"
}
INPUTFOLDER = "data/br_cro_dz_elsv/"
INPUTFILE="data/br_cro_dz_elsv/br_cro_dz_elsv_prepared.csv"
OUTPUCOPY="data/br_cro_dz_elsv/br_cro_dz_elsv_prepared_copy.csv"
\ No newline at end of file
INPUTFOLDER = "data/br_pl_polisa_rl_tch_tt_vn/"
INPUTFILE="data/br_pl_polisa_rl_tch_tt_vn/br_pl_polisa_rl_tch_tt_vn_prepared.csv"
OUTPUCOPY="data/br_pl_polisa_rl_tch_tt_vn/br_pl_polisa_rl_tch_tt_vn_prepared_cppy.csv"
\ No newline at end of file
This diff is collapsed.
......@@ -23,7 +23,10 @@ with open (INPUTFILE, "r", newline='') as f:
fichierlu = csv.DictReader(f, fieldnames=None, restkey=None)
for y, row in enumerate(fichierlu):
dataIdentifier= row["DOI"]
# appel de la methode post_user_right_ondata qui fait l'appelle l'api "/datas/"+dataIdentifier+"/rights" pour déposer le rôle et l'identifiant du user
post_user_right_ondata(dataIdentifier,userIdentifier,role, TOKEN)
if row["DOI"]:
dataIdentifier= row["DOI"]
# appel de la methode post_user_right_ondata qui fait l'appelle l'api "/datas/"+dataIdentifier+"/rights" pour déposer le rôle et l'identifiant du user
post_user_right_ondata(dataIdentifier,userIdentifier,role, TOKEN)
else:
pass
......@@ -20,7 +20,10 @@ with open (INPUTFILE, "r", newline='') as f:
fichierlu = csv.DictReader(f, fieldnames=None, restkey=None)
for y, row in enumerate(fichierlu):
dataIdentifier= row["DOI"]
if row["DOI"]:
dataIdentifier= row["DOI"]
# appel de la methode publish_data qui fait l'appel à l'api "/datas/"+dataIdentifier+"/status/published" pour rendre publique la donnée
publish_data(dataIdentifier,TOKEN)
\ No newline at end of file
# appel de la methode publish_data qui fait l'appel à l'api "/datas/"+dataIdentifier+"/status/published" pour rendre publique la donnée
publish_data(dataIdentifier,TOKEN)
else:
pass
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment