Skip to content

Commit

Permalink
Allow the develop property for git dependencies
Browse files Browse the repository at this point in the history
Co-authored-by: Fantix King <fantix.king@gmail.com>
  • Loading branch information
2 people authored and abn committed Apr 14, 2020
1 parent d3ee954 commit fc4ae2d
Show file tree
Hide file tree
Showing 17 changed files with 371 additions and 0 deletions.
4 changes: 4 additions & 0 deletions poetry/core/json/schemas/poetry-schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,10 @@
"items": {
"type": "string"
}
},
"develop": {
"type": "boolean",
"description": "Whether to install the dependency in development mode."
}
}
},
Expand Down
1 change: 1 addition & 0 deletions poetry/core/packages/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,7 @@ def add_dependency(
rev=constraint.get("rev", None),
category=category,
optional=optional,
develop=constraint.get("develop", True),
)
elif "file" in constraint:
file_path = Path(constraint["file"])
Expand Down
6 changes: 6 additions & 0 deletions poetry/core/packages/vcs_dependency.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ def __init__(
rev=None,
category="main",
optional=False,
develop=False,
):
self._vcs = vcs
self._source = source
Expand All @@ -29,6 +30,7 @@ def __init__(
self._branch = branch
self._tag = tag
self._rev = rev
self._develop = develop

super(VCSDependency, self).__init__(
name, "*", category=category, optional=optional, allows_prereleases=True
Expand All @@ -54,6 +56,10 @@ def tag(self):
def rev(self):
return self._rev

@property
def develop(self): # type: () -> bool
return self._develop

@property
def reference(self): # type: () -> str
return self._branch or self._tag or self._rev
Expand Down
45 changes: 45 additions & 0 deletions tests/fixtures/complete.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
[tool.poetry]
name = "poetry"
version = "0.5.0"
description = "Python dependency management and packaging made easy."
authors = [
"Sébastien Eustace <sebastien@eustace.io>"
]
license = "MIT"

readme = "README.rst"

homepage = "https://python-poetry.org/"
repository = "https://github.com/python-poetry/poetry"
documentation = "https://python-poetry.org/docs"

keywords = ["packaging", "dependency", "poetry"]

# Requirements
[tool.poetry.dependencies]
python = "~2.7 || ^3.2" # Compatible python versions must be declared here
toml = "^0.9"
# Dependencies with extras
requests = { version = "^2.13", extras = [ "security" ] }
# Python specific dependencies with prereleases allowed
pathlib2 = { version = "^2.2", python = "~2.7", allows-prereleases = true }
# Git dependencies
cleo = { git = "https://github.com/sdispater/cleo.git", branch = "master" }

# Optional dependencies (extras)
pendulum = { version = "^1.4", optional = true }

[tool.poetry.extras]
time = [ "pendulum" ]

[tool.poetry.dev-dependencies]
pytest = "^3.0"
pytest-cov = "^2.4"

[tool.poetry.scripts]
my-script = 'my_package:main'


[[tool.poetry.source]]
name = "foo"
url = "https://bar.com"
Binary file not shown.
Binary file added tests/fixtures/distributions/demo-0.1.0.tar.gz
Binary file not shown.
11 changes: 11 additions & 0 deletions tests/fixtures/invalid_pyproject/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[tool.poetry]
name = "invalid"
version = "1.0.0"
authors = [
"Foo <foo@bar.com>"
]
license = "INVALID"

[tool.poetry.dependencies]
python = "*"
pendulum = {"version" = "^2.0.5", allows-prereleases = true}
Empty file.
19 changes: 19 additions & 0 deletions tests/fixtures/project_with_setup/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-

from setuptools import setup


kwargs = dict(
name="my-package",
license="MIT",
version="0.1.2",
description="Demo project.",
author="Sébastien Eustace",
author_email="sebastien@eustace.io",
url="https://github.com/demo/demo",
packages=["my_package"],
install_requires=["pendulum>=1.4.4", "cachy[msgpack]>=0.2.0"],
)


setup(**kwargs)
2 changes: 2 additions & 0 deletions tests/fixtures/sample_project/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
My Package
==========
59 changes: 59 additions & 0 deletions tests/fixtures/sample_project/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
[tool.poetry]
name = "my-package"
version = "1.2.3"
description = "Some description."
authors = [
"Sébastien Eustace <sebastien@eustace.io>"
]
license = "MIT"

readme = "README.rst"

homepage = "https://python-poetry.org"
repository = "https://github.com/python-poetry/poetry"
documentation = "https://python-poetry.org/docs"

keywords = ["packaging", "dependency", "poetry"]

classifiers = [
"Topic :: Software Development :: Build Tools",
"Topic :: Software Development :: Libraries :: Python Modules"
]

# Requirements
[tool.poetry.dependencies]
python = "~2.7 || ^3.6"
cleo = "^0.6"
pendulum = { git = "https://github.com/sdispater/pendulum.git", branch = "2.0" }
tomlkit = { git = "https://github.com/sdispater/tomlkit.git", rev = "3bff550", develop = false }
requests = { version = "^2.18", optional = true, extras=[ "security" ] }
pathlib2 = { version = "^2.2", python = "~2.7" }

orator = { version = "^0.9", optional = true }

# File dependency
demo = { path = "../distributions/demo-0.1.0-py2.py3-none-any.whl" }

# Dir dependency with setup.py
my-package = { path = "../project_with_setup/" }

# Dir dependency with pyproject.toml
simple-project = { path = "../simple_project/" }

# Dependency with markers
functools32 = { version = "^3.2.3", markers = "python_version ~= '2.7' and sys_platform == 'win32' or python_version in '3.4 3.5'" }


[tool.poetry.extras]
db = [ "orator" ]

[tool.poetry.dev-dependencies]
pytest = "~3.4"


[tool.poetry.scripts]
my-script = "my_package:main"


[tool.poetry.plugins."blogtool.parsers"]
".rst" = "some_module::SomeClass"
2 changes: 2 additions & 0 deletions tests/fixtures/simple_project/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
My Package
==========
Binary file not shown.
Binary file not shown.
25 changes: 25 additions & 0 deletions tests/fixtures/simple_project/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
[tool.poetry]
name = "simple-project"
version = "1.2.3"
description = "Some description."
authors = [
"Sébastien Eustace <sebastien@eustace.io>"
]
license = "MIT"

readme = "README.rst"

homepage = "https://python-poetry.org"
repository = "https://github.com/python-poetry/poetry"
documentation = "https://python-poetry.org/docs"

keywords = ["packaging", "dependency", "poetry"]

classifiers = [
"Topic :: Software Development :: Build Tools",
"Topic :: Software Development :: Libraries :: Python Modules"
]

# Requirements
[tool.poetry.dependencies]
python = "~2.7 || ^3.4"
Empty file.
Loading

0 comments on commit fc4ae2d

Please sign in to comment.