def _ivo_apply_pm(args): if len(args) != 5: raise common.UfuncError( "ivo_apply_pm requires exactly ra, dec, pmra, pmdec, epdist.") ra, dec, pmra, pmdec, epdist = [nodes.flatten(a) for a in args] return ("spoint(RADIANS({ra}+{pmra}/cos(RADIANS({dec})*{epdist}))," " RADIANS({dec}+{pmdec}*{epdist}))").format(**locals())
def _booleanizeThis(node, operator, operand): if len(node.args) != 2: raise common.UfuncError("%s takes exactly two arguments" % funcName) return morphhelpers.addNotToBooleanized( booleanExpr % { '1': nodes.flatten(node.args[0]), '2': nodes.flatten(node.args[1]) }, operator, operand)
def _ivo_healpix_index(args): if len(args) == 2: return "healpix_nest(%s, %s)" % (nodes.flatten( args[0]), nodes.flatten(args[1])) elif len(args) == 3: return "healpix_nest(%s, spoint(RADIANS(%s), RADIANS(%s)))" % ( nodes.flatten(args[0]), nodes.flatten( args[1]), nodes.flatten(args[2])) else: raise common.UfuncError( "ivo_healpix_index takes either (ra, dec, order)" " or (point, order) arguments")
def _match(args): if len(args) != 2: raise common.UfuncError("gavo_match takes exactly two arguments") return "(CASE WHEN %s ~ %s THEN 1 ELSE 0 END)" % (nodes.flatten( args[1]), nodes.flatten(args[0]))
def _getFunc(self): try: return UFUNC_REGISTRY[self.funName.upper()] except: raise common.UfuncError("No such function: %s" % self.funName)
def _ivo_healpix_center(args): if len(args) != 2: raise common.UfuncError("ivo_healpix_center only takes (index, order)" " arguments") return "center_of_healpix_nest(%s, %s)" % (nodes.flatten( args[0]), nodes.flatten(args[1]))
def _string_agg(args): if len(args) != 2: raise common.UfuncError("ivo_string_agg takes exactly two arguments") return "string_agg(%s, %s)" % (nodes.flatten( args[0]), nodes.flatten(args[1]))
def _to_jd(args): if len(args) != 1: raise common.UfuncError( "gavo_to_jd takes exactly one timestamp argument") return "ts_to_jd(%s)" % nodes.flatten(args[0])
def _hashlist_has(args): if len(args) != 2: raise common.UfuncError("ivo_haslist_has takes exactly two arguments") return None
def _nocasematch(args): if len(args) != 2: raise common.UfuncError("ivo_nocasematch takes exactly two arguments") return None
def _hasword(args): if len(args) != 2: raise common.UfuncError("ivo_hasword takes exactly two arguments") return None