param.py
1 import sys 2 3 from mlflow.entities._mlflow_object import _MlflowObject 4 from mlflow.protos.service_pb2 import Param as ProtoParam 5 6 7 class Param(_MlflowObject): 8 """ 9 Parameter object. 10 """ 11 12 def __init__(self, key, value): 13 if "pyspark.ml" in sys.modules: 14 import pyspark.ml.param 15 16 if isinstance(key, pyspark.ml.param.Param): 17 key = key.name 18 value = str(value) 19 self._key = key 20 self._value = value 21 22 @property 23 def key(self): 24 """String key corresponding to the parameter name.""" 25 return self._key 26 27 @property 28 def value(self): 29 """String value of the parameter.""" 30 return self._value 31 32 def to_proto(self): 33 param = ProtoParam() 34 param.key = self.key 35 param.value = self.value 36 return param 37 38 @classmethod 39 def from_proto(cls, proto): 40 return cls(proto.key, proto.value) 41 42 def __eq__(self, __o): 43 if isinstance(__o, self.__class__): 44 return self._key == __o._key 45 46 return False 47 48 def __hash__(self): 49 return hash(self._key)