1{
2 "$schema": "https://json-schema.org/draft/2020-12/schema",
3 "$id": "https://peps.python.org/pep-9999/core-metadata.schema.json",
4 "title": "Python Packaging Core Metadata",
5 "description": "Core metadata for Python packages",
6 "type": "object",
7 "properties": {
8 "metadata_version": {
9 "type": "string",
10 "pattern": "^(\\d+(\\.\\d+)*)$",
11 "description": "The version of the file format."
12 },
13 "name": {
14 "type": "string",
15 "pattern": "^([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9._-]*[A-Za-z0-9])$",
16 "description": "The name of the distribution."
17 },
18 "version": {
19 "type": "string",
20 "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]+)?$",
21 "description": "The distribution's version number."
22 },
23 "dynamic": {
24 "type": "array",
25 "items": {
26 "type": "string",
27 "enum": [
28 "platform",
29 "supported_platform",
30 "summary",
31 "description",
32 "description_content_type",
33 "keywords",
34 "author",
35 "author_email",
36 "maintainer",
37 "maintainer_email",
38 "license",
39 "license_expression",
40 "license_file",
41 "classifier",
42 "requires_dist",
43 "requires_python",
44 "requires_external",
45 "project_url",
46 "provides_extra",
47 "import_name",
48 "import_namespace",
49 "provides_dist",
50 "obsoletes_dist",
51 "home_page",
52 "download_url",
53 "requires",
54 "provides",
55 "obsoletes"
56 ]
57 },
58 "description": "A list of core metadata fields that are dynamicly calculated."
59 },
60 "platform": {
61 "type": "array",
62 "items": {
63 "type": "string"
64 },
65 "description": "The platforms supported by the distribution."
66 },
67 "supported_platform": {
68 "type": "array",
69 "items": {
70 "type": "string"
71 },
72 "description": "The platforms for which a binary distribution was compiled."
73 },
74 "summary": {
75 "type": "string",
76 "description": "A one-line summary of about the distribution."
77 },
78 "description": {
79 "type": "string",
80 "description": "A longer description of the distribution that can run to several paragraphs."
81 },
82 "description_content_type": {
83 "type": "string",
84 "description": "The content type of the description. In the same format as the HTTP Content-Type header field."
85 },
86 "keywords": {
87 "type": "array",
88 "items": {
89 "type": "string"
90 },
91 "description": "Keywords describing the distribution."
92 },
93 "author": {
94 "type": "string",
95 "description": "The name of the author of the distribution. Additional contact information may be provided."
96 },
97 "author_email": {
98 "type": "string",
99 "description": "The email address of the author or maintainer. It can contain a name and email address in the legal forms for a RFC 822 ``From:`` header."
100 },
101 "maintainer": {
102 "type": "string",
103 "description": "The name of the maintainer. Additional contact information may be provided."
104 },
105 "maintainer_email": {
106 "type": "string",
107 "description": "The email address of the maintainer. It can contain a name and email address in the legal forms for a RFC 822 ``From:`` header."
108 },
109 "license": {
110 "type": "string",
111 "description": "Text indicating the license covering the distribution where the license is not a selection from the “License” Trove classifiers.",
112 "deprecated": true
113 },
114 "license_expression": {
115 "type": "string",
116 "description": "A valid SPDX license expression indicating the license covering the distribution."
117 },
118 "license_file": {
119 "type": "array",
120 "items": {
121 "type": "string"
122 },
123 "description": "Paths to license files relative to the project root directory."
124 },
125 "classifier": {
126 "type": "array",
127 "items": {
128 "type": "string"
129 },
130 "description": "A list of Trove classifiers that describe the nature of the distribution."
131 },
132 "requires_dist": {
133 "type": "array",
134 "items": {
135 "type": "string"
136 },
137 "description": "A list of projects required by the distribution."
138 },
139 "requires_python": {
140 "type": "string",
141 "description": "The Python version for which the distribution is intended."
142 },
143 "requires_external": {
144 "type": "array",
145 "items": {
146 "type": "string"
147 },
148 "description": "A list of external dependencies required by the distribution."
149 },
150 "project_url": {
151 "type": "array",
152 "items": {
153 "type": "object",
154 "properties": {
155 "label": {
156 "type": "string",
157 "description": "The label for the project URL.",
158 "pattern": "^.{1,32}$"
159 },
160 "url": {
161 "type": "string",
162 "description": "The URL for the project URL."
163 }
164 },
165 "additionalProperties": false
166 },
167 "description": "A mapping of arbitrary text labels to additional URLs relevant to the project."
168 },
169 "provides_extra": {
170 "type": "array",
171 "items": {
172 "type": "string",
173 "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
174 },
175 "description": "A list of optional features provided by the distribution."
176 },
177 "import_name": {
178 "type": "array",
179 "items": {
180 "type": "string"
181 },
182 "description": "A list of exclusive import names provided by the distribution."
183 },
184 "import_namespace": {
185 "type": "array",
186 "items": {
187 "type": "string"
188 },
189 "description": "A list of exclusive import namespaces provided by the distribution."
190 },
191 "provides_dist": {
192 "type": "array",
193 "items": {
194 "type": "string"
195 },
196 "description": "A list of project names provided by the distribution."
197 },
198 "obsoletes_dist": {
199 "type": "array",
200 "items": {
201 "type": "string"
202 },
203 "description": "A list of project names that are obsoleted by the distribution."
204 },
205 "home_page": {
206 "type": "string",
207 "description": "The home page of the project.",
208 "deprecated": true
209 },
210 "download_url": {
211 "type": "string",
212 "description": "The URL for the distribution's download page.",
213 "deprecated": true
214 },
215 "requires": {
216 "type": "array",
217 "items": {
218 "type": "string"
219 },
220 "description": "A list of projects required by the distribution.",
221 "deprecated": true
222 },
223 "provides": {
224 "type": "array",
225 "items": {
226 "type": "string"
227 },
228 "description": "A list of projects provided by the distribution.",
229 "deprecated": true
230 },
231 "obsoletes": {
232 "type": "array",
233 "items": {
234 "type": "string"
235 },
236 "description": "A list of projects that are obsoleted by the distribution.",
237 "deprecated": true
238 }
239 }
240}