87 lines
1.8 KiB
Nix
87 lines
1.8 KiB
Nix
{
|
|
lib,
|
|
buildPythonPackage,
|
|
fetchFromGitHub,
|
|
blurhash,
|
|
cryptography,
|
|
decorator,
|
|
fetchpatch,
|
|
graphemeu,
|
|
http-ece,
|
|
python-dateutil,
|
|
python-magic,
|
|
requests,
|
|
pytestCheckHook,
|
|
pytest-cov-stub,
|
|
pytest-mock,
|
|
pytest-vcr,
|
|
requests-mock,
|
|
setuptools,
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
pname = "mastodon-py";
|
|
version = "2.1.4";
|
|
pyproject = true;
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "halcy";
|
|
repo = "Mastodon.py";
|
|
tag = "v${version}";
|
|
hash = "sha256-i3HMT8cabSl664UK3eopJQ9bDBpGCgbHTvBJkgeoxd8=";
|
|
};
|
|
|
|
patches = [
|
|
# Switch dependency from unmaintained `grapheme` to `graphemeu`
|
|
(fetchpatch {
|
|
url = "https://github.com/halcy/Mastodon.py/commit/939c7508414e950922c518260a9ba5a5853aeef2.patch";
|
|
hash = "sha256-XBiAFxYUBNyynld++UwPGIIg9j+3/EF2jGqiysVqYRM=";
|
|
})
|
|
];
|
|
|
|
build-system = [ setuptools ];
|
|
|
|
dependencies = [
|
|
blurhash
|
|
decorator
|
|
python-dateutil
|
|
python-magic
|
|
requests
|
|
];
|
|
|
|
optional-dependencies = {
|
|
blurhash = [ blurhash ];
|
|
grapheme = [ graphemeu ];
|
|
webpush = [
|
|
http-ece
|
|
cryptography
|
|
];
|
|
};
|
|
|
|
nativeCheckInputs = [
|
|
pytestCheckHook
|
|
pytest-cov-stub
|
|
pytest-mock
|
|
pytest-vcr
|
|
requests-mock
|
|
]
|
|
++ lib.concatAttrValues optional-dependencies;
|
|
|
|
# disabledTests = [
|
|
# "test_notifications_dismiss_pre_2_9_2"
|
|
# "test_status_card_pre_2_9_2"
|
|
# "test_stream_user_direct"
|
|
# "test_stream_user_local"
|
|
# ];
|
|
|
|
pythonImportsCheck = [ "mastodon" ];
|
|
|
|
meta = {
|
|
changelog = "https://github.com/halcy/Mastodon.py/blob/${src.tag}/CHANGELOG.rst";
|
|
description = "Python wrapper for the Mastodon API";
|
|
homepage = "https://github.com/halcy/Mastodon.py";
|
|
license = lib.licenses.mit;
|
|
maintainers = with lib.maintainers; [ dotlambda ];
|
|
};
|
|
}
|