class_docstr: A metaclass that is used to register classes in `SERIALIZABLE_REGISTRY` or `NON_SERIALIZABLE_REGISTRY`
  so they can be found later while deserializing transformation pipeline using classes full names.
class_docstr_tok: ["A","metaclass","that","is","used","to","register","classes","in","`","SERIALIZABLE_REGISTRY","`","or","`","NON_SERIALIZABLE_REGISTRY","`","so","they","can","be","found","later","while","deserializing","transformation","pipeline","using","classes","full","names","."]
code: def __new__(
      mcs, name: str, bases: Tuple[type, ...], *args, **kwargs
  ) -> "SerializableMeta":
      cls_obj = super().__new__(mcs, name, bases, *args, **kwargs)
      if name != "Serializable" and ABC not in bases:
          if cls_obj.is_serializable():
              SERIALIZABLE_REGISTRY[
                  cls_obj.get_class_fullname()
              ] = cls_obj
          else:
              NON_SERIALIZABLE_REGISTRY[
                  cls_obj.get_class_fullname()
              ] = cls_obj
      return cls_obj
  
imports: from __future__ import absolute_import
  import json
  import typing
  import warnings
  from abc import ABC, ABCMeta, abstractmethod
  from typing import IO, Any, Callable, Dict, Optional, Tuple, Type, Union
  from albumentations import __version__
label_desc: Use image node_id 1 for calling the SerializableMeta obj's underlying member method code with example usage: obj.__new__(mcs, name, bases) and returns: cls_obj