1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 click,
6 colorama,
7 cryptography,
8 exrex,
9 fetchFromGitHub,
10 poetry-core,
11 pyopenssl,
12 pyperclip,
13 pytest-mock,
14 pytestCheckHook,
15 pythonOlder,
16 questionary,
17 requests,
18 requests-mock,
19}:
20
21buildPythonPackage rec {
22 pname = "myjwt";
23 version = "1.6.1";
24 pyproject = true;
25
26 disabled = pythonOlder "3.8";
27
28 src = fetchFromGitHub {
29 owner = "mBouamama";
30 repo = "MyJWT";
31 rev = "refs/tags/${version}";
32 hash = "sha256-qdDA8DpJ9kAPTvCkQcPBHNlUqxwsS0vAESglvUygXhg=";
33 };
34
35 postPatch = ''
36 substituteInPlace pyproject.toml \
37 --replace-fail "1.6.0" "${version}"
38 '';
39
40 pythonRelaxDeps = [
41 "cryptography"
42 "pyopenssl"
43 "questionary"
44 ];
45
46 build-system = [
47 poetry-core
48 ];
49
50 dependencies = [
51 click
52 colorama
53 cryptography
54 exrex
55 pyopenssl
56 pyperclip
57 questionary
58 requests
59 ];
60
61 nativeCheckInputs = [
62 pytest-mock
63 pytestCheckHook
64 requests-mock
65 ];
66
67 pythonImportsCheck = [ "myjwt" ];
68
69 meta = with lib; {
70 description = "CLI tool for testing vulnerabilities of JSON Web Tokens (JWT)";
71 homepage = "https://github.com/mBouamama/MyJWT";
72 changelog = "https://github.com/tyki6/MyJWT/releases/tag/${version}";
73 license = with licenses; [ mit ];
74 maintainers = with maintainers; [ fab ];
75 # Build failures
76 broken = stdenv.isDarwin;
77 };
78}