+
+(define-public python-slurm-magic
+ (let ((commit "73dd1a2b85799f7dae4b3f1cd9027536eff0c4d7")
+ (revision "0"))
+ (package
+ (name "python-slurm-magic")
+ (version (git-version "0.0" revision commit))
+ (home-page "https://github.com/NERSC/slurm-magic")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference (url home-page)
+ (commit commit)))
+ (sha256
+ (base32
+ "19pp2vs0wm8mx0arz9n6lw9wgyv70w9wyi4y6b91qc5j3bz5igfs"))
+ (file-name (git-file-name name version))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (add-before 'build 'set-slurm-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; The '_execute' method tries to exec 'salloc'
+ ;; etc. from $PATH. Record the absolute file name
+ ;; instead.
+ (let ((slurm (assoc-ref inputs "slurm")))
+ (substitute* "slurm_magic.py"
+ (("name = (.*)$" _ value)
+ (string-append "name = \""
+ slurm "/bin/\" + "
+ value "\n")))
+ #t))))))
+ (inputs
+ `(("slurm" ,slurm)))
+ (propagated-inputs
+ `(("python-ipython" ,python-ipython)
+ ("python-pandas" ,python-pandas)))
+ (synopsis "Control the SLURM batch scheduler from Jupyter Notebook")
+ (description
+ "This package implements Jupyter/IPython
+@uref{http://ipython.readthedocs.io/en/stable/interactive/magics.html, magic
+commands} for interacting with the SLURM workload manager. SLURM magic simply
+wraps command-line executables and the commands themselves should look like
+their command-line counterparts. Commands are spawned via @code{subprocess}
+and output captured in the notebook. Whatever arguments are accepted by a
+SLURM command line executable are also accepted by the corresponding magic
+command---e.g., @code{%salloc}, @code{%sbatch}, etc.")
+ (license license:bsd-3))))