added my Recipes

This commit is contained in:
2024-07-11 14:16:35 +02:00
parent 38bc4f53ac
commit 09b621d929
7118 changed files with 525762 additions and 3 deletions

View File

@@ -0,0 +1,34 @@
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>
---
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

View File

@@ -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"

View File

@@ -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 \
"

View File

@@ -0,0 +1,15 @@
DESCRIPTION = "Pamela: yet another Python wrapper for PAM"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://PKG-INFO;md5=3f9b78307cdde4e6a4976bfd82a0e7f3"
SRC_URI[md5sum] = "5fc14f5275383ed8bdd509007af0323d"
SRC_URI[sha256sum] = "65c9389bef7d1bb0b168813b6be21964df32016923aac7515bdf05366acbab6c"
PYPI_PACKAGE = "pamela"
inherit pypi setuptools3
RDEPENDS:${PN} = "libpam"
inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"

View File

@@ -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 \
"

View File

@@ -0,0 +1,31 @@
From 0981eee9f0198c2045dc0eaa78a005d06fc7bfe4 Mon Sep 17 00:00:00 2001
From: Carlos Eduardo Moreira dos Santos <cems@cemshost.com.br>
Date: Tue, 28 Mar 2017 18:23:44 -0300
Subject: [PATCH] Workaround for issue 2 [1]
[1] https://pagure.io/python-daemon/issue/2
---
version.py | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/version.py b/version.py
index d58422a377ee..293e2d64c2b7 100644
--- a/version.py
+++ b/version.py
@@ -648,9 +648,10 @@ class ChangelogAwareDistribution(distutils.dist.Distribution, object):
@lru_cache(maxsize=128)
def get_version_info(self):
- changelog_path = get_changelog_path(self)
- version_info = generate_version_info_from_changelog(changelog_path)
- return version_info
+ return {
+ 'version': '2.1.2',
+ 'maintainer': 'Ben Finney'
+ }
def get_version(self):
version_info = self.get_version_info()
--
2.7.4

View File

@@ -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 \
"

View File

@@ -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"

View File

@@ -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 \
"

View File

@@ -0,0 +1,12 @@
DESCRIPTION = "Scripting support for flask"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e686048adb69341fc8a08caeda528b41"
SRC_URI[md5sum] = "3fbd91fe13cebedfb2431331f6eabb68"
SRC_URI[sha256sum] = "6425963d91054cfcc185807141c7314a9c5ad46325911bd24dcb489bd0161c65"
PYPI_PACKAGE = "Flask-Script"
RDEPENDS:${PN} += "\
${PYTHON_PN}-flask \
"

View File

@@ -0,0 +1,8 @@
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} = "${PYTHON_PN}-sijax"

View File

@@ -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 \
"

View File

@@ -0,0 +1,7 @@
--- 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:

View File

@@ -0,0 +1,10 @@
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

View File

@@ -0,0 +1,55 @@
From 07d4f095a9e22ae676a8d68073101131e65012dc Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Tue, 15 Nov 2011 13:16:54 +0100
Subject: [PATCH] python imaging setup.py: force paths for zlib, freetype and jpeg and don't add host paths
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Upstream-Status: Inappropriate [embedded specific]
---
setup.py | 14 +++-----------
1 files changed, 3 insertions(+), 11 deletions(-)
diff --git a/setup.py b/setup.py
index 5d4d53a..b1a22ec 100644
--- a/setup.py
+++ b/setup.py
@@ -34,10 +34,10 @@ def libinclude(root):
# TIFF_ROOT = libinclude("/opt/tiff")
TCL_ROOT = None
-JPEG_ROOT = None
-ZLIB_ROOT = None
+JPEG_ROOT = os.environ['STAGING_LIBDIR']
+ZLIB_ROOT = os.environ['STAGING_LIBDIR']
TIFF_ROOT = None
-FREETYPE_ROOT = None
+FREETYPE_ROOT = os.environ['STAGING_LIBDIR'], os.environ['STAGING_INCDIR']
LCMS_ROOT = None
# FIXME: add mechanism to explicitly *disable* the use of a library
@@ -147,7 +147,6 @@ class pil_build_ext(build_ext):
add_directory(library_dirs, "/opt/local/lib")
add_directory(include_dirs, "/opt/local/include")
- add_directory(library_dirs, "/usr/local/lib")
# FIXME: check /opt/stuff directories here?
prefix = sysconfig.get_config_var("prefix")
@@ -207,13 +206,6 @@ class pil_build_ext(build_ext):
if os.path.isfile(os.path.join(tcl_dir, "tk.h")):
add_directory(include_dirs, tcl_dir)
- # standard locations
- add_directory(library_dirs, "/usr/local/lib")
- add_directory(include_dirs, "/usr/local/include")
-
- add_directory(library_dirs, "/usr/lib")
- add_directory(include_dirs, "/usr/include")
-
#
# insert new dirs *before* default libs, to avoid conflicts
# between Python PYD stub libs and real libraries
--
1.7.2.5

View File

@@ -0,0 +1,65 @@
At least lcms wasn't deterministicly detected from sysroot.
This will allow to export LCMS_ENABLED=False when lcms isn't in PACKAGECONFIG.
Upstream-Status: Inappropriate [configuration]
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
diff -uNr Imaging-1.1.7.orig/setup.py Imaging-1.1.7/setup.py
--- Imaging-1.1.7.orig/setup.py 2013-07-22 10:17:02.081457075 +0200
+++ Imaging-1.1.7/setup.py 2013-07-22 13:10:09.029707492 +0200
@@ -39,6 +39,12 @@
TIFF_ROOT = None
FREETYPE_ROOT = os.environ['STAGING_LIBDIR'], os.environ['STAGING_INCDIR']
LCMS_ROOT = None
+TCL_ENABLED = os.getenv('TCL_ENABLED', "True")
+JPEG_ENABLED = os.getenv('JPEG_ENABLED', "True")
+ZLIB_ENABLED = os.getenv('ZLIB_ENABLED', "True")
+TIFF_ENABLED = os.getenv('TIFF_ENABLED', "True")
+FREETYPE_ENABLED = os.getenv('FREETYPE_ENABLED', "True")
+LCMS_ENABLED = os.getenv('LCMS_ENABLED', "True")
# FIXME: add mechanism to explicitly *disable* the use of a library
@@ -220,22 +226,22 @@
zlib = jpeg = tiff = freetype = tcl = tk = lcms = None
feature = feature()
- if find_include_file(self, "zlib.h"):
+ if ZLIB_ENABLED == 'True' and find_include_file(self, "zlib.h"):
if find_library_file(self, "z"):
feature.zlib = "z"
elif sys.platform == "win32" and find_library_file(self, "zlib"):
feature.zlib = "zlib" # alternative name
- if find_include_file(self, "jpeglib.h"):
+ if JPEG_ENABLED == 'True' and find_include_file(self, "jpeglib.h"):
if find_library_file(self, "jpeg"):
feature.jpeg = "jpeg"
elif sys.platform == "win32" and find_library_file(self, "libjpeg"):
feature.jpeg = "libjpeg" # alternative name
- if find_library_file(self, "tiff"):
+ if TIFF_ENABLED == 'True' and find_library_file(self, "tiff"):
feature.tiff = "tiff"
- if find_library_file(self, "freetype"):
+ if FREETYPE_ENABLED == 'True' and find_library_file(self, "freetype"):
# look for freetype2 include files
freetype_version = 0
for dir in self.compiler.include_dirs:
@@ -256,11 +262,11 @@
if dir:
add_directory(self.compiler.include_dirs, dir, 0)
- if find_include_file(self, "lcms.h"):
+ if LCMS_ENABLED == 'True' and find_include_file(self, "lcms.h"):
if find_library_file(self, "lcms"):
feature.lcms = "lcms"
- if _tkinter and find_include_file(self, "tk.h"):
+ if TCL_ENABLED == 'True' and _tkinter and find_include_file(self, "tk.h"):
# the library names may vary somewhat (e.g. tcl84 or tcl8.4)
version = TCL_VERSION[0] + TCL_VERSION[2]
if find_library_file(self, "tcl" + version):

View File

@@ -0,0 +1,30 @@
Upstream-Status: Backport
Signed-off-by: Ross Burton <ross.burton@intel.com>
From c6040f618d8f2706a7b46d1cdf37d1a587f9701f Mon Sep 17 00:00:00 2001
From: Andrew Stromnov <stromnov@gmail.com>
Date: Thu, 28 Nov 2013 16:58:43 +0400
Subject: [PATCH] fix compiling with FreeType 2.5.1
---
_imagingft.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/_imagingft.c b/_imagingft.c
index 47d50bd..f19555b 100644
--- a/_imagingft.c
+++ b/_imagingft.c
@@ -59,7 +59,11 @@ struct {
const char* message;
} ft_errors[] =
+#if defined(USE_FREETYPE_2_1)
+#include FT_ERRORS_H
+#else
#include <freetype/fterrors.h>
+#endif
/* -------------------------------------------------------------------- */
/* font objects */
--
1.8.5.1

View File

@@ -0,0 +1,38 @@
python-imaging: CVE-2016-2533
the patch comes from:
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-2533
https://github.com/python-pillow/Pillow/commit/ae453aa18b66af54e7ff716f4ccb33adca60afd4#diff-8ff6909c159597e22288ad818938fd6b
PCD decoder overruns the shuffle buffer, Fixes #568
Signed-off-by: Li Wang <li.wang@windriver.com>
---
libImaging/PcdDecode.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libImaging/PcdDecode.c b/libImaging/PcdDecode.c
index b6898e3..c02d005 100644
--- a/libImaging/PcdDecode.c
+++ b/libImaging/PcdDecode.c
@@ -47,7 +47,7 @@ ImagingPcdDecode(Imaging im, ImagingCodecState state, UINT8* buf, int bytes)
out[0] = ptr[x];
out[1] = ptr[(x+4*state->xsize)/2];
out[2] = ptr[(x+5*state->xsize)/2];
- out += 4;
+ out += 3;
}
state->shuffle((UINT8*) im->image[state->y],
@@ -62,7 +62,7 @@ ImagingPcdDecode(Imaging im, ImagingCodecState state, UINT8* buf, int bytes)
out[0] = ptr[x+state->xsize];
out[1] = ptr[(x+4*state->xsize)/2];
out[2] = ptr[(x+5*state->xsize)/2];
- out += 4;
+ out += 3;
}
state->shuffle((UINT8*) im->image[state->y],
--
1.7.9.5

View File

@@ -0,0 +1,25 @@
Avoid getting host sysroot paths in the library paths to fix issue like:
| /home/andrei/work/yocto/build-rpi-master/tmp/sysroots/x86_64-linux/usr/lib/libz.so: file not recognized: File format not recognized
Upstream-Status: Inappropriate [configuration]
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Index: Imaging-1.1.7/setup.py
===================================================================
--- Imaging-1.1.7.orig/setup.py
+++ Imaging-1.1.7/setup.py
@@ -155,11 +155,6 @@ class pil_build_ext(build_ext):
# FIXME: check /opt/stuff directories here?
- prefix = sysconfig.get_config_var("prefix")
- if prefix:
- add_directory(library_dirs, os.path.join(prefix, "lib"))
- add_directory(include_dirs, os.path.join(prefix, "include"))
-
#
# locate tkinter libraries

View File

@@ -0,0 +1,33 @@
From 3484bdfa7adbaebcf8bb8e7d4820f64b12717932 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Fri, 29 Jul 2016 15:37:18 +0800
Subject: [PATCH] python-mccabe: remove unnecessary setup_requires
pytest-runner
* Remove setup_requires pytest-runner as the
setup_requires pytest-runner actually is not
used for pytest which only in do_compile phase
via setup.py build
Upstream-Status: Pending
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
setup.py | 1 -
1 file changed, 1 deletion(-)
diff --git a/setup.py b/setup.py
index e59903d..bf2aaba 100644
--- a/setup.py
+++ b/setup.py
@@ -33,7 +33,6 @@ setup(
license='Expat license',
py_modules=['mccabe'],
zip_safe=False,
- setup_requires=['pytest-runner'],
tests_require=['pytest'],
entry_points={
'flake8.extension': [
--
2.8.1

View File

@@ -0,0 +1,30 @@
From 322e781c67d7a78fc2cfc3d377f50b825fc64abb Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 2 Jun 2017 20:21:01 -0700
Subject: [PATCH] it tries to define this function differently than it is
defined in sys/time.h.
Use the definition from system
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Packages/RNG/Src/ranf.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/Packages/RNG/Src/ranf.c b/Packages/RNG/Src/ranf.c
index 5ca7dc5..e669fa8 100644
--- a/Packages/RNG/Src/ranf.c
+++ b/Packages/RNG/Src/ranf.c
@@ -149,9 +149,6 @@ void Mixranf(int *s,u32 s48[2])
#else
struct timeval tv;
struct timezone tz;
-#if !defined(__sgi)
- int gettimeofday(struct timeval *, struct timezone *);
-#endif
(void)gettimeofday(&tv,&tz);
s48[0] = (u32)tv.tv_sec;
--
2.13.0

View File

@@ -0,0 +1,90 @@
From ed44474c11f577c1644910964a917a4cf701bb0f Mon Sep 17 00:00:00 2001
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Date: Tue, 26 Jan 2016 14:24:26 -0500
Subject: [PATCH] reflect 2.1 reporting for key imports
GnuPG 2.1 changes how it reports key imports. These changes should
make the pygpgme test suite compatible with GnuPG 2.1.
See also:
https://lists.gnupg.org/pipermail/gnupg-devel/2016-January/030718.html
Upstream-Status: Backport
Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
---
tests/test_import.py | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/tests/test_import.py b/tests/test_import.py
index 10eb816..597eb47 100644
--- a/tests/test_import.py
+++ b/tests/test_import.py
@@ -55,7 +55,7 @@ class ImportTestCase(GpgHomeTestCase):
ctx = gpgme.Context()
with self.keyfile('key1.sec') as fp:
result = ctx.import_(fp)
- self.assertEqual(result.considered, 1)
+ self.assertEqual(result.considered, 3)
self.assertEqual(result.no_user_id, 0)
self.assertEqual(result.imported, 1)
self.assertEqual(result.imported_rsa, 0)
@@ -64,18 +64,18 @@ class ImportTestCase(GpgHomeTestCase):
self.assertEqual(result.new_sub_keys, 0)
self.assertEqual(result.new_signatures, 0)
self.assertEqual(result.new_revocations, 0)
- self.assertEqual(result.secret_read, 1)
- self.assertEqual(result.secret_imported, 1)
+ self.assertEqual(result.secret_read, 3)
+ self.assertEqual(result.secret_imported, 2)
self.assertEqual(result.secret_unchanged, 0)
self.assertEqual(result.skipped_new_keys, 0)
self.assertEqual(result.not_imported, 0)
self.assertEqual(len(result.imports), 2)
self.assertEqual(result.imports[0],
('E79A842DA34A1CA383F64A1546BB55F0885C65A4',
- None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET))
+ None, gpgme.IMPORT_NEW))
self.assertEqual(result.imports[1],
('E79A842DA34A1CA383F64A1546BB55F0885C65A4',
- None, gpgme.IMPORT_NEW))
+ None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET))
# can we get the public key?
key = ctx.get_key('E79A842DA34A1CA383F64A1546BB55F0885C65A4')
# can we get the secret key?
@@ -102,17 +102,17 @@ class ImportTestCase(GpgHomeTestCase):
fp = BytesIO(b'\n'.join(keys))
ctx = gpgme.Context()
result = ctx.import_(fp)
- self.assertEqual(result.considered, 3)
+ self.assertEqual(result.considered, 5)
self.assertEqual(result.no_user_id, 0)
self.assertEqual(result.imported, 2)
- self.assertEqual(result.imported_rsa, 1)
+ self.assertEqual(result.imported_rsa, 0)
self.assertEqual(result.unchanged, 0)
self.assertEqual(result.new_user_ids, 0)
self.assertEqual(result.new_sub_keys, 0)
self.assertEqual(result.new_signatures, 1)
self.assertEqual(result.new_revocations, 0)
- self.assertEqual(result.secret_read, 1)
- self.assertEqual(result.secret_imported, 1)
+ self.assertEqual(result.secret_read, 3)
+ self.assertEqual(result.secret_imported, 2)
self.assertEqual(result.secret_unchanged, 0)
self.assertEqual(result.skipped_new_keys, 0)
self.assertEqual(result.not_imported, 0)
@@ -122,10 +122,10 @@ class ImportTestCase(GpgHomeTestCase):
None, gpgme.IMPORT_NEW))
self.assertEqual(result.imports[1],
('E79A842DA34A1CA383F64A1546BB55F0885C65A4',
- None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET))
+ None, gpgme.IMPORT_SIG))
self.assertEqual(result.imports[2],
('E79A842DA34A1CA383F64A1546BB55F0885C65A4',
- None, gpgme.IMPORT_SIG))
+ None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET))
self.assertEqual(result.imports[3],
('93C2240D6B8AA10AB28F701D2CF46B7FC97E6B0F',
None, gpgme.IMPORT_NEW))

View File

@@ -0,0 +1,52 @@
From ba0dc8273e4f83bcd2d43baa5910aae34b93048c Mon Sep 17 00:00:00 2001
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Date: Mon, 1 Feb 2016 19:25:12 -0500
Subject: [PATCH] passphrase_cb is deprecated
https://bugs.gnupg.org/gnupg/issue767 indicates that
gpgme_set_passphrase_cb is a deprecated corner of the API and that
developers using gpgme should really rely on the gpg-agent to handle
this stuff. This should actually simplify things for most
installations -- just strip out all passphrase handling from your
application entirely, relying on gpg to figure out how to find the
agent, and relying on the agent figuring out how to prompt the user
(if necessary).
However, if a developer really wants to use the passphrase callback
approach, they'll have to use loopback pinentry. This sets up the
test suite to be able to make those tests.
Upstream-Status: Backport
Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
---
tests/util.py | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/tests/util.py b/tests/util.py
index cd803c2..86892ca 100644
--- a/tests/util.py
+++ b/tests/util.py
@@ -28,7 +28,9 @@ keydir = os.path.join(os.path.dirname(__file__), 'keys')
class GpgHomeTestCase(unittest.TestCase):
- gpg_conf_contents = ''
+ gpg_conf_contents = 'pinentry-mode loopback'
+ gpg_agent_conf_contents = 'allow-loopback-pinentry'
+
import_keys = []
def keyfile(self, key):
@@ -41,6 +43,10 @@ class GpgHomeTestCase(unittest.TestCase):
fp.write(self.gpg_conf_contents.encode('UTF-8'))
fp.close()
+ fp = open(os.path.join(self._gpghome, 'gpg-agent.conf'), 'wb')
+ fp.write(self.gpg_agent_conf_contents.encode('UTF-8'))
+ fp.close()
+
# import requested keys into the keyring
ctx = gpgme.Context()
for key in self.import_keys:

View File

@@ -0,0 +1,30 @@
From 579b5930e15de8855bf63b3c20b6c3aaf894c3eb Mon Sep 17 00:00:00 2001
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Date: Mon, 1 Feb 2016 19:27:59 -0500
Subject: [PATCH] handle generic error when no passphrase callback present
apparently gpg 2.1 returns ERR_GENERAL right now if the pinentry was
in loopback mode and no passphrase callback was supplied. Earlier
versions supplied ERR_BAD_PASSPHRASE.
Upstream-Status: Backport
Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
---
tests/test_passphrase.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/test_passphrase.py b/tests/test_passphrase.py
index 0a235e9..35b3c59 100644
--- a/tests/test_passphrase.py
+++ b/tests/test_passphrase.py
@@ -41,7 +41,7 @@ class PassphraseTestCase(GpgHomeTestCase):
new_sigs = ctx.sign(plaintext, signature, gpgme.SIG_MODE_CLEAR)
except gpgme.GpgmeError as exc:
self.assertEqual(exc.args[0], gpgme.ERR_SOURCE_GPGME)
- self.assertEqual(exc.args[1], gpgme.ERR_BAD_PASSPHRASE)
+ self.assertEqual(exc.args[1], gpgme.ERR_GENERAL)
else:
self.fail('gpgme.GpgmeError not raised')

View File

@@ -0,0 +1,3 @@
#!/bin/sh
GPG_AGENT_INFO= python test_all.py -v 2>&1 | sed -e '/\.\.\. ok/ s/^/PASS: /g' -e '/\.\.\. [ERROR|FAIL]/ s/^/FAIL: /g' -e '/\.\.\. skipped/ s/^/SKIP: /g' -e 's/ \.\.\. ok//g' -e 's/ \.\.\. ERROR//g' -e 's/ \.\.\. FAIL//g' -e 's/ \.\.\. skipped//g'

View File

@@ -0,0 +1,15 @@
Upstream-Status: Pending
Index: Pyrex-0.9.8.4/Pyrex/Distutils/extension.py
===================================================================
--- Pyrex-0.9.8.4.orig/Pyrex/Distutils/extension.py
+++ Pyrex-0.9.8.4/Pyrex/Distutils/extension.py
@@ -15,7 +15,7 @@ except ImportError:
warnings = None
class Extension(_Extension.Extension):
- _Extension.Extension.__doc__ + \
+ _Extension.Extension.__doc__ or "" + \
"""pyrex_include_dirs : [string]
list of directories to search for Pyrex header files (.pxd) (in
Unix form for portability)

View File

@@ -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"

View File

@@ -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] = "3e531c91860a81f885f7e6e97d219ae9772cb899580084788935dad7d9742ef0"
inherit pypi setuptools3
RDEPENDS:${PN} += "\
${PYTHON_PN}-pprint \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -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 \
"

View File

@@ -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 \
"

View File

@@ -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"

View File

@@ -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 \
"

View File

@@ -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 \
"

View File

@@ -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} += "\
${PYTHON_PN}-core \
${PYTHON_PN}-pyserial \
"

View File

@@ -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 \
"

View File

@@ -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] = "457eafbdc0769d855c2c92cbafe6b7f319f916c80cf4ed02b8f394f38b51b89d"
PYPI_PACKAGE = "alembic"
RDEPENDS:${PN} += "\
${PYTHON_PN}-dateutil \
${PYTHON_PN}-editor \
${PYTHON_PN}-mako \
${PYTHON_PN}-sqlalchemy \
${PYTHON_PN}-misc \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -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 \
"

View File

@@ -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}}'

View File

@@ -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"

View File

@@ -0,0 +1,11 @@
SUMMARY = "ANTLR runtime for Python"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://PKG-INFO;md5=ab3c64dc056e158882a9a6b35a2f4a6e"
SRC_URI[sha256sum] = "0a8b82f55032734f43ed6b60b8a48c25754721a75cd714eb1fe9ce6ed418b361"
PYPI_PACKAGE = "antlr4-python3-runtime"
inherit pypi python_setuptools_build_meta
BBCLASSEXTEND = "nativesdk native"

View File

@@ -0,0 +1,29 @@
From 4fb61d7c621599b0db9c2c45f4243f07936c5953 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 13 Oct 2021 08:20:00 -0700
Subject: [PATCH] setup.py: Do not use 2to3
This helps compiling with setuptools 0.58+
and it seems to compile fine with python3
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
setup.py | 2 --
1 file changed, 2 deletions(-)
diff --git a/setup.py b/setup.py
index 9fe4902..f2098e1 100644
--- a/setup.py
+++ b/setup.py
@@ -2,8 +2,6 @@ import os
import sys
extra = {}
-if sys.version_info >= (3, 0):
- extra.update(use_2to3=True)
try:
from setuptools import setup, find_packages
--
2.33.0

View File

@@ -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}}'

View File

@@ -0,0 +1,3 @@
#!/bin/sh
pytest | sed -e 's/\[100%\]//g' | sed -e 's/\.\.F/: FAIL/g' | sed -e 's/\.\.\./: PASS/g'

View File

@@ -0,0 +1,21 @@
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/
}

View File

@@ -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"

View File

@@ -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] = "fe3ce77125f434a0dd1bffe5f4643e64126d5731ce8d173d36f62fa43d6eb6f7"
PYPI_PACKAGE = "argcomplete"
inherit pypi setuptools3
RDEPENDS:${PN} += "\
${PYTHON_PN}-core \
${PYTHON_PN}-io \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -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"

View File

@@ -0,0 +1,14 @@
SUMMARY = "Pattern matching and various utilities for file systems paths."
LICENSE = "LGPL-2.0-only"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=cede70b648dcc81baf5b431d38905bad"
SRC_URI[sha256sum] = "e9535b8c84dc9571a48999094fda7f33e63c3f1b74f3e5f3ac0105a58405bb65"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
${PYTHON_PN}-logging \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -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] = "d6b03839019bb8a68785f9292ee6a36b1954eb84b925b84a6b8a5e1e26d3ed3d"
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"

View File

@@ -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

View File

@@ -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}}'

View File

@@ -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] = "9567dfe7bd8d3c8c892227827c41cce860b368104c3431da67a0c5a65a949506"
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"

View File

@@ -0,0 +1,3 @@
#!/bin/sh
pytest --automake

View File

@@ -0,0 +1,32 @@
# 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-core python3-fields"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -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

View File

@@ -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"

View File

@@ -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] = "af4e0aff46e2868218502789898269ed95b663fba49e65d91c1e09c966266c34"
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 \
"

View File

@@ -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"

View File

@@ -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 \
"

View File

@@ -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 \
"

View File

@@ -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] = "da812bf2be6a76aac6670b766eec4564d9484da6595d3ce1f9bba8ba78c30445"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
python3-asyncio \
python3-core \
python3-ctypes \
python3-io \
"

View File

@@ -0,0 +1,11 @@
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
SRC_URI[md5sum] = "60153055e76ceaacdfbaeafb03d61dd9"
SRC_URI[sha256sum] = "fe3ceb2ba5f541330c07ca1bd7ae792468d625bad1acf5354a3a7a0b9fd87521"
RDEPENDS:${PN} += "python3-asyncio python3-pygobject"

View File

@@ -0,0 +1,9 @@
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

View File

@@ -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

View File

@@ -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] = "c5ef8ca7422015a1af774a883b8aef73d4954c9fcd182c9b5244e08e973f7c3a"
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"

View File

@@ -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 \
"

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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}}'

View File

@@ -0,0 +1,13 @@
SUMMARY = "Security oriented static analyser for python code."
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
SRC_URI[sha256sum] = "2d63a8c573417bae338962d4b9b06fbc6080f74ecd955a092849e1e65c717bd2"
DEPENDS = "python3-pbr-native python3-git python3-pbr python3-pyyaml python3-six python3-stevedore"
inherit setuptools3 pypi
RDEPENDS:${PN} += "python3-modules python3-git python3-pbr python3-pyyaml python3-six python3-stevedore"
BBCLASSEXTEND = "native"

View File

@@ -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"

View File

@@ -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 \
"

View File

@@ -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

View File

@@ -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}}'

View File

@@ -0,0 +1,24 @@
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}-ptest += " \
${PYTHON_PN}-pytest \
${PYTHON_PN}-requests \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
}

View File

@@ -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"

View File

@@ -0,0 +1,17 @@
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-core"

View File

@@ -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] = "f71256a32609b036adad932e1228b66a6b4e2cae6be397e588ddc0babd9a78b9"
inherit setuptools3 pypi
BBCLASSEXTEND = "native nativesdk"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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}}'

View File

@@ -0,0 +1,18 @@
DESCRIPTION = "Fast, simple object-to-object and broadcast signaling."
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=42cd19c88fc13d1307a4efd64ee90e4e"
SRC_URI[sha256sum] = "923e5e2f69c155f2cc42dafbbd70e16e3fde24d2d4aa2ab72fbe386238892462"
inherit pypi setuptools3 ptest
SRC_URI += "file://run-ptest"
RDEPENDS:${PN}-ptest += " \
${PYTHON_PN}-pytest \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
}

View File

@@ -0,0 +1,13 @@
SUMMARY = "Define boolean algebras, create and parse boolean expressions and create custom boolean DSL"
HOMEPAGE = "https://github.com/bastikr/boolean.py"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d118b5feceee598ebeca76e13395c2bd"
SRC_URI[sha256sum] = "17b9a181630e43dde1851d42bef546d616d5d9b4480357514597e78b203d06e4"
PYPI_PACKAGE = "boolean.py"
inherit pypi setuptools3
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,18 @@
SUMMARY = "Brotli compression format"
HOMEPAGE = "https://pypi.org/project/Brotli/"
SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=941ee9cd1609382f946352712a319b4b"
PYPI_PACKAGE = "Brotli"
PYPI_PACKAGE_EXT = "zip"
SRC_URI[sha256sum] = "4d1b810aa0ed773f81dceda2cc7b403d01057458730e309856356d4ef4188438"
inherit pypi setuptools3
RDEPENDS:${PN} = "\
${PYTHON_PN}-cffi \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,29 @@
SUMMARY = "httplib2 caching for requests"
HOMEPAGE = "https://pypi.org/project/CacheControl/"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=12;endline=12;md5=942a721dac34d073453642ffe5fcf546"
# On PyPi, this is "CacheControl", rather than "cachecontrol", so we need to
# override PYPI_PACKAGE so fetch succeeds.
PYPI_PACKAGE = "CacheControl"
SRC_URI[sha256sum] = "9c2e5208ea76ebd9921176569743ddf6d7f3bb4188dbf61806f0f8fc48ecad38"
inherit pypi setuptools3
RDEPENDS:${PN} += "\
python3-crypt \
python3-datetime \
python3-email \
python3-lockfile \
python3-json \
python3-logging \
python3-msgpack \
python3-netclient \
python3-pickle \
python3-requests \
python3-urllib3 \
python3-mmap \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,12 @@
SUMMARY = "A decorator for caching properties in classes."
DESCRIPTION = "Makes caching of time or computational expensive properties quick and easy."
HOMEPAGE = "https://pypi.org/project/cached-property/"
SECTION = "devel/python"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=db7ff60c4e14f58534201242803d8abc"
SRC_URI[sha256sum] = "9fa5755838eecbb2d234c3aa390bd80fbd3ac6b6869109bfc1b499f7bd89a130"
inherit pypi setuptools3
BBCLASSEXTEND = "native"

View File

@@ -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}}'

View File

@@ -0,0 +1,32 @@
SUMMARY = "Extensible memoizing collections and decorators"
HOMEPAGE = "https://github.com/tkem/cachetools"
DESCRIPTION = "This module provides various memoizing \
collections and decorators, including variants of the \
Python 3 Standard Library @lru_cache function decorator."
SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1ec55353c80c662e4255f8889a0ca558"
inherit pypi python_setuptools_build_meta ptest
SRC_URI += " \
file://run-ptest \
"
RDEPENDS:${PN} += " \
${PYTHON_PN}-math \
"
RDEPENDS:${PN}-ptest += " \
${PYTHON_PN}-pytest \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
}
SRC_URI[sha256sum] = "13dfddc7b8df938c21a940dfa6557ce6e94a2f1cdfa58eb90c805721d58f2c14"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,27 @@
SUMMARY = "Controller Area Network (CAN) interface module for Python"
SECTION = "devel/python"
LICENSE = "LGPL-3.0-only"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e6a600fd5e1d9cbde2d983680233ad02"
SRC_URI[sha256sum] = "3f2b6b0dc5f459591d171ee0c0136dce79acedc2740ce695024aa3444e911bb9"
PYPI_PACKAGE="python-can"
inherit pypi setuptools3
RDEPENDS:${PN}:class-target += "\
${PYTHON_PN}-aenum \
${PYTHON_PN}-ctypes \
${PYTHON_PN}-codecs \
${PYTHON_PN}-compression \
${PYTHON_PN}-fcntl \
${PYTHON_PN}-logging \
${PYTHON_PN}-misc \
${PYTHON_PN}-netserver \
${PYTHON_PN}-sqlite3 \
${PYTHON_PN}-wrapt \
${PYTHON_PN}-pkg-resources \
${PYTHON_PN}-typing-extensions \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,22 @@
DESCRIPTION = "CAN BUS tools in Python 3."
HOMEPAGE = "https://github.com/eerimoq/cantools"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd"
SRC_URI[sha256sum] = "93bfe6f4bd652f369763ea9162b027a62f424a8400f2423d41137918ce68c68e"
PYPI_PACKAGE = "cantools"
inherit pypi setuptools3
RDEPENDS:${PN} += "\
${PYTHON_PN}-can \
${PYTHON_PN}-bitstruct \
${PYTHON_PN}-core \
${PYTHON_PN}-textparser \
${PYTHON_PN}-typing-extensions \
${PYTHON_PN}-diskcache \
${PYTHON_PN}-asyncio \
"
CLEANBROKEN = "1"

View File

@@ -0,0 +1,28 @@
SUMMARY = "DataStax Python Driver for Apache Cassandra"
DESCRIPTION = "A modern, feature-rich and highly-tunable Python client \
library for Apache Cassandra (1.2+) and DataStax Enterprise (3.1+) using \
exclusively Cassandra's binary protocol and Cassandra Query Language v3."
HOMEPAGE = "https://github.com/datastax/python-driver"
SECTION = "devel/python"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
SRCNAME = "cassandra-driver"
SRC_URI[sha256sum] = "425338478c14324704f6973451f3c54f7ffa65b49be045ad1de19628ab6e9492"
inherit pypi setuptools3
RDEPENDS:${PN} += "\
${PYTHON_PN}-cython \
${PYTHON_PN}-geomet \
${PYTHON_PN}-json \
${PYTHON_PN}-misc \
${PYTHON_PN}-multiprocessing \
${PYTHON_PN}-numbers \
${PYTHON_PN}-six \
libevent \
"
DEPENDS += "\
${PYTHON_PN}-cython \
"

View File

@@ -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}}'

View File

@@ -0,0 +1,31 @@
DESCRIPTION = "An implementation of RFC 7049 - Concise Binary Object Representation (CBOR)."
DEPENDS +="${PYTHON_PN}-setuptools-scm-native"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
SRC_URI[sha256sum] = "b893500db0fe033e570c3adc956af6eefc57e280026bd2d86fd53da9f1e594d7"
inherit pypi python_setuptools_build_meta ptest
DEPENDS += "python3-setuptools-scm-native"
SRC_URI += " \
file://run-ptest \
"
RDEPENDS:${PN}-ptest += " \
${PYTHON_PN}-pytest \
${PYTHON_PN}-unixadmin \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
}
RDEPENDS:${PN} += " \
${PYTHON_PN}-datetime \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,12 @@
SUMMARY = "Universal character encoding detector"
HOMEPAGE = "https://github.com/PyYoshi/cChardet"
LICENSE = "MPL-1.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=6ecda54f6f525388d71d6b3cd92f7474"
SRC_URI[sha256sum] = "c428b6336545053c2589f6caf24ea32276c6664cb86db817e03a94c60afa0eaf"
inherit pypi setuptools3
BBCLASSEXTEND = "native nativesdk"
DEPENDS += "python3-cython-native"

View File

@@ -0,0 +1,13 @@
SUMMARY = "Lightweight, extensible schema and data validation tool for Python dictionaries."
HOMEPAGE = "http://docs.python-cerberus.org/"
SECTION = "devel/python"
LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://LICENSE;md5=48f8e9432d0dac5e0e7a18211a0bacdb"
RDEPENDS:${PN} += "python3-setuptools"
# The PyPI package uses a capital letter so we have to specify this explicitly
PYPI_PACKAGE = "Cerberus"
inherit pypi setuptools3
SRC_URI[sha256sum] = "d1b21b3954b2498d9a79edf16b3170a3ac1021df88d197dc2ce5928ba519237c"

View File

@@ -0,0 +1,15 @@
SUMMARY = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
HOMEPAGE = "https://github.com/ousret/charset_normalizer"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=0974a390827087287db39928f7c524b5"
SRC_URI[sha256sum] = "34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
${PYTHON_PN}-core \
${PYTHON_PN}-logging \
${PYTHON_PN}-codecs \
${PYTHON_PN}-json \
"

View File

@@ -0,0 +1,14 @@
SUMMARY = "Python template engine and code generation tool"
HOMEPAGE = "https://cheetahtemplate.org/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=15e13a4ed0e5880e3e55ec88b0921181"
PYPI_PACKAGE = "Cheetah3"
inherit pypi setuptools3
RDEPENDS:${PN} = "python3-pickle python3-pprint"
RDEPENDS:${PN}:class-native = ""
BBCLASSEXTEND = "native nativesdk"
SRC_URI[sha256sum] = "58b5d84e5fbff6cf8e117414b3ea49ef51654c02ee887d155113c5b91d761967"

View File

@@ -0,0 +1,10 @@
SUMMARY = "REPL plugin for Click"
HOMEPAGE = "https://github.com/untitaker/click-repl"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=fee2943fdd4d8afbac9ccc1c8ac137d5"
SRC_URI[sha256sum] = "cd12f68d745bf6151210790540b4cb064c7b13e571bc64b6957d98d120dacfd8"
inherit pypi setuptools3
RDEPENDS:${PN} = "${PYTHON_PN}-click ${PYTHON_PN}-prompt-toolkit"

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