@@ -258,12 +258,13 @@ class PylockUnsupportedVersionError(PylockValidationError):
258258
259259@dataclass
260260class PackageVcs :
261+ _ : dataclasses .KW_ONLY
261262 type : str
262- url : Optional [str ]
263- path : Optional [str ]
264- requested_revision : Optional [str ]
263+ url : Optional [str ] = None
264+ path : Optional [str ] = None
265+ requested_revision : Optional [str ] = None
265266 commit_id : str
266- subdirectory : Optional [str ]
267+ subdirectory : Optional [str ] = None
267268
268269 def __post_init__ (self ) -> None :
269270 _validate_path_url (self .path , self .url )
@@ -282,9 +283,10 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
282283
283284@dataclass
284285class PackageDirectory :
286+ _ : dataclasses .KW_ONLY
285287 path : str
286- editable : Optional [bool ]
287- subdirectory : Optional [str ]
288+ editable : Optional [bool ] = None
289+ subdirectory : Optional [str ] = None
288290
289291 @classmethod
290292 def from_dict (cls , d : Dict [str , Any ]) -> "Self" :
@@ -297,12 +299,13 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
297299
298300@dataclass
299301class PackageArchive :
300- url : Optional [str ]
301- path : Optional [str ]
302- size : Optional [int ]
303- upload_time : Optional [datetime ]
302+ _ : dataclasses .KW_ONLY
303+ url : Optional [str ] = None
304+ path : Optional [str ] = None
305+ size : Optional [int ] = None
306+ upload_time : Optional [datetime ] = None
304307 hashes : Dict [str , str ]
305- subdirectory : Optional [str ]
308+ subdirectory : Optional [str ] = None
306309
307310 def __post_init__ (self ) -> None :
308311 _validate_path_url (self .path , self .url )
@@ -322,11 +325,12 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
322325
323326@dataclass
324327class PackageSdist :
328+ _ : dataclasses .KW_ONLY
325329 name : str
326- upload_time : Optional [datetime ]
327- url : Optional [str ]
328- path : Optional [str ]
329- size : Optional [int ]
330+ upload_time : Optional [datetime ] = None
331+ url : Optional [str ] = None
332+ path : Optional [str ] = None
333+ size : Optional [int ] = None
330334 hashes : Dict [str , str ]
331335
332336 def __post_init__ (self ) -> None :
@@ -347,11 +351,12 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
347351
348352@dataclass
349353class PackageWheel :
354+ _ : dataclasses .KW_ONLY
350355 name : str
351- upload_time : Optional [datetime ]
352- url : Optional [str ]
353- path : Optional [str ]
354- size : Optional [int ]
356+ upload_time : Optional [datetime ] = None
357+ url : Optional [str ] = None
358+ path : Optional [str ] = None
359+ size : Optional [int ] = None
355360 hashes : Dict [str , str ]
356361
357362 def __post_init__ (self ) -> None :
@@ -373,19 +378,20 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
373378
374379@dataclass
375380class Package :
381+ _ : dataclasses .KW_ONLY
376382 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 ]]
383+ version : Optional [Version ] = None
384+ marker : Optional [Marker ] = None
385+ requires_python : Optional [SpecifierSet ] = None
386+ dependencies : Optional [List [Dict [str , Any ]]] = None
387+ vcs : Optional [PackageVcs ] = None
388+ directory : Optional [PackageDirectory ] = None
389+ archive : Optional [PackageArchive ] = None
390+ index : Optional [str ] = None
391+ sdist : Optional [PackageSdist ] = None
392+ wheels : Optional [List [PackageWheel ]] = None
393+ attestation_identities : Optional [List [Dict [str , Any ]]] = None
394+ tool : Optional [Dict [str , Any ]] = None
389395
390396 def __post_init__ (self ) -> None :
391397 if self .sdist or self .wheels :
@@ -424,15 +430,16 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
424430
425431@dataclass
426432class Pylock :
433+ _ : dataclasses .KW_ONLY
427434 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 ]
435+ environments : Optional [List [Marker ]] = None
436+ requires_python : Optional [SpecifierSet ] = None
437+ extras : List [str ] = dataclasses . field ( default_factory = list )
438+ dependency_groups : List [str ] = dataclasses . field ( default_factory = list )
439+ default_groups : List [str ] = dataclasses . field ( default_factory = list )
433440 created_by : str
434441 packages : List [Package ]
435- tool : Optional [Dict [str , Any ]]
442+ tool : Optional [Dict [str , Any ]] = None
436443
437444 def __post_init__ (self ) -> None :
438445 if self .lock_version < Version ("1" ) or self .lock_version >= Version ("2" ):
0 commit comments