depot/third_party/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix
Default email 159e378cbb Project import generated by Copybara.
GitOrigin-RevId: c04d5652cfa9742b1d519688f65d1bbccea9eb7e
2024-09-19 17:19:46 +03:00

143 lines
2.7 KiB
Nix

{
lib,
aiolimiter,
apscheduler,
beautifulsoup4,
buildPythonPackage,
cachetools,
cffi,
cryptography,
fetchFromGitHub,
flaky,
hatchling,
httpx,
pytest-asyncio,
pytest-timeout,
pytest-xdist,
pytestCheckHook,
pythonAtLeast,
pythonOlder,
pytz,
setuptools,
tornado,
}:
buildPythonPackage rec {
pname = "python-telegram-bot";
version = "21.5";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "python-telegram-bot";
repo = "python-telegram-bot";
rev = "refs/tags/v${version}";
hash = "sha256-i1YEcN615xeI4HcygXV9kzuXpT2yDSnlNU6bZqu1dPM=";
};
build-system = [
setuptools
hatchling
];
dependencies = [ httpx ];
optional-dependencies = rec {
all = ext ++ http2 ++ passport ++ socks;
callback-data = [ cachetools ];
ext = callback-data ++ job-queue ++ rate-limiter ++ webhooks;
http2 = httpx.optional-dependencies.http2;
job-queue = [
apscheduler
pytz
];
passport = [ cryptography ] ++ lib.optionals (pythonAtLeast "3.13") [ cffi ];
rate-limiter = [ aiolimiter ];
socks = httpx.optional-dependencies.socks;
webhooks = [ tornado ];
};
nativeCheckInputs = [
beautifulsoup4
flaky
pytest-asyncio
pytest-timeout
pytest-xdist
pytestCheckHook
] ++ optional-dependencies.all;
pythonImportsCheck = [ "telegram" ];
disabledTests = [
# Tests require network access
"TestAIO"
"TestAnimation"
"TestApplication"
"TestAudio"
"TestBase"
"TestBot"
"TestCallback"
"TestChat"
"TestChosenInlineResult"
"TestCommandHandler"
"TestConstants"
"TestContact"
"TestConversationHandler"
"TestDice"
"TestDict"
"TestDocument"
"TestFile"
"TestForceReply"
"TestForum"
"TestGame"
"TestGet"
"TestHTTP"
"TestInline"
"TestInput"
"TestInvoice"
"TestJob"
"TestKeyboard"
"TestLocation"
"TestMask"
"TestMenu"
"TestMessage"
"TestMeta"
"TestOrder"
"TestPassport"
"TestPhoto"
"TestPickle"
"TestPoll"
"TestPre"
"TestPrefix"
"TestProximity"
"TestReply"
"TestRequest"
"TestSend"
"TestSent"
"TestShipping"
"TestSlot"
"TestSticker"
"TestString"
"TestSuccess"
"TestTelegram"
"TestType"
"TestUpdate"
"TestUser"
"TestVenue"
"TestVideo"
"TestVoice"
"TestWeb"
];
meta = with lib; {
description = "Python library to interface with the Telegram Bot API";
homepage = "https://python-telegram-bot.org";
changelog = "https://github.com/python-telegram-bot/python-telegram-bot/blob/v${version}/CHANGES.rst";
license = licenses.lgpl3Only;
maintainers = with maintainers; [
veprbl
pingiun
];
};
}