def main(args): '''Return the fully qualified reference designator list for all instruments producing the specified stream in the specified UFrame instance. The stream may be a partial or complete stream name''' status = 0 base_url = args.base_url if not base_url: if args.verbose: sys.stderr.write('No uframe_base specified. Checking UFRAME_BASE_URL environment variable\n') base_url = os.getenv('UFRAME_BASE_URL') if not base_url: sys.stderr.write('No UFrame instance specified') sys.stderr.flush() return 1 # Create a UFrame instance if args.verbose: sys.stderr.write('Creating UFrame API instance\n') uframe = UFrame(base_url=base_url, timeout=args.timeout, validate=args.validate_uframe) # Fetch the table of contents from UFrame if args.verbose: t0 = datetime.datetime.utcnow() sys.stderr.write('Fetching and creating UFrame table of contents...') uframe.fetch_toc() if args.verbose: t1 = datetime.datetime.utcnow() dt = t1 - t0 sys.stderr.write('Complete ({:d} seconds)\n'.format(dt.seconds)) if args.stream_name: instruments = uframe.stream_to_instrument(args.stream_name) else: instruments = uframe.streams if args.json: json.dumps(instruments) else: for instrument in instruments: sys.stdout.write('{:s}\n'.format(instrument)) return status