* gnu/packages/python-xyz.scm (python-jupytext): New variable.
---
gnu/packages/python-xyz.scm | 77 +++++++++++++++++++++++++++++++++++++
1 file changed, 77 insertions(+)
Toggle diff (90 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6c111bcb82..51753e279a 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -319,6 +319,83 @@ (define-public python-janus
design}.")
(license license:asl2.0)))
+(define-public python-jupytext
+ (package
+ (name "python-jupytext")
+ (version "1.14.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mwouts/jupytext")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0gqpvphrp2ja9ggadx0rrk0sqbpz6kqqg62qqmw4k17469lphc8c"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "tests/utils.py"
+ ;; is required isort > 5.3.0 but the authors made a confusion
+ ;; between string comparations and version parsing comparasion
+ (("or isort_version\\(\\) <= \"5\\.3\\.0\"")
+ "")
+ (("\"python_kernel\"")
+ "\"python3\""))))
+ (replace 'check
+ (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+ ;; some tests fails when HOME=/homeless-shelter.
+ (setenv "HOME" "/tmp")
+ ;; OSError: [Errno 18] Invalid cross-device link
+ (setenv "TMPDIR" "/tmp")
+ (add-installed-pythonpath inputs outputs)
+ (when tests?
+ (let ((disabled-tests
+ (list "test_create_header_with_set_formats"
+ "test_pre_commit_hook"
+ "test_sync_with_pre_commit_hook")))
+ (invoke "pytest" "-vv" "-k"
+ (string-append "not "
+ (string-join disabled-tests
+ " and not "))))))))))
+ (native-inputs
+ (list git
+ python-autopep8
+ python-black
+ python-flake8
+ python-gitpython
+ python-isort
+ python-ipython-genutils
+ python-jupyter-server
+ python-pre-commit
+ python-pytest
+ python-pyaml
+ python-sphinx-gallery-0.7.0))
+ (propagated-inputs
+ (list python-markdown-it-py
+ python-mdit-py-plugins
+ python-nbformat))
+ (home-page "https://github.com/mwouts/jupytext")
+ (synopsis
+ "Jupyter notebooks as Markdown documents, Julia, Python or R scripts")
+ (description
+ "@code{Jupytext} is a plugin for @code{Jupyter} that can save @code{Jupyter
+notebooks} as either @code{Markdown} files or scripts in many languages. Common
+use cases for @code{Jupytext} are:
+@itemize
+@item
+version control on Jupyter Notebooks
+@item
+editing, merging or refactoring notebooks in your favorite text editor
+@item
+applying Q&A checks on notebooks.
+@end itemize")
+ (license license:expat)))
+
(define-public python-logzero
(package
(name "python-logzero")
--
2.37.3