Layer class methods to list attachments up and tested

This commit is contained in:
2026-05-12 13:51:59 +02:00
parent ccf74fca26
commit df927b7c0e

View File

@@ -1,4 +1,5 @@
import os, json, requests import os, json, requests
from getpass import getpass
from APIHandler import APIHandler from APIHandler import APIHandler
@@ -149,8 +150,8 @@ class Layer:
def list_attachments(self): def list_attachments(self):
""" """
Returns a dictionary of all the attachments linked to the layer, where: Returns a dictionary of all the attachments linked to the layer, where:
* Each key is the attachment's elabid; * Each key is the attachment's progressive ID (0, 1...);
* Each value is a dictionary containing the attachment's filename, hashname and related experiment elabid (= self.elabid). * Each value is a dictionary containing the attachment's elabid, filename, hashname and related experiment elabid (= self.elabid).
Data is already in layer_data, so the API key is unrequired. Same goes for: Data is already in layer_data, so the API key is unrequired. Same goes for:
* fetch_textual_uploads() - no arguments; * fetch_textual_uploads() - no arguments;
@@ -162,7 +163,8 @@ class Layer:
if self.uploads == []: if self.uploads == []:
return {} return {}
attachments = { attachments = {
attachment["id"]: { self.uploads.index(attachment): {
"id": attachment["id"],
"filename": attachment["real_name"], "filename": attachment["real_name"],
"hashname": attachment["long_name"], "hashname": attachment["long_name"],
"related_experiment": attachment["item_id"], "related_experiment": attachment["item_id"],
@@ -329,6 +331,13 @@ class Target(Material):
if __name__ == "__main__": if __name__ == "__main__":
head = APIHandler("MyApiKey-123456789abcdef") # head = APIHandler("MyApiKey-123456789abcdef")
print(f"Example header:\n\t{head.header}\n") # print(f"Example header:\n\t{head.header}\n")
print("Warning: you're not supposed to be running this as the main program.") # print("Warning: you're not supposed to be running this as the main program.")
api_key = getpass("Paste API key here [no echo]: ")
handler = APIHandler(api_key=api_key)
exp58 = handler.get_entry_from_elabid(elabid=58, entryType="experiments")
layer58 = Layer(exp58)
print(layer58.list_attachments())
print(layer58.fetch_textual_uploads())
print(layer58.fetch_images())