1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 poetry-core,
6 itsdangerous,
7 redis,
8 starlette,
9 pytestCheckHook,
10 pytest-asyncio,
11 pytest-cov-stub,
12 httpx,
13}:
14
15buildPythonPackage rec {
16 pname = "starsessions";
17 version = "2.2.1";
18 pyproject = true;
19
20 src = fetchFromGitHub {
21 owner = "alex-oleshkevich";
22 repo = "starsessions";
23 tag = "v${version}";
24 hash = "sha256-JI044sn6LQI37PvSLdz2dooa3v5qdHmp6DZD0p7VzJU=";
25 };
26
27 build-system = [ poetry-core ];
28
29 dependencies = [
30 itsdangerous
31 starlette
32 ];
33
34 pythonImportsCheck = [ "starsessions" ];
35
36 optional-dependencies = {
37 redis = [
38 redis
39 ];
40 };
41
42 nativeCheckInputs = [
43 httpx
44 pytestCheckHook
45 pytest-asyncio
46 pytest-cov-stub
47 ];
48
49 disabledTestPaths = [
50 "tests/backends/test_redis.py" # requires a running redis instance
51 ];
52
53 meta = {
54 description = "Advanced sessions for Starlette and FastAPI frameworks";
55 homepage = "https://github.com/alex-oleshkevich/starsessions";
56 license = lib.licenses.mit;
57 maintainers = with lib.maintainers; [ drupol ];
58 };
59}