@@ -491,6 +491,7 @@ def get_parser() -> ArgumentParser: # noqa: PLR0915
491491 type = int ,
492492 help = "Dataset version" ,
493493 )
494+ show_parser .add_argument ("--schema" , action = "store_true" , help = "Show schema" )
494495 add_show_args (show_parser )
495496
496497 query_parser = subp .add_parser (
@@ -816,10 +817,15 @@ def show(
816817 offset : int = 0 ,
817818 columns : Sequence [str ] = (),
818819 no_collapse : bool = False ,
820+ schema : bool = False ,
819821) -> None :
822+ from datachain .lib .dc import DataChain
820823 from datachain .query import DatasetQuery
821824 from datachain .utils import show_records
822825
826+ dataset = catalog .get_dataset (name )
827+ dataset_version = dataset .get_version (version or dataset .latest_version )
828+
823829 query = (
824830 DatasetQuery (name = name , version = version , catalog = catalog )
825831 .select (* columns )
@@ -828,6 +834,10 @@ def show(
828834 )
829835 records = query .to_db_records ()
830836 show_records (records , collapse_columns = not no_collapse )
837+ if schema and dataset_version .feature_schema :
838+ print ("\n Schema:" )
839+ dc = DataChain (name = name , version = version , catalog = catalog )
840+ dc .print_schema ()
831841
832842
833843def query (
@@ -1013,6 +1023,7 @@ def main(argv: Optional[list[str]] = None) -> int: # noqa: C901, PLR0912, PLR09
10131023 offset = args .offset ,
10141024 columns = args .columns ,
10151025 no_collapse = args .no_collapse ,
1026+ schema = args .schema ,
10161027 )
10171028 elif args .command == "rm-dataset" :
10181029 rm_dataset (catalog , args .name , version = args .version , force = args .force )
0 commit comments