def __init__(self, p: Union[(float, Dict[(str, float)])]=0.0, angle: Union[(float, Tuple[(float, float)])]=None, translate: SPATIAL_RANGE_OR_VAL=None, scale: Union[(float, Tuple[(float, float)])]=None, shear: SPATIAL_RANGE_OR_VAL=None, pad_like=None):
    if isinstance(p, Number):
        p = {n: p for n in self._param_names}
    else:
        assert isinstance(p, dict)
        unknown_keys = (set(p.keys()) - set(self._param_names))
        if len(unknown_keys):
            raise ValueError(f'Unknown keys for `p`: {unknown_keys}')
        p = p.copy()
        p.update({k: 0.0 for k in self._param_names if (k not in p)})
    params = locals()
    params = {k: params[k] for k in list(self._param_names)}
    self.pad_like = pad_like
    super().__init__(params=params, p=p, param_kinds={'translate': ParamKind.MULTI_ARG, 'shear': ParamKind.MULTI_ARG})
def __init__(self, p: Union[(float, Dict[(str, float)])]=0.0, angle: Union[(float, Tuple[(float, float)])]=None, translate: SPATIAL_RANGE_OR_VAL=None, scale: Union[(float, Tuple[(float, float)])]=None, shear: SPATIAL_RANGE_OR_VAL=None, pad_like=None):
    if isinstance(p, Number):
        p = {n: p for n in self._param_names}
    else:
        assert isinstance(p, dict)
        unknown_keys = (set(p.keys()) - set(self._param_names))
        if len(unknown_keys):
            raise ValueError(f'Unknown keys for `p`: {unknown_keys}')
        p = p.copy()
        p.update({k: 0.0 for k in self._param_names if (k not in p)})
    params = locals()
    params = {k: params[k] for k in list(self._param_names)}
    self.pad_like = pad_like
    super().__init__(params=params, p=p, param_kinds={'translate': ParamKind.MULTI_ARG, 'shear': ParamKind.MULTI_ARG})