Setup pyproject.toml with Poetry toolchain
I ran `poetry init` using the cross-platform Python packaging,
dependency management, and virtual environment management tool Poetry:
https://python-poetry.org/
The chosen version follows Semantic Versioning: https://semver.org/,
with the Python specific pre-release versioning suffix ‘.dev1’:
https://packaging.python.org/guides/distributing-packages-using-setuptools/#choosing-a-versioning-scheme
Since this is “LISAv3” it seemed appropriate to set our version to
‘3.0.0.dev1’, “the first development release of LISAv3.”
I pinned Python to version 3.8, as we will always use a Poetry provided
Python and not depend on a system’s packaged Python version. This will
avoid many headaches. I added Chi’s existing dependencies from
‘requirements.txt’, and then added my suggested development
dependencies:
- black, the opinionated code formatter
- flake8 (and integrations), the semantic analyzer
- isort, the import sorter
- mypy, the static type checker
- python-language-server (and integrations), the de facto LSP server
- rope, to provide completions and renaming to pyls
While Microsoft is developing their own LSP servers, they do not
integrate with the existing ecosystem of tools, and their latest tool,
Pyright, simply does not support ‘pyproject.toml’. Since pyls is used
far more widely, and supports every editor, we will use this.
Finally, I updated the readme with instructions on how to use this
toolchain, and deleted the outdated bootstrap files.
2020-08-04 11:06:22 +03:00
|
|
|
[tool.poetry]
|
|
|
|
name = "LISA"
|
|
|
|
version = "3.0.0.dev1"
|
|
|
|
description = "Linux Integration Services Automation"
|
2021-02-02 08:28:37 +03:00
|
|
|
authors = ["contributors <https://github.com/microsoft/lisa/graphs/contributors>"]
|
|
|
|
license = "MIT"
|
2022-04-14 02:40:06 +03:00
|
|
|
packages = [
|
|
|
|
{ include = "lisa" },
|
|
|
|
{ include = "microsoft" },
|
|
|
|
]
|
Setup pyproject.toml with Poetry toolchain
I ran `poetry init` using the cross-platform Python packaging,
dependency management, and virtual environment management tool Poetry:
https://python-poetry.org/
The chosen version follows Semantic Versioning: https://semver.org/,
with the Python specific pre-release versioning suffix ‘.dev1’:
https://packaging.python.org/guides/distributing-packages-using-setuptools/#choosing-a-versioning-scheme
Since this is “LISAv3” it seemed appropriate to set our version to
‘3.0.0.dev1’, “the first development release of LISAv3.”
I pinned Python to version 3.8, as we will always use a Poetry provided
Python and not depend on a system’s packaged Python version. This will
avoid many headaches. I added Chi’s existing dependencies from
‘requirements.txt’, and then added my suggested development
dependencies:
- black, the opinionated code formatter
- flake8 (and integrations), the semantic analyzer
- isort, the import sorter
- mypy, the static type checker
- python-language-server (and integrations), the de facto LSP server
- rope, to provide completions and renaming to pyls
While Microsoft is developing their own LSP servers, they do not
integrate with the existing ecosystem of tools, and their latest tool,
Pyright, simply does not support ‘pyproject.toml’. Since pyls is used
far more widely, and supports every editor, we will use this.
Finally, I updated the readme with instructions on how to use this
toolchain, and deleted the outdated bootstrap files.
2020-08-04 11:06:22 +03:00
|
|
|
|
|
|
|
[tool.poetry.dependencies]
|
2022-04-14 02:40:06 +03:00
|
|
|
PyGObject = {version = "^3.38.0", platform = 'linux', optional=true}
|
2021-02-02 08:28:37 +03:00
|
|
|
PyYAML = "^5.4.1"
|
2021-03-26 23:48:41 +03:00
|
|
|
assertpy = "^1.1"
|
2022-04-14 03:15:59 +03:00
|
|
|
azure-identity = {version = "^1.9.0", optional = true}
|
|
|
|
azure-storage-blob = {version = "^12.11.0", optional = true}
|
|
|
|
azure-mgmt-compute = {version = "^26.1.0", optional = true}
|
|
|
|
azure-mgmt-marketplaceordering = {version = "^1.1.0", optional = true}
|
|
|
|
azure-mgmt-network = {version = "^19.3.0", optional = true}
|
|
|
|
azure-mgmt-resource = {version = "^21.0.0", optional = true}
|
2022-07-29 21:45:43 +03:00
|
|
|
azure-mgmt-serialconsole = {version = "^1.0.0", optional = true}
|
2022-04-14 03:15:59 +03:00
|
|
|
azure-mgmt-storage = {version = "^20.0.0", optional = true}
|
|
|
|
azure-storage-file-share = {version = "12.4.0", optional = true}
|
2021-03-26 23:48:41 +03:00
|
|
|
dataclasses-json = "^0.5.2"
|
2020-12-15 09:14:00 +03:00
|
|
|
func-timeout = "^4.3.5"
|
2022-03-30 01:16:13 +03:00
|
|
|
paramiko = "^2.10.1"
|
2021-03-10 13:17:35 +03:00
|
|
|
pluggy = "^0.13.1"
|
2022-04-14 02:40:06 +03:00
|
|
|
pypiwin32 = {version = "^223", platform = "win32", optional=true}
|
2021-03-26 23:48:41 +03:00
|
|
|
pytest-html = "^3.1.1"
|
2022-08-02 21:06:08 +03:00
|
|
|
python = ">=3.8,<4.0"
|
2021-03-25 06:04:53 +03:00
|
|
|
python-dateutil = "^2.8.1"
|
2021-03-26 23:48:41 +03:00
|
|
|
retry = "^0.9.2"
|
|
|
|
spurplus = "^2.3.4"
|
2021-06-16 01:50:03 +03:00
|
|
|
semver = "^2.13.0"
|
2021-08-12 09:22:56 +03:00
|
|
|
types-toml = "^0.1.5"
|
2022-07-21 02:58:55 +03:00
|
|
|
libvirt-python = {version = "^8.5.0", platform = 'linux', optional=true}
|
2022-01-20 01:59:48 +03:00
|
|
|
pycdlib = "^1.12.0"
|
2022-02-11 05:50:09 +03:00
|
|
|
randmac = "^0.1"
|
2022-02-04 23:41:07 +03:00
|
|
|
toml = "^0.10.2"
|
2022-04-14 02:40:06 +03:00
|
|
|
Pillow = {version="^9.0.0", optional=true}
|
2022-07-29 21:45:43 +03:00
|
|
|
websockets = "^10.3"
|
2022-04-14 02:40:06 +03:00
|
|
|
|
2022-05-27 02:52:30 +03:00
|
|
|
# AWS related packages
|
|
|
|
boto3 = {version = "^1.21.37", optional = true}
|
|
|
|
boto3-stubs = {version = "^1.21.37", extras = ["essential"], optional = true}
|
|
|
|
|
2022-04-15 00:19:52 +03:00
|
|
|
# dev dependencies. Optional isn't supported, so put them here.
|
|
|
|
Sphinx = {version="^4.1.0", optional=true}
|
|
|
|
sphinx-argparse = {version="^0.2.5", optional=true}
|
|
|
|
sphinx-rtd-theme = {version="^0.5.2", optional=true}
|
|
|
|
sphinxemoji = {version="^0.1.8", optional=true}
|
|
|
|
sphinx-copybutton = {version="^0.4.0", optional=true}
|
|
|
|
rstcheck = {version="^3.3.1", optional=true}
|
|
|
|
types-Pillow = {version="^8.3.3", optional=true}
|
Setup pyproject.toml with Poetry toolchain
I ran `poetry init` using the cross-platform Python packaging,
dependency management, and virtual environment management tool Poetry:
https://python-poetry.org/
The chosen version follows Semantic Versioning: https://semver.org/,
with the Python specific pre-release versioning suffix ‘.dev1’:
https://packaging.python.org/guides/distributing-packages-using-setuptools/#choosing-a-versioning-scheme
Since this is “LISAv3” it seemed appropriate to set our version to
‘3.0.0.dev1’, “the first development release of LISAv3.”
I pinned Python to version 3.8, as we will always use a Poetry provided
Python and not depend on a system’s packaged Python version. This will
avoid many headaches. I added Chi’s existing dependencies from
‘requirements.txt’, and then added my suggested development
dependencies:
- black, the opinionated code formatter
- flake8 (and integrations), the semantic analyzer
- isort, the import sorter
- mypy, the static type checker
- python-language-server (and integrations), the de facto LSP server
- rope, to provide completions and renaming to pyls
While Microsoft is developing their own LSP servers, they do not
integrate with the existing ecosystem of tools, and their latest tool,
Pyright, simply does not support ‘pyproject.toml’. Since pyls is used
far more widely, and supports every editor, we will use this.
Finally, I updated the readme with instructions on how to use this
toolchain, and deleted the outdated bootstrap files.
2020-08-04 11:06:22 +03:00
|
|
|
|
|
|
|
[tool.poetry.dev-dependencies]
|
2022-04-14 03:15:59 +03:00
|
|
|
black = "^22.3.0"
|
2021-03-26 23:48:41 +03:00
|
|
|
coverage = "^5.3"
|
2022-04-14 03:15:59 +03:00
|
|
|
flake8 = "^4.0.1"
|
|
|
|
flake8-black = "^0.3.2"
|
|
|
|
flake8-bugbear = "^22.3.23"
|
|
|
|
flake8-isort = "^4.1.1"
|
|
|
|
isort = "^5.10.1"
|
|
|
|
mypy = "^0.942"
|
|
|
|
pep8-naming = "^0.12.1"
|
|
|
|
rope = "^1.0.0"
|
2021-07-21 21:36:54 +03:00
|
|
|
types-retry = "^0.1.3"
|
|
|
|
types-paramiko = "^0.1.7"
|
|
|
|
types-requests = "^2.25.0"
|
|
|
|
types-python-dateutil = "^0.1.4"
|
|
|
|
types-PyYAML = "^5.4.3"
|
2022-04-15 00:19:52 +03:00
|
|
|
|
|
|
|
|
|
|
|
[tool.poetry.extras]
|
2022-07-29 21:45:43 +03:00
|
|
|
azure = ["azure-identity", "azure-storage-blob", "azure-mgmt-compute", "azure-mgmt-marketplaceordering", "azure-mgmt-network", "azure-mgmt-resource", "azure-mgmt-serialconsole", "azure-mgmt-storage", "azure-storage-file-share", "PyGObject", "Pillow", "types-Pillow"]
|
2022-04-15 00:19:52 +03:00
|
|
|
libvirt = ["libvirt-python"]
|
2022-05-27 02:52:30 +03:00
|
|
|
aws = ["boto3", "boto3-stubs"]
|
2022-04-15 00:19:52 +03:00
|
|
|
legacy = ["pypiwin32"]
|
|
|
|
doc = ["Sphinx", "sphinx-argparse", "sphinx-rtd-theme", "sphinxemoji", "sphinx-copybutton", "snooty-lextudio", "rstcheck"]
|
Setup pyproject.toml with Poetry toolchain
I ran `poetry init` using the cross-platform Python packaging,
dependency management, and virtual environment management tool Poetry:
https://python-poetry.org/
The chosen version follows Semantic Versioning: https://semver.org/,
with the Python specific pre-release versioning suffix ‘.dev1’:
https://packaging.python.org/guides/distributing-packages-using-setuptools/#choosing-a-versioning-scheme
Since this is “LISAv3” it seemed appropriate to set our version to
‘3.0.0.dev1’, “the first development release of LISAv3.”
I pinned Python to version 3.8, as we will always use a Poetry provided
Python and not depend on a system’s packaged Python version. This will
avoid many headaches. I added Chi’s existing dependencies from
‘requirements.txt’, and then added my suggested development
dependencies:
- black, the opinionated code formatter
- flake8 (and integrations), the semantic analyzer
- isort, the import sorter
- mypy, the static type checker
- python-language-server (and integrations), the de facto LSP server
- rope, to provide completions and renaming to pyls
While Microsoft is developing their own LSP servers, they do not
integrate with the existing ecosystem of tools, and their latest tool,
Pyright, simply does not support ‘pyproject.toml’. Since pyls is used
far more widely, and supports every editor, we will use this.
Finally, I updated the readme with instructions on how to use this
toolchain, and deleted the outdated bootstrap files.
2020-08-04 11:06:22 +03:00
|
|
|
|
2020-08-05 23:59:55 +03:00
|
|
|
[tool.black]
|
|
|
|
line-length = 88
|
|
|
|
target-version = ['py38']
|
|
|
|
|
|
|
|
[tool.isort]
|
|
|
|
multi_line_output = 3
|
|
|
|
include_trailing_comma = true
|
|
|
|
force_grid_wrap = 0
|
|
|
|
use_parentheses = true
|
|
|
|
ensure_newline_before_comments = true
|
|
|
|
line_length = 88
|
|
|
|
|
Setup pyproject.toml with Poetry toolchain
I ran `poetry init` using the cross-platform Python packaging,
dependency management, and virtual environment management tool Poetry:
https://python-poetry.org/
The chosen version follows Semantic Versioning: https://semver.org/,
with the Python specific pre-release versioning suffix ‘.dev1’:
https://packaging.python.org/guides/distributing-packages-using-setuptools/#choosing-a-versioning-scheme
Since this is “LISAv3” it seemed appropriate to set our version to
‘3.0.0.dev1’, “the first development release of LISAv3.”
I pinned Python to version 3.8, as we will always use a Poetry provided
Python and not depend on a system’s packaged Python version. This will
avoid many headaches. I added Chi’s existing dependencies from
‘requirements.txt’, and then added my suggested development
dependencies:
- black, the opinionated code formatter
- flake8 (and integrations), the semantic analyzer
- isort, the import sorter
- mypy, the static type checker
- python-language-server (and integrations), the de facto LSP server
- rope, to provide completions and renaming to pyls
While Microsoft is developing their own LSP servers, they do not
integrate with the existing ecosystem of tools, and their latest tool,
Pyright, simply does not support ‘pyproject.toml’. Since pyls is used
far more widely, and supports every editor, we will use this.
Finally, I updated the readme with instructions on how to use this
toolchain, and deleted the outdated bootstrap files.
2020-08-04 11:06:22 +03:00
|
|
|
[build-system]
|
|
|
|
requires = ["poetry>=0.12"]
|
|
|
|
build-backend = "poetry.masonry.api"
|
2021-09-02 07:06:12 +03:00
|
|
|
|
|
|
|
[tool.mypy]
|
|
|
|
mypy_path = "./typings"
|
2022-04-14 21:08:15 +03:00
|
|
|
strict = true
|
|
|
|
namespace_packages = true
|
|
|
|
implicit_reexport = true
|
|
|
|
show_column_numbers = true
|