From 9b86791c9e68763f727cd9910b6c0e644a3df87c069e61b89a0fd14ab2faee81 Mon Sep 17 00:00:00 2001 From: PioApocalypse Date: Tue, 27 Jan 2026 16:51:06 +0100 Subject: [PATCH] adds test function --- src/main.py | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/main.py diff --git a/src/main.py b/src/main.py new file mode 100644 index 0000000..edacdd1 --- /dev/null +++ b/src/main.py @@ -0,0 +1,47 @@ +import os, json, requests +from getpass import getpass +from classes import Header + +def get_sample_layers_data(elabid): + ''' + Return the following data from every eLabFTW experiment linked + to a certain sample, identified by elabid. + + - Title of the experiment + - Category (should check it's "PLD Deposition") + - Layer number - if present (PLD depositions) + - Deposition time - returns error if not present + - Repetition rate - returns error if not present + ''' + # header = { + # "Authorization": apikey, + # "Content-Type": "application/json" + # } + sample_data = requests.get( + headers = header, + url = f"https://elabftw.fisica.unina.it/api/v2/items/{elabid}", + verify=True + ).json() + related_experiments = sample_data["related_experiments_links"] + result = [] + for exp in related_experiments: + experiment_data = requests.get( + headers = header, + url = f"https://elabftw.fisica.unina.it/api/v2/experiments/{exp.get("entityid")}", + verify=True + ).json() + extra = experiment_data["metadata_decoded"]["extra_fields"] + result.append( + {"title": exp.get("title"), + "layer_number": extra.get("Layer Progressive Number").get("value"), + "category": exp.get("category_title"), + "deposition_time": extra.get("Duration").get("value"), + "repetition_rate": extra.get("Repetition rate").get("value")} + ) + return result + +apikey = getpass("Paste API key here: ") # consider replacing with .env file +header = Header(apikey) +header = header.dump() +result = get_sample_layers_data(1108) # edit id at will in case of deletion of remote source +print(json.dumps(result)) \ No newline at end of file