-
Notifications
You must be signed in to change notification settings - Fork 4
feat: add detailed sanity checking #212
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
d871490
feat: add detailed sanity checking
ktro2828 0a2d03f
feat: skip if the schema is optional
ktro2828 36a3623
refactor: update display format
ktro2828 64618c0
chore: fix typo and add type hinting
ktro2828 1f432a5
refactor: add base class for field type checker
ktro2828 96d905e
docs: add navigation for schema requirement
ktro2828 fb63e76
refactor: add base class for reference checker
ktro2828 c92e866
feat: add excludes option
ktro2828 caddf8d
docs: update CLI document
ktro2828 89ee0ec
refactor: rename SCH to REC
ktro2828 2ec319a
feat: store reports as list instead of dict
ktro2828 1b4b1d0
feat: add tier4 checker
ktro2828 7c0f132
style: remove unused TYPE_CHECKING
ktro2828 4de416f
feat: add file reference checker
ktro2828 c35b120
refactor: rename ReferenceChecker to RecordReferenceChecker
ktro2828 4afa457
feat: t4sanity performs sanity checking only a single dataset
ktro2828 3be04d7
feat: add lidarseg-relevant reference checkers
ktro2828 0b48f0c
style: add docsrings for class varitables
ktro2828 8cc4c7b
refactor: always print detailed results
ktro2828 ae62130
style: add docstrings
ktro2828 5b054ad
docs: resolve the dead link
ktro2828 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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
This file contains hidden or 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,75 @@ | ||
| # Dataset Requirements | ||
|
|
||
| ## Structure (`STR`) | ||
|
|
||
| | ID | Name | Severity | Description | | ||
| | -------- | ----------------------------- | -------- | -------------------------------------------------------------------- | | ||
| | `STR001` | `version-dir-presence` | `Warn` | `version/` directory exists under the dataset root directory. | | ||
| | `STR002` | `annotation-dir-presence` | `Error` | `annotation/` directory exists under the dataset root directory. | | ||
| | `STR003` | `data-dir-presence` | `Error` | `data/` directory exists under the dataset root directory. | | ||
| | `STR004` | `map-dir-presence` | `Error` | `map/` directory exists under the dataset root directory. | | ||
| | `STR005` | `bag-dir-presence` | `Error` | `input_bag/` directory exists under the dataset root directory. | | ||
| | `STR006` | `status-file-presence` | `Error` | `status.json` file exists under the dataset root directory. | | ||
| | `STR007` | `schema-files-presence` | `Error` | Mandatory schema JSON files exist under the `annotation/` directory. | | ||
| | `STR008` | `lanelet-file-presence` | `Warn` | `lanelet2_map.osm` file exists under the `map/` directory. | | ||
| | `STR009` | `pointcloud-map-dir-presence` | `Warn` | `pointcloud_map.pcd` directory exists under the `map/` directory. | | ||
|
|
||
| ## Schema Record (`REC`) | ||
|
|
||
| | ID | Name | Severity | Description | | ||
| | -------- | ----------------------------- | -------- | --------------------------------------- | | ||
| | `REC001` | `scene-single` | `Error` | `Scene` record is a single. | | ||
| | `REC002` | `sample-not-empty` | `Error` | `Sample` record is not empty. | | ||
| | `REC003` | `sample-data-not-empty` | `Error` | `SampleData` record is not empty. | | ||
| | `REC004` | `ego-pose-not-empty` | `Error` | `EgoPose` record is not empty. | | ||
| | `REC005` | `calibrated-sensor-non-empty` | `Error` | `CalibratedSensor` record is not empty. | | ||
| | `REC006` | `instance-not-empty` | `Error` | `Instance` record is not empty. | | ||
|
|
||
| ## Reference (`REF`) | ||
|
|
||
| | ID | Name | Severity | Description | | ||
| | -------- | ------------------------------------- | -------- | ------------------------------------------------------------------------- | | ||
| | `REF001` | `scene-to-log` | `Error` | `Scene.log_token` refers to `Log` record. | | ||
| | `REF002` | `scene-to-first-sample` | `Error` | `Scene.first_sample_token` refers to `Sample` record. | | ||
| | `REF003` | `scene-to-last-sample` | `Error` | `Scene.last_sample_token` refers to `Sample` record. | | ||
| | `REF004` | `sample-to-scene` | `Error` | `Sample.scene_token` refers to `Scene` record. | | ||
| | `REF005` | `sample-data-to-sample` | `Error` | `SampleData.sample_token` refers to `Sample` record. | | ||
| | `REF006` | `sample-data-to-ego-pose` | `Error` | `SampleData.ego_pose_token` refers to `EgoPose` record. | | ||
| | `REF007` | `sample-data-to-calibrated-sensor` | `Error` | `SampleData.calibrated_sensor_token` refers to `CalibratedSensor` record. | | ||
| | `REF008` | `calibrated-sensor-to-sensor` | `Error` | `CalibratedSensor.sensor_token` refers to `Sensor` record. | | ||
| | `REF009` | `instance-to-category` | `Error` | `Instance.category_token` refers to `Category` record. | | ||
| | `REF010` | `instance-to-first-sample-annotation` | `Error` | `Instance.first_annotation_token` refers to `SampleAnnotation` record. | | ||
| | `REF011` | `instance-to-last-sample-annotation` | `Error` | `Instance.last_annotation_token` refers to `SampleAnnotation` record. | | ||
|
ktro2828 marked this conversation as resolved.
|
||
| | `REF012` | `lidarseg-to-sample-data` | `Error` | `LidarSeg.sample_data_token` refers to `SampleData` record. | | ||
| | `REF013` | `sample-data-filename-presence` | `Error` | `SampleData.filename` exists. | | ||
| | `REF014` | `sample-data-info-filename-presence` | `Error` | `SampleData.info_filename` exists if it is not `None`. | | ||
| | `REF015` | `lidarseg-filename-presence` | `Error` | `LidarSeg.filename` exists if `lidarseg.json` exists. | | ||
|
|
||
| ## Format (`FMT`) | ||
|
|
||
| | ID | Name | Severity | Description | | ||
| | -------- | ------------------------- | -------- | ------------------------------------------------- | | ||
| | `FMT001` | `attribute-field` | `Error` | All types of `Attribute` fields are valid. | | ||
| | `FMT002` | `calibrated-sensor-field` | `Error` | All types of `CalibratedSensor` fields are valid. | | ||
| | `FMT003` | `category-field` | `Error` | All types of `Category` fields are valid. | | ||
| | `FMT004` | `ego-pose-field` | `Error` | All types of `EgoPose` fields are valid. | | ||
| | `FMT005` | `instance-field` | `Error` | All types of `Instance` fields are valid. | | ||
| | `FMT006` | `log-field` | `Error` | All types of `Log` fields are valid. | | ||
| | `FMT007` | `map-field` | `Error` | All types of `Map` fields are valid. | | ||
| | `FMT008` | `sample-field` | `Error` | All types of `Sample` fields are valid. | | ||
| | `FMT009` | `sample-annotation-field` | `Error` | All types of `SampleAnnotation` fields are valid. | | ||
| | `FMT010` | `sample-data-field` | `Error` | All types of `SampleData` fields are valid. | | ||
| | `FMT011` | `scene-field` | `Error` | All types of `Scene` fields are valid. | | ||
| | `FMT012` | `sensor-field` | `Error` | All types of `Sensor` fields are valid. | | ||
| | `FMT013` | `visibility-field` | `Error` | All types of `Visibility` fields are valid. | | ||
| | `FMT014` | `lidarseg-field` | `Error` | All types of `Lidarseg` fields are valid. | | ||
| | `FMT015` | `object-ann-field` | `Error` | All types of `ObjectAnn` fields are valid. | | ||
| | `FMT016` | `surface-ann-field` | `Error` | All types of `SurfaceAnn` fields are valid. | | ||
| | `FMT017` | `keypoint-field` | `Error` | All types of `Keypoint` fields are valid. | | ||
| | `FMT018` | `vehicle-state-field` | `Error` | All types of `VehicleState` fields are valid. | | ||
|
|
||
| ## Tier4 Instance (`TIV`) | ||
|
|
||
| | ID | Name | Severity | Description | | ||
| | -------- | ------------ | -------- | ----------------------------------------------- | | ||
| | `TIV001` | `load-tier4` | `Error` | Ensure `Tier4` instance is loaded successfully. | | ||
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.