1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 setuptools,
6 cryptography,
7 pytestCheckHook,
8 pythonOlder,
9 sphinxHook,
10 sphinx-rtd-theme,
11 zope-interface,
12}:
13
14buildPythonPackage rec {
15 pname = "pyjwt";
16 version = "2.8.0";
17 format = "pyproject";
18
19 disabled = pythonOlder "3.7";
20
21 src = fetchPypi {
22 pname = "PyJWT";
23 inherit version;
24 hash = "sha256-V+KNFW49XBAIjgxoq7kL+sPfgrQKcb0NqiDGXM1cI94=";
25 };
26
27 postPatch = ''
28 sed -i '/types-cryptography/d' setup.cfg
29 '';
30
31 outputs = [
32 "out"
33 "doc"
34 ];
35
36 nativeBuildInputs = [
37 setuptools
38 sphinxHook
39 sphinx-rtd-theme
40 zope-interface
41 ];
42
43 passthru.optional-dependencies.crypto = [ cryptography ];
44
45 nativeCheckInputs = [
46 pytestCheckHook
47 ] ++ (lib.flatten (lib.attrValues passthru.optional-dependencies));
48
49 disabledTests = [
50 # requires internet connection
51 "test_get_jwt_set_sslcontext_default"
52 ];
53
54 pythonImportsCheck = [ "jwt" ];
55
56 meta = with lib; {
57 changelog = "https://github.com/jpadilla/pyjwt/blob/${version}/CHANGELOG.rst";
58 description = "JSON Web Token implementation in Python";
59 homepage = "https://github.com/jpadilla/pyjwt";
60 license = licenses.mit;
61 maintainers = with maintainers; [ prikhi ];
62 };
63}