diff --git a/src/validate_pyproject/plugins/setuptools.schema.json b/src/validate_pyproject/plugins/setuptools.schema.json index 11059e4..cafa6c8 100644 --- a/src/validate_pyproject/plugins/setuptools.schema.json +++ b/src/validate_pyproject/plugins/setuptools.schema.json @@ -199,7 +199,14 @@ }, "classifiers": {"$ref": "#/definitions/file-directive"}, "description": {"$ref": "#/definitions/file-directive"}, + "dependencies": {"$ref": "#/definitions/file-directive"}, "entry-points": {"$ref": "#/definitions/file-directive"}, + "optional-dependencies": { + "type": "object", + "propertyNames": {"format": "pep508-identifier"}, + "additionalProperties": false, + "patternProperties": {".+": {"$ref": "#/definitions/file-directive"}} + }, "readme": { "anyOf": [ {"$ref": "#/definitions/file-directive"}, diff --git a/tests/invalid-examples/pretend-setuptools/dependencies/invalid-extra-name.errors.txt b/tests/invalid-examples/pretend-setuptools/dependencies/invalid-extra-name.errors.txt new file mode 100644 index 0000000..922d9dd --- /dev/null +++ b/tests/invalid-examples/pretend-setuptools/dependencies/invalid-extra-name.errors.txt @@ -0,0 +1,3 @@ +`tool.setuptools.dynamic.optional-dependencies` keys must be named by: + + {format: 'pep508-identifier'} diff --git a/tests/invalid-examples/pretend-setuptools/dependencies/invalid-extra-name.toml b/tests/invalid-examples/pretend-setuptools/dependencies/invalid-extra-name.toml new file mode 100644 index 0000000..985baf6 --- /dev/null +++ b/tests/invalid-examples/pretend-setuptools/dependencies/invalid-extra-name.toml @@ -0,0 +1,7 @@ +[project] +name = "myproj" +version = "42" +dynamic = ["optional-dependencies"] + +[tool.setuptools.dynamic.optional-dependencies."non pep508 compliant"] +file = "extra.txt"