1010# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
1111# ANY KIND, either express or implied. See the License for the specific
1212# language governing permissions and limitations under the License.
13- """This file contains code related to model metrics, including metric source."""
13+ """This file contains code related to model metrics, including metric source and file source ."""
1414from __future__ import absolute_import
1515
1616
@@ -25,22 +25,36 @@ def __init__(
2525 model_data_constraints = None ,
2626 bias = None ,
2727 explainability = None ,
28+ bias_pre_training = None ,
29+ bias_post_training = None ,
2830 ):
2931 """Initialize a ``ModelMetrics`` instance and turn parameters into dict.
3032
31- # TODO: flesh out docstrings
3233 Args:
33- model_constraints (MetricsSource):
34- model_data_constraints (MetricsSource):
35- model_data_statistics (MetricsSource):
36- bias (MetricsSource):
37- explainability (MetricsSource):
34+ model_statistics (MetricsSource): A metric source object that represents
35+ model statistics (default: None).
36+ model_constraints (MetricsSource): A metric source object that represents
37+ model constraints (default: None).
38+ model_data_statistics (MetricsSource): A metric source object that represents
39+ model data statistics (default: None).
40+ model_data_constraints (MetricsSource): A metric source object that represents
41+ model data constraints (default: None).
42+ bias (MetricsSource): A metric source object that represents bias report
43+ (default: None).
44+ explainability (MetricsSource): A metric source object that represents
45+ explainability report (default: None).
46+ bias_pre_training (MetricsSource): A metric source object that represents
47+ Pre-training report (default: None).
48+ bias_post_training (MetricsSource): A metric source object that represents
49+ Post-training report (default: None).
3850 """
3951 self .model_statistics = model_statistics
4052 self .model_constraints = model_constraints
4153 self .model_data_statistics = model_data_statistics
4254 self .model_data_constraints = model_data_constraints
4355 self .bias = bias
56+ self .bias_pre_training = bias_pre_training
57+ self .bias_post_training = bias_post_training
4458 self .explainability = explainability
4559
4660 def _to_request_dict (self ):
@@ -63,10 +77,20 @@ def _to_request_dict(self):
6377 if model_data_quality :
6478 model_metrics_request ["ModelDataQuality" ] = model_data_quality
6579
80+ bias = {}
6681 if self .bias is not None :
67- model_metrics_request ["Bias" ] = self .bias ._to_request_dict ()
82+ bias ["Report" ] = self .bias ._to_request_dict ()
83+ if self .bias_pre_training is not None :
84+ bias ["PreTrainingReport" ] = self .bias_pre_training ._to_request_dict ()
85+ if self .bias_post_training is not None :
86+ bias ["PostTrainingReport" ] = self .bias_post_training ._to_request_dict ()
87+ model_metrics_request ["Bias" ] = bias
88+
89+ explainability = {}
6890 if self .explainability is not None :
69- model_metrics_request ["Explainability" ] = self .explainability ._to_request_dict ()
91+ explainability ["Report" ] = self .explainability ._to_request_dict ()
92+ model_metrics_request ["Explainability" ] = explainability
93+
7094 return model_metrics_request
7195
7296
@@ -81,11 +105,10 @@ def __init__(
81105 ):
82106 """Initialize a ``MetricsSource`` instance and turn parameters into dict.
83107
84- # TODO: flesh out docstrings
85108 Args:
86- content_type (str):
87- s3_uri (str):
88- content_digest (str):
109+ content_type (str): Specifies the type of content in S3 URI
110+ s3_uri (str): The S3 URI of the metric
111+ content_digest (str): The digest of the metric (default: None)
89112 """
90113 self .content_type = content_type
91114 self .s3_uri = s3_uri
@@ -97,3 +120,33 @@ def _to_request_dict(self):
97120 if self .content_digest is not None :
98121 metrics_source_request ["ContentDigest" ] = self .content_digest
99122 return metrics_source_request
123+
124+
125+ class FileSource (object ):
126+ """Accepts file source parameters for conversion to request dict."""
127+
128+ def __init__ (
129+ self ,
130+ s3_uri ,
131+ content_digest = None ,
132+ content_type = None ,
133+ ):
134+ """Initialize a ``FileSource`` instance and turn parameters into dict.
135+
136+ Args:
137+ s3_uri (str): The S3 URI of the metric
138+ content_digest (str): The digest of the metric (default: None)
139+ content_type (str): Specifies the type of content in S3 URI (default: None)
140+ """
141+ self .content_type = content_type
142+ self .s3_uri = s3_uri
143+ self .content_digest = content_digest
144+
145+ def _to_request_dict (self ):
146+ """Generates a request dictionary using the parameters provided to the class."""
147+ file_source_request = {"S3Uri" : self .s3_uri }
148+ if self .content_digest is not None :
149+ file_source_request ["ContentDigest" ] = self .content_digest
150+ if self .content_type is not None :
151+ file_source_request ["ContentType" ] = self .content_type
152+ return file_source_request
0 commit comments