code: def get_version(module):
      
      version_names = ["__version__", "get_version", "version"]
      version_names.extend([name.upper() for name in version_names])
      for name in version_names:
          try:
              version = getattr(module, name)
          except AttributeError:
              continue
          if callable(version):
              version = version()
          try:
              version = ".".join([str(i) for i in version.__iter__()])
          except AttributeError:
              pass
          return version
docs: Attempts to read a version attribute from the given module that
      could be specified via several different names and formats.