You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Decoded records expose a single `fields` mapping keyed by the stable ASCII
125
125
snake_case field `key`. Each field entry includes the official `name`, the raw
126
126
`value`, and an `order` index for stable sorting.
127
127
128
+
### Field keys
129
+
130
+
For programmatic use, each field also has a stable ASCII [snake_case](https://en.wikipedia.org/wiki/Snake_case)`key`.
131
+
132
+
The EURING manuals use field names that may include spaces, hyphens, and mixed case. In many programming environments these are awkward to work with (for example when used as object attributes, column names, or identifiers in code). To make decoded output easier to use in Python, JSON, R, and similar tools, the library exposes a normalized ASCII snake_case `key` for every field.
133
+
134
+
These keys are provided as a practical convenience for developers. They are not part of the formal EURING specification, and consuming systems are free to map them to their own conventions where needed.
135
+
136
+
## EURING Reference Data
137
+
138
+
This package ships with EURING reference data in `src/euring/data`.
139
+
140
+
- All EURING Code tables follow the EURING Manual.
141
+
- EURING-published updates for Species, Ringing Schemes, Place Codes, and Circumstances are curated and checked into the package.
142
+
- End users do not need to refresh data separately.
143
+
128
144
## Data definition
129
145
130
146
EURING vocabulary (as per the manuals):
131
147
132
148
- Record: one encounter record.
133
149
- Field: a single data element within a record.
134
150
- Field name: the official EURING name for a field.
135
-
- Type: the data type assigned to a field (Alphabetic, Alphanumeric, Integer, Numeric, Text).
151
+
- EURING encoding type (`euring_type`): the wire-level constraint assigned to a field
- Value type (`value_type`): the intended data type used by this library for a field.
136
154
- Code: the coded value stored in a field.
137
155
- Code table: the reference table that maps codes to descriptions.
138
156
- Column: fixed-width position in EURING2000 records.
139
157
140
158
EURING uses a record-based format: each record contains a fixed sequence of fields.
141
159
The manuals define official field names (with spaces/hyphens), which we preserve for display.
142
160
161
+
162
+
143
163
### Encoding vs data from an IT perspective
144
164
145
165
A EURING record is UTF-8 text that follows an ASCII-era encoding structure
@@ -188,22 +208,6 @@ the EURING format.
188
208
189
209
This package introduces a signed numeric type (`NumericSigned`) for the EURING2020 fields Latitude and Longitude. `NumericSigned` behaves like `Numeric`, but allows a leading minus sign and explicitly disallows -0. `NumericSigned` is a small, intentional clarification of the generic numeric types. The manuals clearly permit negative Latitude and Longitude in EURING2020, but the generic `Numeric` definition does not describe signed numbers. Making this explicit in the code helps prevent invalid values while staying faithful to the manuals and real-world usage. If a future revision of the specification formally defines signed numeric fields, this implementation can align with it without breaking compatibility.
190
210
191
-
### Field keys
192
-
193
-
For programmatic use, each field also has a stable ASCII [snake_case](https://en.wikipedia.org/wiki/Snake_case)`key`.
194
-
195
-
The EURING manuals use field names that may include spaces, hyphens, and mixed case. In many programming environments these are awkward to work with (for example when used as object attributes, column names, or identifiers in code). To make decoded output easier to use in Python, JSON, R, and similar tools, the library exposes a normalized ASCII snake_case `key` for every field.
196
-
197
-
These keys are provided as a practical convenience for developers. They are not part of the formal EURING specification, and consuming systems are free to map them to their own conventions where needed.
198
-
199
-
## EURING Reference Data
200
-
201
-
This package ships with EURING reference data in `src/euring/data`.
202
-
203
-
- All EURING Code tables follow the EURING Manual.
204
-
- EURING-published updates for Species, Ringing Schemes, Place Codes, and Circumstances are curated and checked into the package.
205
-
- End users do not need to refresh data separately.
0 commit comments