text: """\
  important note:
  
  the setup of setuptools_scm is self-using,
  the first execution of `python setup.py egg_info`
  will generate partial data
  its critical to run `python setup.py egg_info`
  once before running sdist or easy_install on a fresh checkouts
  
  pip usage is recommended
  """
  from __future__ import print_function
  import os
  import sys
  import setuptools
  
  
  def scm_config():
      here = os.path.dirname(os.path.abspath(__file__))
      src = os.path.join(here, "src")
      egg_info = os.path.join(src, "setuptools_scm.egg-info")
      has_entrypoints = os.path.isdir(egg_info)
      import pkg_resources
  
      sys.path.insert(0, src)
      pkg_resources.working_set.add_entry(src)
      from setuptools_scm.hacks import parse_pkginfo
      from setuptools_scm.git import parse as parse_git
      from setuptools_scm.version import guess_next_dev_version, get_local_node_and_date
  
      def parse(root):
          try:
              return parse_pkginfo(root)
          except IOError:
              return parse_git(root)
  
      config = dict(
          version_scheme=guess_next_dev_version, local_scheme=get_local_node_and_date
      )
  
      if has_entrypoints:
          return dict(use_scm_version=config)
      else:
          from setuptools_scm import get_version
  
          return dict(version=get_version(root=here, parse=parse, **config))
  
  
  with open("README.rst") as fp:
      long_description = fp.read()
  
  
  arguments = dict(
      name="setuptools_scm",
      url="https://github.com/pypa/setuptools_scm/",
      zip_safe=True,
      author="Ronny Pfannschmidt",
      author_email="opensource@ronnypfannschmidt.de",
      description=("the blessed package to manage your versions by scm tags"),
      long_description=long_description,
      license="MIT",
      packages=["setuptools_scm"],
      package_dir={"": "src"},
      entry_points="""
          [distutils.setup_keywords]
          use_scm_version = setuptools_scm.integration:version_keyword
  
          [setuptools.file_finders]
          setuptools_scm = setuptools_scm.integration:find_files
  
          [setuptools_scm.parse_scm]
          .hg = setuptools_scm.hg:parse
          .git = setuptools_scm.git:parse
  
          [setuptools_scm.parse_scm_fallback]
          .hg_archival.txt = setuptools_scm.hg:parse_archival
          PKG-INFO = setuptools_scm.hacks:parse_pkginfo
          pip-egg-info = setuptools_scm.hacks:parse_pip_egg_info
          setup.py = setuptools_scm.hacks:fallback_version
  
          [setuptools_scm.files_command]
          .hg = setuptools_scm.file_finder_hg:hg_find_files
          .git = setuptools_scm.file_finder_git:git_find_files
  
          [setuptools_scm.version_scheme]
          guess-next-dev = setuptools_scm.version:guess_next_dev_version
          post-release = setuptools_scm.version:postrelease_version
          python-simplified-semver = setuptools_scm.version:simplified_semver_version
  
          [setuptools_scm.local_scheme]
          node-and-date = setuptools_scm.version:get_local_node_and_date
          node-and-timestamp = \
          setuptools_scm.version:get_local_node_and_timestamp
          dirty-tag = setuptools_scm.version:get_local_dirty_tag
      """,
      classifiers=[
          "Development Status :: 4 - Beta",
          "Intended Audience :: Developers",
          "License :: OSI Approved :: MIT License",
          "Programming Language :: Python",
          "Programming Language :: Python :: 2",
          "Programming Language :: Python :: 3",
          "Programming Language :: Python :: 2.7",
          "Programming Language :: Python :: 3.4",
          "Programming Language :: Python :: 3.5",
          "Programming Language :: Python :: 3.6",
          "Programming Language :: Python :: 3.7",
          "Topic :: Software Development :: Libraries",
          "Topic :: Software Development :: Version Control",
          "Topic :: System :: Software Distribution",
          "Topic :: Utilities",
      ],
      python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
  )
  
  if __name__ == "__main__":
      arguments.update(scm_config())
      setuptools.setup(**arguments)
  