Audio I/O

class klio_audio.transforms.io.GcsLoadBinary

Download binary file from GCS into memory.

This transform uses the job_config.data.inputs configuration in a job’s klio-job.yaml file.

This transform uses Apache’s native GCS client and expects a PCollection of KlioMessages, and returns with a payload of the downloaded binary as a file-like bytes object.

Example:

# run.py
from klio_audio.transforms import audio
from klio_audio.transforms import io

def run(in_pcol, job_config):
    return (
        in_pcol
        | io.GcsLoadBinary()
        | audio.LoadAudio()
        # other transforms
    )
# klio-job.yaml
# <-- snip -->
job_config:
  events:
    # <-- snip -->
  data:
    inputs:
      - type: file
        location: gs://my-bucket/input
        file_suffix: .ogg
      # <-- snip -->
class klio_audio.transforms.io.GcsUploadPlot(prefix='', suffix='', file_format=None, **plt_kwargs)

Upload a matplotlib figure to GCS.

This transform uses the job_config.data.outputs configuration in a job’s klio-job.yaml file.

This transform wraps savefig and expects a PCollection of KlioMessages where the payload is a matplotlib.figure.Figure and returns with a payload of the uploaded file location as bytes.

Example:

# run.py
from klio_audio.transforms import audio
from klio_audio.transforms import io

def run(in_pcol, job_config):
    return (
        in_pcol
        | io.GcsLoadBinary()
        | audio.LoadAudio()
        | audio.GetSpec()
        | audio.SpecToPlot()
        | io.GcsUploadPlot()
    )
# klio-job.yaml
# <-- snip -->
job_config:
  # <-- snip -->
  data:
    inputs:
      # <-- snip -->
    outputs:
      - type: file
        location: gs://my-bucket/output
        file_suffix: .png
Parameters
  • prefix (str) – filename prefix. Default: ""

  • suffix (str) – filename suffix. Default: ""

  • file_format (str) – plot format (e.g. png). Defaults to the file suffix as configured in klio-job.yaml::job_config.data.outputs[].file_suffix.

  • plt_kwargs (dict) – keyword arguments to pass to savefig.