text: import os
  import re
  import subprocess
  import sys
  from datetime import datetime
  from time import time
  
  from setuptools import find_packages, setup
  
  assert sys.version_info >= (3, 6, 0), "KivyMD requires Python 3.6+"
  
  
  def get_version() -> str:
      """Get __version__ from __init__.py file."""
      version_file = os.path.join(
          os.path.dirname(__file__), "kivymd", "__init__.py"
      )
      version_file_data = open(version_file, "rt", encoding="utf-8").read()
      version_regex = r"(?<=^__version__ = ['\"])[^'\"]+(?=['\"]$)"
      try:
          version = re.findall(version_regex, version_file_data, re.M)[0]
          return version
      except IndexError:
          raise ValueError(f"Unable to find version string in {version_file}.")
  
  
  def write_version_info():
      """Create _version.py file with git revision and date."""
      filename = os.path.join(os.path.dirname(__file__), "kivymd", "_version.py")
      version = get_version()
      epoch = int(os.environ.get("SOURCE_DATE_EPOCH", time()))
      date = datetime.utcfromtimestamp(epoch).strftime("%Y-%m-%d")
      try:
          git_revision = (
              subprocess.check_output(["git", "rev-parse", "HEAD"])
              .strip()
              .decode("ascii")
          )
      except (
          subprocess.CalledProcessError,
          OSError,
          IOError,
          FileNotFoundError,
      ) as e:
          # CalledProcessError has no errno
          errno = getattr(e, "errno", None)
          if errno != 2 and "CalledProcessError" not in repr(e):
              raise
          git_revision = "Unknown"
  
      version_info = (
          f"# THIS FILE IS GENERATED FROM KIVYMD SETUP.PY\n"
          f'__version__ = "{version}"\n'
          f'__hash__ = "{git_revision}"\n'
          f'__short_hash__ = "{git_revision[:7]}"\n'
          f'__date__ = "{date}"\n'
      )
  
      open(filename, "wt", encoding="utf-8").write(version_info)
  
  
  if __name__ == "__main__":
      # Static strings are in setup.cfg
      write_version_info()
      setup(
          version=get_version(),
          packages=find_packages(
              include=["kivymd*"], exclude=["kivymd.tools.release"]
          ),
          package_dir={"kivymd": "kivymd"},
          package_data={
              "kivymd": ["images/*.png", "images/*.atlas", "fonts/*.ttf"]
          },
          extras_require={
              "dev": [
                  "pre-commit",
                  "black",
                  "isort[pyproject]",
                  "flake8",
                  "pytest",
                  "pytest-cov",
                  "pytest_asyncio",
                  "pytest-timeout",
                  "coveralls",
              ],
              "docs": ["sphinx", "sphinx-autoapi", "sphinx_rtd_theme"],
          },
          install_requires=["kivy"],
          setup_requires=[],
          python_requires=">=3.6",
      )
  