245 lines
7.4 KiB
JSON
245 lines
7.4 KiB
JSON
{
|
|
"id": "http://www.python.org/dev/peps/pep-0426/",
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Metadata for Python Software Packages 2.0",
|
|
"type": "object",
|
|
"properties": {
|
|
"metadata_version": {
|
|
"description": "Version of the file format",
|
|
"type": "string",
|
|
"pattern": "^(\\d+(\\.\\d+)*)$"
|
|
},
|
|
"generator": {
|
|
"description": "Name and version of the program that produced this file.",
|
|
"type": "string",
|
|
"pattern": "^[0-9A-Za-z]([0-9A-Za-z_.-]*[0-9A-Za-z])( \\((\\d+(\\.\\d+)*)((a|b|c|rc)(\\d+))?(\\.(post)(\\d+))?(\\.(dev)(\\d+))\\))?$"
|
|
},
|
|
"name": {
|
|
"description": "The name of the distribution.",
|
|
"type": "string",
|
|
"$ref": "#/definitions/valid_name"
|
|
},
|
|
"version": {
|
|
"description": "The distribution's public version identifier",
|
|
"type": "string",
|
|
"pattern": "^(\\d+(\\.\\d+)*)((a|b|c|rc)(\\d+))?(\\.(post)(\\d+))?(\\.(dev)(\\d+))?$"
|
|
},
|
|
"source_label": {
|
|
"description": "A constrained identifying text string",
|
|
"type": "string",
|
|
"pattern": "^[0-9a-z_.-+]+$"
|
|
},
|
|
"source_url": {
|
|
"description": "A string containing a full URL where the source for this specific version of the distribution can be downloaded.",
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"summary": {
|
|
"description": "A one-line summary of what the distribution does.",
|
|
"type": "string"
|
|
},
|
|
"document_names": {
|
|
"description": "Names of supporting metadata documents",
|
|
"type": "object",
|
|
"properties": {
|
|
"description": {
|
|
"type": "string",
|
|
"$ref": "#/definitions/document_name"
|
|
},
|
|
"changelog": {
|
|
"type": "string",
|
|
"$ref": "#/definitions/document_name"
|
|
},
|
|
"license": {
|
|
"type": "string",
|
|
"$ref": "#/definitions/document_name"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"keywords": {
|
|
"description": "A list of additional keywords to be used to assist searching for the distribution in a larger catalog.",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"license": {
|
|
"description": "A string indicating the license covering the distribution.",
|
|
"type": "string"
|
|
},
|
|
"classifiers": {
|
|
"description": "A list of strings, with each giving a single classification value for the distribution.",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"contacts": {
|
|
"description": "A list of contributor entries giving the recommended contact points for getting more information about the project.",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/definitions/contact"
|
|
}
|
|
},
|
|
"contributors": {
|
|
"description": "A list of contributor entries for other contributors not already listed as current project points of contact.",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/definitions/contact"
|
|
}
|
|
},
|
|
"project_urls": {
|
|
"description": "A mapping of arbitrary text labels to additional URLs relevant to the project.",
|
|
"type": "object"
|
|
},
|
|
"extras": {
|
|
"description": "A list of optional sets of dependencies that may be used to define conditional dependencies in \"may_require\" and similar fields.",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"$ref": "#/definitions/extra_name"
|
|
}
|
|
},
|
|
"meta_requires": {
|
|
"description": "A list of subdistributions made available through this metadistribution.",
|
|
"type": "array",
|
|
"$ref": "#/definitions/dependencies"
|
|
},
|
|
"run_requires": {
|
|
"description": "A list of other distributions needed to run this distribution.",
|
|
"type": "array",
|
|
"$ref": "#/definitions/dependencies"
|
|
},
|
|
"test_requires": {
|
|
"description": "A list of other distributions needed when this distribution is tested.",
|
|
"type": "array",
|
|
"$ref": "#/definitions/dependencies"
|
|
},
|
|
"build_requires": {
|
|
"description": "A list of other distributions needed when this distribution is built.",
|
|
"type": "array",
|
|
"$ref": "#/definitions/dependencies"
|
|
},
|
|
"dev_requires": {
|
|
"description": "A list of other distributions needed when this distribution is developed.",
|
|
"type": "array",
|
|
"$ref": "#/definitions/dependencies"
|
|
},
|
|
"provides": {
|
|
"description": "A list of strings naming additional dependency requirements that are satisfied by installing this distribution. These strings must be of the form Name or Name (Version)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"$ref": "#/definitions/provides_declaration"
|
|
}
|
|
},
|
|
"obsoleted_by": {
|
|
"description": "A string that indicates that this project is no longer being developed. The named project provides a substitute or replacement.",
|
|
"type": "string",
|
|
"$ref": "#/definitions/requirement"
|
|
},
|
|
"supports_environments": {
|
|
"description": "A list of strings specifying the environments that the distribution explicitly supports.",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"$ref": "#/definitions/environment_marker"
|
|
}
|
|
},
|
|
"install_hooks": {
|
|
"description": "The install_hooks field is used to define various operations that may be invoked on a distribution in a platform independent manner.",
|
|
"type": "object",
|
|
"properties": {
|
|
"postinstall": {
|
|
"type": "string",
|
|
"$ref": "#/definitions/entry_point"
|
|
},
|
|
"preuninstall": {
|
|
"type": "string",
|
|
"$ref": "#/definitions/entry_point"
|
|
}
|
|
}
|
|
},
|
|
"extensions": {
|
|
"description": "Extensions to the metadata may be present in a mapping under the 'extensions' key.",
|
|
"type": "object"
|
|
}
|
|
},
|
|
|
|
"required": ["metadata_version", "name", "version", "summary"],
|
|
"additionalProperties": false,
|
|
|
|
"definitions": {
|
|
"contact": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
},
|
|
"role": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["name"],
|
|
"additionalProperties": false
|
|
},
|
|
"dependencies": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/definitions/dependency"
|
|
}
|
|
},
|
|
"dependency": {
|
|
"type": "object",
|
|
"properties": {
|
|
"extra": {
|
|
"type": "string",
|
|
"$ref": "#/definitions/valid_name"
|
|
},
|
|
"environment": {
|
|
"type": "string",
|
|
"$ref": "#/definitions/environment_marker"
|
|
},
|
|
"requires": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"$ref": "#/definitions/requirement"
|
|
}
|
|
}
|
|
},
|
|
"required": ["requires"],
|
|
"additionalProperties": false
|
|
},
|
|
"valid_name": {
|
|
"type": "string",
|
|
"pattern": "^[0-9A-Za-z]([0-9A-Za-z_.-]*[0-9A-Za-z])?$"
|
|
},
|
|
"requirement": {
|
|
"type": "string"
|
|
},
|
|
"provides_declaration": {
|
|
"type": "string"
|
|
},
|
|
"environment_marker": {
|
|
"type": "string"
|
|
},
|
|
"entry_point": {
|
|
"type": "string"
|
|
},
|
|
"document_name": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|