1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 aiohttp,
6 osrparse,
7 requests,
8 requests-oauthlib,
9 setuptools,
10 typing-utils,
11}:
12
13buildPythonPackage rec {
14 pname = "ossapi";
15 version = "5.3.2";
16 pyproject = true;
17
18 src = fetchFromGitHub {
19 owner = "tybug";
20 repo = "ossapi";
21 tag = "v${version}";
22 hash = "sha256-sLzw/0RsA0PGxxQeVz4TGIpTMMlrZ0i4ZGolrz5S16E=";
23 };
24
25 build-system = [ setuptools ];
26
27 pythonRelaxDeps = [ "osrparse" ];
28
29 dependencies = [
30 osrparse
31 requests
32 requests-oauthlib
33 typing-utils
34 ];
35
36 optional-dependencies = {
37 async = [ aiohttp ];
38 };
39
40 # Tests require Internet access and an osu! API key
41 doCheck = false;
42
43 pythonImportsCheck = [ "ossapi" ];
44
45 meta = {
46 description = "Python wrapper for the osu! API";
47 homepage = "https://github.com/tybug/ossapi";
48 changelog = "https://github.com/tybug/ossapi/releases/tag/${src.tag}";
49 license = lib.licenses.agpl3Only;
50 maintainers = with lib.maintainers; [ wulpine ];
51 };
52}