diff --git a/poetry.lock b/poetry.lock index be3e42ef4..3182e7961 100644 --- a/poetry.lock +++ b/poetry.lock @@ -764,7 +764,7 @@ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest- [metadata] lock-version = "1.1" python-versions = "^3.7" -content-hash = "e7353ea5318ad3fa2943ee707f2c1930783c355bad6a28aec3d97c0b917b6dbf" +content-hash = "256c1d6571a11bf4b80d0eba16d9e39bf2965c4436281c3ec40033cca54aa098" [metadata.files] aiohttp = [ diff --git a/pyproject.toml b/pyproject.toml index 238b8a350..3b110a12d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,6 +27,7 @@ rich = "^12.0.0" #rich = {git = "git@github.com:willmcgugan/rich", rev = "link-id"} typing-extensions = { version = "^3.10.0", python = "<3.8" } click = "8.1.2" +importlib-metadata = "^4.11.3" [tool.poetry.dev-dependencies] pytest = "^6.2.3" diff --git a/src/textual/__init__.py b/src/textual/__init__.py index f85e41f2c..e78bb2009 100644 --- a/src/textual/__init__.py +++ b/src/textual/__init__.py @@ -3,7 +3,6 @@ import inspect from rich.console import RenderableType __all__ = ["log", "panic"] -__version__ = "0.1.15" def log(*args: object, verbosity: int = 0, **kwargs) -> None: diff --git a/src/textual/cli/cli.py b/src/textual/cli/cli.py index 720b9efe8..b6b882718 100644 --- a/src/textual/cli/cli.py +++ b/src/textual/cli/cli.py @@ -1,11 +1,11 @@ import click +from importlib_metadata import version -import textual from textual.devtools.server import _run_devtools @click.group() -@click.version_option(textual.__version__) +@click.version_option(version("textual")) def run(): pass diff --git a/src/textual/devtools/renderables.py b/src/textual/devtools/renderables.py index abbbdf9e6..984e4dcf5 100644 --- a/src/textual/devtools/renderables.py +++ b/src/textual/devtools/renderables.py @@ -5,12 +5,11 @@ from datetime import datetime, timezone from pathlib import Path from typing import Iterable +from importlib_metadata import version from rich.containers import Renderables from rich.style import Style from rich.text import Text -import textual - if sys.version_info >= (3, 8): from typing import Literal else: @@ -33,7 +32,7 @@ class DevConsoleHeader: ) -> RenderResult: lines = Renderables( [ - f"[bold]Textual Development Console [#b169dd]v{textual.__version__}", + f"[bold]Textual Development Console [#b169dd]v{version('textual')}", "[#967fa3]Run a Textual app with the environment variable [b]TEXTUAL_DEVTOOLS=1[/] to connect.", "[#967fa3]Press [b]Ctrl+C[/] to quit.", ] diff --git a/tests/cli/test_cli.py b/tests/cli/test_cli.py index 35a3ea741..3909ba67c 100644 --- a/tests/cli/test_cli.py +++ b/tests/cli/test_cli.py @@ -1,10 +1,10 @@ from click.testing import CliRunner +from importlib_metadata import version -import textual from textual.cli.cli import run def test_cli_version(): runner = CliRunner() result = runner.invoke(run, ["--version"]) - assert textual.__version__ in result.output, "You need to update __version__" + assert version("textual") in result.output