@@ -258,12 +258,13 @@ class PylockUnsupportedVersionError(PylockValidationError):
258
258
259
259
@dataclass
260
260
class PackageVcs :
261
+ _ : dataclasses .KW_ONLY
261
262
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
265
266
commit_id : str
266
- subdirectory : Optional [str ]
267
+ subdirectory : Optional [str ] = None
267
268
268
269
def __post_init__ (self ) -> None :
269
270
_validate_path_url (self .path , self .url )
@@ -282,9 +283,10 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
282
283
283
284
@dataclass
284
285
class PackageDirectory :
286
+ _ : dataclasses .KW_ONLY
285
287
path : str
286
- editable : Optional [bool ]
287
- subdirectory : Optional [str ]
288
+ editable : Optional [bool ] = None
289
+ subdirectory : Optional [str ] = None
288
290
289
291
@classmethod
290
292
def from_dict (cls , d : Dict [str , Any ]) -> "Self" :
@@ -297,12 +299,13 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
297
299
298
300
@dataclass
299
301
class 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
304
307
hashes : Dict [str , str ]
305
- subdirectory : Optional [str ]
308
+ subdirectory : Optional [str ] = None
306
309
307
310
def __post_init__ (self ) -> None :
308
311
_validate_path_url (self .path , self .url )
@@ -322,11 +325,12 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
322
325
323
326
@dataclass
324
327
class PackageSdist :
328
+ _ : dataclasses .KW_ONLY
325
329
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
330
334
hashes : Dict [str , str ]
331
335
332
336
def __post_init__ (self ) -> None :
@@ -347,11 +351,12 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
347
351
348
352
@dataclass
349
353
class PackageWheel :
354
+ _ : dataclasses .KW_ONLY
350
355
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
355
360
hashes : Dict [str , str ]
356
361
357
362
def __post_init__ (self ) -> None :
@@ -373,19 +378,20 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
373
378
374
379
@dataclass
375
380
class Package :
381
+ _ : dataclasses .KW_ONLY
376
382
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
389
395
390
396
def __post_init__ (self ) -> None :
391
397
if self .sdist or self .wheels :
@@ -424,15 +430,16 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
424
430
425
431
@dataclass
426
432
class Pylock :
433
+ _ : dataclasses .KW_ONLY
427
434
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 )
433
440
created_by : str
434
441
packages : List [Package ]
435
- tool : Optional [Dict [str , Any ]]
442
+ tool : Optional [Dict [str , Any ]] = None
436
443
437
444
def __post_init__ (self ) -> None :
438
445
if self .lock_version < Version ("1" ) or self .lock_version >= Version ("2" ):
0 commit comments