Initial commit

This commit is contained in:
Your Name
2026-04-23 17:07:55 +08:00
commit b7e39e063b
16725 changed files with 1625565 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
+41
View File
@@ -0,0 +1,41 @@
meta-python
================================
Introduction
-------------------------
This layer is intended to be the home of python modules for OpenEmbedded.
Dependencies
-------------------------
The meta-python layer depends on:
URI: git://git.openembedded.org/openembedded-core
layers: meta
branch: master
URI: git://git.openembedded.org/meta-openembedded
layers: meta-oe
branch: master
Contributing
-------------------------
The meta-openembedded mailinglist
(openembedded-devel@lists.openembedded.org) is used for questions,
comments and patch review. It is subscriber only, so please register
before posting.
Send pull requests to openembedded-devel@lists.openembedded.org with
'[meta-python]' in the subject.
When sending single patches, please use something like:
git send-email -M -1 --to=openembedded-devel@lists.openembedded.org --subject-prefix='meta-python][PATCH'
Maintenance
-------------------------
Layer maintainers:
Tim "moto-timo" Orling <TicoTimo@gmail.com>
Derek Straka <derek@asterius.io>
@@ -0,0 +1,63 @@
# Class to scan Python code for security issues, using Bandit.
#
# $ bitbake python-foo -c bandit
#
# Writes the report to $DEPLOY_DIR/bandit/python-foo.html.
# No output if no issues found, a warning if issues found.
#
# https://github.com/PyCQA/bandit
# Default location of sources, based on standard distutils
BANDIT_SOURCE ?= "${S}/build"
# The report format to use.
# https://bandit.readthedocs.io/en/latest/formatters/index.html
BANDIT_FORMAT ?= "html"
# Whether a scan should be done every time the recipe is built.
#
# By default the scanning needs to be done explicitly, but by setting BANDIT_AUTO
# to 1 the scan will be done whenever the recipe it built. Note that you
# shouldn't set BANDIT_AUTO to 1 globally as it will then try to scan every
# recipe, including non-Python recipes, causing circular loops.
BANDIT_AUTO ?= "0"
# Whether Bandit finding issues results in a warning (0) or an error (1).
BANDIT_FATAL ?= "0"
do_bandit[depends] = "python3-bandit-native:do_populate_sysroot"
python do_bandit() {
import os, subprocess
try:
report = d.expand("${DEPLOY_DIR}/bandit/${PN}-${PV}.${BANDIT_FORMAT}")
os.makedirs(os.path.dirname(report), exist_ok=True)
args = ("bandit",
"--format", d.getVar("BANDIT_FORMAT"),
"--output", report,
"-ll",
"--recursive", d.getVar("BANDIT_SOURCE"))
subprocess.check_output(args, stderr=subprocess.STDOUT)
bb.note("Bandit found no issues (report written to %s)" % report)
except subprocess.CalledProcessError as e:
if e.returncode == 1:
if oe.types.boolean(d.getVar("BANDIT_FATAL")):
bb.error("Bandit found issues (report written to %s)" % report)
else:
bb.warn("Bandit found issues (report written to %s)" % report)
else:
bb.error("Bandit failed:\n" + e.output.decode("utf-8"))
}
python() {
before = "do_build"
after = "do_compile"
if oe.types.boolean(d.getVar("BANDIT_AUTO")):
bb.build.addtask("do_bandit", before, after, d)
else:
bb.build.addtask("do_bandit", None, after, d)
}
# TODO: store report in sstate
# TODO: a way to pass extra args or .bandit file, basically control -ll
@@ -0,0 +1,28 @@
export STAGING_INCDIR
export STAGING_LIBDIR
# LDSHARED is the ld *command* used to create shared library
export LDSHARED = "${CCLD} -shared"
# LDXXSHARED is the ld *command* used to create shared library of C++
# objects
export LDCXXSHARED = "${CXX} -shared"
# CCSHARED are the C *flags* used to create objects to go into a shared
# library (module)
export CCSHARED = "-fPIC -DPIC"
# LINKFORSHARED are the flags passed to the $(CC) command that links
# the python executable
export LINKFORSHARED = "${SECURITY_CFLAGS} -Xlinker -export-dynamic"
FILES:${PN} += "${libdir}/* ${libdir}/${PYTHON_DIR}/*"
FILES:${PN}-staticdev += "\
${PYTHON_SITEPACKAGES_DIR}/*.a \
"
FILES:${PN}-dev += "\
${datadir}/pkgconfig \
${libdir}/pkgconfig \
${PYTHON_SITEPACKAGES_DIR}/*.la \
"
python __anonymous() {
bb.warn("distutils-common-base.bbclass is deprecated, please use setuptools3-base.bbclass instead")
}
@@ -0,0 +1,9 @@
DEPENDS:append:class-target = " ${PYTHON_PN}-native ${PYTHON_PN}"
DEPENDS:append:class-nativesdk = " ${PYTHON_PN}-native ${PYTHON_PN}"
RDEPENDS:${PN} += "${@['', '${PYTHON_PN}-core']['${CLASSOVERRIDE}' == 'class-target']}"
inherit distutils-common-base python3native python3targetconfig
python __anonymous() {
bb.warn("distutils3-base.bbclass is deprecated, please use setuptools3-base.bbclass instead")
@@ -0,0 +1,71 @@
inherit distutils3-base
B = "${WORKDIR}/build"
distutils_do_configure[cleandirs] = "${B}"
DISTUTILS_BUILD_ARGS ?= ""
DISTUTILS_INSTALL_ARGS ?= "--root=${D} \
--prefix=${prefix} \
--install-lib=${PYTHON_SITEPACKAGES_DIR} \
--install-data=${datadir}"
DISTUTILS_PYTHON = "python3"
DISTUTILS_PYTHON:class-native = "nativepython3"
DISTUTILS_SETUP_PATH ?= "${S}"
python __anonymous() {
bb.warn("distutils3.bbclass is deprecated, please use setuptools3.bbclass instead")
}
distutils3_do_configure() {
:
}
distutils3_do_compile() {
cd ${DISTUTILS_SETUP_PATH}
NO_FETCH_BUILD=1 \
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_LIBDIR=${STAGING_LIBDIR} \
${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \
build --build-base=${B} ${DISTUTILS_BUILD_ARGS} || \
bbfatal_log "'${PYTHON_PN} setup.py build ${DISTUTILS_BUILD_ARGS}' execution failed."
}
distutils3_do_compile[vardepsexclude] = "MACHINE"
distutils3_do_install() {
cd ${DISTUTILS_SETUP_PATH}
install -d ${D}${PYTHON_SITEPACKAGES_DIR}
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_LIBDIR=${STAGING_LIBDIR} \
PYTHONPATH=${D}${PYTHON_SITEPACKAGES_DIR} \
${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \
build --build-base=${B} install --skip-build ${DISTUTILS_INSTALL_ARGS} || \
bbfatal_log "'${PYTHON_PN} setup.py install ${DISTUTILS_INSTALL_ARGS}' execution failed."
# support filenames with *spaces*
find ${D} -name "*.py" -exec grep -q ${D} {} \; \
-exec sed -i -e s:${D}::g {} \;
for i in ${D}${bindir}/* ${D}${sbindir}/*; do
if [ -f "$i" ]; then
sed -i -e s:${PYTHON}:${USRBINPATH}/env\ ${DISTUTILS_PYTHON}:g $i
sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i
fi
done
rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/easy-install.pth
#
# FIXME: Bandaid against wrong datadir computation
#
if [ -e ${D}${datadir}/share ]; then
mv -f ${D}${datadir}/share/* ${D}${datadir}/
rmdir ${D}${datadir}/share
fi
}
distutils3_do_install[vardepsexclude] = "MACHINE"
EXPORT_FUNCTIONS do_configure do_compile do_install
export LDSHARED="${CCLD} -shared"
@@ -0,0 +1,52 @@
#
# Copyright OpenEmbedded Contributors
#
# SPDX-License-Identifier: MIT
#
inherit meson setuptools3-base python3targetconfig python_pep517
# meson_do_qa_configure does the wrong thing here because
# mesonpy runs "meson setup ..." in do_compile context.
# Make it a dummy function.
meson_do_qa_configure () {
:
}
# This prevents the meson error:
# ERROR: Got argument buildtype as both -Dbuildtype and --buildtype. Pick one.
MESONOPTS:remove = "--buildtype ${MESON_BUILDTYPE}"
CONFIGURE_FILES = "pyproject.toml"
DEPENDS += "python3-wheel-native python3-meson-python-native"
def mesonpy_get_args(d):
vars = ['MESONOPTS', 'MESON_CROSS_FILE', 'EXTRA_OEMESON']
varlist = []
for var in vars:
value = d.getVar(var)
vallist = value.split()
for elem in vallist:
varlist.append("-Csetup-args=" + elem)
return ' '.join(varlist)
PEP517_BUILD_OPTS = "-Cbuilddir='${B}' ${@mesonpy_get_args(d)}"
# Python pyx -> c -> so build leaves absolute build paths in the code
INSANE_SKIP:${PN} += "buildpaths"
INSANE_SKIP:${PN}-src += "buildpaths"
python_mesonpy_do_configure () {
python_pep517_do_configure
}
python_mesonpy_do_compile () {
python_pep517_do_compile
}
python_mesonpy_do_install () {
python_pep517_do_install
}
EXPORT_FUNCTIONS do_configure do_compile do_install
@@ -0,0 +1,86 @@
#
# Lists of the ptest in meta-python, sorted into two sets by the time they take
# Please keep these sorted in alphabetical order
#
# A first pass at getting all meta-python recipes which inherit ptest
# meta_python_ptest_recipes=$(bitbake-layers show-recipes --recipes-only --layer meta-python --inherits ptest --bare | tr '\n' ' ' | pcregrep -o1 '^NOTE:.+===(.+)$')
#
# ptests which take less than ~30s each
PTESTS_FAST_META_PYTHON = "\
python3-ansicolors \
python3-asgiref \
python3-aspectlib \
python3-blinker \
python3-cachetools \
python3-cbor2 \
python3-click \
python3-dominate \
python3-execnet \
python3-geojson \
python3-html2text \
python3-inflection \
python3-intervals \
python3-ipy \
python3-iso3166 \
python3-parse-type \
python3-platformdirs \
python3-polyline \
python3-precise-runner \
python3-prettytable \
python3-pylint \
python3-ptyprocess \
python3-pyasn1-modules \
python3-pyroute2 \
python3-pyserial \
python3-pytoml \
python3-requests-file \
python3-requests-toolbelt \
python3-semver \
python3-serpent \
python3-simpleeval \
python3-smpplib \
python3-soupsieve \
python3-sqlparse \
python3-tomlkit \
python3-u-msgpack-python \
python3-unidiff \
python3-uritemplate \
python3-xmltodict \
python3-xxhash \
"
PTESTS_SLOW_META_PYTHON = "\
python3-lz4 \
"
PTESTS_PROBLEMS_META_PYTHON ="\
python3-appdirs \
python3-betamax \
python3-dnspython \
python3-fastjsonschema \
python3-gpiod \
python3-gunicorn \
python3-inotify \
python3-jdcal \
python3-jsmin \
python3-license-expression \
python3-msgpack \
python3-multidict \
python3-ordered-set \
python3-parse \
python3-pillow \
python3-pint \
python3-py-cpuinfo \
python3-pytest-lazy-fixture \
python3-pytest-mock \
python3-pyzmq \
python3-scrypt \
python3-service-identity \
python3-trustme \
python3-typeguard \
python3-whoosh \
python3-ujson \
python3-xlrd \
python3-yappi \
python3-yarl \
"
@@ -0,0 +1,19 @@
# We might have a conf and classes directory, append to BBPATH
BBPATH .= ":${LAYERDIR}"
# We have recipes directories, add to BBFILES
BBFILES += "${LAYERDIR}/recipes*/*/*.bb ${LAYERDIR}/recipes*/*/*.bbappend"
BBFILE_COLLECTIONS += "meta-python"
BBFILE_PATTERN_meta-python := "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-python = "5"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_meta-python = "1"
LAYERDEPENDS_meta-python = "core (>= 12) openembedded-layer"
LAYERSERIES_COMPAT_meta-python = "mickledore"
LICENSE_PATH += "${LAYERDIR}/licenses"
@@ -0,0 +1,15 @@
This software is provided 'as-is', without any express or implied
warranty. In no event will the author be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
@@ -0,0 +1,16 @@
Legal Notice
*** Legal Notice for all LLNL-contributed files ***
Copyright (c) 1996. The Regents of the University of California. All rights reserved.
Permission to use, copy, modify, and distribute this software for any purpose without
fee is hereby granted, provided that this entire notice is included in all copies of any software which is or includes a copy or modification of this software and in all copies of the supporting documentation for such software.
This work was produced at the University of California, Lawrence Livermore National
Laboratory under contract no. W-7405-ENG-48 between the U.S. Department of Energy and The Regents of the University of California for the operation of UC LLNL.
DISCLAIMER
This software was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government nor the University of California nor any of their employees, makes any warranty, express or implied, or assumes any liability or responsibility for the accuracy, completeness, or usefulness of any
information, apparatus, product, or process disclosed, or represents that its use would not infringe privately-owned rights. Reference herein to any specific commercial products, process, or service by trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government or the University of California. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or the University of California, and shall not be used for advertising or product endorsement purposes.
@@ -0,0 +1,37 @@
COPYRIGHT AND PERMISSION NOTICE
Copyright 1991-2015 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in
http://www.unicode.org/copyright.html.
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Unicode data files and any associated documentation
(the "Data Files") or Unicode software and any associated documentation
(the "Software") to deal in the Data Files or Software
without restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, and/or sell copies of
the Data Files or Software, and to permit persons to whom the Data Files
or Software are furnished to do so, provided that
(a) this copyright and permission notice appear with all copies
of the Data Files or Software,
(b) this copyright and permission notice appear in associated
documentation, and
(c) there is clear notice in each modified Data File or in the Software
as well as in the documentation associated with the Data File(s) or
Software that the data or software has been modified.
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT OF THIRD PARTY RIGHTS.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THE DATA FILES OR SOFTWARE.
Except as contained in this notice, the name of a copyright holder
shall not be used in advertising or otherwise to promote the sale,
use or other dealings in these Data Files or Software without prior
written authorization of the copyright holder.
@@ -0,0 +1,14 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.
@@ -0,0 +1,15 @@
SUMMARY = "A simple connection pool for gevent"
DESCRIPTION = "creates a pool of connections that can be used with gevent"
HOMEPAGE = "https://github.com/studio-ousia/gsocketpool"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4ba825394aec026b5f94edca44426859"
RDEPENDS:${PN} += " \
python3-gevent \
python3-logging \
"
SRC_URI[md5sum] = "49f5f292ef1b60944ae92ca426a5e550"
SRC_URI[sha256sum] = "f2e2749aceadce6b27ca52e2b0a64af99797746a8681e1a2963f72007c14cb14"
inherit pypi setuptools3
@@ -0,0 +1,11 @@
DESCRIPTION = "HTTP/2 State-Machine based protocol implementation"
HOMEPAGE = "https://github.com/python-hyper/hyper-h2"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=aa3b9b4395563dd427be5f022ec321c1"
SRC_URI[sha256sum] = "a83aca08fbe7aacb79fec788c9c0bac936343560ed9ec18b82a13a12c28d2abb"
inherit pypi setuptools3
RDEPENDS:${PN} += "${PYTHON_PN}-hpack ${PYTHON_PN}-hyperframe"
@@ -0,0 +1,12 @@
DESCRIPTION = "Pure-Python HPACK header compression"
HOMEPAGE = "https://github.com/python-hyper/hpack"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5bf1c68e73fbaec2b1687b7e71514393"
SRC_URI[md5sum] = "27e01514ef06dc9fa0798d3dcb7de47c"
SRC_URI[sha256sum] = "fc41de0c63e687ebffde81187a948221294896f6bdc0ae2312708df339430095"
inherit pypi setuptools3
RDEPENDS:${PN} += "python3-logging"
@@ -0,0 +1,9 @@
DESCRIPTION = "HTTP/2 framing layer for Python"
HOMEPAGE = "https://github.com/python-hyper/hyperframe"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5bf1c68e73fbaec2b1687b7e71514393"
SRC_URI[sha256sum] = "ae510046231dc8e9ecb1a6586f63d2347bf4c8905914aa84ba585ae85f28a914"
inherit pypi setuptools3
@@ -0,0 +1,9 @@
DESCRIPTION = "A pure-Python implementation of the HTTP/2 priority tree"
HOMEPAGE = "https://github.com/python-hyper/priority"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=ae57d8a09fc8b6b164d7357339619045"
SRC_URI[sha256sum] = "c965d54f1b8d0d0b19479db3924c7c36cf672dbf2aec92d43fbdaf4492ba18c0"
inherit pypi setuptools3
@@ -0,0 +1,12 @@
DESCRIPTION = "Python-based Network Connectivity Management"
HOMEPAGE = "https://pypi.python.org/pypi/pyconnman/"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
SRC_URI[md5sum] = "d60bdffbd9c920f005fdc5e05a8b94cd"
SRC_URI[sha256sum] = "d3a63a039c82b08a1171b003eafa62c6f128aa4eaa1ce7a55a9401b48f9ad926"
inherit pypi setuptools3
RDEPENDS:${PN} = "connman python3-dbus python3-pprint python3-future"
@@ -0,0 +1,15 @@
SUMMARY = "Python Remote Objects"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=cd13dafd4eeb0802bb6efea6b4a4bdbc"
SRC_URI[sha256sum] = "511f5b0804e92dd77dc33adf9c947787e3f9e9c5a96b12162f0557a7c4ce21fb"
PYPI_PACKAGE = "Pyro4"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
${PYTHON_PN}-logging \
${PYTHON_PN}-serpent \
${PYTHON_PN}-threading \
"
@@ -0,0 +1,20 @@
SUMMARY = "Python bindings for the Apache Thrift RPC system"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=7145f7cdd263359b62d342a02f005515"
SRC_URI[sha256sum] = "2b5b6488fcded21f9d312aa23c9ff6a0195d0f6ae26ddbd5ad9e3e25dfc14408"
inherit pypi setuptools3
# Use different filename to prevent conflicts with thrift itself
PYPI_SRC_URI:append = ";downloadfilename=${BP}.${PYPI_PACKAGE_EXT}"
RDEPENDS:${PN} += "\
python3-logging \
python3-scons \
python3-six \
python3-stringold \
python3-threading \
"
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,21 @@
SUMMARY = "Twisted Web Sockets"
HOMEPAGE = "https://github.com/MostAwesomeDude/txWS"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=76699830db7fa9e897f6a1ad05f98ec8"
DEPENDS = "python3-twisted python3-six python3-vcversioner python3-six-native python3-vcversioner-native"
RDEPENDS:${PN} += " \
python3-six \
python3-twisted \
"
SRC_URI = "git://github.com/MostAwesomeDude/txWS.git;branch=master;protocol=https"
SRCREV= "88cf6d9b9b685ffa1720644bd53c742afb10a414"
S = "${WORKDIR}/git"
inherit setuptools3
PIP_INSTALL_PACKAGE = "txWS"
@@ -0,0 +1,9 @@
SUMMARY = "Python TUN/TAP tunnel module"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=13f7629e8e4989b66b4a913ab05a91de"
SRC_URI[sha256sum] = "20b53ea7a09dfe173c00ec0a00eea508b05e959f5dc4b4bb698aa52252192f8f"
PYPI_PACKAGE = "python-pytun"
inherit pypi setuptools3
@@ -0,0 +1,43 @@
Add dependency of __init__.py
Tasks must be done after exec of __init__, which creates the
src/_generated directory that tasks are based on.
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Upstream-Status: Submitted
(However it seems that this project is out of maintanence.)
diff -ruN telepathy-python-0.15.19-orig/src/Makefile.am telepathy-python-0.15.19/src/Makefile.am
--- telepathy-python-0.15.19-orig/src/Makefile.am 2011-03-10 08:51:49.000000000 +0800
+++ telepathy-python-0.15.19/src/Makefile.am 2011-03-10 08:54:45.000000000 +0800
@@ -39,17 +39,17 @@
XSLTPROC_OPTS = --nonet --novalid --xinclude
tools_dir = $(top_srcdir)/tools
-_generated/interfaces.py: $(tools_dir)/python-interfaces-generator.xsl $(wildcard $(spec_dir)/*.xml)
+_generated/interfaces.py: _generated/__init__.py $(tools_dir)/python-interfaces-generator.xsl $(wildcard $(spec_dir)/*.xml)
$(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_OPTS) -o $@ \
$(tools_dir)/python-interfaces-generator.xsl \
$(spec_dir)/all.xml
-_generated/constants.py: $(tools_dir)/python-constants-generator.xsl $(wildcard $(spec_dir)/*.xml)
+_generated/constants.py: _generated/__init__.py $(tools_dir)/python-constants-generator.xsl $(wildcard $(spec_dir)/*.xml)
$(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_OPTS) -o $@ \
$(tools_dir)/python-constants-generator.xsl \
$(spec_dir)/all.xml
-_generated/errors.py: $(tools_dir)/python-errors-generator.xsl $(wildcard $(spec_dir)/*.xml)
+_generated/errors.py: _generated/__init__.py $(tools_dir)/python-errors-generator.xsl $(wildcard $(spec_dir)/*.xml)
$(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_OPTS) -o $@ \
$(tools_dir)/python-errors-generator.xsl \
$(spec_dir)/all.xml
@@ -58,7 +58,7 @@
$(AM_V_GEN)$(mkdir_p) $(dir $@)
@echo "# Placeholder for package" > $@
-_generated/%.py: $(tools_dir)/spec-to-python.xsl $(spec_dir)/%.xml
+_generated/%.py: _generated/__init__.py $(tools_dir)/spec-to-python.xsl $(spec_dir)/%.xml
$(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_OPTS) -o $@ \
$(tools_dir)/spec-to-python.xsl \
$(spec_dir)/$*.xml
@@ -0,0 +1,26 @@
commit f6c67662145de889055a86a6b3b12c70a45fc8d5
Author: Dongxiao Xu <dongxiao.xu@intel.com>
Date: Wed Sep 7 16:02:20 2011 +0800
Avoid duplicated installation of errors.py
newer version of autotools don't seem to like listing files to install
twice. Remove one errors.py from the installation list.
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Upstream-Status: Inappropriate [upstream inactive]
diff --git a/src/Makefile.am b/src/Makefile.am
index 5c27dfe..7536e43 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -11,7 +11,7 @@ telepathy_PYTHON = \
# telepathy._generated.* auto-generated modules
spec_dir = $(top_srcdir)/spec
-spec_files := $(patsubst $(spec_dir)%.xml,_generated%.py,$(wildcard $(spec_dir)/*.xml))
+spec_files := $(filter-out _generated/errors.py, $(patsubst $(spec_dir)%.xml,_generated%.py,$(wildcard $(spec_dir)/*.xml)))
BUILT_SOURCES = \
_generated/interfaces.py \
@@ -0,0 +1,26 @@
Upstream-Status: Pending
automake 1.12 has deprecated use of mkdir_p, and it recommends
use of MKDIR_P instead. Changed the code to avoid these kind
of warning-errors.
| make[1]: _generated/: Command not found
| make[1]: *** [_generated/__init__.py] Error 127
| make[1]: Leaving directory `/srv/home/nitin/builds2/build0/tmp/work/i586-poky-linux/telepathy-python-0.15.19-r4/telepathy-python-0.15.19/src'
| make: *** [all-recursive] Error 1
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/07/10
Index: telepathy-python-0.15.19/src/Makefile.am
===================================================================
--- telepathy-python-0.15.19.orig/src/Makefile.am
+++ telepathy-python-0.15.19/src/Makefile.am
@@ -55,7 +55,7 @@ _generated/errors.py: _generated/__init_
$(spec_dir)/all.xml
_generated/__init__.py:
- $(AM_V_GEN)$(mkdir_p) $(dir $@)
+ $(AM_V_GEN)$(MKDIR_P) $(dir $@)
@echo "# Placeholder for package" > $@
_generated/%.py: _generated/__init__.py $(tools_dir)/spec-to-python.xsl $(spec_dir)/%.xml
@@ -0,0 +1,34 @@
SUMMARY = "Telepathy IM framework - Python package"
HOMEPAGE = "http://telepathy.freedesktop.org/wiki/"
LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \
file://src/utils.py;beginline=1;endline=17;md5=9a07d1a9791a7429a14e7b25c6c86822"
DEPENDS = "libxslt-native"
SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-python/telepathy-python-${PV}.tar.gz \
file://parallel_make.patch \
file://remove_duplicate_install.patch \
file://telepathy-python_fix_for_automake_1.12.patch"
PR = "r6"
S = "${WORKDIR}/telepathy-python-${PV}"
inherit autotools python3native
SRC_URI[md5sum] = "f7ca25ab3c88874015b7e9728f7f3017"
SRC_URI[sha256sum] = "244c0e1bf4bbd78ae298ea659fe10bf3a73738db550156767cc2477aedf72376"
FILES:${PN} += "\
${libdir}/python*/site-packages/telepathy/*.py \
${libdir}/python*/site-packages/telepathy/*/*.py \
"
do_install:append () {
rm -fr ${D}${libdir}/python*/site-packages/telepathy/__pycache__
rm -fr ${D}${libdir}/python*/site-packages/telepathy/__pycache__
rm -fr ${D}${libdir}/python*/site-packages/telepathy/*/__pycache__
rm -fr ${D}${libdir}/python*/site-packages/telepathy/*/__pycache__
}
RDEPENDS:${PN} += "python3-dbus"
@@ -0,0 +1,7 @@
SUMMARY = "meta-python build test image"
IMAGE_INSTALL = "packagegroup-core-boot"
LICENSE = "MIT"
inherit core-image
@@ -0,0 +1,5 @@
require meta-python-image-base.bb
SUMMARY = "meta-python build test image"
IMAGE_INSTALL += "packagegroup-meta-python3"
@@ -0,0 +1,25 @@
DESCRIPTION = "Recipe to trigger execution of all meta-python ptest images."
HOMEPAGE = "https://www.openembedded.org/"
LICENSE = "MIT"
inherit features_check nopackages
REQUIRED_DISTRO_FEATURES = "ptest"
require conf/include/ptest-packagelists-meta-python.inc
# Include the full set of ptests
PTESTS_META_PYTHON = "${PTESTS_FAST_META_PYTHON} ${PTESTS_SLOW_META_PYTHON}"
do_testimage[noexec] = "1"
do_testimage[depends] = "${@' '.join(['meta-python-ptest-image-'+x+':do_testimage' for x in d.getVar('PTESTS_META_PYTHON').split()])}"
do_build[depends] = "${@' '.join(['meta-python-ptest-image-'+x+':do_build' for x in d.getVar('PTESTS_META_PYTHON').split()])}"
# normally image.bbclass would do this
EXCLUDE_FROM_WORLD = "1"
python () {
if bb.utils.contains('IMAGE_CLASSES', 'testimage', True, False, d):
bb.build.addtask("do_testimage", "", "", d)
}
@@ -0,0 +1,6 @@
require meta-python-ptest-all-image.bb
DESCRIPTION = "Recipe to trigger execution of all fast meta-python ptest images."
PTESTS_META_PYTHON = "${PTESTS_FAST_META_PYTHON}"
@@ -0,0 +1,41 @@
inherit features_check
REQUIRED_DISTRO_FEATURES = "ptest"
require conf/include/ptest-packagelists-meta-python.inc
require meta-python-image-base.bb
SUMMARY = "meta-python ptest test image"
DESCRIPTION += "Also including the ${MCNAME} ptest package."
HOMEPAGE = "https://www.openembedded.org/"
PTESTS_META_PYTHON = "${PTESTS_SLOW_META_PYTHON} ${PTESTS_FAST_META_PYTHON}"
IMAGE_INSTALL:append = " ${MCNAME}-ptest openssh"
BBCLASSEXTEND = "${@' '.join(['mcextend:'+x for x in d.getVar('PTESTS_META_PYTHON').split()])}"
# The image can be sufficiently large (~1.8GB) that we need to be careful that it fits in a live
# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the
# box) and explicitly add up to 1500MB.
IMAGE_OVERHEAD_FACTOR = "1.0"
IMAGE_ROOTFS_EXTRA_SPACE = "324288"
# If a particular ptest needs more space, it can be customized:
#IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-<pn> = "1024288"
# ptests need more memory than standard to avoid the OOM killer
QB_MEM = "-m 1024"
# If a particular ptest needs more memory, it can be customized:
#QB_MEM:virtclass-mcextend-<pn> = "-m 4096"
TEST_SUITES = "ping ssh parselogs ptest"
# Sadly at the moment the full set of ptests is not robust enough and sporadically fails in random places
PTEST_EXPECT_FAILURE = "1"
python () {
if not d.getVar("MCNAME"):
raise bb.parse.SkipRecipe("No class extension set")
}
@@ -0,0 +1,545 @@
SUMMARY = "Meta-python ptest packagegroups"
inherit packagegroup
PROVIDES = "${PACKAGES}"
PACKAGES = ' \
packagegroup-meta-python3 \
'
# Note that python3-cvxopt requires Fortran support. To enable this,
# add the following to your local.conf:
# FORTRAN:forcevariable = ",fortran"
RDEPENDS:packagegroup-meta-python3 = "\
${@bb.utils.contains("DISTRO_FEATURES", "systemd", "python3-systemd", "", d)} \
${@bb.utils.contains("DISTRO_FEATURES", "x11 systemd", "python3-blivetgui", "", d)} \
gyp \
${@bb.utils.contains("DISTRO_FEATURES", "pam", "pamela", "", d)} \
pyrtm \
python3-absl \
python3-aenum \
python3-aiofiles \
python3-aiohttp \
python3-aiohttp-jinja2 \
python3-aiohue \
python3-aiosignal \
python3-alembic \
python3-ansi2html \
python3-ansicolors \
python3-appdirs \
python3-apply-defaults \
python3-argcomplete \
python3-argexec \
python3-argh \
python3-arpeggio \
python3-asciitree \
python3-aspectlib \
python3-astor \
python3-astroid \
python3-asttokens \
python3-async-timeout \
python3-asyncio-glib \
python3-attr \
python3-autobahn \
python3-automat \
python3-aws-iot-device-sdk-python \
python3-backcall \
python3-bandit \
python3-beautifulsoup4 \
python3-behave \
python3-betamax \
python3-bitarray \
python3-bitstring \
python3-bitstruct \
python3-blinker \
${@bb.utils.contains("DISTRO_FEATURES", "systemd", "python3-blivet", "", d)} \
python3-booleanpy \
python3-cachecontrol \
python3-cached-property \
python3-cachetools \
python3-can \
python3-cantools \
python3-cassandra-driver \
python3-cbor2 \
python3-cerberus \
python3-chardet \
python3-charset-normalizer \
python3-cheetah \
python3-click \
python3-click-repl \
python3-click-spinner \
python3-cmd2 \
python3-colorama \
python3-coloredlogs \
python3-colorlog \
python3-colorzero \
python3-configargparse \
python3-configobj \
python3-configshell-fb \
python3-constantly \
python3-contextlib2 \
python3-coverage \
python3-cppy \
python3-crcmod \
python3-croniter \
python3-cson \
python3-custom-inherit \
${@bb.utils.contains_any('FORTRAN', [',fortran',',f77'], 'python3-cvxopt', '', d)} \
python3-cycler \
python3-cytoolz \
python3-dateparser \
python3-dateutil \
python3-dbus-next \
python3-dbussy \
python3-decorator \
python3-decouple \
python3-defusedxml \
python3-dill \
python3-diskcache \
python3-distro \
python3-django \
python3-django-south \
python3-djangorestframework \
python3-dnspython \
python3-docopt \
python3-docutils \
python3-dominate \
python3-dynamic-dispatch \
python3-ecdsa \
python3-editables \
python3-editor \
python3-email-validator \
python3-engineio \
python3-et-xmlfile \
python3-eth-abi \
python3-eth-account \
python3-eth-hash \
python3-eth-keyfile \
python3-eth-keys \
python3-eth-rlp \
python3-eth-typing \
python3-eth-utils \
python3-evdev \
python3-execnet \
python3-fann2 \
python3-fasteners \
python3-fastjsonschema \
python3-fastnumbers \
python3-fields \
python3-flask \
python3-flask-babel \
python3-flask-bootstrap \
python3-flask-jsonpify \
python3-flask-jwt \
python3-flask-login \
python3-flask-mail \
python3-flask-migrate \
python3-flask-nav \
python3-flask-pymongo \
python3-flask-restful \
python3-flask-sijax \
python3-flask-socketio \
python3-flask-sqlalchemy \
python3-flask-uploads \
python3-flask-user \
python3-flask-versioned \
python3-flask-wtf \
python3-flask-xstatic \
python3-future \
python3-frozenlist \
python3-gast \
python3-gcovr \
python3-geojson \
python3-geomet \
python3-gevent \
python3-gmpy2 \
python3-gmqtt \
python3-gnupg \
python3-google-api-python-client \
python3-gpiod \
python3-gpsd-py3 \
python3-graphviz \
python3-greenlet \
python3-greenstalk \
python3-grpcio \
python3-grpcio-tools \
python3-gsocketpool \
python3-gunicorn \
python3-h11 \
python3-h2 \
python3-h5py \
python3-hatchling \
python3-haversine \
python3-hpack \
python3-html2text \
python3-html5lib \
python3-httplib2 \
python3-huey \
python3-humanfriendly \
python3-humanize \
python3-hyperframe \
python3-hyperlink \
python3-icu \
python3-idna \
python3-idna \
python3-idna-ssl \
python3-ifaddr \
python3-imageio \
python3-imgtool \
python3-incremental \
python3-inflection \
python3-inotify \
python3-intelhex \
python3-intervals \
python3-ipaddress \
python3-ipy \
python3-ipython \
python3-ipython-genutils \
python3-iso3166 \
python3-isodate \
python3-isort \
python3-itsdangerous \
python3-javaobj-py3 \
python3-jdatetime \
python3-jdcal \
python3-jedi \
python3-jmespath \
python3-joblib \
python3-jsmin \
python3-jsonpatch \
python3-jsonpath-rw \
python3-jsonpointer \
python3-jsonref \
python3-jsonrpcserver \
python3-jsonschema \
python3-jstyleson \
python3-kconfiglib \
python3-keras-applications \
python3-keras-preprocessing \
${@bb.utils.contains("DISTRO_FEATURES", "x11 opengl", "python3-kivy", "", d)} \
python3-kiwisolver \
python3-kmod \
python3-langtable \
python3-lazy-object-proxy \
python3-libconf \
python3-license-expression \
python3-ldap \
python3-lockfile \
python3-lorem \
python3-lrparsing \
python3-lru-dict \
python3-luma-core \
python3-luma-oled \
python3-lxml \
python3-lz4 \
python3-m2crypto \
python3-markupsafe \
python3-matplotlib \
python3-mccabe \
python3-meh \
python3-meld3 \
python3-mock \
python3-monotonic \
python3-mpmath \
python3-msgpack \
python3-msk \
python3-msm \
python3-multidict \
python3-mypy \
python3-mypy-extensions \
python3-natsort \
python3-netaddr \
python3-netifaces \
python3-networkx \
python3-nmap \
python3-nocasedict \
python3-nocaselist \
python3-ntplib \
python3-oauthlib \
python3-obd \
python3-openpyxl \
python3-ordered-set \
python3-padaos \
python3-padatious \
python3-paho-mqtt \
python3-pako \
python3-pandas \
python3-parallax \
python3-paramiko \
python3-parse \
python3-parse-type \
python3-parsimonious \
python3-parso \
python3-passlib \
python3-pastedeploy \
python3-pathspec \
python3-pathtools3 \
python3-pep8 \
python3-periphery \
python3-petact \
python3-pexpect \
python3-pickleshare \
python3-pid \
python3-pika \
python3-pillow \
python3-pint \
python3-pkcs11 \
python3-pkgconfig \
python3-pocketsphinx \
python3-polyline \
python3-portalocker \
python3-posix-ipc \
python3-prctl \
python3-precise-runner \
python3-prettytable \
python3-priority \
python3-process-tests \
python3-progress \
python3-prompt-toolkit \
python3-protobuf \
python3-ptyprocess \
python3-pulsectl \
python3-py-cpuinfo \
python3-py-ubjson \
python3-pyalsaaudio \
python3-pyasn1-modules \
python3-pyatspi \
python3-pyaudio \
python3-pybind11 \
python3-pybind11-json \
python3-pybluez \
python3-pychromecast \
python3-pycocotools \
python3-pycodestyle \
python3-pyconnman \
python3-pycurl \
python3-pydicti \
python3-pyephem \
python3-pyexpect \
python3-pyfanotify \
python3-pyfirmata \
python3-pyflakes \
python3-pyhamcrest \
python3-pyiface \
python3-pyinotify \
python3-pyjks \
python3-pyjwt \
python3-pykickstart \
python3-pykwalify \
python3-pylint \
python3-pylyrics \
python3-pymetno \
python3-pymisp \
python3-pymongo \
python3-pymysql \
python3-pynacl \
python3-pynetlinux \
python3-pyparted \
python3-pyperclip \
python3-pyperf \
python3-pyrad \
python3-pyro4 \
python3-pyroute2 \
python3-pyrsistent \
python3-pyscaffold \
python3-pyserial \
python3-pysonos \
${@bb.utils.contains("DISTRO_FEATURES", "systemd", "python3-pystemd", "", d)} \
python3-pytest-asyncio \
python3-pytest-benchmark \
python3-pytest-cache \
python3-pytest-forked \
python3-pytest-helpers-namespace \
python3-pytest-html \
python3-pytest-lazy-fixture \
python3-pytest-metadata \
python3-pytest-tempdir \
python3-pytest-timeout \
python3-pytest-xdist \
python3-pythonping \
python3-python-vlc \
python3-pytoml \
python3-pytun \
python3-pytz-deprecation-shim \
python3-pyudev \
python3-pyusb \
python3-pywbem \
python3-pywbemtools \
python3-pyyaml \
python3-pyzmq \
python3-qrcode \
python3-raven \
python3-rdflib \
python3-redis \
python3-regex \
python3-requests-file \
python3-requests-ftp \
python3-requests-futures \
python3-requests-oauthlib \
python3-requests-toolbelt \
python3-rfc3339-validator \
python3-rfc3986-validator \
python3-rfc3987 \
python3-rlp \
python3-robotframework \
python3-robotframework-seriallibrary \
python3-rsa \
python3-ruamel-yaml \
python3-scrypt \
python3-sdnotify \
python3-semver \
python3-send2trash \
python3-sentry-sdk \
python3-serpent \
python3-service-identity \
python3-setuptools-declarative-requirements \
python3-setuptools-scm-git-archive \
python3-sh \
python3-sijax \
python3-simpleeval \
python3-simplejson \
python3-slip-dbus \
python3-smbus \
python3-smbus2 \
python3-smpplib \
python3-snappy \
python3-socketio \
python3-soupsieve \
python3-speaklater \
python3-speedtest-cli \
python3-spidev \
python3-spidev \
python3-sqlalchemy \
python3-sqlparse \
python3-sqlsoup \
python3-stevedore \
python3-supervisor \
python3-sympy \
python3-tabulate \
python3-term \
python3-termcolor \
python3-textparser \
python3-texttable \
python3-thrift \
python3-tinyrecord \
python3-tornado \
python3-toolz \
python3-tqdm \
python3-trafaret \
python3-trafaret-config \
python3-traitlets \
python3-transitions \
python3-trustme \
python3-twine \
python3-twisted \
python3-twitter \
python3-twofish \
python3-txaio \
python3-txdbus \
python3-txws \
python3-typed-ast \
python3-typeguard \
python3-tzlocal \
python3-u-msgpack-python \
python3-uinput \
python3-ujson \
python3-unidiff \
python3-uritemplate \
python3-vcversioner \
python3-versiontools \
python3-visitor \
python3-waitress \
python3-watchdog \
python3-watchdogdev \
python3-web3 \
python3-webcolors \
python3-webencodings \
python3-websocket-client \
python3-websockets \
python3-werkzeug \
python3-werkzeug \
python3-whoosh \
python3-wrapt \
python3-wtforms \
python3-xlrd \
python3-xlsxwriter \
python3-xmlrunner \
python3-xmltodict \
python3-xmodem \
python3-xstatic \
python3-xstatic-font-awesome \
python3-xxhash \
python3-yamlloader \
python3-yappi \
python3-yarl \
python3-zopeinterface \
telepathy-python3 \
unattended-upgrades \
"
RDEPENDS:packagegroup-meta-python3-ptest = "\
python3-ansicolors-ptest \
python3-appdirs-ptest \
python3-betamax-ptest \
python3-blinker-ptest \
python3-cachetools-ptest \
python3-cbor2-ptest \
python3-click-ptest \
python3-dnspython-ptest \
python3-dominate-ptest \
python3-geojson-ptest \
python3-gunicorn-ptest \
python3-hexbytes \
python3-html2text-ptest \
python3-inflection-ptest \
python3-intervals-ptest \
python3-ipy-ptest \
python3-iso3166-ptest \
python3-jdcal-ptest \
python3-jinja2-ptest \
python3-jsmin-ptest \
python3-jsonpointer-ptest \
python3-license-expression-ptest \
python3-markupsafe-ptest \
python3-msgpack-ptest \
python3-multidict-ptest \
python3-ordered-set-ptest \
python3-parse-ptest \
python3-parse-type-ptest \
python3-pint-ptest \
python3-polyline-ptest \
python3-precise-runner-ptest \
python3-prettytable-ptest \
python3-ptyprocess-ptest \
python3-pyasn1-modules-ptest \
python3-pyroute2-ptest \
python3-pyserial-ptest \
python3-pytest-lazy-fixture-ptest \
python3-pytoml-ptest \
python3-pyzmq-ptest \
python3-requests-file-ptest \
python3-requests-toolbelt-ptest \
python3-scrypt-ptest \
python3-semver-ptest \
python3-serpent-ptest \
python3-simpleeval-ptest \
python3-smpplib-ptest \
python3-soupsieve-ptest \
python3-sqlparse-ptest \
python3-typeguard-ptest \
python3-ujson-ptest \
python3-u-msgpack-python-ptest \
python3-unidiff-ptest \
python3-uritemplate-ptest \
python3-webcolors-ptest \
python3-whoosh-ptest \
python3-wpa-supplicant \
python3-xlrd-ptest \
python3-xmltodict-ptest \
python3-xxhash-ptest \
python3-yappi-ptest \
python3-yarl-ptest \
python3-pyasn1-ptest \
"
EXCLUDE_FROM_WORLD = "1"
@@ -0,0 +1,36 @@
From bfe579283e5fcab60172818bfe4e6e1d40c2bed0 Mon Sep 17 00:00:00 2001
From: Kurt Kiefer <kurt.kiefer@arthrex.com>
Date: Mon, 18 Oct 2021 11:21:14 -0700
Subject: [PATCH] Fix for Python 3.10 compatibility
The collections.abc module replaces collections for Python 3.10
Signed-off-by: Kurt Kiefer <kurt.kiefer@arthrex.com>
---
Upstream-Status: Pending
pylib/gyp/common.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pylib/gyp/common.py b/pylib/gyp/common.py
index b268d229..4f9cb0ec 100644
--- a/pylib/gyp/common.py
+++ b/pylib/gyp/common.py
@@ -4,7 +4,7 @@
from __future__ import with_statement
-import collections
+import collections.abc
import errno
import filecmp
import os.path
@@ -494,7 +494,7 @@ def uniquer(seq, idfun=None):
# Based on http://code.activestate.com/recipes/576694/.
-class OrderedSet(collections.MutableSet):
+class OrderedSet(collections.abc.MutableSet):
def __init__(self, iterable=None):
self.end = end = []
end += [None, end, end] # sentinel node for doubly linked list
@@ -0,0 +1,17 @@
DESCRIPTION = "GYP is a Meta-Build system: a build system that generates other build systems."
HOMEPAGE = "https://gyp.gsrc.io/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=ab828cb8ce4c62ee82945a11247b6bbd"
SECTION = "devel"
SRC_URI = "git://chromium.googlesource.com/external/gyp;protocol=https;branch=master \
file://0001-Fix-for-Python-3.10-compatibility.patch \
"
SRCREV = "caa60026e223fc501e8b337fd5086ece4028b1c6"
S = "${WORKDIR}/git"
PV = "0.1+git${SRCPV}"
inherit setuptools3
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,16 @@
SUMMARY = "jsonref is a library for automatic dereferencing of JSON Reference objects for Python"
HOMEPAGE = "https://github.com/gazpachoking/jsonref"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a34264f25338d41744dca1abfe4eb18f"
SRC_URI[sha256sum] = "51d3e18b83ca7170ff51286a0e1a6719d8b7fcc7abdb16b189395a8536996b97"
inherit pypi setuptools3
BBCLASSEXTEND = "native nativesdk"
RDEPENDS:${PN} += " \
${PYTHON_PN}-core \
${PYTHON_PN}-json \
${PYTHON_PN}-netclient \
"
@@ -0,0 +1,14 @@
DESCRIPTION = "Pamela: yet another Python wrapper for PAM"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://PKG-INFO;md5=6b706db92112b8384848de3e5c6adaa3"
SRC_URI[sha256sum] = "d4b139fe600e192e176a2a368059207a6bffa0e7879879b13f4fcba0163481be"
PYPI_PACKAGE = "pamela"
inherit pypi setuptools3
RDEPENDS:${PN} = "libpam"
inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
@@ -0,0 +1,36 @@
SUMMARY = "Python interface for Remember The Milk API"
AUTHOR = "Sridhar Ratnakumar / srid"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=a53cbc7cb75660694e138ba973c148df"
PYPI_PACKAGE_EXT = "tar.bz2"
SRC_URI[md5sum] = "7c87da94656b620dfe532ca63d642eb8"
SRC_URI[sha256sum] = "b2d701b25ad3f9a1542057f3eb492c5c1d7dbe2b8d1e8f763043dcc14ee1d933"
inherit pypi setuptools3
PACKAGES =+ "${PN}-tests ${PN}-samples"
FILES:${PN}-samples += " \
${PYTHON_SITEPACKAGES_DIR}/rtm/samples \
"
FILES:${PN}-tests += " \
${PYTHON_SITEPACKAGES_DIR}/rtm/tests \
"
RDEPENDS:${PN} += "\
${PYTHON_PN}-json \
${PYTHON_PN}-logging \
${PYTHON_PN}-netclient \
"
RDEPENDS:${PN}-samples += " \
${PN} \
"
RDEPENDS:${PN}-tests += " \
${PN} \
${PYTHON_PN}-unittest \
"
@@ -0,0 +1,17 @@
SUMMARY = "Migrations for Django"
DESCRIPTION = "South is an intelligent database migrations library for the Django web framework. It is database-independent and DVCS-friendly, as well as a whole host of other features."
HOMEPAGE = "http://south.aeracode.org/"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=17;endline=18;md5=2155d8ae21e7c23101d5febac696b27e"
SRC_URI[md5sum] = "c76a9758b2011bc3b6c39f881bba2f66"
SRC_URI[sha256sum] = "d360bd31898f9df59f6faa786551065bba45b35e7ee3c39b381b4fbfef7392f4"
PYPI_PACKAGE = "South"
inherit pypi
BBCLASSEXTEND = "native nativesdk"
RDEPENDS:${PN} += "\
${PYTHON_PN}-django \
"
@@ -0,0 +1,34 @@
SUMMARY = "A high-level Python Web framework"
HOMEPAGE = "http://www.djangoproject.com/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=f09eb47206614a4954c51db8a94840fa"
PYPI_PACKAGE = "Django"
inherit pypi
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/"
FILES:${PN} += "${datadir}/django"
BBCLASSEXTEND = "native nativesdk"
RDEPENDS:${PN} += "\
${PYTHON_PN}-compression \
${PYTHON_PN}-ctypes \
${PYTHON_PN}-datetime \
${PYTHON_PN}-email \
${PYTHON_PN}-html \
${PYTHON_PN}-json \
${PYTHON_PN}-logging \
${PYTHON_PN}-multiprocessing \
${PYTHON_PN}-netserver \
${PYTHON_PN}-numbers \
${PYTHON_PN}-pkgutil \
${PYTHON_PN}-pytz \
${PYTHON_PN}-threading \
${PYTHON_PN}-unixadmin \
${PYTHON_PN}-xml \
${PYTHON_PN}-distutils \
"
CVE_PRODUCT = "django"
@@ -0,0 +1,14 @@
DESCRIPTION = "An extension that includes Bootstrap in your project, without any boilerplate code."
LICENSE = "Apache-2.0 & MIT & BSD-3-Clause"
LIC_FILES_CHKSUM = "file://PKG-INFO;md5=a03749709f06118a17349deb5a210619"
SRC_URI[md5sum] = "e40d50f5c5b6438c1c6200a6f2871f81"
SRC_URI[sha256sum] = "cb08ed940183f6343a64e465e83b3a3f13c53e1baabb8d72b5da4545ef123ac8"
PYPI_PACKAGE = "Flask-Bootstrap"
RDEPENDS:${PN} += "\
${PYTHON_PN}-dominate \
${PYTHON_PN}-flask \
${PYTHON_PN}-visitor \
"
@@ -0,0 +1,12 @@
DESCRIPTION = "An extension for the Flask microframework that adds Sijax support."
HOMEPAGE = "https://github.com/spantaleev/flask-sijax"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=266adc7b911b7c84b837bf77196e1ba6"
PYPI_PACKAGE = "Flask-Sijax"
RDEPENDS:${PN} += " \
python3-flask \
python3-sijax \
python3-werkzeug \
"
@@ -0,0 +1,16 @@
DESCRIPTION = "XStatic support for flask"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=659968f6ebd4b70b6c3190d20b4a924c"
SRC_URI[md5sum] = "2f56023e1444c8bd1fec41afe93de743"
SRC_URI[sha256sum] = "226ea8e97065a9488b59bfe5c94af4c6e2ea70a25052e301fb231a1381490133"
FILESEXTRAPATHS:prepend := "${THISDIR}/python-flask-xstatic:"
SRC_URI += "file://remove-pip-requires.patch"
PYPI_PACKAGE = "Flask-XStatic"
RDEPENDS:${PN} += "\
${PYTHON_PN}-flask \
${PYTHON_PN}-xstatic \
"
@@ -0,0 +1,9 @@
Upstream-Status: Pending
--- Flask-XStatic-0.0.1/setup.py.orig 2015-01-30 08:01:56.000000000 -0800
+++ Flask-XStatic-0.0.1/setup.py 2017-04-17 21:40:32.570181626 -0700
@@ -1,4 +1,3 @@
-from pip.req import parse_requirements
import setuptools
with open('README.rst') as f:
@@ -0,0 +1,15 @@
SUMMARY = "Patch ssl.match_hostname for Unicode(idna) domains support"
HOMEPAGE = "https://github.com/aio-libs/idna-ssl"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a61b9c5aec8796b64a6bf15d42605073"
SRC_URI[md5sum] = "dd44ec53bac36e68446766fd8d3835bd"
SRC_URI[sha256sum] = "a933e3bb13da54383f9e8f35dc4f9cb9eb9b3b78c6b36f311254d6d0d92c6c7c"
PYPI_PACKAGE = "idna-ssl"
inherit pypi
RDEPENDS:${PN} += " \
python3-idna \
python3-io \
"
@@ -0,0 +1,13 @@
SUMMARY = "Abseil Python Common Libraries"
HOMEPAGE = "https://github.com/abseil/abseil-py"
SECTION = "devel/python"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
SRC_URI[sha256sum] = "d2c244d01048ba476e7c080bd2c6df5e141d211de80223460d5b3b8a2a58433d"
PYPI_PACKAGE = "absl-py"
inherit pypi setuptools3
BBCLASSEXTEND = "native"
@@ -0,0 +1,14 @@
SUMMARY = "Advanced Enumerations library"
HOMEPAGE = "https://pypi.org/project/aenum/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://aenum/LICENSE;md5=c6a85477543f8b8591b9c1f82abebbe9"
SRC_URI[sha256sum] = "8cbd76cd18c4f870ff39b24284d3ea028fbe8731a58df3aa581e434c575b9559"
inherit pypi setuptools3
RDEPENDS:${PN} += "\
${PYTHON_PN}-pprint \
"
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,17 @@
SUMMARY = "Simple DNS resolver for asyncio"
DESCRIPTION = "aiodns provides a simple way for doing asynchronous DNS resolutions using pycares."
HOMEPAGE = "https://github.com/saghul/aiodns"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a565d8b5d06b9620968a135a2657b093"
SRC_URI[md5sum] = "181e11935c78965de2b2b7b0e5efba8d"
SRC_URI[sha256sum] = "946bdfabe743fceeeb093c8a010f5d1645f708a241be849e17edfb0e49e08cd6"
PYPI_PACKAGE = "aiodns"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
${PYTHON_PN}-asyncio \
${PYTHON_PN}-pycares \
"
@@ -0,0 +1,15 @@
SUMMARY = "File support for asyncio"
DESCRIPTION = "Asynchronous local file IO library for asyncio and Python"
HOMEPAGE = "https://github.com/aio-libs/aiohttp"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
SRC_URI[sha256sum] = "edd247df9a19e0db16534d4baaf536d6609a43e1de5401d7a4c1c148753a1635"
PYPI_PACKAGE = "aiofiles"
inherit pypi python_poetry_core
RDEPENDS:${PN} = "\
${PYTHON_PN}-asyncio \
"
@@ -0,0 +1,15 @@
SUMMARY = "jinja2 template renderer for aiohttp.web (http server for asyncio)"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=29dca541e03964615590ca7b50392d97"
SRC_URI[sha256sum] = "8d149b2a57d91f794b33a394ea5bc66b567f38c74a5a6a9477afc2450f105c01"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
${PYTHON_PN}-jinja2 \
${PYTHON_PN}-aiohttp \
"
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,27 @@
SUMMARY = "Async http client/server framework"
DESCRIPTION = "Asynchronous HTTP client/server framework for asyncio and Python"
HOMEPAGE = "https://github.com/aio-libs/aiohttp"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=748073912af33aa59430d3702aa32d41"
SRC_URI[sha256sum] = "bf2e1a9162c1e441bf805a1fd166e249d574ca04e03b34f97e2928769e91ab5c"
PYPI_PACKAGE = "aiohttp"
inherit python_setuptools_build_meta pypi
RDEPENDS:${PN} = "\
${PYTHON_PN}-async-timeout \
${PYTHON_PN}-attrs \
${PYTHON_PN}-chardet \
${PYTHON_PN}-html \
${PYTHON_PN}-idna-ssl \
${PYTHON_PN}-json \
${PYTHON_PN}-misc \
${PYTHON_PN}-multidict \
${PYTHON_PN}-netserver \
${PYTHON_PN}-typing-extensions \
${PYTHON_PN}-yarl \
${PYTHON_PN}-cchardet \
${PYTHON_PN}-charset-normalizer \
${PYTHON_PN}-aiosignal \
"
@@ -0,0 +1,16 @@
DESCRIPTION = "Asynchronous library to control Philips Hue"
HOMEPAGE = "https://pypi.org/project/aiohue/"
SECTION = "devel/python"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=dab31a1d28183826937f4b152143a33f"
SRC_URI[sha256sum] = "069af6bb0a7d34d566538af57cc10fb691ee04f844204e4f67d95a57f0b91a46"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
${PYTHON_PN}-aiohttp \
${PYTHON_PN}-asyncio-throttle \
${PYTHON_PN}-profile \
${PYTHON_PN}-awesomeversion \
"
@@ -0,0 +1,16 @@
SUMMARY = "The library is intended to provide simple and clear interface to Redis based on asyncio."
HOMEPAGE = "https://github.com/aio-libs/aioredis-py"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=bf9085f32a671dfa86ee69fe0fff7b95"
SRC_URI[sha256sum] = "eaa51aaf993f2d71f54b70527c440437ba65340588afeb786cd87c55c89cd98e"
PYPI_PACKAGE = "aioredis"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
python3-core (>=3.6) \
python3-async-timeout \
python3-typing-extensions \
"
@@ -0,0 +1,17 @@
DESCRIPTION = "An asynchronous serial port library for Python"
HOMEPAGE = "https://github.com/changyuheng/aioserial.py"
SECTION = "devel/python"
LICENSE = "MPL-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=650b9179efef1ea560df5c08bc32b494"
PYPI_PACKAGE = "aioserial"
SRC_URI[sha256sum] = "702bf03b0eb84b8ef2d8dac5cb925e1e685dce98f77b125569bc6fd2b3b58228"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
python3-asyncio \
python3-pyserial \
"
@@ -0,0 +1,14 @@
SUMMARY = "A list of registered asynchronous callbacks"
HOMEPAGE = "https://github.com/aio-libs/aiosignal"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=cf056e8e7a0a5477451af18b7b5aa98c"
SRC_URI[sha256sum] = "54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"
inherit pypi setuptools3
BBCLASSEXTEND = "native nativesdk"
RDEPENDS:${PN} = "\
${PYTHON_PN}-frozenlist \
"
@@ -0,0 +1,19 @@
DESCRIPTION = "A database migration tool for SQLAlchemy"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3023b042cb6002cb398344b51c67093"
inherit pypi setuptools3
SRC_URI[sha256sum] = "6a810a6b012c88b33458fceb869aef09ac75d6ace5291915ba7fae44de372c01"
PYPI_PACKAGE = "alembic"
RDEPENDS:${PN} += "\
${PYTHON_PN}-dateutil \
${PYTHON_PN}-editor \
${PYTHON_PN}-mako \
${PYTHON_PN}-sqlalchemy \
${PYTHON_PN}-misc \
"
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,20 @@
DESCRPTION = "ansi2html - Convert text with ANSI color codes to HTML or to LaTeX"
HOMEPAGE = "https://github.com/ralphbean/ansi2html"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3000208d539ec061b899bce1d9ce9404"
LICENSE = "GPL-3.0-only"
PYPI_PACKAGE = "ansi2html"
SRC_URI[sha256sum] = "38b82a298482a1fa2613f0f9c9beb3db72a8f832eeac58eb2e47bf32cd37f6d5"
inherit pypi python_setuptools_build_meta
DEPENDS += " \
${PYTHON_PN}-setuptools-scm-native \
${PYTHON_PN}-setuptools-scm-git-archive-native \
"
RDEPENDS:${PN} = " \
${PYTHON_PN}-six \
${PYTHON_PN}-compression \
"
@@ -0,0 +1,3 @@
#!/bin/sh
pytest -o log_cli=true -o log_cli_level=INFO test.py| sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
@@ -0,0 +1,24 @@
DESCRIPTION = "Add ANSI colors and decorations to your strings"
LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://LICENSE;md5=aef5566ac4fede9815eccf124c281317"
SRC_URI[sha256sum] = "99f94f5e3348a0bcd43c82e5fc4414013ccc19d70bd939ad71e0133ce9c372e0"
PYPI_PACKAGE_EXT = "zip"
inherit pypi setuptools3 ptest
SRC_URI += " \
file://run-ptest \
"
RDEPENDS:${PN}-ptest += " \
${PYTHON_PN}-pytest \
"
do_install_ptest() {
cp -f ${S}/test/test.py ${D}${PTEST_PATH}/
}
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,11 @@
SUMMARY = "ANTLR runtime for Python"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://PKG-INFO;md5=b38bac4871765ce562806c44d2f18cf1"
SRC_URI[sha256sum] = "0d5454928ae40c8a6b653caa35046cd8492c8743b5fbc22ff4009099d074c7ae"
PYPI_PACKAGE = "antlr4-python3-runtime"
inherit pypi python_setuptools_build_meta
BBCLASSEXTEND = "nativesdk native"
@@ -0,0 +1,3 @@
#!/bin/sh
pytest | sed -e 's/\[100%\]//g' | sed -e 's/\.\.F/: FAIL/g' | sed -e 's/\.\.\./: PASS/g'
@@ -0,0 +1,23 @@
SUMMARY = "A small Python module for determining appropriate + platform-specific dirs, e.g. a user data dir."
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=31625363c45eb0c67c630a2f73e438e4"
SRC_URI += " \
file://run-ptest \
"
SRC_URI[md5sum] = "d6bca12613174185dd9abc8a29f4f012"
SRC_URI[sha256sum] = "7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"
inherit pypi setuptools3 ptest
RDEPENDS:${PN}-ptest += " \
${PYTHON_PN}-pytest \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/test
cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/
}
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,14 @@
SUMMARY = "Apply values to optional params"
HOMEPAGE = "https://github.com/bcb/apply_defaults"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c89120516900f96f4c60d35fdc4c3f15"
PYPI_PACKAGE = "apply_defaults"
SRC_URI[sha256sum] = "3773de3491b94c0fe44310f1a85888389cdc71e1544b343bce0d2bd6991acea5"
inherit pypi setuptools3
RDEPENDS:${PN} += "python3-core"
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,18 @@
SUMMARY = "Argcomplete provides easy, extensible command line tab completion of arguments for your Python script."
HOMEPAGE = "https://github.com/kislyuk/argcomplete"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=2ee41112a44fe7014dce33e26468ba93"
SRC_URI[sha256sum] = "6c4c563f14f01440aaffa3eae13441c5db2357b5eec639abe7c0b15334627dff"
PYPI_PACKAGE = "argcomplete"
inherit pypi setuptools3
RDEPENDS:${PN} += "\
${PYTHON_PN}-core \
${PYTHON_PN}-io \
"
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,16 @@
SUMMARY = "Expose your Python functions to the command line with one easy step!"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=ea70b07c354e36056bd35e17c9c3face"
inherit pypi setuptools3
SRC_URI[md5sum] = "448635948823309312ea9f70b30b6c2d"
SRC_URI[sha256sum] = "61f9ae9322e38ae64996848421afbdb018239a99c4e796fe064f172d6c98c3bf"
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS:${PN} += "\
python3-dynamic-dispatch \
python3-typeguard \
"
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,26 @@
SUMMARY = "An unobtrusive argparse wrapper with natural syntax"
DESCRIPTION = "Building a command-line interface? Found yourself uttering \
'argh!' while struggling with the API of argparse? Don't like the complexity \
but need the power? \
\
Everything should be made as simple as possible, but no simpler. \
\
—Albert Einstein (probably) \
\
Argh is a smart wrapper for argparse. Argparse is a very powerful \
tool; Argh just makes it easy to use."
LICENSE = "LGPL-3.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=3000208d539ec061b899bce1d9ce9404 \
file://README.rst;beginline=261;endline=275;md5=a8bf3475df7e0d575a53d04c83d5e090"
SRC_URI[sha256sum] = "b2093086f0e809a3ecc24b64a2145309ee8f56d034936cd59e57c558a357329d"
inherit pypi python_flit_core
RDEPENDS:${PN} += " \
python3-argcomplete \
python3-logging \
"
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,17 @@
SUMMARY = "Arpeggio is a recursive descent parser with memoization based on PEG grammars (aka Packrat parser)"
HOMEPAGE = "https://pypi.org/project/Arpeggio/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=33b8d1ba459a2fa4d801acfd1d1b7ceb"
SRC_URI[sha256sum] = "c790b2b06e226d2dd468e4fbfb5b7f506cec66416031fde1441cf1de2a0ba700"
PYPI_PACKAGE = "Arpeggio"
inherit pypi setuptools3
# setup.py of Arpeggio needs this.
DEPENDS += "\
${PYTHON_PN}-pytest-runner-native \
${PYTHON_PN}-wheel-native \
"
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,9 @@
SUMMARY = "Draws ASCII trees."
HOMEPAGE = "http://github.com/mbr/asciitree"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a985ccb0df374f2a8cab75010bf8db73"
SRC_URI[md5sum] = "2570b31e563b69da1aff54509db8ac6a"
SRC_URI[sha256sum] = "4aa4b9b649f85e3fcb343363d97564aa1fb62e249677f2e18a96765145cc0f6e"
inherit pypi setuptools3
@@ -0,0 +1,3 @@
#!/bin/sh
pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
@@ -0,0 +1,29 @@
DESCRIPTION = "ASGI is a standard for Python asynchronous web apps and servers to communicate with each other, and positioned as an asynchronous successor to WSGI."
HOMEPAGE = "https://pypi.org/project/asgiref/"
SECTION = "devel/python"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=f09eb47206614a4954c51db8a94840fa"
SRC_URI += "file://run-ptest \
"
SRC_URI[sha256sum] = "9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed"
export BUILD_SYS
export HOST_SYS
inherit pypi ptest setuptools3
RDEPENDS:${PN}-ptest += " \
${PYTHON_PN}-pytest \
${PYTHON_PN}-asyncio \
${PYTHON_PN}-io \
${PYTHON_PN}-multiprocessing \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
}
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,3 @@
#!/bin/sh
pytest --automake
@@ -0,0 +1,35 @@
# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
# Released under the MIT license (see COPYING.MIT for the terms)
SUMMARY = "An aspect-oriented programming, monkey-patch and decorators library."
DESCRIPTION = " It is useful when changing behavior in existing code is desired. \
It includes tools for debugging and testing: simple mock/record and a complete capture/replay framework."
HOMEPAGE = "https://github.com/ionelmc/python-aspectlib"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=80721ace117fd1f814049ecb81c6be76"
SRC_URI[sha256sum] = "a4b461b9da0b531aebcb93efcde3de808a72c60226dd8d902c467d13faf7ce92"
inherit ptest pypi setuptools3
SRC_URI += "file://run-ptest \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
}
RDEPENDS:${PN}-ptest += "\
python3-process-tests \
python3-pytest \
python3-tornado \
python3-unittest-automake-output \
"
RDEPENDS:${PN} += " \
python3-fields \
python3-logging \
"
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,36 @@
From 1a477968593a14ee9c8597c1ed4e8b61a7731e15 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Wed, 23 Dec 2020 02:23:13 +0000
Subject: [PATCH] rtrip.py: convert to python3
As Python 2 reached end of life (EOL), so convert rtrip.py to python3.
Upstream-Status: Submitted [https://github.com/berkerpeksag/astor/pull/192]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
astor/rtrip.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/astor/rtrip.py b/astor/rtrip.py
index 8b108e7..e2e30a6 100755
--- a/astor/rtrip.py
+++ b/astor/rtrip.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Part of the astor library for Python AST manipulation.
@@ -160,7 +160,7 @@ def usage(msg):
Usage:
- python -m astor.rtrip [readonly] [<source>]
+ python3 -m astor.rtrip [readonly] [<source>]
This utility tests round-tripping of Python source to AST
--
2.26.2
@@ -0,0 +1,17 @@
SUMMARY = "Easy manipulation of Python source via the AST."
HOMEPAGE = "https://github.com/berkerpeksag/astor"
SECTION = "devel/python"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=561205fdabc3ec52cae2d30815b8ade7"
SRC_URI = "git://github.com/berkerpeksag/astor.git;branch=master;protocol=https \
file://0001-rtrip.py-convert-to-python3.patch \
"
SRCREV ?= "c7553c79f9222e20783fe9bd8a553f932e918072"
inherit setuptools3
PIP_INSTALL_PACKAGE = "astor"
S = "${WORKDIR}/git"
BBCLASSEXTEND = "native"
@@ -0,0 +1,35 @@
SUMMARY = "An abstract syntax tree for Python with inference support."
HOMEPAGE = "https://pypi.python.org/pypi/astroid"
SECTION = "devel/python"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a70cf540abf41acb644ac3b621b2fad1"
SRC_URI[sha256sum] = "903f024859b7c7687d7a7f3a3f73b17301f8e42dfd9cc9df9d4418172d3e2dbd"
inherit pypi python_setuptools_build_meta
DEPENDS += "\
${PYTHON_PN}-pytest-runner-native \
${PYTHON_PN}-wheel-native \
"
PACKAGES =+ "${PN}-tests"
FILES:${PN}-tests += " \
${PYTHON_SITEPACKAGES_DIR}/astroid/test* \
${PYTHON_SITEPACKAGES_DIR}/astroid/__pycache__/test* \
"
RDEPENDS:${PN}:class-target += "\
${PYTHON_PN}-distutils \
${PYTHON_PN}-lazy-object-proxy \
${PYTHON_PN}-logging \
${PYTHON_PN}-six \
${PYTHON_PN}-wrapt \
${PYTHON_PN}-setuptools \
"
RDEPENDS:${PN}-tests:class-target += "\
${PYTHON_PN}-unittest \
${PYTHON_PN}-xml \
"
@@ -0,0 +1,18 @@
SUMMARY = "The asttokens module annotates Python abstract syntax trees (ASTs)"
HOMEPAGE = "https://github.com/gristlabs/asttokens"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
PYPI_PACKAGE = "asttokens"
inherit pypi python_setuptools_build_meta
SRC_URI[sha256sum] = "4622110b2a6f30b77e1473affaa97e711bc2f07d3f10848420ff1898edbe94f3"
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS:${PN} += " \
${PYTHON_PN}-six \
"
BBCLASSEXTEND = "native"
@@ -0,0 +1,18 @@
SUMMARY = "asyncio-compatible timeout context manager"
DESCRIPTION = "\
The context manager is useful in cases when you want to apply \
timeout logic around block of code or in cases when asyncio.wait_for() \
is not suitable. Also it's much faster than asyncio.wait_for() because \
timeout doesn't create a new task."
HOMEPAGE = "https://github.com/aio-libs/async-timeout"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4fa41f15bb5f23b6d3560c5845eb8d57"
SRC_URI[sha256sum] = "7d87a4e8adba8ededb52e579ce6bc8276985888913620c935094c2276fd83382"
PYPI_PACKAGE = "async-timeout"
inherit pypi setuptools3
RDEPENDS:${PN} = "\
${PYTHON_PN}-asyncio \
"
@@ -0,0 +1,18 @@
SUMMARY = "asyncio-compatible timeout context manager"
DESCRIPTION = "\
The context manager is useful in cases when you want to apply \
timeout logic around block of code or in cases when asyncio.wait_for() \
is not suitable. Also it's much faster than asyncio.wait_for() because \
timeout doesn't create a new task."
HOMEPAGE = "https://github.com/aio-libs/async-timeout"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4fa41f15bb5f23b6d3560c5845eb8d57"
SRC_URI[sha256sum] = "2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"
PYPI_PACKAGE = "async-timeout"
inherit pypi python_setuptools_build_meta
RDEPENDS:${PN} = "\
${PYTHON_PN}-asyncio \
"
@@ -0,0 +1,15 @@
SUMMARY = "A simple optionally-async python inotify library, focused on simplicity of use and operation, and leveraging modern Python features"
HOMEPAGE = "https://gitlab.com/Taywee/asyncinotify"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec941a1cd6616454970d03cb9c9e8f8"
SRC_URI[sha256sum] = "bcac19425b1b418bbbc4d31193ea3c39e24343cd7ddff2074ae7b599f1a04829"
inherit pypi python_setuptools_build_meta
RDEPENDS:${PN} += " \
python3-asyncio \
python3-core \
python3-ctypes \
python3-io \
"
@@ -0,0 +1,13 @@
SUMMARY = "An implementation of the Python 3 asyncio event loop on top of GLib"
AUTHOR = "James Henstridge"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c"
inherit setuptools3 pypi features_check
REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
SRC_URI[md5sum] = "60153055e76ceaacdfbaeafb03d61dd9"
SRC_URI[sha256sum] = "fe3ceb2ba5f541330c07ca1bd7ae792468d625bad1acf5354a3a7a0b9fd87521"
RDEPENDS:${PN} += "python3-asyncio python3-pygobject"
@@ -0,0 +1,11 @@
DESCRIPTION = "Simple, easy-to-use throttler for asyncio."
HOMEPAGE = "https://github.com/hallazzang/asyncio-throttle"
SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c7906e56b70808e1ade6ca05e0bb48d5"
SRC_URI[sha256sum] = "2675282e99d9129ecc446f917e174bc205c65e36c602aa18603b4948567fcbd4"
inherit pypi setuptools3
RDEPENDS:${PN} += "python3-asyncio"
@@ -0,0 +1,8 @@
DESCRIPTION = "Simple decorator to set attributes of target function or class in a DRY way"
HOMEPAGE = "https://github.com/denis-ryzhkov/attr"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=02c113fb406eab0537c0cf4334f57c07"
SRC_URI[sha256sum] = "1ceebca768181cdcce9827611b1d728e592be5d293911539ea3d0b0bfa1146f4"
inherit pypi setuptools3
@@ -0,0 +1,23 @@
DESCRIPTION = "WebSocket client & server library, WAMP real-time framework"
HOMEPAGE = "http://crossbar.io/autobahn"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3e2c2c2cc2915edc5321b0e6b1d3f5f8"
SRC_URI[sha256sum] = "ec9421c52a2103364d1ef0468036e6019ee84f71721e86b36fe19ad6966c1181"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
${PYTHON_PN}-twisted \
${PYTHON_PN}-zopeinterface \
${PYTHON_PN}-py-ubjson \
${PYTHON_PN}-cbor2 \
${PYTHON_PN}-u-msgpack-python \
${PYTHON_PN}-lz4 \
${PYTHON_PN}-snappy \
${PYTHON_PN}-pyopenssl \
${PYTHON_PN}-txaio \
${PYTHON_PN}-six \
"
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,16 @@
DESCRIPTION = "Self-service finite-state machines for the programmer on the go"
HOMEPAGE = "https://github.com/glyph/Automat"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4ad213bcca81688e94593e5f60c87477"
SRC_URI[sha256sum] = "e56beb84edad19dcc11d30e8d9b895f75deeb5ef5e96b84a467066b3b84bb04e"
DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
PYPI_PACKAGE = "Automat"
inherit pypi setuptools3
RDEPENDS:${PN} += "\
${PYTHON_PN}-attrs \
${PYTHON_PN}-six \
"
@@ -0,0 +1,11 @@
DESCRIPTION = "One version package to rule them all, One version package to find them, One version package to bring them all, and in the darkness bind them."
HOMEPAGE = "https://pypi.org/project/awesomeversion/"
SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENCE.md;md5=92622b5a8e216099be741d78328bae5d"
SRC_URI[sha256sum] = "2f4190d333e81e10b2a4e156150ddb3596f5f11da67e9d51ba39057aa7a17f7e"
RDEPENDS:${PN} += "python3-profile python3-logging"
inherit pypi setuptools3
@@ -0,0 +1,29 @@
From 36f8106535150b970c75e8b8456ebc5a7d1dbdb3 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 2 Mar 2022 11:11:01 -0800
Subject: [PATCH] setup.py: Use setuptools instead of distutils
distutils is deprecated and will be gone in 3.12+
Upstream-Status: Submitted [https://github.com/aws/aws-iot-device-sdk-python/pull/305]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 3846bae..d0c2b8d 100644
--- a/setup.py
+++ b/setup.py
@@ -3,7 +3,7 @@ sys.path.insert(0, 'AWSIoTPythonSDK')
import AWSIoTPythonSDK
currentVersion = AWSIoTPythonSDK.__version__
-from distutils.core import setup
+from setuptools import setup
setup(
name = 'AWSIoTPythonSDK',
packages=['AWSIoTPythonSDK', 'AWSIoTPythonSDK.core',
--
2.35.1
@@ -0,0 +1,44 @@
DESCRIPTION = "SDK for connecting to AWS IoT using Python."
HOMEPAGE = "https://github.com/aws/aws-iot-device-sdk-python"
LICENSE = "Apache-2.0 & (EPL-1.0 | EDL-1.0)"
LICENSE:${PN}-examples = "Apache-2.0"
LIC_FILES_CHKSUM = "\
file://LICENSE.txt;md5=9ac49901b833e769c7d6f21e8dbd7b30 \
file://AWSIoTPythonSDK/core/protocol/paho/client.py;endline=14;md5=5a3c8a1a4bb71bd934f450ecff972ad9 \
"
SRCREV = "0ea1a2d013529839fc1e7448d19dadff25d581b4"
SRC_URI = "git://github.com/aws/aws-iot-device-sdk-python;branch=master;protocol=https \
file://0001-setup.py-Use-setuptools-instead-of-distutils.patch \
"
S = "${WORKDIR}/git"
inherit setuptools3
PYPI_PACKAGE = "AWSIoTPythonSDK"
do_install:append() {
install -d -m0755 ${D}${datadir}/${BPN}/examples
cp --preserve=mode,timestamps -R ${S}/samples/* ${D}${datadir}/${BPN}/examples
# this requires the full blown AWS Python SDK
rm -r ${D}${datadir}/${BPN}/examples/basicPubSub
}
PACKAGES =+ "${PN}-examples"
RDEPENDS:${PN} += " \
${PYTHON_PN}-crypt \
${PYTHON_PN}-datetime \
${PYTHON_PN}-io \
${PYTHON_PN}-json \
${PYTHON_PN}-logging \
${PYTHON_PN}-math \
${PYTHON_PN}-netclient \
${PYTHON_PN}-numbers \
${PYTHON_PN}-threading \
"
RDEPENDS:${PN}-examples += "${PN}"
FILES:${PN}-examples = "${datadir}/${BPN}/examples"
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,12 @@
SUMMARY = "Specifications for callback functions passed in to an API"
HOMEPAGE = "https://github.com/takluyver/backcall"
AUTHOR = "Thomas Kluyver <thomas@kluyver.me.uk>"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=40e56b724d016484a7f790ec826d3ffc"
PYPI_PACKAGE = "backcall"
SRC_URI[md5sum] = "1f4c9a370c78743406296f48e56e8821"
SRC_URI[sha256sum] = "5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"
inherit pypi python_flit_core
@@ -0,0 +1,3 @@
#!/bin/sh
pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
@@ -0,0 +1,21 @@
SUMMARY = "Security oriented static analyser for python code."
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
SRC_URI[sha256sum] = "bdfc739baa03b880c2d15d0431b31c658ffc348e907fe197e54e0389dd59e11e"
DEPENDS = "python3-pbr-native python3-git python3-pbr python3-pyyaml python3-six python3-stevedore"
inherit setuptools3 pypi
RDEPENDS:${PN} += "\
python3-git \
python3-modules \
python3-pbr \
python3-pyyaml \
python3-rich \
python3-six \
python3-stevedore \
"
BBCLASSEXTEND = "native"
@@ -0,0 +1,18 @@
SUMMARY = "Screen-scraping library"
HOMEPAGE = " https://www.crummy.com/software/BeautifulSoup/bs4"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING.txt;md5=15a76c7c51ecfc5c094d04f3ccd41a09"
SRC_URI[sha256sum] = "ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693"
inherit pypi setuptools3
RDEPENDS:${PN} = "\
${PYTHON_PN}-html5lib \
${PYTHON_PN}-lxml \
${PYTHON_PN}-soupsieve \
${PYTHON_PN}-html \
${PYTHON_PN}-logging \
"
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,18 @@
SUMMARY = "A behavior-driven development framework, Python style"
HOMEPAGE = "https://github.com/behave/behave"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d950439e8ea6ed233e4288f5e1a49c06"
PV .= "+git${SRCREV}"
SRCREV = "9520119376046aeff73804b5f1ea05d87a63f370"
SRC_URI += "git://github.com/behave/behave;branch=master;protocol=https"
S = "${WORKDIR}/git"
inherit setuptools3
RDEPENDS:${PN} += " \
${PYTHON_PN}-parse-type \
${PYTHON_PN}-setuptools \
${PYTHON_PN}-six \
"
@@ -0,0 +1,333 @@
From 0e0b63ae80df5d7849b2e1c5ab9a668e8378b5e8 Mon Sep 17 00:00:00 2001
From: Zhixiong Chi <zhixiong.chi@windriver.com>
Date: Tue, 28 Mar 2023 06:05:45 +0000
Subject: [PATCH] Drop ptests fixtures and recorde_modes
The usage of fixture in test_fixtures has been deprecated.
See https://docs.pytest.org/en/stable/explanation/fixtures.html and
https://docs.pytest.org/en/stable/deprecations.html#calling-fixtures-directly
for more information about fixtures.
Meanwhile the test_record_modes relies on httpbin.org which has been sold and
re-sold several times, and it adds X-Amzn-Trace-Id header that can possibly
diff for each request.
It leads to ptest failure, so drop it now until we find the solution.
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
---
tests/integration/test_fixtures.py | 60 -----------
tests/integration/test_record_modes.py | 132 -------------------------
tests/unit/test_fixtures.py | 94 ------------------
3 files changed, 286 deletions(-)
delete mode 100644 tests/integration/test_fixtures.py
delete mode 100644 tests/integration/test_record_modes.py
delete mode 100644 tests/unit/test_fixtures.py
diff --git a/tests/integration/test_fixtures.py b/tests/integration/test_fixtures.py
deleted file mode 100644
index fc3d1e7..0000000
--- a/tests/integration/test_fixtures.py
+++ /dev/null
@@ -1,60 +0,0 @@
-import os.path
-
-import pytest
-
-
-@pytest.mark.usefixtures('betamax_session')
-class TestPyTestFixtures:
- @pytest.fixture(autouse=True)
- def setup(self, request):
- """After test hook to assert everything."""
- def finalizer():
- test_dir = os.path.abspath('.')
- cassette_name = ('tests.integration.test_fixtures.' # Module name
- 'TestPyTestFixtures.' # Class name
- 'test_pytest_fixture' # Test function name
- '.json')
- file_name = os.path.join(test_dir, 'tests', 'cassettes',
- cassette_name)
- assert os.path.exists(file_name) is True
-
- request.addfinalizer(finalizer)
-
- def test_pytest_fixture(self, betamax_session):
- """Exercise the fixture itself."""
- resp = betamax_session.get('https://httpbin.org/get')
- assert resp.ok
-
-
-@pytest.mark.usefixtures('betamax_parametrized_session')
-class TestPyTestParametrizedFixtures:
- @pytest.fixture(autouse=True)
- def setup(self, request):
- """After test hook to assert everything."""
- def finalizer():
- test_dir = os.path.abspath('.')
- cassette_name = ('tests.integration.test_fixtures.' # Module name
- 'TestPyTestParametrizedFixtures.' # Class name
- 'test_pytest_fixture' # Test function name
- '[https---httpbin.org-get]' # Parameter
- '.json')
- file_name = os.path.join(test_dir, 'tests', 'cassettes',
- cassette_name)
- assert os.path.exists(file_name) is True
-
- request.addfinalizer(finalizer)
-
- @pytest.mark.parametrize('url', ('https://httpbin.org/get',))
- def test_pytest_fixture(self, betamax_parametrized_session, url):
- """Exercise the fixture itself."""
- resp = betamax_parametrized_session.get(url)
- assert resp.ok
-
-
-@pytest.mark.parametrize('problematic_arg', [r'aaa\bbb', 'ccc:ddd', 'eee*fff'])
-def test_pytest_parametrize_with_filesystem_problematic_chars(
- betamax_parametrized_session, problematic_arg):
- """
- Exercice parametrized args containing characters which might cause
- problems when getting translated into file names. """
- assert True
diff --git a/tests/integration/test_record_modes.py b/tests/integration/test_record_modes.py
deleted file mode 100644
index 58c8846..0000000
--- a/tests/integration/test_record_modes.py
+++ /dev/null
@@ -1,132 +0,0 @@
-from betamax import Betamax, BetamaxError
-
-from tests.integration.helper import IntegrationHelper
-
-
-class TestRecordOnce(IntegrationHelper):
- def test_records_new_interaction(self):
- s = self.session
- with Betamax(s).use_cassette('test_record_once') as betamax:
- self.cassette_path = betamax.current_cassette.cassette_path
- assert betamax.current_cassette.is_empty() is True
- r = s.get('http://httpbin.org/get')
- assert r.status_code == 200
- assert betamax.current_cassette.is_empty() is True
- assert betamax.current_cassette.interactions != []
-
- def test_replays_response_from_cassette(self):
- s = self.session
- with Betamax(s).use_cassette('test_replays_response') as betamax:
- self.cassette_path = betamax.current_cassette.cassette_path
- assert betamax.current_cassette.is_empty() is True
- r0 = s.get('http://httpbin.org/get')
- assert r0.status_code == 200
- assert betamax.current_cassette.interactions != []
- assert len(betamax.current_cassette.interactions) == 1
- r1 = s.get('http://httpbin.org/get')
- assert len(betamax.current_cassette.interactions) == 2
- assert r1.status_code == 200
- r0_headers = r0.headers.copy()
- r0_headers.pop('Date')
- r0_headers.pop('Age', None)
- r0_headers.pop('X-Processed-Time', None)
- r1_headers = r1.headers.copy()
- r1_headers.pop('Date')
- r1_headers.pop('Age', None)
- r1_headers.pop('X-Processed-Time', None)
- # NOTE(sigmavirus24): This fails if the second request is
- # technically a second later. Ignoring the Date headers allows
- # this test to succeed.
- # NOTE(hroncok): httpbin.org added X-Processed-Time header that
- # can possibly differ (and often does)
- assert r0_headers == r1_headers
- assert r0.content == r1.content
-
-
-class TestRecordNone(IntegrationHelper):
- def test_raises_exception_when_no_interactions_present(self):
- s = self.session
- with Betamax(s) as betamax:
- betamax.use_cassette('test', record='none')
- self.cassette_created = False
- assert betamax.current_cassette is not None
- self.assertRaises(BetamaxError, s.get, 'http://httpbin.org/get')
-
- def test_record_none_does_not_create_cassettes(self):
- s = self.session
- with Betamax(s) as betamax:
- self.assertRaises(ValueError, betamax.use_cassette,
- 'test_record_none', record='none')
- self.cassette_created = False
-
-
-class TestRecordNewEpisodes(IntegrationHelper):
- def setUp(self):
- super(TestRecordNewEpisodes, self).setUp()
- with Betamax(self.session).use_cassette('test_record_new'):
- self.session.get('http://httpbin.org/get')
- self.session.get('http://httpbin.org/redirect/2')
-
- def test_records_new_events_with_existing_cassette(self):
- s = self.session
- opts = {'record': 'new_episodes'}
- with Betamax(s).use_cassette('test_record_new', **opts) as betamax:
- cassette = betamax.current_cassette
- self.cassette_path = cassette.cassette_path
- assert cassette.interactions != []
- assert len(cassette.interactions) == 4
- assert cassette.is_empty() is False
- s.get('https://httpbin.org/get')
- assert len(cassette.interactions) == 5
-
- with Betamax(s).use_cassette('test_record_new') as betamax:
- cassette = betamax.current_cassette
- assert len(cassette.interactions) == 5
- r = s.get('https://httpbin.org/get')
- assert r.status_code == 200
-
-
-class TestRecordNewEpisodesCreatesCassettes(IntegrationHelper):
- def test_creates_new_cassettes(self):
- recorder = Betamax(self.session)
- opts = {'record': 'new_episodes'}
- cassette_name = 'test_record_new_makes_new_cassettes'
- with recorder.use_cassette(cassette_name, **opts) as betamax:
- self.cassette_path = betamax.current_cassette.cassette_path
- self.session.get('https://httpbin.org/get')
-
-
-class TestRecordAll(IntegrationHelper):
- def setUp(self):
- super(TestRecordAll, self).setUp()
- with Betamax(self.session).use_cassette('test_record_all'):
- self.session.get('http://httpbin.org/get')
- self.session.get('http://httpbin.org/redirect/2')
- self.session.get('http://httpbin.org/get')
-
- def test_records_new_interactions(self):
- s = self.session
- opts = {'record': 'all'}
- with Betamax(s).use_cassette('test_record_all', **opts) as betamax:
- cassette = betamax.current_cassette
- self.cassette_path = cassette.cassette_path
- assert cassette.interactions != []
- assert len(cassette.interactions) == 5
- assert cassette.is_empty() is False
- s.post('http://httpbin.org/post', data={'foo': 'bar'})
- assert len(cassette.interactions) == 6
-
- with Betamax(s).use_cassette('test_record_all') as betamax:
- assert len(betamax.current_cassette.interactions) == 6
-
- def test_replaces_old_interactions(self):
- s = self.session
- opts = {'record': 'all'}
- with Betamax(s).use_cassette('test_record_all', **opts) as betamax:
- cassette = betamax.current_cassette
- self.cassette_path = cassette.cassette_path
- assert cassette.interactions != []
- assert len(cassette.interactions) == 5
- assert cassette.is_empty() is False
- s.get('http://httpbin.org/get')
- assert len(cassette.interactions) == 5
diff --git a/tests/unit/test_fixtures.py b/tests/unit/test_fixtures.py
deleted file mode 100644
index 387d9ce..0000000
--- a/tests/unit/test_fixtures.py
+++ /dev/null
@@ -1,94 +0,0 @@
-try:
- import unittest.mock as mock
-except ImportError:
- import mock
-
-import pytest
-import unittest
-
-import requests
-
-import betamax
-from betamax.fixtures import pytest as pytest_fixture
-from betamax.fixtures import unittest as unittest_fixture
-
-
-class TestPyTestFixture(unittest.TestCase):
- def setUp(self):
- self.mocked_betamax = mock.MagicMock()
- self.patched_betamax = mock.patch.object(
- betamax.recorder, 'Betamax', return_value=self.mocked_betamax)
- self.patched_betamax.start()
-
- def tearDown(self):
- self.patched_betamax.stop()
-
- def test_adds_stop_as_a_finalizer(self):
- # Mock a pytest request object
- request = mock.MagicMock()
- request.cls = request.module = None
- request.function.__name__ = 'test'
-
- pytest_fixture.betamax_recorder(request)
- assert request.addfinalizer.called is True
- request.addfinalizer.assert_called_once_with(self.mocked_betamax.stop)
-
- def test_auto_starts_the_recorder(self):
- # Mock a pytest request object
- request = mock.MagicMock()
- request.cls = request.module = None
- request.function.__name__ = 'test'
-
- pytest_fixture.betamax_recorder(request)
- self.mocked_betamax.start.assert_called_once_with()
-
-
-class FakeBetamaxTestCase(unittest_fixture.BetamaxTestCase):
- def test_fake(self):
- pass
-
-
-class TestUnittestFixture(unittest.TestCase):
- def setUp(self):
- self.mocked_betamax = mock.MagicMock()
- self.patched_betamax = mock.patch.object(
- betamax.recorder, 'Betamax', return_value=self.mocked_betamax)
- self.betamax = self.patched_betamax.start()
- self.fixture = FakeBetamaxTestCase(methodName='test_fake')
-
- def tearDown(self):
- self.patched_betamax.stop()
-
- def test_setUp(self):
- self.fixture.setUp()
-
- self.mocked_betamax.use_cassette.assert_called_once_with(
- 'FakeBetamaxTestCase.test_fake'
- )
- self.mocked_betamax.start.assert_called_once_with()
-
- def test_setUp_rejects_arbitrary_session_classes(self):
- self.fixture.SESSION_CLASS = object
-
- with pytest.raises(AssertionError):
- self.fixture.setUp()
-
- def test_setUp_accepts_session_subclasses(self):
- class TestSession(requests.Session):
- pass
-
- self.fixture.SESSION_CLASS = TestSession
-
- self.fixture.setUp()
-
- assert self.betamax.called is True
- call_kwargs = self.betamax.call_args[-1]
- assert isinstance(call_kwargs['session'], TestSession)
-
- def test_tearDown_calls_stop(self):
- recorder = mock.Mock()
- self.fixture.recorder = recorder
-
- self.fixture.tearDown()
-
- recorder.stop.assert_called_once_with()
--
2.35.5
@@ -0,0 +1,3 @@
#!/bin/sh
pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
@@ -0,0 +1,28 @@
DESCRIPTION = "VCR imitation for python requests"
HOMEPAGE = "https://github.com/betamaxpy/betamax"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=61c15f0c146c5fb1a8ce8ba2f310d73c"
SRC_URI += " \
file://run-ptest \
file://0001-Drop-ptests-fixtures-and-recorde_modes.patch \
"
SRC_URI[md5sum] = "b8182d43a200fc126a3bf7555626f964"
SRC_URI[sha256sum] = "5bf004ceffccae881213fb722f34517166b84a34919b92ffc14d1dbd050b71c2"
inherit pypi setuptools3 ptest
RDEPENDS:${PN} += " \
python3-requests \
python3-unittest \
"
RDEPENDS:${PN}-ptest += " \
${PYTHON_PN}-pytest \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
}
@@ -0,0 +1,11 @@
SUMMARY = "The bidirectional mapping library for Python."
DESCRIPTION = "The bidirectional mapping library for Python."
HOMEPAGE = "https://bidict.readthedocs.io/"
LICENSE = "MPL-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=858e74278ef3830d46481172ae03c819"
SRC_URI[sha256sum] = "1e0f7f74e4860e6d0943a05d4134c63a2fad86f3d4732fb265bd79e4e856d81d"
inherit pypi python_setuptools_build_meta
DEPENDS += "python3-setuptools-scm-native"
@@ -0,0 +1,23 @@
SUMMARY = "Firmware analysis tool"
DESCRIPTION = "This package contains Python Binwalk tool. Binwalk is a fast, \
easy to use tool for analyzing, reverse engineering, and extracting firmware \
images."
HOMEPAGE = "https://github.com/ReFirmLabs/binwalk"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=65bbee055d3ea3bfc475f07aecf4de64"
SRC_URI = "git://github.com/ReFirmLabs/binwalk;protocol=https;branch=master"
SRCREV = "fa0c0bd59b8588814756942fe4cb5452e76c1dcd"
S = "${WORKDIR}/git"
inherit setuptools3
RDEPENDS:${PN} += " \
python3-compression \
python3-logging \
python3-netserver \
python3-setuptools \
python3-stringold \
"
@@ -0,0 +1,10 @@
SUMMARY = "A high-level Python efficient arrays of booleans -- C extension"
HOMEPAGE = "https://github.com/ilanschnell/bitarray"
LICENSE = "PSF-2.0"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=2ad702cdcd49e8d2ac01d7e7d0810d2d"
SRC_URI[sha256sum] = "3807f9323c308bc3f9b58cbe5d04dc28f34ac32d852999334da96b42f64b5356"
inherit setuptools3 pypi
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,19 @@
SUMMARY = "Simple construction, analysis and modification of binary data."
HOMEPAGE = "https://github.com/scott-griffiths/bitstring"
AUTHOR = "Scott Griffiths <dr.scottgriffiths@gmail.com>"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=f7f2fd3f1cd52b5ccd39d76fb3568d3f"
SRC_URI[sha256sum] = "a5848a3f63111785224dca8bb4c0a75b62ecdef56a042c8d6be74b16f7e860e7"
PYPI_PACKAGE = "bitstring"
inherit pypi setuptools3
RDEPENDS:${PN} = "\
${PYTHON_PN}-core \
${PYTHON_PN}-numbers \
${PYTHON_PN}-mmap \
"
BBCLASSEXTEND = "native nativesdk"
@@ -0,0 +1,13 @@
DESCRIPTION = "This module performs conversions between Python values and C bit field structs represented as Python byte strings."
HOMEPAGE = "https://github.com/eerimoq/bitstruct"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd"
SRC_URI[sha256sum] = "eb94b40e4218a23aa8f90406b836a9e6ed83e48b8d112ce3f96408463bd1b874"
PYPI_PACKAGE = "bitstruct"
inherit pypi setuptools3
CLEANBROKEN = "1"

Some files were not shown because too many files have changed in this diff Show More