Update DataSourceInfo API
-
Review changes -
-
Download -
Patches
-
Plain diff
Motivation
The datasource information utilities in gstlal.datasource
were designed such that optparse
command-line arg parsing was the primary means of initializing a GWDataSourceInfo
object; a necessary step to build any pipeline using mkbasicsrc
. The new api, via DataSourceInfo
has several goals:
- Direct construction of datasources from Python literals
- Preserve compatibility with command-line args
- Provide convenience functions for constructing pipeline datasources directly in Python
Changes
This MR touches a lot of scripts, but should preserve existing functionality. The primary changes occur in a single module, gstlal.datasource
, where the GWDataSourceInfo
object and utilities have been deprecated in favor of the DataSourceInfo
object and utilities. Feature-set is preserved but interface is improved, see examples below. Specific changes include:
- New
DataSourceInfo
class with improved interface and backwards compat - Generalized command-line parsing utilities, such as
datasource.parse_list_to_dict
- New administrative utilities in
gstlal.utilities.admin
for:- Adding deprecation warnings to classes, functions, or methods
- Adding copyright stubs to modules
- Accompanying tests
Examples
Legacy: GWDataSourceInfo
args = [
'--data-source=frames',
'--frame-cache=/path/to/cache',
'--channel-name=H1=CHANNEL',
'--gps-start-time=1234567',
'--gps-end-time=1234568',
]
parser = optparse.OptionParser(description="test legacy mkbasicsrc")
datasource.append_options(parser)
options, filenames = parser.parse_args(args)
info = GWDataSourceInfo(options)
New api: DataSourceInfo
info = DataSourceInfo(data_source='frames',
frame_cache='path/to/cache',
gps_start_time=1234567,
gps_end_time=1234568,
channel_name={'H1': 'CHANNEL'})
Refactor and Drop-In Replacement
What was:
gw_data_source_info = datasource.GWDataSourceInfo(options)
Becomes:
gw_data_source_info = datasource.DataSourceInfo.from_optparse(options)
Edited by James Kennington
Merge request reports
Compare and
- version 34a7769a18
- version 33ad75e151
- version 328330ee9a
- version 31173be106
- version 302127732a
- version 29af2676bb
- version 283e535b26
- version 27085bcef0
- version 26149d940f
- version 25543d5b6c
- version 242961387e
- version 239d3d141c
- version 22becb5f2c
- version 21f447e6ba
- version 2099423ad4
- version 1980901b57
- version 182291a232
- version 17b23d7bed
- version 1684c6e79c
- version 15c9bb6023
- version 1401b34999
- version 13dddfe952
- version 127c391ad6
- version 11dab9f9e9
- version 106eef7f89
- version 9c6ab6996
- version 8664e5b43
- version 781b26b59
- version 6975cec2b
- version 5726acff3
- version 4b8639983
- version 3507fc8dd
- version 21e391a59
- version 12c6af012
- master (base)
- latest version75fb7d8a76 commits,
- version 34a7769a1875 commits,
- version 33ad75e15174 commits,
- version 328330ee9a73 commits,
- version 31173be10672 commits,
- version 302127732a71 commits,
- version 29af2676bb67 commits,
- version 283e535b2665 commits,
- version 27085bcef064 commits,
- version 26149d940f63 commits,
- version 25543d5b6c62 commits,
- version 242961387e61 commits,
- version 239d3d141c60 commits,
- version 22becb5f2c59 commits,
- version 21f447e6ba58 commits,
- version 2099423ad449 commits,
- version 1980901b5748 commits,
- version 182291a23247 commits,
- version 17b23d7bed46 commits,
- version 1684c6e79c45 commits,
- version 15c9bb602344 commits,
- version 1401b3499942 commits,
- version 13dddfe95241 commits,
- version 127c391ad639 commits,
- version 11dab9f9e938 commits,
- version 106eef7f8936 commits,
- version 9c6ab699632 commits,
- version 8664e5b4328 commits,
- version 781b26b5927 commits,
- version 6975cec2b25 commits,
- version 5726acff324 commits,
- version 4b863998323 commits,
- version 3507fc8dd14 commits,
- version 21e391a5911 commits,
- version 12c6af0129 commits,
Compare changes
- Side-by-side
- Inline
Files
24Loading