class_docstr: ConvTranspose1d with some builtin handling of asymmetric or causal padding
  and normalization.
code: def __init__(
      self,
      in_channels: int,
      out_channels: int,
      kernel_size: int,
      stride: int = 1,
      causal: bool = False,
      norm: str = "none",
      trim_right_ratio: float = 1.0,
      norm_kwargs: tp.Dict[str, tp.Any] = {},
  ):
      super().__init__()
      self.convtr = NormConvTranspose1d(
          in_channels,
          out_channels,
          kernel_size,
          stride,
          causal=causal,
          norm=norm,
          norm_kwargs=norm_kwargs,
      )
      self.causal = causal
      self.trim_right_ratio = trim_right_ratio
      assert (
          self.causal or self.trim_right_ratio == 1.0
      ), "`trim_right_ratio` != 1.0 only makes sense for causal convolutions"
      assert (
          self.trim_right_ratio >= 0.0 and self.trim_right_ratio <= 1.0
      )
  
imports: import math
  import typing
  import warnings
  import torch
  from torch import nn
  from torch.nn import functional
  from torch.nn.utils import spectral_norm, weight_norm
label_desc: Use image node_id 1 to create a new StreamableConvTranspose1d object from inherited base classes: nn with example: obj = StreamableConvTranspose1d(in_channels, out_channels, kernel_size, stride, causal, norm, trim_right_ratio, norm_kwargs)