mirror of https://git.sr.ht/~sircmpwn/hub.sr.ht
setup.py: use importlib.resources from python 3.7 to find core.sr.ht Makefile
importlib.resources will guarantee to find any importable module, and check that the resource ('Makefile') can be found within it. This lets us get rid of the current getsitepackages() hack and environment variable fallback, which is both verbose and badly handles some edge cases when installing modules, and instead use the recommended way to find data files shipped with a python module.
This commit is contained in:
parent
8f238adc82
commit
23e980fc74
26
setup.py
26
setup.py
|
@ -2,31 +2,11 @@
|
|||
from distutils.core import setup
|
||||
import subprocess
|
||||
import os
|
||||
import site
|
||||
import sys
|
||||
import importlib.resources
|
||||
|
||||
if hasattr(site, 'getsitepackages'):
|
||||
pkg_dirs = site.getsitepackages()
|
||||
if site.getusersitepackages():
|
||||
pkg_dirs.append(site.getusersitepackages())
|
||||
for pkg_dir in pkg_dirs:
|
||||
srht_path = os.path.join(pkg_dir, "srht")
|
||||
if os.path.isdir(srht_path):
|
||||
break
|
||||
else:
|
||||
raise Exception("Can't find core srht module in your site packages "
|
||||
"directories. Please install it first.")
|
||||
else:
|
||||
srht_path = os.getenv("SRHT_PATH")
|
||||
if not srht_path:
|
||||
raise Exception("You're running inside a virtual environment. "
|
||||
"Due to virtualenv limitations, you need to set the "
|
||||
"$SRHT_PATH environment variable to the path of the "
|
||||
"core srht module.")
|
||||
elif not os.path.isdir(srht_path):
|
||||
raise Exception(
|
||||
"The $SRHT_PATH environment variable points to an invalid "
|
||||
"directory: {}".format(srht_path))
|
||||
with importlib.resources.path('srht', 'Makefile') as f:
|
||||
srht_path = f.parent.as_posix()
|
||||
|
||||
make = os.environ.get("MAKE", "make")
|
||||
subp = subprocess.run([make, "SRHT_PATH=" + srht_path])
|
||||
|
|
Loading…
Reference in New Issue