import torch.nn as nn
from abc import abstractmethod


class UNetBlock(nn.Module):
    r"""Any module where forward() takes timestep embeddings as a second argument."""

    @abstractmethod
    def forward(self, x, emb):
        r"""Apply the module to `x` given `emb` timestep embeddings."""
