nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 aiodns,
4 aiofiles,
5 aiohttp-socks,
6 aiohttp,
7 aresponses,
8 babel,
9 buildPythonPackage,
10 certifi,
11 cryptography,
12 fetchFromGitHub,
13 gitUpdater,
14 hatchling,
15 magic-filter,
16 motor,
17 pycryptodomex,
18 pydantic,
19 pymongo,
20 pytest-aiohttp,
21 pytest-asyncio,
22 pytest-lazy-fixture,
23 pytestCheckHook,
24 pytz,
25 redis,
26 uvloop,
27}:
28
29buildPythonPackage rec {
30 pname = "aiogram";
31 version = "3.24.0";
32 pyproject = true;
33
34 src = fetchFromGitHub {
35 owner = "aiogram";
36 repo = "aiogram";
37 tag = "v${version}";
38 hash = "sha256-8+neei3GXb8vIb7EXUposWFo8oU1PA/zDLmC1drYKAA=";
39 };
40
41 build-system = [ hatchling ];
42
43 pythonRelaxDeps = [ "aiohttp" ];
44
45 dependencies = [
46 aiofiles
47 aiohttp
48 certifi
49 magic-filter
50 pydantic
51 ];
52
53 optional-dependencies = {
54 fast = [
55 aiodns
56 uvloop
57 ];
58 mongo = [
59 motor
60 pymongo
61 ];
62 redis = [ redis ];
63 proxy = [ aiohttp-socks ];
64 i18n = [ babel ];
65 signature = [ cryptography ];
66 };
67
68 nativeCheckInputs = [
69 aresponses
70 pycryptodomex
71 pytest-aiohttp
72 pytest-asyncio
73 pytest-lazy-fixture
74 pytestCheckHook
75 pytz
76 ]
77 ++ lib.concatAttrValues optional-dependencies;
78
79 pytestFlags = [
80 # DeprecationWarning: 'asyncio.get_event_loop_policy' is deprecated and slate...
81 "-Wignore::DeprecationWarning"
82 ];
83
84 pythonImportsCheck = [ "aiogram" ];
85
86 passthru.updateScript = gitUpdater {
87 rev-prefix = "v";
88 ignoredVersions = "4.1";
89 };
90
91 __darwinAllowLocalNetworking = true;
92
93 meta = {
94 description = "Modern and fully asynchronous framework for Telegram Bot API";
95 homepage = "https://github.com/aiogram/aiogram";
96 changelog = "https://github.com/aiogram/aiogram/releases/tag/${src.tag}";
97 license = lib.licenses.mit;
98 maintainers = with lib.maintainers; [ sikmir ];
99 };
100}