Skip to content

Commit

Permalink
remove dependency on pip internals
Browse files Browse the repository at this point in the history
closes #1438
  • Loading branch information
Andrew Fyfe committed Mar 19, 2018
1 parent 95ccae5 commit be5e689
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 19 deletions.
1 change: 1 addition & 0 deletions dev-requirements.txt
@@ -1,2 +1,3 @@
django-bower
django-debug-toolbar
packaging
17 changes: 7 additions & 10 deletions modoboa/core/commands/deploy.py
Expand Up @@ -22,13 +22,7 @@

from modoboa.core.commands import Command
from modoboa.lib.api_client import ModoAPIClient

try:
import pip
except ImportError:
sys.stderr.write("Error: pip is required to install extensions.\n")
sys.exit(2)

from modoboa.lib.sysutils import exec_cmd

DBCONN_TPL = """
'{{ conn_name }}': {
Expand Down Expand Up @@ -226,9 +220,12 @@ def handle(self, parsed_args):
extensions = [(extension, extension.replace("-", "_"))
for extension in extensions]
if not parsed_args.dont_install_extensions:
pip_args = (
["install"] + [extension[0] for extension in extensions])
pip.main(pip_args)
cmd = (
sys.executable +
" -m pip install " +
" ".join([extension[0] for extension in extensions])
)
exec_cmd(cmd, capture_output=False)
extra_settings = self.find_extra_settings(extensions)
extensions = [extension[1] for extension in extensions]

Expand Down
18 changes: 9 additions & 9 deletions setup.py
Expand Up @@ -13,21 +13,21 @@
import io
from os import path

from pip.req import parse_requirements
from packaging.requirements import Requirement
from setuptools import find_packages, setup


def get_requirements(requirements_file):
"""Use pip to parse requirements file."""
"""Parse requirements file."""
requirements = []
if path.isfile(requirements_file):
for req in parse_requirements(requirements_file, session="hack"):
# check markers, such as
#
# rope_py3k ; python_version >= '3.0'
#
if req.match_markers():
requirements.append(str(req.req))
with io.open(requirements_file, encoding="utf-8") as fp:
for line in fp:
if line.startswith("#") or line.strip() == "":
continue
req = Requirement(line)
if req.marker is None or req.marker.evaluate():
requirements.append('%s%s' % (req.name, req.specifier))
return requirements


Expand Down
1 change: 1 addition & 0 deletions test-requirements.txt
Expand Up @@ -5,3 +5,4 @@ testfixtures==4.7.0
tox
psycopg2-binary>=2.7.4
mysqlclient>=1.3.3
packaging

0 comments on commit be5e689

Please sign in to comment.