1{
2 lib,
3 python3Packages,
4 fetchFromGitHub,
5 versionCheckHook,
6}:
7
8python3Packages.buildPythonApplication rec {
9 pname = "submit50";
10 version = "3.2.1";
11 pyproject = true;
12
13 src = fetchFromGitHub {
14 owner = "cs50";
15 repo = "submit50";
16 tag = "v${version}";
17 hash = "sha256-D71d8f2XfLrsDRBuEZK7B96UTUkJLkHsCWchDNO8epI=";
18 };
19
20 build-system = [
21 python3Packages.setuptools
22 ];
23
24 dependencies = with python3Packages; [
25 lib50
26 packaging
27 pytz
28 requests
29 termcolor
30 ];
31
32 pythonImportsCheck = [ "submit50" ];
33
34 nativeCheckInputs = [ versionCheckHook ];
35 versionCheckProgramArg = "--version";
36
37 # no python tests
38
39 meta = {
40 description = "Tool for submitting student CS50 code";
41 homepage = "https://cs50.readthedocs.io/submit50/";
42 downloadPage = "https://github.com/cs50/submit50";
43 changelog = "https://github.com/cs50/submit50/releases/tag/${src.tag}";
44 license = lib.licenses.gpl3Only;
45 platforms = lib.platforms.unix;
46 maintainers = with lib.maintainers; [ ethancedwards8 ];
47 mainProgram = "submit50";
48 };
49}