Commit 6b096390 by Sébastien Eustace Committed by GitHub

Improve linting using isort and flake8 (#1531)

parent 98f4176f
[flake8]
max-line-length = 88
ignore = E501, E203, W503
per-file-ignores = __init__.py:F401
exclude =
.git
__pycache__
setup.py
build
dist
releases
.venv
.tox
.mypy_cache
.pytest_cache
.vscode
.github
poetry/utils/_compat.py
tests/fixtures/
tests/repositories/fixtures/
tests/utils/fixtures/
...@@ -17,4 +17,4 @@ assignees: '' ...@@ -17,4 +17,4 @@ assignees: ''
- [ ] I have searched the [documentation](https://poetry.eustace.io/docs/) and believe that my question is not covered. - [ ] I have searched the [documentation](https://poetry.eustace.io/docs/) and believe that my question is not covered.
## Issue ## Issue
<!-- Now feel free to write your issue, but please be descriptive! Thanks again 🙌 ❤️ --> <!-- Now feel free to write your issue, but please be descriptive! Thanks again 🙌 ❤️ -->
\ No newline at end of file
repos: repos:
- repo: https://github.com/ambv/black - repo: https://github.com/psf/black
rev: stable rev: stable
hooks: hooks:
- id: black - id: black
- repo: https://gitlab.com/pycqa/flake8
rev: 3.7.8
hooks:
- id: flake8
- repo: https://github.com/pre-commit/mirrors-isort
rev: v4.3.21
hooks:
- id: isort
additional_dependencies: [toml]
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: debug-statements
...@@ -102,6 +102,9 @@ $ poetry run pytest tests/ ...@@ -102,6 +102,9 @@ $ poetry run pytest tests/
Poetry uses the [black](https://github.com/ambv/black) coding style and you must ensure that your Poetry uses the [black](https://github.com/ambv/black) coding style and you must ensure that your
code follows it. If not, the CI will fail and your Pull Request will not be merged. code follows it. If not, the CI will fail and your Pull Request will not be merged.
Similarly, the import statements are sorted with [isort](https://github.com/timothycrosley/isort)
and special care must be taken to respect it. If you don't, the CI will fail as well.
To make sure that you don't accidentally commit code that does not follow the coding style, you can To make sure that you don't accidentally commit code that does not follow the coding style, you can
install a pre-commit hook that will check that everything is in order: install a pre-commit hook that will check that everything is in order:
...@@ -109,6 +112,12 @@ install a pre-commit hook that will check that everything is in order: ...@@ -109,6 +112,12 @@ install a pre-commit hook that will check that everything is in order:
$ poetry run pre-commit install $ poetry run pre-commit install
``` ```
You can also run it anytime using:
```bash
$ poetry run pre-commit run --all-files
```
Your code must always be accompanied by corresponding tests, if tests are not present your code Your code must always be accompanied by corresponding tests, if tests are not present your code
will not be merged. will not be merged.
......
...@@ -157,13 +157,13 @@ or create a brand new one for you to always work isolated from your global Pytho ...@@ -157,13 +157,13 @@ or create a brand new one for you to always work isolated from your global Pytho
By default, Poetry will use the currently activated Python version By default, Poetry will use the currently activated Python version
to create the virtualenv for the current project. to create the virtualenv for the current project.
To easily switch between Python versions, it is recommended to To easily switch between Python versions, it is recommended to
use [pyenv](https://github.com/pyenv/pyenv) or similar tools. use [pyenv](https://github.com/pyenv/pyenv) or similar tools.
For instance, if your project is Python 2.7 only, a standard workflow For instance, if your project is Python 2.7 only, a standard workflow
would be: would be:
```bash ```bash
pyenv install 2.7.15 pyenv install 2.7.15
pyenv local 2.7.15 # Activate Python 2.7 for the current project pyenv local 2.7.15 # Activate Python 2.7 for the current project
......
...@@ -220,7 +220,7 @@ poetry add ../my-package/dist/my-package-0.1.0.tar.gz ...@@ -220,7 +220,7 @@ poetry add ../my-package/dist/my-package-0.1.0.tar.gz
poetry add ../my-package/dist/my_package-0.1.0.whl poetry add ../my-package/dist/my_package-0.1.0.whl
``` ```
Path dependencies pointing to a local directory will be installed in editable mode (i.e. setuptools "develop mode"). Path dependencies pointing to a local directory will be installed in editable mode (i.e. setuptools "develop mode").
It means that changes in the local directory will be reflected directly in environment. It means that changes in the local directory will be reflected directly in environment.
If you don't want the dependency to be installed in editable mode you can specify it in the `pyproject.toml` file: If you don't want the dependency to be installed in editable mode you can specify it in the `pyproject.toml` file:
...@@ -415,7 +415,7 @@ poetry lock ...@@ -415,7 +415,7 @@ poetry lock
## version ## version
This command shows the current version of the project or bumps the version of This command shows the current version of the project or bumps the version of
the project and writes the new version back to `pyproject.toml` if a valid the project and writes the new version back to `pyproject.toml` if a valid
bump rule is provided. bump rule is provided.
......
...@@ -104,13 +104,22 @@ $ poetry run pytest tests/ ...@@ -104,13 +104,22 @@ $ poetry run pytest tests/
Poetry uses the [black](https://github.com/ambv/black) coding style and you must ensure that your Poetry uses the [black](https://github.com/ambv/black) coding style and you must ensure that your
code follows it. If not, the CI will fail and your Pull Request will not be merged. code follows it. If not, the CI will fail and your Pull Request will not be merged.
To make sure that you don't accidently commit code that does not follow the coding style, you can Similarly, the import statements are sorted with [isort](https://github.com/timothycrosley/isort)
and special care must be taken to respect it. If you don't, the CI will fail as well.
To make sure that you don't accidentally commit code that does not follow the coding style, you can
install a pre-commit hook that will check that everything is in order: install a pre-commit hook that will check that everything is in order:
```bash ```bash
$ poetry run pre-commit install $ poetry run pre-commit install
``` ```
You can also run it anytime using:
```bash
$ poetry run pre-commit run --all-files
```
Your code must always be accompanied by corresponding tests, if tests are not present your code Your code must always be accompanied by corresponding tests, if tests are not present your code
will not be merged. will not be merged.
......
...@@ -33,7 +33,9 @@ from contextlib import closing ...@@ -33,7 +33,9 @@ from contextlib import closing
from contextlib import contextmanager from contextlib import contextmanager
from functools import cmp_to_key from functools import cmp_to_key
from gzip import GzipFile from gzip import GzipFile
from io import UnsupportedOperation, open from io import UnsupportedOperation
from io import open
try: try:
from urllib.error import HTTPError from urllib.error import HTTPError
...@@ -853,7 +855,7 @@ def main(): ...@@ -853,7 +855,7 @@ def main():
base_url = Installer.BASE_URL base_url = Installer.BASE_URL
try: try:
r = urlopen(Installer.REPOSITORY_URL) urlopen(Installer.REPOSITORY_URL)
except HTTPError as e: except HTTPError as e:
if e.code == 404: if e.code == 404:
base_url = Installer.FALLBACK_BASE_URL base_url = Installer.FALLBACK_BASE_URL
......
import os import os
import sys import sys
from .__version__ import __version__ # noqa
_ROOT = os.path.dirname(os.path.realpath(__file__)) _ROOT = os.path.dirname(os.path.realpath(__file__))
_VENDOR = os.path.join(_ROOT, "_vendor") _VENDOR = os.path.join(_ROOT, "_vendor")
_CURRENT_VENDOR = os.path.join( _CURRENT_VENDOR = os.path.join(
...@@ -9,5 +12,3 @@ _CURRENT_VENDOR = os.path.join( ...@@ -9,5 +12,3 @@ _CURRENT_VENDOR = os.path.join(
# Add vendored dependencies to path. # Add vendored dependencies to path.
sys.path.insert(0, _CURRENT_VENDOR) sys.path.insert(0, _CURRENT_VENDOR)
from .__version__ import __version__ # noqa
import sys import sys
if __name__ == "__main__": if __name__ == "__main__":
from .console import main from .console import main
......
...@@ -2,8 +2,10 @@ from __future__ import absolute_import ...@@ -2,8 +2,10 @@ from __future__ import absolute_import
import os import os
import re import re
from copy import deepcopy from copy import deepcopy
from typing import Any from typing import Any
from typing import Callable
from typing import Dict from typing import Dict
from typing import Optional from typing import Optional
...@@ -14,10 +16,16 @@ from poetry.utils._compat import basestring ...@@ -14,10 +16,16 @@ from poetry.utils._compat import basestring
from .config_source import ConfigSource from .config_source import ConfigSource
from .dict_config_source import DictConfigSource from .dict_config_source import DictConfigSource
_NOT_SET = object() _NOT_SET = object()
boolean_validator = lambda val: val in {"true", "false", "1", "0"}
boolean_normalizer = lambda val: val in ["true", "1"] def boolean_validator(val):
return val in {"true", "false", "1", "0"}
def boolean_normalizer(val):
return val in ["true", "1"]
class Config(object): class Config(object):
......
import os
from cleo import Application as BaseApplication from cleo import Application as BaseApplication
from poetry import __version__ from poetry import __version__
from .commands import AboutCommand from .commands.about import AboutCommand
from .commands import AddCommand from .commands.add import AddCommand
from .commands import BuildCommand from .commands.build import BuildCommand
from .commands import CheckCommand from .commands.cache.cache import CacheCommand
from .commands import ConfigCommand from .commands.check import CheckCommand
from .commands import ExportCommand from .commands.config import ConfigCommand
from .commands import InitCommand from .commands.debug.debug import DebugCommand
from .commands import InstallCommand from .commands.env.env import EnvCommand
from .commands import LockCommand from .commands.export import ExportCommand
from .commands import NewCommand from .commands.init import InitCommand
from .commands import PublishCommand from .commands.install import InstallCommand
from .commands import RemoveCommand from .commands.lock import LockCommand
from .commands import RunCommand from .commands.new import NewCommand
from .commands import SearchCommand from .commands.publish import PublishCommand
from .commands import ShellCommand from .commands.remove import RemoveCommand
from .commands import ShowCommand from .commands.run import RunCommand
from .commands import UpdateCommand from .commands.search import SearchCommand
from .commands import VersionCommand from .commands.self.self import SelfCommand
from .commands.shell import ShellCommand
from .commands.debug import DebugCommand from .commands.show import ShowCommand
from .commands.update import UpdateCommand
from .commands.cache import CacheCommand from .commands.version import VersionCommand
from .commands.self import SelfCommand
from .config import ApplicationConfig from .config import ApplicationConfig
from .commands.env import EnvCommand
class Application(BaseApplication): class Application(BaseApplication):
def __init__(self): def __init__(self):
......
from cleo import argument from cleo import argument
from cleo import option from cleo import option
from .init import InitCommand
from .env_command import EnvCommand from .env_command import EnvCommand
from .init import InitCommand
class AddCommand(EnvCommand, InitCommand): class AddCommand(EnvCommand, InitCommand):
...@@ -49,7 +49,7 @@ If you do not specify a version constraint, poetry will choose a suitable one ba ...@@ -49,7 +49,7 @@ If you do not specify a version constraint, poetry will choose a suitable one ba
loggers = ["poetry.repositories.pypi_repository"] loggers = ["poetry.repositories.pypi_repository"]
def handle(self): def handle(self):
from poetry.installation import Installer from poetry.installation.installer import Installer
from poetry.semver import parse_constraint from poetry.semver import parse_constraint
from tomlkit import inline_table from tomlkit import inline_table
......
from ..command import Command from ..command import Command
from .clear import CacheClearCommand from .clear import CacheClearCommand
......
...@@ -5,10 +5,9 @@ from cleo import argument ...@@ -5,10 +5,9 @@ from cleo import argument
from cleo import option from cleo import option
from poetry.factory import Factory from poetry.factory import Factory
from poetry.utils.helpers import ( from poetry.utils.helpers import keyring_repository_password_del
keyring_repository_password_del, from poetry.utils.helpers import keyring_repository_password_set
keyring_repository_password_set,
)
from .command import Command from .command import Command
...@@ -42,12 +41,11 @@ To remove a repository (repo is a short alias for repositories): ...@@ -42,12 +41,11 @@ To remove a repository (repo is a short alias for repositories):
@property @property
def unique_config_values(self): def unique_config_values(self):
from poetry.config.config import boolean_normalizer
from poetry.config.config import boolean_validator
from poetry.locations import CACHE_DIR from poetry.locations import CACHE_DIR
from poetry.utils._compat import Path from poetry.utils._compat import Path
boolean_validator = lambda val: val in {"true", "false", "1", "0"}
boolean_normalizer = lambda val: val in ["true", "1"]
unique_config_values = { unique_config_values = {
"cache-dir": ( "cache-dir": (
str, str,
......
import re
from typing import List
from cleo import argument from cleo import argument
from cleo import option from cleo import option
......
from ..command import Command from ..command import Command
from .info import EnvInfoCommand from .info import EnvInfoCommand
from .list import EnvListCommand from .list import EnvListCommand
from .remove import EnvRemoveCommand from .remove import EnvRemoveCommand
......
...@@ -13,8 +13,8 @@ from typing import Union ...@@ -13,8 +13,8 @@ from typing import Union
from cleo import option from cleo import option
from tomlkit import inline_table from tomlkit import inline_table
from poetry.utils._compat import Path
from poetry.utils._compat import OrderedDict from poetry.utils._compat import OrderedDict
from poetry.utils._compat import Path
from poetry.utils._compat import urlparse from poetry.utils._compat import urlparse
from .command import Command from .command import Command
...@@ -431,7 +431,7 @@ The <c1>init</c1> command creates a basic <comment>pyproject.toml</> file in the ...@@ -431,7 +431,7 @@ The <c1>init</c1> command creates a basic <comment>pyproject.toml</> file in the
require["version"] = version require["version"] = version
else: else:
m = re.match( m = re.match(
"^([^><=!: ]+)((?:>=|<=|>|<|!=|~=|~|\^).*)$", requirement.strip() r"^([^><=!: ]+)((?:>=|<=|>|<|!=|~=|~|\^).*)$", requirement.strip()
) )
if m: if m:
name, constraint = m.group(1), m.group(2) name, constraint = m.group(1), m.group(2)
......
...@@ -40,7 +40,7 @@ exist it will look for <comment>pyproject.toml</> and do the same. ...@@ -40,7 +40,7 @@ exist it will look for <comment>pyproject.toml</> and do the same.
def handle(self): def handle(self):
from clikit.io import NullIO from clikit.io import NullIO
from poetry.installation import Installer from poetry.installation.installer import Installer
from poetry.masonry.builders import EditableBuilder from poetry.masonry.builders import EditableBuilder
from poetry.masonry.utils.module import ModuleOrPackageNotFound from poetry.masonry.utils.module import ModuleOrPackageNotFound
......
...@@ -15,7 +15,7 @@ the current directory, processes it, and locks the depdencies in the <comment>po ...@@ -15,7 +15,7 @@ the current directory, processes it, and locks the depdencies in the <comment>po
loggers = ["poetry.repositories.pypi_repository"] loggers = ["poetry.repositories.pypi_repository"]
def handle(self): def handle(self):
from poetry.installation import Installer from poetry.installation.installer import Installer
installer = Installer( installer = Installer(
self.io, self.env, self.poetry.package, self.poetry.locker, self.poetry.pool self.io, self.env, self.poetry.package, self.poetry.locker, self.poetry.pool
......
...@@ -28,7 +28,7 @@ list of installed packages ...@@ -28,7 +28,7 @@ list of installed packages
loggers = ["poetry.repositories.pypi_repository"] loggers = ["poetry.repositories.pypi_repository"]
def handle(self): def handle(self):
from poetry.installation import Installer from poetry.installation.installer import Installer
packages = self.argument("packages") packages = self.argument("packages")
is_dev = self.option("dev") is_dev = self.option("dev")
......
from ..command import Command from ..command import Command
from .update import SelfUpdateCommand from .update import SelfUpdateCommand
......
...@@ -8,6 +8,12 @@ import tarfile ...@@ -8,6 +8,12 @@ import tarfile
from functools import cmp_to_key from functools import cmp_to_key
from gzip import GzipFile from gzip import GzipFile
from cleo import argument
from cleo import option
from ..command import Command
try: try:
from urllib.error import HTTPError from urllib.error import HTTPError
from urllib.request import urlopen from urllib.request import urlopen
...@@ -15,11 +21,6 @@ except ImportError: ...@@ -15,11 +21,6 @@ except ImportError:
from urllib2 import HTTPError from urllib2 import HTTPError
from urllib2 import urlopen from urllib2 import urlopen
from cleo import argument
from cleo import option
from ..command import Command
class SelfUpdateCommand(Command): class SelfUpdateCommand(Command):
......
import sys import sys
from os import environ
from distutils.util import strtobool from distutils.util import strtobool
from os import environ
from .env_command import EnvCommand from .env_command import EnvCommand
......
...@@ -28,7 +28,7 @@ class UpdateCommand(EnvCommand): ...@@ -28,7 +28,7 @@ class UpdateCommand(EnvCommand):
loggers = ["poetry.repositories.pypi_repository"] loggers = ["poetry.repositories.pypi_repository"]
def handle(self): def handle(self):
from poetry.installation import Installer from poetry.installation.installer import Installer
packages = self.argument("packages") packages = self.argument("packages")
......
...@@ -20,7 +20,7 @@ class VersionCommand(Command): ...@@ -20,7 +20,7 @@ class VersionCommand(Command):
] ]
help = """\ help = """\
The version command shows the current version of the project or bumps the version of The version command shows the current version of the project or bumps the version of
the project and writes the new version back to <comment>pyproject.toml</> if a valid the project and writes the new version back to <comment>pyproject.toml</> if a valid
bump rule is provided. bump rule is provided.
......
import logging import logging
from cleo.config import ApplicationConfig as BaseApplicationConfig from cleo.config import ApplicationConfig as BaseApplicationConfig
from clikit.api.application.application import Application
from clikit.api.args.raw_args import RawArgs
from clikit.api.event import PRE_HANDLE from clikit.api.event import PRE_HANDLE
from clikit.api.event import PreHandleEvent from clikit.api.event import PreHandleEvent
from clikit.api.event import PreResolveEvent
from clikit.api.event.event_dispatcher import EventDispatcher
from clikit.api.formatter import Style from clikit.api.formatter import Style
from clikit.api.io import Input from clikit.api.io import Input
from clikit.api.io import InputStream from clikit.api.io import InputStream
...@@ -11,6 +15,7 @@ from clikit.api.io import OutputStream ...@@ -11,6 +15,7 @@ from clikit.api.io import OutputStream
from clikit.api.io.flags import DEBUG from clikit.api.io.flags import DEBUG
from clikit.api.io.flags import VERBOSE from clikit.api.io.flags import VERBOSE
from clikit.api.io.flags import VERY_VERBOSE from clikit.api.io.flags import VERY_VERBOSE
from clikit.api.io.io import IO
from clikit.formatter import AnsiFormatter from clikit.formatter import AnsiFormatter
from clikit.formatter import PlainFormatter from clikit.formatter import PlainFormatter
from clikit.io.input_stream import StandardInputStream from clikit.io.input_stream import StandardInputStream
...@@ -19,8 +24,8 @@ from clikit.io.output_stream import StandardOutputStream ...@@ -19,8 +24,8 @@ from clikit.io.output_stream import StandardOutputStream
from poetry.console.commands.command import Command from poetry.console.commands.command import Command
from poetry.console.commands.env_command import EnvCommand from poetry.console.commands.env_command import EnvCommand
from poetry.console.logging import IOFormatter from poetry.console.logging.io_formatter import IOFormatter
from poetry.console.logging import IOHandler from poetry.console.logging.io_handler import IOHandler
class ApplicationConfig(BaseApplicationConfig): class ApplicationConfig(BaseApplicationConfig):
...@@ -68,7 +73,6 @@ class ApplicationConfig(BaseApplicationConfig): ...@@ -68,7 +73,6 @@ class ApplicationConfig(BaseApplicationConfig):
logger.setLevel(level) logger.setLevel(level)
def set_env(self, event, event_name, _): # type: (PreHandleEvent, str, _) -> None def set_env(self, event, event_name, _): # type: (PreHandleEvent, str, _) -> None
from poetry.semver import parse_constraint
from poetry.utils.env import EnvManager from poetry.utils.env import EnvManager
command = event.command.config.handler # type: EnvCommand command = event.command.config.handler # type: EnvCommand
......
from .io_formatter import IOFormatter
from .io_handler import IOHandler
import os import os
import tempfile import tempfile
from io import open
from io import open
from subprocess import CalledProcessError from subprocess import CalledProcessError
from clikit.api.io import IO from clikit.api.io import IO
from clikit.io import NullIO from clikit.io import NullIO
from poetry.repositories.pool import Pool
from poetry.utils._compat import encode
from poetry.utils.env import Env
from poetry.utils.helpers import safe_rmtree from poetry.utils.helpers import safe_rmtree
from .base_installer import BaseInstaller
try: try:
import urllib.parse as urlparse import urllib.parse as urlparse
except ImportError: except ImportError:
import urlparse import urlparse
from poetry.repositories.pool import Pool
from poetry.utils._compat import encode
from poetry.utils.env import Env
from .base_installer import BaseInstaller
class PipInstaller(BaseInstaller): class PipInstaller(BaseInstaller):
def __init__(self, env, io, pool): # type: (Env, IO, Pool) -> None def __init__(self, env, io, pool): # type: (Env, IO, Pool) -> None
......
import json import json
import os import os
import jsonschema
from io import open from io import open
from typing import List from typing import List
import jsonschema
SCHEMA_DIR = os.path.join(os.path.dirname(__file__), "schemas") SCHEMA_DIR = os.path.join(os.path.dirname(__file__), "schemas")
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
from .layout import Layout from .layout import Layout
DEFAULT = u"""__version__ = '{version}' DEFAULT = u"""__version__ = '{version}'
""" """
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
from .layout import Layout from .layout import Layout
DEFAULT = u"""__version__ = '{version}' DEFAULT = u"""__version__ = '{version}'
""" """
......
...@@ -11,8 +11,9 @@ from poetry.utils._compat import Path ...@@ -11,8 +11,9 @@ from poetry.utils._compat import Path
from poetry.utils._compat import unicode from poetry.utils._compat import unicode
from poetry.utils.env import SystemEnv from poetry.utils.env import SystemEnv
from .builders import SdistBuilder from .builders.sdist import SdistBuilder
from .builders import WheelBuilder from .builders.wheel import WheelBuilder
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
......
from .builders import CompleteBuilder from .builders.complete import CompleteBuilder
from .builders import SdistBuilder from .builders.sdist import SdistBuilder
from .builders import WheelBuilder from .builders.wheel import WheelBuilder
class Builder: class Builder:
......
...@@ -41,7 +41,7 @@ class Builder(object): ...@@ -41,7 +41,7 @@ class Builder(object):
def __init__( def __init__(
self, poetry, env, io, ignore_packages_formats=False self, poetry, env, io, ignore_packages_formats=False
): # type: (Poetry, Env, IO) -> None ): # type: ("Poetry", "Env", "IO", bool) -> None
self._poetry = poetry self._poetry = poetry
self._env = env self._env = env
self._io = io self._io = io
......
import os import os
import tarfile import tarfile
from contextlib import contextmanager
from poetry.factory import Factory from poetry.factory import Factory
from poetry.io.null_io import NullIO from poetry.io.null_io import NullIO
from poetry.utils._compat import Path from poetry.utils._compat import Path
from poetry.utils.helpers import temporary_directory from poetry.utils.helpers import temporary_directory
from contextlib import contextmanager
from .builder import Builder from .builder import Builder
from .sdist import SdistBuilder from .sdist import SdistBuilder
from .wheel import WheelBuilder from .wheel import WheelBuilder
......
...@@ -16,7 +16,6 @@ from poetry.utils._compat import to_str ...@@ -16,7 +16,6 @@ from poetry.utils._compat import to_str
from ..utils.helpers import normalize_file_permissions from ..utils.helpers import normalize_file_permissions
from ..utils.package_include import PackageInclude from ..utils.package_include import PackageInclude
from .builder import Builder from .builder import Builder
...@@ -268,9 +267,7 @@ class SdistBuilder(Builder): ...@@ -268,9 +267,7 @@ class SdistBuilder(Builder):
return pkgdir, sorted(packages), pkg_data return pkgdir, sorted(packages), pkg_data
@classmethod @classmethod
def convert_dependencies( def convert_dependencies(cls, package, dependencies):
cls, package, dependencies # type: Package # type: List[Dependency]
):
main = [] main = []
extras = defaultdict(list) extras = defaultdict(list)
req_regex = re.compile(r"^(.+) \((.+)\)$") req_regex = re.compile(r"^(.+) \((.+)\)$")
......
...@@ -3,10 +3,9 @@ from __future__ import unicode_literals ...@@ -3,10 +3,9 @@ from __future__ import unicode_literals
import contextlib import contextlib
import hashlib import hashlib
import os import os
import re
import tempfile
import shutil import shutil
import stat import stat
import tempfile
import zipfile import zipfile
from base64 import urlsafe_b64encode from base64 import urlsafe_b64encode
...@@ -19,7 +18,9 @@ from poetry.__version__ import __version__ ...@@ -19,7 +18,9 @@ from poetry.__version__ import __version__
from poetry.semver import parse_constraint from poetry.semver import parse_constraint
from poetry.utils._compat import decode from poetry.utils._compat import decode
from ..utils.helpers import normalize_file_permissions, escape_name, escape_version from ..utils.helpers import escape_name
from ..utils.helpers import escape_version
from ..utils.helpers import normalize_file_permissions
from ..utils.package_include import PackageInclude from ..utils.package_include import PackageInclude
from ..utils.tags import get_abbr_impl from ..utils.tags import get_abbr_impl
from ..utils.tags import get_abi_tag from ..utils.tags import get_abi_tag
......
import logging import logging
from poetry.utils.helpers import get_client_cert, get_cert, get_http_basic_auth from poetry.utils.helpers import get_cert
from poetry.utils.helpers import get_client_cert
from poetry.utils.helpers import get_http_basic_auth
from .uploader import Uploader from .uploader import Uploader
......
import hashlib import hashlib
import io import io
import math import math
import re
from typing import List, Optional from typing import List
from typing import Optional
import requests import requests
...@@ -11,7 +11,8 @@ from requests import adapters ...@@ -11,7 +11,8 @@ from requests import adapters
from requests.exceptions import HTTPError from requests.exceptions import HTTPError
from requests.packages.urllib3 import util from requests.packages.urllib3 import util
from requests_toolbelt import user_agent from requests_toolbelt import user_agent
from requests_toolbelt.multipart import MultipartEncoder, MultipartEncoderMonitor from requests_toolbelt.multipart import MultipartEncoder
from requests_toolbelt.multipart import MultipartEncoderMonitor
from poetry.__version__ import __version__ from poetry.__version__ import __version__
from poetry.utils._compat import Path from poetry.utils._compat import Path
...@@ -19,7 +20,8 @@ from poetry.utils.helpers import normalize_version ...@@ -19,7 +20,8 @@ from poetry.utils.helpers import normalize_version
from poetry.utils.patterns import wheel_file_re from poetry.utils.patterns import wheel_file_re
from ..metadata import Metadata from ..metadata import Metadata
from ..utils.helpers import escape_name, escape_version from ..utils.helpers import escape_name
from ..utils.helpers import escape_version
_has_blake2 = hasattr(hashlib, "blake2b") _has_blake2 = hasattr(hashlib, "blake2b")
......
from typing import List
from poetry.utils._compat import Path from poetry.utils._compat import Path
from poetry.utils.helpers import module_name from poetry.utils.helpers import module_name
......
from typing import Dict from typing import Dict
from typing import Generator
from typing import List from typing import List
from .incompatibility_cause import ConflictCause from .incompatibility_cause import ConflictCause
......
from collections import OrderedDict from collections import OrderedDict
from typing import Any
from typing import Dict from typing import Dict
from typing import List from typing import List
......
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import time import time
from typing import Any
from typing import Dict from typing import Dict
from typing import List from typing import List
from typing import Union from typing import Union
from poetry.packages import Dependency from poetry.packages import Dependency
from poetry.packages import ProjectPackage
from poetry.packages import Package from poetry.packages import Package
from poetry.packages import ProjectPackage
from poetry.puzzle.provider import Provider from poetry.puzzle.provider import Provider
from poetry.semver import Version from poetry.semver import Version
from poetry.semver import VersionRange from poetry.semver import VersionRange
......
...@@ -12,6 +12,7 @@ from .locker import Locker ...@@ -12,6 +12,7 @@ from .locker import Locker
from .package import Package from .package import Package
from .package_collection import PackageCollection from .package_collection import PackageCollection
from .project_package import ProjectPackage from .project_package import ProjectPackage
from .url_dependency import URLDependency
from .utils.link import Link from .utils.link import Link
from .utils.utils import convert_markers from .utils.utils import convert_markers
from .utils.utils import group_markers from .utils.utils import group_markers
...@@ -20,7 +21,6 @@ from .utils.utils import is_installable_dir ...@@ -20,7 +21,6 @@ from .utils.utils import is_installable_dir
from .utils.utils import is_url from .utils.utils import is_url
from .utils.utils import path_to_url from .utils.utils import path_to_url
from .utils.utils import strip_extras from .utils.utils import strip_extras
from .url_dependency import URLDependency
from .vcs_dependency import VCSDependency from .vcs_dependency import VCSDependency
......
import re import re
from .any_constraint import AnyConstraint from .any_constraint import AnyConstraint
from .base_constraint import BaseConstraint
from .constraint import Constraint from .constraint import Constraint
from .union_constraint import UnionConstraint from .union_constraint import UnionConstraint
......
...@@ -65,7 +65,11 @@ class MultiConstraint(BaseConstraint): ...@@ -65,7 +65,11 @@ class MultiConstraint(BaseConstraint):
def intersect(self, other): def intersect(self, other):
if isinstance(other, Constraint): if isinstance(other, Constraint):
constraints = [c for c in self._constraints if c == other] constraints = self._constraints
if other not in constraints:
constraints += (other,)
else:
constraints = (other,)
if len(constraints) == 1: if len(constraints) == 1:
return constraints[0] return constraints[0]
......
from .base_constraint import BaseConstraint from .base_constraint import BaseConstraint
from .constraint import Constraint from .constraint import Constraint
from .empty_constraint import EmptyConstraint from .empty_constraint import EmptyConstraint
from .multi_constraint import MultiConstraint
class UnionConstraint(BaseConstraint): class UnionConstraint(BaseConstraint):
......
...@@ -2,11 +2,11 @@ from typing import Optional ...@@ -2,11 +2,11 @@ from typing import Optional
import poetry.packages import poetry.packages
from poetry.semver import parse_constraint
from poetry.semver import Version from poetry.semver import Version
from poetry.semver import VersionConstraint from poetry.semver import VersionConstraint
from poetry.semver import VersionRange from poetry.semver import VersionRange
from poetry.semver import VersionUnion from poetry.semver import VersionUnion
from poetry.semver import parse_constraint
from poetry.utils.helpers import canonicalize_name from poetry.utils.helpers import canonicalize_name
from poetry.version.markers import AnyMarker from poetry.version.markers import AnyMarker
from poetry.version.markers import parse_marker from poetry.version.markers import parse_marker
......
...@@ -6,6 +6,7 @@ from poetry.utils.toml_file import TomlFile ...@@ -6,6 +6,7 @@ from poetry.utils.toml_file import TomlFile
from .dependency import Dependency from .dependency import Dependency
# Patching pkginfo to support Metadata version 2.1 (PEP 566) # Patching pkginfo to support Metadata version 2.1 (PEP 566)
HEADER_ATTRS.update( HEADER_ATTRS.update(
{"2.1": HEADER_ATTRS_2_0 + (("Provides-Extra", "provides_extra", True),)} {"2.1": HEADER_ATTRS_2_0 + (("Provides-Extra", "provides_extra", True),)}
......
...@@ -8,6 +8,7 @@ from poetry.utils._compat import Path ...@@ -8,6 +8,7 @@ from poetry.utils._compat import Path
from .dependency import Dependency from .dependency import Dependency
# Patching pkginfo to support Metadata version 2.1 (PEP 566) # Patching pkginfo to support Metadata version 2.1 (PEP 566)
HEADER_ATTRS.update( HEADER_ATTRS.update(
{"2.1": HEADER_ATTRS_2_0 + (("Provides-Extra", "provides_extra", True),)} {"2.1": HEADER_ATTRS_2_0 + (("Provides-Extra", "provides_extra", True),)}
......
import json import json
import re import re
import poetry.packages
import poetry.repositories
from hashlib import sha256 from hashlib import sha256
from typing import List
from tomlkit import document from tomlkit import document
from tomlkit import inline_table from tomlkit import inline_table
from tomlkit import item from tomlkit import item
from tomlkit import table from tomlkit import table
from typing import List
import poetry.packages
import poetry.repositories
from poetry.utils._compat import Path from poetry.utils._compat import Path
from poetry.utils.toml_file import TomlFile from poetry.utils.toml_file import TomlFile
......
...@@ -9,8 +9,8 @@ from warnings import warn ...@@ -9,8 +9,8 @@ from warnings import warn
from poetry.semver import Version from poetry.semver import Version
from poetry.semver import parse_constraint from poetry.semver import parse_constraint
from poetry.spdx import license_by_id
from poetry.spdx import License from poetry.spdx import License
from poetry.spdx import license_by_id
from poetry.utils._compat import Path from poetry.utils._compat import Path
from poetry.utils.helpers import canonicalize_name from poetry.utils.helpers import canonicalize_name
from poetry.version.markers import AnyMarker from poetry.version.markers import AnyMarker
...@@ -21,8 +21,9 @@ from .dependency import Dependency ...@@ -21,8 +21,9 @@ from .dependency import Dependency
from .directory_dependency import DirectoryDependency from .directory_dependency import DirectoryDependency
from .file_dependency import FileDependency from .file_dependency import FileDependency
from .url_dependency import URLDependency from .url_dependency import URLDependency
from .vcs_dependency import VCSDependency
from .utils.utils import create_nested_marker from .utils.utils import create_nested_marker
from .vcs_dependency import VCSDependency
AUTHOR_REGEX = re.compile(r"(?u)^(?P<name>[- .,\w\d'’\"()]+)(?: <(?P<email>.+?)>)?$") AUTHOR_REGEX = re.compile(r"(?u)^(?P<name>[- .,\w\d'’\"()]+)(?: <(?P<email>.+?)>)?$")
......
import posixpath import posixpath
import re
from .utils import path_to_url
from .utils import splitext
try: try:
import urllib.parse as urlparse import urllib.parse as urlparse
except ImportError: except ImportError:
import urlparse import urlparse
import re
from .utils import path_to_url
from .utils import splitext
class Link: class Link:
def __init__(self, url, comes_from=None, requires_python=None): def __init__(self, url, comes_from=None, requires_python=None):
......
...@@ -11,6 +11,7 @@ from poetry.version.markers import MarkerUnion ...@@ -11,6 +11,7 @@ from poetry.version.markers import MarkerUnion
from poetry.version.markers import MultiMarker from poetry.version.markers import MultiMarker
from poetry.version.markers import SingleMarker from poetry.version.markers import SingleMarker
try: try:
import urllib.parse as urlparse import urllib.parse as urlparse
except ImportError: except ImportError:
......
from __future__ import absolute_import from __future__ import absolute_import
from __future__ import unicode_literals from __future__ import unicode_literals
from typing import Optional
from .__version__ import __version__ from .__version__ import __version__
from .config.config import Config from .config.config import Config
from .packages import Locker from .packages import Locker
......
import glob import glob
import logging import logging
import os import os
import pkginfo
import re import re
import time import time
from clikit.ui.components import ProgressIndicator
from contextlib import contextmanager from contextlib import contextmanager
from tempfile import mkdtemp from tempfile import mkdtemp
from typing import List from typing import List
from typing import Optional from typing import Optional
import pkginfo
from clikit.ui.components import ProgressIndicator
from poetry.factory import Factory from poetry.factory import Factory
from poetry.mixology.incompatibility import Incompatibility
from poetry.mixology.incompatibility_cause import DependencyCause
from poetry.mixology.incompatibility_cause import PythonCause
from poetry.mixology.term import Term
from poetry.packages import Dependency from poetry.packages import Dependency
from poetry.packages import DependencyPackage from poetry.packages import DependencyPackage
from poetry.packages import DirectoryDependency from poetry.packages import DirectoryDependency
...@@ -21,30 +27,22 @@ from poetry.packages import PackageCollection ...@@ -21,30 +27,22 @@ from poetry.packages import PackageCollection
from poetry.packages import URLDependency from poetry.packages import URLDependency
from poetry.packages import VCSDependency from poetry.packages import VCSDependency
from poetry.packages import dependency_from_pep_508 from poetry.packages import dependency_from_pep_508
from poetry.mixology.incompatibility import Incompatibility
from poetry.mixology.incompatibility_cause import DependencyCause
from poetry.mixology.incompatibility_cause import PythonCause
from poetry.mixology.term import Term
from poetry.repositories import Pool from poetry.repositories import Pool
from poetry.utils._compat import PY35 from poetry.utils._compat import PY35
from poetry.utils._compat import Path
from poetry.utils._compat import OrderedDict from poetry.utils._compat import OrderedDict
from poetry.utils._compat import Path
from poetry.utils._compat import urlparse from poetry.utils._compat import urlparse
from poetry.utils.env import EnvCommandError
from poetry.utils.env import EnvManager
from poetry.utils.env import VirtualEnv
from poetry.utils.helpers import parse_requires from poetry.utils.helpers import parse_requires
from poetry.utils.helpers import safe_rmtree from poetry.utils.helpers import safe_rmtree
from poetry.utils.helpers import temporary_directory from poetry.utils.helpers import temporary_directory
from poetry.utils.env import EnvManager
from poetry.utils.env import EnvCommandError
from poetry.utils.env import VirtualEnv
from poetry.utils.inspector import Inspector from poetry.utils.inspector import Inspector
from poetry.utils.setup_reader import SetupReader from poetry.utils.setup_reader import SetupReader
from poetry.utils.toml_file import TomlFile from poetry.utils.toml_file import TomlFile
from poetry.version.markers import MarkerUnion
from poetry.vcs.git import Git from poetry.vcs.git import Git
from poetry.version.markers import MarkerUnion
from .exceptions import CompatibilityError from .exceptions import CompatibilityError
...@@ -278,7 +276,7 @@ class Provider: ...@@ -278,7 +276,7 @@ class Provider:
package.source_url = dependency.path.as_posix() package.source_url = dependency.path.as_posix()
if dependency.base != None: if dependency.base is not None:
package.root_dir = dependency.base.as_posix() package.root_dir = dependency.base.as_posix()
for extra in dependency.extras: for extra in dependency.extras:
......
...@@ -13,12 +13,10 @@ from poetry.version.markers import AnyMarker ...@@ -13,12 +13,10 @@ from poetry.version.markers import AnyMarker
from .exceptions import CompatibilityError from .exceptions import CompatibilityError
from .exceptions import SolverProblemError from .exceptions import SolverProblemError
from .operations import Install from .operations import Install
from .operations import Uninstall from .operations import Uninstall
from .operations import Update from .operations import Update
from .operations.operation import Operation from .operations.operation import Operation
from .provider import Provider from .provider import Provider
......
import cgi import cgi
import re import re
import warnings
try:
import urllib.parse as urlparse
except ImportError:
import urlparse
try:
from html import unescape
except ImportError:
try:
from html.parser import HTMLParser
except ImportError:
from HTMLParser import HTMLParser
unescape = HTMLParser().unescape
from collections import defaultdict from collections import defaultdict
from typing import Generator from typing import Generator
from typing import Optional from typing import Optional
from typing import Union from typing import Union
try:
from urllib.parse import quote
except ImportError:
from urllib import quote
import requests import requests
from cachecontrol import CacheControl from cachecontrol import CacheControl
...@@ -38,10 +19,10 @@ from poetry.locations import CACHE_DIR ...@@ -38,10 +19,10 @@ from poetry.locations import CACHE_DIR
from poetry.packages import Package from poetry.packages import Package
from poetry.packages import dependency_from_pep_508 from poetry.packages import dependency_from_pep_508
from poetry.packages.utils.link import Link from poetry.packages.utils.link import Link
from poetry.semver import parse_constraint
from poetry.semver import Version from poetry.semver import Version
from poetry.semver import VersionConstraint from poetry.semver import VersionConstraint
from poetry.semver import VersionRange from poetry.semver import VersionRange
from poetry.semver import parse_constraint
from poetry.utils._compat import Path from poetry.utils._compat import Path
from poetry.utils.helpers import canonicalize_name from poetry.utils.helpers import canonicalize_name
from poetry.utils.inspector import Inspector from poetry.utils.inspector import Inspector
...@@ -52,7 +33,28 @@ from .auth import Auth ...@@ -52,7 +33,28 @@ from .auth import Auth
from .exceptions import PackageNotFound from .exceptions import PackageNotFound
from .pypi_repository import PyPiRepository from .pypi_repository import PyPiRepository
import warnings
try:
import urllib.parse as urlparse
except ImportError:
import urlparse
try:
from html import unescape
except ImportError:
try:
from html.parser import HTMLParser
except ImportError:
from HTMLParser import HTMLParser
unescape = HTMLParser().unescape
try:
from urllib.parse import quote
except ImportError:
from urllib import quote
with warnings.catch_warnings(): with warnings.catch_warnings():
warnings.simplefilter("ignore") warnings.simplefilter("ignore")
......
...@@ -94,7 +94,7 @@ class Pool(BaseRepository): ...@@ -94,7 +94,7 @@ class Pool(BaseRepository):
def package( def package(
self, name, version, extras=None, repository=None self, name, version, extras=None, repository=None
): # type: (str, str, List[str], str) -> Package ): # type: (str, str, List[str], str) -> "Package"
if ( if (
repository is not None repository is not None
and repository not in self._lookup and repository not in self._lookup
......
...@@ -6,11 +6,6 @@ from typing import Dict ...@@ -6,11 +6,6 @@ from typing import Dict
from typing import List from typing import List
from typing import Union from typing import Union
try:
import urllib.parse as urlparse
except ImportError:
import urlparse
from cachecontrol import CacheControl 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
...@@ -19,12 +14,12 @@ from requests import get ...@@ -19,12 +14,12 @@ from requests import get
from requests import session from requests import session
from poetry.locations import CACHE_DIR from poetry.locations import CACHE_DIR
from poetry.packages import dependency_from_pep_508
from poetry.packages import Package from poetry.packages import Package
from poetry.packages import dependency_from_pep_508
from poetry.packages.utils.link import Link from poetry.packages.utils.link import Link
from poetry.semver import parse_constraint
from poetry.semver import VersionConstraint from poetry.semver import VersionConstraint
from poetry.semver import VersionRange from poetry.semver import VersionRange
from poetry.semver import parse_constraint
from poetry.semver.exceptions import ParseVersionError from poetry.semver.exceptions import ParseVersionError
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
...@@ -38,6 +33,12 @@ from .exceptions import PackageNotFound ...@@ -38,6 +33,12 @@ from .exceptions import PackageNotFound
from .repository import Repository from .repository import Repository
try:
import urllib.parse as urlparse
except ImportError:
import urlparse
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
......
from poetry.semver import parse_constraint
from poetry.semver import VersionConstraint from poetry.semver import VersionConstraint
from poetry.semver import VersionRange from poetry.semver import VersionRange
from poetry.semver import parse_constraint
from .base_repository import BaseRepository from .base_repository import BaseRepository
......
import re import re
MODIFIERS = ( MODIFIERS = (
"[._-]?" "[._-]?"
r"((?!post)(?:beta|b|c|pre|RC|alpha|a|patch|pl|p|dev)(?:(?:[.-]?\d+)*)?)?" r"((?!post)(?:beta|b|c|pre|RC|alpha|a|patch|pl|p|dev)(?:(?:[.-]?\d+)*)?)?"
......
...@@ -2,6 +2,7 @@ import re ...@@ -2,6 +2,7 @@ import re
from typing import List from typing import List
from typing import Optional from typing import Optional
from typing import Union
from .empty_constraint import EmptyConstraint from .empty_constraint import EmptyConstraint
from .exceptions import ParseVersionError from .exceptions import ParseVersionError
......
...@@ -5,7 +5,7 @@ class VersionConstraint: ...@@ -5,7 +5,7 @@ class VersionConstraint:
def is_any(self): # type: () -> bool def is_any(self): # type: () -> bool
raise NotImplementedError() raise NotImplementedError()
def allows(self, version): # type: (Version) -> bool def allows(self, version): # type: ("Version") -> bool
raise NotImplementedError() raise NotImplementedError()
def allows_all(self, other): # type: (VersionConstraint) -> bool def allows_all(self, other): # type: (VersionConstraint) -> bool
......
from typing import List
from .empty_constraint import EmptyConstraint from .empty_constraint import EmptyConstraint
from .version_constraint import VersionConstraint from .version_constraint import VersionConstraint
from .version_union import VersionUnion from .version_union import VersionUnion
...@@ -58,7 +60,7 @@ class VersionRange(VersionConstraint): ...@@ -58,7 +60,7 @@ class VersionRange(VersionConstraint):
def is_any(self): def is_any(self):
return self._min is None and self._max is None return self._min is None and self._max is None
def allows(self, other): # type: (Version) -> bool def allows(self, other): # type: ("Version") -> bool
if self._min is not None: if self._min is not None:
if other < self._min: if other < self._min:
return False return False
......
from typing import List
from .empty_constraint import EmptyConstraint from .empty_constraint import EmptyConstraint
from .version_constraint import VersionConstraint from .version_constraint import VersionConstraint
...@@ -72,7 +74,7 @@ class VersionUnion(VersionConstraint): ...@@ -72,7 +74,7 @@ class VersionUnion(VersionConstraint):
def is_any(self): def is_any(self):
return False return False
def allows(self, version): # type: (Version) -> bool def allows(self, version): # type: ("Version") -> bool
return any([constraint.allows(version) for constraint in self._ranges]) return any([constraint.allows(version) for constraint in self._ranges])
def allows_all(self, other): # type: (VersionConstraint) -> bool def allows_all(self, other): # type: (VersionConstraint) -> bool
...@@ -214,7 +216,7 @@ class VersionUnion(VersionConstraint): ...@@ -214,7 +216,7 @@ class VersionUnion(VersionConstraint):
def _ranges_for( def _ranges_for(
self, constraint self, constraint
): # type: (VersionConstraint) -> List[VersionRange] ): # type: (VersionConstraint) -> List["VersionRange"]
from .version_range import VersionRange from .version_range import VersionRange
if constraint.is_empty(): if constraint.is_empty():
......
...@@ -6,6 +6,7 @@ from io import open ...@@ -6,6 +6,7 @@ from io import open
from .license import License from .license import License
from .updater import Updater from .updater import Updater
_licenses = None _licenses = None
......
...@@ -1844,4 +1844,4 @@ ...@@ -1844,4 +1844,4 @@
false, false,
false false
] ]
} }
\ No newline at end of file
...@@ -3,6 +3,7 @@ import os ...@@ -3,6 +3,7 @@ import os
from io import open from io import open
try: try:
from urllib.request import urlopen from urllib.request import urlopen
except ImportError: except ImportError:
......
import sys import sys
try: try:
from functools32 import lru_cache from functools32 import lru_cache
except ImportError: except ImportError:
......
...@@ -5,6 +5,7 @@ to suit our purposes. ...@@ -5,6 +5,7 @@ to suit our purposes.
import os import os
import sys import sys
WINDOWS = sys.platform.startswith("win") or (sys.platform == "cli" and os.name == "nt") WINDOWS = sys.platform.startswith("win") or (sys.platform == "cli" and os.name == "nt")
......
...@@ -9,8 +9,6 @@ import sys ...@@ -9,8 +9,6 @@ import sys
import sysconfig import sysconfig
import warnings import warnings
import tomlkit
from contextlib import contextmanager from contextlib import contextmanager
from typing import Any from typing import Any
from typing import Dict from typing import Dict
...@@ -18,6 +16,8 @@ from typing import List ...@@ -18,6 +16,8 @@ from typing import List
from typing import Optional from typing import Optional
from typing import Tuple from typing import Tuple
import tomlkit
from clikit.api.io import IO from clikit.api.io import IO
from poetry.locations import CACHE_DIR from poetry.locations import CACHE_DIR
......
...@@ -4,21 +4,25 @@ import shutil ...@@ -4,21 +4,25 @@ import shutil
import stat import stat
import tempfile import tempfile
try:
from collections.abc import Mapping
except ImportError:
from collections import Mapping
from contextlib import contextmanager from contextlib import contextmanager
from typing import List from typing import List
from typing import Optional from typing import Optional
from keyring import delete_password, set_password, get_password from keyring import delete_password
from keyring import get_password
from keyring import set_password
from keyring.errors import KeyringError from keyring.errors import KeyringError
from poetry.config.config import Config from poetry.config.config import Config
from poetry.version import Version
from poetry.utils._compat import Path from poetry.utils._compat import Path
from poetry.version import Version
try:
from collections.abc import Mapping
except ImportError:
from collections import Mapping
_canonicalize_regex = re.compile("[-_]+") _canonicalize_regex = re.compile("[-_]+")
......
from typing import Dict
from typing import List
from typing import Union
import logging import logging
import os import os
import tarfile import tarfile
import zipfile import zipfile
from bz2 import BZ2File from bz2 import BZ2File
from gzip import GzipFile from gzip import GzipFile
from typing import Dict
from typing import List
from typing import Union
import pkginfo import pkginfo
from requests import get from requests import get
from ._compat import Path from ._compat import Path
...@@ -17,6 +18,7 @@ from .helpers import parse_requires ...@@ -17,6 +18,7 @@ from .helpers import parse_requires
from .setup_reader import SetupReader from .setup_reader import SetupReader
from .toml_file import TomlFile from .toml_file import TomlFile
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
......
import ast import ast
try:
from configparser import ConfigParser
except ImportError:
from ConfigParser import ConfigParser
from typing import Any from typing import Any
from typing import Dict from typing import Dict
from typing import Iterable from typing import Iterable
...@@ -14,8 +9,14 @@ from typing import Tuple ...@@ -14,8 +9,14 @@ from typing import Tuple
from typing import Union from typing import Union
from ._compat import PY35 from ._compat import PY35
from ._compat import basestring
from ._compat import Path from ._compat import Path
from ._compat import basestring
try:
from configparser import ConfigParser
except ImportError:
from ConfigParser import ConfigParser
class SetupReader(object): class SetupReader(object):
......
...@@ -5,8 +5,8 @@ import sys ...@@ -5,8 +5,8 @@ import sys
import pexpect import pexpect
from clikit.utils.terminal import Terminal from clikit.utils.terminal import Terminal
from shellingham import detect_shell
from shellingham import ShellDetectionFailure from shellingham import ShellDetectionFailure
from shellingham import detect_shell
from ._compat import WINDOWS from ._compat import WINDOWS
from .env import VirtualEnv from .env import VirtualEnv
......
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from tomlkit.toml_file import TOMLFile as BaseTOMLFile
from typing import Union from typing import Union
from tomlkit.toml_file import TOMLFile as BaseTOMLFile
from ._compat import Path from ._compat import Path
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
import re import re
import subprocess import subprocess
from poetry.utils._compat import decode from poetry.utils._compat import decode
......
from poetry.semver import parse_constraint
from poetry.semver import Version from poetry.semver import Version
from poetry.semver import VersionUnion from poetry.semver import VersionUnion
from poetry.semver import parse_constraint
PYTHON_VERSION = [ PYTHON_VERSION = [
"2.7.*", "2.7.*",
......
import re import re
from pyparsing import ParseException, ParseResults, stringStart, stringEnd
from pyparsing import ZeroOrMore, Group, Forward, QuotedString
from pyparsing import Literal as L # noqa
from typing import Any from typing import Any
from typing import Dict from typing import Dict
from typing import Iterator from typing import Iterator
from typing import List from typing import List
from pyparsing import Forward
from pyparsing import Group
from pyparsing import Literal as L # noqa
from pyparsing import ParseResults
from pyparsing import QuotedString
from pyparsing import ZeroOrMore
from pyparsing import stringEnd
from pyparsing import stringStart
class InvalidMarker(ValueError): class InvalidMarker(ValueError):
""" """
......
# This file is dual licensed under the terms of the Apache License, Version # This file is dual licensed under the terms of the Apache License, Version
# 2.0, and the BSD License. See the LICENSE file in the root of this repository # 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details. # for complete details.
from __future__ import absolute_import, division, print_function from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import string
import re import re
import string
try: from pyparsing import Combine
import urllib.parse as urlparse
except ImportError:
from urlparse import urlparse
from pyparsing import stringStart, stringEnd, originalTextFor, ParseException
from pyparsing import ZeroOrMore, Word, Optional, Regex, Combine
from pyparsing import Literal as L # noqa from pyparsing import Literal as L # noqa
from pyparsing import Optional
from pyparsing import ParseException
from pyparsing import Regex
from pyparsing import Word
from pyparsing import ZeroOrMore
from pyparsing import originalTextFor
from pyparsing import stringEnd
from pyparsing import stringStart
from poetry.semver import parse_constraint from poetry.semver import parse_constraint
...@@ -21,6 +25,12 @@ from .markers import MARKER_EXPR ...@@ -21,6 +25,12 @@ from .markers import MARKER_EXPR
from .markers import parse_marker from .markers import parse_marker
try:
import urllib.parse as urlparse
except ImportError:
from urlparse import urlparse
LEGACY_REGEX = r""" LEGACY_REGEX = r"""
(?P<operator>(==|!=|<=|>=|<|>)) (?P<operator>(==|!=|<=|>=|<|>))
\s* \s*
......
# This file is dual licensed under the terms of the Apache License, Version # This file is dual licensed under the terms of the Apache License, Version
# 2.0, and the BSD License. See the LICENSE file in the root of this repository # 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details. # for complete details.
from __future__ import absolute_import, division, print_function from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import abc import abc
import functools import functools
......
...@@ -2,8 +2,8 @@ from typing import Union ...@@ -2,8 +2,8 @@ from typing import Union
from poetry.packages import Dependency from poetry.packages import Dependency
from poetry.packages import Package from poetry.packages import Package
from poetry.semver import parse_constraint
from poetry.semver import Version from poetry.semver import Version
from poetry.semver import parse_constraint
class VersionSelector(object): class VersionSelector(object):
......
...@@ -70,6 +70,39 @@ tox = "^3.0" ...@@ -70,6 +70,39 @@ tox = "^3.0"
pytest-sugar = "^0.9.2" pytest-sugar = "^0.9.2"
httpretty = "^0.9.6" httpretty = "^0.9.6"
[tool.poetry.scripts] [tool.poetry.scripts]
poetry = "poetry.console:main" poetry = "poetry.console:main"
[tool.isort]
line_length = 88
force_single_line = true
atomic = true
include_trailing_comma = true
lines_after_imports = 2
lines_between_types = 1
multi_line_output = 3
use_parentheses = true
not_skip = "__init__.py"
skip_glob = ["*/setup.py"]
filter_files = true
known_first_party = "poetry"
known_third_party = [
"cachecontrol",
"cachy",
"cleo",
"clikit",
"html5lib",
"httpretty",
"jsonschema",
"keyring",
"pexpect",
"pkginfo",
"pyparsing",
"pytest",
"requests",
"requests_toolbelt",
"shellingham",
"tomlkit",
]
...@@ -11,6 +11,7 @@ from gzip import GzipFile ...@@ -11,6 +11,7 @@ from gzip import GzipFile
from cleo import Application from cleo import Application
from cleo import Command from cleo import Command
WINDOWS = sys.platform.startswith("win") or (sys.platform == "cli" and os.name == "nt") WINDOWS = sys.platform.startswith("win") or (sys.platform == "cli" and os.name == "nt")
......
import os import os
from poetry.locations import CACHE_DIR
def test_config_get_default_value(config): def test_config_get_default_value(config):
assert config.get("virtualenvs.create") is True assert config.get("virtualenvs.create") is True
......
...@@ -2,17 +2,12 @@ import os ...@@ -2,17 +2,12 @@ import os
import shutil import shutil
import tempfile import tempfile
import httpretty
import pytest
try:
import urllib.parse as urlparse
except ImportError:
import urlparse
from typing import Any from typing import Any
from typing import Dict from typing import Dict
import httpretty
import pytest
from poetry.config.config import Config as BaseConfig from poetry.config.config import Config as BaseConfig
from poetry.config.dict_config_source import DictConfigSource from poetry.config.dict_config_source import DictConfigSource
from poetry.utils._compat import PY2 from poetry.utils._compat import PY2
...@@ -20,6 +15,12 @@ from poetry.utils._compat import WINDOWS ...@@ -20,6 +15,12 @@ from poetry.utils._compat import WINDOWS
from poetry.utils._compat import Path from poetry.utils._compat import Path
try:
import urllib.parse as urlparse
except ImportError:
import urlparse
class Config(BaseConfig): class Config(BaseConfig):
def get(self, setting_name, default=None): # type: (str, Any) -> Any def get(self, setting_name, default=None): # type: (str, Any) -> Any
self.merge(self._config_source.config) self.merge(self._config_source.config)
...@@ -40,14 +41,6 @@ class Config(BaseConfig): ...@@ -40,14 +41,6 @@ class Config(BaseConfig):
return super(Config, self).all() return super(Config, self).all()
def tmp_dir():
dir_ = tempfile.mkdtemp(prefix="poetry_")
yield dir_
shutil.rmtree(dir_)
@pytest.fixture @pytest.fixture
def config_source(): def config_source():
source = DictConfigSource() source = DictConfigSource()
......
import sys import sys
import pytest import pytest
from cleo.testers import CommandTester from cleo.testers import CommandTester
from poetry.utils._compat import Path from poetry.utils._compat import Path
from tests.helpers import get_dependency from tests.helpers import get_dependency
from tests.helpers import get_package from tests.helpers import get_package
......
...@@ -102,7 +102,7 @@ def test_set_pypi_token(app, config, config_source, auth_config_source): ...@@ -102,7 +102,7 @@ def test_set_pypi_token(app, config, config_source, auth_config_source):
def test_set_client_cert(app, config_source, auth_config_source, mocker): def test_set_client_cert(app, config_source, auth_config_source, mocker):
init = mocker.spy(ConfigSource, "__init__") mocker.spy(ConfigSource, "__init__")
command = app.find("config") command = app.find("config")
tester = CommandTester(command) tester = CommandTester(command)
...@@ -115,7 +115,7 @@ def test_set_client_cert(app, config_source, auth_config_source, mocker): ...@@ -115,7 +115,7 @@ def test_set_client_cert(app, config_source, auth_config_source, mocker):
def test_set_cert(app, config_source, auth_config_source, mocker): def test_set_cert(app, config_source, auth_config_source, mocker):
init = mocker.spy(ConfigSource, "__init__") mocker.spy(ConfigSource, "__init__")
command = app.find("config") command = app.find("config")
tester = CommandTester(command) tester = CommandTester(command)
......
import sys import sys
from cleo.testers import CommandTester from cleo.testers import CommandTester
from poetry.utils._compat import Path from poetry.utils._compat import Path
from tests.helpers import get_package from tests.helpers import get_package
......
...@@ -538,10 +538,12 @@ def test_show_outdated_local_dependencies(app, poetry, installed, repo): ...@@ -538,10 +538,12 @@ def test_show_outdated_local_dependencies(app, poetry, installed, repo):
tester.execute("--outdated") tester.execute("--outdated")
expected = """\ expected = """\
cachy 0.1.0 0.2.0 cachy 0.1.0 0.2.0
my-package 0.1.1 ../project_with_setup 0.1.2 ../project_with_setup my-package 0.1.1 ../project_with_setup 0.1.2 ../project_with_setup
""" """
assert expected == tester.io.fetch_output() assert expected.rstrip() == "\n".join(
l.rstrip() for l in tester.io.fetch_output().splitlines()
)
@pytest.mark.parametrize("project_directory", ["project_with_git_dev_dependency"]) @pytest.mark.parametrize("project_directory", ["project_with_git_dev_dependency"])
......
import pytest import pytest
from cleo import CommandTester from cleo import CommandTester
from poetry.console.commands import VersionCommand from poetry.console.commands import VersionCommand
......
import os import os
import pytest
import shutil import shutil
try: import pytest
import urllib.parse as urlparse
except ImportError:
import urlparse
from cleo import ApplicationTester from cleo import ApplicationTester
from poetry.console import Application as BaseApplication from poetry.console import Application as BaseApplication
from poetry.factory import Factory from poetry.factory import Factory
from poetry.installation.noop_installer import NoopInstaller from poetry.installation.noop_installer import NoopInstaller
from poetry.poetry import Poetry as BasePoetry
from poetry.packages import Locker as BaseLocker from poetry.packages import Locker as BaseLocker
from poetry.poetry import Poetry as BasePoetry
from poetry.repositories import Pool from poetry.repositories import Pool
from poetry.repositories import Repository as BaseRepository from poetry.repositories import Repository as BaseRepository
from poetry.repositories.exceptions import PackageNotFound
from poetry.utils._compat import PY2 from poetry.utils._compat import PY2
from poetry.utils._compat import WINDOWS from poetry.utils._compat import WINDOWS
from poetry.utils._compat import Path from poetry.utils._compat import Path
from poetry.utils.toml_file import TomlFile from poetry.utils.toml_file import TomlFile
from poetry.repositories.exceptions import PackageNotFound
try:
import urllib.parse as urlparse
except ImportError:
import urlparse
@pytest.fixture() @pytest.fixture()
......
from poetry.packages import Dependency from poetry.packages import Dependency
from poetry.packages import Package from poetry.packages import Package
from poetry.utils._compat import Path from poetry.utils._compat import Path
......
...@@ -13,11 +13,10 @@ from poetry.packages import ProjectPackage ...@@ -13,11 +13,10 @@ from poetry.packages import ProjectPackage
from poetry.repositories import Pool from poetry.repositories import Pool
from poetry.repositories import Repository from poetry.repositories import Repository
from poetry.repositories.installed_repository import InstalledRepository from poetry.repositories.installed_repository import InstalledRepository
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._compat import Path
from poetry.utils.env import NullEnv from poetry.utils.env import NullEnv
from poetry.utils.toml_file import TomlFile
from tests.helpers import get_dependency from tests.helpers import get_dependency
from tests.helpers import get_package from tests.helpers import get_package
from tests.repositories.test_legacy_repository import ( from tests.repositories.test_legacy_repository import (
......
from distutils.core import Extension from distutils.core import Extension
extensions = [Extension("extended.extended", ["extended/extended.c"])] extensions = [Extension("extended.extended", ["extended/extended.c"])]
......
...@@ -3,4 +3,3 @@ name = "localversionlabel" ...@@ -3,4 +3,3 @@ name = "localversionlabel"
description = "Local Version Label" description = "Local Version Label"
version = "0.1-beta.1+gitbranch-buildno-1" version = "0.1-beta.1+gitbranch-buildno-1"
authors = [] authors = []
from distutils.core import Extension from distutils.core import Extension
extensions = [Extension("extended.extended", ["src/extended/extended.c"])] extensions = [Extension("extended.extended", ["src/extended/extended.c"])]
......
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from clikit.io import NullIO
from email.parser import Parser from email.parser import Parser
from clikit.io import NullIO
from poetry.factory import Factory from poetry.factory import Factory
from poetry.masonry.builders.builder import Builder from poetry.masonry.builders.builder import Builder
from poetry.utils._compat import Path from poetry.utils._compat import Path
......
...@@ -3,13 +3,14 @@ from __future__ import unicode_literals ...@@ -3,13 +3,14 @@ from __future__ import unicode_literals
import ast import ast
import os import os
import pytest
import re import re
import shutil import shutil
import sys import sys
import tarfile import tarfile
import zipfile
import tempfile import tempfile
import zipfile
import pytest
from clikit.io import NullIO from clikit.io import NullIO
...@@ -20,6 +21,7 @@ from poetry.utils._compat import Path ...@@ -20,6 +21,7 @@ from poetry.utils._compat import Path
from poetry.utils._compat import decode from poetry.utils._compat import decode
from poetry.utils.env import NullEnv from poetry.utils.env import NullEnv
fixtures_dir = Path(__file__).parent / "fixtures" fixtures_dir = Path(__file__).parent / "fixtures"
......
...@@ -8,6 +8,7 @@ from poetry.masonry.builders import EditableBuilder ...@@ -8,6 +8,7 @@ from poetry.masonry.builders import EditableBuilder
from poetry.utils._compat import Path from poetry.utils._compat import Path
from poetry.utils.env import MockEnv from poetry.utils.env import MockEnv
fixtures_dir = Path(__file__).parent / "fixtures" fixtures_dir = Path(__file__).parent / "fixtures"
......
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import ast import ast
import pytest
import shutil import shutil
import tarfile import tarfile
from email.parser import Parser from email.parser import Parser
import pytest
from clikit.io import NullIO from clikit.io import NullIO
from poetry.factory import Factory from poetry.factory import Factory
...@@ -16,7 +17,6 @@ from poetry.packages.vcs_dependency import VCSDependency ...@@ -16,7 +17,6 @@ from poetry.packages.vcs_dependency import VCSDependency
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.env import NullEnv from poetry.utils.env import NullEnv
from tests.helpers import get_dependency from tests.helpers import get_dependency
......
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import pytest
import shutil import shutil
import zipfile import zipfile
import pytest
from clikit.io import NullIO from clikit.io import NullIO
from poetry.factory import Factory from poetry.factory import Factory
from poetry.masonry.builders import WheelBuilder from poetry.masonry.builders.wheel import WheelBuilder
from poetry.masonry.publishing.uploader import Uploader from poetry.masonry.publishing.uploader import Uploader
from poetry.utils._compat import Path from poetry.utils._compat import Path
from poetry.utils.env import NullEnv from poetry.utils.env import NullEnv
......
...@@ -2,8 +2,8 @@ import pytest ...@@ -2,8 +2,8 @@ import pytest
from poetry.factory import Factory from poetry.factory import Factory
from poetry.io.null_io import NullIO from poetry.io.null_io import NullIO
from poetry.masonry.publishing.uploader import UploadError
from poetry.masonry.publishing.uploader import Uploader from poetry.masonry.publishing.uploader import Uploader
from poetry.masonry.publishing.uploader import UploadError
from poetry.utils._compat import Path from poetry.utils._compat import Path
......
from poetry.packages import DependencyPackage
from poetry.packages import Package
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
from poetry.packages import DependencyPackage
from poetry.packages import Package
def add_to_repo(repository, name, version, deps=None, python=None): def add_to_repo(repository, name, version, deps=None, python=None):
......
import pytest import pytest
from clikit.io import NullIO from clikit.io import NullIO
from poetry.packages.project_package import ProjectPackage from poetry.packages.project_package import ProjectPackage
from poetry.puzzle.provider import Provider
from poetry.repositories import Pool from poetry.repositories import Pool
from poetry.repositories import Repository from poetry.repositories import Repository
from poetry.puzzle.provider import Provider
@pytest.fixture @pytest.fixture
def repo(): def repo():
......
from ...helpers import get_package from ...helpers import get_package
from ..helpers import add_to_repo from ..helpers import add_to_repo
from ..helpers import check_solver_result from ..helpers import check_solver_result
......
...@@ -53,5 +53,5 @@ def test_parse_constraint_multi(input, constraint): ...@@ -53,5 +53,5 @@ def test_parse_constraint_multi(input, constraint):
), ),
], ],
) )
def test_parse_constraint_multi(input, constraint): def test_parse_constraint_union(input, constraint):
assert parse_constraint(input) == constraint assert parse_constraint(input) == constraint
from subprocess import CalledProcessError
import pytest import pytest
from poetry.packages.directory_dependency import DirectoryDependency from poetry.packages.directory_dependency import DirectoryDependency
...@@ -5,8 +7,6 @@ from poetry.utils._compat import Path ...@@ -5,8 +7,6 @@ from poetry.utils._compat import Path
from poetry.utils.env import EnvCommandError from poetry.utils.env import EnvCommandError
from poetry.utils.env import MockEnv as BaseMockEnv from poetry.utils.env import MockEnv as BaseMockEnv
from subprocess import CalledProcessError
class MockEnv(BaseMockEnv): class MockEnv(BaseMockEnv):
def run(self, bin, *args): def run(self, bin, *args):
......
...@@ -3,6 +3,7 @@ import pytest ...@@ -3,6 +3,7 @@ import pytest
from poetry.packages import FileDependency from poetry.packages import FileDependency
from poetry.utils._compat import Path from poetry.utils._compat import Path
DIST_PATH = Path(__file__).parent.parent / "fixtures" / "distributions" DIST_PATH = Path(__file__).parent.parent / "fixtures" / "distributions"
......
import pytest
import tempfile import tempfile
import pytest
import tomlkit import tomlkit
from poetry.packages.locker import Locker from poetry.packages.locker import Locker
......
import pytest
import shutil import shutil
import pytest
from poetry.utils._compat import Path
try: try:
import urllib.parse as urlparse import urllib.parse as urlparse
except ImportError: except ImportError:
import urlparse import urlparse
from poetry.utils._compat import Path
def mock_clone(self, source, dest): def mock_clone(self, source, dest):
# Checking source to determine which folder we need to copy # Checking source to determine which folder we need to copy
......
from subprocess import CalledProcessError
import pytest import pytest
from clikit.io import NullIO from clikit.io import NullIO
...@@ -13,11 +15,8 @@ from poetry.utils._compat import PY35 ...@@ -13,11 +15,8 @@ from poetry.utils._compat import PY35
from poetry.utils._compat import Path from poetry.utils._compat import Path
from poetry.utils.env import EnvCommandError from poetry.utils.env import EnvCommandError
from poetry.utils.env import MockEnv as BaseMockEnv from poetry.utils.env import MockEnv as BaseMockEnv
from tests.helpers import get_dependency from tests.helpers import get_dependency
from subprocess import CalledProcessError
class MockEnv(BaseMockEnv): class MockEnv(BaseMockEnv):
def run(self, bin, *args): def run(self, bin, *args):
......
...@@ -2,16 +2,15 @@ import pytest ...@@ -2,16 +2,15 @@ import pytest
from clikit.io import NullIO from clikit.io import NullIO
from poetry.packages import dependency_from_pep_508
from poetry.packages import ProjectPackage from poetry.packages import ProjectPackage
from poetry.packages import dependency_from_pep_508
from poetry.puzzle import Solver
from poetry.puzzle.exceptions import SolverProblemError
from poetry.repositories.installed_repository import InstalledRepository from poetry.repositories.installed_repository import InstalledRepository
from poetry.repositories.pool import Pool from poetry.repositories.pool import Pool
from poetry.repositories.repository import Repository from poetry.repositories.repository import Repository
from poetry.puzzle import Solver
from poetry.puzzle.exceptions import SolverProblemError
from poetry.utils._compat import Path from poetry.utils._compat import Path
from poetry.version.markers import parse_marker from poetry.version.markers import parse_marker
from tests.helpers import get_dependency from tests.helpers import get_dependency
from tests.helpers import get_package from tests.helpers import get_package
from tests.repositories.test_legacy_repository import ( from tests.repositories.test_legacy_repository import (
......
...@@ -8,4 +8,4 @@ ...@@ -8,4 +8,4 @@
<a href="poetry-0.1.0-py3-none-any.whl#sha256=1d85132efab8ead3c6f69202843da40a03823992091c29f8d65a31af68940163" data-requires-python="&gt;=3.6.0">poetry-0.1.0-py3-none-any.whl</a><br/> <a href="poetry-0.1.0-py3-none-any.whl#sha256=1d85132efab8ead3c6f69202843da40a03823992091c29f8d65a31af68940163" data-requires-python="&gt;=3.6.0">poetry-0.1.0-py3-none-any.whl</a><br/>
</body> </body>
</html> </html>
<!--SERIAL 3907384--> <!--SERIAL 3907384-->
\ No newline at end of file
...@@ -257,4 +257,4 @@ ...@@ -257,4 +257,4 @@
"url": "https://files.pythonhosted.org/packages/71/f0/9d670266b840b8b921dc7106ecddd892f6fb893424883498e1ba3ec3a3a1/ipython-4.1.0rc1.zip" "url": "https://files.pythonhosted.org/packages/71/f0/9d670266b840b8b921dc7106ecddd892f6fb893424883498e1ba3ec3a3a1/ipython-4.1.0rc1.zip"
} }
] ]
} }
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
import pytest
import shutil import shutil
try: import pytest
import urllib.parse as urlparse
except ImportError:
import urlparse
from poetry.packages import Dependency from poetry.packages import Dependency
from poetry.repositories.auth import Auth from poetry.repositories.auth import Auth
...@@ -15,6 +11,12 @@ from poetry.utils._compat import PY35 ...@@ -15,6 +11,12 @@ from poetry.utils._compat import PY35
from poetry.utils._compat import Path from poetry.utils._compat import Path
try:
import urllib.parse as urlparse
except ImportError:
import urlparse
class MockRepository(LegacyRepository): class MockRepository(LegacyRepository):
FIXTURES = Path(__file__).parent / "fixtures" / "legacy" FIXTURES = Path(__file__).parent / "fixtures" / "legacy"
......
...@@ -2,8 +2,8 @@ import pytest ...@@ -2,8 +2,8 @@ import pytest
from poetry.repositories import Pool from poetry.repositories import Pool
from poetry.repositories import Repository from poetry.repositories import Repository
from poetry.repositories.legacy_repository import LegacyRepository
from poetry.repositories.exceptions import PackageNotFound from poetry.repositories.exceptions import PackageNotFound
from poetry.repositories.legacy_repository import LegacyRepository
def test_pool_raises_package_not_found_when_no_package_is_found(): def test_pool_raises_package_not_found_when_no_package_is_found():
......
import json import json
import pytest
import shutil import shutil
import pytest
from poetry.packages import Dependency from poetry.packages import Dependency
from poetry.repositories.pypi_repository import PyPiRepository from poetry.repositories.pypi_repository import PyPiRepository
from poetry.utils._compat import PY35 from poetry.utils._compat import PY35
......
import pytest import pytest
from poetry.semver import parse_constraint
from poetry.semver import Version from poetry.semver import Version
from poetry.semver import VersionRange from poetry.semver import VersionRange
from poetry.semver import VersionUnion from poetry.semver import VersionUnion
from poetry.semver import parse_constraint
@pytest.mark.parametrize( @pytest.mark.parametrize(
......
...@@ -4,7 +4,6 @@ from __future__ import unicode_literals ...@@ -4,7 +4,6 @@ from __future__ import unicode_literals
import pytest import pytest
from poetry.io.null_io import NullIO
from poetry.factory import Factory from poetry.factory import Factory
from poetry.utils._compat import PY2 from poetry.utils._compat import PY2
from poetry.utils._compat import Path from poetry.utils._compat import Path
......
...@@ -89,5 +89,3 @@ trimmed in raw strings. ...@@ -89,5 +89,3 @@ trimmed in raw strings.
points = [ { x = 1, y = 2, z = 3 }, # This value is so special to me points = [ { x = 1, y = 2, z = 3 }, # This value is so special to me
{ x = 7, y = 8, z = 9 }, { x = 7, y = 8, z = 9 },
{ x = 2, y = 4, z = 8 } ] { x = 2, y = 4, z = 8 } ]
import os import os
import pytest
import shutil import shutil
import sys import sys
import pytest
import tomlkit import tomlkit
from clikit.io import NullIO from clikit.io import NullIO
from poetry.semver import Version
from poetry.factory import Factory from poetry.factory import Factory
from poetry.semver import Version
from poetry.utils._compat import Path from poetry.utils._compat import Path
from poetry.utils.env import EnvManager
from poetry.utils.env import EnvCommandError from poetry.utils.env import EnvCommandError
from poetry.utils.env import EnvManager
from poetry.utils.env import NoCompatiblePythonVersionFound from poetry.utils.env import NoCompatiblePythonVersionFound
from poetry.utils.env import VirtualEnv from poetry.utils.env import VirtualEnv
from poetry.utils.toml_file import TomlFile from poetry.utils.toml_file import TomlFile
MINIMAL_SCRIPT = """\ MINIMAL_SCRIPT = """\
print("Minimal Output"), print("Minimal Output"),
...@@ -532,7 +535,7 @@ def test_remove_also_deactivates(tmp_dir, manager, poetry, config, mocker): ...@@ -532,7 +535,7 @@ def test_remove_also_deactivates(tmp_dir, manager, poetry, config, mocker):
def test_env_has_symlinks_on_nix(tmp_dir, tmp_venv): def test_env_has_symlinks_on_nix(tmp_dir, tmp_venv):
venv_available = False venv_available = False
try: try:
from venv import EnvBuilder from venv import EnvBuilder # noqa
venv_available = True venv_available = True
except ImportError: except ImportError:
......
from poetry.utils._compat import Path from poetry.utils._compat import Path
from poetry.utils.helpers import get_client_cert, get_cert, get_http_basic_auth from poetry.utils.helpers import get_cert
from poetry.utils.helpers import get_client_cert
from poetry.utils.helpers import get_http_basic_auth
from poetry.utils.helpers import parse_requires from poetry.utils.helpers import parse_requires
...@@ -27,7 +29,7 @@ virtualenv>=15.2.0.0,<16.0.0.0 ...@@ -27,7 +29,7 @@ virtualenv>=15.2.0.0,<16.0.0.0
pathlib2>=2.3.0.0,<3.0.0.0 pathlib2>=2.3.0.0,<3.0.0.0
[:python_version >= "3.4.0.0" and python_version < "3.6.0.0"] [:python_version >= "3.4.0.0" and python_version < "3.6.0.0"]
zipfile36>=0.1.0.0,<0.2.0.0 zipfile36>=0.1.0.0,<0.2.0.0
""" """
result = parse_requires(requires) result = parse_requires(requires)
expected = [ expected = [
......
from uuid import uuid4 from uuid import uuid4
import pytest import pytest
from keyring import set_keyring, get_keyring
from keyring import get_keyring
from keyring import set_keyring
from keyring.backend import KeyringBackend from keyring.backend import KeyringBackend
from keyring.errors import KeyringError from keyring.errors import KeyringError
from poetry.utils.helpers import ( from poetry.utils.helpers import keyring_repository_password_del
keyring_service_name, from poetry.utils.helpers import keyring_repository_password_get
keyring_repository_password_get, from poetry.utils.helpers import keyring_repository_password_set
keyring_repository_password_set, from poetry.utils.helpers import keyring_service_name
keyring_repository_password_del,
)
class DictKeyring(KeyringBackend): class DictKeyring(KeyringBackend):
......
from poetry.version.helpers import format_python_constraint
from poetry.semver import parse_constraint from poetry.semver import parse_constraint
from poetry.version.helpers import format_python_constraint
def test_format_python_constraint(): def test_format_python_constraint():
......
import os import os
import pytest import pytest
from poetry.version.markers import MarkerUnion from poetry.version.markers import MarkerUnion
......
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