def main(args): src_pulsar_id = cache.get_pulsarid(args.src_psrname) dest_pulsar_id = cache.get_pulsarid(args.dest_psrname) if src_pulsar_id == dest_pulsar_id: raise errors.BadInputError("Cannot merge '%s' (ID: %d) into " "itself ('%s')" % (args.src_psrname, src_pulsar_id, args.dest_psrname)) merge_pulsar(src_pulsar_id, dest_pulsar_id)
def main(args): if args.timfile is None: raise errors.BadInputError("An input timfile is required.") if args.pulsar_name is None: raise errors.BadInputError("The pulsar name must be provided.") if args.format not in READERS: raise errors.UnrecognizedValueError("The requested timfile format " "'%s' is not recognized. " "Available formats: '%s'." % (args.format, "', '".join(sorted(READERS.keys())))) # Pulsar must already included in DB pulsar_id = cache.get_pulsarid(args.pulsar_name) obssystem_discovery_args = {'obssystem_name': args.obssystem, 'obssystem_flags': args.obssystem_flags, 'backend_name': args.backend, 'backend_flags': args.backend_flags, 'frontend_name': args.frontend, 'frontend_flags': args.frontend_flags} if args.dry_run: # Parse input file toas = parse_timfile(args.timfile, reader=args.format, **obssystem_discovery_args) print "%d TOAs parsed" % len(toas) msg = [] for toa in toas: msg.append("TOA info: %s" % "\n ".join(["%s: %s" % xx for xx in toa.iteritems()])) notify.print_info("\n".join(msg), 3) else: load_from_timfile(args.timfile, pulsar_id=pulsar_id, reader=args.format, **obssystem_discovery_args)
def main(args): # Build caches cache.get_pulsarname_cache() pulsar_ids = args.pulsar_ids + \ [cache.get_pulsarid(psr) for psr in args.psrnames] if not pulsar_ids: pulsar_ids = None if args.output_style == 'text': # Get pulsar info psrinfo = get_pulsarinfo(pulsar_ids) show_pulsars(psrinfo) elif args.output_style == 'dump': dump_pulsars(pulsar_ids) else: raise errors.UnrecognizedValueError("The output-style '%s' is " "not recognized!" % args.output_style)
def main(args): pulsar_id = cache.get_pulsarid(args.psrname) ap.add_pulsar_aliases(pulsar_id, args.aliases)
def prep_file(fn): """Prepare file for archiving/loading. Also, perform some checks on the file to make sure we won't run into problems later. Checks peformed: - Existence of file. - Read/write access for file (so it can be moved). - Header contains all necessary values. - Site/observing system is recognized. Input: fn: The name of the file to check. Outputs: params: A dictionary of info to be uploaded. """ # Check existence of file verify_file_path(fn) # Check file permissions allow for writing and reading if not os.access(fn, os.R_OK): raise errors.FileError("File (%s) is not readable!" % fn) # Grab header info hdritems = ["nbin", "nchan", "npol", "nsub", "type", "telescop", "name", "dec", "ra", "freq", "bw", "dm", "rm", # The names of these header params # vary with psrchive version # "dmc", "rm_c", "pol_c", "scale", "state", "length", "rcvr", "basis", "backend", "mjd"] params = get_header_vals(fn, hdritems) params['user_id'] = cache.get_userid() # Normalise telescope name tinfo = cache.get_telescope_info(params['telescop']) params['telescop'] = tinfo['telescope_name'] params.update(tinfo) # Check if obssystem_id, pulsar_id, user_id can be found obssys_key = (params['telescop'].lower(), params['rcvr'].lower(), params['backend'].lower()) obssys_ids = cache.get_obssystemid_cache() if obssys_key not in obssys_ids: t, r, b = obssys_key raise errors.FileError("The observing system combination in the file " "%s is not registered in the database. " "(Telescope: %s, Receiver: %s; Backend: %s)." % (fn, t, r, b)) else: params['obssystem_id'] = obssys_ids[obssys_key] obssysinfo = cache.get_obssysinfo(params['obssystem_id']) params['band_descriptor'] = obssysinfo['band_descriptor'] params['obssys_name'] = obssysinfo['name'] # Check if pulsar_id is found try: psr_id = cache.get_pulsarid(params['name']) except errors.UnrecognizedValueError: if config.cfg.auto_add_pulsars: notify.print_info("Automatically inserting pulsar with " "name '%s'" % params['name'], 1) # Add pulsar psr_id = add_pulsar.add_pulsar(params['name']) # Force an update of the pulsarid and pulsarname caches cache.get_pulsarid_cache(update=True) cache.get_pulsarname_cache(update=True) else: raise errors.FileError("The pulsar name %s (from file %s) is not " "recognized." % (params['name'], fn)) # Normalise pulsar name params['name'] = cache.get_prefname(params['name']) params['pulsar_id'] = psr_id return params