I want to alias project_version with init_version, but since NamedTuple is a factory method I'm having difficulty in doing this.
from typing import NamedTuple
class ProjectMetadata(NamedTuple):
"""Structure holding project metadata derived from `pyproject.toml`"""
config_file: Path
package_name: str
project_name: str
project_path: Path
project_version: str
source_dir: Path
I've tried the basic alias technique but met with undefined init_version errors.
from typing import NamedTuple
class ProjectMetadata(NamedTuple):
"""Structure holding project metadata derived from `pyproject.toml`"""
config_file: Path
package_name: str
project_name: str
project_path: Path
project_version: str = init_version
source_dir: Path
dataclassinstead? Then setfrozen=Trueto prevent assignment. See Is there an alias or name parameter for dataclass arguments?metadata.init_versionand getmetadata.project_version?project_versionby renaming it withinit_versionbut still want it to be backwards compatible. I can't change it directly as this would be a breaking change and not backwards compatible. I want to treatproject_versionandinit_versionas being the same.