geowatch.cli.validate_annotation_schemas module¶
CommandLine
python ~/code/watch/dev/validate_annotation_schemas.py
Prereq:
TEST_DPATH=$HOME/tmp/test_smart_schema mkdir -p $TEST_DPATH cd $TEST_DPATH git clone git@smartgitlab.com:TE/annotations.git git clone git@smartgitlab.com:infrastructure/docs.git
pip install jsonschema ubelt -U
- SeeAlso:
~/code/watch/geowatch/geoannots/geomodels.py ~/code/watch/geowatch/cli/validate_annotation_schemas.py ~/code/watch/geowatch/cli/fix_region_models.py
References
https://smartgitlab.com/TE/annotations/-/issues/17 https://smartgitlab.com/TE/standards/-/snippets/18
Example
DVC_DATA_DPATH=$(geowatch_dvc –tags=’phase2_data’ –hardware=auto)
- python -m geowatch.cli.validate_annotation_schemas
–site_models=”$DVC_DATA_DPATH”/annotations/drop7/site_models –region_models=”$DVC_DATA_DPATH”/annotations/drop7/region_models
- python -m geowatch.cli.validate_annotation_schemas
–site_models=”<path-to-site-models>” –region_models=”<path-to-region-models>”
- python -m geowatch.cli.validate_annotation_schemas
–region_models=”$DVC_DATA_DPATH”/annotations/drop6/region_models/AE_C001.geojson
- class geowatch.cli.validate_annotation_schemas.ValidateAnnotationConfig(*args, **kwargs)[source]¶
Bases:
DataConfig
Validate the site / region model schemas
Valid options: []
- Parameters:
*args – positional arguments for this data config
**kwargs – keyword arguments for this data config
- default = {'fixup': <Value(False)>, 'io_workers': <Value('avail')>, 'models': <Value(None)>, 'region_models': <Value(None)>, 'site_models': <Value(None)>, 'strict': <Value(False)>}¶
- main(**kwargs)¶
Example
>>> import ubelt as ub >>> import sys, ubelt >>> from geowatch.cli.validate_annotation_schemas import ValidateAnnotationConfig >>> from geowatch.geoannots import geomodels >>> dpath = ub.Path.appdir('geowatch', 'tests', 'test_validate_geoannot_schema') >>> dpath.ensuredir() >>> region, sites = geomodels.RegionModel.random(with_sites=True) >>> region_fpath = dpath / (region.region_id + '.geojson') >>> region_fpath.write_text(region.dumps()) >>> for site in sites: >>> site_fpath = dpath / (site.site_id + '.geojson') >>> site_fpath.write_text(site.dumps()) >>> kwargs = { >>> 'models': str(dpath / '*.geojson') >>> } >>> cmdline = 0 >>> ValidateAnnotationConfig.main(cmdline=cmdline, **kwargs)
- geowatch.cli.validate_annotation_schemas.main(cmdline=1, **kwargs)[source]¶
Example
>>> import ubelt as ub >>> import sys, ubelt >>> from geowatch.cli.validate_annotation_schemas import ValidateAnnotationConfig >>> from geowatch.geoannots import geomodels >>> dpath = ub.Path.appdir('geowatch', 'tests', 'test_validate_geoannot_schema') >>> dpath.ensuredir() >>> region, sites = geomodels.RegionModel.random(with_sites=True) >>> region_fpath = dpath / (region.region_id + '.geojson') >>> region_fpath.write_text(region.dumps()) >>> for site in sites: >>> site_fpath = dpath / (site.site_id + '.geojson') >>> site_fpath.write_text(site.dumps()) >>> kwargs = { >>> 'models': str(dpath / '*.geojson') >>> } >>> cmdline = 0 >>> ValidateAnnotationConfig.main(cmdline=cmdline, **kwargs)
- geowatch.cli.validate_annotation_schemas.validate_data_contents(region_model_infos, site_model_infos)[source]¶
Content validation (i.e. dates look sane)