Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update pyproject.json with custom version #45

Merged
merged 1 commit into from
Sep 30, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Replace pyproject.json with custom version supporting more of poetry'…
…s validations
zevisert committed Sep 29, 2020
commit 288a33fe36935aee4bcb525e172ac864765d5db2
710 changes: 464 additions & 246 deletions taplo-ide/schemas/pyproject.json
Original file line number Diff line number Diff line change
@@ -1,289 +1,355 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Poetry": {
"title": "Poetry",
"description": "Configuration for [Poetry](https://python-poetry.org/).\n",
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/"
"poetry-author-pattern": {
"description": "Pattern that matches `Name <email>` like 'King Arthur' or 'Miss Islington &lt;miss-islington@python.org&gt;'.",
"type": "string",
"pattern": "^(?:\\S+?\\s)+?(?:<(?:[a-z\\d!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z\\d!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z\\d](?:[a-z\\d-]*[a-z\\d])?\\.)+[a-z\\d](?:[a-z\\d-]*[a-z\\d])?|\\[(?:(?:25[0-5]|2[0-4][\\d]|[01]?[\\d][\\d]?)\\.){3}(?:25[0-5]|2[0-4][\\d]|[01]?[\\d][\\d]?|[a-z\\d-]*[a-z\\d]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])>)?$"
},
"poetry-authors": {
"type": "array",
"description": "List of authors that contributed to the package. This is typically the main maintainers, not the full list.",
"items": {
"$ref": "#/definitions/poetry-author-pattern"
}
},
"poetry-maintainers": {
"type": "array",
"description": "List of maintainers, other than the original author(s), that upkeep the package.",
"items": {
"$ref": "#/definitions/poetry-author-pattern"
}
},
"poetry-dependencies": {
"type": "object",
"patternProperties": {
"^[a-zA-Z-_.0-9]+$": {
"oneOf": [
{
"$ref": "#/definitions/poetry-dependency"
},
{
"$ref": "#/definitions/poetry-long-dependency"
},
{
"$ref": "#/definitions/poetry-git-dependency"
},
{
"$ref": "#/definitions/poetry-file-dependency"
},
{
"$ref": "#/definitions/poetry-path-dependency"
},
{
"$ref": "#/definitions/poetry-url-dependency"
},
{
"$ref": "#/definitions/poetry-multiple-constraints-dependency"
}
]
}
},
}
},
"poetry-pep440-version": {
"type": "string",
"description": "A version constraint. Validates against the PEP 440's version pattern.",
"pattern": "(?:\\^|~|>|>=|<|<=|==|\\*)v?(?:(?:([0-9]+)!)?([0-9]+(?:\\.[0-9]+)*)([-_\\.]?((rc|alpha|beta|pre|preview|a|b|c))[-_\\.]?([0-9]+)?)?((?:-([0-9]+))|(?:[-_\\.]?(post|rev|r)[-_\\.]?([0-9]+)?))?([-_\\.]?(dev)[-_\\.]?([0-9]+)?)?)(?:\\+([a-z0-9]+(?:[-_\\.][a-z0-9]+)*))?"
},
"poetry-dependency": {
"$ref": "#/definitions/poetry-pep440-version"
},
"poetry-long-dependency": {
"type": "object",
"required": ["name", "version", "description", "authors"],
"required": ["version"],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "The name of the package.\n",
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#name"
}
}
"version": {
"$ref": "#/definitions/poetry-pep440-version"
},
"description": {
"python": {
"type": "string",
"description": "A short description of the package.\n",
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#description"
}
}
"description": "The python versions for which the dependency should be installed."
},
"version": {
"platform": {
"type": "string",
"description": "The version of the package.\n\nThis should follow [semantic versioning](https://semver.org). However it will not be enforced and you remain free to follow another specification.\n",
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#version"
}
}
"description": "The platform(s) for which the dependency should be installed."
},
"license": {
"markers": {
"type": "string",
"description": "The license of the package.\n\nThe recommended notation for the most common licenses is (alphabetical):\n- Apache-2.0\n- BSD-2-Clause\n- BSD-3-Clause\n- BSD-4-Clause\n- GPL-2.0-only\n- GPL-2.0-or-later\n- GPL-3.0-only\n- GPL-3.0-or-later\n- LGPL-2.1-only\n- LGPL-2.1-or-later\n- LGPL-3.0-only\n- LGPL-3.0-or-later\n- MIT\n\nOptional, but it is highly recommended to supply this.\n\nIf your project is proprietary and does not use a specific licence, you can set this value as Proprietary.\n",
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#license"
}
}
"description": "The PEP 508 compliant environment markers for which the dependency should be installed."
},
"authors": {
"type": "array",
"description": "The authors of the package.\n\nThis is a list of authors and should contain at least one author. Authors must be in the form `name <email>`.\n",
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#authors"
}
},
"items": {
"type": "string",
"pattern": "^.*\\s+<[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,6}>$"
}
"allow-prereleases": {
"type": "boolean",
"description": "Whether the dependency allows prereleases or not."
},
"allows-prereleases": {
"type": "boolean",
"description": "Whether the dependency allows prereleases or not."
},
"maintainers": {
"optional": {
"type": "boolean",
"description": "Whether the dependency is optional or not."
},
"extras": {
"type": "array",
"description": "The maintainers of the package. \n\nThis is a list of maintainers and should be distinct from authors. Maintainers may contain an email and be in the form `name <email>`.\n",
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#maintainers"
}
},
"description": "The required extras for this dependency.",
"items": {
"type": "string",
"pattern": "^.*\\s+<[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,6}>$"
"type": "string"
}
},
"readme": {
"source": {
"type": "string",
"description": "The readme file of the package.\nThe file could be either `README.rst` or `README.md`.\n",
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#readme"
}
}
"description": "The exclusive source used to search for this dependency."
}
}
},
"poetry-git-dependency": {
"type": "object",
"required": ["git"],
"additionalProperties": false,
"properties": {
"git": {
"type": "string",
"description": "The url of the git repository.",
"format": "uri"
},
"homepage": {
"branch": {
"type": "string",
"description": "An URL to the website of the project.\n",
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#homepage"
}
}
"description": "The branch to checkout."
},
"repository": {
"tag": {
"type": "string",
"description": "An URL to the repository of the project.\n",
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#repository"
}
}
"description": "The tag to checkout."
},
"documentation": {
"rev": {
"type": "string",
"description": "An URL to the documentation of the project.\n",
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#documentation"
}
}
"description": "The revision to checkout."
},
"python": {
"type": "string",
"description": "The python versions for which the dependency should be installed."
},
"platform": {
"type": "string",
"description": "The platform(s) for which the dependency should be installed."
},
"markers": {
"type": "string",
"description": "The PEP 508 compliant environment markers for which the dependency should be installed."
},
"allow-prereleases": {
"type": "boolean",
"description": "Whether the dependency allows prereleases or not."
},
"allows-prereleases": {
"type": "boolean",
"description": "Whether the dependency allows prereleases or not."
},
"keywords": {
"optional": {
"type": "boolean",
"description": "Whether the dependency is optional or not."
},
"extras": {
"type": "array",
"description": "A list of keywords (max: 5) that the package is related to.\n",
"description": "The required extras for this dependency.",
"items": {
"type": "string"
},
"maxItems": 5,
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#keywords"
}
}
}
}
},
"poetry-file-dependency": {
"type": "object",
"required": ["file"],
"additionalProperties": false,
"properties": {
"file": {
"type": "string",
"description": "The path to the file."
},
"python": {
"type": "string",
"description": "The python versions for which the dependency should be installed."
},
"platform": {
"type": "string",
"description": "The platform(s) for which the dependency should be installed."
},
"classifiers": {
"markers": {
"type": "string",
"description": "The PEP 508 compliant environment markers for which the dependency should be installed."
},
"optional": {
"type": "boolean",
"description": "Whether the dependency is optional or not."
},
"extras": {
"type": "array",
"description": "A list of PyPI [trove classifiers](https://pypi.org/classifiers/) that describe the project. \n\n```toml\n[tool.poetry]\n# ...\nclassifiers = [\n \"Topic :: Software Development :: Build Tools\",\n \"Topic :: Software Development :: Libraries :: Python Modules\"\n]\n\nNote that Python classifiers are still automatically added for you and are determined by your `python` requirement.\n\nThe `license` property will also set the License classifier automatically.\n```\n",
"description": "The required extras for this dependency.",
"items": {
"type": "string"
},
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#classifiers"
}
}
}
}
},
"poetry-path-dependency": {
"type": "object",
"required": ["path"],
"additionalProperties": false,
"properties": {
"path": {
"type": "string",
"description": "The path to the dependency."
},
"packages": {
"type": "array",
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#packages"
}
},
"description": "A list of packages and modules to include in the final distribution.\n\nIf your project structure differs from the standard one supported by poetry, you can specify the packages you want to include in the final distribution.\n\n```toml\n[tool.poetry]\n# ...\npackages = [\n { include = \"my_package\" },\n { include = \"extra_package/**/*.py\" },\n]\n\nIf your package is stored inside a \"source\" directory, you must specify it:\n\n```toml\n[tool.poetry]\n# ...\npackages = [\n { include = \"my_package\", from = \"lib\" },\n]\n```\n\nIf you want to restrict a package to a specific build format you can specify it by using `format`:\n\n```toml\n[tool.poetry]\n# ...\npackages = [\n { include = \"my_package\" },\n { include = \"my_other_package\", format = \"sdist\" },\n]\n```\n\nUsing `packages` disables the package auto-detection feature meaning you have to explicitly specify the \"default\" package.\n\nPoetry is clever enough to detect Python subpackages.\n\nThus, you only have to specify the directory where your root package resides.\n```\n",
"items": {
"$ref": "#/definitions/Package"
}
"python": {
"type": "string",
"description": "The python versions for which the dependency should be installed."
},
"platform": {
"type": "string",
"description": "The platform(s) for which the dependency should be installed."
},
"include": {
"markers": {
"type": "string",
"description": "The PEP 508 compliant environment markers for which the dependency should be installed."
},
"optional": {
"type": "boolean",
"description": "Whether the dependency is optional or not."
},
"extras": {
"type": "array",
"description": "A list of patterns that will be included in the final package.\n\nYou can explicitly specify to Poetry that a set of globs should be ignored or included for the purposes of packaging.\n",
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#include-and-exclude"
}
},
"description": "The required extras for this dependency.",
"items": {
"type": "string"
}
},
"exclude": {
"develop": {
"type": "boolean",
"description": "Whether to install the dependency in development mode."
}
}
},
"poetry-url-dependency": {
"type": "object",
"required": ["url"],
"additionalProperties": false,
"properties": {
"url": {
"type": "string",
"description": "The url to the file."
},
"python": {
"type": "string",
"description": "The python versions for which the dependency should be installed."
},
"platform": {
"type": "string",
"description": "The platform(s) for which the dependency should be installed."
},
"markers": {
"type": "string",
"description": "The PEP 508 compliant environment markers for which the dependency should be installed."
},
"optional": {
"type": "boolean",
"description": "Whether the dependency is optional or not."
},
"extras": {
"type": "array",
"description": "A list of patterns that will excluded from the final package.\n\nThe globs specified in the exclude field identify a set of files that are not included when a package is built.\n\nIf a VCS is being used for a package, the exclude field will be seeded with the VCS’ ignore settings (`.gitignore` for git for example).\n",
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#include-and-exclude"
}
},
"description": "The required extras for this dependency.",
"items": {
"type": "string"
}
},
"dependencies": {
"type": "object",
"description": "The dependencies of the package.\nPoetry is configured to look for dependencies on PyPi by default. Only the name and a version string are required in this case.",
"required": ["python"],
"properties": {
"python": {
"type": "string",
"default": "^3",
"pattern": "^((((>=|>|<|=|\\^|~)?\\s*[0-9]+(.[0-9]+)?(.[0-9]+)?|([0-9]+|\\*)(.([0-9]+|\\*))?(.([0-9]+|\\*))?)+)(,\\s*(((>=|>|<|=|\\^|~)?\\s*[0-9]+(.[0-9]+)?(.[0-9]+)?|([0-9]+|\\*)(.([0-9]+|\\*))?(.([0-9]+|\\*))?)))*|(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)$"
}
}
}
},
"poetry-multiple-constraints-dependency": {
"type": "array",
"minItems": 1,
"items": {
"oneOf": [
{
"$ref": "#/definitions/poetry-dependency"
},
"additionalProperties": {
"type": "string",
"pattern": "^((((>=|>|<|=|\\^|~)?\\s*[0-9]+(.[0-9]+)?(.[0-9]+)?|([0-9]+|\\*)(.([0-9]+|\\*))?(.([0-9]+|\\*))?)+)(,\\s*(((>=|>|<|=|\\^|~)?\\s*[0-9]+(.[0-9]+)?(.[0-9]+)?|([0-9]+|\\*)(.([0-9]+|\\*))?(.([0-9]+|\\*))?)))*|(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)$"
{
"$ref": "#/definitions/poetry-long-dependency"
},
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#dependencies-and-dev-dependencies"
}
}
},
"dev-dependencies": {
"type": "object",
"description": "The dev-dependencies of the package.\nPoetry is configured to look for dependencies on PyPi by default. Only the name and a version string are required in this case.",
"additionalProperties": {
"type": "string"
{
"$ref": "#/definitions/poetry-git-dependency"
},
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#dependencies-and-dev-dependencies"
}
{
"$ref": "#/definitions/poetry-file-dependency"
},
{
"$ref": "#/definitions/poetry-path-dependency"
},
{
"$ref": "#/definitions/poetry-url-dependency"
}
]
}
},
"poetry-scripts": {
"type": "object",
"patternProperties": {
"^[a-zA-Z-_.0-9]+$": {
"oneOf": [
{
"$ref": "#/definitions/poetry-script"
},
{
"$ref": "#/definitions/poetry-extra-script"
}
]
}
}
},
"poetry-script": {
"type": "string",
"description": "A simple script pointing to a callable object."
},
"poetry-extra-script": {
"type": "object",
"description": "A script that should be installed only if extras are activated.",
"additionalProperties": false,
"properties": {
"callable": {
"$ref": "#/definitions/poetry-script"
},
"source": {
"extras": {
"type": "array",
"description": "Additional sources of dependencies.\n",
"description": "The required extras for this script.",
"items": {
"type": "object",
"description": "A dependency source.",
"required": ["name", "url"],
"properties": {
"name": {
"type": "string",
"description": "The name of the source."
},
"url": {
"type": "string",
"description": "The source URL."
}
}
},
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#dependencies-and-dev-dependencies"
}
}
},
"scripts": {
"type": "object",
"description": "Scripts or executable that will be installed when installing the package.\n```toml [tool.poetry.scripts] poetry = 'poetry.console:run' ```\nHere, we will have the poetry script installed which will execute `console.run` in the `poetry` package.",
"additionalProperties": {
"type": "string"
},
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#scripts"
}
}
}
}
},
"poetry-repository": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "The name of the repository"
},
"extras": {
"type": "object",
"description": "Poetry supports extras to allow expression of:\n- optional dependencies, which enhance a package, but are not required; and\n- clusters of optional dependencies.\n\n```toml \n[tool.poetry]\nname = \"awesome\"\n\n[tool.poetry.dependencies]\n# These packages are mandatory and form the core of this package’s distribution.\nmandatory = \"^1.0\"\n\n# A list of all of the optional dependencies, some of which are included in the\n# below `extras`. They can be opted into by apps.\npsycopg2 = { version = \"^2.7\", optional = true }\nmysqlclient = { version = \"^1.3\", optional = true }\n\n[tool.poetry.extras]\nmysql = [\"mysqlclient\"]\npgsql = [\"psycopg2\"]\n```\n\nWhen installing packages, you can specify extras by using the `-E|--extras` option:\n```\npoetry install --extras \"mysql pgsql\"\npoetry install -E mysql -E pgsql\n```\n",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#extras"
}
}
"url": {
"type": "string",
"description": "The url of the repository",
"format": "uri"
},
"plugins": {
"type": "object",
"description": "Poetry supports arbitrary plugins which work similarly to setuptools entry points. To match the example in the setuptools documentation, you would use the following:\n```toml\n[tool.poetry.plugins] # Optional super table\n\n[tool.poetry.plugins.\"blogtool.parsers\"]\n\".rst\" = \"some_module:SomeClass\" \n```\n",
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#plugins"
}
},
"additionalProperties": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
"default": {
"type": "boolean",
"description": "Make this repository the default (disable PyPI)"
},
"urls": {
"type": "object",
"description": "In addition to the basic urls (homepage, repository and documentation), you can specify any custom url in the urls section.\n\n```toml\n[tool.poetry.urls]\n\"Bug Tracker\" = \"https://github.com/python-poetry/poetry/issues\"\n```\n\nIf you publish you package on PyPI, they will appear in the `Project Links` section.\n",
"additionalProperties": {
"type": "string"
},
"evenBetterToml": {
"links": {
"key": "https://python-poetry.org/docs/pyproject/#urls"
}
}
"secondary": {
"type": "boolean",
"description": "Declare this repository as secondary, i.e. it will only be looked up last for packages."
}
}
},

"BuildSystem": {
"title": "Build System",
"type": "object",
@@ -317,26 +383,6 @@
}
}
}
},
"Package": {
"title": "Package",
"type": "object",
"description": "A package to include with Poetry.\n",
"required": ["include"],
"properties": {
"include": {
"description": "A package name or glob pattern to the package.\n",
"type": "string"
},
"from": {
"description": "The directory of the package.\n",
"type": "string"
},
"format": {
"description": "Build format for the package.\n",
"type": "string"
}
}
}
},
"type": "object",
@@ -355,7 +401,179 @@
},
"properties": {
"poetry": {
"$ref": "#/definitions/Poetry"
"name": "Package",
"type": "object",
"additionalProperties": false,
"required": ["name", "version", "description"],
"properties": {
"name": {
"type": "string",
"description": "Package name."
},
"version": {
"$ref": "#/definitions/poetry-pep440-version"
},
"description": {
"type": "string",
"description": "Short package description."
},
"keywords": {
"type": "array",
"items": {
"type": "string",
"description": "A tag/keyword that this package relates to."
}
},
"homepage": {
"type": "string",
"description": "Homepage URL for the project.",
"format": "uri"
},
"repository": {
"type": "string",
"description": "Repository URL for the project.",
"format": "uri"
},
"documentation": {
"type": "string",
"description": "Documentation URL for the project.",
"format": "uri"
},
"license": {
"type": "string",
"description": "License name."
},
"authors": {
"$ref": "#/definitions/poetry-authors"
},
"maintainers": {
"$ref": "#/definitions/poetry-maintainers"
},
"readme": {
"type": "string",
"description": "The path to the README file"
},
"classifiers": {
"type": "array",
"description": "A list of trove classifers."
},
"packages": {
"type": "array",
"description": "A list of packages to include in the final distribution.",
"items": {
"type": "object",
"description": "Information about where the package resides.",
"additionalProperties": false,
"required": ["include"],
"properties": {
"include": {
"type": "string",
"description": "What to include in the package."
},
"from": {
"type": "string",
"description": "Where the source directory of the package resides."
},
"format": {
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
],
"description": "The format(s) for which the package must be included."
}
}
}
},
"include": {
"type": "array",
"description": "A list of files and folders to include."
},
"exclude": {
"type": "array",
"description": "A list of files and folders to exclude."
},
"dependencies": {
"type": "object",
"description": "This is a hash of package name (keys) and version constraints (values) that are required to run this package.",
"required": ["python"],
"properties": {
"python": {
"type": "string",
"description": "The Python versions the package is compatible with."
}
},
"$ref": "#/definitions/poetry-dependencies",
"additionalProperties": false
},
"dev-dependencies": {
"type": "object",
"description": "This is a hash of package name (keys) and version constraints (values) that this package requires for developing it (testing tools and such).",
"$ref": "#/definitions/poetry-dependencies",
"additionalProperties": false
},
"extras": {
"type": "object",
"patternProperties": {
"^[a-zA-Z-_.0-9]+$": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"build": {
"type": "string",
"description": "The file used to build extensions."
},
"source": {
"type": "array",
"description": "A set of additional repositories where packages can be found.",
"additionalProperties": {
"$ref": "#/definitions/poetry-repository"
},
"items": {
"$ref": "#/definitions/poetry-repository"
}
},
"scripts": {
"type": "object",
"description": "A hash of scripts to be installed.",
"items": {
"type": "string"
}
},
"plugins": {
"type": "object",
"description": "A hash of hashes representing plugins",
"patternProperties": {
"^[a-zA-Z-_.0-9]+$": {
"type": "object",
"patternProperties": {
"^[a-zA-Z-_.0-9]+$": {
"type": "string"
}
}
}
}
},
"urls": {
"type": "object",
"patternProperties": {
"^.+$": {
"type": "string",
"description": "The full url of the custom url."
}
}
}
}
}
}
}