code: def __init__(self, name: str, version: t.Optional[str] = None):
      lname = name.lower()
      if name != lname:
          logger.warning(
              "Converting '%s' to lowercase: '%s'.", name, lname
          )
  
      validate_tag_str(lname)
  
      self.name = lname
  
      if version is not None:
          lversion = version.lower()
          if version != lversion:
              logger.warning(
                  "Converting '%s' to lowercase: '%s'.",
                  version,
                  lversion,
              )
          validate_tag_str(lversion)
          self.version = lversion
      else:
          self.version = None
  
imports: import base64
  import logging
  import re
  import typing
  import uuid
  import attr
  import fs
  from ..exceptions import BentoMLException
  from .utils import bentoml_cattr
label_desc: Use image node_id 1 to create a new Tag object  with example: obj = Tag(name, version)