1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
---
title: Fixed length sequences (FixedSeq)
---
Sequences of fixed length can be validated with a series
of different (or the same) types.
```python
from strictyaml import FixedSeq, Str, Map, Int, Float, YAMLValidationError, load
from ensure import Ensure
schema = FixedSeq([Int(), Map({"x": Str()}), Float()])
```
Equivalent list:
```yaml
- 1
- x: 5
- 2.5
```
```python
Ensure(load(yaml_snippet, schema)).equals([1, {"x": "5"}, 2.5, ])
```
Invalid list 1:
```yaml
a: 1
b: 2
c: 3
```
```python
load(yaml_snippet, schema)
```
```python
strictyaml.exceptions.YAMLValidationError:
when expecting a sequence of 3 elements
in "<unicode string>", line 1, column 1:
a: '1'
^ (line: 1)
found a mapping
in "<unicode string>", line 3, column 1:
c: '3'
^ (line: 3)
```
Invalid list 2:
```yaml
- 2
- a
- a:
- 1
- 2
```
```python
load(yaml_snippet, schema)
```
```python
strictyaml.exceptions.YAMLValidationError:
when expecting a mapping
found arbitrary text
in "<unicode string>", line 2, column 1:
- a
^ (line: 2)
```
Invalid list 3:
```yaml
- 1
- a
```
```python
load(yaml_snippet, schema)
```
```python
strictyaml.exceptions.YAMLValidationError:
when expecting a sequence of 3 elements
in "<unicode string>", line 1, column 1:
- '1'
^ (line: 1)
found a sequence of 2 elements
in "<unicode string>", line 2, column 1:
- a
^ (line: 2)
```
!!! note "Executable specification"
Documentation automatically generated from
<a href="https://github.com/crdoconnor/strictyaml/blob/master/hitch/story/fixed-sequence.story">fixed-sequence.story
storytests.
|