def _variable(type_name, name): """Returns a placeholder variable with a given name and EE type. Args: type_name: A class to mimic. name: The name of the variable as it will appear in the arguments of the custom functions that use this variable. If null, a name will be auto-generated in _resolveNamelessArgs(). Returns: A variable with the given name implementing the given type. """ var_type = ee_types.nameToClass(type_name) or object if issubclass(var_type, encodable.Encodable): base = var_type else: base = encodable.Encodable class Variable(base): def __init__(self): # Don't call the base class's constructor. self._name = name def encode(self, unused_encoder): return { 'type': 'ArgumentRef', 'value': self._name } instance = Variable() setattr(instance, ee_types.VAR_TYPE_KEY, var_type) return instance
def variable(type_name, name): """Returns a placeholder variable with a given name and EE type. Args: type_name: A class to mimic. name: The name of the variable as it will appear in the arguments of the custom functions that use this variable. If null, a name will be auto-generated in _resolveNamelessArgs(). Returns: A variable with the given name implementing the given type. """ var_type = ee_types.nameToClass(type_name) or computedobject.ComputedObject result = var_type.__new__(var_type) result.func = None result.args = None result.varName = name return result