sdss / lvmcam

An actor implementation of sdss-araviscam for lvmagp
https://sdss-lvmcam.readthedocs.io/en/latest/
BSD 3-Clause "New" or "Revised" License
2 stars 0 forks source link

File handling #51

Closed wasndas closed 1 year ago

wasndas commented 2 years ago

Use a global (not for every camera) path/filename parameter in the config file, eg

Example for the config file:

basename: ["{camname}-{date.strftime('%Y%m%d')}_{num:08d}",            "!{name}-{date.strftime('%Y%m%d')}"]
dirname: ["$HOME/{camname.replace('.', os.path.sep)}/{date.strftime('%Y%m%d')}", "/tmp/test"]

Code piece to check:

import os
from datetime import datetime
from pathlib import Path

basename = ["{camname}-{date.strftime('%Y%m%d')}_{num:08d}",            "!{name}-{date.strftime('%Y%m%d')}"]
dirname = ["$HOME/{camname.replace('.', os.path.sep)}/{date.strftime('%Y%m%d')}", "/tmp/test"]

camname="lvm.sci.agw.cam"
date = datetime.now()
num=4711
fnp=0 # index of base/dirname list

# expand shell variables and eval the string - maybe string.format whould be better..
basename_expanded = eval(f"f'''{os.path.expandvars(basename[fnp])}'''", vars())
dirname_expanded = eval(f"f'''{os.path.expandvars(dirname[fnp])}'''", vars())

# create directory hierachy
os.makedirs(dirname_expanded)

# create abs file base
absfile = Path(dirname_expanded) / Path(basename_expanded)
wasndas commented 2 years ago

... something like that is already existing in basecam as ImageNamer

wasndas commented 1 year ago

done