diff mbox series

[bug#60424] gnu: Add python-online-judge-tools

Message ID e0227b25ac1950922c869ea6f6f8dae1a8033b60.1672377617.git.gemmaro.dev@gmail.com
State New
Headers show
Series [bug#60424] gnu: Add python-online-judge-tools | expand

Commit Message

gemmaro Dec. 30, 2022, 5:20 a.m. UTC
---
 gnu/packages/python-xyz.scm | 65 +++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)


base-commit: a09f28758af24e947f9daaf549740e52af111941

Comments

Lars-Dominik Braun Jan. 4, 2023, 8:46 a.m. UTC | #1
Hi,

general notes: Please split your changes into one patch per package and
add changelog-style commit messages.

> +    ;; NOTE: somehow it cannot be downloaded from PyPI
Why did it fail?

> +     ;; NOTE: a lot of tests needs networking
> +     `(#:tests? #f))
Is it possible to disable just the ones that require networking instead
of disabling all tests?

> +(define-public python-online-judge-tools
> +  (package
> +    (name "python-online-judge-tools")
> +    (version "11.5.1")
> +    ;; NOTE: somehow it cannot be downloaded from PyPI
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/online-judge-tools/oj")
> +                    (commit (string-append "v" version))))
> +              (file-name (git-file-name name version))
> +              (sha256
> +               (base32
> +                "0zkzmmjgjb6lyrzq1ip54cpnp7al9a7mcyjyi5vx58bvnx3q0c6m"))))
> +    (build-system python-build-system)
> +    (arguments
> +     ;; NOTE: a lot of tests needs networking
> +     `(#:tests? #f))
> +    (propagated-inputs (list python-online-judge-api-client python-colorama
> +                             python-requests))
> +    (home-page "https://github.com/online-judge-tools/oj")
> +    (synopsis "Command to help solving problems on various online judges")
> +    (description
> +     "@command{oj} is a command line tool to help solving problems on
> +various online judges.  This command automates downloading sample
> +cases, generating additional test cases, testing for your code, and
> +submitting it.")
> +    (license license:expat)))
It looks like this one provides a command-line tool called `oj`, so
the package should be named `oj` or just `online-judge-tools` without
python- prefix.

Thanks,
Lars
diff mbox series

Patch

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 2b28e8bd53..43e98ed9dc 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -132,6 +132,7 @@ 
 ;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org>
 ;;; Copyright © 2022 Baptiste Strazzulla <bstrazzull@hotmail.fr>
 ;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr>
+;;; Copyright © 2022 gemmaro <gemmaro.dev@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22662,6 +22663,70 @@  (define-public python-onetimepass
 time-based (TOTP) passwords.")
     (license license:expat)))
 
+(define-public python-online-judge-api-client
+  (package
+    (name "python-online-judge-api-client")
+    (version "10.10.1")
+    ;; NOTE: somehow it cannot be downloaded from PyPI
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/online-judge-tools/api-client")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0yjqhh44va5nawd9rpqcjyf0g7rjlkvn7s90fmwmwjyqvy6lhjiz"))))
+    (build-system python-build-system)
+    (arguments
+     ;; NOTE: a lot of tests needs networking
+     `(#:tests? #f))
+    (propagated-inputs (list python-appdirs
+                             python-beautifulsoup4
+                             python-colorlog
+                             python-lxml
+                             python-requests
+                             python-toml
+                             python-jsonschema))
+    (home-page "https://github.com/online-judge-tools/api-client")
+    (synopsis "API client for various online judges")
+    (description
+     "This is an API client for various online judges, used as the backend
+library of @code{oj} command.  You can use the Python
+library (@code{onlinejudge} module) and the command-line
+interface (@command{oj-api} command) which talks JSON compatible with
+jmerle/competitive-companion.")
+    (license license:expat)))
+
+(define-public python-online-judge-tools
+  (package
+    (name "python-online-judge-tools")
+    (version "11.5.1")
+    ;; NOTE: somehow it cannot be downloaded from PyPI
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/online-judge-tools/oj")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0zkzmmjgjb6lyrzq1ip54cpnp7al9a7mcyjyi5vx58bvnx3q0c6m"))))
+    (build-system python-build-system)
+    (arguments
+     ;; NOTE: a lot of tests needs networking
+     `(#:tests? #f))
+    (propagated-inputs (list python-online-judge-api-client python-colorama
+                             python-requests))
+    (home-page "https://github.com/online-judge-tools/oj")
+    (synopsis "Command to help solving problems on various online judges")
+    (description
+     "@command{oj} is a command line tool to help solving problems on
+various online judges.  This command automates downloading sample
+cases, generating additional test cases, testing for your code, and
+submitting it.")
+    (license license:expat)))
+
 (define-public python-parso
   (package
     (name "python-parso")