Commit 68f44676 by Sébastien Eustace

Update poetry-core

parent adc3cde3
...@@ -352,14 +352,21 @@ dev = ["pre-commit", "tox"] ...@@ -352,14 +352,21 @@ dev = ["pre-commit", "tox"]
[[package]] [[package]]
name = "poetry-core" name = "poetry-core"
version = "1.0.2" version = "1.1.0a0"
description = "Poetry PEP 517 Build Backend" description = "Poetry PEP 517 Build Backend"
category = "main" category = "main"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" python-versions = "^3.6"
develop = false
[package.dependencies] [package.dependencies]
importlib-metadata = {version = ">=1.7.0,<2.0.0", markers = "python_version >= \"2.7\" and python_version < \"2.8\" or python_version >= \"3.5\" and python_version < \"3.8\""} importlib-metadata = {version = "^1.7.0", markers = "python_version >= \"3.5\" and python_version < \"3.8\""}
[package.source]
type = "git"
url = "https://github.com/python-poetry/poetry-core"
reference = "master"
resolved_reference = "d0b8f3ff1d2ec94e317d8ec20920f32a5d4992ef"
[[package]] [[package]]
name = "pre-commit" name = "pre-commit"
...@@ -668,7 +675,7 @@ testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake ...@@ -668,7 +675,7 @@ testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake
[metadata] [metadata]
lock-version = "1.1" lock-version = "1.1"
python-versions = "^3.6" python-versions = "^3.6"
content-hash = "3061627bdc17958f2b0d1dfc86e448e167ff3e97639e6f3c8f67bf0b06d9995c" content-hash = "0039f039cc6768e38203b79e8aee64fa11a96b781da515b68587b90c97ed048a"
[metadata.files] [metadata.files]
appdirs = [ appdirs = [
...@@ -900,10 +907,7 @@ pluggy = [ ...@@ -900,10 +907,7 @@ pluggy = [
{file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"},
{file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"},
] ]
poetry-core = [ poetry-core = []
{file = "poetry-core-1.0.2.tar.gz", hash = "sha256:ff505d656a6cf40ffbf84393d8b5bf37b78523a15def3ac473b6fad74261ee71"},
{file = "poetry_core-1.0.2-py2.py3-none-any.whl", hash = "sha256:ee0ed4164440eeab27d1b01bc7b9b3afdc3124f68d4ea28d0821a402a9c7c044"},
]
pre-commit = [ pre-commit = [
{file = "pre_commit-2.9.0-py2.py3-none-any.whl", hash = "sha256:4aee0db4808fa48d2458cedd5b9a084ef24dda1a0fa504432a11977a4d1cfd0a"}, {file = "pre_commit-2.9.0-py2.py3-none-any.whl", hash = "sha256:4aee0db4808fa48d2458cedd5b9a084ef24dda1a0fa504432a11977a4d1cfd0a"},
{file = "pre_commit-2.9.0.tar.gz", hash = "sha256:b2d106d51c6ba6217e859d81774aae33fd825fe7de0dcf0c46e2586333d7a92e"}, {file = "pre_commit-2.9.0.tar.gz", hash = "sha256:b2d106d51c6ba6217e859d81774aae33fd825fe7de0dcf0c46e2586333d7a92e"},
......
...@@ -71,7 +71,7 @@ class AddCommand(InstallerCommand, InitCommand): ...@@ -71,7 +71,7 @@ class AddCommand(InstallerCommand, InitCommand):
def handle(self) -> int: def handle(self) -> int:
from tomlkit import inline_table from tomlkit import inline_table
from poetry.core.semver import parse_constraint from poetry.core.semver.helpers import parse_constraint
packages = self.argument("name") packages = self.argument("name")
is_dev = self.option("dev") is_dev = self.option("dev")
......
...@@ -19,7 +19,7 @@ class BuildCommand(EnvCommand): ...@@ -19,7 +19,7 @@ class BuildCommand(EnvCommand):
] ]
def handle(self) -> None: def handle(self) -> None:
from poetry.core.masonry import Builder from poetry.core.masonry.builder import Builder
fmt = "all" fmt = "all"
if self.option("format"): if self.option("format"):
......
...@@ -11,10 +11,6 @@ from typing import Tuple ...@@ -11,10 +11,6 @@ from typing import Tuple
from cleo.helpers import argument from cleo.helpers import argument
from cleo.helpers import option from cleo.helpers import option
from poetry.core.pyproject import PyProjectException
from poetry.core.toml.file import TOMLFile
from poetry.factory import Factory
from .command import Command from .command import Command
...@@ -94,6 +90,9 @@ To remove a repository (repo is a short alias for repositories): ...@@ -94,6 +90,9 @@ To remove a repository (repo is a short alias for repositories):
from pathlib import Path from pathlib import Path
from poetry.config.file_config_source import FileConfigSource from poetry.config.file_config_source import FileConfigSource
from poetry.core.pyproject.exceptions import PyProjectException
from poetry.core.toml.file import TOMLFile
from poetry.factory import Factory
from poetry.locations import CONFIG_DIR from poetry.locations import CONFIG_DIR
config = Factory.create_config(self.io) config = Factory.create_config(self.io)
......
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import os import os
import re import re
import sys import sys
...@@ -17,9 +14,6 @@ from typing import Union ...@@ -17,9 +14,6 @@ from typing import Union
from cleo.helpers import option from cleo.helpers import option
from tomlkit import inline_table from tomlkit import inline_table
from poetry.core.pyproject import PyProjectException
from poetry.core.pyproject.toml import PyProjectTOML
from .command import Command from .command import Command
from .env_command import EnvCommand from .env_command import EnvCommand
...@@ -70,6 +64,7 @@ The <c1>init</c1> command creates a basic <comment>pyproject.toml</> file in the ...@@ -70,6 +64,7 @@ The <c1>init</c1> command creates a basic <comment>pyproject.toml</> file in the
def handle(self) -> int: def handle(self) -> int:
from pathlib import Path from pathlib import Path
from poetry.core.pyproject.toml import PyProjectTOML
from poetry.core.vcs.git import GitConfig from poetry.core.vcs.git import GitConfig
from poetry.layouts import layout from poetry.layouts import layout
from poetry.utils.env import SystemEnv from poetry.utils.env import SystemEnv
...@@ -384,6 +379,7 @@ The <c1>init</c1> command creates a basic <comment>pyproject.toml</> file in the ...@@ -384,6 +379,7 @@ The <c1>init</c1> command creates a basic <comment>pyproject.toml</> file in the
return package.pretty_name, selector.find_recommended_require_version(package) return package.pretty_name, selector.find_recommended_require_version(package)
def _parse_requirements(self, requirements: List[str]) -> List[Dict[str, str]]: def _parse_requirements(self, requirements: List[str]) -> List[Dict[str, str]]:
from poetry.core.pyproject.exceptions import PyProjectException
from poetry.puzzle.provider import Provider from poetry.puzzle.provider import Provider
result = [] result = []
...@@ -534,7 +530,7 @@ The <c1>init</c1> command creates a basic <comment>pyproject.toml</> file in the ...@@ -534,7 +530,7 @@ The <c1>init</c1> command creates a basic <comment>pyproject.toml</> file in the
return author return author
def _validate_license(self, license: str) -> str: def _validate_license(self, license: str) -> str:
from poetry.core.spdx import license_by_id from poetry.core.spdx.helpers import license_by_id
if license: if license:
license_by_id(license) license_by_id(license)
......
...@@ -22,7 +22,7 @@ class NewCommand(Command): ...@@ -22,7 +22,7 @@ class NewCommand(Command):
def handle(self) -> None: def handle(self) -> None:
from pathlib import Path from pathlib import Path
from poetry.core.semver import parse_constraint from poetry.core.semver.helpers import parse_constraint
from poetry.core.vcs.git import GitConfig from poetry.core.vcs.git import GitConfig
from poetry.layouts import layout from poetry.layouts import layout
from poetry.utils.env import SystemEnv from poetry.utils.env import SystemEnv
......
...@@ -14,27 +14,18 @@ from gzip import GzipFile ...@@ -14,27 +14,18 @@ from gzip import GzipFile
from pathlib import Path from pathlib import Path
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from typing import Any from typing import Any
from urllib.error import HTTPError
from urllib.request import urlopen
from cleo.helpers import argument from cleo.helpers import argument
from cleo.helpers import option from cleo.helpers import option
from poetry.console.exceptions import PoetrySimpleConsoleException
from poetry.core.packages import Dependency
from ..command import Command from ..command import Command
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.packages import Package from poetry.core.packages.package import Package
from poetry.core.semver import Version from poetry.core.semver.version import Version
try:
from urllib.error import HTTPError
from urllib.request import urlopen
except ImportError:
from urllib2 import HTTPError
from urllib2 import urlopen
BIN = """# -*- coding: utf-8 -*- BIN = """# -*- coding: utf-8 -*-
...@@ -89,7 +80,8 @@ class SelfUpdateCommand(Command): ...@@ -89,7 +80,8 @@ class SelfUpdateCommand(Command):
def handle(self) -> None: def handle(self) -> None:
from poetry.__version__ import __version__ from poetry.__version__ import __version__
from poetry.core.semver import Version from poetry.core.packages.dependency import Dependency
from poetry.core.semver.version import Version
from poetry.repositories.pypi_repository import PyPiRepository from poetry.repositories.pypi_repository import PyPiRepository
self._check_recommended_installation() self._check_recommended_installation()
...@@ -250,6 +242,8 @@ class SelfUpdateCommand(Command): ...@@ -250,6 +242,8 @@ class SelfUpdateCommand(Command):
def _check_recommended_installation(self) -> None: def _check_recommended_installation(self) -> None:
from pathlib import Path from pathlib import Path
from poetry.console.exceptions import PoetrySimpleConsoleException
current = Path(__file__) current = Path(__file__)
try: try:
current.relative_to(self.home) current.relative_to(self.home)
......
# -*- coding: utf-8 -*-
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from typing import List from typing import List
from typing import Optional from typing import Optional
...@@ -13,8 +12,8 @@ from .env_command import EnvCommand ...@@ -13,8 +12,8 @@ from .env_command import EnvCommand
if TYPE_CHECKING: if TYPE_CHECKING:
from cleo.io.io import IO # noqa from cleo.io.io import IO # noqa
from poetry.core.packages import Dependency from poetry.core.packages.dependency import Dependency
from poetry.core.packages import Package from poetry.core.packages.package import Package
from poetry.repositories import Repository from poetry.repositories import Repository
from poetry.repositories.installed_repository import InstalledRepository from poetry.repositories.installed_repository import InstalledRepository
...@@ -408,7 +407,7 @@ lists all packages available.""" ...@@ -408,7 +407,7 @@ lists all packages available."""
return selector.find_best_candidate(name, ">={}".format(package.pretty_version)) return selector.find_best_candidate(name, ">={}".format(package.pretty_version))
def get_update_status(self, latest: "Package", package: "Package") -> str: def get_update_status(self, latest: "Package", package: "Package") -> str:
from poetry.core.semver import parse_constraint from poetry.core.semver.helpers import parse_constraint
if latest.full_pretty_version == package.full_pretty_version: if latest.full_pretty_version == package.full_pretty_version:
return "up-to-date" return "up-to-date"
......
...@@ -7,7 +7,7 @@ from .command import Command ...@@ -7,7 +7,7 @@ from .command import Command
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.semver import Version from poetry.core.semver.version import Version
class VersionCommand(Command): class VersionCommand(Command):
...@@ -79,7 +79,7 @@ patch, minor, major, prepatch, preminor, premajor, prerelease. ...@@ -79,7 +79,7 @@ patch, minor, major, prepatch, preminor, premajor, prerelease.
) )
def increment_version(self, version: str, rule: str) -> "Version": def increment_version(self, version: str, rule: str) -> "Version":
from poetry.core.semver import Version from poetry.core.semver.version import Version
try: try:
version = Version.parse(version) version = Version.parse(version)
......
...@@ -14,9 +14,9 @@ from typing import Union ...@@ -14,9 +14,9 @@ from typing import Union
import pkginfo import pkginfo
from poetry.core.factory import Factory from poetry.core.factory import Factory
from poetry.core.packages import Package from poetry.core.packages.dependency import Dependency
from poetry.core.packages import ProjectPackage from poetry.core.packages.package import Package
from poetry.core.packages import dependency_from_pep_508 from poetry.core.packages.project_package import ProjectPackage
from poetry.core.pyproject.toml import PyProjectTOML from poetry.core.pyproject.toml import PyProjectTOML
from poetry.core.utils.helpers import parse_requires from poetry.core.utils.helpers import parse_requires
from poetry.core.utils.helpers import temporary_directory from poetry.core.utils.helpers import temporary_directory
...@@ -170,11 +170,11 @@ class PackageInfo: ...@@ -170,11 +170,11 @@ class PackageInfo:
for req in self.requires_dist or []: for req in self.requires_dist or []:
try: try:
# Attempt to parse the PEP-508 requirement string # Attempt to parse the PEP-508 requirement string
dependency = dependency_from_pep_508(req, relative_to=root_dir) dependency = Dependency.create_from_pep_508(req, relative_to=root_dir)
except InvalidMarker: except InvalidMarker:
# Invalid marker, We strip the markers hoping for the best # Invalid marker, We strip the markers hoping for the best
req = req.split(";")[0] req = req.split(";")[0]
dependency = dependency_from_pep_508(req, relative_to=root_dir) dependency = Dependency.create_from_pep_508(req, relative_to=root_dir)
except ValueError: except ValueError:
# Likely unable to parse constraint so we skip it # Likely unable to parse constraint so we skip it
self._log( self._log(
......
...@@ -2,7 +2,7 @@ from typing import TYPE_CHECKING ...@@ -2,7 +2,7 @@ from typing import TYPE_CHECKING
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.packages import Package from poetry.core.packages.package import Package
class BaseInstaller: class BaseInstaller:
......
...@@ -5,7 +5,7 @@ from .base_installer import BaseInstaller ...@@ -5,7 +5,7 @@ from .base_installer import BaseInstaller
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.packages import Package from poetry.core.packages.package import Package
class NoopInstaller(BaseInstaller): class NoopInstaller(BaseInstaller):
......
...@@ -5,7 +5,7 @@ from .operation import Operation ...@@ -5,7 +5,7 @@ from .operation import Operation
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.packages import Package from poetry.core.packages.package import Package
class Install(Operation): class Install(Operation):
......
# -*- coding: utf-8 -*-
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from typing import Optional from typing import Optional
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.packages import Package from poetry.core.packages.package import Package
class Operation(object): class Operation(object):
......
...@@ -5,7 +5,7 @@ from .operation import Operation ...@@ -5,7 +5,7 @@ from .operation import Operation
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.packages import Package from poetry.core.packages.package import Package
class Uninstall(Operation): class Uninstall(Operation):
......
...@@ -5,7 +5,7 @@ from .operation import Operation ...@@ -5,7 +5,7 @@ from .operation import Operation
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.packages import Package from poetry.core.packages.package import Package
class Update(Operation): class Update(Operation):
......
...@@ -19,7 +19,7 @@ from .base_installer import BaseInstaller ...@@ -19,7 +19,7 @@ from .base_installer import BaseInstaller
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.packages import Package from poetry.core.packages.package import Package
class PipInstaller(BaseInstaller): class PipInstaller(BaseInstaller):
...@@ -242,8 +242,8 @@ class PipInstaller(BaseInstaller): ...@@ -242,8 +242,8 @@ class PipInstaller(BaseInstaller):
return self.run(*args) return self.run(*args)
def install_git(self, package: "Package") -> None: def install_git(self, package: "Package") -> None:
from poetry.core.packages import Package from poetry.core.packages.package import Package
from poetry.core.vcs import Git from poetry.core.vcs.git import Git
src_dir = self._env.path / "src" / package.name src_dir = self._env.path / "src" / package.name
if src_dir.exists(): if src_dir.exists():
......
...@@ -6,7 +6,7 @@ from .version_solver import VersionSolver ...@@ -6,7 +6,7 @@ from .version_solver import VersionSolver
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.packages import ProjectPackage from poetry.core.packages.project_package import ProjectPackage
from poetry.packages import DependencyPackage from poetry.packages import DependencyPackage
from poetry.puzzle.provider import Provider from poetry.puzzle.provider import Provider
......
...@@ -6,8 +6,8 @@ from .term import Term ...@@ -6,8 +6,8 @@ from .term import Term
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.packages import Dependency from poetry.core.packages.dependency import Dependency
from poetry.core.packages import Package from poetry.core.packages.package import Package
from .incompatibility import Incompatibility from .incompatibility import Incompatibility
......
...@@ -3,7 +3,7 @@ from typing import List ...@@ -3,7 +3,7 @@ from typing import List
from typing import Optional from typing import Optional
from typing import Tuple from typing import Tuple
from poetry.core.semver import parse_constraint from poetry.core.semver.helpers import parse_constraint
from .incompatibility import Incompatibility from .incompatibility import Incompatibility
from .incompatibility_cause import ConflictCause from .incompatibility_cause import ConflictCause
......
...@@ -9,8 +9,8 @@ from .term import Term ...@@ -9,8 +9,8 @@ from .term import Term
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.packages import Dependency from poetry.core.packages.dependency import Dependency
from poetry.core.packages import Package from poetry.core.packages.package import Package
class PartialSolution: class PartialSolution:
......
...@@ -3,8 +3,8 @@ from typing import List ...@@ -3,8 +3,8 @@ from typing import List
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.packages import Package from poetry.core.packages.package import Package
from poetry.core.packages import ProjectPackage from poetry.core.packages.project_package import ProjectPackage
class SolverResult: class SolverResult:
......
...@@ -10,7 +10,7 @@ if TYPE_CHECKING: ...@@ -10,7 +10,7 @@ if TYPE_CHECKING:
class PythonRequirementSolution(Solution): class PythonRequirementSolution(Solution):
def __init__(self, exception: "PackageNotFoundCause") -> None: def __init__(self, exception: "PackageNotFoundCause") -> None:
from poetry.core.semver import parse_constraint from poetry.core.semver.helpers import parse_constraint
from poetry.mixology.incompatibility_cause import PythonCause from poetry.mixology.incompatibility_cause import PythonCause
self._title = "Check your dependencies Python requirement." self._title = "Check your dependencies Python requirement."
......
# -*- coding: utf-8 -*-
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from typing import Optional from typing import Optional
from poetry.core.packages import Dependency from poetry.core.packages.dependency import Dependency
from .set_relation import SetRelation from .set_relation import SetRelation
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.semver import VersionTypes from poetry.core.semver.helpers import VersionTypes
class Term(object): class Term(object):
......
# -*- coding: utf-8 -*-
import time import time
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
...@@ -7,9 +6,9 @@ from typing import List ...@@ -7,9 +6,9 @@ from typing import List
from typing import Optional from typing import Optional
from typing import Union from typing import Union
from poetry.core.packages import Dependency from poetry.core.packages.dependency import Dependency
from poetry.core.packages import Package from poetry.core.packages.package import Package
from poetry.core.packages import ProjectPackage from poetry.core.packages.project_package import ProjectPackage
from .failure import SolveFailure from .failure import SolveFailure
from .incompatibility import Incompatibility from .incompatibility import Incompatibility
......
...@@ -26,10 +26,9 @@ from tomlkit.exceptions import TOMLKitError ...@@ -26,10 +26,9 @@ from tomlkit.exceptions import TOMLKitError
import poetry.repositories import poetry.repositories
from poetry.core.packages import dependency_from_pep_508
from poetry.core.packages.dependency import Dependency from poetry.core.packages.dependency import Dependency
from poetry.core.packages.package import Package from poetry.core.packages.package import Package
from poetry.core.semver import parse_constraint from poetry.core.semver.helpers import parse_constraint
from poetry.core.semver.version import Version from poetry.core.semver.version import Version
from poetry.core.toml.file import TOMLFile from poetry.core.toml.file import TOMLFile
from poetry.core.version.markers import parse_marker from poetry.core.version.markers import parse_marker
...@@ -148,7 +147,7 @@ class Locker(object): ...@@ -148,7 +147,7 @@ class Locker(object):
for dep in deps: for dep in deps:
try: try:
dependency = dependency_from_pep_508(dep) dependency = Dependency.create_from_pep_508(dep)
except InvalidRequirement: except InvalidRequirement:
# handle lock files with invalid PEP 508 # handle lock files with invalid PEP 508
m = re.match(r"^(.+?)(?:\[(.+?)])?(?:\s+\((.+)\))?$", dep) m = re.match(r"^(.+?)(?:\[(.+?)])?(?:\s+\((.+)\))?$", dep)
......
...@@ -6,8 +6,8 @@ from .dependency_package import DependencyPackage ...@@ -6,8 +6,8 @@ from .dependency_package import DependencyPackage
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.packages import Dependency from poetry.core.packages.dependency import Dependency
from poetry.core.packages import Package from poetry.core.packages.package import Package
class PackageCollection(list): class PackageCollection(list):
......
from __future__ import absolute_import
from __future__ import unicode_literals
from pathlib import Path from pathlib import Path
from typing import TYPE_CHECKING
from poetry.core.packages import ProjectPackage
from poetry.core.poetry import Poetry as BasePoetry from poetry.core.poetry import Poetry as BasePoetry
from .__version__ import __version__ from .__version__ import __version__
from .config.config import Config
from .packages import Locker
from .repositories.pool import Pool if TYPE_CHECKING:
from poetry.core.packages.project_package import ProjectPackage
from .config.config import Config
from .packages.locker import Locker
from .repositories.pool import Pool
class Poetry(BasePoetry): class Poetry(BasePoetry):
...@@ -20,10 +22,12 @@ class Poetry(BasePoetry): ...@@ -20,10 +22,12 @@ class Poetry(BasePoetry):
self, self,
file: Path, file: Path,
local_config: dict, local_config: dict,
package: ProjectPackage, package: "ProjectPackage",
locker: Locker, locker: "Locker",
config: Config, config: "Config",
): ):
from .repositories.pool import Pool # noqa
super(Poetry, self).__init__(file, local_config, package) super(Poetry, self).__init__(file, local_config, package)
self._locker = locker self._locker = locker
...@@ -31,28 +35,28 @@ class Poetry(BasePoetry): ...@@ -31,28 +35,28 @@ class Poetry(BasePoetry):
self._pool = Pool() self._pool = Pool()
@property @property
def locker(self) -> Locker: def locker(self) -> "Locker":
return self._locker return self._locker
@property @property
def pool(self) -> Pool: def pool(self) -> "Pool":
return self._pool return self._pool
@property @property
def config(self) -> Config: def config(self) -> "Config":
return self._config return self._config
def set_locker(self, locker: Locker) -> "Poetry": def set_locker(self, locker: "Locker") -> "Poetry":
self._locker = locker self._locker = locker
return self return self
def set_pool(self, pool: Pool) -> "Poetry": def set_pool(self, pool: "Pool") -> "Poetry":
self._pool = pool self._pool = pool
return self return self
def set_config(self, config: Config) -> "Poetry": def set_config(self, config: "Config") -> "Poetry":
self._config = config self._config = config
return self return self
...@@ -16,13 +16,13 @@ from typing import Union ...@@ -16,13 +16,13 @@ from typing import Union
from cleo.ui.progress_indicator import ProgressIndicator from cleo.ui.progress_indicator import ProgressIndicator
from poetry.core.packages import Dependency from poetry.core.packages.dependency import Dependency
from poetry.core.packages import DirectoryDependency from poetry.core.packages.directory_dependency import DirectoryDependency
from poetry.core.packages import FileDependency from poetry.core.packages.file_dependency import FileDependency
from poetry.core.packages import Package from poetry.core.packages.package import Package
from poetry.core.packages import URLDependency from poetry.core.packages.url_dependency import URLDependency
from poetry.core.packages import VCSDependency
from poetry.core.packages.utils.utils import get_python_constraint_from_marker from poetry.core.packages.utils.utils import get_python_constraint_from_marker
from poetry.core.packages.vcs_dependency import VCSDependency
from poetry.core.semver.version import Version from poetry.core.semver.version import Version
from poetry.core.vcs.git import Git from poetry.core.vcs.git import Git
from poetry.core.version.markers import MarkerUnion from poetry.core.version.markers import MarkerUnion
......
...@@ -13,7 +13,7 @@ from typing import Union ...@@ -13,7 +13,7 @@ from typing import Union
from cleo.io.io import IO from cleo.io.io import IO
from poetry.core.packages import Package from poetry.core.packages.package import Package
from poetry.core.packages.project_package import ProjectPackage from poetry.core.packages.project_package import ProjectPackage
from poetry.installation.operations import Install from poetry.installation.operations import Install
from poetry.installation.operations import Uninstall from poetry.installation.operations import Uninstall
...@@ -31,11 +31,11 @@ from .provider import Provider ...@@ -31,11 +31,11 @@ from .provider import Provider
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.packages import Dependency from poetry.core.packages.dependency import Dependency
from poetry.core.packages import DirectoryDependency from poetry.core.packages.directory_dependency import DirectoryDependency
from poetry.core.packages import FileDependency from poetry.core.packages.file_dependency import FileDependency
from poetry.core.packages import URLDependency from poetry.core.packages.url_dependency import URLDependency
from poetry.core.packages import VCSDependency from poetry.core.packages.vcs_dependency import VCSDependency
from poetry.installation.operations import OperationTypes from poetry.installation.operations import OperationTypes
......
...@@ -4,8 +4,8 @@ from typing import Optional ...@@ -4,8 +4,8 @@ from typing import Optional
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.packages import Dependency from poetry.core.packages.dependency import Dependency
from poetry.core.packages import Package from poetry.core.packages.package import Package
class BaseRepository(object): class BaseRepository(object):
......
...@@ -4,7 +4,7 @@ from pathlib import Path ...@@ -4,7 +4,7 @@ from pathlib import Path
from typing import Set from typing import Set
from typing import Union from typing import Union
from poetry.core.packages import Package from poetry.core.packages.package import Package
from poetry.core.utils.helpers import module_name from poetry.core.utils.helpers import module_name
from poetry.utils._compat import metadata from poetry.utils._compat import metadata
from poetry.utils.env import Env from poetry.utils.env import Env
......
...@@ -19,12 +19,12 @@ from cachecontrol import CacheControl ...@@ -19,12 +19,12 @@ from cachecontrol import CacheControl
from cachecontrol.caches.file_cache import FileCache from cachecontrol.caches.file_cache import FileCache
from cachy import CacheManager from cachy import CacheManager
from poetry.core.packages import Package from poetry.core.packages.package import Package
from poetry.core.packages.utils.link import Link from poetry.core.packages.utils.link import Link
from poetry.core.semver import Version from poetry.core.semver.helpers import parse_constraint
from poetry.core.semver import VersionConstraint from poetry.core.semver.version import Version
from poetry.core.semver import VersionRange from poetry.core.semver.version_constraint import VersionConstraint
from poetry.core.semver import parse_constraint from poetry.core.semver.version_range import VersionRange
from poetry.locations import REPOSITORY_CACHE_DIR from poetry.locations import REPOSITORY_CACHE_DIR
from poetry.utils.helpers import canonicalize_name from poetry.utils.helpers import canonicalize_name
from poetry.utils.patterns import wheel_file_re from poetry.utils.patterns import wheel_file_re
...@@ -38,7 +38,7 @@ from .pypi_repository import PyPiRepository ...@@ -38,7 +38,7 @@ from .pypi_repository import PyPiRepository
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.packages import Dependency from poetry.core.packages.dependency import Dependency
try: try:
from html import unescape from html import unescape
......
...@@ -9,8 +9,8 @@ from .repository import Repository ...@@ -9,8 +9,8 @@ from .repository import Repository
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.packages import Dependency from poetry.core.packages.dependency import Dependency
from poetry.core.packages import Package from poetry.core.packages.package import Package
class Pool(BaseRepository): class Pool(BaseRepository):
......
...@@ -4,6 +4,7 @@ import urllib.parse ...@@ -4,6 +4,7 @@ import urllib.parse
from collections import defaultdict from collections import defaultdict
from pathlib import Path from pathlib import Path
from typing import TYPE_CHECKING
from typing import Dict from typing import Dict
from typing import List from typing import List
from typing import Union from typing import Union
...@@ -16,14 +17,13 @@ from cachecontrol.controller import logger as cache_control_logger ...@@ -16,14 +17,13 @@ from cachecontrol.controller import logger as cache_control_logger
from cachy import CacheManager from cachy import CacheManager
from html5lib.html5parser import parse from html5lib.html5parser import parse
from poetry.core.packages import Dependency from poetry.core.packages.dependency import Dependency
from poetry.core.packages import Package from poetry.core.packages.package import Package
from poetry.core.packages import dependency_from_pep_508
from poetry.core.packages.utils.link import Link from poetry.core.packages.utils.link import Link
from poetry.core.semver import VersionConstraint
from poetry.core.semver import VersionRange
from poetry.core.semver import parse_constraint
from poetry.core.semver.exceptions import ParseVersionError from poetry.core.semver.exceptions import ParseVersionError
from poetry.core.semver.helpers import parse_constraint
from poetry.core.semver.version_constraint import VersionConstraint
from poetry.core.semver.version_range import VersionRange
from poetry.core.version.markers import parse_marker from poetry.core.version.markers import parse_marker
from poetry.locations import REPOSITORY_CACHE_DIR from poetry.locations import REPOSITORY_CACHE_DIR
from poetry.utils._compat import to_str from poetry.utils._compat import to_str
...@@ -31,7 +31,6 @@ from poetry.utils.helpers import download_file ...@@ -31,7 +31,6 @@ from poetry.utils.helpers import download_file
from poetry.utils.helpers import temporary_directory from poetry.utils.helpers import temporary_directory
from poetry.utils.patterns import wheel_file_re from poetry.utils.patterns import wheel_file_re
from ..inspection.info import PackageInfo
from .exceptions import PackageNotFound from .exceptions import PackageNotFound
from .remote_repository import RemoteRepository from .remote_repository import RemoteRepository
...@@ -41,6 +40,10 @@ cache_control_logger.setLevel(logging.ERROR) ...@@ -41,6 +40,10 @@ cache_control_logger.setLevel(logging.ERROR)
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
if TYPE_CHECKING:
from poetry.inspection.info import PackageInfo
class PyPiRepository(RemoteRepository): class PyPiRepository(RemoteRepository):
CACHE_VERSION = parse_constraint("1.0.0") CACHE_VERSION = parse_constraint("1.0.0")
...@@ -214,13 +217,15 @@ class PyPiRepository(RemoteRepository): ...@@ -214,13 +217,15 @@ class PyPiRepository(RemoteRepository):
return data return data
def get_release_info(self, name: str, version: str) -> PackageInfo: def get_release_info(self, name: str, version: str) -> "PackageInfo":
""" """
Return the release information given a package name and a version. Return the release information given a package name and a version.
The information is returned from the cache if it exists The information is returned from the cache if it exists
or retrieved from the remote server. or retrieved from the remote server.
""" """
from poetry.inspection.info import PackageInfo
if self._disable_cache: if self._disable_cache:
return PackageInfo.load(self._get_release_info(name, version)) return PackageInfo.load(self._get_release_info(name, version))
...@@ -254,6 +259,8 @@ class PyPiRepository(RemoteRepository): ...@@ -254,6 +259,8 @@ class PyPiRepository(RemoteRepository):
return links return links
def _get_release_info(self, name: str, version: str) -> dict: def _get_release_info(self, name: str, version: str) -> dict:
from poetry.inspection.info import PackageInfo
self._log("Getting info for {} ({}) from PyPI".format(name, version), "debug") self._log("Getting info for {} ({}) from PyPI".format(name, version), "debug")
json_data = self._get("pypi/{}/{}/json".format(name, version)) json_data = self._get("pypi/{}/{}/json".format(name, version))
...@@ -330,7 +337,7 @@ class PyPiRepository(RemoteRepository): ...@@ -330,7 +337,7 @@ class PyPiRepository(RemoteRepository):
return json_data return json_data
def _get_info_from_urls(self, urls: Dict[str, List[str]]) -> PackageInfo: def _get_info_from_urls(self, urls: Dict[str, List[str]]) -> "PackageInfo":
# Checking wheels first as they are more likely to hold # Checking wheels first as they are more likely to hold
# the necessary information # the necessary information
if "bdist_wheel" in urls: if "bdist_wheel" in urls:
...@@ -377,11 +384,11 @@ class PyPiRepository(RemoteRepository): ...@@ -377,11 +384,11 @@ class PyPiRepository(RemoteRepository):
return info return info
py2_requires_dist = set( py2_requires_dist = set(
dependency_from_pep_508(r).to_pep_508() Dependency.create_from_pep_508(r).to_pep_508()
for r in info.requires_dist for r in info.requires_dist
) )
py3_requires_dist = set( py3_requires_dist = set(
dependency_from_pep_508(r).to_pep_508() Dependency.create_from_pep_508(r).to_pep_508()
for r in py3_info.requires_dist for r in py3_info.requires_dist
) )
base_requires_dist = py2_requires_dist & py3_requires_dist base_requires_dist = py2_requires_dist & py3_requires_dist
...@@ -391,14 +398,14 @@ class PyPiRepository(RemoteRepository): ...@@ -391,14 +398,14 @@ class PyPiRepository(RemoteRepository):
# Normalizing requires_dist # Normalizing requires_dist
requires_dist = list(base_requires_dist) requires_dist = list(base_requires_dist)
for requirement in py2_only_requires_dist: for requirement in py2_only_requires_dist:
dep = dependency_from_pep_508(requirement) dep = Dependency.create_from_pep_508(requirement)
dep.marker = dep.marker.intersect( dep.marker = dep.marker.intersect(
parse_marker("python_version == '2.7'") parse_marker("python_version == '2.7'")
) )
requires_dist.append(dep.to_pep_508()) requires_dist.append(dep.to_pep_508())
for requirement in py3_only_requires_dist: for requirement in py3_only_requires_dist:
dep = dependency_from_pep_508(requirement) dep = Dependency.create_from_pep_508(requirement)
dep.marker = dep.marker.intersect( dep.marker = dep.marker.intersect(
parse_marker("python_version >= '3'") parse_marker("python_version >= '3'")
) )
...@@ -422,7 +429,9 @@ class PyPiRepository(RemoteRepository): ...@@ -422,7 +429,9 @@ class PyPiRepository(RemoteRepository):
return self._get_info_from_sdist(urls["sdist"][0]) return self._get_info_from_sdist(urls["sdist"][0])
def _get_info_from_wheel(self, url: str) -> PackageInfo: def _get_info_from_wheel(self, url: str) -> "PackageInfo":
from poetry.inspection.info import PackageInfo
self._log( self._log(
"Downloading wheel: {}".format( "Downloading wheel: {}".format(
urllib.parse.urlparse(url).path.rsplit("/")[-1] urllib.parse.urlparse(url).path.rsplit("/")[-1]
...@@ -438,7 +447,9 @@ class PyPiRepository(RemoteRepository): ...@@ -438,7 +447,9 @@ class PyPiRepository(RemoteRepository):
return PackageInfo.from_wheel(filepath) return PackageInfo.from_wheel(filepath)
def _get_info_from_sdist(self, url: str) -> PackageInfo: def _get_info_from_sdist(self, url: str) -> "PackageInfo":
from poetry.inspection.info import PackageInfo
self._log( self._log(
"Downloading sdist: {}".format( "Downloading sdist: {}".format(
urllib.parse.urlparse(url).path.rsplit("/")[-1] urllib.parse.urlparse(url).path.rsplit("/")[-1]
......
...@@ -2,17 +2,13 @@ from typing import TYPE_CHECKING ...@@ -2,17 +2,13 @@ from typing import TYPE_CHECKING
from typing import List from typing import List
from typing import Optional from typing import Optional
from poetry.core.semver import VersionConstraint
from poetry.core.semver import VersionRange
from poetry.core.semver import parse_constraint
from .base_repository import BaseRepository from .base_repository import BaseRepository
if TYPE_CHECKING: if TYPE_CHECKING:
from poetry.core.packages import Dependency from poetry.core.packages.dependency import Dependency
from poetry.core.packages import Link from poetry.core.packages.package import Package
from poetry.core.packages import Package from poetry.core.packages.utils.link import Link
class Repository(BaseRepository): class Repository(BaseRepository):
...@@ -41,6 +37,10 @@ class Repository(BaseRepository): ...@@ -41,6 +37,10 @@ class Repository(BaseRepository):
return package.clone() return package.clone()
def find_packages(self, dependency: "Dependency") -> List["Package"]: def find_packages(self, dependency: "Dependency") -> List["Package"]:
from poetry.core.semver.helpers import parse_constraint
from poetry.core.semver.version_constraint import VersionConstraint
from poetry.core.semver.version_range import VersionRange
constraint = dependency.constraint constraint = dependency.constraint
packages = [] packages = []
ignored_pre_release_packages = [] ignored_pre_release_packages = []
......
...@@ -31,7 +31,7 @@ from packaging.tags import interpreter_name ...@@ -31,7 +31,7 @@ from packaging.tags import interpreter_name
from packaging.tags import interpreter_version from packaging.tags import interpreter_version
from packaging.tags import sys_tags from packaging.tags import sys_tags
from poetry.core.semver import parse_constraint from poetry.core.semver.helpers import parse_constraint
from poetry.core.semver.version import Version from poetry.core.semver.version import Version
from poetry.core.toml.file import TOMLFile from poetry.core.toml.file import TOMLFile
from poetry.core.version.markers import BaseMarker from poetry.core.version.markers import BaseMarker
......
from typing import TYPE_CHECKING
from typing import Iterable from typing import Iterable
from typing import Iterator from typing import Iterator
from typing import List from typing import List
from typing import Mapping from typing import Mapping
from typing import Sequence from typing import Sequence
from poetry.core.packages import Package
from poetry.utils.helpers import canonicalize_name if TYPE_CHECKING:
from poetry.core.packages.package import Package # noqa
def get_extra_package_names( def get_extra_package_names(
packages: Sequence[Package], packages: Sequence["Package"],
extras: Mapping[str, List[str]], extras: Mapping[str, List[str]],
extra_names: Sequence[str], extra_names: Sequence[str],
) -> Iterator[str]: ) -> Iterator[str]:
...@@ -21,6 +23,9 @@ def get_extra_package_names( ...@@ -21,6 +23,9 @@ def get_extra_package_names(
in the `extras` section of `poetry.lock`. in the `extras` section of `poetry.lock`.
:param extra_names: A list of strings specifying names of extra groups to resolve. :param extra_names: A list of strings specifying names of extra groups to resolve.
""" """
from poetry.core.packages.package import Package # noqa
from poetry.utils.helpers import canonicalize_name
if not extra_names: if not extra_names:
return [] return []
......
...@@ -10,7 +10,7 @@ from typing import Optional ...@@ -10,7 +10,7 @@ from typing import Optional
from typing import Tuple from typing import Tuple
from typing import Union from typing import Union
from poetry.core.semver import Version from poetry.core.semver.version import Version
class SetupReader(object): class SetupReader(object):
......
...@@ -2,8 +2,8 @@ from typing import TYPE_CHECKING ...@@ -2,8 +2,8 @@ from typing import TYPE_CHECKING
from typing import Optional from typing import Optional
from typing import Union from typing import Union
from poetry.core.packages import Package from poetry.core.packages.package import Package
from poetry.core.semver import Version from poetry.core.semver.version import Version
if TYPE_CHECKING: if TYPE_CHECKING:
......
...@@ -24,7 +24,7 @@ classifiers = [ ...@@ -24,7 +24,7 @@ classifiers = [
[tool.poetry.dependencies] [tool.poetry.dependencies]
python = "^3.6" python = "^3.6"
poetry-core = "^1.0.2" poetry-core = { git = "https://github.com/python-poetry/poetry-core", branch = "master"}
cleo = "^1.0.0a1" cleo = "^1.0.0a1"
crashtest = "^0.3.0" crashtest = "^0.3.0"
requests = "^2.18" requests = "^2.18"
......
...@@ -2,7 +2,7 @@ from pathlib import Path ...@@ -2,7 +2,7 @@ from pathlib import Path
from typing import Optional from typing import Optional
from typing import Union from typing import Union
from poetry.core.semver import Version from poetry.core.semver.version import Version
def build_venv( def build_venv(
......
...@@ -5,7 +5,7 @@ from pathlib import Path ...@@ -5,7 +5,7 @@ from pathlib import Path
import pytest import pytest
import tomlkit import tomlkit
from poetry.core.semver import Version from poetry.core.semver.version import Version
from poetry.core.toml.file import TOMLFile from poetry.core.toml.file import TOMLFile
from poetry.utils.env import MockEnv from poetry.utils.env import MockEnv
from tests.console.commands.env.helpers import build_venv from tests.console.commands.env.helpers import build_venv
......
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import sys import sys
from pathlib import Path from pathlib import Path
import pytest import pytest
from poetry.core.semver import Version from poetry.core.semver.version import Version
from poetry.repositories.legacy_repository import LegacyRepository from poetry.repositories.legacy_repository import LegacyRepository
from tests.helpers import get_dependency from tests.helpers import get_dependency
from tests.helpers import get_package from tests.helpers import get_package
......
...@@ -4,7 +4,7 @@ import os ...@@ -4,7 +4,7 @@ import os
import pytest import pytest
from poetry.config.config_source import ConfigSource from poetry.config.config_source import ConfigSource
from poetry.core.pyproject import PyProjectException from poetry.core.pyproject.exceptions import PyProjectException
from poetry.factory import Factory from poetry.factory import Factory
......
...@@ -7,9 +7,9 @@ from pathlib import Path ...@@ -7,9 +7,9 @@ from pathlib import Path
from poetry.console.application import Application from poetry.console.application import Application
from poetry.core.masonry.utils.helpers import escape_name from poetry.core.masonry.utils.helpers import escape_name
from poetry.core.masonry.utils.helpers import escape_version from poetry.core.masonry.utils.helpers import escape_version
from poetry.core.packages import Dependency from poetry.core.packages.dependency import Dependency
from poetry.core.packages import Link from poetry.core.packages.package import Package
from poetry.core.packages import Package from poetry.core.packages.utils.link import Link
from poetry.core.toml.file import TOMLFile from poetry.core.toml.file import TOMLFile
from poetry.core.vcs.git import ParsedUrl from poetry.core.vcs.git import ParsedUrl
from poetry.factory import Factory from poetry.factory import Factory
......
...@@ -9,7 +9,7 @@ import pytest ...@@ -9,7 +9,7 @@ import pytest
from cleo.io.null_io import NullIO from cleo.io.null_io import NullIO
from poetry.core.packages import ProjectPackage from poetry.core.packages.project_package import ProjectPackage
from poetry.core.toml.file import TOMLFile from poetry.core.toml.file import TOMLFile
from poetry.factory import Factory from poetry.factory import Factory
from poetry.installation import Installer as BaseInstaller from poetry.installation import Installer as BaseInstaller
......
...@@ -8,7 +8,7 @@ import pytest ...@@ -8,7 +8,7 @@ import pytest
from cleo.io.null_io import NullIO from cleo.io.null_io import NullIO
from poetry.core.packages import ProjectPackage from poetry.core.packages.project_package import ProjectPackage
from poetry.core.toml.file import TOMLFile from poetry.core.toml.file import TOMLFile
from poetry.factory import Factory from poetry.factory import Factory
from poetry.installation import Installer as BaseInstaller from poetry.installation import Installer as BaseInstaller
......
from poetry.core.packages import Package from poetry.core.packages.package import Package
from poetry.factory import Factory from poetry.factory import Factory
from poetry.mixology.failure import SolveFailure from poetry.mixology.failure import SolveFailure
from poetry.mixology.version_solver import VersionSolver from poetry.mixology.version_solver import VersionSolver
......
...@@ -5,9 +5,9 @@ import pytest ...@@ -5,9 +5,9 @@ import pytest
from cleo.io.null_io import NullIO from cleo.io.null_io import NullIO
from poetry.core.packages import ProjectPackage
from poetry.core.packages.directory_dependency import DirectoryDependency from poetry.core.packages.directory_dependency import DirectoryDependency
from poetry.core.packages.file_dependency import FileDependency from poetry.core.packages.file_dependency import FileDependency
from poetry.core.packages.project_package import ProjectPackage
from poetry.core.packages.vcs_dependency import VCSDependency from poetry.core.packages.vcs_dependency import VCSDependency
from poetry.inspection.info import PackageInfo from poetry.inspection.info import PackageInfo
from poetry.puzzle.provider import Provider from poetry.puzzle.provider import Provider
......
...@@ -4,9 +4,9 @@ import pytest ...@@ -4,9 +4,9 @@ import pytest
from cleo.io.null_io import NullIO from cleo.io.null_io import NullIO
from poetry.core.packages import Package from poetry.core.packages.dependency import Dependency
from poetry.core.packages import ProjectPackage from poetry.core.packages.package import Package
from poetry.core.packages import dependency_from_pep_508 from poetry.core.packages.project_package import ProjectPackage
from poetry.core.version.markers import parse_marker from poetry.core.version.markers import parse_marker
from poetry.factory import Factory from poetry.factory import Factory
from poetry.puzzle import Solver from poetry.puzzle import Solver
...@@ -1362,9 +1362,9 @@ def test_solver_finds_compatible_package_for_dependency_python_not_fully_compati ...@@ -1362,9 +1362,9 @@ def test_solver_finds_compatible_package_for_dependency_python_not_fully_compati
def test_solver_does_not_trigger_new_resolution_on_duplicate_dependencies_if_only_extras( def test_solver_does_not_trigger_new_resolution_on_duplicate_dependencies_if_only_extras(
solver, repo, package solver, repo, package
): ):
dep1 = dependency_from_pep_508('B (>=1.0); extra == "foo"') dep1 = Dependency.create_from_pep_508('B (>=1.0); extra == "foo"')
dep1.activate() dep1.activate()
dep2 = dependency_from_pep_508('B (>=2.0); extra == "bar"') dep2 = Dependency.create_from_pep_508('B (>=2.0); extra == "bar"')
dep2.activate() dep2.activate()
package.add_dependency( package.add_dependency(
...@@ -1496,7 +1496,7 @@ def test_solver_ignores_dependencies_with_incompatible_python_full_version_marke ...@@ -1496,7 +1496,7 @@ def test_solver_ignores_dependencies_with_incompatible_python_full_version_marke
package_a = get_package("A", "1.0.0") package_a = get_package("A", "1.0.0")
package_a.requires.append( package_a.requires.append(
dependency_from_pep_508( Dependency.create_from_pep_508(
'B (<2.0); platform_python_implementation == "PyPy" and python_full_version < "2.7.9"' 'B (<2.0); platform_python_implementation == "PyPy" and python_full_version < "2.7.9"'
) )
) )
......
...@@ -5,7 +5,7 @@ import pytest ...@@ -5,7 +5,7 @@ import pytest
from pytest_mock.plugin import MockFixture from pytest_mock.plugin import MockFixture
from poetry.core.packages import Package from poetry.core.packages.package import Package
from poetry.repositories.installed_repository import InstalledRepository from poetry.repositories.installed_repository import InstalledRepository
from poetry.utils._compat import metadata from poetry.utils._compat import metadata
from poetry.utils.env import MockEnv as BaseMockEnv from poetry.utils.env import MockEnv as BaseMockEnv
......
...@@ -5,7 +5,7 @@ from pathlib import Path ...@@ -5,7 +5,7 @@ from pathlib import Path
import pytest import pytest
import requests import requests
from poetry.core.packages import Dependency from poetry.core.packages.dependency import Dependency
from poetry.factory import Factory from poetry.factory import Factory
from poetry.repositories.exceptions import PackageNotFound from poetry.repositories.exceptions import PackageNotFound
from poetry.repositories.exceptions import RepositoryError from poetry.repositories.exceptions import RepositoryError
......
...@@ -9,7 +9,7 @@ import pytest ...@@ -9,7 +9,7 @@ import pytest
from requests.exceptions import TooManyRedirects from requests.exceptions import TooManyRedirects
from requests.models import Response from requests.models import Response
from poetry.core.packages import Dependency from poetry.core.packages.dependency import Dependency
from poetry.factory import Factory from poetry.factory import Factory
from poetry.repositories.pypi_repository import PyPiRepository from poetry.repositories.pypi_repository import PyPiRepository
from poetry.utils._compat import encode from poetry.utils._compat import encode
......
...@@ -11,7 +11,7 @@ import tomlkit ...@@ -11,7 +11,7 @@ import tomlkit
from cleo.io.null_io import NullIO from cleo.io.null_io import NullIO
from poetry.core.semver import Version from poetry.core.semver.version import Version
from poetry.core.toml.file import TOMLFile from poetry.core.toml.file import TOMLFile
from poetry.factory import Factory from poetry.factory import Factory
from poetry.utils.env import GET_BASE_PREFIX from poetry.utils.env import GET_BASE_PREFIX
......
...@@ -4,7 +4,7 @@ from pathlib import Path ...@@ -4,7 +4,7 @@ from pathlib import Path
import pytest import pytest
from poetry.core.packages import dependency_from_pep_508 from poetry.core.packages.dependency import Dependency
from poetry.core.toml.file import TOMLFile from poetry.core.toml.file import TOMLFile
from poetry.factory import Factory from poetry.factory import Factory
from poetry.packages import Locker as BaseLocker from poetry.packages import Locker as BaseLocker
...@@ -273,25 +273,23 @@ def test_exporter_can_export_requirements_txt_poetry(tmp_dir, poetry): ...@@ -273,25 +273,23 @@ def test_exporter_can_export_requirements_txt_poetry(tmp_dir, poetry):
# │ │ └── six >=1.4.1 # │ │ └── six >=1.4.1
# │ └── jeepney >=0.6 (circular dependency aborted here) # │ └── jeepney >=0.6 (circular dependency aborted here)
expected = { expected = {
"poetry": dependency_from_pep_508("poetry==1.1.4"), "poetry": Dependency.create_from_pep_508("poetry==1.1.4"),
"junit-xml": dependency_from_pep_508("junit-xml==1.9"), "junit-xml": Dependency.create_from_pep_508("junit-xml==1.9"),
"keyring": dependency_from_pep_508("keyring==21.8.0"), "keyring": Dependency.create_from_pep_508("keyring==21.8.0"),
"secretstorage": dependency_from_pep_508( "secretstorage": Dependency.create_from_pep_508(
"secretstorage==3.3.0; sys_platform=='linux'" "secretstorage==3.3.0; sys_platform=='linux'"
), ),
"cryptography": dependency_from_pep_508( "cryptography": Dependency.create_from_pep_508(
"cryptography==3.2; sys_platform=='linux'" "cryptography==3.2; sys_platform=='linux'"
), ),
"six": dependency_from_pep_508("six==1.15.0"), "six": Dependency.create_from_pep_508("six==1.15.0"),
} }
for line in content.strip().split("\n"): for line in content.strip().split("\n"):
dependency = dependency_from_pep_508(line) dependency = Dependency.create_from_pep_508(line)
assert dependency.name in expected assert dependency.name in expected
expected_dependency = expected.pop(dependency.name) expected_dependency = expected.pop(dependency.name)
assert dependency == expected_dependency assert dependency == expected_dependency
print(dependency.marker)
print(expected_dependency.marker)
assert dependency.marker == expected_dependency.marker assert dependency.marker == expected_dependency.marker
...@@ -356,13 +354,15 @@ def test_exporter_can_export_requirements_txt_pyinstaller(tmp_dir, poetry): ...@@ -356,13 +354,15 @@ def test_exporter_can_export_requirements_txt_pyinstaller(tmp_dir, poetry):
# ├── macholib >=1.8 -- only on Darwin # ├── macholib >=1.8 -- only on Darwin
# │ └── altgraph >=0.15 # │ └── altgraph >=0.15
expected = { expected = {
"pyinstaller": dependency_from_pep_508("pyinstaller==4.0"), "pyinstaller": Dependency.create_from_pep_508("pyinstaller==4.0"),
"altgraph": dependency_from_pep_508("altgraph==0.17"), "altgraph": Dependency.create_from_pep_508("altgraph==0.17"),
"macholib": dependency_from_pep_508("macholib==1.8; sys_platform == 'darwin'"), "macholib": Dependency.create_from_pep_508(
"macholib==1.8; sys_platform == 'darwin'"
),
} }
for line in content.strip().split("\n"): for line in content.strip().split("\n"):
dependency = dependency_from_pep_508(line) dependency = Dependency.create_from_pep_508(line)
assert dependency.name in expected assert dependency.name in expected
expected_dependency = expected.pop(dependency.name) expected_dependency = expected.pop(dependency.name)
assert dependency == expected_dependency assert dependency == expected_dependency
...@@ -427,20 +427,20 @@ def test_exporter_can_export_requirements_txt_with_nested_packages_and_markers( ...@@ -427,20 +427,20 @@ def test_exporter_can_export_requirements_txt_with_nested_packages_and_markers(
content = f.read() content = f.read()
expected = { expected = {
"a": dependency_from_pep_508("a==1.2.3; python_version < '3.7'"), "a": Dependency.create_from_pep_508("a==1.2.3; python_version < '3.7'"),
"b": dependency_from_pep_508( "b": Dependency.create_from_pep_508(
"b==4.5.6; platform_system == 'Windows' and python_version < '3.7'" "b==4.5.6; platform_system == 'Windows' and python_version < '3.7'"
), ),
"c": dependency_from_pep_508( "c": Dependency.create_from_pep_508(
"c==7.8.9; sys_platform == 'win32' and python_version < '3.7'" "c==7.8.9; sys_platform == 'win32' and python_version < '3.7'"
), ),
"d": dependency_from_pep_508( "d": Dependency.create_from_pep_508(
"d==0.0.1; platform_system == 'Windows' and python_version < '3.7' or sys_platform == 'win32' and python_version < '3.7'" "d==0.0.1; platform_system == 'Windows' and python_version < '3.7' or sys_platform == 'win32' and python_version < '3.7'"
), ),
} }
for line in content.strip().split("\n"): for line in content.strip().split("\n"):
dependency = dependency_from_pep_508(line) dependency = Dependency.create_from_pep_508(line)
assert dependency.name in expected assert dependency.name in expected
expected_dependency = expected.pop(dependency.name) expected_dependency = expected.pop(dependency.name)
assert dependency == expected_dependency assert dependency == expected_dependency
......
import pytest import pytest
from poetry.core.packages import Package from poetry.core.packages.package import Package
from poetry.factory import Factory from poetry.factory import Factory
from poetry.utils.extras import get_extra_package_names from poetry.utils.extras import get_extra_package_names
......
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