| # Copyright 1999-2022 Gentoo Authors |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| EAPI=7 |
| |
| CARGO_OPTIONAL=yes |
| DISTUTILS_USE_PEP517=setuptools |
| PYTHON_COMPAT=( python3_{6..9} pypy3 ) |
| |
| CRATES=" |
| autocfg-1.1.0 |
| bitflags-1.3.2 |
| byteorder-1.4.3 |
| cfg-if-1.0.0 |
| convert_case-0.4.0 |
| cssparser-0.27.2 |
| cssparser-macros-0.6.0 |
| derive_more-0.99.17 |
| dtoa-0.4.8 |
| dtoa-short-0.3.3 |
| futf-0.1.5 |
| fxhash-0.2.1 |
| getrandom-0.1.16 |
| html5ever-0.25.1 |
| indoc-1.0.4 |
| instant-0.1.12 |
| itoa-0.4.8 |
| kuchiki-0.8.1 |
| lazy_static-1.4.0 |
| libc-0.2.121 |
| lock_api-0.4.6 |
| log-0.4.14 |
| mac-0.1.1 |
| markup5ever-0.10.1 |
| matches-0.1.9 |
| memoffset-0.6.5 |
| new_debug_unreachable-1.0.4 |
| nodrop-0.1.14 |
| once_cell-1.10.0 |
| parking_lot-0.11.2 |
| parking_lot_core-0.8.5 |
| phf-0.8.0 |
| phf_codegen-0.8.0 |
| phf_generator-0.8.0 |
| phf_macros-0.8.0 |
| phf_shared-0.10.0 |
| phf_shared-0.8.0 |
| ppv-lite86-0.2.16 |
| precomputed-hash-0.1.1 |
| proc-macro2-1.0.36 |
| proc-macro-hack-0.5.19 |
| pyo3-0.17.1 |
| pyo3-build-config-0.17.1 |
| pyo3-ffi-0.17.1 |
| pyo3-macros-0.17.1 |
| pyo3-macros-backend-0.17.1 |
| quote-1.0.16 |
| rand-0.7.3 |
| rand_chacha-0.2.2 |
| rand_core-0.5.1 |
| rand_hc-0.2.0 |
| rand_pcg-0.2.1 |
| redox_syscall-0.2.11 |
| rustc_version-0.4.0 |
| scopeguard-1.1.0 |
| selectors-0.22.0 |
| semver-1.0.6 |
| serde-1.0.136 |
| servo_arc-0.1.1 |
| siphasher-0.3.10 |
| smallvec-1.8.0 |
| stable_deref_trait-1.2.0 |
| string_cache-0.8.3 |
| string_cache_codegen-0.5.1 |
| syn-1.0.89 |
| target-lexicon-0.12.3 |
| tendril-0.4.3 |
| thin-slice-0.1.1 |
| unicode-xid-0.2.2 |
| unindent-0.1.8 |
| utf-8-0.7.6 |
| wasi-0.9.0+wasi-snapshot-preview1 |
| winapi-0.3.9 |
| winapi-i686-pc-windows-gnu-0.4.0 |
| winapi-x86_64-pc-windows-gnu-0.4.0 |
| " |
| |
| inherit cargo distutils-r1 |
| |
| DESCRIPTION="A plugin for setuptools to build Rust Python extensions" |
| HOMEPAGE=" |
| https://github.com/PyO3/setuptools-rust/ |
| https://pypi.org/project/setuptools-rust/ |
| " |
| SRC_URI=" |
| https://github.com/PyO3/setuptools-rust/archive/v${PV}.tar.gz |
| -> ${P}.gh.tar.gz |
| test? ( $(cargo_crate_uris ${CRATES}) ) |
| " |
| |
| LICENSE="MIT" |
| SLOT="0" |
| KEYWORDS="*" |
| IUSE="-test" |
| RESTRICT="!test? ( test )" |
| |
| RDEPEND=" |
| virtual/rust |
| <dev-python/semantic_version-3[${PYTHON_USEDEP}] |
| >=dev-python/semantic_version-2.8.2[${PYTHON_USEDEP}] |
| >=dev-python/setuptools-62.4[${PYTHON_USEDEP}] |
| >=dev-python/typing-extensions-3.7.4.3[${PYTHON_USEDEP}] |
| " |
| BDEPEND=" |
| >=dev-python/setuptools-62.4[${PYTHON_USEDEP}] |
| test? ( |
| ${RDEPEND} |
| dev-python/beautifulsoup4[${PYTHON_USEDEP}] |
| $(python_gen_cond_dep ' |
| dev-python/cffi[${PYTHON_USEDEP}] |
| ' 'python*') |
| dev-python/lxml[${PYTHON_USEDEP}] |
| dev-python/pytest[${PYTHON_USEDEP}] |
| ) |
| " |
| |
| src_unpack() { |
| cargo_src_unpack |
| } |
| |
| python_test() { |
| local examples=( |
| html-py-ever |
| namespace_package |
| rust_with_cffi |
| ) |
| for example_dir in ${examples[@]}; do |
| pushd examples/${example_dir} >/dev/null || die |
| einfo "Running ${example_dir} test" |
| esetup.py build --build-lib=build/lib |
| |
| case ${example_dir} in |
| html-py-ever) |
| pushd tests >/dev/null || die |
| local -x PYTHONPATH=../build/lib |
| ${EPYTHON} run_all.py || die "Tests failed with ${EPYTHON}" |
| popd >/dev/null || die |
| ;; |
| *) |
| pushd build/lib >/dev/null || die |
| epytest ../../tests |
| popd >/dev/null || die |
| ;; |
| esac |
| |
| rm -rf build || die |
| popd >/dev/null || die |
| done |
| } |