(define-public fwdpy11 (package (name "fwdpy11") (version "0.21.6") (source (origin (method url-fetch) (uri (pypi-uri "fwdpy11" version)) (sha256 (base32 "1mgs7fcda3cr7a7kbnk0x50993131453rlrkq7nv4pxqw53lnrv3")))) (build-system cargo-build-system) (arguments (list #:imported-modules `(,@%cargo-build-system-modules ,@%pyproject-build-system-modules) #:modules '((guix build cargo-build-system) ((guix build pyproject-build-system) #:prefix py:) (guix build utils)) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir-rust (lambda _ (chdir "rust/fp11rust"))) (replace 'unpack-rust-crates ;; This is to avoid the non-crate source from being erroneously ;; unpacked by this phase, causing an error. (lambda* (#:key inputs #:allow-other-keys #:rest args) (apply (assoc-ref %standard-phases 'unpack-rust-crates) (append args (list #:inputs (alist-delete "source" inputs)))))) (replace 'configure (lambda* (#:key inputs #:allow-other-keys #:rest args) (apply (assoc-ref %standard-phases 'configure) (append args (list #:inputs (alist-delete "source" inputs)))))) (delete 'build) (delete 'check) (delete 'install) (delete 'package) (add-before 'prepare-python-module 'chdir-root (lambda _ (chdir "../.."))) (add-after 'prepare-python-module 'build-python-module (assoc-ref py:%standard-phases 'build)) (add-after 'build-python-module 'install-python-module (assoc-ref py:%standard-phases 'install)) (add-after 'install-python-module 'check-python-module (lambda* (#:key inputs #:allow-other-keys #:rest args) (apply (assoc-ref py:%standard-phases 'check) args))) ) #:cargo-inputs `(("rust-autocfg", rust-autocfg-1) ("rust-demes", rust-demes-0.5) ("rust-demes-forward", rust-demes-forward-0.4) ("rust-demes-forward-capi", rust-demes-forward-capi-0.4) ("rust-hashbrown", rust-hashbrown-0.12) ("rust-indexmap", rust-indexmap-1.8) ("rust-itoa", rust-itoa-1) ("rust-libc", rust-libc-0.2) ("rust-proc-macro2", rust-proc-macro2-1) ("rust-quote", rust-quote-1) ("rust-regex", rust-regex-1) ("rust-regex-syntax", rust-regex-syntax-0.6) ("rust-ryu", rust-ryu-1) ("rust-serde", rust-serde-1) ("rust-serde-derive", rust-serde-derive-1) ("rust-serde-yaml", rust-serde-yaml-0.9) ("rust-syn", rust-syn-1) ("rust-thiserror", rust-thiserror-1) ("rust-thiserror-impl", rust-thiserror-impl-1) ("rust-unicode-ident", rust-unicode-ident-1) ("rust-unsafe-libyaml", rust-unsafe-libyaml-0.2) ) )) (native-inputs (list python-wrapper cmake rust-cbindgen gsl pybind11 python-wheel python-setuptools python-setuptools-scm python-pytest python-pytest-xdist python-hypothesis python-msprime)) (propagated-inputs (list python-attrs python-deprecated python-black python-demes python-numpy python-scipy python-tskit)) (home-page "https://github.com/molpopgen/fwdpy11") (synopsis "Forward-time population genetic simulation in Python") (description "Forward-time population genetic simulation in Python") (license license:gpl3)) )