This PR moves us away from Metadata Control Files and pygeometa and towards defining our own data models to represent metadata for vectors, rasters, tables, and compressed files.
Defining our own models means we can include just we want, in a structure that makes sense to us. For example,
Contact info section is simpler (see models.ContactSchema)
keywords section is simpler: it's just a list of keywords. We lose the ability to define multiple keyword lists that reference different dictionaries, use different languages, etc. If those things are useful, we can build them back in.
vectors & tables can have different schema from rasters, for describing fields vs. bands
Is there anything missing from the new models?
@phargogh I'm using a dataclass feature (keyword-only args) only available since Python 3.10. It doesn't look like there's an easy workaround, so before trying to make this compatible with early versions, I'm submitting as-is and we can discuss if we think it's critical to support earlier.
This PR moves us away from Metadata Control Files and
pygeometa
and towards defining our own data models to represent metadata for vectors, rasters, tables, and compressed files.The parent metadata model is
models.Resource
. It loosely follows https://datapackage.org/standard/data-resource/, but also includes some other properties that we liked from MCF.Defining our own models means we can include just we want, in a structure that makes sense to us. For example,
models.ContactSchema
)Is there anything missing from the new models?
@phargogh I'm using a
dataclass
feature (keyword-only args) only available since Python 3.10. It doesn't look like there's an easy workaround, so before trying to make this compatible with early versions, I'm submitting as-is and we can discuss if we think it's critical to support earlier.