Try to get version string of a package. Return a version string of the current package or None if the version information could not be detected. Notes ----- This method scans files named __version__.py, _version.py, version.py, and
(self, version_file=None, version_variable=None)
| 1949 | |
| 1950 | |
| 1951 | def get_version(self, version_file=None, version_variable=None): |
| 1952 | """Try to get version string of a package. |
| 1953 | |
| 1954 | Return a version string of the current package or None if the version |
| 1955 | information could not be detected. |
| 1956 | |
| 1957 | Notes |
| 1958 | ----- |
| 1959 | This method scans files named |
| 1960 | __version__.py, <packagename>_version.py, version.py, and |
| 1961 | __svn_version__.py for string variables version, __version__, and |
| 1962 | <packagename>_version, until a version number is found. |
| 1963 | """ |
| 1964 | version = getattr(self, 'version', None) |
| 1965 | if version is not None: |
| 1966 | return version |
| 1967 | |
| 1968 | # Get version from version file. |
| 1969 | if version_file is None: |
| 1970 | files = ['__version__.py', |
| 1971 | self.name.split('.')[-1]+'_version.py', |
| 1972 | 'version.py', |
| 1973 | '__svn_version__.py', |
| 1974 | '__hg_version__.py'] |
| 1975 | else: |
| 1976 | files = [version_file] |
| 1977 | if version_variable is None: |
| 1978 | version_vars = ['version', |
| 1979 | '__version__', |
| 1980 | self.name.split('.')[-1]+'_version'] |
| 1981 | else: |
| 1982 | version_vars = [version_variable] |
| 1983 | for f in files: |
| 1984 | fn = njoin(self.local_path, f) |
| 1985 | if os.path.isfile(fn): |
| 1986 | info = ('.py', 'U', 1) |
| 1987 | name = os.path.splitext(os.path.basename(fn))[0] |
| 1988 | n = dot_join(self.name, name) |
| 1989 | try: |
| 1990 | version_module = exec_mod_from_location( |
| 1991 | '_'.join(n.split('.')), fn) |
| 1992 | except ImportError as e: |
| 1993 | self.warn(str(e)) |
| 1994 | version_module = None |
| 1995 | if version_module is None: |
| 1996 | continue |
| 1997 | |
| 1998 | for a in version_vars: |
| 1999 | version = getattr(version_module, a, None) |
| 2000 | if version is not None: |
| 2001 | break |
| 2002 | |
| 2003 | # Try if versioneer module |
| 2004 | try: |
| 2005 | version = version_module.get_versions()['version'] |
| 2006 | except AttributeError: |
| 2007 | pass |
| 2008 |
no test coverage detected