This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
oe_yp_python3_recipes [2020/06/16 17:00] rpjday [Regular stuff] |
oe_yp_python3_recipes [2020/06/16 17:16] rpjday [Regular stuff] |
||
---|---|---|---|
Line 2: | Line 2: | ||
Standards for pypi/setuptools3-based recipes. | Standards for pypi/setuptools3-based recipes. | ||
+ | |||
+ | ===== pypi.bbclass ===== | ||
+ | |||
+ | <code> | ||
+ | def pypi_package(d): | ||
+ | bpn = d.getVar('BPN') | ||
+ | if bpn.startswith('python-'): | ||
+ | return bpn[7:] | ||
+ | elif bpn.startswith('python3-'): | ||
+ | return bpn[8:] | ||
+ | return bpn | ||
+ | |||
+ | PYPI_PACKAGE ?= "${@pypi_package(d)}" | ||
+ | PYPI_PACKAGE_EXT ?= "tar.gz" | ||
+ | |||
+ | def pypi_src_uri(d): | ||
+ | package = d.getVar('PYPI_PACKAGE') | ||
+ | package_ext = d.getVar('PYPI_PACKAGE_EXT') | ||
+ | pv = d.getVar('PV') | ||
+ | return 'https://files.pythonhosted.org/packages/source/%s/%s/%s-%s.%s' % (package[0], package, package, pv, package_ext) | ||
+ | |||
+ | PYPI_SRC_URI ?= "${@pypi_src_uri(d)}" | ||
+ | |||
+ | HOMEPAGE ?= "https://pypi.python.org/pypi/${PYPI_PACKAGE}/" | ||
+ | SECTION = "devel/python" | ||
+ | SRC_URI += "${PYPI_SRC_URI}" | ||
+ | S = "${WORKDIR}/${PYPI_PACKAGE}-${PV}" | ||
+ | |||
+ | UPSTREAM_CHECK_URI ?= "https://pypi.org/project/${PYPI_PACKAGE}/" | ||
+ | UPSTREAM_CHECK_REGEX ?= "/${PYPI_PACKAGE}/(?P<pver>(\d+[\.\-_]*)+)/" | ||
+ | </code> | ||
===== Regular stuff ===== | ===== Regular stuff ===== | ||
Line 8: | Line 39: | ||
* ''LICENSE'' | * ''LICENSE'' | ||
* ''LIC_FILES_CHKSUM'' | * ''LIC_FILES_CHKSUM'' | ||
+ | * ''SECTION = "devel/python"'' | ||
* ''SRC_URI[md5sum]'' | * ''SRC_URI[md5sum]'' | ||
* ''SRC_URI[sha256sum]'' | * ''SRC_URI[sha256sum]'' | ||
Line 24: | Line 56: | ||
python3-simpleeval_0.9.10.bb:HOMEPAGE = "https://pypi.org/project/simpleeval/" | python3-simpleeval_0.9.10.bb:HOMEPAGE = "https://pypi.org/project/simpleeval/" | ||
... | ... | ||
+ | </code> | ||
+ | |||
+ | ===== PYPI_PACKAGE ===== | ||
+ | |||
+ | Unnecessary if: | ||
+ | |||
+ | <code> | ||
+ | def pypi_package(d): | ||
+ | bpn = d.getVar('BPN') | ||
+ | if bpn.startswith('python-'): | ||
+ | return bpn[7:] | ||
+ | elif bpn.startswith('python3-'): | ||
+ | return bpn[8:] | ||
+ | return bpn | ||
+ | | ||
+ | PYPI_PACKAGE ?= "${@pypi_package(d)}" | ||
+ | </code> | ||
+ | |||
+ | Examples: | ||
+ | |||
+ | <code> | ||
+ | python3-asn1crypto_1.3.0.bb:PYPI_PACKAGE = "asn1crypto" | ||
+ | python3-async-timeout_3.0.1.bb:PYPI_PACKAGE = "async-timeout" | ||
+ | ... | ||
+ | python3-raven_6.10.0.bb:PYPI_PACKAGE = "raven" | ||
+ | python3-rfc3339-validator_0.1.1.bb:PYPI_PACKAGE = "rfc3339_validator" | ||
+ | python3-rfc3986-validator_0.1.1.bb:PYPI_PACKAGE = "rfc3986_validator" | ||
+ | python3-robotframework-seriallibrary_0.3.1.bb:PYPI_PACKAGE = "robotframework-seriallibrary" | ||
</code> | </code> |