@@ -256,14 +256,14 @@ class PylockUnsupportedVersionError(PylockValidationError):
256256 pass
257257
258258
259- @dataclass
259+ @dataclass ( kw_only = True )
260260class PackageVcs :
261261 type : str
262- url : Optional [str ]
263- path : Optional [str ]
264- requested_revision : Optional [str ]
262+ url : Optional [str ] = None
263+ path : Optional [str ] = None
264+ requested_revision : Optional [str ] = None
265265 commit_id : str
266- subdirectory : Optional [str ]
266+ subdirectory : Optional [str ] = None
267267
268268 def __post_init__ (self ) -> None :
269269 _validate_path_url (self .path , self .url )
@@ -280,11 +280,11 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
280280 )
281281
282282
283- @dataclass
283+ @dataclass ( kw_only = True )
284284class PackageDirectory :
285285 path : str
286- editable : Optional [bool ]
287- subdirectory : Optional [str ]
286+ editable : Optional [bool ] = None
287+ subdirectory : Optional [str ] = None
288288
289289 @classmethod
290290 def from_dict (cls , d : Dict [str , Any ]) -> "Self" :
@@ -295,14 +295,14 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
295295 )
296296
297297
298- @dataclass
298+ @dataclass ( kw_only = True )
299299class PackageArchive :
300- url : Optional [str ]
301- path : Optional [str ]
302- size : Optional [int ]
303- upload_time : Optional [datetime ]
300+ url : Optional [str ] = None
301+ path : Optional [str ] = None
302+ size : Optional [int ] = None
303+ upload_time : Optional [datetime ] = None
304304 hashes : Dict [str , str ]
305- subdirectory : Optional [str ]
305+ subdirectory : Optional [str ] = None
306306
307307 def __post_init__ (self ) -> None :
308308 _validate_path_url (self .path , self .url )
@@ -320,13 +320,13 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
320320 )
321321
322322
323- @dataclass
323+ @dataclass ( kw_only = True )
324324class PackageSdist :
325325 name : str
326- upload_time : Optional [datetime ]
327- url : Optional [str ]
328- path : Optional [str ]
329- size : Optional [int ]
326+ upload_time : Optional [datetime ] = None
327+ url : Optional [str ] = None
328+ path : Optional [str ] = None
329+ size : Optional [int ] = None
330330 hashes : Dict [str , str ]
331331
332332 def __post_init__ (self ) -> None :
@@ -345,13 +345,13 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
345345 )
346346
347347
348- @dataclass
348+ @dataclass ( kw_only = True )
349349class PackageWheel :
350350 name : str
351- upload_time : Optional [datetime ]
352- url : Optional [str ]
353- path : Optional [str ]
354- size : Optional [int ]
351+ upload_time : Optional [datetime ] = None
352+ url : Optional [str ] = None
353+ path : Optional [str ] = None
354+ size : Optional [int ] = None
355355 hashes : Dict [str , str ]
356356
357357 def __post_init__ (self ) -> None :
@@ -371,21 +371,21 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
371371 return wheel
372372
373373
374- @dataclass
374+ @dataclass ( kw_only = True )
375375class Package :
376376 name : str
377- version : Optional [Version ]
378- marker : Optional [Marker ]
379- requires_python : Optional [SpecifierSet ]
380- dependencies : Optional [List [Dict [str , Any ]]]
381- vcs : Optional [PackageVcs ]
382- directory : Optional [PackageDirectory ]
383- archive : Optional [PackageArchive ]
384- index : Optional [str ]
385- sdist : Optional [PackageSdist ]
386- wheels : Optional [List [PackageWheel ]]
387- attestation_identities : Optional [List [Dict [str , Any ]]]
388- tool : Optional [Dict [str , Any ]]
377+ version : Optional [Version ] = None
378+ marker : Optional [Marker ] = None
379+ requires_python : Optional [SpecifierSet ] = None
380+ dependencies : Optional [List [Dict [str , Any ]]] = None
381+ vcs : Optional [PackageVcs ] = None
382+ directory : Optional [PackageDirectory ] = None
383+ archive : Optional [PackageArchive ] = None
384+ index : Optional [str ] = None
385+ sdist : Optional [PackageSdist ] = None
386+ wheels : Optional [List [PackageWheel ]] = None
387+ attestation_identities : Optional [List [Dict [str , Any ]]] = None
388+ tool : Optional [Dict [str , Any ]] = None
389389
390390 def __post_init__ (self ) -> None :
391391 if self .sdist or self .wheels :
@@ -422,17 +422,17 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
422422 return package
423423
424424
425- @dataclass
425+ @dataclass ( kw_only = True )
426426class Pylock :
427427 lock_version : Version
428- environments : Optional [List [Marker ]]
429- requires_python : Optional [SpecifierSet ]
430- extras : List [str ]
431- dependency_groups : List [str ]
432- default_groups : List [str ]
428+ environments : Optional [List [Marker ]] = None
429+ requires_python : Optional [SpecifierSet ] = None
430+ extras : List [str ] = dataclasses . field ( default_factory = list )
431+ dependency_groups : List [str ] = dataclasses . field ( default_factory = list )
432+ default_groups : List [str ] = dataclasses . field ( default_factory = list )
433433 created_by : str
434434 packages : List [Package ]
435- tool : Optional [Dict [str , Any ]]
435+ tool : Optional [Dict [str , Any ]] = None
436436
437437 def __post_init__ (self ) -> None :
438438 if self .lock_version < Version ("1" ) or self .lock_version >= Version ("2" ):
0 commit comments