@@ -1387,38 +1387,50 @@ def __get_pydantic_core_schema__(
13871387 ) -> CoreSchema :
13881388 from pydantic_core import core_schema
13891389
1390- deserialization_schema = core_schema .chain_schema (
1390+ str_schema = core_schema .chain_schema (
13911391 [
1392+ core_schema .str_schema (),
13921393 core_schema .no_info_plain_validator_function (
1393- lambda v : {"path" : v } if isinstance (v , str ) else v ,
1394+ lambda path : {
1395+ "path" : path ,
1396+ "protocol" : None ,
1397+ "storage_options" : {},
1398+ },
13941399 ),
1395- core_schema .typed_dict_schema (
1396- {
1397- "path" : core_schema .typed_dict_field (
1398- core_schema .str_schema (), required = True
1399- ),
1400- "protocol" : core_schema .typed_dict_field (
1401- core_schema .with_default_schema (
1402- core_schema .nullable_schema (
1403- core_schema .str_schema (),
1404- ),
1405- default = None ,
1406- ),
1407- required = False ,
1400+ ]
1401+ )
1402+
1403+ object_schema = core_schema .typed_dict_schema (
1404+ {
1405+ "path" : core_schema .typed_dict_field (
1406+ core_schema .str_schema (), required = True
1407+ ),
1408+ "protocol" : core_schema .typed_dict_field (
1409+ core_schema .with_default_schema (
1410+ core_schema .nullable_schema (
1411+ core_schema .str_schema (),
14081412 ),
1409- "storage_options" : core_schema . typed_dict_field (
1410- core_schema . with_default_schema (
1411- core_schema . dict_schema (
1412- core_schema . str_schema ( ),
1413- core_schema .any_schema (),
1414- ),
1415- default_factory = dict ,
1416- ),
1417- required = False ,
1413+ default = None ,
1414+ ),
1415+ required = False ,
1416+ ),
1417+ "storage_options" : core_schema .typed_dict_field (
1418+ core_schema . with_default_schema (
1419+ core_schema . dict_schema (
1420+ core_schema . str_schema ( ),
1421+ core_schema . any_schema () ,
14181422 ),
1419- },
1420- extra_behavior = "forbid" ,
1423+ default_factory = dict ,
1424+ ),
1425+ required = False ,
14211426 ),
1427+ },
1428+ extra_behavior = "forbid" ,
1429+ )
1430+
1431+ deserialization_schema = core_schema .chain_schema (
1432+ [
1433+ core_schema .union_schema ([str_schema , object_schema ]),
14221434 core_schema .no_info_plain_validator_function (
14231435 lambda dct : cls (
14241436 dct .pop ("path" ),
0 commit comments