Replace find_version logic with exec to fix package version

Remove all the importlib trickery and use exec instead, as it was
essentially what this was doing anyway.
Signed-off-by: Maxime Buquet's avatarMaxime “pep” Buquet <>
parent 97b564fb
...@@ -10,8 +10,6 @@ ...@@ -10,8 +10,6 @@
""" """
import os import os
from importlib.machinery import PathFinder
from typing import Optional
try: try:
from setuptools import setup from setuptools import setup
...@@ -19,32 +17,25 @@ except ImportError: ...@@ -19,32 +17,25 @@ except ImportError:
from distutils.core import setup from distutils.core import setup
def find_version(load_path, name) -> Optional[str]: MODULE_FILE_PATH = os.path.join(
"""Find module version""" os.path.dirname(os.path.abspath(__file__)),
'slixmpp_omemo', ''
module = None def get_version() -> str:
spec = PathFinder.find_spec(name, load_path) """Returns version by looking at slixmpp_omemo/"""
module = spec.loader.load_module(name)
except (AttributeError, ImportError, SyntaxError):
return None
if module is None:
return None
for key in dir(module): version = {}
if key != '__version__': with open(MODULE_FILE_PATH) as file:
continue exec(, version)
return getattr(module, key)
return None
if '__version__' in version:
return version['__version__']
return 'missingno'
MODULE_FILE_PATH = os.path.join(
VERSION = find_version(MODULE_FILE_PATH, 'version')
DESCRIPTION = ('Slixmpp OMEMO plugin') DESCRIPTION = ('Slixmpp OMEMO plugin')
VERSION = get_version()
with open('README.rst', encoding='utf8') as readme: with open('README.rst', encoding='utf8') as readme:
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment