From ae23a025d74f06456afdad09250f815179cd7118 Mon Sep 17 00:00:00 2001 From: Tobias Raabe Date: Sun, 1 Feb 2026 15:21:42 +0100 Subject: [PATCH 1/2] Parse database_url from config strings --- src/_pytask/database.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/_pytask/database.py b/src/_pytask/database.py index dfdf96b3..4a579672 100644 --- a/src/_pytask/database.py +++ b/src/_pytask/database.py @@ -14,11 +14,14 @@ @hookimpl def pytask_parse_config(config: dict[str, Any]) -> None: """Parse the configuration.""" + database_url = config["database_url"] # Set default. - if not config["database_url"]: + if not database_url: config["database_url"] = make_url( f"sqlite:///{config['root'].joinpath('.pytask').as_posix()}/pytask.sqlite3" ) + elif isinstance(database_url, str): + config["database_url"] = make_url(database_url) if ( config["database_url"].drivername == "sqlite" From 3165a13e197de75728f77b0e2a405751039eb645 Mon Sep 17 00:00:00 2001 From: Tobias Raabe Date: Sun, 1 Feb 2026 16:22:47 +0100 Subject: [PATCH 2/2] Add test for parsing database_url from config --- tests/test_database.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/test_database.py b/tests/test_database.py index d8ab5fd1..0cd8096e 100644 --- a/tests/test_database.py +++ b/tests/test_database.py @@ -68,6 +68,17 @@ def test_rename_database_w_config(tmp_path, runner): assert path_to_db.exists() +def test_database_url_from_config_is_parsed(tmp_path): + tmp_path.joinpath("pyproject.toml").write_text( + "[tool.pytask.ini_options]\ndatabase_url='sqlite:///.db.sqlite'" + ) + + session = build(paths=tmp_path) + + assert session.exit_code == ExitCode.OK + assert session.config["database_url"].drivername == "sqlite" + + def test_rename_database_w_cli(tmp_path, runner): """Modification dates of input and output files are stored in database.""" path_to_db = tmp_path.joinpath(".db.sqlite")