#!/usr/bin/env python from dm.common.cli.dmCli import DmCli from dm.aps_bss.api.apsBssApi import ApsBssApi class ListProposalsCli(DmCli): def __init__(self): DmCli.__init__(self) self.addOption('', '--run', dest='runName', help='Run name. If not provided, current run will be used.') self.addOption('', '--bss-login-file', dest='bssLoginFile', help='BSS login file. It may be provided via environment variable DM_BSS_LOGIN_FILE.') def checkArgs(self): pass def runCommand(self): self.parseArgs(usage=""" dm-list-proposals [--run=RUNNAME] [--bss-login-file=BSSLOGINFILE] Description: Retrieves list of beamline proposals for the given run. """) self.checkArgs() api = ApsBssApi(loginFile=self.options.bssLoginFile) proposals = api.listBeamlineProposals(runName=self.options.runName) for proposal in proposals: print proposal.getDisplayString(self.getDisplayKeys(), self.getDisplayFormat()) ####################################################################### # Run command. if __name__ == '__main__': cli = ListProposalsCli() cli.run()