2013-06-19 09:56:38 -04:00
{
"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" ,
2013-06-22 19:17:17 -04:00
"pattern" : "^(\\d+(\\.\\d+)*)$"
2013-06-19 09:56:38 -04:00
} ,
2013-07-06 16:38:22 -04:00
"generator" : {
"description" : "Name and version of the program that produced this file." ,
"type" : "string" ,
2013-07-19 12:03:16 -04:00
"pattern" : "^[0-9A-Za-z]([0-9A-Za-z_.-]*[0-9A-Za-z])( \\(.*\\))?$"
2013-07-06 16:38:22 -04:00
} ,
2013-06-19 09:56:38 -04:00
"name" : {
"description" : "The name of the distribution." ,
"type" : "string" ,
2013-08-03 09:42:56 -04:00
"$ref" : "#/definitions/distribution_name"
2013-06-19 09:56:38 -04:00
} ,
"version" : {
"description" : "The distribution's public version identifier" ,
"type" : "string" ,
2013-06-22 19:17:17 -04:00
"pattern" : "^(\\d+(\\.\\d+)*)((a|b|c|rc)(\\d+))?(\\.(post)(\\d+))?(\\.(dev)(\\d+))?$"
2013-06-19 09:56:38 -04:00
} ,
"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"
}
} ,
2013-07-14 09:27:22 -04:00
"meta_requires" : {
2013-06-19 09:56:38 -04:00
"description" : "A list of subdistributions made available through this metadistribution." ,
"type" : "array" ,
"$ref" : "#/definitions/dependencies"
} ,
"run_requires" : {
2013-07-14 09:27:22 -04:00
"description" : "A list of other distributions needed to run this distribution." ,
2013-06-19 09:56:38 -04:00
"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" : {
2013-07-14 09:27:22 -04:00
"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)" ,
2013-06-19 09:56:38 -04:00
"type" : "array" ,
"items" : {
2013-07-14 09:27:22 -04:00
"type" : "string" ,
"$ref" : "#/definitions/provides_declaration"
2013-06-19 09:56:38 -04:00
}
} ,
2013-08-02 11:13:56 -04:00
"modules" : {
"description" : "A list of modules and/or packages available for import after installing this distribution." ,
"type" : "array" ,
"items" : {
"type" : "string" ,
"$ref" : "#/definitions/dotted_name"
}
} ,
"namespaces" : {
"description" : "A list of namespace packages this distribution contributes to" ,
"type" : "array" ,
"items" : {
"type" : "string" ,
"$ref" : "#/definitions/dotted_name"
}
} ,
"commands" : {
"description" : "Command line interfaces provided by this distribution" ,
"type" : "object" ,
"$ref" : "#/definitions/commands"
} ,
"exports" : {
"description" : "Other exported interfaces provided by this distribution" ,
"type" : "object" ,
"$ref" : "#/definitions/exports"
} ,
2013-06-19 09:56:38 -04:00
"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" ,
2013-07-14 09:27:22 -04:00
"$ref" : "#/definitions/requirement"
2013-06-19 09:56:38 -04:00
} ,
"supports_environments" : {
"description" : "A list of strings specifying the environments that the distribution explicitly supports." ,
"type" : "array" ,
"items" : {
"type" : "string" ,
"$ref" : "#/definitions/environment_marker"
}
} ,
2013-07-14 09:27:22 -04:00
"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" ,
2013-08-02 11:13:56 -04:00
"$ref" : "#/definitions/export_specifier"
2013-07-14 09:27:22 -04:00
} ,
"preuninstall" : {
"type" : "string" ,
2013-08-02 11:13:56 -04:00
"$ref" : "#/definitions/export_specifier"
2013-07-14 09:27:22 -04:00
}
}
2013-06-19 09:56:38 -04:00
} ,
"extensions" : {
"description" : "Extensions to the metadata may be present in a mapping under the 'extensions' key." ,
"type" : "object"
}
} ,
2013-07-14 09:27:22 -04:00
"required" : [ "metadata_version" , "name" , "version" , "summary" ] ,
2013-06-19 09:56:38 -04:00
"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" : {
2013-07-14 09:27:22 -04:00
"type" : "object" ,
"$ref" : "#/definitions/dependency"
2013-06-19 09:56:38 -04:00
}
} ,
2013-07-14 09:27:22 -04:00
"dependency" : {
"type" : "object" ,
"properties" : {
"extra" : {
"type" : "string" ,
"$ref" : "#/definitions/valid_name"
} ,
"environment" : {
"type" : "string" ,
"$ref" : "#/definitions/environment_marker"
} ,
"requires" : {
"type" : "array" ,
"items" : {
2013-06-19 09:56:38 -04:00
"type" : "string" ,
2013-07-14 09:27:22 -04:00
"$ref" : "#/definitions/requirement"
2013-06-19 09:56:38 -04:00
}
2013-07-14 09:27:22 -04:00
}
} ,
"required" : [ "requires" ] ,
"additionalProperties" : false
2013-06-19 09:56:38 -04:00
} ,
2013-08-02 11:13:56 -04:00
"commands" : {
"type" : "object" ,
"properties" : {
"wrap_console" : {
"type" : "object" ,
2013-08-03 09:42:56 -04:00
"$ref" : "#/definitions/command_map"
2013-08-02 11:13:56 -04:00
} ,
"wrap_gui" : {
"type" : "object" ,
2013-08-03 09:42:56 -04:00
"$ref" : "#/definitions/command_map"
2013-08-02 11:13:56 -04:00
} ,
"prebuilt" : {
"type" : "array" ,
"items" : {
"type" : "string" ,
"$ref" : "#/definitions/relative_path"
}
}
} ,
"additionalProperties" : false
} ,
"exports" : {
"type" : "object" ,
"patternProperties" : {
2013-08-03 09:42:56 -04:00
"^[A-Za-z]([0-9A-Za-z_])*([.][A-Za-z]([0-9A-Za-z_])*)*$" : {
2013-08-02 11:13:56 -04:00
"type" : "object" ,
2013-08-03 09:42:56 -04:00
"patternProperties" : {
"." : {
"type" : "string" ,
"$ref" : "#/definitions/export_specifier"
}
} ,
"additionalProperties" : false
2013-08-02 11:13:56 -04:00
}
} ,
"additionalProperties" : false
} ,
2013-08-03 09:42:56 -04:00
"command_map" : {
2013-08-02 11:13:56 -04:00
"type" : "object" ,
"patternProperties" : {
"^[0-9A-Za-z]([0-9A-Za-z_.-]*[0-9A-Za-z])?$" : {
"type" : "string" ,
"$ref" : "#/definitions/export_specifier"
} ,
2013-08-03 09:42:56 -04:00
"additionalProperties" : false
} ,
"distribution_name" : {
2013-07-14 09:27:22 -04:00
"type" : "string" ,
"pattern" : "^[0-9A-Za-z]([0-9A-Za-z_.-]*[0-9A-Za-z])?$"
} ,
"requirement" : {
2013-06-19 09:56:38 -04:00
"type" : "string"
} ,
2013-07-14 09:27:22 -04:00
"provides_declaration" : {
2013-06-19 09:56:38 -04:00
"type" : "string"
} ,
"environment_marker" : {
"type" : "string"
} ,
"document_name" : {
"type" : "string"
2013-07-19 12:03:16 -04:00
} ,
"extra_name" : {
"type" : "string"
2013-08-02 11:13:56 -04:00
} ,
"relative_path" : {
"type" : "string"
} ,
"export_specifier" : {
"type" : "string" ,
} ,
"dotted_name" : {
"type" : "string" ,
"pattern" : "^[A-Za-z]([0-9A-Za-z_])*([.][A-Za-z]([0-9A-Za-z_])*)*$"
2013-06-19 09:56:38 -04:00
}
}
}