From 8b23d3eb84490ad838181a16bda20484880ee2c8 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Thu, 13 Feb 2025 19:14:43 +0100 Subject: [PATCH 1/3] python312Packages.textual: skip failing tests on darwin --- .../python-modules/textual/default.nix | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/pkgs/development/python-modules/textual/default.nix b/pkgs/development/python-modules/textual/default.nix index 0bcc0d1f5a08..ec4513f5e7d2 100644 --- a/pkgs/development/python-modules/textual/default.nix +++ b/pkgs/development/python-modules/textual/default.nix @@ -1,5 +1,6 @@ { lib, + stdenv, buildPythonPackage, fetchFromGitHub, jinja2, @@ -10,7 +11,6 @@ pytest-xdist, pytestCheckHook, pythonAtLeast, - pythonOlder, rich, syrupy, time-machine, @@ -24,8 +24,6 @@ buildPythonPackage rec { version = "1.0.0"; pyproject = true; - disabled = pythonOlder "3.8"; - src = fetchFromGitHub { owner = "Textualize"; repo = "textual"; @@ -61,10 +59,15 @@ buildPythonPackage rec { tree-sitter ]; - disabledTestPaths = [ - # Snapshot tests require syrupy<4 - "tests/snapshot_tests/test_snapshots.py" - ]; + disabledTestPaths = + [ + # Snapshot tests require syrupy<4 + "tests/snapshot_tests/test_snapshots.py" + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + # RuntimeError: There is no current event loop in thread 'MainThread'. + "tests/test_focus.py" + ]; disabledTests = [ @@ -93,11 +96,11 @@ buildPythonPackage rec { __darwinAllowLocalNetworking = true; - meta = with lib; { + meta = { description = "TUI framework for Python inspired by modern web development"; homepage = "https://github.com/Textualize/textual"; changelog = "https://github.com/Textualize/textual/releases/tag/v${version}"; - license = licenses.mit; + license = lib.licenses.mit; maintainers = [ ]; }; } From 81024f9037e0c74aa3fa0953fcfe7796a0b7969e Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Thu, 13 Feb 2025 21:43:56 +0100 Subject: [PATCH 2/3] python312Packages.textual-serve: init at 1.1.1 --- .../python-modules/textual-serve/default.nix | 54 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 56 insertions(+) create mode 100644 pkgs/development/python-modules/textual-serve/default.nix diff --git a/pkgs/development/python-modules/textual-serve/default.nix b/pkgs/development/python-modules/textual-serve/default.nix new file mode 100644 index 000000000000..8a50b830ed0b --- /dev/null +++ b/pkgs/development/python-modules/textual-serve/default.nix @@ -0,0 +1,54 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + + # build-system + hatchling, + + # dependencies + aiohttp, + aiohttp-jinja2, + jinja2, + rich, + textual, +}: + +buildPythonPackage rec { + pname = "textual-serve"; + version = "1.1.1"; + pyproject = true; + + # No tags on GitHub + src = fetchPypi { + pname = "textual_serve"; + inherit version; + hash = "sha256-ccZiRyxGLl42je/GYO5ujq47/aiMpAwFDFVHRobrDFQ="; + }; + + build-system = [ + hatchling + ]; + + dependencies = [ + aiohttp + aiohttp-jinja2 + jinja2 + rich + textual + ]; + + pythonImportsCheck = [ + "textual_serve" + ]; + + # No tests in the pypi archive + doCheck = false; + + meta = { + description = "Turn your Textual TUIs in to web applications"; + homepage = "https://pypi.org/project/textual-serve/"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ GaetanLepage ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index f3e04032c2d9..86b1f557c827 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -16247,6 +16247,8 @@ self: super: with self; { textual-fastdatatable = callPackage ../development/python-modules/textual-fastdatatable { }; + textual-serve = callPackage ../development/python-modules/textual-serve { }; + textual-slider = callPackage ../development/python-modules/textual-slider { }; textual-universal-directorytree = callPackage ../development/python-modules/textual-universal-directorytree { }; From 87eeb667b55d2aa433ee612707b273f60d8e560f Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Thu, 13 Feb 2025 21:46:47 +0100 Subject: [PATCH 3/3] python312Packages.textual-dev: add missing dependency --- .../python-modules/textual-dev/default.nix | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/pkgs/development/python-modules/textual-dev/default.nix b/pkgs/development/python-modules/textual-dev/default.nix index d1a78f756c99..45952a87842c 100644 --- a/pkgs/development/python-modules/textual-dev/default.nix +++ b/pkgs/development/python-modules/textual-dev/default.nix @@ -1,14 +1,19 @@ { lib, - aiohttp, buildPythonPackage, - click, fetchFromGitHub, - msgpack, + + # build-system poetry-core, - pythonOlder, + + # dependencies + aiohttp, + click, + msgpack, textual, + textual-serve, typing-extensions, + versionCheckHook, }: buildPythonPackage rec { @@ -16,8 +21,6 @@ buildPythonPackage rec { version = "1.7.0"; pyproject = true; - disabled = pythonOlder "3.8"; - src = fetchFromGitHub { owner = "Textualize"; repo = "textual-dev"; @@ -32,6 +35,7 @@ buildPythonPackage rec { click msgpack textual + textual-serve typing-extensions ]; @@ -40,12 +44,12 @@ buildPythonPackage rec { pythonImportsCheck = [ "textual_dev" ]; - meta = with lib; { + meta = { description = "Development tools for Textual"; homepage = "https://github.com/Textualize/textual-dev"; - changelog = "https://github.com/Textualize/textual-dev/releases/tag/${src.tag}"; - license = licenses.mit; - maintainers = with maintainers; [ yannip ]; + changelog = "https://github.com/Textualize/textual-dev/releases/tag/v${version}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ yannip ]; mainProgram = "textual"; }; }