From 75c07a997444b2d8728e2e04583ffd8c9fd69657 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20=E2=80=9Cpep=E2=80=9D=20Buquet?= Date: Sun, 24 Feb 2019 17:00:58 +0000 Subject: [PATCH] Replace find_version logic with exec to fix package version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove all the importlib trickery and use exec instead, as it was essentially what this was doing anyway. Signed-off-by: Maxime “pep” Buquet --- setup.py | 37 ++++++++++++++----------------------- 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/setup.py b/setup.py index b0bbf00..c277bdb 100755 --- a/setup.py +++ b/setup.py @@ -10,8 +10,6 @@ """ import os -from importlib.machinery import PathFinder -from typing import Optional try: from setuptools import setup @@ -19,32 +17,25 @@ except ImportError: from distutils.core import setup -def find_version(load_path, name) -> Optional[str]: - """Find module version""" - - module = None - spec = PathFinder.find_spec(name, load_path) - try: - module = spec.loader.load_module(name) - except (AttributeError, ImportError, SyntaxError): - return None - if module is None: - return None - - for key in dir(module): - if key != '__version__': - continue - return getattr(module, key) - return None - - MODULE_FILE_PATH = os.path.join( os.path.dirname(os.path.abspath(__file__)), - 'slixmpp_omemo', + 'slixmpp_omemo', 'version.py' ) -VERSION = find_version(MODULE_FILE_PATH, 'version') +def get_version() -> str: + """Returns version by looking at slixmpp_omemo/version.py""" + + version = {} + with open(MODULE_FILE_PATH) as file: + exec(file.read(), version) + + if '__version__' in version: + return version['__version__'] + return 'missingno' + + DESCRIPTION = ('Slixmpp OMEMO plugin') +VERSION = get_version() with open('README.rst', encoding='utf8') as readme: LONG_DESCRIPTION = readme.read()