-
Notifications
You must be signed in to change notification settings - Fork 30
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
94 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
%YAML 1.1 | ||
--- | ||
$schema: "http://json-schema.org/draft-04/schema" | ||
id: "http://stsci.edu/schemas/asdf/asdf-schema-1.1.0" | ||
title: | ||
ASDF Schema | ||
description: | | ||
Extending YAML Schema and JSON Schema to add support for some ASDF-specific | ||
checks, related to [ndarrays](ref:core/ndarray-1.1.0). | ||
allOf: | ||
- $ref: "http://stsci.edu/schemas/yaml-schema/draft-01" | ||
- type: object | ||
properties: | ||
max_ndim: | ||
description: | | ||
Specifies that the corresponding **ndarray** is at most the | ||
given number of dimensions. If the array has fewer | ||
dimensions, it should be logically treated as if it were | ||
"broadcast" to the expected dimensions by adding 1's to the | ||
front of the shape list. | ||
type: integer | ||
minimum: 0 | ||
|
||
ndim: | ||
description: | | ||
Specifies that the matching **ndarray** is exactly the given | ||
number of dimensions. | ||
type: integer | ||
minimum: 0 | ||
|
||
datatype: | ||
description: | | ||
Specifies the datatype of the **ndarray**. | ||
By default, an array is considered "matching" if the array | ||
can be cast to the given datatype without data loss. For | ||
exact datatype matching, set `exact_datatype` to `true`. | ||
allOf: | ||
- $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.1.0#/definitions/datatype" | ||
|
||
exact_datatype: | ||
description: | | ||
If `true`, the datatype must match exactly. | ||
type: boolean | ||
default: false | ||
|
||
# Redefine JSON schema validators in terms of this document so that | ||
# we can check nested objects: | ||
additionalItems: | ||
anyOf: | ||
- type: boolean | ||
- $ref: "#" | ||
items: | ||
anyOf: | ||
- $ref: "#" | ||
- $ref: "#/definitions/schemaArray" | ||
additionalProperties: | ||
anyOf: | ||
- type: boolean | ||
- $ref: "#" | ||
definitions: | ||
type: object | ||
additionalProperties: | ||
$ref: "#" | ||
properties: | ||
type: object | ||
additionalProperties: | ||
$ref: "#" | ||
patternProperties: | ||
type: object | ||
additionalProperties: | ||
$ref: "#" | ||
dependencies: | ||
type: object | ||
additionalProperties: | ||
anyOf: | ||
- $ref: "#" | ||
- $ref: "http://json-schema.org/draft-04/schema#/definitions/stringArray" | ||
allOf: | ||
$ref: "#/definitions/schemaArray" | ||
anyOf: | ||
$ref: "#/definitions/schemaArray" | ||
oneOf: | ||
$ref: "#/definitions/schemaArray" | ||
not: | ||
$ref: "#" | ||
|
||
definitions: | ||
schemaArray: | ||
type: array | ||
minItems: 1 | ||
items: | ||
$ref: "#" | ||
... |