Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support APS proposal & ESAF systems to provide useful metadata #334

Merged
merged 49 commits into from
Jul 11, 2020
Merged
Changes from 1 commit
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
4e53932
ENH #333 initial commit
prjemian Jun 26, 2020
606bfb0
MNT #333 permissions
prjemian Jun 26, 2020
509a699
DOC #333
prjemian Jun 26, 2020
b73e1a5
MNT #333
prjemian Jun 26, 2020
e7c05cb
Merge branch 'master' into 333-metadata-proposal-ESAF
prjemian Jul 6, 2020
b803527
MNT #334 Codacy
prjemian Jul 6, 2020
f544e8d
MNT #334 Codacy
prjemian Jul 6, 2020
62b25fa
TST #333 start on unit tests
prjemian Jul 6, 2020
aebaac4
TST #333 tests not at APS
prjemian Jul 6, 2020
27e7595
TST #333
prjemian Jul 6, 2020
7050844
TST #333 WIP
prjemian Jul 6, 2020
b25fdc3
TST #333
prjemian Jul 6, 2020
4d25731
TST #333 LGTM review
prjemian Jul 6, 2020
09f9d2d
TST #333 refactor so testable
prjemian Jul 7, 2020
d745be5
TST #333
prjemian Jul 7, 2020
1c07e03
MNT #333 Codacy
prjemian Jul 7, 2020
83cacfd
TST #333 Codacy
prjemian Jul 7, 2020
b3de524
MNT #333 randmize the IOC prefix for testing
prjemian Jul 7, 2020
3020fff
MNT #333 remove unused code
prjemian Jul 7, 2020
7e37769
MNT #333 remove eclipse config
prjemian Jul 7, 2020
a402c75
TST #333 let travis-ci find aps-dm-api
prjemian Jul 7, 2020
14716e6
TST #333 aps-dm-api not on PyPI
prjemian Jul 7, 2020
5ab3aa9
CI #333 for travis-ci
prjemian Jul 7, 2020
88dcf3e
CI #333 adjust travis-ci requirements
prjemian Jul 7, 2020
4123322
TST #333 for py38
prjemian Jul 7, 2020
872e391
MNT #333 Codacy
prjemian Jul 7, 2020
4b50275
MNT #333 refactor name
prjemian Jul 7, 2020
a4868d2
ENH #333 shell script
prjemian Jul 8, 2020
3485238
TST #333 refactor
prjemian Jul 8, 2020
e420034
TST #333 Codacy
prjemian Jul 8, 2020
c8ba056
TST #333 Codacy
prjemian Jul 8, 2020
fc33050
TST #333
prjemian Jul 8, 2020
8ffa164
DOC #333
prjemian Jul 8, 2020
9444299
DOC #333 WIP
prjemian Jul 9, 2020
53d516d
DOC #333 WIP
prjemian Jul 9, 2020
b2a2034
DOC #333 WIP
prjemian Jul 9, 2020
d6a4f5d
fixes #341
prjemian Jul 10, 2020
45e56a2
MNT #341 Codacy
prjemian Jul 10, 2020
e13e955
MNT #341 Codacy
prjemian Jul 10, 2020
1f6fc83
Merge pull request #342 from BCDA-APS/341-databroker-metrics
prjemian Jul 10, 2020
2884762
DOC #333
prjemian Jul 10, 2020
94368b7
DOC #333
prjemian Jul 10, 2020
16a3331
ENH #333 add PV report
prjemian Jul 10, 2020
b560f0f
DOC #333 PV report
prjemian Jul 10, 2020
1796479
ENH #333 commands on GUI
prjemian Jul 11, 2020
ffe7c67
ENH #333 add version option
prjemian Jul 11, 2020
fb96aca
MNT #333
prjemian Jul 11, 2020
c739f83
TST #333 Codacy
prjemian Jul 11, 2020
e3e3205
MNT #343
prjemian Jul 11, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions apstools/devices.py
Original file line number Diff line number Diff line change
@@ -1856,6 +1856,7 @@ def generate_datum(self, key, timestamp, datum_kwargs):
datum_kwargs["HDF5_file_name"] = hdf5_file_name

logger.debug("make_filename: %s", hdf5_file_name)
logger.debug("write_path: %s", write_path)
return super().generate_datum(key, timestamp, datum_kwargs)

def get_frames_per_point(self):
3 changes: 2 additions & 1 deletion apstools/filewriters.py
Original file line number Diff line number Diff line change
@@ -46,6 +46,7 @@
SPEC_TIME_FORMAT = "%a %b %d %H:%M:%S %Y"
SCAN_ID_RESET_VALUE = 0


def _rebuild_scan_command(doc):
"""
reconstruct the scan command for SPEC data file #S line
@@ -657,7 +658,7 @@ def myPlan():
#C Mon Jan 28 12:48:14 2019. exit_status = success

"""
# global specwriter # such as: specwriter = SpecWriterCallback()
global specwriter # such as: specwriter = SpecWriterCallback()
writer = writer or specwriter
if doc is None:
if writer.scanning:
27 changes: 15 additions & 12 deletions apstools/plans.py
Original file line number Diff line number Diff line change
@@ -87,7 +87,7 @@ def addDeviceDataAsStream(devices, label):
yield from bps.save()


def execute_command_list(filename, commands, md={}):
def execute_command_list(filename, commands, md=None):
"""
plan: execute the command list

@@ -206,7 +206,7 @@ def get_command_list(filename):
def lineup(
counter, axis, minus, plus, npts,
time_s=0.1, peak_factor=4, width_factor=0.8,
_md={}):
md=None):
"""
lineup and center a given axis, relative to current position

@@ -312,16 +312,16 @@ def peak_analysis():
bec.peaks.aligned = aligned
bec.peaks.ATTRS = ('com', 'cen', 'max', 'min', 'fwhm')

md = dict(_md)
md["purpose"] = "alignment"
yield from bp.rel_scan([counter], axis, minus, plus, npts, md=md)
_md = dict(purpose="alignment")
_md.update(md or {})
yield from bp.rel_scan([counter], axis, minus, plus, npts, md=_md)
yield from peak_analysis()

if bec.peaks.aligned:
# again, tweak axis to maximize
md["purpose"] = "alignment - fine"
_md["purpose"] = "alignment - fine"
fwhm = bec.peaks["fwhm"][counter.name]
yield from bp.rel_scan([counter], axis, -fwhm, fwhm, npts, md=md)
yield from bp.rel_scan([counter], axis, -fwhm, fwhm, npts, md=_md)
yield from peak_analysis()

if scaler is not None:
@@ -594,7 +594,7 @@ def register_command_handler(handler=None):
_COMMAND_HANDLER_ = handler or execute_command_list


def run_command_file(filename, md={}):
def run_command_file(filename, md=None):
"""
plan: execute a list of commands from a text or Excel file

@@ -614,8 +614,10 @@ def run_command_file(filename, md={}):

*new in apstools release 1.1.7*
"""
_md = dict(command_file=filename)
_md.update(md or {})
commands = get_command_list(filename)
yield from _COMMAND_HANDLER_(filename, commands)
yield from _COMMAND_HANDLER_(filename, commands, md=_md)


def snapshot(obj_list, stream="primary", md=None):
@@ -738,7 +740,7 @@ def sscan_1D(
running_stream="primary",
final_array_stream=None,
device_settings_stream="settings",
md={}):
md=None):
"""
simple 1-D scan using EPICS synApps sscan record

@@ -836,9 +838,10 @@ def phase_cb(value, timestamp, **kwargs):
# watch for new data to be read out
sscan.scan_phase.subscribe(phase_cb)

md["plan_name"] = "sscan_1D"
_md = dict(plan_name="sscan_1D")
_md.update(md or {})

yield from bps.open_run(md) # start data collection
yield from bps.open_run(_md) # start data collection
yield from bps.mv(sscan.execute_scan, 1) # start sscan
started = True

3 changes: 2 additions & 1 deletion apstools/utils.py
Original file line number Diff line number Diff line change
@@ -237,7 +237,7 @@ def itemizer(fmt, items):


def listruns(
num=20, keys=[], printing=True,
num=20, keys=None, printing=True,
show_command=True, db=None,
exit_status=None,
**db_search_terms):
@@ -308,6 +308,7 @@ def listruns(
*new in apstools release 1.1.10*
"""
db = db or ipython_shell_namespace()["db"]
keys = keys or []

if show_command:
labels = "scan_id command".split() + keys
2 changes: 1 addition & 1 deletion create_release_notes.py
Original file line number Diff line number Diff line change
@@ -37,7 +37,7 @@ def findGitConfigFile():
Needs testing for when things are wrong.
"""
path = os.getcwd()
for i in range(99):
for _ in range(99):
config_file = os.path.join(path, ".git", "config")
if os.path.exists(config_file):
return config_file # found it!
2 changes: 1 addition & 1 deletion tests/test_filewriter.py
Original file line number Diff line number Diff line change
@@ -242,7 +242,7 @@ def test_receiver_battery(self):
callback.file_extension,
apstools.filewriters.NEXUS_FILE_EXTENSION)

for plan_name, document_set in self.db.items():
for plan_name in self.db:
callback.clear()
callback.file_path = self.tempdir
self.assertIsNone(callback.uid, plan_name)