Following system colour scheme Selected dark colour scheme Selected light colour scheme

Python Enhancement Proposals

Appendix: JSON Schema for Variant Metadata

  1{
  2  "$schema": "https://json-schema.org/draft/2020-12/schema",
  3  "$id": "https://wheelnext.dev/variants.json",
  4  "title": "{name}-{version}-variants.json",
  5  "description": "Combined index metadata for wheel variants",
  6  "type": "object",
  7  "properties": {
  8    "default-priorities": {
  9      "description": "Default provider priorities",
 10      "type": "object",
 11      "properties": {
 12        "namespace": {
 13          "description": "Default namespace priorities",
 14          "type": "array",
 15          "items": {
 16            "type": "string",
 17            "pattern": "^[a-z0-9_]+$"
 18          },
 19          "minItems": 1,
 20          "uniqueItems": true
 21        },
 22        "feature": {
 23          "description": "Default feature priorities (by namespace)",
 24          "type": "object",
 25          "patternProperties": {
 26            "^[a-z0-9_]+$": {
 27              "description": "Preferred features",
 28              "type": "array",
 29              "items": {
 30                "type": "string",
 31                "pattern": "^[a-z0-9_]+$"
 32              },
 33              "minItems": 0,
 34              "uniqueItems": true
 35            }
 36          },
 37          "additionalProperties": false,
 38          "uniqueItems": true
 39        },
 40        "property": {
 41          "description": "Default property priorities (by namespace)",
 42          "type": "object",
 43          "patternProperties": {
 44            "^[a-z0-9_]+$": {
 45              "description": "Default property priorities (by feature) name",
 46              "type": "object",
 47              "patternProperties": {
 48                "^[a-z0-9_]+$": {
 49                  "type": "array",
 50                  "items": {
 51                    "type": "string",
 52                    "pattern": "^[a-z0-9_.]+$"
 53                  },
 54                  "minItems": 0,
 55                  "uniqueItems": true
 56                }
 57              },
 58              "additionalProperties": false,
 59              "uniqueItems": true
 60            }
 61          },
 62          "additionalProperties": false,
 63          "uniqueItems": true
 64        }
 65      },
 66      "additionalProperties": false,
 67      "uniqueItems": true,
 68      "required": [
 69        "namespace"
 70      ]
 71    },
 72    "providers": {
 73      "description": "Mapping of namespaces to provider information",
 74      "type": "object",
 75      "patternProperties": {
 76        "^[A-Za-z0-9_]+$": {
 77          "type": "object",
 78          "description": "Provider information",
 79          "properties": {
 80            "plugin-api": {
 81              "description": "Object reference to plugin class",
 82              "type": "string",
 83              "pattern": "^([a-zA-Z0-9._]+ *: *[a-zA-Z0-9._]+)|([a-zA-Z0-9._]+)$"
 84            },
 85            "enable-if": {
 86              "description": "Environment marker specifying when to enable the plugin",
 87              "type": "string",
 88              "minLength": 1
 89            },
 90            "optional": {
 91              "description": "Whether the provider is optional",
 92              "type": "boolean"
 93            },
 94            "plugin-use": {
 95              "description": "Whether a plugin is used: not at all, at build time or both at build and install time",
 96              "type": "string",
 97              "enum": [
 98                "none",
 99                "build",
100                "all"
101              ]
102            },
103            "requires": {
104              "description": "Dependency specifiers for how to install the plugin",
105              "type": "array",
106              "items": {
107                "type": "string",
108                "minLength": 1
109              },
110              "minItems": 0,
111              "uniqueItems": true
112            }
113          },
114          "additionalProperties": false,
115          "uniqueItems": true,
116          "required": [
117            "requires"
118          ]
119        }
120      },
121      "additionalProperties": false,
122      "uniqueItems": true
123    },
124    "variants": {
125      "description": "Mapping of variant labels to properties",
126      "type": "object",
127      "patternProperties": {
128        "^[a-z0-9_.]{1,16}$": {
129          "type": "object",
130          "description": "Mapping of namespaces in a variant",
131          "patternProperties": {
132            "^[a-z0-9_.]+$": {
133              "patternProperties": {
134                "^[a-z0-9_.]+$": {
135                  "description": "list of possible values for this variant feature.",
136                  "type": "array",
137                  "items": {
138                    "type": "string",
139                    "pattern": "^[a-z0-9_.]+$"
140                  },
141                  "minItems": 1,
142                  "uniqueItems": true
143                }
144              },
145              "uniqueItems": true,
146              "additionalProperties": false
147            }
148          },
149          "uniqueItems": true,
150          "additionalProperties": false
151        }
152      },
153      "additionalProperties": false,
154      "uniqueItems": true
155    }
156  },
157  "required": [
158    "default-priorities",
159    "providers",
160    "variants"
161  ],
162  "uniqueItems": true
163}