1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 setuptools,
6 attrs,
7 pexpect,
8 pyyaml,
9 requests,
10 termcolor,
11 jellyfish,
12 cryptography,
13 pytestCheckHook,
14}:
15
16buildPythonPackage rec {
17 pname = "lib50";
18 version = "3.1.4";
19 pyproject = true;
20
21 # latest GitHub release is several years old. Pypi is up to date.
22 src = fetchPypi {
23 pname = "lib50";
24 inherit version;
25 hash = "sha256-/fuiizWAvM1L+shuEnYo0pXwWsLAjDEYUNfb56d/8Y0=";
26 };
27
28 build-system = [ setuptools ];
29
30 dependencies = [
31 attrs
32 pexpect
33 pyyaml
34 requests
35 termcolor
36 jellyfish
37 cryptography
38 ];
39
40 pythonRelaxDeps = [
41 "attrs"
42 "pyyaml"
43 "termcolor"
44 "jellyfish"
45 ];
46
47 pythonImportsCheck = [ "lib50" ];
48
49 # latest GitHub release is several years old and doesn't include
50 # tests and neither does pypi version include tests
51 doCheck = false;
52
53 meta = {
54 description = "CS50's own internal library used in many of its tools";
55 homepage = "https://github.com/cs50/lib50";
56 license = lib.licenses.gpl3Only;
57 platforms = lib.platforms.unix;
58 maintainers = with lib.maintainers; [ ethancedwards8 ];
59 };
60}