/ mlflow / entities / param.py
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)