Skip to content

Commit

Permalink
Merge pull request #1 from MikeHart85/migrate_profile_handlers
Browse files Browse the repository at this point in the history
Migrate profile handlers
  • Loading branch information
danielballan committed Jun 15, 2020
2 parents 1c9b801 + 69ea4d3 commit ccd08a4
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 4 deletions.
27 changes: 26 additions & 1 deletion nsls2_detector_handlers/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,29 @@

from ._version import get_versions

__version__ = get_versions()['version']
del get_versions


class HandlerBase:
"""
Base-class for Handlers to provide the boiler plate to
make them usable in context managers by providing stubs of
``__enter__``, ``__exit__`` and ``close``
"""

specs = set()

def __enter__(self):
return self

def __exit__(self, exc_type, exc_value, traceback):
self.close()

def close(self):
pass

def __del__(self):
try:
self.close()
except Exception:
pass
17 changes: 17 additions & 0 deletions nsls2_detector_handlers/srx_flyscans.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
from . import HandlerBase

import h5py


class ZebraHDF5Handler(HandlerBase):
specs = {'ZEBRA_HDF51', 'SIS_HDF51'}

def __init__(self, resource_fn):
self._resource_fn = resource_fn
self._handle = h5py.File(resource_fn, 'r')

def __call__(self, *, column):
return self._handle[column][:]

def get_file_list(self, datum_kwarg_gen):
return [self._resource_fn]
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# List required packages in this file, one per line.
h5py
7 changes: 4 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,14 @@
description="Staging repo for handlers specific to NSLS-II",
long_description=readme,
author="Brookhaven National Laboratory",
author_email='',
author_email='dama@bnl.gov',
url='https://github.com/bluesky/nsls2-detector-handlers',
python_requires='>={}'.format('.'.join(str(n) for n in min_version)),
packages=find_packages(exclude=['docs', 'tests']),
entry_points={
'console_scripts': [
# 'command = some.module:some_function',
'databroker.handlers': [
'ZEBRA_HDF51 = nsls2_detector_handlers.srx_flyscans:ZebraHDF5Handler',
'SIS_HDF51 = nsls2_detector_handlers.srx_flyscans:ZebraHDF5Handler',
],
},
include_package_data=True,
Expand Down

0 comments on commit ccd08a4

Please sign in to comment.