示例#1
0
def upload_profile(dataset_profile: DatasetProfile) -> None:
    tmp_dir = tempfile.mkdtemp()
    profile_path = os.path.join(tmp_dir, "profile.bin")
    dataset_profile.write_protobuf(profile_path)

    dataset_timestamp = dataset_profile.dataset_timestamp or datetime.datetime.now(datetime.timezone.utc)
    dataset_timestamp = int(dataset_timestamp.timestamp() * 1000)
    if _session_token:
        _upload_guest_session(dataset_timestamp, profile_path)
    else:
        _upload_whylabs(dataset_profile, dataset_timestamp, profile_path)
示例#2
0
    def _write_protobuf(profile: DatasetProfile,
                        rotation_suffix: str = None,
                        **kwargs):
        """
        Write a protobuf the dataset profile to disk in binary format to MlFlow
        """
        import mlflow

        # import whylogs.mlflow.patcher as patcher
        name = profile.name
        tmp_dir = tempfile.mkdtemp()
        logger.debug("Using tmp dir: %s", tmp_dir)
        dataset_dir = name or "default"
        output_dir = os.path.join(tmp_dir, dataset_dir)
        os.makedirs(output_dir, exist_ok=True)
        output = os.path.join(output_dir, "profile.bin")
        logger.debug("Writing logger %s's data to %s", output,
                     f"whylogs/{dataset_dir}")
        profile.write_protobuf(output)
        mlflow.log_artifact(output, artifact_path=f"whylogs/{dataset_dir}")
        logger.debug("Successfully uploaded logger %s data to MLFlow", name)