2025-07-24 13:55:40 +02:00

97 lines
1.7 KiB
Nix

{
lib,
aiodns,
aiofiles,
aiohttp-socks,
aiohttp,
aresponses,
babel,
buildPythonPackage,
certifi,
fetchFromGitHub,
gitUpdater,
hatchling,
magic-filter,
motor,
pycryptodomex,
pydantic,
pymongo,
pytest-aiohttp,
pytest-asyncio,
pytest-lazy-fixture,
pytestCheckHook,
pythonOlder,
pytz,
redis,
uvloop,
}:
buildPythonPackage rec {
pname = "aiogram";
version = "3.21.0";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "aiogram";
repo = "aiogram";
tag = "v${version}";
hash = "sha256-2DRKJiIZXMK2PgAQFfa0GBgVITiOrNQTM8/fnCHiiw8=";
};
build-system = [ hatchling ];
pythonRelaxDeps = [ "aiohttp" ];
dependencies = [
aiofiles
aiohttp
certifi
magic-filter
pydantic
];
optional-dependencies = {
fast = [
aiodns
uvloop
];
mongo = [
motor
pymongo
];
redis = [ redis ];
proxy = [ aiohttp-socks ];
i18n = [ babel ];
};
nativeCheckInputs = [
aresponses
pycryptodomex
pytest-aiohttp
pytest-asyncio
pytest-lazy-fixture
pytestCheckHook
pytz
]
++ lib.flatten (builtins.attrValues optional-dependencies);
pythonImportsCheck = [ "aiogram" ];
passthru.updateScript = gitUpdater {
rev-prefix = "v";
ignoredVersions = "4.1";
};
__darwinAllowLocalNetworking = true;
meta = {
description = "Modern and fully asynchronous framework for Telegram Bot API";
homepage = "https://github.com/aiogram/aiogram";
changelog = "https://github.com/aiogram/aiogram/releases/tag/${src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ sikmir ];
};
}