diff --git a/pkgs/development/python-modules/aiogram/default.nix b/pkgs/development/python-modules/aiogram/default.nix new file mode 100644 index 000000000000..ab5499f7ae96 --- /dev/null +++ b/pkgs/development/python-modules/aiogram/default.nix @@ -0,0 +1,65 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pythonOlder +, pytestCheckHook +, aiohttp +, aiohttp-socks +, aioredis +, aresponses +, babel +, certifi +, magic-filter +, pytest-asyncio +, pytest-lazy-fixture +, redis +}: + +buildPythonPackage rec { + pname = "aiogram"; + version = "2.25.1"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "aiogram"; + repo = "aiogram"; + rev = "v${version}"; + hash = "sha256-g8nuvna7DpXElvjBehnGKHUsrf+nyQcoKNnyR59RALo="; + }; + + postPatch = '' + substituteInPlace setup.py \ + --replace "aiohttp>=3.8.0,<3.9.0" "aiohttp" \ + --replace "Babel>=2.9.1,<2.10.0" "Babel" \ + --replace "magic-filter>=1.0.9" "magic-filter" + ''; + + propagatedBuildInputs = [ + aiohttp + babel + certifi + magic-filter + ]; + + nativeCheckInputs = [ + aiohttp-socks + aioredis + aresponses + pytest-asyncio + pytest-lazy-fixture + pytestCheckHook + redis + ]; + + pythonImportsCheck = [ "aiogram" ]; + + meta = with lib; { + description = "Modern and fully asynchronous framework for Telegram Bot API"; + homepage = "https://github.com/aiogram/aiogram"; + changelog = "https://github.com/aiogram/aiogram/releases/tag/v${version}"; + license = licenses.mit; + maintainers = with maintainers; [ sikmir ]; + }; +} diff --git a/pkgs/development/python-modules/magic-filter/default.nix b/pkgs/development/python-modules/magic-filter/default.nix new file mode 100644 index 000000000000..8a3a0fff574d --- /dev/null +++ b/pkgs/development/python-modules/magic-filter/default.nix @@ -0,0 +1,40 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pythonOlder +, pytestCheckHook +, hatchling +}: + +buildPythonPackage rec { + pname = "magic-filter"; + version = "1.0.10"; + format = "pyproject"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "aiogram"; + repo = "magic-filter"; + rev = "v${version}"; + hash = "sha256-mHqq/ci8uMACNutwmxKX1nrl3nTSnSyU2x1VxzWxqzM="; + }; + + nativeBuildInputs = [ + hatchling + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "magic_filter" ]; + + meta = with lib; { + description = "Magic filter based on dynamic attribute getter"; + homepage = "https://github.com/aiogram/magic-filter"; + changelog = "https://github.com/aiogram/magic-filter/releases/tag/v${version}"; + license = licenses.mit; + maintainers = with maintainers; [ sikmir ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e41d42adb3e6..99e89a46c734 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -194,6 +194,8 @@ self: super: with self; { aiogithubapi = callPackage ../development/python-modules/aiogithubapi { }; + aiogram = callPackage ../development/python-modules/aiogram { }; + aioharmony = callPackage ../development/python-modules/aioharmony { }; aiohomekit = callPackage ../development/python-modules/aiohomekit { }; @@ -6183,6 +6185,8 @@ self: super: with self; { magicgui = callPackage ../development/python-modules/magicgui { }; + magic-filter = callPackage ../development/python-modules/magic-filter { }; + magic-wormhole = callPackage ../development/python-modules/magic-wormhole { }; magic-wormhole-mailbox-server = callPackage ../development/python-modules/magic-wormhole-mailbox-server { };