Commit 567604d9 by Sébastien Eustace Committed by GitHub

Improve venv detection and management (#404)

parent 1c195b36
from .init import InitCommand from .init import InitCommand
from .venv_command import VenvCommand from .env_command import EnvCommand
class AddCommand(VenvCommand, InitCommand): class AddCommand(EnvCommand, InitCommand):
""" """
Add a new dependency to <comment>pyproject.toml</>. Add a new dependency to <comment>pyproject.toml</>.
...@@ -125,7 +125,7 @@ If you do not specify a version constraint, poetry will choose a suitable one ba ...@@ -125,7 +125,7 @@ If you do not specify a version constraint, poetry will choose a suitable one ba
installer = Installer( installer = Installer(
self.output, self.output,
self.venv, self.env,
self.poetry.package, self.poetry.package,
self.poetry.locker, self.poetry.locker,
self.poetry.pool, self.poetry.pool,
......
from .venv_command import VenvCommand from .env_command import EnvCommand
class BuildCommand(VenvCommand): class BuildCommand(EnvCommand):
""" """
Builds a package, as a tarball and a wheel by default. Builds a package, as a tarball and a wheel by default.
...@@ -23,5 +23,5 @@ class BuildCommand(VenvCommand): ...@@ -23,5 +23,5 @@ class BuildCommand(VenvCommand):
) )
) )
builder = Builder(self.poetry, self.venv, self.output) builder = Builder(self.poetry, self.env, self.output)
builder.build(fmt) builder.build(fmt)
import os import os
import sys import sys
from ..venv_command import VenvCommand from ..command import Command
class DebugInfoCommand(VenvCommand): class DebugInfoCommand(Command):
""" """
Shows debug information. Shows debug information.
...@@ -12,9 +12,11 @@ class DebugInfoCommand(VenvCommand): ...@@ -12,9 +12,11 @@ class DebugInfoCommand(VenvCommand):
""" """
def handle(self): def handle(self):
from ....utils.env import Env
poetry = self.poetry poetry = self.poetry
package = poetry.package package = poetry.package
venv = self.venv env = Env.get()
poetry_python_version = ".".join(str(s) for s in sys.version_info[:3]) poetry_python_version = ".".join(str(s) for s in sys.version_info[:3])
...@@ -28,18 +30,18 @@ class DebugInfoCommand(VenvCommand): ...@@ -28,18 +30,18 @@ class DebugInfoCommand(VenvCommand):
self.line("") self.line("")
venv_python_version = ".".join(str(s) for s in venv.version_info[:3]) env_python_version = ".".join(str(s) for s in env.version_info[:3])
self.output.title("Virtualenv") self.output.title("Virtualenv")
self.output.listing( self.output.listing(
[ [
"<info>Python</info>: <comment>{}</>".format( "<info>Python</info>: <comment>{}</>".format(
venv_python_version env_python_version
), ),
"<info>Implementation</info>: <comment>{}</>".format( "<info>Implementation</info>: <comment>{}</>".format(
venv.python_implementation env.python_implementation
), ),
"<info>Path</info>: <comment>{}</>".format( "<info>Path</info>: <comment>{}</>".format(
venv.venv if venv.is_venv() else "NA" env.path if env.is_venv() else "NA"
), ),
] ]
) )
...@@ -51,6 +53,7 @@ class DebugInfoCommand(VenvCommand): ...@@ -51,6 +53,7 @@ class DebugInfoCommand(VenvCommand):
[ [
"<info>Platform</info>: <comment>{}</>".format(sys.platform), "<info>Platform</info>: <comment>{}</>".format(sys.platform),
"<info>OS</info>: <comment>{}</>".format(os.name), "<info>OS</info>: <comment>{}</>".format(os.name),
"<info>Python</info>: <comment>{}</>".format(env.base),
] ]
) )
......
import os import os
from .venv_command import VenvCommand from .env_command import EnvCommand
class DevelopCommand(VenvCommand): class DevelopCommand(EnvCommand):
""" """
Installs the current project in development mode. Installs the current project in development mode.
...@@ -18,7 +18,7 @@ The <info>develop</info> command installs the current project in development mod ...@@ -18,7 +18,7 @@ The <info>develop</info> command installs the current project in development mod
from poetry.masonry.builders import SdistBuilder from poetry.masonry.builders import SdistBuilder
from poetry.io import NullIO from poetry.io import NullIO
from poetry.utils._compat import decode from poetry.utils._compat import decode
from poetry.utils.venv import NullVenv from poetry.utils.env import NullEnv
setup = self.poetry.file.parent / "setup.py" setup = self.poetry.file.parent / "setup.py"
has_setup = setup.exists() has_setup = setup.exists()
...@@ -26,7 +26,7 @@ The <info>develop</info> command installs the current project in development mod ...@@ -26,7 +26,7 @@ The <info>develop</info> command installs the current project in development mod
if has_setup: if has_setup:
self.line("<warning>A setup.py file already exists. Using it.</warning>") self.line("<warning>A setup.py file already exists. Using it.</warning>")
else: else:
builder = SdistBuilder(self.poetry, NullVenv(), NullIO()) builder = SdistBuilder(self.poetry, NullEnv(), NullIO())
with setup.open("w") as f: with setup.open("w") as f:
f.write(decode(builder.build_setup())) f.write(decode(builder.build_setup()))
...@@ -45,4 +45,4 @@ The <info>develop</info> command installs the current project in development mod ...@@ -45,4 +45,4 @@ The <info>develop</info> command installs the current project in development mod
self.poetry.package.pretty_name, self.poetry.package.pretty_version self.poetry.package.pretty_name, self.poetry.package.pretty_version
) )
) )
self.venv.run("pip", "install", "-e", str(setup.parent), "--no-deps") self.env.run("pip", "install", "-e", str(setup.parent), "--no-deps")
from .command import Command
class EnvCommand(Command):
def __init__(self):
self._env = None
super(EnvCommand, self).__init__()
def initialize(self, i, o):
from poetry.utils.env import Env
super(EnvCommand, self).initialize(i, o)
self._env = Env.create_venv(
o, self.poetry.package.name, cwd=self.poetry.file.parent
)
if self._env.is_venv() and o.is_verbose():
o.writeln("Using virtualenv: <comment>{}</>".format(self._env.path))
@property
def env(self):
return self._env
...@@ -7,7 +7,7 @@ from typing import List ...@@ -7,7 +7,7 @@ from typing import List
from typing import Tuple from typing import Tuple
from .command import Command from .command import Command
from .venv_command import VenvCommand from .env_command import EnvCommand
class InitCommand(Command): class InitCommand(Command):
...@@ -305,7 +305,7 @@ The <info>init</info> command creates a basic <comment>pyproject.toml</> file in ...@@ -305,7 +305,7 @@ The <info>init</info> command creates a basic <comment>pyproject.toml</> file in
from poetry.repositories import Pool from poetry.repositories import Pool
from poetry.repositories.pypi_repository import PyPiRepository from poetry.repositories.pypi_repository import PyPiRepository
if isinstance(self, VenvCommand): if isinstance(self, EnvCommand):
return self.poetry.pool return self.poetry.pool
if self._pool is None: if self._pool is None:
......
from .venv_command import VenvCommand from .env_command import EnvCommand
class InstallCommand(VenvCommand): class InstallCommand(EnvCommand):
""" """
Installs the project dependencies. Installs the project dependencies.
...@@ -28,7 +28,7 @@ exist it will look for <comment>pyproject.toml</> and do the same. ...@@ -28,7 +28,7 @@ exist it will look for <comment>pyproject.toml</> and do the same.
installer = Installer( installer = Installer(
self.output, self.output,
self.venv, self.env,
self.poetry.package, self.poetry.package,
self.poetry.locker, self.poetry.locker,
self.poetry.pool, self.poetry.pool,
......
from .venv_command import VenvCommand from .env_command import EnvCommand
class LockCommand(VenvCommand): class LockCommand(EnvCommand):
""" """
Locks the project dependencies. Locks the project dependencies.
...@@ -11,7 +11,7 @@ class LockCommand(VenvCommand): ...@@ -11,7 +11,7 @@ class LockCommand(VenvCommand):
help = """The <info>lock</info> command reads the <comment>pyproject.toml</> file from help = """The <info>lock</info> command reads the <comment>pyproject.toml</> file from
the current directory, processes it, and locks the depdencies in the <comment>pyproject.lock</> file. the current directory, processes it, and locks the depdencies in the <comment>pyproject.lock</> file.
<info>poetry lock</info> <info>poetry lock</info>
""" """
_loggers = ["poetry.repositories.pypi_repository"] _loggers = ["poetry.repositories.pypi_repository"]
...@@ -21,7 +21,7 @@ the current directory, processes it, and locks the depdencies in the <comment>py ...@@ -21,7 +21,7 @@ the current directory, processes it, and locks the depdencies in the <comment>py
installer = Installer( installer = Installer(
self.output, self.output,
self.venv, self.env,
self.poetry.package, self.poetry.package,
self.poetry.locker, self.poetry.locker,
self.poetry.pool, self.poetry.pool,
......
from .venv_command import VenvCommand from .env_command import EnvCommand
class RemoveCommand(VenvCommand): class RemoveCommand(EnvCommand):
""" """
Removes a package from the project dependencies. Removes a package from the project dependencies.
...@@ -56,7 +56,7 @@ list of installed packages ...@@ -56,7 +56,7 @@ list of installed packages
installer = Installer( installer = Installer(
self.output, self.output,
self.venv, self.env,
self.poetry.package, self.poetry.package,
self.poetry.locker, self.poetry.locker,
self.poetry.pool, self.poetry.pool,
......
from .venv_command import VenvCommand from .env_command import EnvCommand
class RunCommand(VenvCommand): class RunCommand(EnvCommand):
""" """
Runs a command in the appropriate environment. Runs a command in the appropriate environment.
...@@ -17,9 +17,7 @@ class RunCommand(VenvCommand): ...@@ -17,9 +17,7 @@ class RunCommand(VenvCommand):
if scripts and script in scripts: if scripts and script in scripts:
return self.run_script(scripts[script], args) return self.run_script(scripts[script], args)
venv = self.venv return self.env.execute(*args)
return venv.execute(*args)
def run_script(self, script, args): def run_script(self, script, args):
module, callable_ = script.split(":") module, callable_ = script.split(":")
...@@ -37,7 +35,7 @@ class RunCommand(VenvCommand): ...@@ -37,7 +35,7 @@ class RunCommand(VenvCommand):
) )
] ]
return self.venv.run(*cmd, shell=True, call=True) return self.env.run(*cmd, shell=True, call=True)
@property @property
def _module(self): def _module(self):
......
from .venv_command import VenvCommand from .env_command import EnvCommand
class ScriptCommand(VenvCommand): class ScriptCommand(EnvCommand):
""" """
Executes a script defined in <comment>pyproject.toml</comment>. (<error>Deprecated</error>) Executes a script defined in <comment>pyproject.toml</comment>. (<error>Deprecated</error>)
...@@ -42,7 +42,7 @@ class ScriptCommand(VenvCommand): ...@@ -42,7 +42,7 @@ class ScriptCommand(VenvCommand):
) )
] ]
self.venv.run(*cmd, shell=True, call=True) self.env.run(*cmd, shell=True, call=True)
@property @property
def _module(self): def _module(self):
......
import sys
from os import environ from os import environ
from distutils.util import strtobool from distutils.util import strtobool
from .venv_command import VenvCommand from .env_command import EnvCommand
class ShellCommand(VenvCommand): class ShellCommand(EnvCommand):
""" """
Spawns a shell within the virtual environment. Spawns a shell within the virtual environment.
...@@ -20,24 +22,21 @@ If one doesn't exist yet, it will be created. ...@@ -20,24 +22,21 @@ If one doesn't exist yet, it will be created.
from poetry.utils.shell import Shell from poetry.utils.shell import Shell
# Check if it's already activated or doesn't exist and won't be created # Check if it's already activated or doesn't exist and won't be created
if strtobool(environ.get("POETRY_ACTIVE", "0")) or not self.venv.is_venv(): venv_activated = strtobool(environ.get("POETRY_ACTIVE", "0")) or getattr(
current_venv = environ.get("VIRTUAL_ENV") sys, "real_prefix", sys.prefix
) == str(self.env.path)
if current_venv: if venv_activated:
self.line( self.line(
"Virtual environment already activated: " "Virtual environment already activated: "
"<info>{}</>".format(current_venv) "<info>{}</>".format(self.env.path)
) )
else:
self.error("Virtual environment wasn't found")
return return
self.line("Spawning shell within <info>{}</>".format(self.venv.venv)) self.line("Spawning shell within <info>{}</>".format(self.env.path))
# Setting this to avoid spawning unnecessary nested shells # Setting this to avoid spawning unnecessary nested shells
environ["POETRY_ACTIVE"] = "1" environ["POETRY_ACTIVE"] = "1"
shell = Shell.get() shell = Shell.get()
self.venv.execute(shell.path) self.env.execute(shell.path)
environ.pop("POETRY_ACTIVE") environ.pop("POETRY_ACTIVE")
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import sys import sys
from .venv_command import VenvCommand from .env_command import EnvCommand
class ShowCommand(VenvCommand): class ShowCommand(EnvCommand):
""" """
Shows information about packages. Shows information about packages.
...@@ -96,11 +96,11 @@ lists all packages available.""" ...@@ -96,11 +96,11 @@ lists all packages available."""
width = terminal.width width = terminal.width
name_length = version_length = latest_length = 0 name_length = version_length = latest_length = 0
latest_packages = {} latest_packages = {}
installed_repo = InstalledRepository.load(self.venv) installed_repo = InstalledRepository.load(self.env)
skipped = [] skipped = []
platform = sys.platform platform = sys.platform
python = Version.parse(".".join([str(i) for i in self._venv.version_info[:3]])) python = Version.parse(".".join([str(i) for i in self.env.version_info[:3]]))
# Computing widths # Computing widths
for locked in locked_packages: for locked in locked_packages:
......
from .venv_command import VenvCommand from .env_command import EnvCommand
class UpdateCommand(VenvCommand): class UpdateCommand(EnvCommand):
""" """
Update dependencies as according to the <comment>pyproject.toml</> file. Update dependencies as according to the <comment>pyproject.toml</> file.
...@@ -21,7 +21,7 @@ class UpdateCommand(VenvCommand): ...@@ -21,7 +21,7 @@ class UpdateCommand(VenvCommand):
installer = Installer( installer = Installer(
self.output, self.output,
self.venv, self.env,
self.poetry.package, self.poetry.package,
self.poetry.locker, self.poetry.locker,
self.poetry.pool, self.poetry.pool,
......
from .command import Command
class VenvCommand(Command):
def __init__(self):
self._venv = None
super(VenvCommand, self).__init__()
def initialize(self, i, o):
from poetry.utils.venv import Venv
super(VenvCommand, self).initialize(i, o)
self._venv = Venv.create(
o, self.poetry.package.name, cwd=self.poetry.file.parent
)
if self._venv.is_venv() and o.is_verbose():
o.writeln("Using virtualenv: <comment>{}</>".format(self._venv.venv))
@property
def venv(self):
return self._venv
...@@ -28,14 +28,14 @@ class Installer: ...@@ -28,14 +28,14 @@ class Installer:
def __init__( def __init__(
self, self,
io, io,
venv, env,
package, # type: Package package, # type: Package
locker, # type: Locker locker, # type: Locker
pool, # type: Pool pool, # type: Pool
installed=None, # type: (Union[InstalledRepository, None]) installed=None, # type: (Union[InstalledRepository, None])
): ):
self._io = io self._io = io
self._venv = venv self._env = env
self._package = package self._package = package
self._locker = locker self._locker = locker
self._pool = pool self._pool = pool
...@@ -183,7 +183,7 @@ class Installer: ...@@ -183,7 +183,7 @@ class Installer:
self._populate_local_repo(local_repo, ops, locked_repository) self._populate_local_repo(local_repo, ops, locked_repository)
with self._package.with_python_versions( with self._package.with_python_versions(
".".join([str(i) for i in self._venv.version_info[:3]]) ".".join([str(i) for i in self._env.version_info[:3]])
): ):
# We resolve again by only using the lock file # We resolve again by only using the lock file
pool = Pool() pool = Pool()
...@@ -458,7 +458,7 @@ class Installer: ...@@ -458,7 +458,7 @@ class Installer:
op.unskip() op.unskip()
python = Version.parse( python = Version.parse(
".".join([str(i) for i in self._venv.version_info[:3]]) ".".join([str(i) for i in self._env.version_info[:3]])
) )
if "python" in package.requirements: if "python" in package.requirements:
python_constraint = parse_constraint(package.requirements["python"]) python_constraint = parse_constraint(package.requirements["python"])
...@@ -535,7 +535,7 @@ class Installer: ...@@ -535,7 +535,7 @@ class Installer:
return _extra_packages(extra_packages) return _extra_packages(extra_packages)
def _get_installer(self): # type: () -> BaseInstaller def _get_installer(self): # type: () -> BaseInstaller
return PipInstaller(self._venv, self._io) return PipInstaller(self._env, self._io)
def _get_installed(self): # type: () -> InstalledRepository def _get_installed(self): # type: () -> InstalledRepository
return InstalledRepository.load(self._venv) return InstalledRepository.load(self._env)
...@@ -12,14 +12,14 @@ except ImportError: ...@@ -12,14 +12,14 @@ except ImportError:
import urlparse import urlparse
from poetry.utils._compat import encode from poetry.utils._compat import encode
from poetry.utils.venv import Venv from poetry.utils.env import Env
from .base_installer import BaseInstaller from .base_installer import BaseInstaller
class PipInstaller(BaseInstaller): class PipInstaller(BaseInstaller):
def __init__(self, venv, io): # type: (Venv, ...) -> None def __init__(self, env, io): # type: (Env, ...) -> None
self._venv = venv self._env = env
self._io = io self._io = io
def install(self, package, update=False): def install(self, package, update=False):
...@@ -88,7 +88,7 @@ class PipInstaller(BaseInstaller): ...@@ -88,7 +88,7 @@ class PipInstaller(BaseInstaller):
raise raise
def run(self, *args, **kwargs): # type: (...) -> str def run(self, *args, **kwargs): # type: (...) -> str
return self._venv.run("pip", *args, **kwargs) return self._env.run("pip", *args, **kwargs)
def requirement(self, package, formatted=False): def requirement(self, package, formatted=False):
if formatted and not package.source_type: if formatted and not package.source_type:
......
...@@ -2,11 +2,13 @@ ...@@ -2,11 +2,13 @@
PEP-517 compliant buildsystem API PEP-517 compliant buildsystem API
""" """
import logging import logging
import sys
from pathlib import Path from pathlib import Path
from poetry.poetry import Poetry from poetry.poetry import Poetry
from poetry.io import NullIO from poetry.io import NullIO
from poetry.utils.venv import Venv from poetry.utils.env import SystemEnv
from .builders import SdistBuilder from .builders import SdistBuilder
from .builders import WheelBuilder from .builders import WheelBuilder
...@@ -39,6 +41,8 @@ def build_wheel(wheel_directory, config_settings=None, metadata_directory=None): ...@@ -39,6 +41,8 @@ def build_wheel(wheel_directory, config_settings=None, metadata_directory=None):
def build_sdist(sdist_directory, config_settings=None): def build_sdist(sdist_directory, config_settings=None):
"""Builds an sdist, places it in sdist_directory""" """Builds an sdist, places it in sdist_directory"""
path = SdistBuilder(poetry, Venv(), NullIO()).build(Path(sdist_directory)) path = SdistBuilder(poetry, SystemEnv(sys.prefix), NullIO()).build(
Path(sdist_directory)
)
return path.name return path.name
...@@ -7,15 +7,15 @@ class Builder: ...@@ -7,15 +7,15 @@ class Builder:
_FORMATS = {"sdist": SdistBuilder, "wheel": WheelBuilder, "all": CompleteBuilder} _FORMATS = {"sdist": SdistBuilder, "wheel": WheelBuilder, "all": CompleteBuilder}
def __init__(self, poetry, venv, io): def __init__(self, poetry, env, io):
self._poetry = poetry self._poetry = poetry
self._venv = venv self._env = env
self._io = io self._io = io
def build(self, fmt): def build(self, fmt):
if fmt not in self._FORMATS: if fmt not in self._FORMATS:
raise ValueError("Invalid format: {}".format(fmt)) raise ValueError("Invalid format: {}".format(fmt))
builder = self._FORMATS[fmt](self._poetry, self._venv, self._io) builder = self._FORMATS[fmt](self._poetry, self._env, self._io)
return builder.build() return builder.build()
...@@ -22,9 +22,9 @@ class Builder(object): ...@@ -22,9 +22,9 @@ class Builder(object):
AVAILABLE_PYTHONS = {"2", "2.7", "3", "3.4", "3.5", "3.6", "3.7"} AVAILABLE_PYTHONS = {"2", "2.7", "3", "3.4", "3.5", "3.6", "3.7"}
def __init__(self, poetry, venv, io): def __init__(self, poetry, env, io):
self._poetry = poetry self._poetry = poetry
self._venv = venv self._env = env
self._io = io self._io = io
self._package = poetry.package self._package = poetry.package
self._path = poetry.file.parent self._path = poetry.file.parent
......
...@@ -14,7 +14,7 @@ class CompleteBuilder(Builder): ...@@ -14,7 +14,7 @@ class CompleteBuilder(Builder):
def build(self): def build(self):
# We start by building the tarball # We start by building the tarball
# We will use it to build the wheel # We will use it to build the wheel
sdist_builder = SdistBuilder(self._poetry, self._venv, self._io) sdist_builder = SdistBuilder(self._poetry, self._env, self._io)
sdist_file = sdist_builder.build() sdist_file = sdist_builder.build()
self._io.writeln("") self._io.writeln("")
...@@ -23,7 +23,7 @@ class CompleteBuilder(Builder): ...@@ -23,7 +23,7 @@ class CompleteBuilder(Builder):
with self.unpacked_tarball(sdist_file) as tmpdir: with self.unpacked_tarball(sdist_file) as tmpdir:
WheelBuilder.make_in( WheelBuilder.make_in(
poetry.poetry.Poetry.create(tmpdir), poetry.poetry.Poetry.create(tmpdir),
self._venv, self._env,
self._io, self._io,
dist_dir, dist_dir,
original=self._poetry, original=self._poetry,
......
...@@ -34,8 +34,8 @@ Tag: {tag} ...@@ -34,8 +34,8 @@ Tag: {tag}
class WheelBuilder(Builder): class WheelBuilder(Builder):
def __init__(self, poetry, venv, io, target_dir=None, original=None): def __init__(self, poetry, env, io, target_dir=None, original=None):
super(WheelBuilder, self).__init__(poetry, venv, io) super(WheelBuilder, self).__init__(poetry, env, io)
self._records = [] self._records = []
self._original_path = self._path self._original_path = self._path
...@@ -44,14 +44,14 @@ class WheelBuilder(Builder): ...@@ -44,14 +44,14 @@ class WheelBuilder(Builder):
self._original_path = original.file.parent self._original_path = original.file.parent
@classmethod @classmethod
def make_in(cls, poetry, venv, io, directory=None, original=None): def make_in(cls, poetry, env, io, directory=None, original=None):
wb = WheelBuilder(poetry, venv, io, target_dir=directory, original=original) wb = WheelBuilder(poetry, env, io, target_dir=directory, original=original)
wb.build() wb.build()
@classmethod @classmethod
def make(cls, poetry, venv, io): def make(cls, poetry, env, io):
"""Build a wheel in the dist/ directory, and optionally upload it.""" """Build a wheel in the dist/ directory, and optionally upload it."""
cls.make_in(poetry, venv, io) cls.make_in(poetry, env, io)
def build(self): def build(self):
self._io.writeln(" - Building <info>wheel</info>") self._io.writeln(" - Building <info>wheel</info>")
...@@ -86,7 +86,7 @@ class WheelBuilder(Builder): ...@@ -86,7 +86,7 @@ class WheelBuilder(Builder):
current_path = os.getcwd() current_path = os.getcwd()
try: try:
os.chdir(str(self._path)) os.chdir(str(self._path))
self._venv.run( self._env.run(
"python", str(setup), "build", "-b", str(self._path / "build") "python", str(setup), "build", "-b", str(self._path / "build")
) )
finally: finally:
...@@ -199,10 +199,10 @@ class WheelBuilder(Builder): ...@@ -199,10 +199,10 @@ class WheelBuilder(Builder):
def tag(self): def tag(self):
if self._package.build: if self._package.build:
platform = get_platform().replace(".", "_").replace("-", "_") platform = get_platform().replace(".", "_").replace("-", "_")
impl_name = get_abbr_impl(self._venv) impl_name = get_abbr_impl(self._env)
impl_ver = get_impl_ver(self._venv) impl_ver = get_impl_ver(self._env)
impl = impl_name + impl_ver impl = impl_name + impl_ver
abi_tag = str(get_abi_tag(self._venv)).lower() abi_tag = str(get_abi_tag(self._env)).lower()
tag = (impl, abi_tag, platform) tag = (impl, abi_tag, platform)
else: else:
platform = "any" platform = "any"
......
...@@ -3,7 +3,7 @@ Generate and work with PEP 425 Compatibility Tags. ...@@ -3,7 +3,7 @@ Generate and work with PEP 425 Compatibility Tags.
Base implementation taken from Base implementation taken from
https://github.com/pypa/wheel/blob/master/wheel/pep425tags.py https://github.com/pypa/wheel/blob/master/wheel/pep425tags.py
and adapted to work with poetry's venv util. and adapted to work with poetry's env util.
""" """
from __future__ import unicode_literals from __future__ import unicode_literals
...@@ -12,9 +12,9 @@ import sys ...@@ -12,9 +12,9 @@ import sys
import warnings import warnings
def get_abbr_impl(venv): def get_abbr_impl(env):
"""Return abbreviated implementation name.""" """Return abbreviated implementation name."""
impl = venv.python_implementation impl = env.python_implementation
if impl == "PyPy": if impl == "PyPy":
return "pp" return "pp"
...@@ -28,29 +28,29 @@ def get_abbr_impl(venv): ...@@ -28,29 +28,29 @@ def get_abbr_impl(venv):
raise LookupError("Unknown Python implementation: " + impl) raise LookupError("Unknown Python implementation: " + impl)
def get_impl_ver(venv): def get_impl_ver(env):
"""Return implementation version.""" """Return implementation version."""
impl_ver = venv.config_var("py_version_nodot") impl_ver = env.config_var("py_version_nodot")
if not impl_ver or get_abbr_impl(venv) == "pp": if not impl_ver or get_abbr_impl(env) == "pp":
impl_ver = "".join(map(str, get_impl_version_info(venv))) impl_ver = "".join(map(str, get_impl_version_info(env)))
return impl_ver return impl_ver
def get_impl_version_info(venv): def get_impl_version_info(env):
"""Return sys.version_info-like tuple for use in decrementing the minor """Return sys.version_info-like tuple for use in decrementing the minor
version.""" version."""
if get_abbr_impl(venv) == "pp": if get_abbr_impl(env) == "pp":
# as per https://github.com/pypa/pip/issues/2882 # as per https://github.com/pypa/pip/issues/2882
return venv.version_info[:3] return env.version_info[:3]
else: else:
return venv.version_info[:2] return env.version_info[:2]
def get_flag(venv, var, fallback, expected=True, warn=True): def get_flag(env, var, fallback, expected=True, warn=True):
"""Use a fallback method for determining SOABI flags if the needed config """Use a fallback method for determining SOABI flags if the needed config
var is unset or unavailable.""" var is unset or unavailable."""
val = venv.config_var(var) val = env.config_var(var)
if val is None: if val is None:
if warn: if warn:
warnings.warn( warnings.warn(
...@@ -63,33 +63,33 @@ def get_flag(venv, var, fallback, expected=True, warn=True): ...@@ -63,33 +63,33 @@ def get_flag(venv, var, fallback, expected=True, warn=True):
return val == expected return val == expected
def get_abi_tag(venv): def get_abi_tag(env):
"""Return the ABI tag based on SOABI (if available) or emulate SOABI """Return the ABI tag based on SOABI (if available) or emulate SOABI
(CPython 2, PyPy).""" (CPython 2, PyPy)."""
soabi = venv.config_var("SOABI") soabi = env.config_var("SOABI")
impl = get_abbr_impl(venv) impl = get_abbr_impl(env)
if not soabi and impl in ("cp", "pp") and hasattr(sys, "maxunicode"): if not soabi and impl in ("cp", "pp") and hasattr(sys, "maxunicode"):
d = "" d = ""
m = "" m = ""
u = "" u = ""
if get_flag( if get_flag(
venv, env,
"Py_DEBUG", "Py_DEBUG",
lambda: hasattr(sys, "gettotalrefcount"), lambda: hasattr(sys, "gettotalrefcount"),
warn=(impl == "cp"), warn=(impl == "cp"),
): ):
d = "d" d = "d"
if get_flag(venv, "WITH_PYMALLOC", lambda: impl == "cp", warn=(impl == "cp")): if get_flag(env, "WITH_PYMALLOC", lambda: impl == "cp", warn=(impl == "cp")):
m = "m" m = "m"
if get_flag( if get_flag(
venv, env,
"Py_UNICODE_SIZE", "Py_UNICODE_SIZE",
lambda: sys.maxunicode == 0x10ffff, lambda: sys.maxunicode == 0x10ffff,
expected=4, expected=4,
warn=(impl == "cp" and venv.version_info < (3, 3)), warn=(impl == "cp" and env.version_info < (3, 3)),
) and venv.version_info < (3, 3): ) and env.version_info < (3, 3):
u = "u" u = "u"
abi = "%s%s%s%s%s" % (impl, get_impl_ver(venv), d, m, u) abi = "%s%s%s%s%s" % (impl, get_impl_ver(env), d, m, u)
elif soabi and soabi.startswith("cpython-"): elif soabi and soabi.startswith("cpython-"):
abi = "cp" + soabi.split("-")[1] abi = "cp" + soabi.split("-")[1]
elif soabi: elif soabi:
...@@ -109,7 +109,7 @@ def get_platform(): ...@@ -109,7 +109,7 @@ def get_platform():
return result return result
def get_supported(venv, versions=None, supplied_platform=None): def get_supported(env, versions=None, supplied_platform=None):
"""Return a list of supported tags for each version specified in """Return a list of supported tags for each version specified in
`versions`. `versions`.
:param versions: a list of string versions, of the form ["33", "32"], :param versions: a list of string versions, of the form ["33", "32"],
...@@ -120,17 +120,17 @@ def get_supported(venv, versions=None, supplied_platform=None): ...@@ -120,17 +120,17 @@ def get_supported(venv, versions=None, supplied_platform=None):
# Versions must be given with respect to the preference # Versions must be given with respect to the preference
if versions is None: if versions is None:
versions = [] versions = []
version_info = get_impl_version_info(venv) version_info = get_impl_version_info(env)
major = version_info[:-1] major = version_info[:-1]
# Support all previous minor Python versions. # Support all previous minor Python versions.
for minor in range(version_info[-1], -1, -1): for minor in range(version_info[-1], -1, -1):
versions.append("".join(map(str, major + (minor,)))) versions.append("".join(map(str, major + (minor,))))
impl = get_abbr_impl(venv) impl = get_abbr_impl(env)
abis = [] abis = []
abi = get_abi_tag(venv) abi = get_abi_tag(env)
if abi: if abi:
abis[0:0] = [abi] abis[0:0] = [abi]
......
...@@ -9,8 +9,8 @@ from poetry.utils._compat import Path ...@@ -9,8 +9,8 @@ from poetry.utils._compat import Path
from poetry.utils._compat import decode from poetry.utils._compat import decode
from poetry.utils.helpers import parse_requires from poetry.utils.helpers import parse_requires
from poetry.utils.toml_file import TomlFile from poetry.utils.toml_file import TomlFile
from poetry.utils.venv import NullVenv from poetry.utils.env import NullEnv
from poetry.utils.venv import Venv from poetry.utils.env import Env
from .dependency import Dependency from .dependency import Dependency
...@@ -68,7 +68,7 @@ class DirectoryDependency(Dependency): ...@@ -68,7 +68,7 @@ class DirectoryDependency(Dependency):
from poetry.poetry import Poetry from poetry.poetry import Poetry
poetry = Poetry.create(self._full_path) poetry = Poetry.create(self._full_path)
builder = SdistBuilder(poetry, NullVenv(), NullIO()) builder = SdistBuilder(poetry, NullEnv(), NullIO())
with setup.open("w") as f: with setup.open("w") as f:
f.write(decode(builder.build_setup())) f.write(decode(builder.build_setup()))
...@@ -87,7 +87,7 @@ class DirectoryDependency(Dependency): ...@@ -87,7 +87,7 @@ class DirectoryDependency(Dependency):
try: try:
cwd = base cwd = base
venv = Venv.create(NullIO(), cwd=cwd) venv = Env.create_venv(NullIO(), cwd=cwd)
venv.run("python", "setup.py", "egg_info") venv.run("python", "setup.py", "egg_info")
finally: finally:
os.chdir(current_dir) os.chdir(current_dir)
......
...@@ -28,7 +28,7 @@ from poetry.repositories import Pool ...@@ -28,7 +28,7 @@ from poetry.repositories import Pool
from poetry.utils._compat import Path from poetry.utils._compat import Path
from poetry.utils.helpers import parse_requires from poetry.utils.helpers import parse_requires
from poetry.utils.toml_file import TomlFile from poetry.utils.toml_file import TomlFile
from poetry.utils.venv import Venv from poetry.utils.env import Env
from poetry.vcs.git import Git from poetry.vcs.git import Git
...@@ -185,7 +185,7 @@ class Provider: ...@@ -185,7 +185,7 @@ class Provider:
# to figure the information we need # to figure the information we need
# We need to place ourselves in the proper # We need to place ourselves in the proper
# folder for it to work # folder for it to work
venv = Venv.create(self._io) venv = Env.get(self._io)
current_dir = os.getcwd() current_dir = os.getcwd()
os.chdir(tmp_dir.as_posix()) os.chdir(tmp_dir.as_posix())
......
from poetry.packages import Package from poetry.packages import Package
from poetry.utils.venv import Venv from poetry.utils.env import Env
from .repository import Repository from .repository import Repository
class InstalledRepository(Repository): class InstalledRepository(Repository):
@classmethod @classmethod
def load(cls, venv): # type: (Venv) -> InstalledRepository def load(cls, env): # type: (Env) -> InstalledRepository
""" """
Load installed packages. Load installed packages.
...@@ -14,7 +14,7 @@ class InstalledRepository(Repository): ...@@ -14,7 +14,7 @@ class InstalledRepository(Repository):
""" """
repo = cls() repo = cls()
freeze_output = venv.run("pip", "freeze") freeze_output = env.run("pip", "freeze")
for line in freeze_output.split("\n"): for line in freeze_output.split("\n"):
if "==" in line: if "==" in line:
name, version = line.split("==") name, version = line.split("==")
......
...@@ -38,7 +38,7 @@ from poetry.utils._compat import Path ...@@ -38,7 +38,7 @@ from poetry.utils._compat import Path
from poetry.utils._compat import to_str from poetry.utils._compat import to_str
from poetry.utils.helpers import parse_requires from poetry.utils.helpers import parse_requires
from poetry.utils.helpers import temporary_directory from poetry.utils.helpers import temporary_directory
from poetry.utils.venv import Venv from poetry.utils.env import Env
from poetry.version.markers import InvalidMarker from poetry.version.markers import InvalidMarker
from .repository import Repository from .repository import Repository
...@@ -499,7 +499,7 @@ class PyPiRepository(Repository): ...@@ -499,7 +499,7 @@ class PyPiRepository(Repository):
if not setup.exists(): if not setup.exists():
return info return info
venv = Venv.create(NullIO()) venv = Env.create_venv(NullIO())
current_dir = os.getcwd() current_dir = os.getcwd()
os.chdir(sdist_dir.as_posix()) os.chdir(sdist_dir.as_posix())
......
...@@ -15,7 +15,7 @@ from poetry.repositories.installed_repository import InstalledRepository ...@@ -15,7 +15,7 @@ from poetry.repositories.installed_repository import InstalledRepository
from poetry.utils._compat import Path from poetry.utils._compat import Path
from poetry.utils._compat import PY2 from poetry.utils._compat import PY2
from poetry.utils.toml_file import TomlFile from poetry.utils.toml_file import TomlFile
from poetry.utils.venv import NullVenv from poetry.utils.env import NullEnv
from tests.helpers import get_dependency from tests.helpers import get_dependency
from tests.helpers import get_package from tests.helpers import get_package
...@@ -29,7 +29,7 @@ class Installer(BaseInstaller): ...@@ -29,7 +29,7 @@ class Installer(BaseInstaller):
class CustomInstalledRepository(InstalledRepository): class CustomInstalledRepository(InstalledRepository):
@classmethod @classmethod
def load(cls, venv): def load(cls, env):
return cls() return cls()
...@@ -121,13 +121,13 @@ def locker(): ...@@ -121,13 +121,13 @@ def locker():
@pytest.fixture() @pytest.fixture()
def venv(): def env():
return NullVenv() return NullEnv()
@pytest.fixture() @pytest.fixture()
def installer(package, pool, locker, venv, installed): def installer(package, pool, locker, env, installed):
return Installer(NullIO(), venv, package, locker, pool, installed=installed) return Installer(NullIO(), env, package, locker, pool, installed=installed)
def fixture(name): def fixture(name):
...@@ -583,7 +583,7 @@ def test_installer_with_pypi_repository(package, locker, installed): ...@@ -583,7 +583,7 @@ def test_installer_with_pypi_repository(package, locker, installed):
pool.add_repository(MockRepository()) pool.add_repository(MockRepository())
installer = Installer( installer = Installer(
NullIO(), NullVenv(), package, locker, pool, installed=installed NullIO(), NullEnv(), package, locker, pool, installed=installed
) )
package.add_dependency("pytest", "^3.5", category="dev") package.add_dependency("pytest", "^3.5", category="dev")
......
...@@ -14,7 +14,7 @@ from poetry.masonry.builders import CompleteBuilder ...@@ -14,7 +14,7 @@ from poetry.masonry.builders import CompleteBuilder
from poetry.poetry import Poetry from poetry.poetry import Poetry
from poetry.utils._compat import Path from poetry.utils._compat import Path
from poetry.utils._compat import decode from poetry.utils._compat import decode
from poetry.utils.venv import NullVenv from poetry.utils.env import NullEnv
fixtures_dir = Path(__file__).parent / "fixtures" fixtures_dir = Path(__file__).parent / "fixtures"
...@@ -40,7 +40,9 @@ def clear_samples_dist(): ...@@ -40,7 +40,9 @@ def clear_samples_dist():
) )
def test_wheel_c_extension(): def test_wheel_c_extension():
module_path = fixtures_dir / "extended" module_path = fixtures_dir / "extended"
builder = CompleteBuilder(Poetry.create(module_path), NullVenv(True), NullIO()) builder = CompleteBuilder(
Poetry.create(module_path), NullEnv(execute=True), NullIO()
)
builder.build() builder.build()
sdist = fixtures_dir / "extended" / "dist" / "extended-0.1.tar.gz" sdist = fixtures_dir / "extended" / "dist" / "extended-0.1.tar.gz"
...@@ -87,7 +89,9 @@ $""".format( ...@@ -87,7 +89,9 @@ $""".format(
def test_complete(): def test_complete():
module_path = fixtures_dir / "complete" module_path = fixtures_dir / "complete"
builder = CompleteBuilder(Poetry.create(module_path), NullVenv(True), NullIO()) builder = CompleteBuilder(
Poetry.create(module_path), NullEnv(execute=True), NullIO()
)
builder.build() builder.build()
whl = module_path / "dist" / "my_package-1.2.3-py3-none-any.whl" whl = module_path / "dist" / "my_package-1.2.3-py3-none-any.whl"
...@@ -159,7 +163,9 @@ My Package ...@@ -159,7 +163,9 @@ My Package
def test_module_src(): def test_module_src():
module_path = fixtures_dir / "source_file" module_path = fixtures_dir / "source_file"
builder = CompleteBuilder(Poetry.create(module_path), NullVenv(True), NullIO()) builder = CompleteBuilder(
Poetry.create(module_path), NullEnv(execute=True), NullIO()
)
builder.build() builder.build()
sdist = module_path / "dist" / "module-src-0.1.tar.gz" sdist = module_path / "dist" / "module-src-0.1.tar.gz"
...@@ -183,7 +189,9 @@ def test_module_src(): ...@@ -183,7 +189,9 @@ def test_module_src():
def test_package_src(): def test_package_src():
module_path = fixtures_dir / "source_package" module_path = fixtures_dir / "source_package"
builder = CompleteBuilder(Poetry.create(module_path), NullVenv(True), NullIO()) builder = CompleteBuilder(
Poetry.create(module_path), NullEnv(execute=True), NullIO()
)
builder.build() builder.build()
sdist = module_path / "dist" / "package-src-0.1.tar.gz" sdist = module_path / "dist" / "package-src-0.1.tar.gz"
......
...@@ -14,7 +14,7 @@ from poetry.packages import Package ...@@ -14,7 +14,7 @@ from poetry.packages import Package
from poetry.poetry import Poetry from poetry.poetry import Poetry
from poetry.utils._compat import Path from poetry.utils._compat import Path
from poetry.utils._compat import to_str from poetry.utils._compat import to_str
from poetry.utils.venv import NullVenv from poetry.utils.env import NullEnv
from tests.helpers import get_dependency from tests.helpers import get_dependency
...@@ -106,7 +106,7 @@ def test_convert_dependencies(): ...@@ -106,7 +106,7 @@ def test_convert_dependencies():
def test_make_setup(): def test_make_setup():
poetry = Poetry.create(project("complete")) poetry = Poetry.create(project("complete"))
builder = SdistBuilder(poetry, NullVenv(), NullIO()) builder = SdistBuilder(poetry, NullEnv(), NullIO())
setup = builder.build_setup() setup = builder.build_setup()
setup_ast = ast.parse(setup) setup_ast = ast.parse(setup)
...@@ -131,7 +131,7 @@ def test_make_setup(): ...@@ -131,7 +131,7 @@ def test_make_setup():
def test_make_pkg_info(): def test_make_pkg_info():
poetry = Poetry.create(project("complete")) poetry = Poetry.create(project("complete"))
builder = SdistBuilder(poetry, NullVenv(), NullIO()) builder = SdistBuilder(poetry, NullEnv(), NullIO())
pkg_info = builder.build_pkg_info() pkg_info = builder.build_pkg_info()
p = Parser() p = Parser()
parsed = p.parsestr(to_str(pkg_info)) parsed = p.parsestr(to_str(pkg_info))
...@@ -169,7 +169,7 @@ def test_make_pkg_info(): ...@@ -169,7 +169,7 @@ def test_make_pkg_info():
def test_make_pkg_info_any_python(): def test_make_pkg_info_any_python():
poetry = Poetry.create(project("module1")) poetry = Poetry.create(project("module1"))
builder = SdistBuilder(poetry, NullVenv(), NullIO()) builder = SdistBuilder(poetry, NullEnv(), NullIO())
pkg_info = builder.build_pkg_info() pkg_info = builder.build_pkg_info()
p = Parser() p = Parser()
parsed = p.parsestr(to_str(pkg_info)) parsed = p.parsestr(to_str(pkg_info))
...@@ -180,7 +180,7 @@ def test_make_pkg_info_any_python(): ...@@ -180,7 +180,7 @@ def test_make_pkg_info_any_python():
def test_find_files_to_add(): def test_find_files_to_add():
poetry = Poetry.create(project("complete")) poetry = Poetry.create(project("complete"))
builder = SdistBuilder(poetry, NullVenv(), NullIO()) builder = SdistBuilder(poetry, NullEnv(), NullIO())
result = builder.find_files_to_add() result = builder.find_files_to_add()
assert sorted(result) == sorted( assert sorted(result) == sorted(
...@@ -200,7 +200,7 @@ def test_find_files_to_add(): ...@@ -200,7 +200,7 @@ def test_find_files_to_add():
def test_find_packages(): def test_find_packages():
poetry = Poetry.create(project("complete")) poetry = Poetry.create(project("complete"))
builder = SdistBuilder(poetry, NullVenv(), NullIO()) builder = SdistBuilder(poetry, NullEnv(), NullIO())
base = project("complete") base = project("complete")
include = PackageInclude(base, "my_package") include = PackageInclude(base, "my_package")
...@@ -217,7 +217,7 @@ def test_find_packages(): ...@@ -217,7 +217,7 @@ def test_find_packages():
poetry = Poetry.create(project("source_package")) poetry = Poetry.create(project("source_package"))
builder = SdistBuilder(poetry, NullVenv(), NullIO()) builder = SdistBuilder(poetry, NullEnv(), NullIO())
base = project("source_package") base = project("source_package")
include = PackageInclude(base, "package_src", "src") include = PackageInclude(base, "package_src", "src")
...@@ -232,7 +232,7 @@ def test_find_packages(): ...@@ -232,7 +232,7 @@ def test_find_packages():
def test_package(): def test_package():
poetry = Poetry.create(project("complete")) poetry = Poetry.create(project("complete"))
builder = SdistBuilder(poetry, NullVenv(), NullIO()) builder = SdistBuilder(poetry, NullEnv(), NullIO())
builder.build() builder.build()
sdist = fixtures_dir / "complete" / "dist" / "my-package-1.2.3.tar.gz" sdist = fixtures_dir / "complete" / "dist" / "my-package-1.2.3.tar.gz"
...@@ -246,7 +246,7 @@ def test_package(): ...@@ -246,7 +246,7 @@ def test_package():
def test_module(): def test_module():
poetry = Poetry.create(project("module1")) poetry = Poetry.create(project("module1"))
builder = SdistBuilder(poetry, NullVenv(), NullIO()) builder = SdistBuilder(poetry, NullEnv(), NullIO())
builder.build() builder.build()
sdist = fixtures_dir / "module1" / "dist" / "module1-0.1.tar.gz" sdist = fixtures_dir / "module1" / "dist" / "module1-0.1.tar.gz"
...@@ -260,7 +260,7 @@ def test_module(): ...@@ -260,7 +260,7 @@ def test_module():
def test_prelease(): def test_prelease():
poetry = Poetry.create(project("prerelease")) poetry = Poetry.create(project("prerelease"))
builder = SdistBuilder(poetry, NullVenv(), NullIO()) builder = SdistBuilder(poetry, NullEnv(), NullIO())
builder.build() builder.build()
sdist = fixtures_dir / "prerelease" / "dist" / "prerelease-0.1b1.tar.gz" sdist = fixtures_dir / "prerelease" / "dist" / "prerelease-0.1b1.tar.gz"
...@@ -271,7 +271,7 @@ def test_prelease(): ...@@ -271,7 +271,7 @@ def test_prelease():
def test_with_c_extensions(): def test_with_c_extensions():
poetry = Poetry.create(project("extended")) poetry = Poetry.create(project("extended"))
builder = SdistBuilder(poetry, NullVenv(), NullIO()) builder = SdistBuilder(poetry, NullEnv(), NullIO())
builder.build() builder.build()
sdist = fixtures_dir / "extended" / "dist" / "extended-0.1.tar.gz" sdist = fixtures_dir / "extended" / "dist" / "extended-0.1.tar.gz"
...@@ -286,7 +286,7 @@ def test_with_c_extensions(): ...@@ -286,7 +286,7 @@ def test_with_c_extensions():
def test_with_src_module_file(): def test_with_src_module_file():
poetry = Poetry.create(project("source_file")) poetry = Poetry.create(project("source_file"))
builder = SdistBuilder(poetry, NullVenv(), NullIO()) builder = SdistBuilder(poetry, NullEnv(), NullIO())
# Check setup.py # Check setup.py
setup = builder.build_setup() setup = builder.build_setup()
...@@ -311,7 +311,7 @@ def test_with_src_module_file(): ...@@ -311,7 +311,7 @@ def test_with_src_module_file():
def test_with_src_module_dir(): def test_with_src_module_dir():
poetry = Poetry.create(project("source_package")) poetry = Poetry.create(project("source_package"))
builder = SdistBuilder(poetry, NullVenv(), NullIO()) builder = SdistBuilder(poetry, NullEnv(), NullIO())
# Check setup.py # Check setup.py
setup = builder.build_setup() setup = builder.build_setup()
...@@ -356,7 +356,7 @@ def test_package_with_include(mocker): ...@@ -356,7 +356,7 @@ def test_package_with_include(mocker):
] ]
poetry = Poetry.create(project("with-include")) poetry = Poetry.create(project("with-include"))
builder = SdistBuilder(poetry, NullVenv(), NullIO()) builder = SdistBuilder(poetry, NullEnv(), NullIO())
# Check setup.py # Check setup.py
setup = builder.build_setup() setup = builder.build_setup()
...@@ -394,7 +394,7 @@ def test_package_with_include(mocker): ...@@ -394,7 +394,7 @@ def test_package_with_include(mocker):
def test_proper_python_requires_if_single_version_specified(): def test_proper_python_requires_if_single_version_specified():
poetry = Poetry.create(project("simple_version")) poetry = Poetry.create(project("simple_version"))
builder = SdistBuilder(poetry, NullVenv(), NullIO()) builder = SdistBuilder(poetry, NullEnv(), NullIO())
pkg_info = builder.build_pkg_info() pkg_info = builder.build_pkg_info()
p = Parser() p = Parser()
parsed = p.parsestr(to_str(pkg_info)) parsed = p.parsestr(to_str(pkg_info))
......
...@@ -6,7 +6,7 @@ from poetry.io import NullIO ...@@ -6,7 +6,7 @@ from poetry.io import NullIO
from poetry.masonry.builders import WheelBuilder from poetry.masonry.builders import WheelBuilder
from poetry.poetry import Poetry from poetry.poetry import Poetry
from poetry.utils._compat import Path from poetry.utils._compat import Path
from poetry.utils.venv import NullVenv from poetry.utils.env import NullEnv
fixtures_dir = Path(__file__).parent / "fixtures" fixtures_dir = Path(__file__).parent / "fixtures"
...@@ -29,7 +29,7 @@ def clear_samples_dist(): ...@@ -29,7 +29,7 @@ def clear_samples_dist():
def test_wheel_module(): def test_wheel_module():
module_path = fixtures_dir / "module1" module_path = fixtures_dir / "module1"
WheelBuilder.make(Poetry.create(str(module_path)), NullVenv(), NullIO()) WheelBuilder.make(Poetry.create(str(module_path)), NullEnv(), NullIO())
whl = module_path / "dist" / "module1-0.1-py2.py3-none-any.whl" whl = module_path / "dist" / "module1-0.1-py2.py3-none-any.whl"
...@@ -41,7 +41,7 @@ def test_wheel_module(): ...@@ -41,7 +41,7 @@ def test_wheel_module():
def test_wheel_package(): def test_wheel_package():
module_path = fixtures_dir / "complete" module_path = fixtures_dir / "complete"
WheelBuilder.make(Poetry.create(str(module_path)), NullVenv(), NullIO()) WheelBuilder.make(Poetry.create(str(module_path)), NullEnv(), NullIO())
whl = module_path / "dist" / "my_package-1.2.3-py3-none-any.whl" whl = module_path / "dist" / "my_package-1.2.3-py3-none-any.whl"
...@@ -53,7 +53,7 @@ def test_wheel_package(): ...@@ -53,7 +53,7 @@ def test_wheel_package():
def test_wheel_prerelease(): def test_wheel_prerelease():
module_path = fixtures_dir / "prerelease" module_path = fixtures_dir / "prerelease"
WheelBuilder.make(Poetry.create(str(module_path)), NullVenv(), NullIO()) WheelBuilder.make(Poetry.create(str(module_path)), NullEnv(), NullIO())
whl = module_path / "dist" / "prerelease-0.1b1-py2.py3-none-any.whl" whl = module_path / "dist" / "prerelease-0.1b1-py2.py3-none-any.whl"
...@@ -62,7 +62,7 @@ def test_wheel_prerelease(): ...@@ -62,7 +62,7 @@ def test_wheel_prerelease():
def test_wheel_package_src(): def test_wheel_package_src():
module_path = fixtures_dir / "source_package" module_path = fixtures_dir / "source_package"
WheelBuilder.make(Poetry.create(str(module_path)), NullVenv(), NullIO()) WheelBuilder.make(Poetry.create(str(module_path)), NullEnv(), NullIO())
whl = module_path / "dist" / "package_src-0.1-py2.py3-none-any.whl" whl = module_path / "dist" / "package_src-0.1-py2.py3-none-any.whl"
...@@ -75,7 +75,7 @@ def test_wheel_package_src(): ...@@ -75,7 +75,7 @@ def test_wheel_package_src():
def test_wheel_module_src(): def test_wheel_module_src():
module_path = fixtures_dir / "source_file" module_path = fixtures_dir / "source_file"
WheelBuilder.make(Poetry.create(str(module_path)), NullVenv(), NullIO()) WheelBuilder.make(Poetry.create(str(module_path)), NullEnv(), NullIO())
whl = module_path / "dist" / "module_src-0.1-py2.py3-none-any.whl" whl = module_path / "dist" / "module_src-0.1-py2.py3-none-any.whl"
...@@ -106,7 +106,7 @@ def test_package_with_include(mocker): ...@@ -106,7 +106,7 @@ def test_package_with_include(mocker):
), ),
] ]
module_path = fixtures_dir / "with-include" module_path = fixtures_dir / "with-include"
WheelBuilder.make(Poetry.create(str(module_path)), NullVenv(), NullIO()) WheelBuilder.make(Poetry.create(str(module_path)), NullEnv(), NullIO())
whl = module_path / "dist" / "with_include-1.2.3-py3-none-any.whl" whl = module_path / "dist" / "with_include-1.2.3-py3-none-any.whl"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment