[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/pyproject.json","$comment":"there are multiple resources describing pyproject.toml. The canonical reference is at https://packaging.python.org/en/latest/specifications/declaring-project-metadata/, which refers to multiple proposals such as PEP 517, PEP 518 and PEP 621","x-tombi-toml-version":"v1.0.0","x-tombi-table-keys-order":"schema","additionalProperties":false,"definitions":{"projectAuthor":{"type":"object","additionalProperties":false,"anyOf":[{"required":["name"],"properties":{"name":true}},{"required":["email"],"properties":{"email":true}}],"properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"}},"x-tombi-table-keys-order":"schema"},"BuildSystem":{"type":"object","additionalProperties":false,"required":["requires"],"title":"Project build system configuration","description":"Declares any Python level dependencies that must be installed in order to run the project\u2019s build system successfully.","markdownDescription":"Declares any Python level dependencies that must be installed in order to run the project\u2019s build system successfully.","x-intellij-html-description":"
Declares any Python level dependencies that must be installed in order to run the project\u2019s build system successfully.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/pyproject-toml/#declaring-build-system-dependencies-the-build-system-table"}},"x-tombi-table-keys-order":"schema","properties":{"requires":{"type":"array","items":{"type":"string"},"title":"Build system dependencies","description":"List of strings following the version specifier specification, representing dependencies required to execute the build system.","markdownDescription":"List of strings following the [version specifier specification](https://packaging.python.org/en/latest/specifications/version-specifiers/#version-specifiers), representing dependencies required to execute the build system.","x-intellij-html-description":"
List of strings following the version specifier specification, representing dependencies required to execute the build system.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/pyproject-toml/#declaring-build-system-dependencies-the-build-system-table"}},"x-tombi-array-values-order":"version-sort","examples":["setuptools >= 64.0"]},"build-backend":{"type":"string","title":"Name of Python object used to perform the build","description":"String is formatted following the same `module:object` syntax as a `setuptools` entry point. It\u2019s also legal to leave out the `:object` part.","markdownDescription":"String is formatted following the same `module:object` syntax as a `setuptools` entry point. It\u2019s also legal to leave out the `:object` part.","x-intellij-html-description":"
String is formatted following the same module:object syntax as a setuptools entry point. It\u2019s also legal to leave out the :object part.
","x-taplo":{"links":{"key":"https://peps.python.org/pep-0517/#source-trees"}},"examples":["setuptools.build_meta","my_build_backend:backend"]},"backend-path":{"type":"array","items":{"type":"string"},"title":"Build backend directories","description":"list of directories to prepend to `sys.path` when loading the build backend, relative to project root","markdownDescription":"list of directoriesrepend to `sys.path` when loading the build backend, relative to project root","x-intellij-html-description":"
list of directories to prepend to sys.path when loading the build backend, relative to project root
","x-taplo":{"links":{"key":"https://peps.python.org/pep-0517/#in-tree-build-backends"}},"x-tombi-table-keys-order":"version-sort"}}}},"properties":{"project":{"type":"object","additionalProperties":false,"required":["name"],"title":"Project core metadata","description":"There are two kinds of metadata: _static_ and _dynamic_.\n- Static metadata is listed in the `[project]` table directly and cannot be specified or changed by a tool.\n- Dynamic metadata key names are listed inside the `dynamic` key and represents metadata that a tool will later provide.","markdownDescription":"There are two kinds of metadata: _static_ and _dynamic_.\n- Static metadata is listed in the `[project]` table directly and cannot be specified or changed by a tool.\n- Dynamic metadata key names are listed inside the `dynamic` key and represents metadata that a tool will later provide.","x-intellij-html-description":"
There are two kinds of metadata: static and dynamic.

Static metadata is listed in the [project] table directly and cannot be specified or changed by a tool.

Dynamic metadata key names are listed inside the dynamic key and represents metadata that a tool will later provide.

","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/pyproject-toml/#declaring-project-metadata-the-project-table","initKeys":["name","version","description","readme","license","authors","classifiers","urls","dependencies"]}},"x-tombi-table-keys-order":"schema","properties":{"name":{"title":"Project name","description":"Valid name consists only of ASCII letters and numbers, period, underscore and hyphen. It must start and end with a letter or number.","markdownDescription":"Valid name consists only of ASCII letters and numbers, period, underscore and hyphen. It must start and end with a letter or number.","x-intellij-html-description":"
Valid name consists only of ASCII letters and numbers, period, underscore and hyphen. It must start and end with a letter or number.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/pyproject-toml/#name"}},"type":"string","pattern":"^([a-zA-Z\\d]|[a-zA-Z\\d][\\w.-]*[a-zA-Z\\d])$"},"version":{"type":"string","pattern":"^v?((([0-9]+)!)?([0-9]+(\\.[0-9]+)*)([-_\\.]?(alpha|a|beta|b|preview|pre|c|rc)[-_\\.]?([0-9]+)?)?((-([0-9]+))|([-_\\.]?(post|rev|r)[-_\\.]?([0-9]+)?))?([-_\\.]?(dev)[-_\\.]?([0-9]+)?)?)(\\+([a-zA-Z0-9]+([-_\\.][a-zA-Z0-9]+)*))?$","title":"Project version","description":"Version of the project, as defined in the [Version specifier specification](https://packaging.python.org/en/latest/specifications/version-specifiers/), and preferably [already normalized](https://packaging.python.org/en/latest/specifications/version-specifiers/#normalization).","markdownDescription":"Version of the project, as defined in the [Version specifier specification](https://packaging.python.org/en/latest/specifications/version-specifiers/), and preferably [already normalized](https://packaging.python.org/en/latest/specifications/version-specifiers/#normalization).","x-intellij-html-description":"
Version of the project, as defined in the Version specifier specification, and preferably already normalized.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/pyproject-toml/#version"}},"examples":["42.0.1","0.3.9rc7.post0.dev5"]},"description":{"type":"string","title":"Project summary description","description":"Summary description of the project in one line. Tools may not accept multiple lines.","markdownDescription":"Summary description of the project in one line. Tools may not accept multiple lines.","x-intellij-html-description":"
Summary description of the project in one line. Tools may not accept multiple lines.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/pyproject-toml/#description"}}},"readme":{"title":"Project full description","description":"Value can be a relative path to text / markdown (`.md` suffix) / reStructuredText (`.rst` suffix) readme file, or a table with either:\n- `file` key containing path of aforementioned readme file, or\n- `text` key containing the full readme text embedded inside `pyproject.toml`.","markdownDescription":"Value can be a relative path to text / markdown (`.md` suffix) / reStructuredText (`.rst` suffix) readme file, or a table with either:\n- `file` key containing path of aforementioned readme file, or\n- `text` key containing the full readme text embedded inside `pyproject.toml`.","x-intellij-html-description":"
Value can be a relative path to text / markdown (.md suffix) / reStructuredText (.rst suffix) readme file, or a table with either:

file key containing path of aforementioned readme file, or

text key containing the full readme text embedded inside pyproject.toml.

","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/pyproject-toml/#readme"}},"oneOf":[{"title":"README file path","type":"string"},{"additionalProperties":false,"type":"object","required":["file"],"properties":{"file":{"title":"README file path","type":"string"},"content-type":{"title":"README content-type","description":"RFC 1341 compliant content-type (with optional charset, defaulting to UTF-8)","type":"string"}},"x-tombi-table-keys-order":"schema"},{"additionalProperties":false,"type":"object","required":["text"],"properties":{"text":{"title":"README text","type":"string"},"content-type":{"title":"README content-type","description":"RFC 1341 compliant content-type (with optional charset, defaulting to UTF-8)","type":"string"}},"x-tombi-table-keys-order":"schema"},{"additionalProperties":false,"type":"object","required":["content-type"],"properties":{"content-type":{"title":"README content-type","description":"RFC 1341 compliant content-type (with optional charset, defaulting to UTF-8)","type":"string"}},"x-tombi-table-keys-order":"schema"}],"examples":["README.md",{"file":"README.txt","content-type":"text/plain"},{"text":"# Example project\n\nSome readme content","content-type":"text/markdown"}]},"requires-python":{"type":"string","title":"Python version compatibility","description":"Specifies the Python version(s) that the distribution is compatible with. Must be in the format specified in [Version specifiers](https://packaging.python.org/en/latest/specifications/version-specifiers/).","markdownDescription":"Specifies the Python version(s) that the distribution is compatible with. Must be in the format specified in [Version specifiers](https://packaging.python.org/en/latest/specifications/version-specifiers/).","x-intellij-html-description":"
Specifies the Python version(s) that the distribution is compatible with. Must be in the format specified in Version specifiers.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/pyproject-toml/#requires-python"}},"examples":[">= 3.7"]},"license":{"$comment":"PEP 639 specifies current behavior (text / file subkey) will be deprecated, but this PEP is still under provisional status.","title":"Project license","description":"For now it is a table with either:\n- `file` key specifying a relative path to a license file, or\n- `text` key containing full license content\n\nNewer tool may accept a single [SPDX license expression](https://spdx.github.io/spdx-spec/v2.2.2/SPDX-license-expressions/) string instead of a table.","markdownDescription":"For now it is a table with either:\n- `file` key specifying a relative path to a license file, or\n- `text` key containing full license content\n\nNewer tool may accept a single [SPDX license expression](https://spdx.github.io/spdx-spec/v2.2.2/SPDX-license-expressions/) string instead of a table.","x-intellij-html-description":"
For now it is a table with either:

file key specifying a relative path to a license file, or

text key containing full license content

Newer tool may accept a single SPDX license expression string instead of a table.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/pyproject-toml/#license"}},"oneOf":[{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"title":"License file path","type":"string"}}},{"type":"object","additionalProperties":false,"required":["text"],"properties":{"text":{"title":"License text","type":"string"}}},{"$comment":"Maybe add 'deprecated' keyword to table usage when SPDX license expression usage is finalized. But that requires 2019-09 draft.","type":"string"}],"examples":[{"text":"To the extent possible under law, the author(s) who associated this software with CC0 have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty."},{"file":"LICENSE"},"MIT","BSD-2-Clause OR Apache-2.0","LicenseRef-Proprietary"]},"license-files":{"$comment":"Still provisional under PEP 639","type":"array","items":{"type":"string"},"title":"License files","description":"Relative paths or globs to paths of license files. Can be an empty list.","markdownDescription":"Relative paths or globs to paths of license files. Can be an empty list.","x-intellij-html-description":"
Relative paths or globs to paths of license files. Can be an empty list.
","x-taplo":{"links":{"key":"https://peps.python.org/pep-0639/#add-license-files-key"}},"x-tombi-array-values-order":"version-sort"},"authors":{"type":"array","items":{"$ref":"#/definitions/projectAuthor"},"title":"Project authors","description":"People or organizations considered as 'authors' of the project. Each author is a table with `name` key, `email` key, or both.","markdownDescription":"People or organizations considered as 'authors' of the project. Each author is a table with `name` key, `email` key, or both.","x-intellij-html-description":"
People or organizations considered as 'authors' of the project. Each author is a table with name key, email key, or both.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/pyproject-toml/#authors-maintainers"}}},"maintainers":{"type":"array","items":{"$ref":"#/definitions/projectAuthor"},"title":"Project maintainers","description":"People or organizations considered as 'maintainers' of the project. Each maintainer is a table with `name` key, `email` key, or both.","markdownDescription":"People or organizations considered as 'maintainers' of the project. Each maintainer is a table with `name` key, `email` key, or both.","x-intellij-html-description":"
People or organizations considered as 'maintainers' of the project. Each maintainer is a table with name key, email key, or both.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/pyproject-toml/#authors-maintainers"}}},"keywords":{"type":"array","items":{"type":"string"},"title":"Project keywords","description":"List of keywords or tags that describe the project. They could be used by search engines to categorize the project.","markdownDescription":"List of keywords or tags that describe the project. They could be used by search engines to categorize the project.","x-intellij-html-description":"
List of keywords or tags that describe the project. They could be used by search engines to categorize the project.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/pyproject-toml/#keywords"}},"x-tombi-array-values-order":"version-sort"},"classifiers":{"type":"array","items":{"type":"string"},"title":"Applicable Trove classifiers","description":"List of [Trove classifiers](https://pypi.org/classifiers/) that describe the project. PyPI use the classifiers to categorize projects.","markdownDescription":"List of [Trove classifiers](https://pypi.org/classifiers/) that describe the project. PyPI use the classifiers to categorize projects.","x-intellij-html-description":"
List of Trove classifiers that describe the project. PyPI use the classifiers to categorize projects.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/pyproject-toml/#classifiers"}},"x-tombi-array-values-order":"version-sort"},"urls":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"title":"Project URLs","description":"Table consisting one or multiple `label: URL` pairs. Common indexes like PyPI uses [well-known Project URLs](https://packaging.python.org/en/latest/specifications/well-known-project-urls/#well-known-labels) when presenting project pages.","markdownDescription":"Table consisting one or multiple `label: URL` pairs. Common indexes like PyPI uses [well-known Project URLs](https://packaging.python.org/en/latest/specifications/well-known-project-urls/#well-known-labels) when presenting project pages.","x-intellij-html-description":"
Table consisting one or multiple label: URL pairs. Common indexes like PyPI uses well-known Project URLs when presenting project pages.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/pyproject-toml/#urls"}},"x-tombi-table-keys-order":"version-sort","examples":[{"homepage":"https://example.com/example-project"},{"\"home page\"":"https://example.com/example-project","documentation":"https://doc.example.com/example-project/stable","repository":"https://git.example.com/some/repo.git"}]},"scripts":{"type":"object","additionalProperties":{"type":"string"},"title":"Console scripts","description":"Table of [entry points](https://packaging.python.org/en/latest/specifications/entry-points/) that allows package installers to create a command-line wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either `importable.module` or `importable.module:object.attr`. Windows platform treats `console_scripts` specially in that they are wrapped in a console executable, so they are attached to a console and can use `sys.stdin`, `sys.stdout` and `sys.stderr` for I/O.","markdownDescription":"Table of [entry points](https://packaging.python.org/en/latest/specifications/entry-points/) that allows package installers to create a command-line wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either `importable.module` or `importable.module:object.attr`. Windows platform treats `console_scripts` specially in that they are wrapped in a console executable, so they are attached to a console and can use `sys.stdin`, `sys.stdout` and `sys.stderr` for I/O.","x-intellij-html-description":"
Table of entry points that allows package installers to create a command-line wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either importable.module or importable.module:object.attr. Windows platform treats console_scripts specially in that they are wrapped in a console executable, so they are attached to a console and can use sys.stdin, sys.stdout and sys.stderr for I/O.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/entry-points/#use-for-scripts"}},"x-tombi-table-keys-order":"version-sort","examples":[{"mycmd":"package.module:object.function"}]},"gui-scripts":{"type":"object","additionalProperties":{"type":"string"},"title":"GUI scripts","description":"Table of [entry points](https://packaging.python.org/en/latest/specifications/entry-points/) that allows package installers to create a GUI wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either `importable.module` or `importable.module:object.attr`. Windows platform treats `gui_scripts` specially in that they are wrapped in a GUI executable, so they can be started without a console, but cannot use standard streams unless application code redirects them.","markdownDescription":"Table of [entry points](https://packaging.python.org/en/latest/specifications/entry-points/) that allows package installers to create a GUI wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either `importable.module` or `importable.module:object.attr`. Windows platform treats `gui_scripts` specially in that they are wrapped in a GUI executable, so they can be started without a console, but cannot use standard streams unless application code redirects them.","x-intellij-html-description":"
Table of entry points that allows package installers to create a GUI wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either importable.module or importable.module:object.attr. Windows platform treats gui_scripts specially in that they are wrapped in a GUI executable, so they can be started without a console, but cannot use standard streams unless application code redirects them.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/entry-points/#use-for-scripts"}},"x-tombi-table-keys-order":"version-sort","examples":[{"mycmd":"package.module:object.function"}]},"entry-points":{"type":"object","additionalProperties":false,"patternProperties":{"^\\w+(\\.\\w+)*$":{"type":"object","additionalProperties":{"type":"string"}}},"propertyNames":{"not":{"anyOf":[{"const":"console_scripts"},{"const":"gui_scripts"}]}},"title":"Other entry-point groups","description":"Extra [entry point groups](https://packaging.python.org/en/latest/specifications/entry-points/) that allow applications to load plugins. For example, Pygments (a syntax highlighting tool) can use additional styles from separately installed packages through `[project.entry-points.\"pygments.styles\"]`. Each key is the name of the entry-point group, and each value is a table of entry points.","markdownDescription":"Extra [entry point groups](https://packaging.python.org/en/latest/specifications/entry-points/) that allow applications to load plugins. For example, Pygments (a syntax highlighting tool) can use additional styles from separately installed packages through `[project.entry-points.\"pygments.styles\"]`. Each key is the name of the entry-point group, and each value is a table of entry points.","x-intellij-html-description":"
Extra entry point groups that allow applications to load plugins. For example, Pygments (a syntax highlighting tool) can use additional styles from separately installed packages through [project.entry-points.\"pygments.styles\"]. Each key is the name of the entry-point group, and each value is a table of entry points.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/entry-points/#use-for-plugins"}},"x-tombi-table-keys-order":"version-sort","examples":[{"pygments.styles":{"monokai":"package.module:object.attribute"}}]},"dependencies":{"type":"array","items":{"type":"string"},"title":"Project mandatory dependency requirements","description":"An array of [dependency specifier](https://packaging.python.org/en/latest/specifications/dependency-specifiers/) strings, each representing a mandatory dependent package of the project.","markdownDescription":"An array of [dependency specifier](https://packaging.python.org/en/latest/specifications/dependency-specifiers/) strings, each representing a mandatory dependent package of the project.","x-intellij-html-description":"
An array of dependency specifier strings, each representing a mandatory dependent package of the project.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/pyproject-toml/#dependencies-optional-dependencies"}},"x-tombi-array-values-order":"version-sort","examples":[["attrs","requests ~= 2.28"]]},"optional-dependencies":{"type":"object","x-tombi-table-keys-order":"version-sort","patternProperties":{"^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9])$":{"type":"array","items":{"type":"string"}}},"title":"Project extra dependency requirements","description":"Each entry is a key/value pair, with the key specifying [extra feature name](https://packaging.python.org/en/latest/specifications/core-metadata/#provides-extra-multiple-use) (such as `socks` in `requests[socks]`), and value is an array of [dependency specifier](https://packaging.python.org/en/latest/specifications/dependency-specifiers/) strings.","markdownDescription":"Each entry is a key/value pair, with the key specifying [extra feature name](https://packaging.python.org/en/latest/specifications/core-metadata/#provides-extra-multiple-use) (such as `socks` in `requests[socks]`), and value is an array of [dependency specifier](https://packaging.python.org/en/latest/specifications/dependency-specifiers/) strings.","x-intellij-html-description":"
Each entry is a key/value pair, with the key specifying extra feature name (such as socks in requests[socks]), and value is an array of dependency specifier strings.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/pyproject-toml/#dependencies-optional-dependencies"}},"examples":[{"typing":["boto3-stubs","typing-extensions ~= 4.1"]}]},"dynamic":{"type":"array","items":{"type":"string","enum":["version","description","readme","requires-python","license","license-files","authors","maintainers","keywords","classifiers","urls","scripts","gui-scripts","entry-points","dependencies","optional-dependencies"]},"title":"Dynamic metadata values","description":"Specifies which keys are intentionally unspecified under `[project]` table so build backend can/will provide such metadata dynamically. Each key must be listed only once. It is an error to both list a key in `dynamic` and use the key directly in `[project]`.\nOne of the most common usage is `version`, which allows build backend to retrieve project version from source code or version control system instead of hardcoding it in `pyproject.toml`.","markdownDescription":"Specifies which keys are intentionally unspecified under `[project]` table so build backend can/will provide such metadata dynamically. Each key must be listed only once. It is an error to both list a key in `dynamic` and use the key directly in `[project]`.\nOne of the most common usage is `version`, which allows build backend to retrieve project version from source code or version control system instead of hardcoding it in `pyproject.toml`.","x-tombi-array-values-order":"version-sort","x-intellij-html-description":"
Specifies which keys are intentionally unspecified under [project] table so build backend can/will provide such metadata dynamically. Each key must be listed only once. It is an error to both list a key in dynamic and use the key directly in [project].

One of the most common usage is version, which allows build backend to retrieve project version from source code or version control system instead of hardcoding it in pyproject.toml.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/pyproject-toml/#dynamic"}},"examples":[["version"]]}},"oneOf":[{"required":["dynamic"],"properties":{"dynamic":{"type":"array","contains":{"const":"version"}}}},{"required":["version"],"properties":{"version":true}}],"dependencies":{"version":{"not":{"required":["dynamic"],"properties":{"dynamic":{"type":"array","contains":{"const":"version"}}}}},"description":{"not":{"required":["dynamic"],"properties":{"dynamic":{"type":"array","contains":{"const":"description"}}}}},"readme":{"not":{"required":["dynamic"],"properties":{"dynamic":{"type":"array","contains":{"const":"readme"}}}}},"requires-python":{"not":{"required":["dynamic"],"properties":{"dynamic":{"type":"array","contains":{"const":"requires-python"}}}}},"license":{"not":{"required":["dynamic"],"properties":{"dynamic":{"type":"array","contains":{"const":"license"}}}}},"license-files":{"allOf":[{"not":{"required":["dynamic"],"properties":{"dynamic":{"type":"array","contains":{"const":"license-files"}}}}},{"properties":{"license":{"type":"string"}}}]},"authors":{"not":{"required":["dynamic"],"properties":{"dynamic":{"type":"array","contains":{"const":"authors"}}}}},"maintainers":{"not":{"required":["dynamic"],"properties":{"dynamic":{"type":"array","contains":{"const":"maintainers"}}}}},"keywords":{"not":{"required":["dynamic"],"properties":{"dynamic":{"type":"array","contains":{"const":"keywords"}}}}},"classifiers":{"not":{"required":["dynamic"],"properties":{"dynamic":{"type":"array","contains":{"const":"classifiers"}}}}},"urls":{"not":{"required":["dynamic"],"properties":{"dynamic":{"type":"array","contains":{"const":"urls"}}}}},"scripts":{"not":{"required":["dynamic"],"properties":{"dynamic":{"type":"array","contains":{"const":"scripts"}}}}},"gui-scripts":{"not":{"required":["dynamic"],"properties":{"dynamic":{"type":"array","contains":{"const":"gui-scripts"}}}}},"entry-points":{"not":{"required":["dynamic"],"properties":{"dynamic":{"type":"array","contains":{"const":"entry-points"}}}}},"dependencies":{"not":{"required":["dynamic"],"properties":{"dynamic":{"type":"array","contains":{"const":"dependencies"}}}}},"optional-dependencies":{"not":{"required":["dynamic"],"properties":{"dynamic":{"type":"array","contains":{"const":"optional-dependencies"}}}}}}},"dependency-groups":{"title":"PEP 735 dependency groups","description":"Named groups of dependencies, similar to `requirements.txt` files, which launchers, IDEs, and other tools can find and identify by name. Each item in `[dependency-groups]` is defined as mapping of group name to list of [dependency specifiers](https://packaging.python.org/en/latest/specifications/dependency-specifiers/).","markdownDescription":"Named groups of dependencies, similar to `requirements.txt` files, which launchers, IDEs, and other tools can find and identify by name. Each item in `[dependency-groups]` is defined as mapping of group name to list of [dependency specifiers](https://packaging.python.org/en/latest/specifications/dependency-specifiers/).","x-intellij-html-description":"
Named groups of dependencies, similar to requirements.txt files, which launchers, IDEs, and other tools can find and identify by name. Each item in [dependency-groups] is defined as mapping of group name to list of dependency specifiers.
","x-tombi-table-keys-order":"version-sort","x-taplo":{"links":{"key":"https://peps.python.org/pep-0735/"}},"type":"object","additionalProperties":false,"patternProperties":{"^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9])$":{"type":"array","title":"Dependency specifiers or include groups","description":"Each list item should be either:\n- [dependency specifiers](https://packaging.python.org/en/latest/specifications/dependency-specifiers/), or\n- table with a single key `include-group` which specifies another group name to include into this one","markdownDescription":"Each list item should be either:\n- [dependency specifiers](https://packaging.python.org/en/latest/specifications/dependency-specifiers/), or\n- table with a single key `include-group` which specifies another group name to include into this one","x-intellij-html-description":"
Each list item should be either:

dependency specifiers, or

table with a single key include-group which specifies another group name to include into this one

","x-tombi-array-values-order":"version-sort","items":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":false,"properties":{"include-group":{"type":"string","pattern":"^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9])$"}}}]}}}},"build-system":{"$ref":"#/definitions/BuildSystem"},"tool":{"type":"object","additionalProperties":{"type":"object","additionalProperties":true},"title":"Tool-specific configuration","description":"Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within `[tool]`. Generally a project can use the subtable `tool.$NAME` if, and only if, they own the entry for `$NAME` in the Cheeseshop/PyPI.","markdownDescription":"Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within `[tool]`. Generally a project can use the subtable `tool.$NAME` if, and only if, they own the entry for `$NAME` in the Cheeseshop/PyPI.","x-intellij-html-description":"
Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within [tool]. Generally a project can use the subtable tool.$NAME if, and only if, they own the entry for $NAME in the Cheeseshop/PyPI.
","x-taplo":{"links":{"key":"https://packaging.python.org/en/latest/specifications/pyproject-toml/#arbitrary-tool-configuration-the-tool-table"}},"x-tombi-table-keys-order":"version-sort","properties":{"black":{"$ref":"https://json.schemastore.org/partial-black.json","title":"Code Formatter","description":"The uncompromising Python code formatter."},"cibuildwheel":{"$ref":"https://json.schemastore.org/partial-cibuildwheel.json","title":"Wheel Builder","description":"Build Python wheels for all platforms."},"mypy":{"$ref":"https://json.schemastore.org/partial-mypy.json","title":"Static Type Checker","description":"Optional static typing for Python."},"ruff":{"$ref":"https://json.schemastore.org/ruff.json","title":"Linter and Formatter","description":"An extremely fast Python linter and formatter, written in Rust."},"ty":{"$ref":"https://json.schemastore.org/ty.json","title":"Type checker","description":"An extremely fast Python type checker, written in Rust."},"hatch":{"$ref":"https://json.schemastore.org/hatch.json","title":"Project Manager","description":"Modern, extensible Python project management."},"maturin":{"$ref":"https://json.schemastore.org/maturin.json","title":"Rust-Python Package Builder","description":"Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages"},"scikit-build":{"$ref":"https://json.schemastore.org/partial-scikit-build.json","title":"Build System Generator","description":"Improved build system generator for Python C/C++/Fortran extensions"},"setuptools":{"$ref":"https://json.schemastore.org/partial-setuptools.json","title":"Package Manager","description":"Easily download, build, install, upgrade, and uninstall Python packages."},"setuptools_scm":{"$ref":"https://json.schemastore.org/partial-setuptools-scm.json","title":"Version Manager","description":"Manage Python package versions using SCM (e.g. Git)."},"poe":{"$ref":"https://json.schemastore.org/partial-poe.json","title":"Task Runner","description":"A task runner that works well with pyproject.toml files."},"poetry":{"$ref":"https://json.schemastore.org/partial-poetry.json","title":"Package Manager","description":"Python dependency management and packaging made easy."},"pdm":{"$ref":"https://json.schemastore.org/partial-pdm.json","title":"Package Manager","description":"A modern Python package manager with PEP 621 support."},"pyright":{"$ref":"https://json.schemastore.org/partial-pyright.json","title":"Static Type Checker","description":"Static type checker for Python."},"pytest":{"$ref":"https://json.schemastore.org/partial-pytest.json","title":"Testing Framework","description":"Standardized automated testing of Python packages"},"repo-review":{"$ref":"https://json.schemastore.org/partial-repo-review.json","title":"Repository Reviewer","description":"Review a repository for best practices."},"taskipy":{"$ref":"https://json.schemastore.org/partial-taskipy.json","title":"Task Runner","description":"The complementary task runner for python."},"tombi":{"$ref":"https://json.schemastore.org/tombi.json","title":"TOML Toolkit","description":"Tombi (\u9cf6) is a toolkit for TOML; providing a formatter/linter and language server"},"tox":{"$ref":"https://json.schemastore.org/partial-tox.json","title":"Testing Framework","description":"Standardized automated testing of Python packages"},"uv":{"$ref":"https://json.schemastore.org/uv.json","title":"Package Manager","description":"An extremely fast Python package installer and resolver, written in Rust."}},"examples":[{"tool":{"isort":{"profile":"black"}}}]}},"title":"JSON schema for Python project metadata and configuration","type":"object","x-taplo-info":{"authors":["zevisert (https://github.com/zevisert)"],"pattern":["^(.*(/|\\\\)pyproject\\.toml|pyproject\\.toml)$"]}}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for Python project metadata and configuration". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

there are multiple resources describing pyproject.toml. The canonical reference is at https://packaging.python.org/en/latest/specifications/declaring-project-metadata/, which refers to multiple proposals such as PEP 517, PEP 518 and PEP 621

Project build system configuration

Declares any Python level dependencies that must be installed in order to run the project’s build system successfully.

Declares any Python level dependencies that must be installed in order to run the project’s build system successfully.

Declares any Python level dependencies that must be installed in order to run the project’s build system successfully.

Build system dependencies

List of strings following the version specifier specification, representing dependencies required to execute the build system.

List of strings following the [version specifier specification](https://packaging.python.org/en/latest/specifications/version-specifiers/#version-specifiers), representing dependencies required to execute the build system.

Name of Python object used to perform the build

String is formatted following the same `module:object` syntax as a `setuptools` entry point. It’s also legal to leave out the `:object` part.

String is formatted following the same module:object syntax as a setuptools entry point. It’s also legal to leave out the :object part.

Build backend directories

list of directories to prepend to `sys.path` when loading the build backend, relative to project root

list of directoriesrepend to `sys.path` when loading the build backend, relative to project root

list of directories to prepend to sys.path when loading the build backend, relative to project root

Project core metadata

There are two kinds of metadata: _static_ and _dynamic_.
- Static metadata is listed in the `[project]` table directly and cannot be specified or changed by a tool.
- Dynamic metadata key names are listed inside the `dynamic` key and represents metadata that a tool will later provide.

There are two kinds of metadata: static and dynamic.

Static metadata is listed in the [project] table directly and cannot be specified or changed by a tool.

Dynamic metadata key names are listed inside the dynamic key and represents metadata that a tool will later provide.

name version description readme license authors classifiers urls dependencies

Project name

Valid name consists only of ASCII letters and numbers, period, underscore and hyphen. It must start and end with a letter or number.

Project version

Version of the project, as defined in the [Version specifier specification](https://packaging.python.org/en/latest/specifications/version-specifiers/), and preferably [already normalized](https://packaging.python.org/en/latest/specifications/version-specifiers/#normalization).

Version of the project, as defined in the Version specifier specification, and preferably already normalized.

Project summary description

Summary description of the project in one line. Tools may not accept multiple lines.

Summary description of the project in one line. Tools may not accept multiple lines.

Summary description of the project in one line. Tools may not accept multiple lines.

Project full description

Value can be a relative path to text / markdown (`.md` suffix) / reStructuredText (`.rst` suffix) readme file, or a table with either:
- `file` key containing path of aforementioned readme file, or
- `text` key containing the full readme text embedded inside `pyproject.toml`.

Value can be a relative path to text / markdown (.md suffix) / reStructuredText (.rst suffix) readme file, or a table with either:

file key containing path of aforementioned readme file, or

text key containing the full readme text embedded inside pyproject.toml.

README file path

README file path

README content-type

RFC 1341 compliant content-type (with optional charset, defaulting to UTF-8)

README text

README content-type

README content-type

# Example project

Some readme content

Python version compatibility

Specifies the Python version(s) that the distribution is compatible with. Must be in the format specified in [Version specifiers](https://packaging.python.org/en/latest/specifications/version-specifiers/).

Specifies the Python version(s) that the distribution is compatible with. Must be in the format specified in Version specifiers.

PEP 639 specifies current behavior (text / file subkey) will be deprecated, but this PEP is still under provisional status.

Project license

For now it is a table with either:
- `file` key specifying a relative path to a license file, or
- `text` key containing full license content

Newer tool may accept a single [SPDX license expression](https://spdx.github.io/spdx-spec/v2.2.2/SPDX-license-expressions/) string instead of a table.

For now it is a table with either:

file key specifying a relative path to a license file, or

text key containing full license content

Newer tool may accept a single SPDX license expression string instead of a table.

License file path

License text

Maybe add 'deprecated' keyword to table usage when SPDX license expression usage is finalized. But that requires 2019-09 draft.

To the extent possible under law, the author(s) who associated this software with CC0 have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.

License files

Relative paths or globs to paths of license files. Can be an empty list.

Relative paths or globs to paths of license files. Can be an empty list.

Relative paths or globs to paths of license files. Can be an empty list.

Project authors

People or organizations considered as 'authors' of the project. Each author is a table with `name` key, `email` key, or both.

People or organizations considered as 'authors' of the project. Each author is a table with name key, email key, or both.

Project maintainers

People or organizations considered as 'maintainers' of the project. Each maintainer is a table with `name` key, `email` key, or both.

People or organizations considered as 'maintainers' of the project. Each maintainer is a table with name key, email key, or both.

Project keywords

List of keywords or tags that describe the project. They could be used by search engines to categorize the project.

List of keywords or tags that describe the project. They could be used by search engines to categorize the project.

List of keywords or tags that describe the project. They could be used by search engines to categorize the project.

Applicable Trove classifiers

List of [Trove classifiers](https://pypi.org/classifiers/) that describe the project. PyPI use the classifiers to categorize projects.

List of Trove classifiers that describe the project. PyPI use the classifiers to categorize projects.

Project URLs

Table consisting one or multiple `label: URL` pairs. Common indexes like PyPI uses [well-known Project URLs](https://packaging.python.org/en/latest/specifications/well-known-project-urls/#well-known-labels) when presenting project pages.

Table consisting one or multiple label: URL pairs. Common indexes like PyPI uses well-known Project URLs when presenting project pages.

Console scripts

Table of [entry points](https://packaging.python.org/en/latest/specifications/entry-points/) that allows package installers to create a command-line wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either `importable.module` or `importable.module:object.attr`. Windows platform treats `console_scripts` specially in that they are wrapped in a console executable, so they are attached to a console and can use `sys.stdin`, `sys.stdout` and `sys.stderr` for I/O.

Table of entry points that allows package installers to create a command-line wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either importable.module or importable.module:object.attr. Windows platform treats console_scripts specially in that they are wrapped in a console executable, so they are attached to a console and can use sys.stdin, sys.stdout and sys.stderr for I/O.

GUI scripts

Table of [entry points](https://packaging.python.org/en/latest/specifications/entry-points/) that allows package installers to create a GUI wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either `importable.module` or `importable.module:object.attr`. Windows platform treats `gui_scripts` specially in that they are wrapped in a GUI executable, so they can be started without a console, but cannot use standard streams unless application code redirects them.

Table of entry points that allows package installers to create a GUI wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either importable.module or importable.module:object.attr. Windows platform treats gui_scripts specially in that they are wrapped in a GUI executable, so they can be started without a console, but cannot use standard streams unless application code redirects them.

Other entry-point groups

Extra [entry point groups](https://packaging.python.org/en/latest/specifications/entry-points/) that allow applications to load plugins. For example, Pygments (a syntax highlighting tool) can use additional styles from separately installed packages through `[project.entry-points."pygments.styles"]`. Each key is the name of the entry-point group, and each value is a table of entry points.

Extra entry point groups that allow applications to load plugins. For example, Pygments (a syntax highlighting tool) can use additional styles from separately installed packages through [project.entry-points."pygments.styles"]. Each key is the name of the entry-point group, and each value is a table of entry points.

Project mandatory dependency requirements

An array of [dependency specifier](https://packaging.python.org/en/latest/specifications/dependency-specifiers/) strings, each representing a mandatory dependent package of the project.

An array of dependency specifier strings, each representing a mandatory dependent package of the project.

Project extra dependency requirements

Each entry is a key/value pair, with the key specifying [extra feature name](https://packaging.python.org/en/latest/specifications/core-metadata/#provides-extra-multiple-use) (such as `socks` in `requests[socks]`), and value is an array of [dependency specifier](https://packaging.python.org/en/latest/specifications/dependency-specifiers/) strings.

Each entry is a key/value pair, with the key specifying extra feature name (such as socks in requests[socks]), and value is an array of dependency specifier strings.

version description readme requires-python license license-files authors maintainers keywords classifiers urls scripts gui-scripts entry-points dependencies optional-dependencies

Dynamic metadata values

Specifies which keys are intentionally unspecified under `[project]` table so build backend can/will provide such metadata dynamically. Each key must be listed only once. It is an error to both list a key in `dynamic` and use the key directly in `[project]`.
One of the most common usage is `version`, which allows build backend to retrieve project version from source code or version control system instead of hardcoding it in `pyproject.toml`.

Specifies which keys are intentionally unspecified under [project] table so build backend can/will provide such metadata dynamically. Each key must be listed only once. It is an error to both list a key in dynamic and use the key directly in [project].

One of the most common usage is version, which allows build backend to retrieve project version from source code or version control system instead of hardcoding it in pyproject.toml.

PEP 735 dependency groups

Named groups of dependencies, similar to `requirements.txt` files, which launchers, IDEs, and other tools can find and identify by name. Each item in `[dependency-groups]` is defined as mapping of group name to list of [dependency specifiers](https://packaging.python.org/en/latest/specifications/dependency-specifiers/).

Named groups of dependencies, similar to requirements.txt files, which launchers, IDEs, and other tools can find and identify by name. Each item in [dependency-groups] is defined as mapping of group name to list of dependency specifiers.

Dependency specifiers or include groups

Each list item should be either:
- [dependency specifiers](https://packaging.python.org/en/latest/specifications/dependency-specifiers/), or
- table with a single key `include-group` which specifies another group name to include into this one

Each list item should be either:

dependency specifiers, or

table with a single key include-group which specifies another group name to include into this one

Tool-specific configuration

Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within `[tool]`. Generally a project can use the subtable `tool.$NAME` if, and only if, they own the entry for `$NAME` in the Cheeseshop/PyPI.

Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within [tool]. Generally a project can use the subtable tool.$NAME if, and only if, they own the entry for $NAME in the Cheeseshop/PyPI.

Code Formatter

The uncompromising Python code formatter.

Wheel Builder

Build Python wheels for all platforms.

Static Type Checker

Optional static typing for Python.

Linter and Formatter

An extremely fast Python linter and formatter, written in Rust.

Type checker

An extremely fast Python type checker, written in Rust.

Project Manager

Modern, extensible Python project management.

Rust-Python Package Builder

Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages

Build System Generator

Improved build system generator for Python C/C++/Fortran extensions

Package Manager

Easily download, build, install, upgrade, and uninstall Python packages.

Version Manager

Manage Python package versions using SCM (e.g. Git).

Task Runner

A task runner that works well with pyproject.toml files.

Package Manager

Python dependency management and packaging made easy.

Package Manager

A modern Python package manager with PEP 621 support.

Static Type Checker

Static type checker for Python.

Testing Framework

Standardized automated testing of Python packages

Repository Reviewer

Review a repository for best practices.

Task Runner

The complementary task runner for python.

TOML Toolkit

Tombi (鳶) is a toolkit for TOML; providing a formatter/linter and language server

Testing Framework

Package Manager

An extremely fast Python package installer and resolver, written in Rust.

JSON schema for Python project metadata and configuration

Provide a JSON object that satisfies the schema "JSON schema for Python project metadata and configuration". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

JSON schema for Python project metadata and configuration


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","description":"Pyright Configuration Schema","allowComments":true,"allowTrailingCommas":true,"type":"object","definitions":{"diagnostic":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["none","information","warning","error"]}]},"extraPaths":{"type":"array","title":"Additional import search resolution paths","items":{"type":"string","title":"Additional import search resolution path","default":"","pattern":"^(.*)$"}},"pythonVersion":{"type":"string","title":"Python version to assume during type analysis","default":"","examples":["3.7"],"pattern":"^3\\.[0-9]+$"},"pythonPlatform":{"type":"string","title":"Python platform to assume during type analysis","default":"","examples":["Linux"],"pattern":"^(Linux|Windows|Darwin|All)$"},"disableBytesTypePromotions":{"type":"boolean","title":"Do not treat `bytearray` and `memoryview` as implicit subtypes of `bytes`","default":true},"strictListInference":{"type":"boolean","title":"Infer strict types for list expressions","default":false},"strictSetInference":{"type":"boolean","title":"Infer strict types for set expressions","default":false},"strictDictionaryInference":{"type":"boolean","title":"Infer strict types for dictionary expressions","default":false},"analyzeUnannotatedFunctions":{"type":"boolean","title":"Analyze and report diagnostics for functions that have no annotations","default":true},"strictParameterNoneValue":{"type":"boolean","title":"Allow implicit Optional when default parameter value is None","default":true},"enableExperimentalFeatures":{"type":"boolean","title":"Enable the use of experimental features that are not part of the Python typing spec","default":false},"enableTypeIgnoreComments":{"type":"boolean","title":"Allow \"# type: ignore\" comments","default":true},"enableReachabilityAnalysis":{"type":"boolean","title":"Identify code determined to be unreachable through type analysis","default":true},"deprecateTypingAliases":{"type":"boolean","title":"Treat typing-specific aliases to standard types as deprecated","default":false},"reportGeneralTypeIssues":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of general type issues","default":"error"},"reportPropertyTypeMismatch":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of property getter/setter type mismatches","default":"none"},"reportFunctionMemberAccess":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of member accesses on function objects","default":"error"},"reportMissingImports":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of imports that cannot be resolved","default":"error"},"reportMissingModuleSource":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of imports that cannot be resolved to source files","default":"warning"},"reportInvalidTypeForm":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of type expressions that use an invalid form","default":"error"},"reportMissingTypeStubs":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of imports that cannot be resolved to type stub files","default":"none"},"reportImportCycles":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of module imports that create cycles in import graph","default":"none"},"reportUnusedImport":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of imported symbols that are not referenced within the source file","default":"none"},"reportUnusedClass":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of private classes that are not accessed","default":"none"},"reportUnusedFunction":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of private functions or methods that are not accessed","default":"none"},"reportUnusedVariable":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of local variables that are not accessed","default":"none"},"reportDuplicateImport":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of symbols or modules that are imported more than once","default":"none"},"reportWildcardImportFromLibrary":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of wildcard import from external library","default":"warning"},"reportAbstractUsage":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of attempted instantiation of abstract class","default":"error"},"reportArgumentType":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of incompatible argument type","default":"error"},"reportAssertTypeFailure":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of type mismatch detected by typing.assert_type call","default":"error"},"reportAssignmentType":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of type incompatibilities for assignments","default":"error"},"reportAttributeAccessIssue":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of issues related to attribute accesses","default":"error"},"reportCallIssue":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of issues related to call expressions and arguments","default":"error"},"reportInconsistentOverload":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of inconsistencies between function overload signatures","default":"error"},"reportIndexIssue":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of issues related to index operations and expressions","default":"error"},"reportInvalidTypeArguments":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of invalid type argument usage","default":"error"},"reportNoOverloadImplementation":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of an overloaded function or method with a missing implementation","default":"error"},"reportOperatorIssue":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of diagnostics related to unary and binary operators","default":"error"},"reportOptionalSubscript":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of attempts to subscript (index) a variable with Optional type","default":"error"},"reportOptionalMemberAccess":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of attempts to access a member of a variable with Optional type","default":"error"},"reportOptionalCall":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of attempts to call a variable with Optional type","default":"error"},"reportOptionalIterable":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of attempts to use an Optional type as an iterable value","default":"error"},"reportOptionalContextManager":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of attempts to use an Optional type as a parameter to a with statement","default":"error"},"reportOptionalOperand":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of attempts to use an Optional type as an operand for a binary or unary operator","default":"error"},"reportRedeclaration":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of attempts to declare the type of a symbol multiple times","default":"error"},"reportReturnType":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of function return type incompatibility","default":"error"},"reportTypedDictNotRequiredAccess":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of attempts to access a non-required key in a TypedDict without a check for its presence","default":"error"},"reportUntypedFunctionDecorator":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of function decorators without type annotations, which obscure function types","default":"none"},"reportUntypedClassDecorator":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of class decorators without type annotations, which obscure class types","default":"none"},"reportUntypedBaseClass":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of a base class of an unknown type, which obscures most type checking for the class","default":"none"},"reportUntypedNamedTuple":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of a named tuple definition that does not contain type information","default":"none"},"reportPrivateUsage":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of private variables and functions used outside of the owning class or module and usage of protected members outside of subclasses","default":"none"},"reportTypeCommentUsage":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of deprecated type comment usage","default":"none"},"reportPrivateImportUsage":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of improper usage of symbol imported from a \"py.typed\" module that is not re-exported from that module","default":"error"},"reportConstantRedefinition":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of attempts to redefine variables that are in all-caps","default":"none"},"reportDeprecated":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of use of deprecated class or function","default":"none"},"reportIncompatibleMethodOverride":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of method overrides in subclasses that redefine the method in an incompatible way","default":"error"},"reportIncompatibleVariableOverride":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of overrides in subclasses that redefine a variable in an incompatible way","default":"error"},"reportInconsistentConstructor":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of __init__ and __new__ methods whose signatures are inconsistent","default":"none"},"reportOverlappingOverload":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of function overloads that overlap in signature and obscure each other or do not agree on return type","default":"error"},"reportPossiblyUnboundVariable":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of attempts to use variable that is possibly unbound on some code paths","default":"error"},"reportMissingSuperCall":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of missing call to parent class for inherited `__init__` methods","default":"none"},"reportUninitializedInstanceVariable":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of instance variables that are not initialized in the constructor","default":"none"},"reportInvalidStringEscapeSequence":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of invalid escape sequences used within string literals","default":"warning"},"reportUnknownParameterType":{"$ref":"#/definitions/diagnostic","title":"Controls reporting input and return parameters whose types are unknown","default":"none"},"reportUnknownArgumentType":{"$ref":"#/definitions/diagnostic","title":"Controls reporting argument expressions whose types are unknown","default":"none"},"reportUnknownLambdaType":{"$ref":"#/definitions/diagnostic","title":"Controls reporting input and return parameters for lambdas whose types are unknown","default":"none"},"reportUnknownVariableType":{"$ref":"#/definitions/diagnostic","title":"Controls reporting local variables whose types are unknown","default":"none"},"reportUnknownMemberType":{"$ref":"#/definitions/diagnostic","title":"Controls reporting class and instance variables whose types are unknown","default":"none"},"reportMissingParameterType":{"$ref":"#/definitions/diagnostic","title":"Controls reporting input parameters that are missing a type annotation","default":"none"},"reportMissingTypeArgument":{"$ref":"#/definitions/diagnostic","title":"Controls reporting generic class reference with missing type arguments","default":"none"},"reportInvalidTypeVarUse":{"$ref":"#/definitions/diagnostic","title":"Controls reporting improper use of type variables within function signatures","default":"warning"},"reportCallInDefaultInitializer":{"$ref":"#/definitions/diagnostic","title":"Controls reporting usage of function calls within a default value initializer expression","default":"none"},"reportUnnecessaryIsInstance":{"$ref":"#/definitions/diagnostic","title":"Controls reporting calls to 'isinstance' or 'issubclass' where the result is statically determined to be always (or never) true","default":"none"},"reportUnnecessaryCast":{"$ref":"#/definitions/diagnostic","title":"Controls reporting calls to 'cast' that are unnecessary","default":"none"},"reportUnnecessaryComparison":{"$ref":"#/definitions/diagnostic","title":"Controls reporting the use of '==' or '!=' comparisons that are unnecessary","default":"none"},"reportUnnecessaryContains":{"$ref":"#/definitions/diagnostic","title":"Controls reporting the use of 'in' operations that are unnecessary","default":"none"},"reportAssertAlwaysTrue":{"$ref":"#/definitions/diagnostic","title":"Controls reporting assert expressions that will always evaluate to true","default":"warning"},"reportSelfClsParameterName":{"$ref":"#/definitions/diagnostic","title":"Controls reporting missing or misnamed self parameters","default":"warning"},"reportImplicitStringConcatenation":{"$ref":"#/definitions/diagnostic","title":"Controls reporting usage of implicit concatenation of string literals","default":"none"},"reportUnboundVariable":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of attempts to use an unbound variable","default":"error"},"reportUnhashable":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of unhashable object in container that requires hashability","default":"error"},"reportUndefinedVariable":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of attempts to use an undefined variable","default":"error"},"reportInvalidStubStatement":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of type stub statements that do not conform to PEP 484","default":"none"},"reportIncompleteStub":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of incomplete type stubs that declare a module-level __getattr__ function","default":"none"},"reportUnsupportedDunderAll":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of unsupported operations performed on __all__","default":"warning"},"reportUnusedCallResult":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of call expressions whose results are not consumed","default":"none"},"reportUnusedCoroutine":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of call expressions that returns Coroutine whose results are not consumed","default":"error"},"reportUnusedExcept":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of unreachable except clauses","default":"error"},"reportUnusedExpression":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of simple expressions whose value is not used in any way","default":"warning"},"reportUnnecessaryTypeIgnoreComment":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of '# type: ignore' comments that have no effect'","default":"none"},"reportMatchNotExhaustive":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of 'match' statements that do not exhaustively match all possible values","default":"none"},"reportUnreachable":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of code that is determined by type analysis to be unreachable","default":"none"},"reportShadowedImports":{"$ref":"#/definitions/diagnostic","title":"Controls reporting of shadowed imports of stdlib modules","default":"none"},"reportImplicitOverride":{"$ref":"#/definitions/diagnostic","title":"Controls reporting overridden methods that are missing an `@override` decorator","default":"none"}},"properties":{"extends":{"type":"string","title":"Path to configuration file that this configuration extends","pattern":"^(.*)$"},"include":{"type":"array","title":"Files and directories included in type analysis","items":{"type":"string","title":"File or directory to include in type analysis","pattern":"^(.*)$"}},"exclude":{"type":"array","title":"Files and directories excluded from type analysis","items":{"type":"string","title":"File or directory to exclude from type analysis","pattern":"^(.*)$"}},"ignore":{"type":"array","title":"Files and directories whose diagnostics are suppressed","items":{"type":"string","title":"File or directory where diagnostics should be suppressed","pattern":"^(.*)$"}},"strict":{"type":"array","title":"Files and directories that should use 'strict' type checking rules","items":{"type":"string","title":"File or directory that should use 'strict' type checking rules","pattern":"^(.*)$"}},"defineConstant":{"type":"object","title":"Identifiers that should be treated as constants","properties":{},"additionalProperties":{"type":["string","boolean"],"title":"Value of constant (boolean or string)"}},"typeCheckingMode":{"type":"string","enum":["off","basic","standard","strict"],"title":"Specifies the default rule set to use for type checking","default":"standard"},"useLibraryCodeForTypes":{"type":"boolean","title":"Use library implementations to extract type information when type stub is not present","default":true},"typeshedPath":{"type":"string","title":"Path to directory containing typeshed type stub files","default":"","pattern":"^(.*)$"},"stubPath":{"type":"string","title":"Path to directory containing custom type stub files","default":"./typings","examples":["src/typestubs"],"pattern":"^(.*)$"},"disableBytesTypePromotions":{"$ref":"#/definitions/disableBytesTypePromotions"},"strictListInference":{"$ref":"#/definitions/strictListInference"},"strictSetInference":{"$ref":"#/definitions/strictSetInference"},"strictDictionaryInference":{"$ref":"#/definitions/strictDictionaryInference"},"analyzeUnannotatedFunctions":{"$ref":"#/definitions/analyzeUnannotatedFunctions"},"strictParameterNoneValue":{"$ref":"#/definitions/strictParameterNoneValue"},"enableExperimentalFeatures":{"$ref":"#/definitions/enableExperimentalFeatures"},"enableTypeIgnoreComments":{"$ref":"#/definitions/enableTypeIgnoreComments"},"enableReachabilityAnalysis":{"$ref":"#/definitions/enableReachabilityAnalysis"},"deprecateTypingAliases":{"$ref":"#/definitions/deprecateTypingAliases"},"reportGeneralTypeIssues":{"$ref":"#/definitions/reportGeneralTypeIssues"},"reportPropertyTypeMismatch":{"$ref":"#/definitions/reportPropertyTypeMismatch"},"reportFunctionMemberAccess":{"$ref":"#/definitions/reportFunctionMemberAccess"},"reportMissingImports":{"$ref":"#/definitions/reportMissingImports"},"reportMissingModuleSource":{"$ref":"#/definitions/reportMissingModuleSource"},"reportInvalidTypeForm":{"$ref":"#/definitions/reportInvalidTypeForm"},"reportMissingTypeStubs":{"$ref":"#/definitions/reportMissingTypeStubs"},"reportImportCycles":{"$ref":"#/definitions/reportImportCycles"},"reportUnusedImport":{"$ref":"#/definitions/reportUnusedImport"},"reportUnusedClass":{"$ref":"#/definitions/reportUnusedClass"},"reportUnusedFunction":{"$ref":"#/definitions/reportUnusedFunction"},"reportUnusedVariable":{"$ref":"#/definitions/reportUnusedVariable"},"reportDuplicateImport":{"$ref":"#/definitions/reportDuplicateImport"},"reportWildcardImportFromLibrary":{"$ref":"#/definitions/reportWildcardImportFromLibrary"},"reportAbstractUsage":{"$ref":"#/definitions/reportAbstractUsage"},"reportArgumentType":{"$ref":"#/definitions/reportArgumentType"},"reportAssertTypeFailure":{"$ref":"#/definitions/reportAssertTypeFailure"},"reportAssignmentType":{"$ref":"#/definitions/reportAssignmentType"},"reportAttributeAccessIssue":{"$ref":"#/definitions/reportAttributeAccessIssue"},"reportCallIssue":{"$ref":"#/definitions/reportCallIssue"},"reportInconsistentOverload":{"$ref":"#/definitions/reportInconsistentOverload"},"reportIndexIssue":{"$ref":"#/definitions/reportIndexIssue"},"reportInvalidTypeArguments":{"$ref":"#/definitions/reportInvalidTypeArguments"},"reportNoOverloadImplementation":{"$ref":"#/definitions/reportNoOverloadImplementation"},"reportOperatorIssue":{"$ref":"#/definitions/reportOperatorIssue"},"reportOptionalSubscript":{"$ref":"#/definitions/reportOptionalSubscript"},"reportOptionalMemberAccess":{"$ref":"#/definitions/reportOptionalMemberAccess"},"reportOptionalCall":{"$ref":"#/definitions/reportOptionalCall"},"reportOptionalIterable":{"$ref":"#/definitions/reportOptionalIterable"},"reportOptionalContextManager":{"$ref":"#/definitions/reportOptionalContextManager"},"reportOptionalOperand":{"$ref":"#/definitions/reportOptionalOperand"},"reportRedeclaration":{"$ref":"#/definitions/reportRedeclaration"},"reportReturnType":{"$ref":"#/definitions/reportReturnType"},"reportTypedDictNotRequiredAccess":{"$ref":"#/definitions/reportTypedDictNotRequiredAccess"},"reportUntypedFunctionDecorator":{"$ref":"#/definitions/reportUntypedFunctionDecorator"},"reportUntypedClassDecorator":{"$ref":"#/definitions/reportUntypedClassDecorator"},"reportUntypedBaseClass":{"$ref":"#/definitions/reportUntypedBaseClass"},"reportUntypedNamedTuple":{"$ref":"#/definitions/reportUntypedNamedTuple"},"reportPrivateUsage":{"$ref":"#/definitions/reportPrivateUsage"},"reportTypeCommentUsage":{"$ref":"#/definitions/reportTypeCommentUsage"},"reportPrivateImportUsage":{"$ref":"#/definitions/reportPrivateImportUsage"},"reportConstantRedefinition":{"$ref":"#/definitions/reportConstantRedefinition"},"reportDeprecated":{"$ref":"#/definitions/reportDeprecated"},"reportIncompatibleMethodOverride":{"$ref":"#/definitions/reportIncompatibleMethodOverride"},"reportIncompatibleVariableOverride":{"$ref":"#/definitions/reportIncompatibleVariableOverride"},"reportInconsistentConstructor":{"$ref":"#/definitions/reportInconsistentConstructor"},"reportOverlappingOverload":{"$ref":"#/definitions/reportOverlappingOverload"},"reportPossiblyUnboundVariable":{"$ref":"#/definitions/reportPossiblyUnboundVariable"},"reportMissingSuperCall":{"$ref":"#/definitions/reportMissingSuperCall"},"reportUninitializedInstanceVariable":{"$ref":"#/definitions/reportUninitializedInstanceVariable"},"reportInvalidStringEscapeSequence":{"$ref":"#/definitions/reportInvalidStringEscapeSequence"},"reportUnknownParameterType":{"$ref":"#/definitions/reportUnknownParameterType"},"reportUnknownArgumentType":{"$ref":"#/definitions/reportUnknownArgumentType"},"reportUnknownLambdaType":{"$ref":"#/definitions/reportUnknownLambdaType"},"reportUnknownVariableType":{"$ref":"#/definitions/reportUnknownVariableType"},"reportUnknownMemberType":{"$ref":"#/definitions/reportUnknownMemberType"},"reportMissingParameterType":{"$ref":"#/definitions/reportMissingParameterType"},"reportMissingTypeArgument":{"$ref":"#/definitions/reportMissingTypeArgument"},"reportInvalidTypeVarUse":{"$ref":"#/definitions/reportInvalidTypeVarUse"},"reportCallInDefaultInitializer":{"$ref":"#/definitions/reportCallInDefaultInitializer"},"reportUnnecessaryIsInstance":{"$ref":"#/definitions/reportUnnecessaryIsInstance"},"reportUnnecessaryCast":{"$ref":"#/definitions/reportUnnecessaryCast"},"reportUnnecessaryComparison":{"$ref":"#/definitions/reportUnnecessaryComparison"},"reportUnnecessaryContains":{"$ref":"#/definitions/reportUnnecessaryContains"},"reportAssertAlwaysTrue":{"$ref":"#/definitions/reportAssertAlwaysTrue"},"reportSelfClsParameterName":{"$ref":"#/definitions/reportSelfClsParameterName"},"reportImplicitStringConcatenation":{"$ref":"#/definitions/reportImplicitStringConcatenation"},"reportUnboundVariable":{"$ref":"#/definitions/reportUnboundVariable"},"reportUnhashable":{"$ref":"#/definitions/reportUnhashable"},"reportUndefinedVariable":{"$ref":"#/definitions/reportUndefinedVariable"},"reportInvalidStubStatement":{"$ref":"#/definitions/reportInvalidStubStatement"},"reportIncompleteStub":{"$ref":"#/definitions/reportIncompleteStub"},"reportUnsupportedDunderAll":{"$ref":"#/definitions/reportUnsupportedDunderAll"},"reportUnusedCallResult":{"$ref":"#/definitions/reportUnusedCallResult"},"reportUnusedCoroutine":{"$ref":"#/definitions/reportUnusedCoroutine"},"reportUnusedExcept":{"$ref":"#/definitions/reportUnusedExcept"},"reportUnusedExpression":{"$ref":"#/definitions/reportUnusedExpression"},"reportUnnecessaryTypeIgnoreComment":{"$ref":"#/definitions/reportUnnecessaryTypeIgnoreComment"},"reportMatchNotExhaustive":{"$ref":"#/definitions/reportMatchNotExhaustive"},"reportUnreachable":{"$ref":"#/definitions/reportUnreachable"},"reportShadowedImports":{"$ref":"#/definitions/reportShadowedImports"},"reportImplicitOverride":{"$ref":"#/definitions/reportImplicitOverride"},"extraPaths":{"$ref":"#/definitions/extraPaths"},"pythonVersion":{"$ref":"#/definitions/pythonVersion"},"pythonPlatform":{"$ref":"#/definitions/pythonPlatform"},"venvPath":{"type":"string","title":"Path to directory containing a folder of virtual environments","default":"","pattern":"^(.*)$"},"venv":{"type":"string","title":"Name of virtual environment subdirectory within venvPath","default":"","examples":["python37"],"pattern":"^(.*)$"},"verboseOutput":{"type":"boolean","title":"Output verbose logging","default":false},"executionEnvironments":{"type":"array","title":"Analysis settings to use for specified subdirectories of code","items":{"type":"object","title":"Analysis settings to use for specified subdirectories of code","required":["root"],"properties":{"root":{"type":"string","title":"Path to code subdirectory to which these settings apply","default":"","pattern":"^(.*)$"},"disableBytesTypePromotions":{"$ref":"#/definitions/disableBytesTypePromotions"},"strictListInference":{"$ref":"#/definitions/strictListInference"},"strictSetInference":{"$ref":"#/definitions/strictSetInference"},"strictDictionaryInference":{"$ref":"#/definitions/strictDictionaryInference"},"analyzeUnannotatedFunctions":{"$ref":"#/definitions/analyzeUnannotatedFunctions"},"strictParameterNoneValue":{"$ref":"#/definitions/strictParameterNoneValue"},"enableExperimentalFeatures":{"$ref":"#/definitions/enableExperimentalFeatures"},"enableTypeIgnoreComments":{"$ref":"#/definitions/enableTypeIgnoreComments"},"enableReachabilityAnalysis":{"$ref":"#/definitions/enableReachabilityAnalysis"},"deprecateTypingAliases":{"$ref":"#/definitions/deprecateTypingAliases"},"reportGeneralTypeIssues":{"$ref":"#/definitions/reportGeneralTypeIssues"},"reportPropertyTypeMismatch":{"$ref":"#/definitions/reportPropertyTypeMismatch"},"reportFunctionMemberAccess":{"$ref":"#/definitions/reportFunctionMemberAccess"},"reportMissingImports":{"$ref":"#/definitions/reportMissingImports"},"reportMissingModuleSource":{"$ref":"#/definitions/reportMissingModuleSource"},"reportInvalidTypeForm":{"$ref":"#/definitions/reportInvalidTypeForm"},"reportMissingTypeStubs":{"$ref":"#/definitions/reportMissingTypeStubs"},"reportImportCycles":{"$ref":"#/definitions/reportImportCycles"},"reportUnusedImport":{"$ref":"#/definitions/reportUnusedImport"},"reportUnusedClass":{"$ref":"#/definitions/reportUnusedClass"},"reportUnusedFunction":{"$ref":"#/definitions/reportUnusedFunction"},"reportUnusedVariable":{"$ref":"#/definitions/reportUnusedVariable"},"reportDuplicateImport":{"$ref":"#/definitions/reportDuplicateImport"},"reportWildcardImportFromLibrary":{"$ref":"#/definitions/reportWildcardImportFromLibrary"},"reportAbstractUsage":{"$ref":"#/definitions/reportAbstractUsage"},"reportArgumentType":{"$ref":"#/definitions/reportArgumentType"},"reportAssertTypeFailure":{"$ref":"#/definitions/reportAssertTypeFailure"},"reportAssignmentType":{"$ref":"#/definitions/reportAssignmentType"},"reportAttributeAccessIssue":{"$ref":"#/definitions/reportAttributeAccessIssue"},"reportCallIssue":{"$ref":"#/definitions/reportCallIssue"},"reportInconsistentOverload":{"$ref":"#/definitions/reportInconsistentOverload"},"reportIndexIssue":{"$ref":"#/definitions/reportIndexIssue"},"reportInvalidTypeArguments":{"$ref":"#/definitions/reportInvalidTypeArguments"},"reportNoOverloadImplementation":{"$ref":"#/definitions/reportNoOverloadImplementation"},"reportOperatorIssue":{"$ref":"#/definitions/reportOperatorIssue"},"reportOptionalSubscript":{"$ref":"#/definitions/reportOptionalSubscript"},"reportOptionalMemberAccess":{"$ref":"#/definitions/reportOptionalMemberAccess"},"reportOptionalCall":{"$ref":"#/definitions/reportOptionalCall"},"reportOptionalIterable":{"$ref":"#/definitions/reportOptionalIterable"},"reportOptionalContextManager":{"$ref":"#/definitions/reportOptionalContextManager"},"reportOptionalOperand":{"$ref":"#/definitions/reportOptionalOperand"},"reportRedeclaration":{"$ref":"#/definitions/reportRedeclaration"},"reportReturnType":{"$ref":"#/definitions/reportReturnType"},"reportTypedDictNotRequiredAccess":{"$ref":"#/definitions/reportTypedDictNotRequiredAccess"},"reportUntypedFunctionDecorator":{"$ref":"#/definitions/reportUntypedFunctionDecorator"},"reportUntypedClassDecorator":{"$ref":"#/definitions/reportUntypedClassDecorator"},"reportUntypedBaseClass":{"$ref":"#/definitions/reportUntypedBaseClass"},"reportUntypedNamedTuple":{"$ref":"#/definitions/reportUntypedNamedTuple"},"reportPrivateUsage":{"$ref":"#/definitions/reportPrivateUsage"},"reportTypeCommentUsage":{"$ref":"#/definitions/reportTypeCommentUsage"},"reportPrivateImportUsage":{"$ref":"#/definitions/reportPrivateImportUsage"},"reportConstantRedefinition":{"$ref":"#/definitions/reportConstantRedefinition"},"reportDeprecated":{"$ref":"#/definitions/reportDeprecated"},"reportIncompatibleMethodOverride":{"$ref":"#/definitions/reportIncompatibleMethodOverride"},"reportIncompatibleVariableOverride":{"$ref":"#/definitions/reportIncompatibleVariableOverride"},"reportInconsistentConstructor":{"$ref":"#/definitions/reportInconsistentConstructor"},"reportOverlappingOverload":{"$ref":"#/definitions/reportOverlappingOverload"},"reportPossiblyUnboundVariable":{"$ref":"#/definitions/reportPossiblyUnboundVariable"},"reportMissingSuperCall":{"$ref":"#/definitions/reportMissingSuperCall"},"reportUninitializedInstanceVariable":{"$ref":"#/definitions/reportUninitializedInstanceVariable"},"reportInvalidStringEscapeSequence":{"$ref":"#/definitions/reportInvalidStringEscapeSequence"},"reportUnknownParameterType":{"$ref":"#/definitions/reportUnknownParameterType"},"reportUnknownArgumentType":{"$ref":"#/definitions/reportUnknownArgumentType"},"reportUnknownLambdaType":{"$ref":"#/definitions/reportUnknownLambdaType"},"reportUnknownVariableType":{"$ref":"#/definitions/reportUnknownVariableType"},"reportUnknownMemberType":{"$ref":"#/definitions/reportUnknownMemberType"},"reportMissingParameterType":{"$ref":"#/definitions/reportMissingParameterType"},"reportMissingTypeArgument":{"$ref":"#/definitions/reportMissingTypeArgument"},"reportInvalidTypeVarUse":{"$ref":"#/definitions/reportInvalidTypeVarUse"},"reportCallInDefaultInitializer":{"$ref":"#/definitions/reportCallInDefaultInitializer"},"reportUnnecessaryIsInstance":{"$ref":"#/definitions/reportUnnecessaryIsInstance"},"reportUnnecessaryCast":{"$ref":"#/definitions/reportUnnecessaryCast"},"reportUnnecessaryComparison":{"$ref":"#/definitions/reportUnnecessaryComparison"},"reportUnnecessaryContains":{"$ref":"#/definitions/reportUnnecessaryContains"},"reportAssertAlwaysTrue":{"$ref":"#/definitions/reportAssertAlwaysTrue"},"reportSelfClsParameterName":{"$ref":"#/definitions/reportSelfClsParameterName"},"reportImplicitStringConcatenation":{"$ref":"#/definitions/reportImplicitStringConcatenation"},"reportUnboundVariable":{"$ref":"#/definitions/reportUnboundVariable"},"reportUnhashable":{"$ref":"#/definitions/reportUnhashable"},"reportUndefinedVariable":{"$ref":"#/definitions/reportUndefinedVariable"},"reportInvalidStubStatement":{"$ref":"#/definitions/reportInvalidStubStatement"},"reportIncompleteStub":{"$ref":"#/definitions/reportIncompleteStub"},"reportUnsupportedDunderAll":{"$ref":"#/definitions/reportUnsupportedDunderAll"},"reportUnusedCallResult":{"$ref":"#/definitions/reportUnusedCallResult"},"reportUnusedCoroutine":{"$ref":"#/definitions/reportUnusedCoroutine"},"reportUnusedExcept":{"$ref":"#/definitions/reportUnusedExcept"},"reportUnusedExpression":{"$ref":"#/definitions/reportUnusedExpression"},"reportUnnecessaryTypeIgnoreComment":{"$ref":"#/definitions/reportUnnecessaryTypeIgnoreComment"},"reportMatchNotExhaustive":{"$ref":"#/definitions/reportMatchNotExhaustive"},"reportUnreachable":{"$ref":"#/definitions/reportUnreachable"},"reportShadowedImports":{"$ref":"#/definitions/reportShadowedImports"},"reportImplicitOverride":{"$ref":"#/definitions/reportImplicitOverride"},"extraPaths":{"$ref":"#/definitions/extraPaths"},"pythonVersion":{"$ref":"#/definitions/pythonVersion"},"pythonPlatform":{"$ref":"#/definitions/pythonPlatform"}}}}}}
</schema>

[User] Provide a JSON object that satisfies the schema "pyrightconfig.schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Pyright Configuration Schema

Additional import search resolution paths

Additional import search resolution path

Python version to assume during type analysis

Python platform to assume during type analysis

Do not treat `bytearray` and `memoryview` as implicit subtypes of `bytes`

Infer strict types for list expressions

Infer strict types for set expressions

Infer strict types for dictionary expressions

Analyze and report diagnostics for functions that have no annotations

Allow implicit Optional when default parameter value is None

Enable the use of experimental features that are not part of the Python typing spec

Allow "# type: ignore" comments

Identify code determined to be unreachable through type analysis

Treat typing-specific aliases to standard types as deprecated

Controls reporting of general type issues

Controls reporting of property getter/setter type mismatches

Controls reporting of member accesses on function objects

Controls reporting of imports that cannot be resolved

Controls reporting of imports that cannot be resolved to source files

Controls reporting of type expressions that use an invalid form

Controls reporting of imports that cannot be resolved to type stub files

Controls reporting of module imports that create cycles in import graph

Controls reporting of imported symbols that are not referenced within the source file

Controls reporting of private classes that are not accessed

Controls reporting of private functions or methods that are not accessed

Controls reporting of local variables that are not accessed

Controls reporting of symbols or modules that are imported more than once

Controls reporting of wildcard import from external library

Controls reporting of attempted instantiation of abstract class

Controls reporting of incompatible argument type

Controls reporting of type mismatch detected by typing.assert_type call

Controls reporting of type incompatibilities for assignments

Controls reporting of issues related to attribute accesses

Controls reporting of issues related to call expressions and arguments

Controls reporting of inconsistencies between function overload signatures

Controls reporting of issues related to index operations and expressions

Controls reporting of invalid type argument usage

Controls reporting of an overloaded function or method with a missing implementation

Controls reporting of diagnostics related to unary and binary operators

Controls reporting of attempts to subscript (index) a variable with Optional type

Controls reporting of attempts to access a member of a variable with Optional type

Controls reporting of attempts to call a variable with Optional type

Controls reporting of attempts to use an Optional type as an iterable value

Controls reporting of attempts to use an Optional type as a parameter to a with statement

Controls reporting of attempts to use an Optional type as an operand for a binary or unary operator

Controls reporting of attempts to declare the type of a symbol multiple times

Controls reporting of function return type incompatibility

Controls reporting of attempts to access a non-required key in a TypedDict without a check for its presence

Controls reporting of function decorators without type annotations, which obscure function types

Controls reporting of class decorators without type annotations, which obscure class types

Controls reporting of a base class of an unknown type, which obscures most type checking for the class

Controls reporting of a named tuple definition that does not contain type information

Controls reporting of private variables and functions used outside of the owning class or module and usage of protected members outside of subclasses

Controls reporting of deprecated type comment usage

Controls reporting of improper usage of symbol imported from a "py.typed" module that is not re-exported from that module

Controls reporting of attempts to redefine variables that are in all-caps

Controls reporting of use of deprecated class or function

Controls reporting of method overrides in subclasses that redefine the method in an incompatible way

Controls reporting of overrides in subclasses that redefine a variable in an incompatible way

Controls reporting of __init__ and __new__ methods whose signatures are inconsistent

Controls reporting of function overloads that overlap in signature and obscure each other or do not agree on return type

Controls reporting of attempts to use variable that is possibly unbound on some code paths

Controls reporting of missing call to parent class for inherited `__init__` methods

Controls reporting of instance variables that are not initialized in the constructor

Controls reporting of invalid escape sequences used within string literals

Controls reporting input and return parameters whose types are unknown

Controls reporting argument expressions whose types are unknown

Controls reporting input and return parameters for lambdas whose types are unknown

Controls reporting local variables whose types are unknown

Controls reporting class and instance variables whose types are unknown

Controls reporting input parameters that are missing a type annotation

Controls reporting generic class reference with missing type arguments

Controls reporting improper use of type variables within function signatures

Controls reporting usage of function calls within a default value initializer expression

Controls reporting calls to 'isinstance' or 'issubclass' where the result is statically determined to be always (or never) true

Controls reporting calls to 'cast' that are unnecessary

Controls reporting the use of '==' or '!=' comparisons that are unnecessary

Controls reporting the use of 'in' operations that are unnecessary

Controls reporting assert expressions that will always evaluate to true

Controls reporting missing or misnamed self parameters

Controls reporting usage of implicit concatenation of string literals

Controls reporting of attempts to use an unbound variable

Controls reporting of unhashable object in container that requires hashability

Controls reporting of attempts to use an undefined variable

Controls reporting of type stub statements that do not conform to PEP 484

Controls reporting of incomplete type stubs that declare a module-level __getattr__ function

Controls reporting of unsupported operations performed on __all__

Controls reporting of call expressions whose results are not consumed

Controls reporting of call expressions that returns Coroutine whose results are not consumed

Controls reporting of unreachable except clauses

Controls reporting of simple expressions whose value is not used in any way

Controls reporting of '# type: ignore' comments that have no effect'

Controls reporting of 'match' statements that do not exhaustively match all possible values

Controls reporting of code that is determined by type analysis to be unreachable

Controls reporting of shadowed imports of stdlib modules

Controls reporting overridden methods that are missing an `@override` decorator

Path to configuration file that this configuration extends

Files and directories included in type analysis

File or directory to include in type analysis

Files and directories excluded from type analysis

File or directory to exclude from type analysis

Files and directories whose diagnostics are suppressed

File or directory where diagnostics should be suppressed

Files and directories that should use 'strict' type checking rules

File or directory that should use 'strict' type checking rules

Identifiers that should be treated as constants

Value of constant (boolean or string)

Specifies the default rule set to use for type checking

Use library implementations to extract type information when type stub is not present

Path to directory containing typeshed type stub files

Path to directory containing custom type stub files

Path to directory containing a folder of virtual environments

Name of virtual environment subdirectory within venvPath

Output verbose logging

Analysis settings to use for specified subdirectories of code

Path to code subdirectory to which these settings apply

Provide a JSON object that satisfies the schema "pyrightconfig.schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[User] Provide a JSON object that satisfies the schema "JSON schema for Pyrseas yaml files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

all insert delete select update truncate references trigger usage execute create

5 types: Base Type, Composite, Enum, Domain, Range

JSON schema for Pyrseas yaml files

Provide a JSON object that satisfies the schema "JSON schema for Pyrseas yaml files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","additionalProperties":false,"definitions":{"generator":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"enum":["CSharp","TsInterfaceFromDto"]},"options":{"description":"Generators are loosely coupled. Options are passed as a string dictionary. Only strings here sorry.","type":"object","additionalProperties":{"type":"string"}}}}},"description":"A configuration file for Queryfirst (https://queryfirst.net), named qfconfig.json","id":"https://json.schemastore.org/qfconfig.json","properties":{"defaultConnection":{"type":"string"},"provider":{"enum":["Microsoft.Data.SqlClient","MySql.Data.MySqlClient","Npgsql","System.Data.SqlClient"]},"generators":{"type":"array","items":{"$ref":"#/definitions/generator"}},"connectEditor2DB":{"type":"boolean"},"helperAssemblies":{"type":"array","items":{"type":"string"}},"makeSelfTest":{"type":"boolean","description":"Should QueryFirst add a selfTest method to the generated code? You will need add xunit and QueryFirst.CoreLib nugets to your project."},"repoSuffix":{"type":"string","description":"Suffix to append to the query base name to get the generated repository class name"},"dtoSuffix":{"type":"string","description":"Suffix to append to the query base name to get the result class name"}},"type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "qfconfig". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Generators are loosely coupled. Options are passed as a string dictionary. Only strings here sorry.

A configuration file for Queryfirst (https://queryfirst.net), named qfconfig.json

Should QueryFirst add a selfTest method to the generated code? You will need add xunit and QueryFirst.CoreLib nugets to your project.

Suffix to append to the query base name to get the generated repository class name

Suffix to append to the query base name to get the result class name

Provide a JSON object that satisfies the schema "qfconfig". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.