Loading CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ - Fixed `install_requires` and `extras` in generated sdist. - Fixed dependency resolution crash with malformed dependencies. - Fixed errors when `license` metadata is not set. - Fixed missing information in lock file. ## [0.7.1] - 2018-04-05 Loading poetry/repositories/pypi_repository.py +7 −2 Original line number Diff line number Diff line Loading @@ -81,7 +81,7 @@ class PyPiRepository(Repository): versions.append(version) for version in versions: packages.append(Package(name, version, version)) packages.append(self.package(name, version)) return packages Loading @@ -103,7 +103,6 @@ class PyPiRepository(Repository): self._fallback and release_info['requires_dist'] is None and not release_info['requires_python'] and not release_info['platform'] ): # No dependencies set (along with other information) # This might be due to actually no dependencies Loading Loading @@ -140,6 +139,12 @@ class PyPiRepository(Repository): # Adding description package.description = release_info.get('summary', '') if release_info['requires_python']: package.python_versions = release_info['requires_python'] if release_info['platform']: package.platform = release_info['platform'] # Adding hashes information package.hashes = release_info['digests'] Loading tests/installation/fixtures/with-pypi-repository.test 0 → 100644 +105 −0 Original line number Diff line number Diff line [[package]] name = "attrs" version = "17.4.0" description = "Classes Without Boilerplate" category = "dev" optional = false python-versions = "*" platform = "*" [[package]] name = "colorama" version = "0.3.9" description = "Cross-platform colored terminal text." category = "dev" optional = false python-versions = "*" platform = "UNKNOWN" [package.requirements] platform = "win32" [[package]] name = "funcsigs" version = "1.0.2" description = "Python function signatures from PEP362 for Python 2.6, 2.7 and 3.2+" category = "dev" optional = false python-versions = "*" platform = "UNKNOWN" [package.requirements] python = "<3.0" [[package]] name = "more-itertools" version = "4.1.0" description = "More routines for operating on iterables, beyond itertools" category = "dev" optional = false python-versions = "*" platform = "*" [package.dependencies] six = "< 2.0.0.0, >= 1.0.0.0" [[package]] name = "pluggy" version = "0.6.0" description = "plugin and hook calling mechanisms for python" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" platform = "unix" [[package]] name = "py" version = "1.5.3" description = "library with cross-python path, ini-parsing, io, code, log facilities" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" platform = "unix" [[package]] name = "pytest" version = "3.5.0" description = "pytest: simple powerful testing with Python" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" platform = "unix" [package.dependencies] py = ">= 1.5.0.0" six = ">= 1.10.0.0" setuptools = "*" attrs = ">= 17.4.0.0" more-itertools = ">= 4.0.0.0" pluggy = "< 0.7.0.0, >= 0.5.0.0" funcsigs = "*" colorama = "*" [[package]] name = "six" version = "1.11.0" description = "Python 2 and 3 compatibility utilities" category = "dev" optional = false python-versions = "*" platform = "*" [metadata] python-versions = "*" platform = "*" content-hash = "123456789" [metadata.hashes] attrs = [ "a17a9573a6f475c99b551c0e0a812707ddda1ec9653bed04c13841404ed6f450", "1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9",] colorama = [ "463f8483208e921368c9f306094eb6f725c6ca42b0f97e313cb5d5512459feda", "48eb22f4f8461b1df5734a074b57042430fb06e1d61bd1e11b078c0fe6d7a1f1",] funcsigs = [ "330cc27ccbf7f1e992e69fef78261dc7c6569012cf397db8d3de0234e6c937ca", "a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50",] more-itertools = [ "11a625025954c20145b37ff6309cd54e39ca94f72f6bb9576d1195db6fa2442e", "0dd8f72eeab0d2c3bd489025bb2f6a1b8342f9b198f6fc37b52d15cfa4531fea", "c9ce7eccdcb901a2c75d326ea134e0886abfbea5f93e91cc95de9507c0816c44",] pluggy = [ "7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff",] py = [ "983f77f3331356039fdd792e9220b7b8ee1aa6bd2b25f567a963ff1de5a64f6a", "29c9fab495d7528e80ba1e343b958684f4ace687327e6f789a94bf3d1915f881",] pytest = [ "6266f87ab64692112e5477eba395cfedda53b1933ccd29478e671e73b420c19c", "fae491d1874f199537fd5872b5e1f0e74a009b979df9d53d1553fd03da1703e1",] six = [ "832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb", "70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9",] tests/installation/test_installer.py +21 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ from poetry.utils.venv import NullVenv from tests.helpers import get_dependency from tests.helpers import get_package from tests.repositories.test_pypi_repository import MockRepository class Installer(BaseInstaller): Loading Loading @@ -508,3 +509,23 @@ def test_run_installs_extras_with_deps_if_requested_locked(installer, locker, re installer = installer.installer assert len(installer.installs) == 4 # A, B, C, D def test_installer_with_pypi_repository(package, locker, installed): pool = Pool() pool.add_repository(MockRepository()) installer = Installer( NullIO(), NullVenv(), package, locker, pool, installed=installed ) package.add_dependency('pytest', '^3.5', category='dev') installer.run() expected = fixture('with-pypi-repository') assert locker.written_data == expected tests/repositories/fixtures/pypi.org/json/attrs.json 0 → 100644 +134 −0 Original line number Diff line number Diff line { "info": { "author": "Hynek Schlawack", "author_email": "hs@ox.cx", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.attrs.org/", "keywords": "class,attribute,boilerplate", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "attrs", "package_url": "https://pypi.org/project/attrs/", "platform": "", "project_url": "https://pypi.org/project/attrs/", "release_url": "https://pypi.org/project/attrs/17.4.0/", "requires_dist": [ "coverage; extra == 'dev'", "hypothesis; extra == 'dev'", "pympler; extra == 'dev'", "pytest; extra == 'dev'", "six; extra == 'dev'", "zope.interface; extra == 'dev'", "sphinx; extra == 'dev'", "zope.interface; extra == 'dev'", "sphinx; extra == 'docs'", "zope.interface; extra == 'docs'", "coverage; extra == 'tests'", "hypothesis; extra == 'tests'", "pympler; extra == 'tests'", "pytest; extra == 'tests'", "six; extra == 'tests'", "zope.interface; extra == 'tests'" ], "requires_python": "", "summary": "Classes Without Boilerplate", "version": "17.4.0" }, "last_serial": 3451237, "releases": { "17.4.0": [ { "comment_text": "", "digests": { "md5": "5835a573b3f0316e1602dac3fd9c1daf", "sha256": "a17a9573a6f475c99b551c0e0a812707ddda1ec9653bed04c13841404ed6f450" }, "downloads": -1, "filename": "attrs-17.4.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "5835a573b3f0316e1602dac3fd9c1daf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "size": 31658, "upload_time": "2017-12-30T08:20:05", "url": "https://files.pythonhosted.org/packages/b5/60/4e178c1e790fd60f1229a9b3cb2f8bc2f4cc6ff2c8838054c142c70b5adc/attrs-17.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7a89063b2e0fd36bd82389c4d82821d", "sha256": "1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9" }, "downloads": -1, "filename": "attrs-17.4.0.tar.gz", "has_sig": true, "md5_digest": "d7a89063b2e0fd36bd82389c4d82821d", "packagetype": "sdist", "python_version": "source", "size": 97071, "upload_time": "2017-12-30T08:20:08", "url": "https://files.pythonhosted.org/packages/8b/0b/a06cfcb69d0cb004fde8bc6f0fd192d96d565d1b8aa2829f0f20adb796e5/attrs-17.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5835a573b3f0316e1602dac3fd9c1daf", "sha256": "a17a9573a6f475c99b551c0e0a812707ddda1ec9653bed04c13841404ed6f450" }, "downloads": -1, "filename": "attrs-17.4.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "5835a573b3f0316e1602dac3fd9c1daf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "size": 31658, "upload_time": "2017-12-30T08:20:05", "url": "https://files.pythonhosted.org/packages/b5/60/4e178c1e790fd60f1229a9b3cb2f8bc2f4cc6ff2c8838054c142c70b5adc/attrs-17.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7a89063b2e0fd36bd82389c4d82821d", "sha256": "1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9" }, "downloads": -1, "filename": "attrs-17.4.0.tar.gz", "has_sig": true, "md5_digest": "d7a89063b2e0fd36bd82389c4d82821d", "packagetype": "sdist", "python_version": "source", "size": 97071, "upload_time": "2017-12-30T08:20:08", "url": "https://files.pythonhosted.org/packages/8b/0b/a06cfcb69d0cb004fde8bc6f0fd192d96d565d1b8aa2829f0f20adb796e5/attrs-17.4.0.tar.gz" } ] } Loading
CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ - Fixed `install_requires` and `extras` in generated sdist. - Fixed dependency resolution crash with malformed dependencies. - Fixed errors when `license` metadata is not set. - Fixed missing information in lock file. ## [0.7.1] - 2018-04-05 Loading
poetry/repositories/pypi_repository.py +7 −2 Original line number Diff line number Diff line Loading @@ -81,7 +81,7 @@ class PyPiRepository(Repository): versions.append(version) for version in versions: packages.append(Package(name, version, version)) packages.append(self.package(name, version)) return packages Loading @@ -103,7 +103,6 @@ class PyPiRepository(Repository): self._fallback and release_info['requires_dist'] is None and not release_info['requires_python'] and not release_info['platform'] ): # No dependencies set (along with other information) # This might be due to actually no dependencies Loading Loading @@ -140,6 +139,12 @@ class PyPiRepository(Repository): # Adding description package.description = release_info.get('summary', '') if release_info['requires_python']: package.python_versions = release_info['requires_python'] if release_info['platform']: package.platform = release_info['platform'] # Adding hashes information package.hashes = release_info['digests'] Loading
tests/installation/fixtures/with-pypi-repository.test 0 → 100644 +105 −0 Original line number Diff line number Diff line [[package]] name = "attrs" version = "17.4.0" description = "Classes Without Boilerplate" category = "dev" optional = false python-versions = "*" platform = "*" [[package]] name = "colorama" version = "0.3.9" description = "Cross-platform colored terminal text." category = "dev" optional = false python-versions = "*" platform = "UNKNOWN" [package.requirements] platform = "win32" [[package]] name = "funcsigs" version = "1.0.2" description = "Python function signatures from PEP362 for Python 2.6, 2.7 and 3.2+" category = "dev" optional = false python-versions = "*" platform = "UNKNOWN" [package.requirements] python = "<3.0" [[package]] name = "more-itertools" version = "4.1.0" description = "More routines for operating on iterables, beyond itertools" category = "dev" optional = false python-versions = "*" platform = "*" [package.dependencies] six = "< 2.0.0.0, >= 1.0.0.0" [[package]] name = "pluggy" version = "0.6.0" description = "plugin and hook calling mechanisms for python" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" platform = "unix" [[package]] name = "py" version = "1.5.3" description = "library with cross-python path, ini-parsing, io, code, log facilities" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" platform = "unix" [[package]] name = "pytest" version = "3.5.0" description = "pytest: simple powerful testing with Python" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" platform = "unix" [package.dependencies] py = ">= 1.5.0.0" six = ">= 1.10.0.0" setuptools = "*" attrs = ">= 17.4.0.0" more-itertools = ">= 4.0.0.0" pluggy = "< 0.7.0.0, >= 0.5.0.0" funcsigs = "*" colorama = "*" [[package]] name = "six" version = "1.11.0" description = "Python 2 and 3 compatibility utilities" category = "dev" optional = false python-versions = "*" platform = "*" [metadata] python-versions = "*" platform = "*" content-hash = "123456789" [metadata.hashes] attrs = [ "a17a9573a6f475c99b551c0e0a812707ddda1ec9653bed04c13841404ed6f450", "1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9",] colorama = [ "463f8483208e921368c9f306094eb6f725c6ca42b0f97e313cb5d5512459feda", "48eb22f4f8461b1df5734a074b57042430fb06e1d61bd1e11b078c0fe6d7a1f1",] funcsigs = [ "330cc27ccbf7f1e992e69fef78261dc7c6569012cf397db8d3de0234e6c937ca", "a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50",] more-itertools = [ "11a625025954c20145b37ff6309cd54e39ca94f72f6bb9576d1195db6fa2442e", "0dd8f72eeab0d2c3bd489025bb2f6a1b8342f9b198f6fc37b52d15cfa4531fea", "c9ce7eccdcb901a2c75d326ea134e0886abfbea5f93e91cc95de9507c0816c44",] pluggy = [ "7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff",] py = [ "983f77f3331356039fdd792e9220b7b8ee1aa6bd2b25f567a963ff1de5a64f6a", "29c9fab495d7528e80ba1e343b958684f4ace687327e6f789a94bf3d1915f881",] pytest = [ "6266f87ab64692112e5477eba395cfedda53b1933ccd29478e671e73b420c19c", "fae491d1874f199537fd5872b5e1f0e74a009b979df9d53d1553fd03da1703e1",] six = [ "832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb", "70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9",]
tests/installation/test_installer.py +21 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ from poetry.utils.venv import NullVenv from tests.helpers import get_dependency from tests.helpers import get_package from tests.repositories.test_pypi_repository import MockRepository class Installer(BaseInstaller): Loading Loading @@ -508,3 +509,23 @@ def test_run_installs_extras_with_deps_if_requested_locked(installer, locker, re installer = installer.installer assert len(installer.installs) == 4 # A, B, C, D def test_installer_with_pypi_repository(package, locker, installed): pool = Pool() pool.add_repository(MockRepository()) installer = Installer( NullIO(), NullVenv(), package, locker, pool, installed=installed ) package.add_dependency('pytest', '^3.5', category='dev') installer.run() expected = fixture('with-pypi-repository') assert locker.written_data == expected
tests/repositories/fixtures/pypi.org/json/attrs.json 0 → 100644 +134 −0 Original line number Diff line number Diff line { "info": { "author": "Hynek Schlawack", "author_email": "hs@ox.cx", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.attrs.org/", "keywords": "class,attribute,boilerplate", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "attrs", "package_url": "https://pypi.org/project/attrs/", "platform": "", "project_url": "https://pypi.org/project/attrs/", "release_url": "https://pypi.org/project/attrs/17.4.0/", "requires_dist": [ "coverage; extra == 'dev'", "hypothesis; extra == 'dev'", "pympler; extra == 'dev'", "pytest; extra == 'dev'", "six; extra == 'dev'", "zope.interface; extra == 'dev'", "sphinx; extra == 'dev'", "zope.interface; extra == 'dev'", "sphinx; extra == 'docs'", "zope.interface; extra == 'docs'", "coverage; extra == 'tests'", "hypothesis; extra == 'tests'", "pympler; extra == 'tests'", "pytest; extra == 'tests'", "six; extra == 'tests'", "zope.interface; extra == 'tests'" ], "requires_python": "", "summary": "Classes Without Boilerplate", "version": "17.4.0" }, "last_serial": 3451237, "releases": { "17.4.0": [ { "comment_text": "", "digests": { "md5": "5835a573b3f0316e1602dac3fd9c1daf", "sha256": "a17a9573a6f475c99b551c0e0a812707ddda1ec9653bed04c13841404ed6f450" }, "downloads": -1, "filename": "attrs-17.4.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "5835a573b3f0316e1602dac3fd9c1daf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "size": 31658, "upload_time": "2017-12-30T08:20:05", "url": "https://files.pythonhosted.org/packages/b5/60/4e178c1e790fd60f1229a9b3cb2f8bc2f4cc6ff2c8838054c142c70b5adc/attrs-17.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7a89063b2e0fd36bd82389c4d82821d", "sha256": "1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9" }, "downloads": -1, "filename": "attrs-17.4.0.tar.gz", "has_sig": true, "md5_digest": "d7a89063b2e0fd36bd82389c4d82821d", "packagetype": "sdist", "python_version": "source", "size": 97071, "upload_time": "2017-12-30T08:20:08", "url": "https://files.pythonhosted.org/packages/8b/0b/a06cfcb69d0cb004fde8bc6f0fd192d96d565d1b8aa2829f0f20adb796e5/attrs-17.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5835a573b3f0316e1602dac3fd9c1daf", "sha256": "a17a9573a6f475c99b551c0e0a812707ddda1ec9653bed04c13841404ed6f450" }, "downloads": -1, "filename": "attrs-17.4.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "5835a573b3f0316e1602dac3fd9c1daf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "size": 31658, "upload_time": "2017-12-30T08:20:05", "url": "https://files.pythonhosted.org/packages/b5/60/4e178c1e790fd60f1229a9b3cb2f8bc2f4cc6ff2c8838054c142c70b5adc/attrs-17.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7a89063b2e0fd36bd82389c4d82821d", "sha256": "1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9" }, "downloads": -1, "filename": "attrs-17.4.0.tar.gz", "has_sig": true, "md5_digest": "d7a89063b2e0fd36bd82389c4d82821d", "packagetype": "sdist", "python_version": "source", "size": 97071, "upload_time": "2017-12-30T08:20:08", "url": "https://files.pythonhosted.org/packages/8b/0b/a06cfcb69d0cb004fde8bc6f0fd192d96d565d1b8aa2829f0f20adb796e5/attrs-17.4.0.tar.gz" } ] }