parameters: (package_name, pre_version=None)
docstring: Get the version of the project.
  
      First, try getting it from PKG-INFO or METADATA, if it exists. If it does,
      that means we're in a distribution tarball or that install has happened.
      Otherwise, if there is no PKG-INFO or METADATA file, pull the version
      from git.
  
      We do not support setup.py version sanity in git archive tarballs, nor do
      we support packagers directly sucking our git repo into theirs. We expect
      that a source tarball be made from our git repo - or that if someone wants
      to make a source tarball from a fork of our repo with additional tags in it
      that they understand and desire the results of doing that.
  
      :param pre_version: The version field from setup.cfg - if set then this
          version will be the next release.
docstring_summary: Get the version of the project.
docstring_tokens: Get the version of the project .
function: def get_version(package_name, pre_version=None):
      """Get the version of the project.
  
      First, try getting it from PKG-INFO or METADATA, if it exists. If it does,
      that means we're in a distribution tarball or that install has happened.
      Otherwise, if there is no PKG-INFO or METADATA file, pull the version
      from git.
  
      We do not support setup.py version sanity in git archive tarballs, nor do
      we support packagers directly sucking our git repo into theirs. We expect
      that a source tarball be made from our git repo - or that if someone wants
      to make a source tarball from a fork of our repo with additional tags in it
      that they understand and desire the results of doing that.
  
      :param pre_version: The version field from setup.cfg - if set then this
          version will be the next release.
      """
      version = os.environ.get(
          "PBR_VERSION",
          os.environ.get("OSLO_PACKAGE_VERSION", None))
      if version:
          return version
      version = _get_version_from_pkg_metadata(package_name)
      if version:
          return version
      version = _get_version_from_git(pre_version)
      # Handle http://bugs.python.org/issue11638
      # version will either be an empty unicode string or a valid
      # unicode version string, but either way it's unicode and needs to
      # be encoded.
      if sys.version_info[0] == 2:
          version = version.encode('utf-8')
      if version:
          return version
      raise Exception("Versioning for this project requires either an sdist"
                      " tarball, or access to an upstream git repository."
                      " It's also possible that there is a mismatch between"
                      " the package name in setup.cfg and the argument given"
                      " to pbr.version.VersionInfo. Project name {name} was"
                      " given, but was not able to be found.".format(
                          name=package_name))
function_tokens: def get_version ( package_name , pre_version = None ) : version = os . environ . get ( "PBR_VERSION" , os . environ . get ( "OSLO_PACKAGE_VERSION" , None ) ) if version : return version version = _get_version_from_pkg_metadata ( package_name ) if version : return version version = _get_version_from_git ( pre_version ) # Handle http://bugs.python.org/issue11638 # version will either be an empty unicode string or a valid # unicode version string, but either way it's unicode and needs to # be encoded. if sys . version_info [ 0 ] == 2 : version = version . encode ( 'utf-8' ) if version : return version raise Exception ( "Versioning for this project requires either an sdist" " tarball, or access to an upstream git repository." " It's also possible that there is a mismatch between" " the package name in setup.cfg and the argument given" " to pbr.version.VersionInfo. Project name {name} was" " given, but was not able to be found." . format ( name = package_name ) )