@@ -256,14 +256,14 @@ class PylockUnsupportedVersionError(PylockValidationError):
256
256
pass
257
257
258
258
259
- @dataclass
259
+ @dataclass ( kw_only = True )
260
260
class PackageVcs :
261
261
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
265
265
commit_id : str
266
- subdirectory : Optional [str ]
266
+ subdirectory : Optional [str ] = None
267
267
268
268
def __post_init__ (self ) -> None :
269
269
_validate_path_url (self .path , self .url )
@@ -280,11 +280,11 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
280
280
)
281
281
282
282
283
- @dataclass
283
+ @dataclass ( kw_only = True )
284
284
class PackageDirectory :
285
285
path : str
286
- editable : Optional [bool ]
287
- subdirectory : Optional [str ]
286
+ editable : Optional [bool ] = None
287
+ subdirectory : Optional [str ] = None
288
288
289
289
@classmethod
290
290
def from_dict (cls , d : Dict [str , Any ]) -> "Self" :
@@ -295,14 +295,14 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
295
295
)
296
296
297
297
298
- @dataclass
298
+ @dataclass ( kw_only = True )
299
299
class 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
304
304
hashes : Dict [str , str ]
305
- subdirectory : Optional [str ]
305
+ subdirectory : Optional [str ] = None
306
306
307
307
def __post_init__ (self ) -> None :
308
308
_validate_path_url (self .path , self .url )
@@ -320,13 +320,13 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
320
320
)
321
321
322
322
323
- @dataclass
323
+ @dataclass ( kw_only = True )
324
324
class PackageSdist :
325
325
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
330
330
hashes : Dict [str , str ]
331
331
332
332
def __post_init__ (self ) -> None :
@@ -345,13 +345,13 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
345
345
)
346
346
347
347
348
- @dataclass
348
+ @dataclass ( kw_only = True )
349
349
class PackageWheel :
350
350
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
355
355
hashes : Dict [str , str ]
356
356
357
357
def __post_init__ (self ) -> None :
@@ -371,21 +371,21 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
371
371
return wheel
372
372
373
373
374
- @dataclass
374
+ @dataclass ( kw_only = True )
375
375
class Package :
376
376
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
389
389
390
390
def __post_init__ (self ) -> None :
391
391
if self .sdist or self .wheels :
@@ -422,17 +422,17 @@ def from_dict(cls, d: Dict[str, Any]) -> "Self":
422
422
return package
423
423
424
424
425
- @dataclass
425
+ @dataclass ( kw_only = True )
426
426
class Pylock :
427
427
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 )
433
433
created_by : str
434
434
packages : List [Package ]
435
- tool : Optional [Dict [str , Any ]]
435
+ tool : Optional [Dict [str , Any ]] = None
436
436
437
437
def __post_init__ (self ) -> None :
438
438
if self .lock_version < Version ("1" ) or self .lock_version >= Version ("2" ):
0 commit comments