Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Aurelia Vasile
NakalaPyConnect
Commits
b79d589c
Commit
b79d589c
authored
Mar 30, 2022
by
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
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
callNakala.py
View file @
b79d589c
...
...
@@ -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
)
constantes.py
View file @
b79d589c
...
...
@@ -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
metadata_creation/test_generateMetadata.py
View file @
b79d589c
This diff is collapsed.
Click to expand it.
postUserRightsOnData.py
View file @
b79d589c
...
...
@@ -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
publishData.py
View file @
b79d589c
...
...
@@ -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
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment