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