@@ -1356,88 +1356,67 @@ def __init__(self, root: str, config: dict[str, Any], plugin_manager: PluginMana
1356
1356
self .config = config
1357
1357
self .plugin_manager = plugin_manager
1358
1358
1359
- self ._cached : str | None = None
1360
- self ._source_name : str | None = None
1361
- self ._scheme_name : str | None = None
1362
- self ._source : VersionSourceInterface | None = None
1363
- self ._scheme : VersionSchemeInterface | None = None
1364
-
1365
- @property
1359
+ @cached_property
1366
1360
def cached (self ) -> str :
1367
- if self ._cached is None :
1368
- try :
1369
- self ._cached = self .source .get_version_data ()['version' ]
1370
- except Exception as e : # noqa: BLE001
1371
- message = f'Error getting the version from source `{ self .source .PLUGIN_NAME } `: { e } '
1372
- raise type (e )(message ) from None
1373
-
1374
- return self ._cached
1361
+ try :
1362
+ return self .source .get_version_data ()['version' ]
1363
+ except Exception as e : # noqa: BLE001
1364
+ message = f'Error getting the version from source `{ self .source .PLUGIN_NAME } `: { e } '
1365
+ raise type (e )(message ) from None
1375
1366
1376
- @property
1367
+ @cached_property
1377
1368
def source_name (self ) -> str :
1378
- if self ._source_name is None :
1379
- source : str = self .config .get ('source' , 'regex' )
1380
- if not source :
1381
- message = 'The `source` option under the `tool.hatch.version` table must not be empty if defined'
1382
- raise ValueError (message )
1383
-
1384
- if not isinstance (source , str ):
1385
- message = 'Field `tool.hatch.version.source` must be a string'
1386
- raise TypeError (message )
1369
+ source : str = self .config .get ('source' , 'regex' )
1370
+ if not source :
1371
+ message = 'The `source` option under the `tool.hatch.version` table must not be empty if defined'
1372
+ raise ValueError (message )
1387
1373
1388
- self ._source_name = source
1374
+ if not isinstance (source , str ):
1375
+ message = 'Field `tool.hatch.version.source` must be a string'
1376
+ raise TypeError (message )
1389
1377
1390
- return self . _source_name
1378
+ return source
1391
1379
1392
- @property
1380
+ @cached_property
1393
1381
def scheme_name (self ) -> str :
1394
- if self ._scheme_name is None :
1395
- scheme : str = self .config .get ('scheme' , 'standard' )
1396
- if not scheme :
1397
- message = 'The `scheme` option under the `tool.hatch.version` table must not be empty if defined'
1398
- raise ValueError (message )
1399
-
1400
- if not isinstance (scheme , str ):
1401
- message = 'Field `tool.hatch.version.scheme` must be a string'
1402
- raise TypeError (message )
1382
+ scheme : str = self .config .get ('scheme' , 'standard' )
1383
+ if not scheme :
1384
+ message = 'The `scheme` option under the `tool.hatch.version` table must not be empty if defined'
1385
+ raise ValueError (message )
1403
1386
1404
- self ._scheme_name = scheme
1387
+ if not isinstance (scheme , str ):
1388
+ message = 'Field `tool.hatch.version.scheme` must be a string'
1389
+ raise TypeError (message )
1405
1390
1406
- return self . _scheme_name
1391
+ return scheme
1407
1392
1408
- @property
1393
+ @cached_property
1409
1394
def source (self ) -> VersionSourceInterface :
1410
- if self ._source is None :
1411
- from copy import deepcopy
1412
-
1413
- source_name = self .source_name
1414
- version_source = self .plugin_manager .version_source .get (source_name )
1415
- if version_source is None :
1416
- from hatchling .plugin .exceptions import UnknownPluginError
1395
+ from copy import deepcopy
1417
1396
1418
- message = f'Unknown version source: { source_name } '
1419
- raise UnknownPluginError (message )
1397
+ source_name = self .source_name
1398
+ version_source = self .plugin_manager .version_source .get (source_name )
1399
+ if version_source is None :
1400
+ from hatchling .plugin .exceptions import UnknownPluginError
1420
1401
1421
- self ._source = version_source (self .root , deepcopy (self .config ))
1402
+ message = f'Unknown version source: { source_name } '
1403
+ raise UnknownPluginError (message )
1422
1404
1423
- return self ._source
1405
+ return version_source ( self .root , deepcopy ( self . config ))
1424
1406
1425
- @property
1407
+ @cached_property
1426
1408
def scheme (self ) -> VersionSchemeInterface :
1427
- if self ._scheme is None :
1428
- from copy import deepcopy
1429
-
1430
- scheme_name = self .scheme_name
1431
- version_scheme = self .plugin_manager .version_scheme .get (scheme_name )
1432
- if version_scheme is None :
1433
- from hatchling .plugin .exceptions import UnknownPluginError
1409
+ from copy import deepcopy
1434
1410
1435
- message = f'Unknown version scheme: { scheme_name } '
1436
- raise UnknownPluginError (message )
1411
+ scheme_name = self .scheme_name
1412
+ version_scheme = self .plugin_manager .version_scheme .get (scheme_name )
1413
+ if version_scheme is None :
1414
+ from hatchling .plugin .exceptions import UnknownPluginError
1437
1415
1438
- self ._scheme = version_scheme (self .root , deepcopy (self .config ))
1416
+ message = f'Unknown version scheme: { scheme_name } '
1417
+ raise UnknownPluginError (message )
1439
1418
1440
- return self ._scheme
1419
+ return version_scheme ( self .root , deepcopy ( self . config ))
1441
1420
1442
1421
1443
1422
class HatchMetadataSettings (Generic [PluginManagerBound ]):
0 commit comments