diff --git a/pkgs/development/python-modules/aiogram/default.nix b/pkgs/development/python-modules/aiogram/default.nix new file mode 100644 index 00000000000..ab5499f7ae9 --- /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/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 08a8c461668..7087a60caf8 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 { };