dfd3c07d2f
ignores h5 and nxs files
2026-02-16 11:50:44 +01:00
d094a60725
replaces elabid with sample name in the names of output files
2026-02-16 11:49:48 +01:00
41ff025098
adds units of measurement (UoM) in Material class and children
2026-02-16 11:30:08 +01:00
ca2cdbfded
adds units of measurement in Layer class
...
plus moves around fullname/operator, created_at and description/body so
that operator is required while the others aren't
2026-02-16 11:28:17 +01:00
b4d7373933
starts working on nexus file creation
2026-02-13 16:23:42 +01:00
2f4985c443
adds h5py to requirements
2026-02-13 16:23:24 +01:00
0a879cbfe9
removes debug line, writes json to file instead (path: output/)
2026-02-13 11:49:59 +01:00
f60b58f2f2
ignores output of main.py (output/*.json)
2026-02-13 11:49:13 +01:00
6f618b2340
adds comments
2026-02-13 01:05:32 +01:00
38940995b5
completes the dataset with instruments_used (in a way...)
...
only lacks units of measurement, then I'll be ready for conversion
2026-02-13 00:59:22 +01:00
f686ea65b1
adds get_instruments method to Layer class
...
get_instruments returns a dictionary with the names of every system used
during the deposition
unfortunately, NeXus standard allows for a single value of all three
keys per every sample - not every layer
this means that every layer has its own data for laser, rheed system and
depo chamber which IDEALLY is the same for every layer, but in practice
they COULD be different and I still don't know how to deal with this
2026-02-13 00:32:31 +01:00
23bfdefd30
adds all the remaining layer data
...
only lacks the instrument_used data and units of measurement
NOTE: units of measurement are hard to collect, but could be assumed
considering our instruments are standard
2026-02-13 00:18:07 +01:00
38d281543e
code cleanup: deletes debug lines from main.py
2026-02-13 00:07:39 +01:00
a12506b8be
MAJOR: main.py successfully produces JSON following NeXus-schema
...
takes API key and elabid of the "entrypoint" sample as input
returns indented JSON with the reconstructed dataset!
currently lacks instruments_used data (matter of minutes)
and all the layer data (already present in Layer-class objects)
2026-02-13 00:01:24 +01:00
43cfd788f3
adds non-req. attr. "description" to class Target
2026-02-12 23:53:21 +01:00
da42de5466
handles error 400 bad request with exit message
2026-02-12 23:52:37 +01:00
d86b35a5fe
integrates sub-classes Target and Substrate in main.py
2026-02-12 16:01:10 +01:00
c4903a536b
[untested] creates child classes of Material for Substrates and Targets
2026-02-12 15:53:44 +01:00
3e85940eb6
adds chained request from layer to pld target
2026-02-12 15:24:01 +01:00
820337c06e
fixes category title for materials: "Substrate", not "Substrate batch"
...
"Substrate" is the title of the category of substrate items
"Substrate batch" is a key in a sample's dictionary
2026-02-12 15:16:35 +01:00
5a605038df
fixes small residual from copy-paste in call_material_from_elabid
...
the fix changes "sample_data" - which was residual from copy-pasting the
call_entrypoint... function and therefore undefined - with
"material_data" which is very well defined in the previous line
2026-02-12 15:09:59 +01:00
fd4c3b718a
creates chain functions to expand the dataset from the entrypoint
2026-02-12 14:58:48 +01:00
7b3bff854d
adds mock layers of mock sample 26015 for testing purposes
2026-02-12 14:37:50 +01:00
4df8048e55
aligns chained requests test with main.py (Layer class)
2026-02-12 14:37:16 +01:00
97d534c5d1
documents main.py functions
2026-02-12 12:15:25 +01:00
88aacf23c1
aligns chained requests test with main.py (debug mode)
2026-02-12 11:29:40 +01:00
43a898e4e6
adds various main.py functions to call entries from elabid's
...
also replaces "pass" with "continue" in loops
2026-02-10 16:15:22 +01:00
5725dbfbf8
adds layer progressive number as Layer class attribute
2026-02-10 15:59:13 +01:00
ddd3775112
http error handling in APIHandler method get_entry_from_elabid()
2026-02-10 15:03:47 +01:00
2117f61f36
changes APIHandler attribute "dump" to "header" for clarity
2026-02-10 15:03:33 +01:00
5aa7527cca
more use(less,ful) comments
2026-02-10 14:46:57 +01:00
c49aa23aea
first attempt to refactor the test code into something more elegant
2026-02-09 17:50:35 +01:00
352a223d95
copies entire Header class in chained_requests test script
2026-02-09 16:53:16 +01:00
1d0bc6668c
moves chained_requests in folder tests
2026-02-09 16:50:59 +01:00
46df7a948f
completes methods for class Material
2026-02-09 16:27:52 +01:00
03d7811904
fixes Layer temperature and pressure keys (deletes trailing whitespace)
...
also changes default elabid to newer resource
2026-02-09 15:14:32 +01:00
c5f85b2618
Layer.__init__: ValueError on num.of pulses is fatal, not warning
...
error message changed accordingly
2026-02-09 15:04:35 +01:00
9dbf523190
huge improvements, read below
...
* function get_entry_from_elabid moved to the top to be used by classes
* class Layers renamed Layer
* class Layer expanded and completed with all NeXus-needed metadata
* classes improved with "quality" error management
* class Material added, for now it fetches just compound_elabid and
compund chemical formula (as attribute and method respectively)
* class Material has get_compound() method which needs some commenting
* DEBUG MODE improved to cover all cases: layer, sample, substr. and pld
target; creates a new shortcut for prompting (read line 147)
* removed herobrine (fuck i'm old aren't i)
2026-02-06 16:56:50 +01:00
4e224d3e29
completes Entrypoint class for now
...
also adds a few comments to Layers class
and changes debug mode to test Entrypoint
2026-01-28 16:03:14 +01:00
f74d8efea8
keyerrors handled on all attributes of classes Layers and Entrypoint
2026-01-28 15:45:36 +01:00
fd903f025b
adds compound definition to glossary
2026-01-28 15:43:38 +01:00
f51b0d8615
adds asyncio to requirements
...
will probably start using it, if not I'll roll back
2026-01-28 15:42:28 +01:00
7245c757c3
reworks chained_requests
...
classes for parsing, functions for requests
also in general I shouldn't put error handling inside a class
2026-01-28 15:41:20 +01:00
e40173f264
adds script to resolve chained requests
2026-01-27 23:23:09 +01:00
b771fedf49
changes Header.dump from method to attribute
2026-01-27 22:40:32 +01:00
da074b027b
adds glossary
2026-01-27 22:23:38 +01:00
9b86791c9e
adds test function
2026-01-27 16:51:06 +01:00
93a87a2282
adds gitignore from python/jupyter template
2026-01-27 16:46:10 +01:00
27b2f5cd94
adds (http requests) header class
2026-01-27 16:44:55 +01:00
31109a423f
adds requirements
2026-01-27 16:07:26 +01:00