2 from fnmatch
import fnmatch
6 __all__ = [
"getAndVersion",
"setAstrometryConfigFromEups",
"setPhotocalConfigFromEups",
"setConfigFromEups", ]
10 """Return a cached eups instance"""
13 except AttributeError:
14 getEups._eups = Eups()
19 """Return the version of astrometry_net_data in use"""
20 return getEups().findSetupVersion(
"astrometry_net_data")[0]
24 """Set the astrometry configuration according to the astrometry_net_data being used
26 The menu is a dict mapping the astrometry_net_data version to a dict of configuration
27 values to apply. The menu key may also be a glob. For example:
28 menu = { "ps1*": {}, # No changes
29 "ps1-without-y": { "solver.filterMap": {"y": "z"} }, # No y-band in this specific version
30 "sdss*": { "solver.filterMap": {"y": "z"} }, # No y-band, use z instead
31 "2mass*": { "solver.filterMap": {"y": "J"} }, # No y-band, use J instead
37 selected = menu[version]
40 matchList = [key
for key
in menu
if fnmatch(version, key)]
41 if len(matchList) > 1:
42 raise RuntimeError(
"Multiple menu keys match astrometry_net_data version %s: %s" %
44 if len(matchList) == 0:
45 raise RuntimeError(
"No menu key matches astrometry_net_data version %s" % version)
46 selected = menu[matchList.pop()]
47 for name, value
in selected.items():
48 setDottedAttr(config, name, value)
52 """Set the photocal configuration according to the astrometry_net_data being used"""
57 """Set the astrometry and photocal configuration according to the astrometry_net_data being used
59 The 'astrometryMenu' is as defined for the 'menu' parameter for 'setAstrometryConfigFromEups'.
64 if astrometryMenu
is None:
65 raise RuntimeError(
"No astrometryMenu provided for astrometryConfig")