From 69721092c033f1c69060d2a5ae865f72a862e583 Mon Sep 17 00:00:00 2001 From: Andrew Geissler Date: Fri, 23 Jul 2021 12:57:00 -0400 Subject: meta-openembedded: subtree update:2449e5f07a..8fbcfb9f02 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adrian Zaharia (1): ntp: fix ntpdate to wait for subprocesses Akifumi Chikazawa (1): openvpn: add CVE-2020-7224 and CVE-2020-27569 to allowlist Andrea Adami (3): initramfs-kexecboot-image: support cases where machines override IMAGE_FSTYPES initramfs-debug-image: support cases where machines override IMAGE_FSTYPES rapidjson: remove stale LIB_INSTALL_DIR Andreas Müller (50): poppler: upgrade 21.05.0 -> 21.06.0 dbus-broker: upgrade 28 -> 29 libmbim: upgrade 1.24.6 -> 1.24.8 icewm: upgrade 2.3.3 -> 2.3.4 poppler: upgrade 21.06.0 -> 21.06.1 gnome-disk-utility: upgrade 3.36.3 -> 40.1 gnome-font-viewer: upgrade 3.34.0 -> 40.0 pipewire: upgrade 0.3.24 -> 0.3.29 libqmi: upgrade 1.28.4 -> 1.28.6 ttf-noto-emoji: upgrade 20190815 -> 20200916 remmina: upgrade 1.4.17 -> 1.4.18 metacity: upgrade 3.36.1 -> 3.40.0 gnome-flashback: upgrade 3.36.3 -> 3.40.0 gthumb: initial add 3.10.3 atkmm: upgrade 2.28.0 -> 2.28.2 atkmm: build with meson dconf: upgrade 0.38.0 -> 0.40.0 evolution-data-server: upgrade 3.40.1 -> 3.40.2 file-roller: upgrade 3.38.1 -> 3.40.0 glibmm: upgrade 2.62.0 -> 2.66.1 / build with meson / cleanup recipe gmime: upgrade 3.2.6 -> 3.2.7 gnome-autoar; upgrade 0.3.2 -> 0.3.3 gnome-keyring: upgrade 3.36.0 -> 40.0 gnome-online-accounts: upgrade 3.36.0 -> 3.40.0 gnome-terminal: upgrade 3.36.2 -> 3.40.2 gspell: upgrade 1.8.4 -> 1.9.1 gtkmm3: upgrade 3.24.3 -> 3.24.5 gtksourceview4: upgrade 4.6.1 -> 4.8.1 gupnp: upgrade 1.2.6 -> 1.2.7 gvfs: upgrade 1.44.1 -> 1.48.1 libgdata: upgrade 0.17.13 -> 0.18.1 libmediaart 0.7.0: remove libmediaart-2.0: upgrade 1.9.4 -> 1.9.5 / merge inc file / build with meson libsigc++-2.0: upgrade 2.10.6 -> 2.10.7 nautilus: upgrade 40.1 -> 40.2 pangomm: upgrade 2.42.1 -> 2.46.1 / build with meson yelp-xsl: upgrade 3.36.0 -> 4.02 yelp-tools: upgrade 3.32.2 -> 40.0 yelp: upgrade 3.36.0 -> 40.2 modemmanager: upgrade 1.16.4 -> 1.16.6 xfce4-settings: 4.16.1 upgrade 4.16.2 blueman: upgrade 2.1.4 -> 2.2.1 pipewire: upgrade 0.3.30 -> 0-3-31 cmark: upgrade 0.29.0 -> 0.30.0 networkmanager: upgrade 1.30.4 -> 1.32.2 ristretto: upgrade 0.10.0 -> 0.11.0 libgusb: upgrade 0.3.6 -> 0.3.7 poppler: upgrade 21.06.1 -> 21.07.0 gegl: Disable pango on native build to fix gimp build segfaults gimp: remove --disable-vector-icons Bartosz Golaszewski (13): libgpiod: coding style fixes libgpiod: list all packages in a single assignment libgpiod: fix RRECOMMENDS for python bindings libgpiod: correctly split output files into packages libgpiod: add RDEPENDS for tests libgpiod: redirect stdout from the ptest executable to a file libgpiod: ptest: run all test-suites if possible libgpiod: ptest: warn if the gpio-mockup kernel module is not selected libgpiod: ptest: add kernel-modules to RRECOMMENDS libgpiod: ptest: only rrecommend a single module that we need libgpiod: add the python test-suite to the ptest package libgpiod: update my email address python3-joblib: new package Ben Horgan (1): cpputest: Add initial recipe. Version 4.0. Carlos Rafael Giani (2): pipewire: Add filter-chain files to modules-filter-chain package pipewire: Upgrade to 0.3.30 Changqing Li (1): mousepad: fix warning during postinst Chen Qi (1): minifi-cpp: set CLEANBROKEN to 1 Daiane Angolini (1): wireguard-module: Stop overriding modules_install in the recipe Daniel Klauer (1): spidev-test: Update common-licenses reference David Sterling (1): can-isotp: Upgrade to latest on master Ed Tanous (1): Use the built-in options for removing pack tools Geoff Parker (1): cifs-utils: set ROOTSBINDIR to /usr/sbin if DISTRO_FEATURES has usrmerge Gianfranco (2): vboxguestdrivers: add a fix for build failure with kernel 5.13 dlt-daemon: update from 2.18.6 to 2.18.7 Hongxu Jia (1): debootstrap: fix runtime failure on nativesdk Joshua Watt (1): gnome: gnome-shell: Move gsettings to their own package Kai Kang (4): python3-m2crypto: fix word size for qemuppc64 little endian python3-m2crypto: avoid host contamination for swig bats: fix qa issue when multilib eanbled mariadb: fix failures to start install_db.service Khem Raj (57): glog: Upgrade to 0.5.0 mbedtls: Upgrade to 2.26.0 mbedtls: Add packageconfig for warning-as-errors memcached: upgrade to 1.6.9 indent: Remove dead code using count_parens function glm: Fix additional clang warnings tbb: Fix warnings with clang libwebsockets: Update to latest on v4.2-stable packagegroup-meta-oe: Add libparse-yapp-perl netplan: Fix a warning with clang python3-yappi: Fix patching errors packagegroup-meta-oe: Add zsync-curl klibc: Add clang's -rtlib to known options libpfm4: Upgrade to 4.11.0 ltrace: Remove unused static function flashrom: Fix build with clang mongodb: Enable wiredtiger only on aarch64/x86_64 hosts mariadb: Fix build with clang/musl c-ares: Upgrade to 1.17.1 release nodejs: Update to 14.17.1 rocksdb: Upgrade to 6.20.3 rocksdb: Implement toku_time_now function for rv32/rv64 rocksdb: Fix build with ppc64/musl rocksdb: Implement timer for mips rocksdb: Implement timer for armv6+ rocksdb: Fix build with gcc on rv32 and mips libzip: Upgrade to 1.8.0 czmq: Inherit pkgconfig czmq: Add libmicrohttpd feature via packageconfig czmq: Use Cmake knobs to enable/disable designed packageconfigs czmq: Add nss packageconfig meta-python: Add python3-fastjsonschema and its dependencies packagegroup-meta-python: Add newly added recipes python3-process-tests: Add recipe python3-aspectlib: Add ptests python3-execnet: Add ptests python3-py-cpuinfo: Add ptests libc-bench: Do not override ldflags in makefile mpich: Add libgcc to ldflags on x86/glibc mpd: Update to 0.22.9 imlib2: Use propert git SHA in SRCREV suitesparse: Update to 5.10.1 packagegroup-meta-oe: Add libyang sysdig: Disable JIT on ppc64 portaudio-v19: Use GNUInstallDirs to make it portable keepalived: Upgrade to 2.2.2 suitesparse: Fix LIC_FILES_CHKSUM xscreensaver: Update to 6.01 ltrace: Fix mips build with kernels 5.13+ python3-pyusb: Add missing runtime dependency on libusb1 can-isotp: Ignore in world builds postfix: Upgrade to 3.6.1 packagegroup-meta-oe: Add new package cpputest apitrace: Update to latest trunk fatresize: Disable building documentation files layers: Fix git send-email instructions in README autofs: Upgrade to 5.1.7 Leon Anavi (61): python3-oauthlib: Upgrade 3.1.0 -> 3.1.1 python3-django: Upgrade 3.2.3 -> 3.2.4 python3-sqlalchemy: Upgrade 1.4.15 -> 1.4.17 python3-aiohue: Upgrade 2.5.0 -> 2.5.1 python3-typeguard: Upgrade 2.12.0 -> 2.12.1 python3-cbor2: Upgrade 5.3.0 -> 5.4.0 python3-ipython: Upgrade 7.24.0 -> 7.24.1 python3-pkgconfig: Upgrade 1.5.2 -> 1.5.4 python3-humanize: Upgrade 3.6.0 -> 3.7.1 python3-fasteners: Upgrade 0.16 -> 0.16.1 python3-pythonping: Upgrade 1.0.16 -> 1.1.0 python3-bitarray: Upgrade 2.1.0 -> 2.1.2 python3-coloredlogs: Upgrade 15.0 -> 15.0.1 python3-pysonos: Upgrade 0.0.50 -> 0.0.51 python3-dill: Upgrade 0.3.3 -> 0.3.4 python3-humanfriendly: Upgrade 9.1 -> 9.2 python3-zeroconf: Add recipe python3-pychromecast: Upgrade 9.1.2 -> 9.2.0 python3-ifaddr: Fix RDEPENDS python3-bitarray: Upgrade 2.1.2 -> 2.1.3 python3-astroid: Upgrade 2.5.7 -> 2.5.8 python3-license-expression: Upgrade 1.2 -> 21.6.14 python3-humanize: Upgrade 3.7.1 -> 3.9.0 python3-ruamel-yaml: Upgrade 0.17.7 -> 0.17.9 python3-cmd2: Upgrade 1.5.0 -> 2.1.1 python3-fasteners: Upgrade 0.16.1 -> 0.16.3 python3-elementpath: Upgrade 2.2.2 -> 2.2.3 python3-prompt-toolkit: Upgrade 3.0.18 -> 3.0.19 python3-mypy: Upgrade 0.812 -> 0.902 python3-send2trash: Upgrade 1.5.0 -> 1.7.1 python3-pandas: Upgrade 1.2.4 -> 1.2.5 python3-mypy: Upgrade 0.902 -> 0.910 python3-astroid: Upgrade 2.5.8 -> 2.6.0 python3-tqdm: Upgrade 4.61.0 -> 4.61.1 python3-ruamel-yaml: Upgrade 0.17.9 -> 0.17.10 python3-httplib2: Fix runtime dependencies python3-google-api-core: Add recipe python3-google-auth: Add recipe python3-googleapis-common-protos: Add recipe python3-google-api-python-client: Upgrade 2.6.0 -> 2.10.0 python3-ipython: Upgrade 7.24.1 -> 7.25.0 python3-croniter: Upgrade 1.0.13 -> 1.0.15 python3-priority: Upgrade 1.3.0 -> 2.0.0 python3-astroid: Upgrade 2.6.0 -> 2.6.2 python3-watchdog: Upgrade 2.1.2 -> 2.1.3 python3-humanize: Upgrade 3.9.0 -> 3.10.0 python3-pillow: Upgrade 8.2.0 -> 8.3.1 python3-bitarray: Upgrade 2.1.3 -> 2.2.1 python3-cmd2: Upgrade 2.1.1 -> 2.1.2 python3-pandas: Upgrade 1.2.5 -> 1.3.0 python3-texttable: Upgrade 1.6.3 -> 1.6.4 python3-dateutil: Upgrade 2.8.1 -> 2.8.2 python3-requests: Upgrade 2.25.1 -> 2.26.0 python3-websocket-client: Upgrade 1.0.1 -> 1.1.0 python3-pysonos: Upgrade 0.0.51 -> 0.0.53 python3-bitarray: Upgrade 2.2.1 -> 2.2.2 python3-pyusb: Upgrade 1.2.0 -> 1.2.1 python3-zeroconf: Upgrade 0.31.0 -> 0.33.1 python3-yamlloader: Upgrade 1.0.0 -> 1.1.0 python3-astroid: Upgrade 2.6.2 -> 2.6.5 python3-pkgconfig: Upgrade 1.5.4 -> 1.5.5 Luan Rafael Carneiro (1): libwebsockets: Update 4.2.0 -> 4.2.1 Luca Boccassi (2): dbus-broker: remove deprecated linux-4-17 option dbus-broker: enforce required versions of libselinux and libaudit Marek Vasut (1): nss: Fix build on Centos 7 Martin Jansa (1): rygel: require gobject-introspection-data in DISTRO_FEATURES Masaki Ambai (1): nss: add CVE-2006-5201 to allowlist Oleksandr Kravchuk (1): iwd: update to 1.15 Olivier Georget (1): libpfm4 4.10.1 : enable arm64 host platform Ovidiu Panait (1): libeigen: update LICENSE information Pascal Bach (1): python3-thrift: support native recipe Persian Prince (1): samba: Don't guess dirs for perllocal.pod removing Peter Bergin (4): linuxptp: use install from makefile and install more apps linuxptp: add homepage linuxptp: ship example configurations in separate package hiredis: add cmake config file for pkgconfig Peter Kjellerstedt (3): net-snmp: A little clean up net-snmp: Support building for native cryptsetup: Only recommend kernel modules when building for target Philip Balister (1): fftw: Update recipe to 3.3.9. Pierre-Jean Texier (5): libtinyxml2: upgrade 8.1.0 -> 9.0.0 sshfs-fuse: upgrade 3.7.1 -> 3.7.2 monit: upgrade 5.27.2 -> 5.28.0 spitools: upgrade 0.8.7 -> 1.0.0 linuxptp: fix upstream version check Ross Burton (1): zsync-curl: add recipe Sam Van Den Berge (1): libiio: fix installing libiio when python3 bindings are enabled Sekine Shigeki (2): add CVE-2011-2411 to allowlist ntp: add CVE-2016-9312 to allowlist Signed-off-by: Bartosz Golaszewski (1): Revert "libgpiod: ptest: warn if the gpio-mockup kernel module is not selected" Tim Orling (8): libcgi-perl: upgrade 4.51 -> 4.53 libcrypt-openssl-guess-perl: upgrade 0.12 -> 0.13 libextutils-cppguess-perl: upgrade 0.21 -> 0.23 libio-socket-ssl-perl: upgrade 2.068 -> 2.071 libmoo-perl: upgrade 2.004000 -> 2.005004 libnet-dns-perl: upgrade 1.26 -> 1.31 libtest-warnings-perl: upgrade 0.028 -> 0.030 logcheck: upgrade 1.3.20 -> 1.3.23 Tony Tascioglu (2): libyang: create recipe for libyang redis: upgrade to 6.2.4 Trevor Gamblin (9): libnftnl: upgrade 1.1.9 -> 1.2.0 nftables: upgrade 0.9.8 -> 0.9.9 python3-yarl: backport fix for test_url_query test python3-yappi: fix ptests python3-django: upgrade 2.2.23 -> 2.2.24 python3-django: upgrade 3.2.4 -> 3.2.5 python3-geomet: add recipe python3-cassandra-driver: add geomet to RDEPENDS, remove DISTUTILS options python3-geomet: Add missing RDEPENDS; add to packagegroup-meta-python Yi Zhao (14): libldb: upgrade 1.5.8 -> 2.3.0 samba: upgrade 4.10.18 -> 4.14.4 samba: update smb.conf libparse-yapp-perl: add recipe dhcp-relay: update bundled bind to 9.11.32 dhcp-relay: disable backtrace in bundled bind dhcp-relay: update 4.4.2 -> 4.4.2-P1 packagegroup-meta-networking: add dhcp-relay samba: disable check fcntl RW_HINTS when configure samba: upgrade 4.14.4 -> 4.14.5 minifi-cpp: set correct python processor directory in configure file samba: fix shebang for pidl samba: add missing runtime dependency for pidl audit: upgrade 3.0.1 -> 3.0.2 Zoltán Böszörményi (2): mariadb: Use qemu to run cross-compiled binaries mariadb: Upgrade to 10.5.11 hayashi.satoshi@fujitsu.com (1): dracut: add CVE-2010-4176 to allowlist ito-yuichi@fujitsu.com (2): cyrus-sasl: add CVE-2020-8032 to allowlist dovecot: add CVE-2016-4983 to allowlist massimo toscanelli (1): sysbench: fix memory test wangmy (8): samba: Solve the dependency problem when installing Samba fatresize: upgrade 1.0.2 -> 1.1.0 xfsprogs: upgrade 5.10.0 -> 5.12.0 ctags: upgrade 5.9.20210627.0 -> 5.9.20210711.0 icewm: upgrade 2.3.4 -> 2.6.0 yelp: upgrade 40.2 -> 40.3 live555: upgrade 20210406 -> 20210710 modemmanager: upgrade 1.16.6 -> 1.16.8 zangrc (49): python3-idna: upgrade 3.1 -> 3.2 netplan: upgrade 0.101 -> 0.102 wireshark: upgrade 3.4.5 -> 3.4.6 tracker: upgrade 3.0.4 -> 3.1.1 tracker-miners: upgrade 3.0.5 -> 3.1.1 rasdaemon: upgrade 0.6.6 -> 0.6.7 speedtest-cli: upgrade 2.1.2 -> 2.1.3 abseil-cpp: upgrade 20210324 -> 20210324.2 cryptsetup: upgrade 2.3.5 -> 2.3.6 ctags: upgrade 5.9.20210502.0 -> 5.9.20210606.0 opencl-clhpp: upgrade 2.0.13 -> 2.0.14 protobuf: upgrade 3.17.0 -> 3.17.3 toybox: upgrade 0.8.4 -> 0.8.5 fuse3: upgrade 3.10.3 -> 3.10.4 evince: upgrade 40.1 -> 40.2 mosquitto: upgrade 2.0.10 -> 2.0.11 ctags: upgrade 5.9.20210606.0 -> 20210613.0 fsverity-utils: upgrade 1.3 -> 1.4 googletest: upgrade 1.10.0 -> 1.11.0 mg: upgrade 20210314 -> 20210609 nano: upgrade 5.7 -> 5.8 openvpn: upgrade 2.5.2 -> 2.5.3 snort: upgrade 2.9.17.1 -> 2.9.18 function2: upgrade 4.1.0 -> 4.2.0 python3-configargparse: upgrade 1.4.1 -> 1.5 python3-grpcio-tools: upgrade 1.37.0 -> 1.38.1 python3-h5py: upgrade 3.2.1 -> 3.3.0 python3-isort: upgrade 5.8.0 -> 5.9.1 can-utils: upgrade 2020.12.0 -> 2021.06.0 ctags: upgrade 5.9.20210620.0 -> 5.9.20210627.0 python3-gast: upgrade 0.4.0 -> 0.5.0 python3-grpcio: upgrade 1.38.0 -> 1.38.1 python3-haversine: upgrade 2.3.0 -> 2.3.1 python3-m2crypto: upgrade 0.37.1 -> 0.38.0 python3-pyrsistent: upgrade 0.17.3 -> 0.18.0 babl: upgrade 0.1.86 -> 0.1.88 python3-pyusb: upgrade 1.1.1 -> 1.2.0 python3-google-api-python-client: upgrade 2.10.0 -> 2.12.0 firewalld: upgrade 0.9.3 -> 0.9.4 strongswan: upgrade 5.9.2 -> 5.9.3 opencl-clhpp: upgrade 2.0.14 -> 2.0.15 python3-cffi: upgrade 1.14.5 -> 1.14.6 python3-configargparse: upgrade 1.5 -> 1.5.1 python3-cryptography-vectors: upgrade 3.4.6 -> 3.4.7 python3-flask-migrate: upgrade 3.0.0 -> 3.0.1 python3-flask-socketio: upgrade 5.0.3 -> 5.1.0 python3-isort: upgrade 5.9.1 -> 5.9.2 python3-networkx: upgrade 2.5.1 -> 2.6.1 python3-gnupg: upgrade 0.4.6 -> 0.4.7 zhengruoqin (30): opensaf: upgrade 5.21.03 -> 5.21.06 fio: upgrade 3.26 -> 3.27 gensio: upgrade 2.2.5 -> 2.2.7 memtester: upgrade 4.5.0 -> 4.5.1 graphene: upgrade 1.10.2 -> 1.10.6 iozone3: upgrade 490 -> 492 net-snmp: upgrade 5.9 -> 5.9.1 rsnapshot: upgrade 1.4.3 -> 1.4.4 rsyslog: upgrade 8.2104.0 -> 8.2106.0 python3-absl: upgrade 0.12.0 -> 0.13.0 ctags: upgrade 5.9.20210613.0 -> 5.9.20210620.0 fwts: upgrade 21.03.00 -> 21.06.00 grpc: upgrade 1.38.0 -> 1.38.1 libconfig: upgrade 1.7.2 -> 1.7.3 satyr: upgrade 0.37 -> 0.38 libnet-telnet-perl: upgrade 3.04 -> 3.05 python3-scrypt: upgrade 0.8.17 -> 0.8.18 python3-urllib3: upgrade 1.26.5 -> 1.26.6 python3-sqlalchemy: upgrade 1.4.17 -> 1.4.20 python3-qrcode: upgrade 6.1 -> 7.1 python3-regex: upgrade 2021.4.4 -> 2021.7.6 python3-sentry-sdk: upgrade 1.1.0 -> 1.2.0 python3-tqdm: upgrade 4.61.1 -> 4.61.2 python3-xlsxwriter: upgrade 1.4.3 -> 1.4.4 ostree: upgrade 2021.2 -> 2021.3 span-lite: upgrade 0.9.2 -> 0.10.0 python3-pymisp: upgrade 2.4.143 -> 2.4.144 python3-protobuf: upgrade 3.17.0 -> 3.17.3 python3-pulsectl: upgrade 21.5.17 -> 21.5.18 python3-pytun: upgrade 2.3.0 -> 2.4.1 Signed-off-by: Andrew Geissler Change-Id: Ie45184e6f308aa2fc98ee6edf4a3ca1c4afbb5b4 --- meta-openembedded/meta-python/README | 5 +- .../python-priority/python3-priority_1.3.0.bb | 10 - .../python-priority/python3-priority_2.0.0.bb | 9 + .../python-thrift/python3-thrift_0.13.0.bb | 2 + .../python3-pytun/python3-pytun_2.3.0.bb | 10 - .../python3-pytun/python3-pytun_2.4.1.bb | 9 + .../packagegroups/packagegroup-meta-python.bb | 10 + .../recipes-devtools/python/python3-absl_0.12.0.bb | 14 - .../recipes-devtools/python/python3-absl_0.13.0.bb | 14 + .../python/python3-aiohue_2.5.0.bb | 11 - .../python/python3-aiohue_2.5.1.bb | 11 + ...-Remove-tornado-6-test-constraint.-Ref-15.patch | 45 + .../python/python3-aspectlib/run-ptest | 3 + .../python/python3-aspectlib_1.5.2.bb | 29 + .../python/python3-astroid_2.5.7.bb | 32 - .../python/python3-astroid_2.6.5.bb | 32 + .../python/python3-bitarray_2.1.0.bb | 10 - .../python/python3-bitarray_2.2.2.bb | 10 + .../python/python3-cassandra-driver_3.25.0.bb | 8 +- .../recipes-devtools/python/python3-cbor2_5.3.0.bb | 29 - .../recipes-devtools/python/python3-cbor2_5.4.0.bb | 29 + .../recipes-devtools/python/python3-cffi_1.14.5.bb | 18 - .../recipes-devtools/python/python3-cffi_1.14.6.bb | 18 + .../recipes-devtools/python/python3-cmd2_1.5.0.bb | 19 - .../recipes-devtools/python/python3-cmd2_2.1.2.bb | 22 + .../python/python3-coloredlogs_15.0.1.bb | 23 + .../python/python3-coloredlogs_15.0.bb | 23 - .../python/python3-configargparse_1.4.1.bb | 20 - .../python/python3-configargparse_1.5.1.bb | 21 + .../python/python3-croniter_1.0.13.bb | 12 - .../python/python3-croniter_1.0.15.bb | 12 + .../python/python3-cryptography-vectors_3.4.6.bb | 19 - .../python/python3-cryptography-vectors_3.4.7.bb | 19 + .../python/python3-dateutil_2.8.1.bb | 25 - .../python/python3-dateutil_2.8.2.bb | 24 + .../recipes-devtools/python/python3-dill_0.3.3.bb | 11 - .../recipes-devtools/python/python3-dill_0.3.4.bb | 14 + .../python/python3-django_2.2.23.bb | 9 - .../python/python3-django_2.2.24.bb | 9 + .../python/python3-django_3.2.3.bb | 13 - .../python/python3-django_3.2.5.bb | 13 + .../python/python3-elementpath_2.2.2.bb | 11 - .../python/python3-elementpath_2.2.3.bb | 15 + .../python/python3-execnet/run-ptest | 3 + .../python/python3-execnet_1.9.0.bb | 28 + .../python/python3-fasteners_0.16.3.bb | 13 + .../python/python3-fasteners_0.16.bb | 8 - .../python/python3-fastjsonschema/run-ptest | 3 + .../python/python3-fastjsonschema_2.15.1.bb | 38 + .../python/python3-fields_5.0.0.bb | 15 + .../python/python3-flask-migrate_3.0.0.bb | 15 - .../python/python3-flask-migrate_3.0.1.bb | 15 + .../python/python3-flask-socketio_5.0.3.bb | 17 - .../python/python3-flask-socketio_5.1.0.bb | 17 + .../recipes-devtools/python/python3-gast_0.4.0.bb | 12 - .../recipes-devtools/python/python3-gast_0.5.0.bb | 11 + .../python/python3-geomet_0.3.0.bb | 25 + .../recipes-devtools/python/python3-gnupg_0.4.6.bb | 11 - .../recipes-devtools/python/python3-gnupg_0.4.7.bb | 14 + .../python/python3-google-api-core_1.30.0.bb | 26 + .../python3-google-api-python-client_2.12.0.bb | 20 + .../python3-google-api-python-client_2.6.0.bb | 9 - .../python/python3-google-auth_1.32.0.bb | 27 + .../python3-googleapis-common-protos_1.53.0.bb | 14 + .../python/python3-grpcio-tools_1.37.0.bb | 22 - .../python/python3-grpcio-tools_1.38.1.bb | 22 + .../python/python3-grpcio_1.38.0.bb | 47 - .../python/python3-grpcio_1.38.1.bb | 47 + .../recipes-devtools/python/python3-h5py_3.2.1.bb | 31 - .../recipes-devtools/python/python3-h5py_3.3.0.bb | 31 + ...1-setup.py-Correct-the-license-assignment.patch | 32 - .../python/python3-haversine_2.3.0.bb | 14 - .../python/python3-haversine_2.3.1.bb | 11 + .../python/python3-httplib2_0.19.1.bb | 6 + .../python/python3-humanfriendly_9.1.bb | 24 - .../python/python3-humanfriendly_9.2.bb | 24 + .../python/python3-humanize_3.10.0.bb | 21 + .../python/python3-humanize_3.6.0.bb | 20 - .../recipes-devtools/python/python3-idna_3.1.bb | 19 - .../recipes-devtools/python/python3-idna_3.2.bb | 19 + .../python/python3-ifaddr_0.1.7.bb | 4 + .../python/python3-ipython_7.24.0.bb | 28 - .../python/python3-ipython_7.25.0.bb | 28 + .../recipes-devtools/python/python3-isort_5.8.0.bb | 16 - .../recipes-devtools/python/python3-isort_5.9.2.bb | 20 + .../python/python3-joblib_1.0.1.bb | 17 + .../python/python3-license-expression_1.2.bb | 29 - .../python/python3-license-expression_21.6.14.bb | 33 + ...llow-verify_cb_-to-be-called-with-ok-True.patch | 47 - ...of-RSA_SSLV23_PADDING-has-been-deprecated.patch | 29 - .../avoid-host-contamination.patch | 23 + .../python3-m2crypto/cross-compile-platform.patch | 4 +- .../python/python3-m2crypto_0.37.1.bb | 44 - .../python/python3-m2crypto_0.38.0.bb | 46 + .../recipes-devtools/python/python3-mypy_0.812.bb | 18 - .../recipes-devtools/python/python3-mypy_0.910.bb | 23 + .../python/python3-networkx_2.5.1.bb | 12 - .../python/python3-networkx_2.6.1.bb | 19 + .../python/python3-oauthlib_3.1.0.bb | 23 - .../python/python3-oauthlib_3.1.1.bb | 22 + .../python/python3-pandas_1.2.4.bb | 24 - .../python/python3-pandas_1.3.0.bb | 26 + .../python/python3-pillow_8.2.0.bb | 37 - .../python/python3-pillow_8.3.1.bb | 37 + .../python/python3-pkgconfig_1.5.2.bb | 16 - .../python/python3-pkgconfig_1.5.5.bb | 16 + .../python/python3-process-tests_2.1.2.bb | 15 + .../python/python3-prompt-toolkit_3.0.18.bb | 23 - .../python/python3-prompt-toolkit_3.0.19.bb | 24 + .../python/python3-protobuf_3.17.0.bb | 39 - .../python/python3-protobuf_3.17.3.bb | 39 + .../python/python3-pulsectl_21.5.17.bb | 13 - .../python/python3-pulsectl_21.5.18.bb | 13 + .../python/python3-py-cpuinfo/run-ptest | 3 + .../python/python3-py-cpuinfo_8.0.0.bb | 27 + .../python/python3-pychromecast_9.1.2.bb | 10 - .../python/python3-pychromecast_9.2.0.bb | 18 + .../python/python3-pymisp_2.4.143.bb | 24 - .../python/python3-pymisp_2.4.144.bb | 24 + .../python/python3-pyrsistent_0.17.3.bb | 15 - .../python/python3-pyrsistent_0.18.0.bb | 14 + .../python/python3-pysonos_0.0.50.bb | 15 - .../python/python3-pysonos_0.0.53.bb | 15 + .../python/python3-pytest-benchmark_3.4.1.bb | 15 + .../python/python3-pytest-cache_1.0.bb | 15 + .../python/python3-pythonping_1.0.16.bb | 12 - .../python/python3-pythonping_1.1.0.bb | 11 + .../recipes-devtools/python/python3-pyusb_1.1.1.bb | 12 - .../recipes-devtools/python/python3-pyusb_1.2.1.bb | 18 + .../recipes-devtools/python/python3-qrcode_6.1.bb | 11 - .../recipes-devtools/python/python3-qrcode_7.1.bb | 11 + .../python/python3-regex_2021.4.4.bb | 10 - .../python/python3-regex_2021.7.6.bb | 14 + .../setup.py-Support-idna-version-3.1.patch | 40 - .../python/python3-requests_2.25.1.bb | 27 - .../python/python3-requests_2.26.0.bb | 25 + .../python/python3-ruamel-yaml_0.17.10.bb | 21 + .../python/python3-ruamel-yaml_0.17.7.bb | 19 - .../python/python3-scrypt_0.8.17.bb | 23 - .../python/python3-scrypt_0.8.18.bb | 27 + .../python/python3-sentry-sdk_1.1.0.bb | 14 - .../python/python3-sentry-sdk_1.2.0.bb | 14 + .../python/python3-sqlalchemy_1.4.15.bb | 21 - .../python/python3-sqlalchemy_1.4.20.bb | 21 + .../python/python3-texttable_1.6.3.bb | 11 - .../python/python3-texttable_1.6.4.bb | 10 + .../recipes-devtools/python/python3-tqdm_4.61.0.bb | 14 - .../recipes-devtools/python/python3-tqdm_4.61.2.bb | 19 + .../python/python3-typeguard_2.12.0.bb | 30 - .../python/python3-typeguard_2.12.1.bb | 30 + .../python/python3-urllib3_1.26.5.bb | 22 - .../python/python3-urllib3_1.26.6.bb | 22 + .../python/python3-watchdog_2.1.2.bb | 18 - .../python/python3-watchdog_2.1.3.bb | 18 + .../python/python3-websocket-client_1.0.1.bb | 16 - .../python/python3-websocket-client_1.1.0.bb | 16 + .../python/python3-xlsxwriter_1.4.3.bb | 21 - .../python/python3-xlsxwriter_1.4.4.bb | 21 + .../python/python3-yamlloader_1.0.0.bb | 12 - .../python/python3-yamlloader_1.1.0.bb | 12 + .../0001-Fix-imports-for-ptests.patch | 3905 ++++++++++++++++++++ .../recipes-devtools/python/python3-yappi_1.3.2.bb | 5 +- ...1-Drop-tests-for-semicolon-as-a-separator.patch | 45 + .../recipes-devtools/python/python3-yarl_1.6.3.bb | 1 + .../python/python3-zeroconf_0.33.1.bb | 13 + .../send2trash/python3-send2trash_1.5.0.bb | 9 - .../send2trash/python3-send2trash_1.7.1.bb | 9 + 167 files changed, 5672 insertions(+), 1393 deletions(-) delete mode 100644 meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_1.3.0.bb create mode 100644 meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_2.0.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-connectivity/python3-pytun/python3-pytun_2.3.0.bb create mode 100644 meta-openembedded/meta-python/recipes-connectivity/python3-pytun/python3-pytun_2.4.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.12.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.13.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_2.5.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_2.5.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib/0001-Remove-tornado-6-test-constraint.-Ref-15.patch create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib/run-ptest create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib_1.5.2.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.5.7.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.6.5.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.1.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.2.2.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.3.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.14.5.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.14.6.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_1.5.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.1.2.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.4.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.0.13.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.0.15.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_3.4.6.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_3.4.7.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.2.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-dill_0.3.3.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-dill_0.3.4.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.23.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.24.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.3.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.5.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.2.2.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.2.3.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-execnet/run-ptest create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-execnet_1.9.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.16.3.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.16.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema/run-ptest create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.15.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-fields_5.0.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_3.0.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_3.0.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.0.3.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-gast_0.4.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-gast_0.5.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-geomet_0.3.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.4.6.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.4.7.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_1.30.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.12.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.6.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_1.32.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.53.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.37.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.38.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.38.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.38.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.2.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.3.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-haversine/0001-setup.py-Correct-the-license-assignment.patch delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.3.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.3.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-humanfriendly_9.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-humanfriendly_9.2.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.10.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.6.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-idna_3.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-idna_3.2.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.24.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.25.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.8.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.9.2.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-joblib_1.0.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_1.2.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_21.6.14.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/0001-Allow-verify_cb_-to-be-called-with-ok-True.patch delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/0001-Use-of-RSA_SSLV23_PADDING-has-been-deprecated.patch create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/avoid-host-contamination.patch delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.37.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.38.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.812.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.910.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.5.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.6.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-oauthlib_3.1.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-oauthlib_3.1.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.2.4.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.3.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_8.2.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_8.3.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pkgconfig_1.5.2.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pkgconfig_1.5.5.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-process-tests_2.1.2.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.18.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.19.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.17.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.17.3.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pulsectl_21.5.17.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pulsectl_21.5.18.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-py-cpuinfo/run-ptest create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-py-cpuinfo_8.0.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.1.2.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.2.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.143.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.144.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.17.3.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.18.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pysonos_0.0.50.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pysonos_0.0.53.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-benchmark_3.4.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cache_1.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pythonping_1.0.16.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pythonping_1.1.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pyusb_1.1.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pyusb_1.2.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-qrcode_6.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-qrcode_7.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.4.4.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.7.6.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-requests/setup.py-Support-idna-version-3.1.patch delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.25.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.26.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.17.10.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.17.7.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.17.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.18.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.1.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.2.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.15.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.20.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-texttable_1.6.3.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-texttable_1.6.4.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.61.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.61.2.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.12.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.12.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.5.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.6.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.2.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.3.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.0.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.1.0.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_1.4.3.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_1.4.4.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-yamlloader_1.0.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-yamlloader_1.1.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-yappi/0001-Fix-imports-for-ptests.patch create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-yarl/0001-Drop-tests-for-semicolon-as-a-separator.patch create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.33.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-extended/send2trash/python3-send2trash_1.5.0.bb create mode 100644 meta-openembedded/meta-python/recipes-extended/send2trash/python3-send2trash_1.7.1.bb (limited to 'meta-openembedded/meta-python') diff --git a/meta-openembedded/meta-python/README b/meta-openembedded/meta-python/README index ca0a290d9..df6abe0e2 100644 --- a/meta-openembedded/meta-python/README +++ b/meta-openembedded/meta-python/README @@ -37,8 +37,8 @@ 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' +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 ------------------------- @@ -47,4 +47,3 @@ Layer Maintainers: Tim "moto-timo" Orling Derek Straka Trevor Gamblin - diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_1.3.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_1.3.0.bb deleted file mode 100644 index 5d84571f9..000000000 --- a/meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_1.3.0.bb +++ /dev/null @@ -1,10 +0,0 @@ -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[md5sum] = "4f1ff52f7fa448e9d9cb46337ae86d1e" -SRC_URI[sha256sum] = "6bc1961a6d7fcacbfc337769f1a382c8e746566aaa365e78047abe9f66b2ffbe" - -inherit pypi setuptools3 diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_2.0.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_2.0.0.bb new file mode 100644 index 000000000..93b694c8b --- /dev/null +++ b/meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_2.0.0.bb @@ -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 diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.13.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.13.0.bb index 80f1a5017..c17a602be 100644 --- a/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.13.0.bb +++ b/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.13.0.bb @@ -16,3 +16,5 @@ RDEPENDS_${PN} += "\ ${PYTHON_PN}-stringold \ ${PYTHON_PN}-threading \ " + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-connectivity/python3-pytun/python3-pytun_2.3.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python3-pytun/python3-pytun_2.3.0.bb deleted file mode 100644 index bc11d705f..000000000 --- a/meta-openembedded/meta-python/recipes-connectivity/python3-pytun/python3-pytun_2.3.0.bb +++ /dev/null @@ -1,10 +0,0 @@ -SUMMARY = "Python TUN/TAP tunnel module" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=13f7629e8e4989b66b4a913ab05a91de" - -SRC_URI[md5sum] = "adcaeea56d0ed06814487cdbde32d198" -SRC_URI[sha256sum] = "5ead86b3391acef239535ebcabeb04d2cdc6b40ab14580d28c6da193c2d1fe53" - -PYPI_PACKAGE = "python-pytun" - -inherit pypi setuptools3 diff --git a/meta-openembedded/meta-python/recipes-connectivity/python3-pytun/python3-pytun_2.4.1.bb b/meta-openembedded/meta-python/recipes-connectivity/python3-pytun/python3-pytun_2.4.1.bb new file mode 100644 index 000000000..08ec2cf67 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-connectivity/python3-pytun/python3-pytun_2.4.1.bb @@ -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 diff --git a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb index 9f3d48253..063b6e4f2 100644 --- a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb +++ b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb @@ -34,6 +34,7 @@ RDEPENDS_packagegroup-meta-python3 = "\ python3-arpeggio \ python3-asciitree \ python3-asn1crypto \ + python3-aspectlib \ python3-astor \ python3-astroid \ python3-asttokens \ @@ -114,10 +115,13 @@ RDEPENDS_packagegroup-meta-python3 = "\ python3-engineio \ python3-et-xmlfile \ python3-evdev \ + python3-execnet \ python3-fann2 \ python3-fasteners \ + python3-fastjsonschema \ python3-fastnumbers \ python3-feedformatter \ + python3-fields \ python3-flask \ python3-flask-babel \ python3-flask-bootstrap \ @@ -141,6 +145,7 @@ RDEPENDS_packagegroup-meta-python3 = "\ python3-future \ python3-gast \ python3-geojson \ + python3-geomet \ python3-gevent \ python3-gmpy2 \ python3-gmqtt \ @@ -192,6 +197,7 @@ RDEPENDS_packagegroup-meta-python3 = "\ python3-jdcal \ python3-jedi \ python3-jmespath \ + python3-joblib \ python3-jsmin \ python3-jsonpatch \ python3-jsonpath-rw \ @@ -274,12 +280,14 @@ RDEPENDS_packagegroup-meta-python3 = "\ python3-pretend \ python3-prettytable \ python3-priority \ + python3-process-tests \ python3-progress \ python3-prompt-toolkit \ python3-protobuf \ python3-psutil \ python3-ptyprocess \ python3-pulsectl \ + python3-py-cpuinfo \ python3-py-ubjson \ python3-pyalsaaudio \ python3-pyasn1 \ @@ -332,6 +340,8 @@ RDEPENDS_packagegroup-meta-python3 = "\ python3-pystache \ python3-pystemd \ python3-pytest-asyncio \ + python3-pytest-benchmark \ + python3-pytest-cache \ python3-pytest-helpers-namespace \ python3-pytest-html \ python3-pytest-metadata \ diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.12.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.12.0.bb deleted file mode 100644 index 2ecf10caa..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.12.0.bb +++ /dev/null @@ -1,14 +0,0 @@ -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[md5sum] = "cfc383e2c647698666a7c5d8ef83a675" -SRC_URI[sha256sum] = "b44f68984a5ceb2607d135a615999b93924c771238a63920d17d3387b0d229d5" - -PYPI_PACKAGE = "absl-py" - -inherit pypi setuptools3 - -BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.13.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.13.0.bb new file mode 100644 index 000000000..2ebd358e5 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.13.0.bb @@ -0,0 +1,14 @@ +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[md5sum] = "afb3ffb4b59d53575e8eb073c3a52803" +SRC_URI[sha256sum] = "6953272383486044699fd0e9f00aad167a27e08ce19aae66c6c4b10e7e767793" + +PYPI_PACKAGE = "absl-py" + +inherit pypi setuptools3 + +BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_2.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_2.5.0.bb deleted file mode 100644 index a29625acc..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_2.5.0.bb +++ /dev/null @@ -1,11 +0,0 @@ -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] = "e2ae49be45261283a899cc1b95786f07fe5076be9a311d250dbe2de1b8c38f0f" - -inherit pypi setuptools3 - -RDEPENDS_${PN} += "${PYTHON_PN}-aiohttp" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_2.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_2.5.1.bb new file mode 100644 index 000000000..4a203ccc6 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_2.5.1.bb @@ -0,0 +1,11 @@ +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] = "3ee8e857b07364516f8b9f0e5c52d4cd775036f3ace37c2769de1e8579f4dc07" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "${PYTHON_PN}-aiohttp" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib/0001-Remove-tornado-6-test-constraint.-Ref-15.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib/0001-Remove-tornado-6-test-constraint.-Ref-15.patch new file mode 100644 index 000000000..174f088e9 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib/0001-Remove-tornado-6-test-constraint.-Ref-15.patch @@ -0,0 +1,45 @@ +From d3ae6ac951cc5bbce29b9c987741e0a557c9b777 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ionel=20Cristian=20M=C4=83rie=C8=99?= +Date: Sun, 2 May 2021 09:50:43 +0300 +Subject: [PATCH] Remove tornado<6 test constraint. Ref #15. + +Upstream-Status: Backport [https://github.com/ionelmc/python-aspectlib/commit/7dccb198dfb426f529b81a28a755f3c02f8b50cb] +Signed-off-by: Khem Raj +--- + tests/test_integrations_py3.py | 5 ++++- + tox.ini | 3 ++- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/tests/test_integrations_py3.py b/tests/test_integrations_py3.py +index e025eac..596589d 100644 +--- a/tests/test_integrations_py3.py ++++ b/tests/test_integrations_py3.py +@@ -36,7 +36,10 @@ def test_decorate_tornado_coroutine(): + @gen.coroutine + @debug.log(print_to=buf, module=False, stacktrace=2, result_repr=repr) + def coro(): +- yield gen.Task(loop.add_timeout, timedelta(microseconds=10)) ++ if hasattr(gen, 'Task'): ++ yield gen.Task(loop.add_timeout, timedelta(microseconds=10)) ++ else: ++ yield gen.sleep(0.01) + return "result" + + loop = ioloop.IOLoop.current() +diff --git a/tox.ini b/tox.ini +index 8c607de..08c31b3 100644 +--- a/tox.ini ++++ b/tox.ini +@@ -55,7 +55,8 @@ deps = + pytest-clarity + pytest-cov + pytest-travis-fold +- tornado<6.0 ++ six ++ tornado + commands = + {posargs:pytest --cov --cov-report=term-missing -vv --ignore=src} + +-- +2.32.0 + diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib/run-ptest new file mode 100644 index 000000000..b63c4de0d --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib/run-ptest @@ -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}}' diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib_1.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib_1.5.2.bb new file mode 100644 index 000000000..2dc57a6bb --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib_1.5.2.bb @@ -0,0 +1,29 @@ +# Copyright (C) 2021 Khem Raj +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "``aspectlib`` is an aspect-oriented programming, monkey-patch and decorators library. It is useful when changing" +HOMEPAGE = "https://github.com/ionelmc/python-aspectlib" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d58b3f20fd10347a9458b8a03793b62e" + +SRC_URI[sha256sum] = "d275ec82c4c2712e564bb760e4accff8f061f648e38774feabeb8b241cf3a4aa" + +inherit ptest pypi setuptools3 + +SRC_URI += "file://run-ptest \ + file://0001-Remove-tornado-6-test-constraint.-Ref-15.patch \ + " + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/tests + cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ +} + +RDEPENDS_${PN}-ptest += "\ + python3-tornado \ + python3-process-tests \ +" + +RDEPENDS_${PN} += "python3-core python3-fields" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.5.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.5.7.bb deleted file mode 100644 index c805dc4dc..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.5.7.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "An abstract syntax tree for Python with inference support." -HOMEPAGE = "https://pypi.python.org/pypi/astroid" -SECTION = "devel/python" -LICENSE = "LGPL-2.1" -LIC_FILES_CHKSUM = "file://LICENSE;md5=a70cf540abf41acb644ac3b621b2fad1" - -SRC_URI[sha256sum] = "d66a600e1602736a0f24f725a511b0e50d12eb18f54b31ec276d2c26a0a62c6a" - -inherit pypi setuptools3 - -DEPENDS += "${PYTHON_PN}-pytest-runner-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 \ -" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.6.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.6.5.bb new file mode 100644 index 000000000..513235bd8 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.6.5.bb @@ -0,0 +1,32 @@ +SUMMARY = "An abstract syntax tree for Python with inference support." +HOMEPAGE = "https://pypi.python.org/pypi/astroid" +SECTION = "devel/python" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a70cf540abf41acb644ac3b621b2fad1" + +SRC_URI[sha256sum] = "83e494b02d75d07d4e347b27c066fd791c0c74fc96c613d1ea3de0c82c48168f" + +inherit pypi setuptools3 + +DEPENDS += "${PYTHON_PN}-pytest-runner-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 \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.1.0.bb deleted file mode 100644 index 12de2c97a..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.1.0.bb +++ /dev/null @@ -1,10 +0,0 @@ -SUMMARY = "A high-level Python efficient arrays of booleans -- C extension" -HOMEPAGE = "https://github.com/ilanschnell/bitarray" -LICENSE = "PSF" -LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=2ad702cdcd49e8d2ac01d7e7d0810d2d" - -SRC_URI[sha256sum] = "97224a19325ecee49a3bf4df3ee0531d3af9cf288b67d089a7ef44a3c4ea3839" - -inherit setuptools3 pypi - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.2.2.bb new file mode 100644 index 000000000..01f474d0b --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.2.2.bb @@ -0,0 +1,10 @@ +SUMMARY = "A high-level Python efficient arrays of booleans -- C extension" +HOMEPAGE = "https://github.com/ilanschnell/bitarray" +LICENSE = "PSF" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=2ad702cdcd49e8d2ac01d7e7d0810d2d" + +SRC_URI[sha256sum] = "5ed37f0482199de5a3e096405a646ab3f45dd020d234c42539b3c11ea0e2278d" + +inherit setuptools3 pypi + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.25.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.25.0.bb index a1941bf3c..ad446d6ef 100644 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.25.0.bb +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.25.0.bb @@ -10,17 +10,11 @@ SRCNAME = "cassandra-driver" SRC_URI[sha256sum] = "8ad7d7c090eb1cac6110b3bfc1fd2d334ac62f415aac09350ebb8d241b7aa7ee" -DISTUTILS_BUILD_ARGS += " \ - --no-libev \ -" -DISTUTILS_INSTALL_ARGS += " \ - --no-libev \ -" - inherit pypi setuptools3 RDEPENDS_${PN} += "\ ${PYTHON_PN}-cython \ + ${PYTHON_PN}-geomet \ ${PYTHON_PN}-json \ ${PYTHON_PN}-misc \ ${PYTHON_PN}-multiprocessing \ diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.3.0.bb deleted file mode 100644 index 32d2016e5..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.3.0.bb +++ /dev/null @@ -1,29 +0,0 @@ -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] = "462b3604d9579458a79e6ca350943c49aabbc98c794c111a79b98720b9164336" - -inherit pypi setuptools3 ptest - -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" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.0.bb new file mode 100644 index 000000000..b791588b4 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.0.bb @@ -0,0 +1,29 @@ +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] = "a7926f7244b08c413f1a4fa71a81aa256771c75bdf1a4fd77308547a2d63dd48" + +inherit pypi setuptools3 ptest + +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" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.14.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.14.5.bb deleted file mode 100644 index 16928f0db..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.14.5.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Foreign Function Interface for Python calling C code" -HOMEPAGE = "http://cffi.readthedocs.org/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf" -DEPENDS += "libffi ${PYTHON_PN}-pycparser" - -SRC_URI[sha256sum] = "fd78e5fee591709f32ef6edb9a015b4aa1a5022598e36227500c8f4e02328d9c" - -inherit pypi setuptools3 - -RDEPENDS_${PN}_class-target = " \ - ${PYTHON_PN}-ctypes \ - ${PYTHON_PN}-io \ - ${PYTHON_PN}-pycparser \ - ${PYTHON_PN}-shell \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.14.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.14.6.bb new file mode 100644 index 000000000..bcd185d89 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.14.6.bb @@ -0,0 +1,18 @@ +SUMMARY = "Foreign Function Interface for Python calling C code" +HOMEPAGE = "http://cffi.readthedocs.org/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf" +DEPENDS += "libffi ${PYTHON_PN}-pycparser" + +SRC_URI[sha256sum] = "c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd" + +inherit pypi setuptools3 + +RDEPENDS_${PN}_class-target = " \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-pycparser \ + ${PYTHON_PN}-shell \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_1.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_1.5.0.bb deleted file mode 100644 index 18c7a6699..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_1.5.0.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "Extra features for standard library's cmd module" -HOMEPAGE = "https://github.com/python-cmd2/cmd2" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=9791cd24ca7d1807388ccd55cd066def" - -DEPENDS += "${PYTHON_PN}-setuptools-scm-native" - -SRC_URI[sha256sum] = "701a8c9975c4abc45e5d13906ab149f959f812869106347323a3f89ac0e82a62" - -inherit pypi setuptools3 - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-attrs \ - ${PYTHON_PN}-colorama \ - ${PYTHON_PN}-pyperclip \ - ${PYTHON_PN}-wcwidth \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.1.2.bb new file mode 100644 index 000000000..38f050a04 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.1.2.bb @@ -0,0 +1,22 @@ +SUMMARY = "Extra features for standard library's cmd module" +HOMEPAGE = "https://github.com/python-cmd2/cmd2" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4c527bcb481233ebcb803de975f42701" + +DEPENDS += "${PYTHON_PN}-setuptools-scm-native" + +SRC_URI[sha256sum] = "25dbb2e9847aaa686a8a21e84e3d101db8b79f5cb992e044fc54210ab8c0ad41" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-attrs \ + ${PYTHON_PN}-colorama \ + ${PYTHON_PN}-pyperclip \ + ${PYTHON_PN}-wcwidth \ + ${PYTHON_PN}-compression \ + ${PYTHON_PN}-pydoc \ + ${PYTHON_PN}-json \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb new file mode 100644 index 000000000..5de59d5b4 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "Colored terminal output for Python's logging module" +HOMEPAGE = "https://coloredlogs.readthedocs.io" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=764e737b117a38d773609885e8d04f0b" + +SRC_URI[sha256sum] = "7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0" + +inherit pypi setuptools3 + +do_compile_prepend() { + sed -ie "s/find_pth_directory(),/'',/g" ${S}/setup.py +} + +do_install_append() { + rm -rf ${D}${datadir} +} + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-humanfriendly \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.bb deleted file mode 100644 index daeda6b2e..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.bb +++ /dev/null @@ -1,23 +0,0 @@ -DESCRIPTION = "Colored terminal output for Python's logging module" -HOMEPAGE = "https://coloredlogs.readthedocs.io" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=764e737b117a38d773609885e8d04f0b" - -SRC_URI[sha256sum] = "5e78691e2673a8e294499e1832bb13efcfb44a86b92e18109fa18951093218ab" - -inherit pypi setuptools3 - -do_compile_prepend() { - sed -ie "s/find_pth_directory(),/'',/g" ${S}/setup.py -} - -do_install_append() { - rm -rf ${D}${datadir} -} - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-humanfriendly \ -" - -BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.4.1.bb deleted file mode 100644 index 0c851fef3..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.4.1.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "A drop-in replacement for argparse that allows options to also be set via config files and/or environment variables." -HOMEPAGE = "https://github.com/bw2/ConfigArgParse" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=da746463714cc35999ed9a42339f2943" - -SRC_URI[sha256sum] = "6df537158f28c5ef2e8a8146781833abbc6cb7fca81b1b55d18808ce3439235e" - -PYPI_PACKAGE = "ConfigArgParse" - -inherit pypi setuptools3 - -PACKAGECONFIG ?= "yaml" -PACKAGECONFIG[yaml] = ",,,${PYTHON_PN}-pyyaml" - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-core \ - ${PYTHON_PN}-shell \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.1.bb new file mode 100644 index 000000000..596d16fa4 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.1.bb @@ -0,0 +1,21 @@ +SUMMARY = "A drop-in replacement for argparse that allows options to also be set via config files and/or environment variables." +HOMEPAGE = "https://github.com/bw2/ConfigArgParse" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=da746463714cc35999ed9a42339f2943" + +SRC_URI[sha256sum] = "371f46577e76ec71a183b88378f36dd09f4b946f60fe60712f411b020f26b812" + +PYPI_PACKAGE = "ConfigArgParse" + +inherit pypi setuptools3 + +PACKAGECONFIG ?= "yaml" +PACKAGECONFIG[yaml] = ",,,${PYTHON_PN}-pyyaml" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-json \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.0.13.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.0.13.bb deleted file mode 100644 index c520fa715..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.0.13.bb +++ /dev/null @@ -1,12 +0,0 @@ -DESCRIPTION = "croniter provides iteration for datetime object with cron like format" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://docs/LICENSE;md5=b8ee59850b882cbf623188489ea748e2" - -PYPI_PACKAGE = "croniter" - -SRC_URI[sha256sum] = "57f36df4f5a1c31bbf50bbffa3551612c19f6156ab1e88e2e42342ccbb9f9b9a" - -inherit pypi setuptools3 - -RDEPENDS_${PN} += " python3-dateutil python3-natsort" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.0.15.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.0.15.bb new file mode 100644 index 000000000..1782391a6 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.0.15.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "croniter provides iteration for datetime object with cron like format" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://docs/LICENSE;md5=b8ee59850b882cbf623188489ea748e2" + +PYPI_PACKAGE = "croniter" + +SRC_URI[sha256sum] = "a70dfc9d52de9fc1a886128b9148c89dd9e76b67d55f46516ca94d2d73d58219" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += " python3-dateutil python3-natsort" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_3.4.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_3.4.6.bb deleted file mode 100644 index b5f34daef..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_3.4.6.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "Test vectors for the cryptography package." -HOMEPAGE = "https://cryptography.io/" -SECTION = "devel/python" -LICENSE = "Apache-2.0 | BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4" - -SRC_URI[sha256sum] = "e5f88a5fb03d60b4f20eed4920638b6a3ed32a363523a77086528d557a2c2da8" - -PYPI_PACKAGE = "cryptography_vectors" - -inherit pypi setuptools3 - -DEPENDS += " \ - ${PYTHON_PN}-cryptography \ -" - -BBCLASSEXTEND = "native nativesdk" - -UPSTREAM_CHECK_REGEX = "" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_3.4.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_3.4.7.bb new file mode 100644 index 000000000..565e223bf --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_3.4.7.bb @@ -0,0 +1,19 @@ +SUMMARY = "Test vectors for the cryptography package." +HOMEPAGE = "https://cryptography.io/" +SECTION = "devel/python" +LICENSE = "Apache-2.0 | BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4" + +SRC_URI[sha256sum] = "a7ac3aaa57514687696ad65f833e5e39b6fa3c5d41de2b8c938346ee119204c2" + +PYPI_PACKAGE = "cryptography_vectors" + +inherit pypi setuptools3 + +DEPENDS += " \ + ${PYTHON_PN}-cryptography \ +" + +BBCLASSEXTEND = "native nativesdk" + +UPSTREAM_CHECK_REGEX = "" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.1.bb deleted file mode 100644 index 5326924e6..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.1.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "Extensions to the standard Python datetime module" -DESCRIPTION = "The dateutil module provides powerful extensions to the datetime module available in the Python standard library." -HOMEPAGE = "https://dateutil.readthedocs.org" -LICENSE = "BSD-3-Clause & Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=e3155c7bdc71f66e02678411d2abf996" - -SRC_URI[md5sum] = "f2a1d4b680b297b367a974664ca3a4f6" -SRC_URI[sha256sum] = "73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c" - -PYPI_PACKAGE = "python-dateutil" -inherit pypi setuptools3 - -PACKAGES =+ "${PN}-zoneinfo" -FILES_${PN}-zoneinfo = "${libdir}/${PYTHON_DIR}/site-packages/dateutil/zoneinfo" - -DEPENDS += "${PYTHON_PN}-setuptools-scm-native" - -RDEPENDS_${PN} = "\ - ${PYTHON_PN}-datetime \ - ${PYTHON_PN}-numbers \ - ${PYTHON_PN}-six \ - ${PYTHON_PN}-stringold \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.2.bb new file mode 100644 index 000000000..a68a736a8 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.2.bb @@ -0,0 +1,24 @@ +SUMMARY = "Extensions to the standard Python datetime module" +DESCRIPTION = "The dateutil module provides powerful extensions to the datetime module available in the Python standard library." +HOMEPAGE = "https://dateutil.readthedocs.org" +LICENSE = "BSD-3-Clause & Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e3155c7bdc71f66e02678411d2abf996" + +SRC_URI[sha256sum] = "0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86" + +PYPI_PACKAGE = "python-dateutil" +inherit pypi setuptools3 + +PACKAGES =+ "${PN}-zoneinfo" +FILES_${PN}-zoneinfo = "${libdir}/${PYTHON_DIR}/site-packages/dateutil/zoneinfo" + +DEPENDS += "${PYTHON_PN}-setuptools-scm-native" + +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-stringold \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dill_0.3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dill_0.3.3.bb deleted file mode 100644 index bf26ba30b..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dill_0.3.3.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "Serialize all of python" -HOMEPAGE = "https://pypi.org/project/dill/" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=90fee9f98d11d59df3f8aa813ff9a3de" - -SRC_URI[md5sum] = "99c878e2e4e924f3234c0efcbcff6abf" -SRC_URI[sha256sum] = "efb7f6cb65dba7087c1e111bb5390291ba3616741f96840bfc75792a1a9b5ded" - -inherit pypi setuptools3 - -PYPI_PACKAGE_EXT = "zip" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dill_0.3.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dill_0.3.4.bb new file mode 100644 index 000000000..0634e17f5 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dill_0.3.4.bb @@ -0,0 +1,14 @@ +SUMMARY = "Serialize all of python" +HOMEPAGE = "https://pypi.org/project/dill/" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=41adceb584fdde8323ddf9ad23c07fe5" + +SRC_URI[sha256sum] = "9f9734205146b2b353ab3fec9af0070237b6ddae78452af83d2fca84d739e675" + +inherit pypi setuptools3 + +PYPI_PACKAGE_EXT = "zip" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-multiprocessing \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.23.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.23.bb deleted file mode 100644 index ab4b68fc8..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.23.bb +++ /dev/null @@ -1,9 +0,0 @@ -require python-django.inc -inherit setuptools3 - -SRC_URI[md5sum] = "d72405637143e201b745714e300bb546" -SRC_URI[sha256sum] = "12cfc045a4ccb2348719aaaa77b17e66a26bff9fc238b4c765a3e825ef92e414" - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-sqlparse \ -" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.24.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.24.bb new file mode 100644 index 000000000..964ca6ba0 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.24.bb @@ -0,0 +1,9 @@ +require python-django.inc +inherit setuptools3 + +SRC_URI[md5sum] = "ebf3bbb7716a7b11029e860475b9a122" +SRC_URI[sha256sum] = "3339ff0e03dee13045aef6ae7b523edff75b6d726adf7a7a48f53d5a501f7db7" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-sqlparse \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.3.bb deleted file mode 100644 index 7a9611ca1..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.3.bb +++ /dev/null @@ -1,13 +0,0 @@ -require python-django.inc -inherit setuptools3 - -SRC_URI[sha256sum] = "13ac78dbfd189532cad8f383a27e58e18b3d33f80009ceb476d7fcbfc5dcebd8" - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-sqlparse \ -" - -# Set DEFAULT_PREFERENCE so that the LTS version of django is built by -# default. To build the 3.x branch, -# PREFERRED_VERSION_python3-django = "3.2.2" can be added to local.conf -DEFAULT_PREFERENCE = "-1" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.5.bb new file mode 100644 index 000000000..5890c8541 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.5.bb @@ -0,0 +1,13 @@ +require python-django.inc +inherit setuptools3 + +SRC_URI[sha256sum] = "3da05fea54fdec2315b54a563d5b59f3b4e2b1e69c3a5841dda35019c01855cd" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-sqlparse \ +" + +# Set DEFAULT_PREFERENCE so that the LTS version of django is built by +# default. To build the 3.x branch, +# PREFERRED_VERSION_python3-django = "3.2.2" can be added to local.conf +DEFAULT_PREFERENCE = "-1" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.2.2.bb deleted file mode 100644 index c793592be..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.2.2.bb +++ /dev/null @@ -1,11 +0,0 @@ -DESCRIPTION = "Provide XPath 1.0 and 2.0 selectors for Python's ElementTree XML data structures, both for the standard ElementTree library and for the lxml.etree library." -HOMEPAGE = "https://github.com/sissaschool/elementpath" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5dbb7fb7d72da3921202dd7b995d3ecf" - -SRC_URI[sha256sum] = "68de07c1aec3b1d33126111252cc699600dd1e45802625344aa6eb9e680ef157" - -PYPI_PACKAGE = "elementpath" -inherit pypi setuptools3 - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.2.3.bb new file mode 100644 index 000000000..2d9c53172 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.2.3.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "Provide XPath 1.0 and 2.0 selectors for Python's ElementTree XML data structures, both for the standard ElementTree library and for the lxml.etree library." +HOMEPAGE = "https://github.com/sissaschool/elementpath" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5dbb7fb7d72da3921202dd7b995d3ecf" + +SRC_URI[sha256sum] = "60139b91ef9646e27381fd62b8c38f1fc8ebc78dc4bc231c08c51240062e58e6" + +PYPI_PACKAGE = "elementpath" +inherit pypi setuptools3 + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-xml \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-execnet/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-execnet/run-ptest new file mode 100644 index 000000000..b63c4de0d --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-execnet/run-ptest @@ -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}}' diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-execnet_1.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-execnet_1.9.0.bb new file mode 100644 index 000000000..a7b156535 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-execnet_1.9.0.bb @@ -0,0 +1,28 @@ +# Copyright (C) 2021 Khem Raj +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "execnet: rapid multi-Python deployment" +HOMEPAGE = "https://execnet.readthedocs.io/en/latest/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=772fcdaca14b378878d05c7d857e6c3e" + +DEPENDS += "python3-pip-native" + +SRC_URI += "file://run-ptest \ + " +SRC_URI[sha256sum] = "8f694f3ba9cc92cab508b152dcfe322153975c29bda272e2fd7f3f00f36e47c5" + +inherit ptest pypi setuptools3 + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/tests + cp -rf ${S}/testing/* ${D}${PTEST_PATH}/tests/ +} + +RDEPENDS_${PN}-ptest += "\ + python3-pytest \ +" + +RDEPENDS_${PN} += "python3-core python3-crypt python3-ctypes python3-fcntl python3-io python3-shell python3-threading" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.16.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.16.3.bb new file mode 100644 index 000000000..6f283a392 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.16.3.bb @@ -0,0 +1,13 @@ +SUMMARY = "A python package that provides useful locks." +HOMEPAGE = "https://github.com/harlowja/fasteners" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4476c4be31402271e101d9a4a3430d52" + +SRC_URI[sha256sum] = "b1ab4e5adfbc28681ce44b3024421c4f567e705cc3963c732bf1cba3348307de" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-fcntl \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.16.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.16.bb deleted file mode 100644 index eed8d2c95..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.16.bb +++ /dev/null @@ -1,8 +0,0 @@ -SUMMARY = "A python package that provides useful locks." -HOMEPAGE = "https://github.com/harlowja/fasteners" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=4476c4be31402271e101d9a4a3430d52" - -SRC_URI[sha256sum] = "c995d8c26b017c5d6a6de9ad29a0f9cdd57de61ae1113d28fac26622b06a0933" - -inherit pypi setuptools3 diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema/run-ptest new file mode 100644 index 000000000..b63c4de0d --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema/run-ptest @@ -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}}' diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.15.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.15.1.bb new file mode 100644 index 000000000..d901fcb2e --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.15.1.bb @@ -0,0 +1,38 @@ +# Copyright (C) 2021 Khem Raj +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Fastest Python implementation of JSON schema" +HOMEPAGE = "https://github.com/seznam/python-fastjsonschema" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=18950e8362b69c0c617b42b8bd8e7532" + +SRCREV = "1e214911fe83dbaeea3d50dfb3a539118de8a442" +PYPI_SRC_URI = "git://github.com/horejsek/python-fastjsonschema;protocol=https;branch=master" + +SRC_URI += "file://run-ptest" + +inherit ptest pypi setuptools3 + +S = "${WORKDIR}/git" + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/tests + cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ +} + +RDEPENDS_${PN}-ptest += "\ + python3-colorama \ + python3-jsonschema \ + python3-pylint \ + python3-pytest \ + python3-pytest-benchmark \ + python3-pytest-cache \ +" +RDEPENDS_${PN} += "\ + python3-core \ + python3-urllib3 \ + python3-numbers \ + python3-pickle \ + " + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fields_5.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-fields_5.0.0.bb new file mode 100644 index 000000000..9c22b920d --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-fields_5.0.0.bb @@ -0,0 +1,15 @@ +# Copyright (C) 2021 Khem Raj +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Container class boilerplate killer." +HOMEPAGE = "https://github.com/ionelmc/python-fields" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e32c6705498713d9c904a9f565953a2c" + +SRC_URI[sha256sum] = "31d4aa03d8d44e35df13c431de35136997f047a924a597d84f7bc209e1be5727" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "python3-core" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_3.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_3.0.0.bb deleted file mode 100644 index 8f84e0597..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_3.0.0.bb +++ /dev/null @@ -1,15 +0,0 @@ -DESCRIPTION = "SQLAlchemy database migrations for Flask applications using Alembic" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=3b69377f79f3f48c661701236d5a6a85" - -SRC_URI[sha256sum] = "a6607e66bf1d68489b2281ead5caa6fdf7a21b71984fae922ef5f915ac45bbcb" - -PYPI_PACKAGE = "Flask-Migrate" - -inherit pypi setuptools3 - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-flask-sqlalchemy \ - ${PYTHON_PN}-alembic \ - ${PYTHON_PN}-flask \ - " diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_3.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_3.0.1.bb new file mode 100644 index 000000000..77fd172bc --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_3.0.1.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "SQLAlchemy database migrations for Flask applications using Alembic" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b69377f79f3f48c661701236d5a6a85" + +SRC_URI[sha256sum] = "4d42e8f861d78cb6e9319afcba5bf76062e5efd7784184dd2a1cccd9de34a702" + +PYPI_PACKAGE = "Flask-Migrate" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-flask-sqlalchemy \ + ${PYTHON_PN}-alembic \ + ${PYTHON_PN}-flask \ + " diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.0.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.0.3.bb deleted file mode 100644 index 5def7621e..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.0.3.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Socket.IO integration for Flask applications" -HOMEPAGE = "https://github.com/miguelgrinberg/Flask-SocketIO/" -SECTION = "devel/python" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=38cc21254909604298ce763a6e4440a0" - -inherit pypi setuptools3 - -PYPI_PACKAGE = "Flask-SocketIO" - -SRC_URI[sha256sum] = "4fb968c43bc384f184cd1a25c1842297c2e3d6efc2f755a61be6d4406858220f" - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-flask \ - ${PYTHON_PN}-socketio \ - " diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.0.bb new file mode 100644 index 000000000..5a6b83bfe --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.0.bb @@ -0,0 +1,17 @@ +SUMMARY = "Socket.IO integration for Flask applications" +HOMEPAGE = "https://github.com/miguelgrinberg/Flask-SocketIO/" +SECTION = "devel/python" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=38cc21254909604298ce763a6e4440a0" + +inherit pypi setuptools3 + +PYPI_PACKAGE = "Flask-SocketIO" + +SRC_URI[sha256sum] = "b41b9f6fb0d7f3fcadd54c44653307a9b96e985c7da73f92779480248b5b6874" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-flask \ + ${PYTHON_PN}-socketio \ + " diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gast_0.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gast_0.4.0.bb deleted file mode 100644 index 7ef2eb468..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gast_0.4.0.bb +++ /dev/null @@ -1,12 +0,0 @@ -SUMMARY = "A generic AST to represent Python2 and Python3's Abstract Syntax Tree(AST)." -HOMEPAGE = "https://github.com/serge-sans-paille/gast" -SECTION = "devel/python" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=a3ad9b6802e713fc5e307e1230f1ea90" - -SRC_URI[md5sum] = "d1f258eb70bb916f8fe5535351d5ff05" -SRC_URI[sha256sum] = "40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1" - -inherit pypi setuptools3 - -BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gast_0.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gast_0.5.0.bb new file mode 100644 index 000000000..9908950dc --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gast_0.5.0.bb @@ -0,0 +1,11 @@ +SUMMARY = "A generic AST to represent Python2 and Python3's Abstract Syntax Tree(AST)." +HOMEPAGE = "https://github.com/serge-sans-paille/gast" +SECTION = "devel/python" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a3ad9b6802e713fc5e307e1230f1ea90" + +SRC_URI[sha256sum] = "8109cbe7aa0f7bf7e4348379da05b8137ea1f059f073332c3c1cedd57db8541f" + +inherit pypi setuptools3 + +BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-geomet_0.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-geomet_0.3.0.bb new file mode 100644 index 000000000..de05534b1 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-geomet_0.3.0.bb @@ -0,0 +1,25 @@ +SUMMARY = "Convert GeoJSON to WKT/WKB (Well-Known Text/Binary), and vice versa." +DESCRIPTION = "Convert GeoJSON to WKT/WKB (Well-Known Text/Binary), and vice versa." +HOMEPAGE = "https://github.com/geomet/geomet" +SECTION = "devel/python" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314" +SRCNAME = "geomet" + +SRC_URI[sha256sum] = "cb52411978ee01ff104ab48f108d7333b14423ae7a15a65fee25b7d29bda2e1b" + +S = "${WORKDIR}/git" +SRC_URI = "git://github.com/geomet/geomet.git;protocol=https;branch=release-${PV} \ + " +SRCREV = "73ec5ec96cca32f2e2461d3964fc3d4ab80248f9" + +inherit setuptools3 + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-click \ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-six \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.4.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.4.6.bb deleted file mode 100644 index ff0a91c6f..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.4.6.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "A wrapper for the Gnu Privacy Guard (GPG or GnuPG)" -SECTION = "devel/python" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b0b7ac63b60085b23fa9f7e1951daa1d" - -PYPI_PACKAGE = "python-gnupg" -SRC_URI[sha256sum] = "3aa0884b3bd414652c2385b9df39e7b87272c2eca1b8fcc3089bc9e58652019a" - -inherit pypi setuptools3 - -RDEPENDS_${PN} += "gnupg-gpg" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.4.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.4.7.bb new file mode 100644 index 000000000..cc441af0b --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.4.7.bb @@ -0,0 +1,14 @@ +SUMMARY = "A wrapper for the Gnu Privacy Guard (GPG or GnuPG)" +SECTION = "devel/python" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b0b7ac63b60085b23fa9f7e1951daa1d" + +PYPI_PACKAGE = "python-gnupg" +SRC_URI[sha256sum] = "2061f56b1942c29b92727bf9aecbd3cea3893acc9cccbdc7eb4604285efe4ac7" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += " \ + gnupg-gpg \ + python3-logging \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_1.30.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_1.30.0.bb new file mode 100644 index 000000000..08cc35d06 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_1.30.0.bb @@ -0,0 +1,26 @@ +DESCRIPTION = "Google API client core library" +HOMEPAGE = "https://github.com/googleapis/python-api-core" +AUTHOR = "Google LLC" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +inherit pypi setuptools3 + +SRC_URI[sha256sum] = "0724d354d394b3d763bc10dfee05807813c5210f0bd9b8e2ddf6b6925603411c" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-asyncio \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-math \ +" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-googleapis-common-protos \ + ${PYTHON_PN}-google-auth \ + ${PYTHON_PN}-grpcio \ + ${PYTHON_PN}-protobuf \ + ${PYTHON_PN}-pytz \ + ${PYTHON_PN}-requests \ + ${PYTHON_PN}-six \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.12.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.12.0.bb new file mode 100644 index 000000000..67d05b5dd --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.12.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "The Google API Client for Python is a client library for accessing the Plus, \ +Moderator, and many other Google APIs." +HOMEPAGE = "https://github.com/googleapis/google-api-python-client" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=94023d14f6b58272fd885e4e3f2f08b3" + +SRC_URI[sha256sum] = "a5d203241a93201a770c966f8eca39de7f88b28194f9d252065b18e83bd99c4b" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-httplib2 \ + ${PYTHON_PN}-uritemplate \ + ${PYTHON_PN}-google-api-core \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.6.0.bb deleted file mode 100644 index c6ae6e847..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.6.0.bb +++ /dev/null @@ -1,9 +0,0 @@ -SUMMARY = "The Google API Client for Python is a client library for accessing the Plus, \ -Moderator, and many other Google APIs." -HOMEPAGE = "https://github.com/googleapis/google-api-python-client" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=94023d14f6b58272fd885e4e3f2f08b3" - -SRC_URI[sha256sum] = "6a87f324334247bf7ba24406da586424b09e715d04336fb7cf45a402b80d38e8" - -inherit pypi setuptools3 diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_1.32.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_1.32.0.bb new file mode 100644 index 000000000..d492bbbcb --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_1.32.0.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "Google Authentication Library" +HOMEPAGE = "https://github.com/googleapis/google-auth-library-python" +AUTHOR = "Google Cloud Platform" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" + +inherit pypi setuptools3 + +SRC_URI[sha256sum] = "e34e5f5de5610b202f9b40ebd9f8b27571d5c5537db9afed3a72b2db5a345039" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-asyncio \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-numbers \ +" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-aiohttp \ + ${PYTHON_PN}-cachetools \ + ${PYTHON_PN}-pyasn1-modules \ + ${PYTHON_PN}-rsa \ + ${PYTHON_PN}-six \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.53.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.53.0.bb new file mode 100644 index 000000000..2c59ae86d --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.53.0.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Common protobufs used in Google APIs" +HOMEPAGE = "https://github.com/googleapis/python-api-common-protos" +AUTHOR = "Google LLC" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit pypi setuptools3 + +SRC_URI[sha256sum] = "a88ee8903aa0a81f6c3cec2d5cf62d3c8aa67c06439b0496b49048fb1854ebf4" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-grpcio \ + ${PYTHON_PN}-protobuf \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.37.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.37.0.bb deleted file mode 100644 index d1b934bd0..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.37.0.bb +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION = "Google gRPC tools" -HOMEPAGE = "http://www.grpc.io/" -SECTION = "devel/python" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=7145f7cdd263359b62d342a02f005515" - -inherit pypi setuptools3 - -DEPENDS += "${PYTHON_PN}-grpcio" - -SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch" - -SRC_URI[sha256sum] = "3ec510c1b6bfc32effc639acf9a055e72dab7a7b6757bf72f2132790d6a7cf1c" - -RDEPENDS_${PN} = "${PYTHON_PN}-grpcio" - -BBCLASSEXTEND = "native nativesdk" - -# Needs abseil-cpp which does not build for ppc64le/musl -COMPATIBLE_HOST_libc-musl_powerpc64le = "null" - diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.38.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.38.1.bb new file mode 100644 index 000000000..e6680e84b --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.38.1.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "Google gRPC tools" +HOMEPAGE = "http://www.grpc.io/" +SECTION = "devel/python" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=7145f7cdd263359b62d342a02f005515" + +inherit pypi setuptools3 + +DEPENDS += "${PYTHON_PN}-grpcio" + +SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch" + +SRC_URI[sha256sum] = "cd85f58038b92e1961f8127d79691e84e151390d35cae73c4c0cbe2042f76b77" + +RDEPENDS_${PN} = "${PYTHON_PN}-grpcio" + +BBCLASSEXTEND = "native nativesdk" + +# Needs abseil-cpp which does not build for ppc64le/musl +COMPATIBLE_HOST_libc-musl_powerpc64le = "null" + diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.38.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.38.0.bb deleted file mode 100644 index d9e00422b..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.38.0.bb +++ /dev/null @@ -1,47 +0,0 @@ -DESCRIPTION = "Google gRPC" -HOMEPAGE = "http://www.grpc.io/" -SECTION = "devel/python" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" - -DEPENDS += "${PYTHON_PN}-protobuf" - -SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch" -SRC_URI_append_class-target = " file://ppc-boringssl-support.patch \ - file://boring_ssl.patch \ - file://mips_bigendian.patch \ - file://0001-absl-always-use-asm-sgidefs.h.patch \ -" -SRC_URI[sha256sum] = "abbf9c8c3df4d5233d5888c6cfa85c1bb68a6923749bd4dd1abc6e1e93986f17" - -RDEPENDS_${PN} = "${PYTHON_PN}-protobuf \ - ${PYTHON_PN}-setuptools \ - ${PYTHON_PN}-six \ -" - -inherit setuptools3 -inherit pypi - -export GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY = "1" - -BORING_SSL_PLATFORM_arm = "linux-arm" -BORING_SSL_PLATFORM_x86-64 = "linux-x86_64" -BORING_SSL_PLATFORM ?= "unsupported" -export GRPC_BORING_SSL_PLATFORM = "${BORING_SSL_PLATFORM}" - -BORING_SSL_x86-64 = "1" -BORING_SSL_arm = "1" -BORING_SSL ?= "0" -export GRPC_BUILD_WITH_BORING_SSL_ASM = "${BORING_SSL}" - -GRPC_CFLAGS_append_toolchain-clang = " -fvisibility=hidden -fno-wrapv -fno-exceptions" -export GRPC_PYTHON_CFLAGS = "${GRPC_CFLAGS}" - -CLEANBROKEN = "1" - -BBCLASSEXTEND = "native nativesdk" - -CCACHE_DISABLE = "1" - -# needs vdso support -COMPATIBLE_HOST_libc-musl_powerpc64le = "null" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.38.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.38.1.bb new file mode 100644 index 000000000..3af033d96 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.38.1.bb @@ -0,0 +1,47 @@ +DESCRIPTION = "Google gRPC" +HOMEPAGE = "http://www.grpc.io/" +SECTION = "devel/python" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +DEPENDS += "${PYTHON_PN}-protobuf" + +SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch" +SRC_URI_append_class-target = " file://ppc-boringssl-support.patch \ + file://boring_ssl.patch \ + file://mips_bigendian.patch \ + file://0001-absl-always-use-asm-sgidefs.h.patch \ +" +SRC_URI[sha256sum] = "1f79d8a24261e3c12ec3a6c25945ff799ae09874fd24815bc17c2dc37715ef6c" + +RDEPENDS_${PN} = "${PYTHON_PN}-protobuf \ + ${PYTHON_PN}-setuptools \ + ${PYTHON_PN}-six \ +" + +inherit setuptools3 +inherit pypi + +export GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY = "1" + +BORING_SSL_PLATFORM_arm = "linux-arm" +BORING_SSL_PLATFORM_x86-64 = "linux-x86_64" +BORING_SSL_PLATFORM ?= "unsupported" +export GRPC_BORING_SSL_PLATFORM = "${BORING_SSL_PLATFORM}" + +BORING_SSL_x86-64 = "1" +BORING_SSL_arm = "1" +BORING_SSL ?= "0" +export GRPC_BUILD_WITH_BORING_SSL_ASM = "${BORING_SSL}" + +GRPC_CFLAGS_append_toolchain-clang = " -fvisibility=hidden -fno-wrapv -fno-exceptions" +export GRPC_PYTHON_CFLAGS = "${GRPC_CFLAGS}" + +CLEANBROKEN = "1" + +BBCLASSEXTEND = "native nativesdk" + +CCACHE_DISABLE = "1" + +# needs vdso support +COMPATIBLE_HOST_libc-musl_powerpc64le = "null" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.2.1.bb deleted file mode 100644 index 5faa0b808..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.2.1.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "Provides both a high- and low-level interface to the HDF5 library from Python." -HOMEPAGE = "https://www.h5py.org/" -SECTION = "devel/python" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=113251d71fb0384712c719b567261c5c" - -SRC_URI[sha256sum] = "89474be911bfcdb34cbf0d98b8ec48b578c27a89fdb1ae4ee7513f1ef8d9249e" - -SRC_URI_append = " \ - file://0001-setup_build.py-avoid-absolute-path.patch \ - file://0001-setup.py-Fix-numpy-version.patch \ - " - -inherit pypi setuptools3 - -BBCLASSEXTEND = "native" - -DEPENDS = "python3-pkgconfig-native \ - python3-cython-native \ - python3-numpy-native \ - python3-six-native \ - hdf5-native \ - python3 \ - hdf5 \ - " - -RDEPENDS_${PN} = "python3-numpy \ - python3-six \ - " - -export HDF5_VERSION="1.8.21" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.3.0.bb new file mode 100644 index 000000000..58498f89a --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.3.0.bb @@ -0,0 +1,31 @@ +SUMMARY = "Provides both a high- and low-level interface to the HDF5 library from Python." +HOMEPAGE = "https://www.h5py.org/" +SECTION = "devel/python" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=113251d71fb0384712c719b567261c5c" + +SRC_URI[sha256sum] = "e0dac887d779929778b3cfd13309a939359cc9e74756fc09af7c527a82797186" + +SRC_URI_append = " \ + file://0001-setup_build.py-avoid-absolute-path.patch \ + file://0001-setup.py-Fix-numpy-version.patch \ + " + +inherit pypi setuptools3 + +BBCLASSEXTEND = "native" + +DEPENDS = "python3-pkgconfig-native \ + python3-cython-native \ + python3-numpy-native \ + python3-six-native \ + hdf5-native \ + python3 \ + hdf5 \ + " + +RDEPENDS_${PN} = "python3-numpy \ + python3-six \ + " + +export HDF5_VERSION="1.8.21" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-haversine/0001-setup.py-Correct-the-license-assignment.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-haversine/0001-setup.py-Correct-the-license-assignment.patch deleted file mode 100644 index bb5955a44..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-haversine/0001-setup.py-Correct-the-license-assignment.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 56b421a18ef8acb41ab9e4bde7e1f5452ec67da9 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 17 May 2021 22:17:07 -0700 -Subject: [PATCH] setup.py: Correct the license assignment - -latest python/2.9 + setuptools bail out otherwise - -lines = header.split('\n') -| AttributeError: 'list' object has no attribute 'split' - -Upstream-Status: Submitted [https://github.com/mapado/haversine/pull/38] -Signed-off-by: Khem Raj ---- - setup.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/setup.py b/setup.py -index 549436d..9e7fb00 100755 ---- a/setup.py -+++ b/setup.py -@@ -15,7 +15,7 @@ setup( - maintainer_email='julien.deniau@mapado.com', - url='https://github.com/mapado/haversine', - packages=['haversine'], -- license=['MIT'], -+ license='MIT', - classifiers=[ - 'Development Status :: 4 - Beta', - 'Intended Audience :: Developers', --- -2.31.1 - diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.3.0.bb deleted file mode 100644 index 624d30ca0..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.3.0.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "Calculate the distance between 2 points on Earth" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" - -SRC_URI += "file://0001-setup.py-Correct-the-license-assignment.patch" - -SRC_URI[md5sum] = "ff2d43a74195ec00c42ccd5da2a3f3de" -SRC_URI[sha256sum] = "72c76855ac25e6ad054c7ed380e95c1a96803185f005dd11f40ccaa9620b551f" - -inherit pypi setuptools3 - -RDEPENDS_${PN} += "python3-numpy" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.3.1.bb new file mode 100644 index 000000000..c3251624f --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.3.1.bb @@ -0,0 +1,11 @@ +SUMMARY = "Calculate the distance between 2 points on Earth" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRC_URI[sha256sum] = "75a7f859b3fb6df746564ca66ad1fd5b4052cdbab3d74ff16e8f1a7c3d4a26a5" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "python3-numpy" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.19.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.19.1.bb index a16f8d9d2..122b4bd8b 100644 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.19.1.bb +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.19.1.bb @@ -7,3 +7,9 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=56e5e931172b6164b62dc7c4aba6c8cf" SRC_URI[sha256sum] = "0b12617eeca7433d4c396a100eaecfa4b08ee99aa881e6df6e257a7aad5d533d" inherit pypi setuptools3 + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-compression \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-pyparsing \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-humanfriendly_9.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-humanfriendly_9.1.bb deleted file mode 100644 index fb6a7e3b6..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-humanfriendly_9.1.bb +++ /dev/null @@ -1,24 +0,0 @@ -DESCRIPTION = "Human friendly output for text interfaces using Python" -HOMEPAGE = "https://humanfriendly.readthedocs.io/" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=764e737b117a38d773609885e8d04f0b" - -PYPI_PACKAGE = "humanfriendly" - -SRC_URI[sha256sum] = "066562956639ab21ff2676d1fda0b5987e985c534fc76700a19bd54bcb81121d" - -inherit pypi setuptools3 - -RDEPENDS_${PN}_class-target += " \ - ${PYTHON_PN}-datetime \ - ${PYTHON_PN}-fcntl \ - ${PYTHON_PN}-io \ - ${PYTHON_PN}-logging \ - ${PYTHON_PN}-math \ - ${PYTHON_PN}-numbers \ - ${PYTHON_PN}-shell \ - ${PYTHON_PN}-stringold \ -" - -BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-humanfriendly_9.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-humanfriendly_9.2.bb new file mode 100644 index 000000000..6be27f760 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-humanfriendly_9.2.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "Human friendly output for text interfaces using Python" +HOMEPAGE = "https://humanfriendly.readthedocs.io/" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5d178009f806c2bdd498a19be0013a7a" + +PYPI_PACKAGE = "humanfriendly" + +SRC_URI[sha256sum] = "f7dba53ac7935fd0b4a2fc9a29e316ddd9ea135fb3052d3d0279d10c18ff9c48" + +inherit pypi setuptools3 + +RDEPENDS_${PN}_class-target += " \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-fcntl \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-math \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-stringold \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.10.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.10.0.bb new file mode 100644 index 000000000..eba13dbc7 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.10.0.bb @@ -0,0 +1,21 @@ +SUMMARY = "Python humanize utilities" +HOMEPAGE = "http://github.com/jmoiron/humanize" +SECTION = "devel/python" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENCE;md5=4ecc42519e84f6f3e23529464df7bd1d" + +SRC_URI[sha256sum] = "b2413730ce6684f85e0439a5b80b8f402e09f03e16ab8023d1da758c6ff41148" + +inherit pypi setuptools3 + +DEPENDS += "\ + ${PYTHON_PN}-setuptools-scm-native \ +" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-setuptools \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.6.0.bb deleted file mode 100644 index 1c269bac9..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.6.0.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Python humanize utilities" -HOMEPAGE = "http://github.com/jmoiron/humanize" -SECTION = "devel/python" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENCE;md5=4ecc42519e84f6f3e23529464df7bd1d" - -SRC_URI[sha256sum] = "a31704cf41f023e268032c4813c6482573320150a0d986f76b245e0451bb89e1" - -inherit pypi setuptools3 - -DEPENDS += "\ - ${PYTHON_PN}-setuptools-scm-native \ -" - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-datetime \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-idna_3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-idna_3.1.bb deleted file mode 100644 index fbdbab6df..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-idna_3.1.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "Internationalised Domain Names in Applications" -HOMEPAGE = "https://github.com/kjd/idna" -LICENSE = "BSD-3-Clause & Python-2.0 & Unicode" -LIC_FILES_CHKSUM = "file://LICENSE.md;md5=239668a7c6066d9e0c5382e9c8c6c0e1" - -SRC_URI[sha256sum] = "c5b02147e01ea9920e6b0a3f1f7bb833612d507592c837a6c49552768f4054e1" - -inherit pypi setuptools3 - -# Remove bundled egg-info -do_compile_prepend() { - rm -rf ${S}/idna.egg-info -} - -RDEPENDS_${PN}_class-target = "\ - ${PYTHON_PN}-codecs \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-idna_3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-idna_3.2.bb new file mode 100644 index 000000000..4ca7f625a --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-idna_3.2.bb @@ -0,0 +1,19 @@ +SUMMARY = "Internationalised Domain Names in Applications" +HOMEPAGE = "https://github.com/kjd/idna" +LICENSE = "BSD-3-Clause & Python-2.0 & Unicode" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=239668a7c6066d9e0c5382e9c8c6c0e1" + +SRC_URI[sha256sum] = "467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3" + +inherit pypi setuptools3 + +# Remove bundled egg-info +do_compile_prepend() { + rm -rf ${S}/idna.egg-info +} + +RDEPENDS_${PN}_class-target = "\ + ${PYTHON_PN}-codecs \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ifaddr_0.1.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ifaddr_0.1.7.bb index 4fff7d1e5..6d4fab3c9 100644 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ifaddr_0.1.7.bb +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ifaddr_0.1.7.bb @@ -8,3 +8,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8debe8d42320ec0ff24665319b625a5e" SRC_URI[sha256sum] = "1f9e8a6ca6f16db5a37d3356f07b6e52344f6f9f7e806d618537731669eb1a94" inherit pypi setuptools3 + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-ctypes \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.24.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.24.0.bb deleted file mode 100644 index 1c11eeca0..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.24.0.bb +++ /dev/null @@ -1,28 +0,0 @@ -SUMMARY = "IPython: Productive Interactive Computing" -HOMEPAGE = "https://ipython.org" -AUTHOR = "The IPython Development Team " -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING.rst;md5=59b20262b8663cdd094005bddf47af5f" - -PYPI_PACKAGE = "ipython" - -SRC_URI[sha256sum] = "a171caa3d3d4c819a1c0742e3abecfd5a2b8ab525ca1c9f114b40b76b0679ab1" - -RDEPENDS_${PN} = "\ - ${PYTHON_PN}-setuptools \ - ${PYTHON_PN}-jedi \ - ${PYTHON_PN}-decorator \ - ${PYTHON_PN}-pickleshare \ - ${PYTHON_PN}-traitlets \ - ${PYTHON_PN}-prompt-toolkit \ - ${PYTHON_PN}-pygments \ - ${PYTHON_PN}-backcall \ - ${PYTHON_PN}-pydoc \ - ${PYTHON_PN}-debugger \ - ${PYTHON_PN}-pexpect \ - ${PYTHON_PN}-unixadmin \ - ${PYTHON_PN}-misc \ - ${PYTHON_PN}-sqlite3 \ -" - -inherit setuptools3 pypi diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.25.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.25.0.bb new file mode 100644 index 000000000..b8a6db2b1 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.25.0.bb @@ -0,0 +1,28 @@ +SUMMARY = "IPython: Productive Interactive Computing" +HOMEPAGE = "https://ipython.org" +AUTHOR = "The IPython Development Team " +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING.rst;md5=59b20262b8663cdd094005bddf47af5f" + +PYPI_PACKAGE = "ipython" + +SRC_URI[sha256sum] = "54bbd1fe3882457aaf28ae060a5ccdef97f212a741754e420028d4ec5c2291dc" + +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-setuptools \ + ${PYTHON_PN}-jedi \ + ${PYTHON_PN}-decorator \ + ${PYTHON_PN}-pickleshare \ + ${PYTHON_PN}-traitlets \ + ${PYTHON_PN}-prompt-toolkit \ + ${PYTHON_PN}-pygments \ + ${PYTHON_PN}-backcall \ + ${PYTHON_PN}-pydoc \ + ${PYTHON_PN}-debugger \ + ${PYTHON_PN}-pexpect \ + ${PYTHON_PN}-unixadmin \ + ${PYTHON_PN}-misc \ + ${PYTHON_PN}-sqlite3 \ +" + +inherit setuptools3 pypi diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.8.0.bb deleted file mode 100644 index 36de825d2..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.8.0.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "A Python utility / library to sort Python imports." -HOMEPAGE = "https://pypi.python.org/pypi/isort" -LICENSE = "MIT" -SECTION = "devel/python" -LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=8227180126797a0148f94f483f3e1489" - -SRC_URI[sha256sum] = "0a943902919f65c5684ac4e0154b1ad4fac6dcaa5d9f3426b732f1c8b5419be6" - -inherit pypi setuptools3 - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-datetime \ - ${PYTHON_PN}-shell \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.9.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.9.2.bb new file mode 100644 index 000000000..5832136df --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.9.2.bb @@ -0,0 +1,20 @@ +SUMMARY = "A Python utility / library to sort Python imports." +HOMEPAGE = "https://pypi.python.org/pypi/isort" +LICENSE = "MIT" +SECTION = "devel/python" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=8227180126797a0148f94f483f3e1489" + +SRC_URI[sha256sum] = "f65ce5bd4cbc6abdfbe29afc2f0245538ab358c14590912df638033f157d555e" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-profile \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-pprint \ + ${PYTHON_PN}-difflib \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-joblib_1.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-joblib_1.0.1.bb new file mode 100644 index 000000000..4e63b056c --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-joblib_1.0.1.bb @@ -0,0 +1,17 @@ +SUMMARY = "Joblib is a set of tools to provide lightweight pipelining in Python." +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=32b289008fb813a27c9025f02b59d03d" + +inherit setuptools3 pypi + +SRC_URI[md5sum] = "9914b330916395c0a1feca54949867a3" +SRC_URI[sha256sum] = "9c17567692206d2f3fb9ecf5e991084254fe631665c450b443761c4186a613f7" + +RDEPENDS_${PN} += " \ + python3-asyncio \ + python3-distutils \ + python3-json \ + python3-multiprocessing \ + python3-pprint \ + python3-pydoc \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_1.2.bb deleted file mode 100644 index c033bd352..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_1.2.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "Utility library to parse, compare, simplify and normalize license expressions" -HOMEPAGE = "https://github.com/nexB/license-expression" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://apache-2.0.LICENSE;md5=e23fadd6ceef8c618fc1c65191d846fa" - -SRC_URI[md5sum] = "fd4cb295cc345be1071274cdbd81c969" -SRC_URI[sha256sum] = "7960e1dfdf20d127e75ead931476f2b5c7556df05b117a73880b22ade17d1abc" - -inherit pypi ptest setuptools3 - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-booleanpy \ - " - -BBCLASSEXTEND = "native nativesdk" - -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/ -} diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_21.6.14.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_21.6.14.bb new file mode 100644 index 000000000..0513d091f --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_21.6.14.bb @@ -0,0 +1,33 @@ +SUMMARY = "Utility library to parse, compare, simplify and normalize license expressions" +HOMEPAGE = "https://github.com/nexB/license-expression" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://apache-2.0.LICENSE;md5=9429839cdc4b292ff46e88b524c6e0c9" + +SRC_URI[sha256sum] = "9de87a427c9a449eee7913472fb9ed03b63036295547369fdbf95f76a8b924b2" + +inherit pypi ptest setuptools3 + +DEPENDS += "\ + ${PYTHON_PN}-setuptools-scm-native \ + ${PYTHON_PN}-wheel-native \ +" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-booleanpy \ +" + +BBCLASSEXTEND = "native nativesdk" + +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/ +} diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/0001-Allow-verify_cb_-to-be-called-with-ok-True.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/0001-Allow-verify_cb_-to-be-called-with-ok-True.patch deleted file mode 100644 index 3c836635a..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/0001-Allow-verify_cb_-to-be-called-with-ok-True.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 73fbd1e646f6bbf202d4418bae80eb9941fbf552 Mon Sep 17 00:00:00 2001 -From: Casey Deccio -Date: Fri, 8 Jan 2021 12:43:09 -0700 -Subject: [PATCH] Allow verify_cb_* to be called with ok=True - -With https://github.com/openssl/openssl/commit/2e06150e3928daa06d5ff70c32bffad8088ebe58 -OpenSSL allowed verificaton to continue on UNABLE_TO_VERIFY_LEAF_SIGNATURE ---- - tests/test_ssl.py | 14 ++++++++++++-- - 1 file changed, 12 insertions(+), 2 deletions(-) - -diff --git a/tests/test_ssl.py b/tests/test_ssl.py -index 92b6942..7a3271a 100644 ---- a/tests/test_ssl.py -+++ b/tests/test_ssl.py -@@ -59,8 +59,13 @@ def allocate_srv_port(): - - - def verify_cb_new_function(ok, store): -- assert not ok - err = store.get_error() -+ # If err is X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE, then instead of -+ # aborting, this callback is called to retrieve additional error -+ # information. In this case, ok might not be False. -+ # See https://github.com/openssl/openssl/commit/2e06150e3928daa06d5ff70c32bffad8088ebe58 -+ if err != m2.X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: -+ assert not ok - assert err in [m2.X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT, - m2.X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY, - m2.X509_V_ERR_CERT_UNTRUSTED, -@@ -618,7 +623,12 @@ class MiscSSLClientTestCase(BaseSSLClientTestCase): - - def verify_cb_old(self, ctx_ptr, x509_ptr, err, depth, ok): - try: -- self.assertFalse(ok) -+ # If err is X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE, then instead of -+ # aborting, this callback is called to retrieve additional error -+ # information. In this case, ok might not be False. -+ # See https://github.com/openssl/openssl/commit/2e06150e3928daa06d5ff70c32bffad8088ebe58 -+ if err != m2.X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: -+ self.assertFalse(ok) - self.assertIn(err, - [m2.X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT, - m2.X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY, --- -2.29.2 - diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/0001-Use-of-RSA_SSLV23_PADDING-has-been-deprecated.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/0001-Use-of-RSA_SSLV23_PADDING-has-been-deprecated.patch deleted file mode 100644 index 2313a324a..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/0001-Use-of-RSA_SSLV23_PADDING-has-been-deprecated.patch +++ /dev/null @@ -1,29 +0,0 @@ -From d06eaa88a5f491827733f32027c46de3557fbd05 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mat=C4=9Bj=20Cepl?= -Date: Fri, 19 Feb 2021 15:53:02 +0100 -Subject: [PATCH] Use of RSA_SSLV23_PADDING has been deprecated. - -Fixes #293. ---- - tests/test_rsa.py | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/tests/test_rsa.py b/tests/test_rsa.py -index 3de5016..7299785 100644 ---- a/tests/test_rsa.py -+++ b/tests/test_rsa.py -@@ -124,11 +124,6 @@ class RSATestCase(unittest.TestCase): - ptxt = priv.private_decrypt(ctxt, p) - self.assertEqual(ptxt, self.data) - -- # sslv23_padding -- ctxt = priv.public_encrypt(self.data, RSA.sslv23_padding) -- res = priv.private_decrypt(ctxt, RSA.sslv23_padding) -- self.assertEqual(res, self.data) -- - # no_padding - with six.assertRaisesRegex(self, RSA.RSAError, 'data too small'): - priv.public_encrypt(self.data, RSA.no_padding) --- -2.29.2 - diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/avoid-host-contamination.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/avoid-host-contamination.patch new file mode 100644 index 000000000..9d9b8449b --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/avoid-host-contamination.patch @@ -0,0 +1,23 @@ +Filter out '/usr/include' for swig to avoid host contamination issue. + +Upstream-Status: Upstream-Status: Inappropriate [cross compile specific] + +Signed-off-by: Kai Kang +--- + setup.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index 5a12981..389d49f 100644 +--- a/setup.py ++++ b/setup.py +@@ -153,7 +153,8 @@ class _M2CryptoBuildExt(build_ext.build_ext): + self.swig_opts.append('-py3') + + # swig seems to need the default header file directories +- self.swig_opts.extend(['-I%s' % i for i in _get_additional_includes()]) ++ self.swig_opts.extend(['-I%s' % i for i in _get_additional_includes() ++ if i != '/usr/include']) + + log.debug('self.include_dirs = %s', self.include_dirs) + log.debug('self.library_dirs = %s', self.library_dirs) diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/cross-compile-platform.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/cross-compile-platform.patch index f039ae866..77ef7e557 100644 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/cross-compile-platform.patch +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/cross-compile-platform.patch @@ -6,7 +6,7 @@ Signed-off-by: Khem Raj --- a/setup.py +++ b/setup.py -@@ -169,22 +169,6 @@ class _M2CryptoBuildExt(build_ext.build_ +@@ -169,24 +169,6 @@ class _M2CryptoBuildExt(build_ext.build_ log.debug('self.include_dirs = %s', self.include_dirs) log.debug('self.library_dirs = %s', self.library_dirs) @@ -25,6 +25,8 @@ Signed-off-by: Khem Raj - self.swig_opts.append('-D%s' % arch) - if mach in ('ppc64le', 'ppc64el'): - self.swig_opts.append('-D_CALL_ELF=2') +- if mach in ('arm64_be'): +- self.swig_opts.append('-D__AARCH64EB__') - self.swig_opts.extend(['-I%s' % i for i in self.include_dirs]) diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.37.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.37.1.bb deleted file mode 100644 index e1f92928c..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.37.1.bb +++ /dev/null @@ -1,44 +0,0 @@ -SUMMARY = "A Python crypto and SSL toolkit" -HOMEPAGE = "https://gitlab.com/m2crypto/m2crypto" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENCE;md5=b0e1f0b7d0ce8a62c18b1287b991800e" - -FILESEXTRAPATHS_prepend := "${THISDIR}/python-m2crypto:" - -SRC_URI += "file://0001-setup.py-link-in-sysroot-not-in-host-directories.patch \ - file://cross-compile-platform.patch \ - file://0001-Allow-verify_cb_-to-be-called-with-ok-True.patch \ - file://0001-Use-of-RSA_SSLV23_PADDING-has-been-deprecated.patch \ - " -SRC_URI[sha256sum] = "e4e42f068b78ccbf113e5d0a72ae5f480f6c3ace4940b91e4fff5598cfff6fb3" - -PYPI_PACKAGE = "M2Crypto" -inherit pypi siteinfo setuptools3 - -DEPENDS += "openssl swig-native" -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-datetime \ - ${PYTHON_PN}-distutils \ - ${PYTHON_PN}-logging \ - ${PYTHON_PN}-netclient \ - ${PYTHON_PN}-netserver \ - ${PYTHON_PN}-numbers \ - ${PYTHON_PN}-smtpd \ - ${PYTHON_PN}-xmlrpc \ -" - -DISTUTILS_BUILD_ARGS += "build_ext --openssl=${STAGING_EXECPREFIXDIR} -I${STAGING_INCDIR}" -DISTUTILS_INSTALL_ARGS += "build_ext --openssl=${STAGING_EXECPREFIXDIR}" - -SWIG_FEATURES_x86 = "-D__i386__" -SWIG_FEATURES_x32 = "-D__ILP32__" - -SWIG_FEATURES ?= "-D__${HOST_ARCH}__ ${@['-D__ILP32__','-D__LP64__'][d.getVar('SITEINFO_BITS') != '32']}" - -SWIG_FEATURES_append_riscv64 = " -D__SIZEOF_POINTER__=${SITEINFO_BITS}/8 -D__riscv_xlen=${SITEINFO_BITS}" -SWIG_FEATURES_append_riscv32 = " -D__SIZEOF_POINTER__=${SITEINFO_BITS}/8 -D__riscv_xlen=${SITEINFO_BITS}" -SWIG_FEATURES_append_mipsarch = " -D_MIPS_SZPTR=${SITEINFO_BITS}" -export SWIG_FEATURES - -BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.38.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.38.0.bb new file mode 100644 index 000000000..950de564f --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.38.0.bb @@ -0,0 +1,46 @@ +SUMMARY = "A Python crypto and SSL toolkit" +HOMEPAGE = "https://gitlab.com/m2crypto/m2crypto" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENCE;md5=b0e1f0b7d0ce8a62c18b1287b991800e" + +FILESEXTRAPATHS_prepend := "${THISDIR}/python-m2crypto:" + +SRC_URI += "file://0001-setup.py-link-in-sysroot-not-in-host-directories.patch \ + file://cross-compile-platform.patch \ + file://avoid-host-contamination.patch \ + " +SRC_URI[sha256sum] = "99f2260a30901c949a8dc6d5f82cd5312ffb8abc92e76633baf231bbbcb2decb" + +PYPI_PACKAGE = "M2Crypto" +inherit pypi siteinfo setuptools3 + +DEPENDS += "openssl swig-native" +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-distutils \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-netserver \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-smtpd \ + ${PYTHON_PN}-xmlrpc \ +" + +DISTUTILS_BUILD_ARGS += "build_ext --openssl=${STAGING_EXECPREFIXDIR} -I${STAGING_INCDIR}" +DISTUTILS_INSTALL_ARGS += "build_ext --openssl=${STAGING_EXECPREFIXDIR}" + +SWIG_FEATURES_x86 = "-D__i386__" +SWIG_FEATURES_x32 = "-D__ILP32__" + +SWIG_FEATURES ?= "-D__${HOST_ARCH}__ ${@['-D__ILP32__','-D__LP64__'][d.getVar('SITEINFO_BITS') != '32']}" + +SWIG_FEATURES_append_riscv64 = " -D__SIZEOF_POINTER__=${SITEINFO_BITS}/8 -D__riscv_xlen=${SITEINFO_BITS}" +SWIG_FEATURES_append_riscv32 = " -D__SIZEOF_POINTER__=${SITEINFO_BITS}/8 -D__riscv_xlen=${SITEINFO_BITS}" +SWIG_FEATURES_append_mipsarch = " -D_MIPS_SZPTR=${SITEINFO_BITS}" +SWIG_FEATURES_append_powerpc64le = " -D__powerpc64__" +export SWIG_FEATURES + +export STAGING_DIR + +BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.812.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.812.bb deleted file mode 100644 index 8faab60b9..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.812.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Optional static typing for Python 3 and 2 (PEP 484)" -HOMEPAGE = "https://github.com/python/mypy" -LICENSE = "MIT & Python-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=6afb7c151c4dedb5c3dc292cc120fadc" - -RDEPENDS_${PN} = " \ - ${PYTHON_PN}-mypy-extensions \ - ${PYTHON_PN}-typed-ast \ - ${PYTHON_PN}-typing-extensions \ -" - -PYPI_PACKAGE = "mypy" - -inherit pypi setuptools3 - -SRC_URI[sha256sum] = "cd07039aa5df222037005b08fbbfd69b3ab0b0bd7a07d7906de75ae52c4e3119" - -BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.910.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.910.bb new file mode 100644 index 000000000..8e675e6a9 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.910.bb @@ -0,0 +1,23 @@ +SUMMARY = "Optional static typing for Python 3 and 2 (PEP 484)" +HOMEPAGE = "https://github.com/python/mypy" +LICENSE = "MIT & Python-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=17b7180fcfc43c4e70c07c71588604c4" + +PYPI_PACKAGE = "mypy" + +inherit pypi setuptools3 + +SRC_URI[sha256sum] = "704098302473cb31a218f1775a873b376b30b4c18229421e9e9dc8916fd16150" + +BBCLASSEXTEND = "native" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-mypy-extensions \ + ${PYTHON_PN}-typed-ast \ + ${PYTHON_PN}-typing-extensions \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-compression \ + ${PYTHON_PN}-pprint \ + ${PYTHON_PN}-difflib \ + ${PYTHON_PN}-toml \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.5.1.bb deleted file mode 100644 index 0b52cfd7e..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.5.1.bb +++ /dev/null @@ -1,12 +0,0 @@ -DESCRIPTION = "Python package for creating and manipulating graphs and networks" -HOMEPAGE = "http://networkx.github.io/" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a24ea029adac8935699bf69b2e38c728" - -SRC_URI[sha256sum] = "109cd585cac41297f71103c3c42ac6ef7379f29788eb54cb751be5a663bb235a" - -inherit pypi setuptools3 - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-decorator \ - " diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.6.1.bb new file mode 100644 index 000000000..676e1dbdc --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.6.1.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "Python package for creating and manipulating graphs and networks" +HOMEPAGE = "http://networkx.github.io/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5cfa4d8f5881e0d053bb497130b9c73a" + +SRC_URI[sha256sum] = "bf4cb807d1bccf1593c7d0742d9127d9e04e021867299082658b0fc3907924e8" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-decorator \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-compression \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-html \ + ${PYTHON_PN}-xml \ + ${PYTHON_PN}-json \ + " diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-oauthlib_3.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-oauthlib_3.1.0.bb deleted file mode 100644 index fe27e8e50..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-oauthlib_3.1.0.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" -HOMEPAGE = "https://github.com/idan/oauthlib" - -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=abd2675e944a2011aed7e505290ba482" - -SRC_URI[md5sum] = "43cb2b5bac983712ee55076b61181cc2" -SRC_URI[sha256sum] = "bee41cc35fcca6e988463cacc3bcb8a96224f470ca547e697b604cc697b2f889" - -inherit pypi setuptools3 - -# The following configs & dependencies are from setuptools extras_require. -# These dependencies are optional, hence can be controlled via PACKAGECONFIG. -# The upstream names may not correspond exactly to bitbake package names. -# -# Uncomment this line to enable all the optional features. -#PACKAGECONFIG ?= "test signedtoken signals rsa" -PACKAGECONFIG[test] = ",,,${PYTHON_PN}-blinker ${PYTHON_PN}-cryptography ${PYTHON_PN}-nose ${PYTHON_PN}-pyjwt" -PACKAGECONFIG[signedtoken] = ",,,${PYTHON_PN}-cryptography ${PYTHON_PN}-pyjwt" -PACKAGECONFIG[signals] = ",,,${PYTHON_PN}-blinker" -PACKAGECONFIG[rsa] = ",,,${PYTHON_PN}-cryptography" - -RDEPENDS_${PN} += "${PYTHON_PN}-core ${PYTHON_PN}-crypt ${PYTHON_PN}-datetime ${PYTHON_PN}-json ${PYTHON_PN}-logging ${PYTHON_PN}-math ${PYTHON_PN}-netclient ${PYTHON_PN}-unittest" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-oauthlib_3.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-oauthlib_3.1.1.bb new file mode 100644 index 000000000..e11786349 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-oauthlib_3.1.1.bb @@ -0,0 +1,22 @@ +SUMMARY = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" +HOMEPAGE = "https://github.com/idan/oauthlib" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=abd2675e944a2011aed7e505290ba482" + +SRC_URI[sha256sum] = "8f0215fcc533dd8dd1bee6f4c412d4f0cd7297307d43ac61666389e3bc3198a3" + +inherit pypi setuptools3 + +# The following configs & dependencies are from setuptools extras_require. +# These dependencies are optional, hence can be controlled via PACKAGECONFIG. +# The upstream names may not correspond exactly to bitbake package names. +# +# Uncomment this line to enable all the optional features. +#PACKAGECONFIG ?= "test signedtoken signals rsa" +PACKAGECONFIG[test] = ",,,${PYTHON_PN}-blinker ${PYTHON_PN}-cryptography ${PYTHON_PN}-nose ${PYTHON_PN}-pyjwt" +PACKAGECONFIG[signedtoken] = ",,,${PYTHON_PN}-cryptography ${PYTHON_PN}-pyjwt" +PACKAGECONFIG[signals] = ",,,${PYTHON_PN}-blinker" +PACKAGECONFIG[rsa] = ",,,${PYTHON_PN}-cryptography" + +RDEPENDS_${PN} += "${PYTHON_PN}-core ${PYTHON_PN}-crypt ${PYTHON_PN}-datetime ${PYTHON_PN}-json ${PYTHON_PN}-logging ${PYTHON_PN}-math ${PYTHON_PN}-netclient ${PYTHON_PN}-unittest" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.2.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.2.4.bb deleted file mode 100644 index 54fa910a9..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.2.4.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "pandas library for high-performance data analysis tools" -DESCRIPTION = "pandas is an open source, BSD-licensed library providing \ -high-performance, easy-to-use data structures and data analysis tools for \ -the Python programming language." -HOMEPAGE = "http://pandas.pydata.org/" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=c2a8f987b2ce77c368c6b3e1b5b10774" - -SRC_URI[sha256sum] = "649ecab692fade3cbfcf967ff936496b0cfba0af00a55dfaacd82bdda5cb2279" - -inherit pypi setuptools3 - -DEPENDS += " \ - ${PYTHON_PN}-numpy-native ${PYTHON_PN}-cython-native \ -" - -CFLAGS_append_toolchain-clang = " -Wno-error=deprecated-declarations" - -RDEPENDS_${PN} += " \ - ${PYTHON_PN}-json \ - ${PYTHON_PN}-numpy \ - ${PYTHON_PN}-dateutil \ - ${PYTHON_PN}-pytz \ -" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.3.0.bb new file mode 100644 index 000000000..b98e2865c --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.3.0.bb @@ -0,0 +1,26 @@ +SUMMARY = "pandas library for high-performance data analysis tools" +DESCRIPTION = "pandas is an open source, BSD-licensed library providing \ +high-performance, easy-to-use data structures and data analysis tools for \ +the Python programming language." +HOMEPAGE = "http://pandas.pydata.org/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3f23c5c092b74d245d48eeef72bc3fd2" + +SRC_URI[sha256sum] = "c554e6c9cf2d5ea1aba5979cc837b3649539ced0e18ece186f055450c86622e2" + +inherit pypi setuptools3 + +DEPENDS += " \ + ${PYTHON_PN}-numpy-native ${PYTHON_PN}-cython-native \ +" + +CFLAGS_append_toolchain-clang = " -Wno-error=deprecated-declarations" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-numpy \ + ${PYTHON_PN}-dateutil \ + ${PYTHON_PN}-dateutil-zoneinfo \ + ${PYTHON_PN}-pytz \ + ${PYTHON_PN}-profile \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_8.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_8.2.0.bb deleted file mode 100644 index 3241230d1..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_8.2.0.bb +++ /dev/null @@ -1,37 +0,0 @@ -SUMMARY = "Python Imaging Library (Fork). Pillow is the friendly PIL fork by Alex \ -Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and \ -Contributors." -HOMEPAGE = "https://pillow.readthedocs.io" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=0337b116233da4616ae9fdb130bf6f1a" - -SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=8.2.x \ - file://0001-support-cross-compiling.patch \ - file://0001-explicitly-set-compile-options.patch \ -" -SRCREV ?= "e0e353c0ef7516979a9aedce3792596649ce4433" - -inherit setuptools3 - -DEPENDS += " \ - zlib \ - jpeg \ - tiff \ - freetype \ - lcms \ - openjpeg \ -" - -RDEPENDS_${PN} += " \ - ${PYTHON_PN}-misc \ - ${PYTHON_PN}-logging \ - ${PYTHON_PN}-numbers \ -" - -CVE_PRODUCT = "pillow" - -S = "${WORKDIR}/git" - -RPROVIDES_${PN} += "python3-imaging" - -BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_8.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_8.3.1.bb new file mode 100644 index 000000000..045357a6a --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_8.3.1.bb @@ -0,0 +1,37 @@ +SUMMARY = "Python Imaging Library (Fork). Pillow is the friendly PIL fork by Alex \ +Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and \ +Contributors." +HOMEPAGE = "https://pillow.readthedocs.io" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=0337b116233da4616ae9fdb130bf6f1a" + +SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=8.3.x \ + file://0001-support-cross-compiling.patch \ + file://0001-explicitly-set-compile-options.patch \ +" +SRCREV ?= "92933b86574b9c80764bf52c357ed29e1ef53382" + +inherit setuptools3 + +DEPENDS += " \ + zlib \ + jpeg \ + tiff \ + freetype \ + lcms \ + openjpeg \ +" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-misc \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-numbers \ +" + +CVE_PRODUCT = "pillow" + +S = "${WORKDIR}/git" + +RPROVIDES_${PN} += "python3-imaging" + +BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pkgconfig_1.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pkgconfig_1.5.2.bb deleted file mode 100644 index 7a98ef288..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pkgconfig_1.5.2.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "Python module to interface with the pkg-config command line too" -HOMEPAGE = "http://github.com/matze/pkgconfig" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=faa7f82be8f220bff6156be4790344fc" - -SRC_URI[sha256sum] = "38d612488f0633755a2e7a8acab6c01d20d63dbc31af75e2a9ac98a6f638ca94" - -RDEPENDS_${PN} = "pkgconfig \ - ${PYTHON_PN}-shell \ - " - -inherit pypi setuptools3 - -BBCLASSEXTEND = "native" - diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pkgconfig_1.5.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pkgconfig_1.5.5.bb new file mode 100644 index 000000000..4c0e799ac --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pkgconfig_1.5.5.bb @@ -0,0 +1,16 @@ +SUMMARY = "Python module to interface with the pkg-config command line too" +HOMEPAGE = "http://github.com/matze/pkgconfig" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=faa7f82be8f220bff6156be4790344fc" + +SRC_URI[sha256sum] = "deb4163ef11f75b520d822d9505c1f462761b4309b1bb713d08689759ea8b899" + +RDEPENDS_${PN} = "pkgconfig \ + ${PYTHON_PN}-shell \ + " + +inherit pypi setuptools3 + +BBCLASSEXTEND = "native" + diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-process-tests_2.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-process-tests_2.1.2.bb new file mode 100644 index 000000000..dccdeb7a0 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-process-tests_2.1.2.bb @@ -0,0 +1,15 @@ +# Copyright (C) 2021 Khem Raj +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Tools for testing processes." +HOMEPAGE = "https://github.com/ionelmc/python-process-tests" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=37031056aff37e4b3310872a9a3d0b1e" + +SRC_URI[sha256sum] = "a3747ad947bdfc93e5c986bdb17a6d718f3f26e8577a0807a00962f29e26deba" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "python3-core" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.18.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.18.bb deleted file mode 100644 index 366287583..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.18.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "Library for building powerful interactive command lines in Python" -HOMEPAGE = "https://python-prompt-toolkit.readthedocs.io/" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=b2cde7da89f0c1f3e49bf968d00d554f" - -SRC_URI[sha256sum] = "e1b4f11b9336a28fa11810bc623c357420f69dfdb6d2dac41ca2c21a55c033bc" - -inherit pypi setuptools3 - -PYPI_PACKAGE = "prompt_toolkit" - -RDEPENDS_${PN} += " \ - ${PYTHON_PN}-core \ - ${PYTHON_PN}-six \ - ${PYTHON_PN}-terminal \ - ${PYTHON_PN}-threading \ - ${PYTHON_PN}-wcwidth \ - ${PYTHON_PN}-datetime \ - ${PYTHON_PN}-shell \ - ${PYTHON_PN}-image \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.19.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.19.bb new file mode 100644 index 000000000..f384e216e --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.19.bb @@ -0,0 +1,24 @@ +SUMMARY = "Library for building powerful interactive command lines in Python" +HOMEPAGE = "https://python-prompt-toolkit.readthedocs.io/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b2cde7da89f0c1f3e49bf968d00d554f" + +SRC_URI[sha256sum] = "08360ee3a3148bdb5163621709ee322ec34fc4375099afa4bbf751e9b7b7fa4f" + +inherit pypi setuptools3 + +PYPI_PACKAGE = "prompt_toolkit" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-terminal \ + ${PYTHON_PN}-threading \ + ${PYTHON_PN}-wcwidth \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-image \ + ${PYTHON_PN}-asyncio \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.17.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.17.0.bb deleted file mode 100644 index be846f799..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.17.0.bb +++ /dev/null @@ -1,39 +0,0 @@ -DESCRIPTION = "Protocol Buffers" -HOMEPAGE = "https://developers.google.com/protocol-buffers/" -SECTION = "devel/python" - -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=19e8f490f9526b1de84f8d949cfcfd4e" - -inherit pypi setuptools3 - -SRC_URI[sha256sum] = "05dfe9319939a8473c21b469f34f6486646e54fb8542637cf7ed8e2fbfe21538" - -# http://errors.yoctoproject.org/Errors/Details/184715/ -# Can't find required file: ../src/google/protobuf/descriptor.proto -CLEANBROKEN = "1" - -UPSTREAM_CHECK_REGEX = "protobuf/(?P\d+(\.\d+)+)/" - -DEPENDS += "protobuf" - -RDEPENDS_${PN} += " \ - ${PYTHON_PN}-datetime \ - ${PYTHON_PN}-json \ - ${PYTHON_PN}-logging \ - ${PYTHON_PN}-netclient \ - ${PYTHON_PN}-numbers \ - ${PYTHON_PN}-pkgutil \ - ${PYTHON_PN}-six \ - ${PYTHON_PN}-unittest \ -" - -# For usage in other recipies when compiling protobuf files (e.g. by grpcio-tools) -BBCLASSEXTEND = "native nativesdk" - -DISTUTILS_BUILD_ARGS += "--cpp_implementation" -DISTUTILS_INSTALL_ARGS += "--cpp_implementation" - -do_compile_prepend_class-native () { - export KOKORO_BUILD_NUMBER="1" -} diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.17.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.17.3.bb new file mode 100644 index 000000000..b3f9f6f21 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.17.3.bb @@ -0,0 +1,39 @@ +DESCRIPTION = "Protocol Buffers" +HOMEPAGE = "https://developers.google.com/protocol-buffers/" +SECTION = "devel/python" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=19e8f490f9526b1de84f8d949cfcfd4e" + +inherit pypi setuptools3 + +SRC_URI[sha256sum] = "72804ea5eaa9c22a090d2803813e280fb273b62d5ae497aaf3553d141c4fdd7b" + +# http://errors.yoctoproject.org/Errors/Details/184715/ +# Can't find required file: ../src/google/protobuf/descriptor.proto +CLEANBROKEN = "1" + +UPSTREAM_CHECK_REGEX = "protobuf/(?P\d+(\.\d+)+)/" + +DEPENDS += "protobuf" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-pkgutil \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-unittest \ +" + +# For usage in other recipies when compiling protobuf files (e.g. by grpcio-tools) +BBCLASSEXTEND = "native nativesdk" + +DISTUTILS_BUILD_ARGS += "--cpp_implementation" +DISTUTILS_INSTALL_ARGS += "--cpp_implementation" + +do_compile_prepend_class-native () { + export KOKORO_BUILD_NUMBER="1" +} diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pulsectl_21.5.17.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pulsectl_21.5.17.bb deleted file mode 100644 index 3c0a9c0e5..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pulsectl_21.5.17.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "Python (3.x and 2.x) high-level interface and ctypes-based bindings for PulseAudio (libpulse), mostly focused on mixer-like controls and introspection-related operations (as opposed to e.g. submitting sound samples to play, player-like client)." -HOMEPAGE = "https://github.com/mk-fg/python-pulse-control" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=f1d10048469ff90123263eb5e214061d" - -SRC_URI[sha256sum] = "3f782b3adf6d91b2398504002d248b36aa047bd04d5acd0ae5d4e2d3c8e746a0" - -RDEPENDS_${PN} += " \ - libpulse \ - python3-ctypes \ -" - -inherit pypi setuptools3 diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pulsectl_21.5.18.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pulsectl_21.5.18.bb new file mode 100644 index 000000000..d039b7ee3 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pulsectl_21.5.18.bb @@ -0,0 +1,13 @@ +SUMMARY = "Python (3.x and 2.x) high-level interface and ctypes-based bindings for PulseAudio (libpulse), mostly focused on mixer-like controls and introspection-related operations (as opposed to e.g. submitting sound samples to play, player-like client)." +HOMEPAGE = "https://github.com/mk-fg/python-pulse-control" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=f1d10048469ff90123263eb5e214061d" + +SRC_URI[sha256sum] = "14e34563cdad5f01d193f1ef7cd859a0fbdaa846726d44b0b68f4451a7458458" + +RDEPENDS_${PN} += " \ + libpulse \ + python3-ctypes \ +" + +inherit pypi setuptools3 diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-py-cpuinfo/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-py-cpuinfo/run-ptest new file mode 100644 index 000000000..b63c4de0d --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-py-cpuinfo/run-ptest @@ -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}}' diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-py-cpuinfo_8.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-py-cpuinfo_8.0.0.bb new file mode 100644 index 000000000..1b62a7611 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-py-cpuinfo_8.0.0.bb @@ -0,0 +1,27 @@ +# Copyright (C) 2021 Khem Raj +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Get CPU info with pure Python 2 & 3" +HOMEPAGE = "https://github.com/workhorsy/py-cpuinfo" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b0b97c022f12b14d9e02de0b283ee9e9" + +SRC_URI[sha256sum] = "5f269be0e08e33fd959de96b34cd4aeeeacac014dd8305f70eb28d06de2345c5" + +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-pytest \ +" + +RDEPENDS_${PN} += "python3-core python3-ctypes python3-datetime python3-json python3-io python3-mmap python3-multiprocessing python3-netclient python3-pickle python3-pprint python3-shell" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.1.2.bb deleted file mode 100644 index c392261ad..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.1.2.bb +++ /dev/null @@ -1,10 +0,0 @@ -SUMMARY = "Library for Python 3.6+ to communicate with the Google Chromecast." -HOMEPAGE = "https://github.com/balloob/pychromecast" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=b1dbd4e85f47b389bdadee9c694669f5" - -SRC_URI[sha256sum] = "907656cea46d39d0e93ec815979578ef4fb6f655fd8bf4e88e6421fcd7824e85" - -PYPI_PACKAGE = "PyChromecast" - -inherit pypi setuptools3 diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.2.0.bb new file mode 100644 index 000000000..ebe11241c --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.2.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "Library for Python 3.6+ to communicate with the Google Chromecast." +HOMEPAGE = "https://github.com/balloob/pychromecast" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b1dbd4e85f47b389bdadee9c694669f5" + +SRC_URI[sha256sum] = "6d34593575cf77565df47af4c75dd47c6a65831ec18a8c10b5367b2f1c172f0a" + +PYPI_PACKAGE = "PyChromecast" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-zeroconf \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-requests \ + ${PYTHON_PN}-protobuf \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.143.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.143.bb deleted file mode 100644 index 1e3ef27a7..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.143.bb +++ /dev/null @@ -1,24 +0,0 @@ -DESCRIPTION = "Python API for MISP" -HOMEPAGE = "https://github.com/MISP/PyMISP" -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20" - -SRC_URI = "git://github.com/MISP/PyMISP.git;protocol=https;branch=main" -SRCREV = "c2e9663765e83f1a4aa70099546bec653ed770e7" -S = "${WORKDIR}/git" - -inherit setuptools3 - -RDEPENDS_${PN} += " \ - ${PYTHON_PN}-dateutil \ - ${PYTHON_PN}-json \ - ${PYTHON_PN}-jsonschema \ - ${PYTHON_PN}-requests \ - ${PYTHON_PN}-six \ - ${PYTHON_PN}-deprecated \ - ${PYTHON_PN}-wrapt \ -" - -# Fixes: python3-pymisp requires /bin/bash, but no -# providers found in RDEPENDS_python3-pymisp? [file-rdep] -RDEPENDS_${PN} += "bash" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.144.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.144.bb new file mode 100644 index 000000000..1e97b27ae --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.144.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "Python API for MISP" +HOMEPAGE = "https://github.com/MISP/PyMISP" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20" + +SRC_URI = "git://github.com/MISP/PyMISP.git;protocol=https;branch=main" +SRCREV = "7dbaf665d9288f2a2692bee3d6207bb6abe3c51f" +S = "${WORKDIR}/git" + +inherit setuptools3 + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-dateutil \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-jsonschema \ + ${PYTHON_PN}-requests \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-deprecated \ + ${PYTHON_PN}-wrapt \ +" + +# Fixes: python3-pymisp requires /bin/bash, but no +# providers found in RDEPENDS_python3-pymisp? [file-rdep] +RDEPENDS_${PN} += "bash" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.17.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.17.3.bb deleted file mode 100644 index 72736c891..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.17.3.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Persistent/Immutable/Functional data structures for Python" -HOMEPAGE = "https://github.com/tobgu/pyrsistent" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENCE.mit;md5=ca574f2891cf528b3e7a2ee570337e7c" - -SRC_URI[md5sum] = "cd38658ea772a7f9b12b6f9485a7018b" -SRC_URI[sha256sum] = "2e636185d9eb976a18a8a8e96efce62f2905fea90041958d8cc2a189756ebf3e" - -inherit pypi setuptools3 - -RDEPENDS_${PN} += " \ - ${PYTHON_PN}-numbers \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.18.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.18.0.bb new file mode 100644 index 000000000..7b792284e --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.18.0.bb @@ -0,0 +1,14 @@ +SUMMARY = "Persistent/Immutable/Functional data structures for Python" +HOMEPAGE = "https://github.com/tobgu/pyrsistent" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.mit;md5=a4b94c2b800b582a8d3925a9939cbf44" + +SRC_URI[sha256sum] = "773c781216f8c2900b42a7b638d5b517bb134ae1acbebe4d1e8f1f41ea60eb4b" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-numbers \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pysonos_0.0.50.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pysonos_0.0.50.bb deleted file mode 100644 index cfa0d6ef0..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pysonos_0.0.50.bb +++ /dev/null @@ -1,15 +0,0 @@ -DESCRIPTION = "A SoCo fork with fixes for Home Assistant " -HOMEPAGE = "https://pypi.org/project/pysonos/" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=07b0e2ca9ac77cd65cd4edf2e13367ea" - -SRC_URI[sha256sum] = "15a583b819c1e758cca72d5e148d59dd3bf7c9d59f19b5e79ab38c743c3e0738" - -inherit pypi setuptools3 - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-ifaddr \ - ${PYTHON_PN}-requests \ - ${PYTHON_PN}-xmltodict \ - " diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pysonos_0.0.53.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pysonos_0.0.53.bb new file mode 100644 index 000000000..dc7f67665 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pysonos_0.0.53.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "A SoCo fork with fixes for Home Assistant " +HOMEPAGE = "https://pypi.org/project/pysonos/" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=07b0e2ca9ac77cd65cd4edf2e13367ea" + +SRC_URI[sha256sum] = "e24ea33f4ab810ff5e698d5e577d382413a2994565439ebc67fb42614f899e93" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-ifaddr \ + ${PYTHON_PN}-requests \ + ${PYTHON_PN}-xmltodict \ + " diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-benchmark_3.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-benchmark_3.4.1.bb new file mode 100644 index 000000000..5fb11ddb7 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-benchmark_3.4.1.bb @@ -0,0 +1,15 @@ +# Copyright (C) 2021 Khem Raj +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "A ``pytest`` fixture for benchmarking code. It will group the tests into rounds that are calibrated to the chosen timer." +HOMEPAGE = "https://github.com/ionelmc/pytest-benchmark" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=9c5c2c74370826468065c5702b8a1fcf" + +SRC_URI[sha256sum] = "40e263f912de5a81d891619032983557d62a3d85843f9a9f30b98baea0cd7b47" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "python3-core python3-py-cpuinfo python3-pytest python3-aspectlib" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cache_1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cache_1.0.bb new file mode 100644 index 000000000..4ce91dd98 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cache_1.0.bb @@ -0,0 +1,15 @@ +# Copyright (C) 2021 Khem Raj +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "pytest plugin with mechanisms for caching across test runs" +HOMEPAGE = "http://bitbucket.org/hpk42/pytest-cache/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a6bb0320b04a0a503f12f69fea479de9" + +SRC_URI[sha256sum] = "be7468edd4d3d83f1e844959fd6e3fd28e77a481440a7118d430130ea31b07a9" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "python3-core python3-execnet python3-pprint python3-py python3-pytest" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pythonping_1.0.16.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pythonping_1.0.16.bb deleted file mode 100644 index 5affb934c..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pythonping_1.0.16.bb +++ /dev/null @@ -1,12 +0,0 @@ -SUMMARY = "PythonPing is simple way to ping in Python." -HOMEPAGE = "https://pypi.org/project/pythonping/" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://setup.py;beginline=12;endline=12;md5=2d33c00f47720c7e35e1fdb4b9fab027" - -SRC_URI[md5sum] = "9b505ad8a5b8a6a8e57ccf75098ea364" -SRC_URI[sha256sum] = "d025c8b25952580dea47bc241421e17a5a97f97f50098e1096dd10d845d0f156" - -inherit pypi setuptools3 - -RDEPENDS_${PN} += "python3-io" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pythonping_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pythonping_1.1.0.bb new file mode 100644 index 000000000..fd66a6ffd --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pythonping_1.1.0.bb @@ -0,0 +1,11 @@ +SUMMARY = "PythonPing is simple way to ping in Python." +HOMEPAGE = "https://pypi.org/project/pythonping/" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://setup.py;beginline=12;endline=12;md5=2d33c00f47720c7e35e1fdb4b9fab027" + +SRC_URI[sha256sum] = "71199bdeee942ba1258b65f88ca5624278e63b31e7643ee8ca7292d2f5f77e99" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "python3-io" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyusb_1.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyusb_1.1.1.bb deleted file mode 100644 index a8c7031b6..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyusb_1.1.1.bb +++ /dev/null @@ -1,12 +0,0 @@ -SUMMARY = "PyUSB provides USB access on the Python language" -HOMEPAGE = "http://pyusb.sourceforge.net/" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=e64a29fcd3c3dd356a24e235dfcb3905" - -DEPENDS += "libusb1 ${PYTHON_PN}-setuptools-scm-native" - -SRC_URI[sha256sum] = "7d449ad916ce58aff60b89aae0b65ac130f289c24d6a5b7b317742eccffafc38" - -inherit pypi setuptools3 - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyusb_1.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyusb_1.2.1.bb new file mode 100644 index 000000000..30b2c6d88 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyusb_1.2.1.bb @@ -0,0 +1,18 @@ +SUMMARY = "PyUSB provides USB access on the Python language" +HOMEPAGE = "http://pyusb.sourceforge.net/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e64a29fcd3c3dd356a24e235dfcb3905" + +DEPENDS += "libusb1 ${PYTHON_PN}-setuptools-scm-native" + +RDEPENDS_${PN} += " \ + python3-logging \ +" + +SRC_URI[sha256sum] = "a4cc7404a203144754164b8b40994e2849fde1cfff06b08492f12fff9d9de7b9" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "libusb1" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-qrcode_6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-qrcode_6.1.bb deleted file mode 100644 index df99d403d..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-qrcode_6.1.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "QR Code image generator" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=4b802d2a65df4626623c79757f486af9" - -PYPI_PACKAGE = "qrcode" -SRC_URI[sha256sum] = "505253854f607f2abf4d16092c61d4e9d511a3b4392e60bff957a68592b04369" - -inherit pypi setuptools3 - -RDEPENDS_${PN} = "python3-six python3-pillow" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-qrcode_7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-qrcode_7.1.bb new file mode 100644 index 000000000..329bf3e4f --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-qrcode_7.1.bb @@ -0,0 +1,11 @@ +SUMMARY = "QR Code image generator" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4b802d2a65df4626623c79757f486af9" + +PYPI_PACKAGE = "qrcode" +SRC_URI[sha256sum] = "59ba630fa2adb637b06571e6ceec1bb0ecf372c458c4447ceba763061bd3af72" + +inherit pypi setuptools3 + +RDEPENDS_${PN} = "python3-six python3-pillow" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.4.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.4.4.bb deleted file mode 100644 index 177b06b97..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.4.4.bb +++ /dev/null @@ -1,10 +0,0 @@ -SUMMARY = "Alternative regular expression module, to replace re." -HOMEPAGE = "https://bitbucket.org/mrabarnett/mrab-regex/src" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=f0a3e4a2554ebb89c046c93d45d8e4bc" - -inherit pypi setuptools3 - -SRC_URI[sha256sum] = "52ba3d3f9b942c49d7e4bc105bb28551c44065f139a65062ab7912bef10c9afb" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.7.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.7.6.bb new file mode 100644 index 000000000..458236d55 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.7.6.bb @@ -0,0 +1,14 @@ +SUMMARY = "Alternative regular expression module, to replace re." +HOMEPAGE = "https://bitbucket.org/mrabarnett/mrab-regex/src" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=f0a3e4a2554ebb89c046c93d45d8e4bc" + +inherit pypi setuptools3 + +SRC_URI[sha256sum] = "8394e266005f2d8c6f0bc6780001f7afa3ef81a7a2111fa35058ded6fce79e4d" + +RDEPENDS_${PN} += " \ + python3-stringold \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests/setup.py-Support-idna-version-3.1.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests/setup.py-Support-idna-version-3.1.patch deleted file mode 100644 index 26332249d..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests/setup.py-Support-idna-version-3.1.patch +++ /dev/null @@ -1,40 +0,0 @@ -From fc45beed40a86c8fc38fc430765c1c5d2c9961c2 Mon Sep 17 00:00:00 2001 -From: Fabio Berton -Date: Thu, 4 Mar 2021 09:26:48 -0300 -Subject: [PATCH] setup.py: Support idna version 3.1 -Organization: O.S. Systems Software LTDA. - -Change idna required version to use python3-idna recipe that currently -is on version 3.1. - -Without this change python-request doesn't work as the idna version -doesn't match the required versions. When bump python-request recipe, -verify if the upstream project bumped the idna version and drop this -patch. - -As this recipe was tested with python3-idna_3.1 don't allow higher -versions. - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Fabio Berton ---- - setup.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/setup.py b/setup.py -index 7ba4b2a2..9d3b973e 100755 ---- a/setup.py -+++ b/setup.py -@@ -43,7 +43,7 @@ packages = ['requests'] - - requires = [ - 'chardet>=3.0.2,<5', -- 'idna>=2.5,<3', -+ 'idna>=2.5,<3.2', - 'urllib3>=1.21.1,<1.27', - 'certifi>=2017.4.17' - --- -2.30.1 - diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.25.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.25.1.bb deleted file mode 100644 index cea8fd517..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.25.1.bb +++ /dev/null @@ -1,27 +0,0 @@ -DESCRIPTION = "Python HTTP for Humans." -HOMEPAGE = "http://python-requests.org" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658" - -SRC_URI += "file://setup.py-Support-idna-version-3.1.patch" - -SRC_URI[sha256sum] = "27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804" - -inherit pypi setuptools3 - -RDEPENDS_${PN} += " \ - ${PYTHON_PN}-email \ - ${PYTHON_PN}-json \ - ${PYTHON_PN}-ndg-httpsclient \ - ${PYTHON_PN}-netserver \ - ${PYTHON_PN}-pyasn1 \ - ${PYTHON_PN}-pyopenssl \ - ${PYTHON_PN}-pysocks \ - ${PYTHON_PN}-urllib3 \ - ${PYTHON_PN}-chardet \ - ${PYTHON_PN}-idna \ -" - -CVE_PRODUCT = "requests" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.26.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.26.0.bb new file mode 100644 index 000000000..95e6e1a6b --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.26.0.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "Python HTTP for Humans." +HOMEPAGE = "http://python-requests.org" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658" + +SRC_URI[sha256sum] = "b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-email \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-ndg-httpsclient \ + ${PYTHON_PN}-netserver \ + ${PYTHON_PN}-pyasn1 \ + ${PYTHON_PN}-pyopenssl \ + ${PYTHON_PN}-pysocks \ + ${PYTHON_PN}-urllib3 \ + ${PYTHON_PN}-chardet \ + ${PYTHON_PN}-idna \ +" + +CVE_PRODUCT = "requests" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.17.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.17.10.bb new file mode 100644 index 000000000..3414ed097 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.17.10.bb @@ -0,0 +1,21 @@ +SUMMARY = "YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order." +AUTHOR = "Anthon van der Neut" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=fa0a51dfb461e2f803969e0f3fa71dfe" + +PYPI_PACKAGE = "ruamel.yaml" + +inherit pypi setuptools3 + +SRC_URI[sha256sum] = "106bc8d6dc6a0ff7c9196a47570432036f41d556b779c6b4e618085f57e39e67" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-shell \ +" + +do_install_prepend() { + export RUAMEL_NO_PIP_INSTALL_CHECK=1 +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.17.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.17.7.bb deleted file mode 100644 index 5da0ac3fc..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.17.7.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order." -AUTHOR = "Anthon van der Neut" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=fa0a51dfb461e2f803969e0f3fa71dfe" - -PYPI_PACKAGE = "ruamel.yaml" - -inherit pypi setuptools3 - -BBCLASSEXTEND = "native nativesdk" - -SRC_URI[sha256sum] = "5c3fa739bbedd2f23769656784e671c6335d17a5bf163c3c3901d8663c0af287" - -do_install_prepend() { - export RUAMEL_NO_PIP_INSTALL_CHECK=1 -} - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.17.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.17.bb deleted file mode 100644 index bcd58914a..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.17.bb +++ /dev/null @@ -1,23 +0,0 @@ -DESCRIPTION = "Bindings for the scrypt key derivation function library" -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=2ddf47d0ff1849bce3257ccbc1fd275c" -HOMEPAGE="https://github.com/holgern/py-scrypt" - -SRC_URI += "file://0001-py-scrypt-remove-the-hard-coded-include-paths.patch" - -SRC_URI[sha256sum] = "25b5075f2238be93af1cd574540a5ea01b8547f9b678aa72d22fce22577475ec" - -inherit pypi ptest setuptools3 dos2unix - -SRC_URI += " \ - file://run-ptest \ -" - -RDEPENDS_${PN}-ptest += " \ - ${PYTHON_PN}-pytest \ -" - -do_install_ptest() { - install -d ${D}${PTEST_PATH}/tests - cp -rf ${S}/scrypt/tests/* ${D}${PTEST_PATH}/tests/ -} diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.18.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.18.bb new file mode 100644 index 000000000..da3130016 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.18.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "Bindings for the scrypt key derivation function library" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2ddf47d0ff1849bce3257ccbc1fd275c" +HOMEPAGE="https://github.com/holgern/py-scrypt" + +SRC_URI += "file://0001-py-scrypt-remove-the-hard-coded-include-paths.patch" + +SRC_URI[sha256sum] = "bcf04257af12e6d52974d177a7b08e314b66f350a73f9b6f7b232d69a6a1e041" + +inherit pypi ptest setuptools3 dos2unix + +SRC_URI += " \ + file://run-ptest \ +" + +RDEPENDS_${PN}-ptest += " \ + ${PYTHON_PN}-pytest \ +" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-ctypes \ +" + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/tests + cp -rf ${S}/scrypt/tests/* ${D}${PTEST_PATH}/tests/ +} diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.1.0.bb deleted file mode 100644 index 89c659dba..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.1.0.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "The new Python SDK for Sentry.io" -DESCRIPTION = "This is the next line of the Python SDK \ -for Sentry, intended to replace the raven package on PyPI." -HOMEPAGE = "https://github.com/getsentry/sentry-python" -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=0c79f8d3c91fc847350efd28bfe0a341" - -RDEPENDS_${PN} += "python3-urllib3" - -SRC_URI[sha256sum] = "c1227d38dca315ba35182373f129c3e2722e8ed999e52584e6aca7d287870739" - -PYPI_PACKAGE = "sentry-sdk" - -inherit pypi setuptools3 diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.2.0.bb new file mode 100644 index 000000000..e86ff46be --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.2.0.bb @@ -0,0 +1,14 @@ +SUMMARY = "The new Python SDK for Sentry.io" +DESCRIPTION = "This is the next line of the Python SDK \ +for Sentry, intended to replace the raven package on PyPI." +HOMEPAGE = "https://github.com/getsentry/sentry-python" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=0c79f8d3c91fc847350efd28bfe0a341" + +RDEPENDS_${PN} += "python3-urllib3" + +SRC_URI[sha256sum] = "9907adbdd30a55b818914512cc143e6beae0bb3ba78b2649f4b079752eb0e424" + +PYPI_PACKAGE = "sentry-sdk" + +inherit pypi setuptools3 diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.15.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.15.bb deleted file mode 100644 index 2d7273bb2..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.15.bb +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION = "Python SQL toolkit and Object Relational Mapper that gives \ -application developers the full power and flexibility of SQL" -HOMEPAGE = "http://www.sqlalchemy.org/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=3359ed561ac16aaa25b6c6eff84df595" - -SRC_URI[sha256sum] = "0ff100c75cd175f35f4d24375a0b3d82461f5b1af5fc8d112ef0e5ceea8049e6" - -PYPI_PACKAGE = "SQLAlchemy" -inherit pypi setuptools3 - -RDEPENDS_${PN} += " \ - ${PYTHON_PN}-json \ - ${PYTHON_PN}-pickle \ - ${PYTHON_PN}-logging \ - ${PYTHON_PN}-netclient \ - ${PYTHON_PN}-numbers \ - ${PYTHON_PN}-threading \ - ${PYTHON_PN}-compression \ - ${PYTHON_PN}-profile \ -" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.20.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.20.bb new file mode 100644 index 000000000..b96cdd3ed --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.20.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "Python SQL toolkit and Object Relational Mapper that gives \ +application developers the full power and flexibility of SQL" +HOMEPAGE = "http://www.sqlalchemy.org/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3359ed561ac16aaa25b6c6eff84df595" + +SRC_URI[sha256sum] = "38ee3a266afef2978e82824650457f70c5d74ec0cadec1b10fe5ed6f038eb5d0" + +PYPI_PACKAGE = "SQLAlchemy" +inherit pypi setuptools3 + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-threading \ + ${PYTHON_PN}-compression \ + ${PYTHON_PN}-profile \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-texttable_1.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-texttable_1.6.3.bb deleted file mode 100644 index 03ebd010e..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-texttable_1.6.3.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "module for creating simple ASCII tables" -HOMEPAGE = "https://github.com/foutaise/texttable/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=7a97cdac2d9679ffdcfef3dc036d24f6" - -inherit pypi setuptools3 - -SRC_URI[md5sum] = "68e6b31d36f5c20221da7d5db3eca772" -SRC_URI[sha256sum] = "ce0faf21aa77d806bbff22b107cc22cce68dc9438f97a2df32c93e9afa4ce436" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-texttable_1.6.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-texttable_1.6.4.bb new file mode 100644 index 000000000..6916a72d3 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-texttable_1.6.4.bb @@ -0,0 +1,10 @@ +SUMMARY = "module for creating simple ASCII tables" +HOMEPAGE = "https://github.com/foutaise/texttable/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=7a97cdac2d9679ffdcfef3dc036d24f6" + +inherit pypi setuptools3 + +SRC_URI[sha256sum] = "42ee7b9e15f7b225747c3fa08f43c5d6c83bc899f80ff9bae9319334824076e9" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.61.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.61.0.bb deleted file mode 100644 index 0c04b676a..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.61.0.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "Fast, Extensible Progress Meter" -HOMEPAGE = "http://tqdm.github.io/" -SECTION = "devel/python" - -LICENSE = "MIT & MPL-2.0" -LIC_FILES_CHKSUM = "file://LICENCE;md5=59e4271a933d33edfe60237db377a14b" - -SRC_URI[sha256sum] = "cd5791b5d7c3f2f1819efc81d36eb719a38e0906a7380365c556779f585ea042" - -inherit pypi setuptools3 - -DEPENDS += "${PYTHON_PN}-setuptools-scm-native" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.61.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.61.2.bb new file mode 100644 index 000000000..1e127f724 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.61.2.bb @@ -0,0 +1,19 @@ +SUMMARY = "Fast, Extensible Progress Meter" +HOMEPAGE = "http://tqdm.github.io/" +SECTION = "devel/python" + +LICENSE = "MIT & MPL-2.0" +LIC_FILES_CHKSUM = "file://LICENCE;md5=59e4271a933d33edfe60237db377a14b" + +SRC_URI[sha256sum] = "8bb94db0d4468fea27d004a0f1d1c02da3cdedc00fe491c0de986b76a04d6b0a" + +inherit pypi setuptools3 + +DEPENDS += "${PYTHON_PN}-setuptools-scm-native" + +RDEPENDS_${PN} += " \ + python3-logging \ + python3-numbers \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.12.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.12.0.bb deleted file mode 100644 index 148806e10..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.12.0.bb +++ /dev/null @@ -1,30 +0,0 @@ -SUMMARY = "Run-time type checker for Python" -HOMEPAGE = "https://pypi.org/project/typeguard/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=f0e423eea5c91e7aa21bdb70184b3e53" - -SRC_URI[sha256sum] = "fca77fd4ccba63465b421cdbbab5a1a8e3994e6d6f18b45da2bb475c09f147ef" - -inherit pypi setuptools3 ptest - -SRC_URI += " \ - file://run-ptest \ -" - -RDEPENDS_${PN}-ptest += " \ - ${PYTHON_PN}-pytest \ - ${PYTHON_PN}-typing-extensions \ - ${PYTHON_PN}-unixadmin \ -" - -do_install_ptest() { - install -d ${D}${PTEST_PATH}/tests - cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ -} - -DEPENDS += "\ - python3-distutils-extra-native \ - python3-setuptools-scm-native \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.12.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.12.1.bb new file mode 100644 index 000000000..803067651 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.12.1.bb @@ -0,0 +1,30 @@ +SUMMARY = "Run-time type checker for Python" +HOMEPAGE = "https://pypi.org/project/typeguard/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=f0e423eea5c91e7aa21bdb70184b3e53" + +SRC_URI[sha256sum] = "c2af8b9bdd7657f4bd27b45336e7930171aead796711bc4cfc99b4731bb9d051" + +inherit pypi setuptools3 ptest + +SRC_URI += " \ + file://run-ptest \ +" + +RDEPENDS_${PN}-ptest += " \ + ${PYTHON_PN}-pytest \ + ${PYTHON_PN}-typing-extensions \ + ${PYTHON_PN}-unixadmin \ +" + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/tests + cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ +} + +DEPENDS += "\ + python3-distutils-extra-native \ + python3-setuptools-scm-native \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.5.bb deleted file mode 100644 index f2fb33c6d..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.5.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "Python HTTP library with thread-safe connection pooling, file post support, sanity friendly, and more" -HOMEPAGE = "https://github.com/shazow/urllib3" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c2823cb995439c984fd62a973d79815c" - -SRC_URI[sha256sum] = "a7acd0977125325f516bda9735fa7142b909a8d01e8b2e4c8108d0984e6e0098" - -inherit pypi setuptools3 - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-certifi \ - ${PYTHON_PN}-cryptography \ - ${PYTHON_PN}-email \ - ${PYTHON_PN}-idna \ - ${PYTHON_PN}-netclient \ - ${PYTHON_PN}-pyopenssl \ - ${PYTHON_PN}-threading \ -" - -CVE_PRODUCT = "urllib3" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.6.bb new file mode 100644 index 000000000..f9b49fe69 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.6.bb @@ -0,0 +1,22 @@ +SUMMARY = "Python HTTP library with thread-safe connection pooling, file post support, sanity friendly, and more" +HOMEPAGE = "https://github.com/shazow/urllib3" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c2823cb995439c984fd62a973d79815c" + +SRC_URI[sha256sum] = "f57b4c16c62fa2760b7e3d97c35b255512fb6b59a259730f36ba32ce9f8e342f" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-certifi \ + ${PYTHON_PN}-cryptography \ + ${PYTHON_PN}-email \ + ${PYTHON_PN}-idna \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-pyopenssl \ + ${PYTHON_PN}-threading \ +" + +CVE_PRODUCT = "urllib3" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.2.bb deleted file mode 100644 index c2bf68a2d..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.2.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Filesystem events monitoring" -DEPENDS = "${PYTHON_PN}-argh" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" - -SRC_URI[sha256sum] = "0237db4d9024859bea27d0efb59fe75eef290833fd988b8ead7a879b0308c2db" - -inherit pypi setuptools3 - -RDEPENDS_${PN} = " \ - ${PYTHON_PN}-argh \ - ${PYTHON_PN}-pathtools3 \ - ${PYTHON_PN}-pyyaml \ - ${PYTHON_PN}-requests \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.3.bb new file mode 100644 index 000000000..ba0fdf1eb --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.3.bb @@ -0,0 +1,18 @@ +SUMMARY = "Filesystem events monitoring" +DEPENDS = "${PYTHON_PN}-argh" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +SRC_URI[sha256sum] = "e5236a8e8602ab6db4b873664c2d356c365ab3cac96fbdec4970ad616415dd45" + +inherit pypi setuptools3 + +RDEPENDS_${PN} = " \ + ${PYTHON_PN}-argh \ + ${PYTHON_PN}-pathtools3 \ + ${PYTHON_PN}-pyyaml \ + ${PYTHON_PN}-requests \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.0.1.bb deleted file mode 100644 index da4e05f30..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.0.1.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "websocket client for python" -DESCRIPTION = "\ -websocket-client module is WebSocket client for python. \ -This provide the low level APIs for WebSocket. All APIs \ -are the synchronous functions." -HOMEPAGE = "https://github.com/websocket-client/websocket-client" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://LICENSE;md5=c96ca6c1de8adc025adfada81d06fba5" - -SRC_URI[sha256sum] = "3e2bf58191d4619b161389a95bdce84ce9e0b24eb8107e7e590db682c2d0ca81" - -inherit pypi setuptools3 - -RDEPENDS_${PN} = "\ - ${PYTHON_PN}-six \ -" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.1.0.bb new file mode 100644 index 000000000..b46392aee --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.1.0.bb @@ -0,0 +1,16 @@ +SUMMARY = "websocket client for python" +DESCRIPTION = "\ +websocket-client module is WebSocket client for python. \ +This provide the low level APIs for WebSocket. All APIs \ +are the synchronous functions." +HOMEPAGE = "https://github.com/websocket-client/websocket-client" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://LICENSE;md5=c96ca6c1de8adc025adfada81d06fba5" + +SRC_URI[sha256sum] = "b68e4959d704768fa20e35c9d508c8dc2bbc041fd8d267c0d7345cffe2824568" + +inherit pypi setuptools3 + +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-six \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_1.4.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_1.4.3.bb deleted file mode 100644 index e6b196956..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_1.4.3.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Python 2 and 3 compatibility library" -HOMEPAGE = "https://xlsxwriter.readthedocs.io" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4e95e368cd6cb090815046688e92d11e" - -inherit pypi setuptools3 - -PYPI_PACKAGE = "XlsxWriter" - -RDEPENDS_${PN} += " \ - python3-crypt \ - python3-datetime \ - python3-compression \ - python3-numbers \ - python3-io \ -" - -SRC_URI[sha256sum] = "641db6e7b4f4982fd407a3f372f45b878766098250d26963e95e50121168cbe2" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_1.4.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_1.4.4.bb new file mode 100644 index 000000000..64ab8afa6 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_1.4.4.bb @@ -0,0 +1,21 @@ +SUMMARY = "Python 2 and 3 compatibility library" +HOMEPAGE = "https://xlsxwriter.readthedocs.io" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4e95e368cd6cb090815046688e92d11e" + +inherit pypi setuptools3 + +PYPI_PACKAGE = "XlsxWriter" + +RDEPENDS_${PN} += " \ + python3-crypt \ + python3-datetime \ + python3-compression \ + python3-numbers \ + python3-io \ +" + +SRC_URI[sha256sum] = "791567acccc485ba76e0b84bccced2651981171de5b47d541520416f2f9f93e3" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-yamlloader_1.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-yamlloader_1.0.0.bb deleted file mode 100644 index a2483a6f4..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-yamlloader_1.0.0.bb +++ /dev/null @@ -1,12 +0,0 @@ -SUMMARY = "Ordered YAML loader and dumper for PyYAML." -HOMEPAGE = "https://github.com/Phynix/yamlloader" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=6831ef36faa29329bce2420c5356f97e" - -SRC_URI[sha256sum] = "e96dc3dc6895d814c330c054c966d993fc81ef1dbf5a30a4bdafeb256359e058" - -inherit pypi setuptools3 - -RDEPENDS_${PN}_class-target += "\ - ${PYTHON_PN}-pyyaml \ -" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-yamlloader_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-yamlloader_1.1.0.bb new file mode 100644 index 000000000..25e7edab2 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-yamlloader_1.1.0.bb @@ -0,0 +1,12 @@ +SUMMARY = "Ordered YAML loader and dumper for PyYAML." +HOMEPAGE = "https://github.com/Phynix/yamlloader" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=6831ef36faa29329bce2420c5356f97e" + +SRC_URI[sha256sum] = "8a297c7a197683ba02e5e2b882ffd6c6180d01bdefb534b69cd3962df020bfe6" + +inherit pypi setuptools3 + +RDEPENDS_${PN}_class-target += "\ + ${PYTHON_PN}-pyyaml \ +" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi/0001-Fix-imports-for-ptests.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi/0001-Fix-imports-for-ptests.patch new file mode 100644 index 000000000..fa58897e6 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi/0001-Fix-imports-for-ptests.patch @@ -0,0 +1,3905 @@ +From 0dedc1c573ddc4e87475eb03c64555cd54a72e92 Mon Sep 17 00:00:00 2001 +From: Trevor Gamblin +Date: Mon, 7 Jun 2021 09:40:20 -0400 +Subject: [PATCH] Fix imports for tests + +Signed-off-by: Trevor Gamblin +--- + tests/test_asyncio.py | 2 +- + tests/test_asyncio_context_vars.py | 2 +- + tests/test_functionality.py | 2 +- + tests/test_gevent.py | 2 +- + tests/test_hooks.py | 2 +- + tests/test_tags.py | 2 +- + 6 files changed, 6 insertions(+), 6 deletions(-) + +--- a/tests/test_asyncio.py ++++ b/tests/test_asyncio.py +@@ -2,7 +2,7 @@ import unittest + import yappi + import asyncio + import threading +-from utils import YappiUnitTestCase, find_stat_by_name, burn_cpu, burn_io ++from .utils import YappiUnitTestCase, find_stat_by_name, burn_cpu, burn_io + + + @asyncio.coroutine +--- a/tests/test_asyncio_context_vars.py ++++ b/tests/test_asyncio_context_vars.py +@@ -5,7 +5,7 @@ import contextvars + import functools + import time + import os +-import utils ++import tests.utils as utils + import yappi + + async_context_id = contextvars.ContextVar('async_context_id') +--- a/tests/test_functionality.py ++++ b/tests/test_functionality.py +@@ -1,1916 +1,1916 @@ +-import os +-import sys +-import time +-import threading +-import unittest +-import yappi +-import _yappi +-import utils +-import multiprocessing # added to fix http://bugs.python.org/issue15881 for > Py2.6 +-import subprocess +- +-_counter = 0 +- +- +-class BasicUsage(utils.YappiUnitTestCase): +- +- def test_callback_function_int_return_overflow(self): +- # this test is just here to check if any errors are generated, as the err +- # is printed in C side, I did not include it here. THere are ways to test +- # this deterministically, I did not bother +- import ctypes +- +- def _unsigned_overflow_margin(): +- return 2**(ctypes.sizeof(ctypes.c_void_p) * 8) - 1 +- +- def foo(): +- pass +- +- #with utils.captured_output() as (out, err): +- yappi.set_context_id_callback(_unsigned_overflow_margin) +- yappi.set_tag_callback(_unsigned_overflow_margin) +- yappi.start() +- foo() +- +- def test_issue60(self): +- +- def foo(): +- buf = bytearray() +- buf += b't' * 200 +- view = memoryview(buf)[10:] +- view = view.tobytes() +- del buf[:10] # this throws exception +- return view +- +- yappi.start(builtins=True) +- foo() +- self.assertTrue( +- len( +- yappi.get_func_stats( +- filter_callback=lambda x: yappi. +- func_matches(x, [memoryview.tobytes]) +- ) +- ) > 0 +- ) +- yappi.stop() +- +- def test_issue54(self): +- +- def _tag_cbk(): +- global _counter +- _counter += 1 +- return _counter +- +- def a(): +- pass +- +- def b(): +- pass +- +- yappi.set_tag_callback(_tag_cbk) +- yappi.start() +- a() +- a() +- a() +- yappi.stop() +- stats = yappi.get_func_stats() +- self.assertEqual(stats.pop().ncall, 3) # aggregated if no tag is given +- stats = yappi.get_func_stats(tag=1) +- +- for i in range(1, 3): +- stats = yappi.get_func_stats(tag=i) +- stats = yappi.get_func_stats( +- tag=i, filter_callback=lambda x: yappi.func_matches(x, [a]) +- ) +- +- stat = stats.pop() +- self.assertEqual(stat.ncall, 1) +- +- yappi.set_tag_callback(None) +- yappi.clear_stats() +- yappi.start() +- b() +- b() +- stats = yappi.get_func_stats() +- self.assertEqual(len(stats), 1) +- stat = stats.pop() +- self.assertEqual(stat.ncall, 2) +- +- def test_filter(self): +- +- def a(): +- pass +- +- def b(): +- a() +- +- def c(): +- b() +- +- _TCOUNT = 5 +- +- ts = [] +- yappi.start() +- for i in range(_TCOUNT): +- t = threading.Thread(target=c) +- t.start() +- ts.append(t) +- +- for t in ts: +- t.join() +- +- yappi.stop() +- +- ctx_ids = [] +- for tstat in yappi.get_thread_stats(): +- if tstat.name == '_MainThread': +- main_ctx_id = tstat.id +- else: +- ctx_ids.append(tstat.id) +- +- fstats = yappi.get_func_stats(filter={"ctx_id": 9}) +- self.assertTrue(fstats.empty()) +- fstats = yappi.get_func_stats( +- filter={ +- "ctx_id": main_ctx_id, +- "name": "c" +- } +- ) # main thread +- self.assertTrue(fstats.empty()) +- +- for i in ctx_ids: +- fstats = yappi.get_func_stats( +- filter={ +- "ctx_id": i, +- "name": "a", +- "ncall": 1 +- } +- ) +- self.assertEqual(fstats.pop().ncall, 1) +- fstats = yappi.get_func_stats(filter={"ctx_id": i, "name": "b"}) +- self.assertEqual(fstats.pop().ncall, 1) +- fstats = yappi.get_func_stats(filter={"ctx_id": i, "name": "c"}) +- self.assertEqual(fstats.pop().ncall, 1) +- +- yappi.clear_stats() +- yappi.start(builtins=True) +- time.sleep(0.1) +- yappi.stop() +- fstats = yappi.get_func_stats(filter={"module": "time"}) +- self.assertEqual(len(fstats), 1) +- +- # invalid filters` +- self.assertRaises( +- Exception, yappi.get_func_stats, filter={'tag': "sss"} +- ) +- self.assertRaises( +- Exception, yappi.get_func_stats, filter={'ctx_id': "None"} +- ) +- +- def test_filter_callback(self): +- +- def a(): +- time.sleep(0.1) +- +- def b(): +- a() +- +- def c(): +- pass +- +- def d(): +- pass +- +- yappi.set_clock_type("wall") +- yappi.start(builtins=True) +- a() +- b() +- c() +- d() +- stats = yappi.get_func_stats( +- filter_callback=lambda x: yappi.func_matches(x, [a, b]) +- ) +- #stats.print_all() +- r1 = ''' +- tests/test_functionality.py:98 a 2 0.000000 0.200350 0.100175 +- tests/test_functionality.py:101 b 1 0.000000 0.120000 0.100197 +- ''' +- self.assert_traces_almost_equal(r1, stats) +- self.assertEqual(len(stats), 2) +- stats = yappi.get_func_stats( +- filter_callback=lambda x: yappi. +- module_matches(x, [sys.modules[__name__]]) +- ) +- r1 = ''' +- tests/test_functionality.py:98 a 2 0.000000 0.230130 0.115065 +- tests/test_functionality.py:101 b 1 0.000000 0.120000 0.109011 +- tests/test_functionality.py:104 c 1 0.000000 0.000002 0.000002 +- tests/test_functionality.py:107 d 1 0.000000 0.000001 0.000001 +- ''' +- self.assert_traces_almost_equal(r1, stats) +- self.assertEqual(len(stats), 4) +- +- stats = yappi.get_func_stats( +- filter_callback=lambda x: yappi.func_matches(x, [time.sleep]) +- ) +- self.assertEqual(len(stats), 1) +- r1 = ''' +- time.sleep 2 0.206804 0.220000 0.103402 +- ''' +- self.assert_traces_almost_equal(r1, stats) +- +- def test_print_formatting(self): +- +- def a(): +- pass +- +- def b(): +- a() +- +- func_cols = { +- 1: ("name", 48), +- 0: ("ncall", 5), +- 2: ("tsub", 8), +- } +- thread_cols = { +- 1: ("name", 48), +- 0: ("ttot", 8), +- } +- +- yappi.start() +- a() +- b() +- yappi.stop() +- fs = yappi.get_func_stats() +- cs = fs[1].children +- ts = yappi.get_thread_stats() +- #fs.print_all(out=sys.stderr, columns={1:("name", 70), }) +- #cs.print_all(out=sys.stderr, columns=func_cols) +- #ts.print_all(out=sys.stderr, columns=thread_cols) +- #cs.print_all(out=sys.stderr, columns={}) +- +- self.assertRaises( +- yappi.YappiError, fs.print_all, columns={1: ("namee", 9)} +- ) +- self.assertRaises( +- yappi.YappiError, cs.print_all, columns={1: ("dd", 0)} +- ) +- self.assertRaises( +- yappi.YappiError, ts.print_all, columns={1: ("tidd", 0)} +- ) +- +- def test_get_clock(self): +- yappi.set_clock_type('cpu') +- self.assertEqual('cpu', yappi.get_clock_type()) +- clock_info = yappi.get_clock_info() +- self.assertTrue('api' in clock_info) +- self.assertTrue('resolution' in clock_info) +- +- yappi.set_clock_type('wall') +- self.assertEqual('wall', yappi.get_clock_type()) +- +- t0 = yappi.get_clock_time() +- time.sleep(0.1) +- duration = yappi.get_clock_time() - t0 +- self.assertTrue(0.05 < duration < 0.3) +- +- def test_profile_decorator(self): +- +- def aggregate(func, stats): +- fname = "tests/%s.profile" % (func.__name__) +- try: +- stats.add(fname) +- except IOError: +- pass +- stats.save(fname) +- raise Exception("messing around") +- +- @yappi.profile(return_callback=aggregate) +- def a(x, y): +- if x + y == 25: +- raise Exception("") +- return x + y +- +- def b(): +- pass +- +- try: +- os.remove( +- "tests/a.profile" +- ) # remove the one from prev test, if available +- except: +- pass +- +- # global profile is on to mess things up +- yappi.start() +- b() +- +- # assert functionality and call function at same time +- try: +- self.assertEqual(a(1, 2), 3) +- except: +- pass +- try: +- self.assertEqual(a(2, 5), 7) +- except: +- pass +- try: +- a(4, 21) +- except: +- pass +- stats = yappi.get_func_stats().add("tests/a.profile") +- fsa = utils.find_stat_by_name(stats, 'a') +- self.assertEqual(fsa.ncall, 3) +- self.assertEqual(len(stats), 1) # b() should be cleared out. +- +- @yappi.profile(return_callback=aggregate) +- def count_down_rec(n): +- if n == 0: +- return +- count_down_rec(n - 1) +- +- try: +- os.remove( +- "tests/count_down_rec.profile" +- ) # remove the one from prev test, if available +- except: +- pass +- +- try: +- count_down_rec(4) +- except: +- pass +- try: +- count_down_rec(3) +- except: +- pass +- +- stats = yappi.YFuncStats("tests/count_down_rec.profile") +- fsrec = utils.find_stat_by_name(stats, 'count_down_rec') +- self.assertEqual(fsrec.ncall, 9) +- self.assertEqual(fsrec.nactualcall, 2) +- +- def test_strip_dirs(self): +- +- def a(): +- pass +- +- stats = utils.run_and_get_func_stats(a, ) +- stats.strip_dirs() +- fsa = utils.find_stat_by_name(stats, "a") +- self.assertEqual(fsa.module, os.path.basename(fsa.module)) +- +- @unittest.skipIf(os.name == "nt", "do not run on Windows") +- def test_run_as_script(self): +- import re +- p = subprocess.Popen( +- ['yappi', os.path.join('./tests', 'run_as_script.py')], +- stdout=subprocess.PIPE +- ) +- out, err = p.communicate() +- self.assertEqual(p.returncode, 0) +- func_stats, thread_stats = re.split( +- b'name\\s+id\\s+tid\\s+ttot\\s+scnt\\s*\n', out +- ) +- self.assertTrue(b'FancyThread' in thread_stats) +- +- def test_yappi_overhead(self): +- LOOP_COUNT = 100000 +- +- def a(): +- pass +- +- def b(): +- for i in range(LOOP_COUNT): +- a() +- +- t0 = time.time() +- yappi.start() +- b() +- yappi.stop() +- time_with_yappi = time.time() - t0 +- t0 = time.time() +- b() +- time_without_yappi = time.time() - t0 +- if time_without_yappi == 0: +- time_without_yappi = 0.000001 +- +- # in latest v0.82, I calculated this as close to "7.0" in my machine. +- # however, %83 of this overhead is coming from tickcount(). The other %17 +- # seems to have been evenly distributed to the internal bookkeeping +- # structures/algorithms which seems acceptable. Note that our test only +- # tests one function being profiled at-a-time in a short interval. +- # profiling high number of functions in a small time +- # is a different beast, (which is pretty unlikely in most applications) +- # So as a conclusion: I cannot see any optimization window for Yappi that +- # is worth implementing as we will only optimize %17 of the time. +- sys.stderr.write("\r\nYappi puts %0.1f times overhead to the profiled application in average.\r\n" % \ +- (time_with_yappi / time_without_yappi)) +- +- def test_clear_stats_while_running(self): +- +- def a(): +- pass +- +- yappi.start() +- a() +- yappi.clear_stats() +- a() +- stats = yappi.get_func_stats() +- fsa = utils.find_stat_by_name(stats, 'a') +- self.assertEqual(fsa.ncall, 1) +- +- def test_generator(self): +- +- def _gen(n): +- while (n > 0): +- yield n +- n -= 1 +- +- yappi.start() +- for x in _gen(5): +- pass +- self.assertTrue( +- yappi.convert2pstats(yappi.get_func_stats()) is not None +- ) +- +- def test_slice_child_stats_and_strip_dirs(self): +- +- def b(): +- for i in range(10000000): +- pass +- +- def a(): +- b() +- +- yappi.start(builtins=True) +- a() +- stats = yappi.get_func_stats() +- fsa = utils.find_stat_by_name(stats, 'a') +- fsb = utils.find_stat_by_name(stats, 'b') +- self.assertTrue(fsa.children[0:1] is not None) +- prev_afullname = fsa.full_name +- prev_bchildfullname = fsa.children[fsb].full_name +- stats.strip_dirs() +- self.assertTrue(len(prev_afullname) > len(fsa.full_name)) +- self.assertTrue( +- len(prev_bchildfullname) > len(fsa.children[fsb].full_name) +- ) +- +- def test_children_stat_functions(self): +- _timings = {"a_1": 5, "b_1": 3, "c_1": 1} +- _yappi._set_test_timings(_timings) +- +- def b(): +- pass +- +- def c(): +- pass +- +- def a(): +- b() +- c() +- +- yappi.start() +- a() +- b() # non-child call +- c() # non-child call +- stats = yappi.get_func_stats() +- fsa = utils.find_stat_by_name(stats, 'a') +- childs_of_a = fsa.children.get().sort("tavg", "desc") +- prev_item = None +- for item in childs_of_a: +- if prev_item: +- self.assertTrue(prev_item.tavg > item.tavg) +- prev_item = item +- childs_of_a.sort("name", "desc") +- prev_item = None +- for item in childs_of_a: +- if prev_item: +- self.assertTrue(prev_item.name > item.name) +- prev_item = item +- childs_of_a.clear() +- self.assertTrue(childs_of_a.empty()) +- +- def test_no_stats_different_clock_type_load(self): +- +- def a(): +- pass +- +- yappi.start() +- a() +- yappi.stop() +- yappi.get_func_stats().save("tests/ystats1.ys") +- yappi.clear_stats() +- yappi.set_clock_type("WALL") +- yappi.start() +- yappi.stop() +- stats = yappi.get_func_stats().add("tests/ystats1.ys") +- fsa = utils.find_stat_by_name(stats, 'a') +- self.assertTrue(fsa is not None) +- +- def test_subsequent_profile(self): +- _timings = {"a_1": 1, "b_1": 1} +- _yappi._set_test_timings(_timings) +- +- def a(): +- pass +- +- def b(): +- pass +- +- yappi.start() +- a() +- yappi.stop() +- yappi.start() +- b() +- yappi.stop() +- stats = yappi.get_func_stats() +- fsa = utils.find_stat_by_name(stats, 'a') +- fsb = utils.find_stat_by_name(stats, 'b') +- self.assertTrue(fsa is not None) +- self.assertTrue(fsb is not None) +- self.assertEqual(fsa.ttot, 1) +- self.assertEqual(fsb.ttot, 1) +- +- def test_lambda(self): +- f = lambda: time.sleep(0.3) +- yappi.set_clock_type("wall") +- yappi.start() +- f() +- stats = yappi.get_func_stats() +- fsa = utils.find_stat_by_name(stats, '') +- self.assertTrue(fsa.ttot > 0.1) +- +- def test_module_stress(self): +- self.assertEqual(yappi.is_running(), False) +- +- yappi.start() +- yappi.clear_stats() +- self.assertRaises(_yappi.error, yappi.set_clock_type, "wall") +- +- yappi.stop() +- yappi.clear_stats() +- yappi.set_clock_type("cpu") +- self.assertRaises(yappi.YappiError, yappi.set_clock_type, "dummy") +- self.assertEqual(yappi.is_running(), False) +- yappi.clear_stats() +- yappi.clear_stats() +- +- def test_stat_sorting(self): +- _timings = {"a_1": 13, "b_1": 10, "a_2": 6, "b_2": 1} +- _yappi._set_test_timings(_timings) +- +- self._ncall = 1 +- +- def a(): +- b() +- +- def b(): +- if self._ncall == 2: +- return +- self._ncall += 1 +- a() +- +- stats = utils.run_and_get_func_stats(a) +- stats = stats.sort("totaltime", "desc") +- prev_stat = None +- for stat in stats: +- if prev_stat: +- self.assertTrue(prev_stat.ttot >= stat.ttot) +- prev_stat = stat +- stats = stats.sort("totaltime", "asc") +- prev_stat = None +- for stat in stats: +- if prev_stat: +- self.assertTrue(prev_stat.ttot <= stat.ttot) +- prev_stat = stat +- stats = stats.sort("avgtime", "asc") +- prev_stat = None +- for stat in stats: +- if prev_stat: +- self.assertTrue(prev_stat.tavg <= stat.tavg) +- prev_stat = stat +- stats = stats.sort("name", "asc") +- prev_stat = None +- for stat in stats: +- if prev_stat: +- self.assertTrue(prev_stat.name <= stat.name) +- prev_stat = stat +- stats = stats.sort("subtime", "asc") +- prev_stat = None +- for stat in stats: +- if prev_stat: +- self.assertTrue(prev_stat.tsub <= stat.tsub) +- prev_stat = stat +- +- self.assertRaises( +- yappi.YappiError, stats.sort, "invalid_func_sorttype_arg" +- ) +- self.assertRaises( +- yappi.YappiError, stats.sort, "totaltime", +- "invalid_func_sortorder_arg" +- ) +- +- def test_start_flags(self): +- self.assertEqual(_yappi._get_start_flags(), None) +- yappi.start() +- +- def a(): +- pass +- +- a() +- self.assertEqual(_yappi._get_start_flags()["profile_builtins"], 0) +- self.assertEqual(_yappi._get_start_flags()["profile_multicontext"], 1) +- self.assertEqual(len(yappi.get_thread_stats()), 1) +- +- def test_builtin_profiling(self): +- +- def a(): +- time.sleep(0.4) # is a builtin function +- +- yappi.set_clock_type('wall') +- +- yappi.start(builtins=True) +- a() +- stats = yappi.get_func_stats() +- fsa = utils.find_stat_by_name(stats, 'sleep') +- self.assertTrue(fsa is not None) +- self.assertTrue(fsa.ttot > 0.3) +- yappi.stop() +- yappi.clear_stats() +- +- def a(): +- pass +- +- yappi.start() +- t = threading.Thread(target=a) +- t.start() +- t.join() +- stats = yappi.get_func_stats() +- +- def test_singlethread_profiling(self): +- yappi.set_clock_type('wall') +- +- def a(): +- time.sleep(0.2) +- +- class Worker1(threading.Thread): +- +- def a(self): +- time.sleep(0.3) +- +- def run(self): +- self.a() +- +- yappi.start(profile_threads=False) +- +- c = Worker1() +- c.start() +- c.join() +- a() +- stats = yappi.get_func_stats() +- fsa1 = utils.find_stat_by_name(stats, 'Worker1.a') +- fsa2 = utils.find_stat_by_name(stats, 'a') +- self.assertTrue(fsa1 is None) +- self.assertTrue(fsa2 is not None) +- self.assertTrue(fsa2.ttot > 0.1) +- +- def test_run(self): +- +- def profiled(): +- pass +- +- yappi.clear_stats() +- try: +- with yappi.run(): +- profiled() +- stats = yappi.get_func_stats() +- finally: +- yappi.clear_stats() +- +- self.assertIsNotNone(utils.find_stat_by_name(stats, 'profiled')) +- +- def test_run_recursive(self): +- +- def profiled(): +- pass +- +- def not_profiled(): +- pass +- +- yappi.clear_stats() +- try: +- with yappi.run(): +- with yappi.run(): +- profiled() +- # Profiling stopped here +- not_profiled() +- stats = yappi.get_func_stats() +- finally: +- yappi.clear_stats() +- +- self.assertIsNotNone(utils.find_stat_by_name(stats, 'profiled')) +- self.assertIsNone(utils.find_stat_by_name(stats, 'not_profiled')) +- +- +-class StatSaveScenarios(utils.YappiUnitTestCase): +- +- def test_pstats_conversion(self): +- +- def pstat_id(fs): +- return (fs.module, fs.lineno, fs.name) +- +- def a(): +- d() +- +- def b(): +- d() +- +- def c(): +- pass +- +- def d(): +- pass +- +- _timings = {"a_1": 12, "b_1": 7, "c_1": 5, "d_1": 2} +- _yappi._set_test_timings(_timings) +- stats = utils.run_and_get_func_stats(a, ) +- stats.strip_dirs() +- stats.save("tests/a1.pstats", type="pstat") +- fsa_pid = pstat_id(utils.find_stat_by_name(stats, "a")) +- fsd_pid = pstat_id(utils.find_stat_by_name(stats, "d")) +- yappi.clear_stats() +- _yappi._set_test_timings(_timings) +- stats = utils.run_and_get_func_stats(a, ) +- stats.strip_dirs() +- stats.save("tests/a2.pstats", type="pstat") +- yappi.clear_stats() +- _yappi._set_test_timings(_timings) +- stats = utils.run_and_get_func_stats(b, ) +- stats.strip_dirs() +- stats.save("tests/b1.pstats", type="pstat") +- fsb_pid = pstat_id(utils.find_stat_by_name(stats, "b")) +- yappi.clear_stats() +- _yappi._set_test_timings(_timings) +- stats = utils.run_and_get_func_stats(c, ) +- stats.strip_dirs() +- stats.save("tests/c1.pstats", type="pstat") +- fsc_pid = pstat_id(utils.find_stat_by_name(stats, "c")) +- +- # merge saved stats and check pstats values are correct +- import pstats +- p = pstats.Stats( +- 'tests/a1.pstats', 'tests/a2.pstats', 'tests/b1.pstats', +- 'tests/c1.pstats' +- ) +- p.strip_dirs() +- # ct = ttot, tt = tsub +- (cc, nc, tt, ct, callers) = p.stats[fsa_pid] +- self.assertEqual(cc, nc, 2) +- self.assertEqual(tt, 20) +- self.assertEqual(ct, 24) +- (cc, nc, tt, ct, callers) = p.stats[fsd_pid] +- self.assertEqual(cc, nc, 3) +- self.assertEqual(tt, 6) +- self.assertEqual(ct, 6) +- self.assertEqual(len(callers), 2) +- (cc, nc, tt, ct) = callers[fsa_pid] +- self.assertEqual(cc, nc, 2) +- self.assertEqual(tt, 4) +- self.assertEqual(ct, 4) +- (cc, nc, tt, ct) = callers[fsb_pid] +- self.assertEqual(cc, nc, 1) +- self.assertEqual(tt, 2) +- self.assertEqual(ct, 2) +- +- def test_merge_stats(self): +- _timings = { +- "a_1": 15, +- "b_1": 14, +- "c_1": 12, +- "d_1": 10, +- "e_1": 9, +- "f_1": 7, +- "g_1": 6, +- "h_1": 5, +- "i_1": 1 +- } +- _yappi._set_test_timings(_timings) +- +- def a(): +- b() +- +- def b(): +- c() +- +- def c(): +- d() +- +- def d(): +- e() +- +- def e(): +- f() +- +- def f(): +- g() +- +- def g(): +- h() +- +- def h(): +- i() +- +- def i(): +- pass +- +- yappi.start() +- a() +- a() +- yappi.stop() +- stats = yappi.get_func_stats() +- self.assertRaises( +- NotImplementedError, stats.save, "", "INVALID_SAVE_TYPE" +- ) +- stats.save("tests/ystats2.ys") +- yappi.clear_stats() +- _yappi._set_test_timings(_timings) +- yappi.start() +- a() +- stats = yappi.get_func_stats().add("tests/ystats2.ys") +- fsa = utils.find_stat_by_name(stats, "a") +- fsb = utils.find_stat_by_name(stats, "b") +- fsc = utils.find_stat_by_name(stats, "c") +- fsd = utils.find_stat_by_name(stats, "d") +- fse = utils.find_stat_by_name(stats, "e") +- fsf = utils.find_stat_by_name(stats, "f") +- fsg = utils.find_stat_by_name(stats, "g") +- fsh = utils.find_stat_by_name(stats, "h") +- fsi = utils.find_stat_by_name(stats, "i") +- self.assertEqual(fsa.ttot, 45) +- self.assertEqual(fsa.ncall, 3) +- self.assertEqual(fsa.nactualcall, 3) +- self.assertEqual(fsa.tsub, 3) +- self.assertEqual(fsa.children[fsb].ttot, fsb.ttot) +- self.assertEqual(fsa.children[fsb].tsub, fsb.tsub) +- self.assertEqual(fsb.children[fsc].ttot, fsc.ttot) +- self.assertEqual(fsb.children[fsc].tsub, fsc.tsub) +- self.assertEqual(fsc.tsub, 6) +- self.assertEqual(fsc.children[fsd].ttot, fsd.ttot) +- self.assertEqual(fsc.children[fsd].tsub, fsd.tsub) +- self.assertEqual(fsd.children[fse].ttot, fse.ttot) +- self.assertEqual(fsd.children[fse].tsub, fse.tsub) +- self.assertEqual(fse.children[fsf].ttot, fsf.ttot) +- self.assertEqual(fse.children[fsf].tsub, fsf.tsub) +- self.assertEqual(fsf.children[fsg].ttot, fsg.ttot) +- self.assertEqual(fsf.children[fsg].tsub, fsg.tsub) +- self.assertEqual(fsg.ttot, 18) +- self.assertEqual(fsg.tsub, 3) +- self.assertEqual(fsg.children[fsh].ttot, fsh.ttot) +- self.assertEqual(fsg.children[fsh].tsub, fsh.tsub) +- self.assertEqual(fsh.ttot, 15) +- self.assertEqual(fsh.tsub, 12) +- self.assertEqual(fsh.tavg, 5) +- self.assertEqual(fsh.children[fsi].ttot, fsi.ttot) +- self.assertEqual(fsh.children[fsi].tsub, fsi.tsub) +- #stats.debug_print() +- +- def test_merge_multithreaded_stats(self): +- import _yappi +- timings = {"a_1": 2, "b_1": 1} +- _yappi._set_test_timings(timings) +- +- def a(): +- pass +- +- def b(): +- pass +- +- yappi.start() +- t = threading.Thread(target=a) +- t.start() +- t.join() +- t = threading.Thread(target=b) +- t.start() +- t.join() +- yappi.get_func_stats().save("tests/ystats1.ys") +- yappi.clear_stats() +- _yappi._set_test_timings(timings) +- self.assertEqual(len(yappi.get_func_stats()), 0) +- self.assertEqual(len(yappi.get_thread_stats()), 1) +- t = threading.Thread(target=a) +- t.start() +- t.join() +- +- self.assertEqual(_yappi._get_start_flags()["profile_builtins"], 0) +- self.assertEqual(_yappi._get_start_flags()["profile_multicontext"], 1) +- yappi.get_func_stats().save("tests/ystats2.ys") +- +- stats = yappi.YFuncStats([ +- "tests/ystats1.ys", +- "tests/ystats2.ys", +- ]) +- fsa = utils.find_stat_by_name(stats, "a") +- fsb = utils.find_stat_by_name(stats, "b") +- self.assertEqual(fsa.ncall, 2) +- self.assertEqual(fsb.ncall, 1) +- self.assertEqual(fsa.tsub, fsa.ttot, 4) +- self.assertEqual(fsb.tsub, fsb.ttot, 1) +- +- def test_merge_load_different_clock_types(self): +- yappi.start(builtins=True) +- +- def a(): +- b() +- +- def b(): +- c() +- +- def c(): +- pass +- +- t = threading.Thread(target=a) +- t.start() +- t.join() +- yappi.get_func_stats().sort("name", "asc").save("tests/ystats1.ys") +- yappi.stop() +- yappi.clear_stats() +- yappi.start(builtins=False) +- t = threading.Thread(target=a) +- t.start() +- t.join() +- yappi.get_func_stats().save("tests/ystats2.ys") +- yappi.stop() +- self.assertRaises(_yappi.error, yappi.set_clock_type, "wall") +- yappi.clear_stats() +- yappi.set_clock_type("wall") +- yappi.start() +- t = threading.Thread(target=a) +- t.start() +- t.join() +- yappi.get_func_stats().save("tests/ystats3.ys") +- self.assertRaises( +- yappi.YappiError, +- yappi.YFuncStats().add("tests/ystats1.ys").add, "tests/ystats3.ys" +- ) +- stats = yappi.YFuncStats(["tests/ystats1.ys", +- "tests/ystats2.ys"]).sort("name") +- fsa = utils.find_stat_by_name(stats, "a") +- fsb = utils.find_stat_by_name(stats, "b") +- fsc = utils.find_stat_by_name(stats, "c") +- self.assertEqual(fsa.ncall, 2) +- self.assertEqual(fsa.ncall, fsb.ncall, fsc.ncall) +- +- def test_merge_aabab_aabbc(self): +- _timings = { +- "a_1": 15, +- "a_2": 14, +- "b_1": 12, +- "a_3": 10, +- "b_2": 9, +- "c_1": 4 +- } +- _yappi._set_test_timings(_timings) +- +- def a(): +- if self._ncall == 1: +- self._ncall += 1 +- a() +- elif self._ncall == 5: +- self._ncall += 1 +- a() +- else: +- b() +- +- def b(): +- if self._ncall == 2: +- self._ncall += 1 +- a() +- elif self._ncall == 6: +- self._ncall += 1 +- b() +- elif self._ncall == 7: +- c() +- else: +- return +- +- def c(): +- pass +- +- self._ncall = 1 +- stats = utils.run_and_get_func_stats(a, ) +- stats.save("tests/ystats1.ys") +- yappi.clear_stats() +- _yappi._set_test_timings(_timings) +- #stats.print_all() +- +- self._ncall = 5 +- stats = utils.run_and_get_func_stats(a, ) +- stats.save("tests/ystats2.ys") +- +- #stats.print_all() +- +- def a(): # same name but another function(code object) +- pass +- +- yappi.start() +- a() +- stats = yappi.get_func_stats().add( +- ["tests/ystats1.ys", "tests/ystats2.ys"] +- ) +- #stats.print_all() +- self.assertEqual(len(stats), 4) +- +- fsa = None +- for stat in stats: +- if stat.name == "a" and stat.ttot == 45: +- fsa = stat +- break +- self.assertTrue(fsa is not None) +- +- self.assertEqual(fsa.ncall, 7) +- self.assertEqual(fsa.nactualcall, 3) +- self.assertEqual(fsa.ttot, 45) +- self.assertEqual(fsa.tsub, 10) +- fsb = utils.find_stat_by_name(stats, "b") +- fsc = utils.find_stat_by_name(stats, "c") +- self.assertEqual(fsb.ncall, 6) +- self.assertEqual(fsb.nactualcall, 3) +- self.assertEqual(fsb.ttot, 36) +- self.assertEqual(fsb.tsub, 27) +- self.assertEqual(fsb.tavg, 6) +- self.assertEqual(fsc.ttot, 8) +- self.assertEqual(fsc.tsub, 8) +- self.assertEqual(fsc.tavg, 4) +- self.assertEqual(fsc.nactualcall, fsc.ncall, 2) +- +- +-class MultithreadedScenarios(utils.YappiUnitTestCase): +- +- def test_issue_32(self): +- ''' +- Start yappi from different thread and we get Internal Error(15) as +- the current_ctx_id() called while enumerating the threads in start() +- and as it does not swap to the enumerated ThreadState* the THreadState_GetDict() +- returns wrong object and thus sets an invalid id for the _ctx structure. +- +- When this issue happens multiple Threads have same tid as the internal ts_ptr +- will be same for different contexts. So, let's see if that happens +- ''' +- +- def foo(): +- time.sleep(0.2) +- +- def bar(): +- time.sleep(0.1) +- +- def thread_func(): +- yappi.set_clock_type("wall") +- yappi.start() +- +- bar() +- +- t = threading.Thread(target=thread_func) +- t.start() +- t.join() +- +- foo() +- +- yappi.stop() +- +- thread_ids = set() +- for tstat in yappi.get_thread_stats(): +- self.assertTrue(tstat.tid not in thread_ids) +- thread_ids.add(tstat.tid) +- +- def test_subsequent_profile(self): +- WORKER_COUNT = 5 +- +- def a(): +- pass +- +- def b(): +- pass +- +- def c(): +- pass +- +- _timings = { +- "a_1": 3, +- "b_1": 2, +- "c_1": 1, +- } +- +- yappi.start() +- +- def g(): +- pass +- +- g() +- yappi.stop() +- yappi.clear_stats() +- _yappi._set_test_timings(_timings) +- yappi.start() +- +- _dummy = [] +- for i in range(WORKER_COUNT): +- t = threading.Thread(target=a) +- t.start() +- t.join() +- for i in range(WORKER_COUNT): +- t = threading.Thread(target=b) +- t.start() +- _dummy.append(t) +- t.join() +- for i in range(WORKER_COUNT): +- t = threading.Thread(target=a) +- t.start() +- t.join() +- for i in range(WORKER_COUNT): +- t = threading.Thread(target=c) +- t.start() +- t.join() +- yappi.stop() +- yappi.start() +- +- def f(): +- pass +- +- f() +- stats = yappi.get_func_stats() +- fsa = utils.find_stat_by_name(stats, 'a') +- fsb = utils.find_stat_by_name(stats, 'b') +- fsc = utils.find_stat_by_name(stats, 'c') +- self.assertEqual(fsa.ncall, 10) +- self.assertEqual(fsb.ncall, 5) +- self.assertEqual(fsc.ncall, 5) +- self.assertEqual(fsa.ttot, fsa.tsub, 30) +- self.assertEqual(fsb.ttot, fsb.tsub, 10) +- self.assertEqual(fsc.ttot, fsc.tsub, 5) +- +- # MACOSx optimizes by only creating one worker thread +- self.assertTrue(len(yappi.get_thread_stats()) >= 2) +- +- def test_basic(self): +- yappi.set_clock_type('wall') +- +- def dummy(): +- pass +- +- def a(): +- time.sleep(0.2) +- +- class Worker1(threading.Thread): +- +- def a(self): +- time.sleep(0.3) +- +- def run(self): +- self.a() +- +- yappi.start(builtins=False, profile_threads=True) +- +- c = Worker1() +- c.start() +- c.join() +- a() +- stats = yappi.get_func_stats() +- fsa1 = utils.find_stat_by_name(stats, 'Worker1.a') +- fsa2 = utils.find_stat_by_name(stats, 'a') +- self.assertTrue(fsa1 is not None) +- self.assertTrue(fsa2 is not None) +- self.assertTrue(fsa1.ttot > 0.2) +- self.assertTrue(fsa2.ttot > 0.1) +- tstats = yappi.get_thread_stats() +- self.assertEqual(len(tstats), 2) +- tsa = utils.find_stat_by_name(tstats, 'Worker1') +- tsm = utils.find_stat_by_name(tstats, '_MainThread') +- dummy() # call dummy to force ctx name to be retrieved again. +- self.assertTrue(tsa is not None) +- # TODO: I put dummy() to fix below, remove the comments after a while. +- self.assertTrue( # FIX: I see this fails sometimes? +- tsm is not None, +- 'Could not find "_MainThread". Found: %s' % (', '.join(utils.get_stat_names(tstats)))) +- +- def test_ctx_stats(self): +- from threading import Thread +- DUMMY_WORKER_COUNT = 5 +- yappi.start() +- +- class DummyThread(Thread): +- pass +- +- def dummy(): +- pass +- +- def dummy_worker(): +- pass +- +- for i in range(DUMMY_WORKER_COUNT): +- t = DummyThread(target=dummy_worker) +- t.start() +- t.join() +- yappi.stop() +- stats = yappi.get_thread_stats() +- tsa = utils.find_stat_by_name(stats, "DummyThread") +- self.assertTrue(tsa is not None) +- yappi.clear_stats() +- time.sleep(1.0) +- _timings = { +- "a_1": 6, +- "b_1": 5, +- "c_1": 3, +- "d_1": 1, +- "a_2": 4, +- "b_2": 3, +- "c_2": 2, +- "d_2": 1 +- } +- _yappi._set_test_timings(_timings) +- +- class Thread1(Thread): +- pass +- +- class Thread2(Thread): +- pass +- +- def a(): +- b() +- +- def b(): +- c() +- +- def c(): +- d() +- +- def d(): +- time.sleep(0.6) +- +- yappi.set_clock_type("wall") +- yappi.start() +- t1 = Thread1(target=a) +- t1.start() +- t2 = Thread2(target=a) +- t2.start() +- t1.join() +- t2.join() +- stats = yappi.get_thread_stats() +- +- # the fist clear_stats clears the context table? +- tsa = utils.find_stat_by_name(stats, "DummyThread") +- self.assertTrue(tsa is None) +- +- tst1 = utils.find_stat_by_name(stats, "Thread1") +- tst2 = utils.find_stat_by_name(stats, "Thread2") +- tsmain = utils.find_stat_by_name(stats, "_MainThread") +- dummy() # call dummy to force ctx name to be retrieved again. +- self.assertTrue(len(stats) == 3) +- self.assertTrue(tst1 is not None) +- self.assertTrue(tst2 is not None) +- # TODO: I put dummy() to fix below, remove the comments after a while. +- self.assertTrue( # FIX: I see this fails sometimes +- tsmain is not None, +- 'Could not find "_MainThread". Found: %s' % (', '.join(utils.get_stat_names(stats)))) +- self.assertTrue(1.0 > tst2.ttot >= 0.5) +- self.assertTrue(1.0 > tst1.ttot >= 0.5) +- +- # test sorting of the ctx stats +- stats = stats.sort("totaltime", "desc") +- prev_stat = None +- for stat in stats: +- if prev_stat: +- self.assertTrue(prev_stat.ttot >= stat.ttot) +- prev_stat = stat +- stats = stats.sort("totaltime", "asc") +- prev_stat = None +- for stat in stats: +- if prev_stat: +- self.assertTrue(prev_stat.ttot <= stat.ttot) +- prev_stat = stat +- stats = stats.sort("schedcount", "desc") +- prev_stat = None +- for stat in stats: +- if prev_stat: +- self.assertTrue(prev_stat.sched_count >= stat.sched_count) +- prev_stat = stat +- stats = stats.sort("name", "desc") +- prev_stat = None +- for stat in stats: +- if prev_stat: +- self.assertTrue(prev_stat.name.lower() >= stat.name.lower()) +- prev_stat = stat +- self.assertRaises( +- yappi.YappiError, stats.sort, "invalid_thread_sorttype_arg" +- ) +- self.assertRaises( +- yappi.YappiError, stats.sort, "invalid_thread_sortorder_arg" +- ) +- +- def test_ctx_stats_cpu(self): +- +- def get_thread_name(): +- try: +- return threading.current_thread().name +- except AttributeError: +- return "Anonymous" +- +- def burn_cpu(sec): +- t0 = yappi.get_clock_time() +- elapsed = 0 +- while (elapsed < sec): +- for _ in range(1000): +- pass +- elapsed = yappi.get_clock_time() - t0 +- +- def test(): +- +- ts = [] +- for i in (0.01, 0.05, 0.1): +- t = threading.Thread(target=burn_cpu, args=(i, )) +- t.name = "burn_cpu-%s" % str(i) +- t.start() +- ts.append(t) +- for t in ts: +- t.join() +- +- yappi.set_clock_type("cpu") +- yappi.set_context_name_callback(get_thread_name) +- +- yappi.start() +- +- test() +- +- yappi.stop() +- +- tstats = yappi.get_thread_stats() +- r1 = ''' +- burn_cpu-0.1 3 123145356058624 0.100105 8 +- burn_cpu-0.05 2 123145361313792 0.050149 8 +- burn_cpu-0.01 1 123145356058624 0.010127 2 +- MainThread 0 4321620864 0.001632 6 +- ''' +- self.assert_ctx_stats_almost_equal(r1, tstats) +- +- def test_producer_consumer_with_queues(self): +- # we currently just stress yappi, no functionality test is done here. +- yappi.start() +- if utils.is_py3x(): +- from queue import Queue +- else: +- from Queue import Queue +- from threading import Thread +- WORKER_THREAD_COUNT = 50 +- WORK_ITEM_COUNT = 2000 +- +- def worker(): +- while True: +- item = q.get() +- # do the work with item +- q.task_done() +- +- q = Queue() +- for i in range(WORKER_THREAD_COUNT): +- t = Thread(target=worker) +- t.daemon = True +- t.start() +- +- for item in range(WORK_ITEM_COUNT): +- q.put(item) +- q.join() # block until all tasks are done +- #yappi.get_func_stats().sort("callcount").print_all() +- yappi.stop() +- +- def test_temporary_lock_waiting(self): +- yappi.start() +- _lock = threading.Lock() +- +- def worker(): +- _lock.acquire() +- try: +- time.sleep(1.0) +- finally: +- _lock.release() +- +- t1 = threading.Thread(target=worker) +- t2 = threading.Thread(target=worker) +- t1.start() +- t2.start() +- t1.join() +- t2.join() +- #yappi.get_func_stats().sort("callcount").print_all() +- yappi.stop() +- +- @unittest.skipIf(os.name != "posix", "requires Posix compliant OS") +- def test_signals_with_blocking_calls(self): +- import signal, os, time +- +- # just to verify if signal is handled correctly and stats/yappi are not corrupted. +- def handler(signum, frame): +- raise Exception("Signal handler executed!") +- +- yappi.start() +- signal.signal(signal.SIGALRM, handler) +- signal.alarm(1) +- self.assertRaises(Exception, time.sleep, 2) +- stats = yappi.get_func_stats() +- fsh = utils.find_stat_by_name(stats, "handler") +- self.assertTrue(fsh is not None) +- +- @unittest.skipIf(not sys.version_info >= (3, 2), "requires Python 3.2") +- def test_concurrent_futures(self): +- yappi.start() +- from concurrent.futures import ThreadPoolExecutor +- with ThreadPoolExecutor(max_workers=5) as executor: +- f = executor.submit(pow, 5, 2) +- self.assertEqual(f.result(), 25) +- time.sleep(1.0) +- yappi.stop() +- +- @unittest.skipIf(not sys.version_info >= (3, 2), "requires Python 3.2") +- def test_barrier(self): +- yappi.start() +- b = threading.Barrier(2, timeout=1) +- +- def worker(): +- try: +- b.wait() +- except threading.BrokenBarrierError: +- pass +- except Exception: +- raise Exception("BrokenBarrierError not raised") +- +- t1 = threading.Thread(target=worker) +- t1.start() +- #b.wait() +- t1.join() +- yappi.stop() +- +- +-class NonRecursiveFunctions(utils.YappiUnitTestCase): +- +- def test_abcd(self): +- _timings = {"a_1": 6, "b_1": 5, "c_1": 3, "d_1": 1} +- _yappi._set_test_timings(_timings) +- +- def a(): +- b() +- +- def b(): +- c() +- +- def c(): +- d() +- +- def d(): +- pass +- +- stats = utils.run_and_get_func_stats(a) +- fsa = utils.find_stat_by_name(stats, 'a') +- fsb = utils.find_stat_by_name(stats, 'b') +- fsc = utils.find_stat_by_name(stats, 'c') +- fsd = utils.find_stat_by_name(stats, 'd') +- cfsab = fsa.children[fsb] +- cfsbc = fsb.children[fsc] +- cfscd = fsc.children[fsd] +- +- self.assertEqual(fsa.ttot, 6) +- self.assertEqual(fsa.tsub, 1) +- self.assertEqual(fsb.ttot, 5) +- self.assertEqual(fsb.tsub, 2) +- self.assertEqual(fsc.ttot, 3) +- self.assertEqual(fsc.tsub, 2) +- self.assertEqual(fsd.ttot, 1) +- self.assertEqual(fsd.tsub, 1) +- self.assertEqual(cfsab.ttot, 5) +- self.assertEqual(cfsab.tsub, 2) +- self.assertEqual(cfsbc.ttot, 3) +- self.assertEqual(cfsbc.tsub, 2) +- self.assertEqual(cfscd.ttot, 1) +- self.assertEqual(cfscd.tsub, 1) +- +- def test_stop_in_middle(self): +- _timings = {"a_1": 6, "b_1": 4} +- _yappi._set_test_timings(_timings) +- +- def a(): +- b() +- yappi.stop() +- +- def b(): +- time.sleep(0.2) +- +- yappi.start() +- a() +- stats = yappi.get_func_stats() +- fsa = utils.find_stat_by_name(stats, 'a') +- fsb = utils.find_stat_by_name(stats, 'b') +- +- self.assertEqual(fsa.ncall, 1) +- self.assertEqual(fsa.nactualcall, 0) +- self.assertEqual(fsa.ttot, 0) # no call_leave called +- self.assertEqual(fsa.tsub, 0) # no call_leave called +- self.assertEqual(fsb.ttot, 4) +- +- +-class RecursiveFunctions(utils.YappiUnitTestCase): +- +- def test_fibonacci(self): +- +- def fib(n): +- if n > 1: +- return fib(n - 1) + fib(n - 2) +- else: +- return n +- +- stats = utils.run_and_get_func_stats(fib, 22) +- fs = utils.find_stat_by_name(stats, 'fib') +- self.assertEqual(fs.ncall, 57313) +- self.assertEqual(fs.ttot, fs.tsub) +- +- def test_abcadc(self): +- _timings = { +- "a_1": 20, +- "b_1": 19, +- "c_1": 17, +- "a_2": 13, +- "d_1": 12, +- "c_2": 10, +- "a_3": 5 +- } +- _yappi._set_test_timings(_timings) +- +- def a(n): +- if n == 3: +- return +- if n == 1 + 1: +- d(n) +- else: +- b(n) +- +- def b(n): +- c(n) +- +- def c(n): +- a(n + 1) +- +- def d(n): +- c(n) +- +- stats = utils.run_and_get_func_stats(a, 1) +- fsa = utils.find_stat_by_name(stats, 'a') +- fsb = utils.find_stat_by_name(stats, 'b') +- fsc = utils.find_stat_by_name(stats, 'c') +- fsd = utils.find_stat_by_name(stats, 'd') +- self.assertEqual(fsa.ncall, 3) +- self.assertEqual(fsa.nactualcall, 1) +- self.assertEqual(fsa.ttot, 20) +- self.assertEqual(fsa.tsub, 7) +- self.assertEqual(fsb.ttot, 19) +- self.assertEqual(fsb.tsub, 2) +- self.assertEqual(fsc.ttot, 17) +- self.assertEqual(fsc.tsub, 9) +- self.assertEqual(fsd.ttot, 12) +- self.assertEqual(fsd.tsub, 2) +- cfsca = fsc.children[fsa] +- self.assertEqual(cfsca.nactualcall, 0) +- self.assertEqual(cfsca.ncall, 2) +- self.assertEqual(cfsca.ttot, 13) +- self.assertEqual(cfsca.tsub, 6) +- +- def test_aaaa(self): +- _timings = {"d_1": 9, "d_2": 7, "d_3": 3, "d_4": 2} +- _yappi._set_test_timings(_timings) +- +- def d(n): +- if n == 3: +- return +- d(n + 1) +- +- stats = utils.run_and_get_func_stats(d, 0) +- fsd = utils.find_stat_by_name(stats, 'd') +- self.assertEqual(fsd.ncall, 4) +- self.assertEqual(fsd.nactualcall, 1) +- self.assertEqual(fsd.ttot, 9) +- self.assertEqual(fsd.tsub, 9) +- cfsdd = fsd.children[fsd] +- self.assertEqual(cfsdd.ttot, 7) +- self.assertEqual(cfsdd.tsub, 7) +- self.assertEqual(cfsdd.ncall, 3) +- self.assertEqual(cfsdd.nactualcall, 0) +- +- def test_abcabc(self): +- _timings = { +- "a_1": 20, +- "b_1": 19, +- "c_1": 17, +- "a_2": 13, +- "b_2": 11, +- "c_2": 9, +- "a_3": 6 +- } +- _yappi._set_test_timings(_timings) +- +- def a(n): +- if n == 3: +- return +- else: +- b(n) +- +- def b(n): +- c(n) +- +- def c(n): +- a(n + 1) +- +- stats = utils.run_and_get_func_stats(a, 1) +- fsa = utils.find_stat_by_name(stats, 'a') +- fsb = utils.find_stat_by_name(stats, 'b') +- fsc = utils.find_stat_by_name(stats, 'c') +- self.assertEqual(fsa.ncall, 3) +- self.assertEqual(fsa.nactualcall, 1) +- self.assertEqual(fsa.ttot, 20) +- self.assertEqual(fsa.tsub, 9) +- self.assertEqual(fsb.ttot, 19) +- self.assertEqual(fsb.tsub, 4) +- self.assertEqual(fsc.ttot, 17) +- self.assertEqual(fsc.tsub, 7) +- cfsab = fsa.children[fsb] +- cfsbc = fsb.children[fsc] +- cfsca = fsc.children[fsa] +- self.assertEqual(cfsab.ttot, 19) +- self.assertEqual(cfsab.tsub, 4) +- self.assertEqual(cfsbc.ttot, 17) +- self.assertEqual(cfsbc.tsub, 7) +- self.assertEqual(cfsca.ttot, 13) +- self.assertEqual(cfsca.tsub, 8) +- +- def test_abcbca(self): +- _timings = {"a_1": 10, "b_1": 9, "c_1": 7, "b_2": 4, "c_2": 2, "a_2": 1} +- _yappi._set_test_timings(_timings) +- self._ncall = 1 +- +- def a(): +- if self._ncall == 1: +- b() +- else: +- return +- +- def b(): +- c() +- +- def c(): +- if self._ncall == 1: +- self._ncall += 1 +- b() +- else: +- a() +- +- stats = utils.run_and_get_func_stats(a) +- fsa = utils.find_stat_by_name(stats, 'a') +- fsb = utils.find_stat_by_name(stats, 'b') +- fsc = utils.find_stat_by_name(stats, 'c') +- cfsab = fsa.children[fsb] +- cfsbc = fsb.children[fsc] +- cfsca = fsc.children[fsa] +- self.assertEqual(fsa.ttot, 10) +- self.assertEqual(fsa.tsub, 2) +- self.assertEqual(fsb.ttot, 9) +- self.assertEqual(fsb.tsub, 4) +- self.assertEqual(fsc.ttot, 7) +- self.assertEqual(fsc.tsub, 4) +- self.assertEqual(cfsab.ttot, 9) +- self.assertEqual(cfsab.tsub, 2) +- self.assertEqual(cfsbc.ttot, 7) +- self.assertEqual(cfsbc.tsub, 4) +- self.assertEqual(cfsca.ttot, 1) +- self.assertEqual(cfsca.tsub, 1) +- self.assertEqual(cfsca.ncall, 1) +- self.assertEqual(cfsca.nactualcall, 0) +- +- def test_aabccb(self): +- _timings = { +- "a_1": 13, +- "a_2": 11, +- "b_1": 9, +- "c_1": 5, +- "c_2": 3, +- "b_2": 1 +- } +- _yappi._set_test_timings(_timings) +- self._ncall = 1 +- +- def a(): +- if self._ncall == 1: +- self._ncall += 1 +- a() +- else: +- b() +- +- def b(): +- if self._ncall == 3: +- return +- else: +- c() +- +- def c(): +- if self._ncall == 2: +- self._ncall += 1 +- c() +- else: +- b() +- +- stats = utils.run_and_get_func_stats(a) +- fsa = utils.find_stat_by_name(stats, 'a') +- fsb = utils.find_stat_by_name(stats, 'b') +- fsc = utils.find_stat_by_name(stats, 'c') +- cfsaa = fsa.children[fsa.index] +- cfsab = fsa.children[fsb] +- cfsbc = fsb.children[fsc.full_name] +- cfscc = fsc.children[fsc] +- cfscb = fsc.children[fsb] +- self.assertEqual(fsb.ttot, 9) +- self.assertEqual(fsb.tsub, 5) +- self.assertEqual(cfsbc.ttot, 5) +- self.assertEqual(cfsbc.tsub, 2) +- self.assertEqual(fsa.ttot, 13) +- self.assertEqual(fsa.tsub, 4) +- self.assertEqual(cfsab.ttot, 9) +- self.assertEqual(cfsab.tsub, 4) +- self.assertEqual(cfsaa.ttot, 11) +- self.assertEqual(cfsaa.tsub, 2) +- self.assertEqual(fsc.ttot, 5) +- self.assertEqual(fsc.tsub, 4) +- +- def test_abaa(self): +- _timings = {"a_1": 13, "b_1": 10, "a_2": 9, "a_3": 5} +- _yappi._set_test_timings(_timings) +- +- self._ncall = 1 +- +- def a(): +- if self._ncall == 1: +- b() +- elif self._ncall == 2: +- self._ncall += 1 +- a() +- else: +- return +- +- def b(): +- self._ncall += 1 +- a() +- +- stats = utils.run_and_get_func_stats(a) +- fsa = utils.find_stat_by_name(stats, 'a') +- fsb = utils.find_stat_by_name(stats, 'b') +- cfsaa = fsa.children[fsa] +- cfsba = fsb.children[fsa] +- self.assertEqual(fsb.ttot, 10) +- self.assertEqual(fsb.tsub, 1) +- self.assertEqual(fsa.ttot, 13) +- self.assertEqual(fsa.tsub, 12) +- self.assertEqual(cfsaa.ttot, 5) +- self.assertEqual(cfsaa.tsub, 5) +- self.assertEqual(cfsba.ttot, 9) +- self.assertEqual(cfsba.tsub, 4) +- +- def test_aabb(self): +- _timings = {"a_1": 13, "a_2": 10, "b_1": 9, "b_2": 5} +- _yappi._set_test_timings(_timings) +- +- self._ncall = 1 +- +- def a(): +- if self._ncall == 1: +- self._ncall += 1 +- a() +- elif self._ncall == 2: +- b() +- else: +- return +- +- def b(): +- if self._ncall == 2: +- self._ncall += 1 +- b() +- else: +- return +- +- stats = utils.run_and_get_func_stats(a) +- fsa = utils.find_stat_by_name(stats, 'a') +- fsb = utils.find_stat_by_name(stats, 'b') +- cfsaa = fsa.children[fsa] +- cfsab = fsa.children[fsb] +- cfsbb = fsb.children[fsb] +- self.assertEqual(fsa.ttot, 13) +- self.assertEqual(fsa.tsub, 4) +- self.assertEqual(fsb.ttot, 9) +- self.assertEqual(fsb.tsub, 9) +- self.assertEqual(cfsaa.ttot, 10) +- self.assertEqual(cfsaa.tsub, 1) +- self.assertEqual(cfsab.ttot, 9) +- self.assertEqual(cfsab.tsub, 4) +- self.assertEqual(cfsbb.ttot, 5) +- self.assertEqual(cfsbb.tsub, 5) +- +- def test_abbb(self): +- _timings = {"a_1": 13, "b_1": 10, "b_2": 6, "b_3": 1} +- _yappi._set_test_timings(_timings) +- +- self._ncall = 1 +- +- def a(): +- if self._ncall == 1: +- b() +- +- def b(): +- if self._ncall == 3: +- return +- self._ncall += 1 +- b() +- +- stats = utils.run_and_get_func_stats(a) +- fsa = utils.find_stat_by_name(stats, 'a') +- fsb = utils.find_stat_by_name(stats, 'b') +- cfsab = fsa.children[fsb] +- cfsbb = fsb.children[fsb] +- self.assertEqual(fsa.ttot, 13) +- self.assertEqual(fsa.tsub, 3) +- self.assertEqual(fsb.ttot, 10) +- self.assertEqual(fsb.tsub, 10) +- self.assertEqual(fsb.ncall, 3) +- self.assertEqual(fsb.nactualcall, 1) +- self.assertEqual(cfsab.ttot, 10) +- self.assertEqual(cfsab.tsub, 4) +- self.assertEqual(cfsbb.ttot, 6) +- self.assertEqual(cfsbb.tsub, 6) +- self.assertEqual(cfsbb.nactualcall, 0) +- self.assertEqual(cfsbb.ncall, 2) +- +- def test_aaab(self): +- _timings = {"a_1": 13, "a_2": 10, "a_3": 6, "b_1": 1} +- _yappi._set_test_timings(_timings) +- +- self._ncall = 1 +- +- def a(): +- if self._ncall == 3: +- b() +- return +- self._ncall += 1 +- a() +- +- def b(): +- return +- +- stats = utils.run_and_get_func_stats(a) +- fsa = utils.find_stat_by_name(stats, 'a') +- fsb = utils.find_stat_by_name(stats, 'b') +- cfsaa = fsa.children[fsa] +- cfsab = fsa.children[fsb] +- self.assertEqual(fsa.ttot, 13) +- self.assertEqual(fsa.tsub, 12) +- self.assertEqual(fsb.ttot, 1) +- self.assertEqual(fsb.tsub, 1) +- self.assertEqual(cfsaa.ttot, 10) +- self.assertEqual(cfsaa.tsub, 9) +- self.assertEqual(cfsab.ttot, 1) +- self.assertEqual(cfsab.tsub, 1) +- +- def test_abab(self): +- _timings = {"a_1": 13, "b_1": 10, "a_2": 6, "b_2": 1} +- _yappi._set_test_timings(_timings) +- +- self._ncall = 1 +- +- def a(): +- b() +- +- def b(): +- if self._ncall == 2: +- return +- self._ncall += 1 +- a() +- +- stats = utils.run_and_get_func_stats(a) +- fsa = utils.find_stat_by_name(stats, 'a') +- fsb = utils.find_stat_by_name(stats, 'b') +- cfsab = fsa.children[fsb] +- cfsba = fsb.children[fsa] +- self.assertEqual(fsa.ttot, 13) +- self.assertEqual(fsa.tsub, 8) +- self.assertEqual(fsb.ttot, 10) +- self.assertEqual(fsb.tsub, 5) +- self.assertEqual(cfsab.ttot, 10) +- self.assertEqual(cfsab.tsub, 5) +- self.assertEqual(cfsab.ncall, 2) +- self.assertEqual(cfsab.nactualcall, 1) +- self.assertEqual(cfsba.ttot, 6) +- self.assertEqual(cfsba.tsub, 5) +- +- +-if __name__ == '__main__': +- # import sys;sys.argv = ['', 'BasicUsage.test_run_as_script'] +- # import sys;sys.argv = ['', 'MultithreadedScenarios.test_subsequent_profile'] +- unittest.main() ++import os ++import sys ++import time ++import threading ++import unittest ++import yappi ++import _yappi ++import tests.utils as utils ++import multiprocessing # added to fix http://bugs.python.org/issue15881 for > Py2.6 ++import subprocess ++ ++_counter = 0 ++ ++ ++class BasicUsage(utils.YappiUnitTestCase): ++ ++ def test_callback_function_int_return_overflow(self): ++ # this test is just here to check if any errors are generated, as the err ++ # is printed in C side, I did not include it here. THere are ways to test ++ # this deterministically, I did not bother ++ import ctypes ++ ++ def _unsigned_overflow_margin(): ++ return 2**(ctypes.sizeof(ctypes.c_void_p) * 8) - 1 ++ ++ def foo(): ++ pass ++ ++ #with utils.captured_output() as (out, err): ++ yappi.set_context_id_callback(_unsigned_overflow_margin) ++ yappi.set_tag_callback(_unsigned_overflow_margin) ++ yappi.start() ++ foo() ++ ++ def test_issue60(self): ++ ++ def foo(): ++ buf = bytearray() ++ buf += b't' * 200 ++ view = memoryview(buf)[10:] ++ view = view.tobytes() ++ del buf[:10] # this throws exception ++ return view ++ ++ yappi.start(builtins=True) ++ foo() ++ self.assertTrue( ++ len( ++ yappi.get_func_stats( ++ filter_callback=lambda x: yappi. ++ func_matches(x, [memoryview.tobytes]) ++ ) ++ ) > 0 ++ ) ++ yappi.stop() ++ ++ def test_issue54(self): ++ ++ def _tag_cbk(): ++ global _counter ++ _counter += 1 ++ return _counter ++ ++ def a(): ++ pass ++ ++ def b(): ++ pass ++ ++ yappi.set_tag_callback(_tag_cbk) ++ yappi.start() ++ a() ++ a() ++ a() ++ yappi.stop() ++ stats = yappi.get_func_stats() ++ self.assertEqual(stats.pop().ncall, 3) # aggregated if no tag is given ++ stats = yappi.get_func_stats(tag=1) ++ ++ for i in range(1, 3): ++ stats = yappi.get_func_stats(tag=i) ++ stats = yappi.get_func_stats( ++ tag=i, filter_callback=lambda x: yappi.func_matches(x, [a]) ++ ) ++ ++ stat = stats.pop() ++ self.assertEqual(stat.ncall, 1) ++ ++ yappi.set_tag_callback(None) ++ yappi.clear_stats() ++ yappi.start() ++ b() ++ b() ++ stats = yappi.get_func_stats() ++ self.assertEqual(len(stats), 1) ++ stat = stats.pop() ++ self.assertEqual(stat.ncall, 2) ++ ++ def test_filter(self): ++ ++ def a(): ++ pass ++ ++ def b(): ++ a() ++ ++ def c(): ++ b() ++ ++ _TCOUNT = 5 ++ ++ ts = [] ++ yappi.start() ++ for i in range(_TCOUNT): ++ t = threading.Thread(target=c) ++ t.start() ++ ts.append(t) ++ ++ for t in ts: ++ t.join() ++ ++ yappi.stop() ++ ++ ctx_ids = [] ++ for tstat in yappi.get_thread_stats(): ++ if tstat.name == '_MainThread': ++ main_ctx_id = tstat.id ++ else: ++ ctx_ids.append(tstat.id) ++ ++ fstats = yappi.get_func_stats(filter={"ctx_id": 9}) ++ self.assertTrue(fstats.empty()) ++ fstats = yappi.get_func_stats( ++ filter={ ++ "ctx_id": main_ctx_id, ++ "name": "c" ++ } ++ ) # main thread ++ self.assertTrue(fstats.empty()) ++ ++ for i in ctx_ids: ++ fstats = yappi.get_func_stats( ++ filter={ ++ "ctx_id": i, ++ "name": "a", ++ "ncall": 1 ++ } ++ ) ++ self.assertEqual(fstats.pop().ncall, 1) ++ fstats = yappi.get_func_stats(filter={"ctx_id": i, "name": "b"}) ++ self.assertEqual(fstats.pop().ncall, 1) ++ fstats = yappi.get_func_stats(filter={"ctx_id": i, "name": "c"}) ++ self.assertEqual(fstats.pop().ncall, 1) ++ ++ yappi.clear_stats() ++ yappi.start(builtins=True) ++ time.sleep(0.1) ++ yappi.stop() ++ fstats = yappi.get_func_stats(filter={"module": "time"}) ++ self.assertEqual(len(fstats), 1) ++ ++ # invalid filters` ++ self.assertRaises( ++ Exception, yappi.get_func_stats, filter={'tag': "sss"} ++ ) ++ self.assertRaises( ++ Exception, yappi.get_func_stats, filter={'ctx_id': "None"} ++ ) ++ ++ def test_filter_callback(self): ++ ++ def a(): ++ time.sleep(0.1) ++ ++ def b(): ++ a() ++ ++ def c(): ++ pass ++ ++ def d(): ++ pass ++ ++ yappi.set_clock_type("wall") ++ yappi.start(builtins=True) ++ a() ++ b() ++ c() ++ d() ++ stats = yappi.get_func_stats( ++ filter_callback=lambda x: yappi.func_matches(x, [a, b]) ++ ) ++ #stats.print_all() ++ r1 = ''' ++ tests/test_functionality.py:98 a 2 0.000000 0.200350 0.100175 ++ tests/test_functionality.py:101 b 1 0.000000 0.120000 0.100197 ++ ''' ++ self.assert_traces_almost_equal(r1, stats) ++ self.assertEqual(len(stats), 2) ++ stats = yappi.get_func_stats( ++ filter_callback=lambda x: yappi. ++ module_matches(x, [sys.modules[__name__]]) ++ ) ++ r1 = ''' ++ tests/test_functionality.py:98 a 2 0.000000 0.230130 0.115065 ++ tests/test_functionality.py:101 b 1 0.000000 0.120000 0.109011 ++ tests/test_functionality.py:104 c 1 0.000000 0.000002 0.000002 ++ tests/test_functionality.py:107 d 1 0.000000 0.000001 0.000001 ++ ''' ++ self.assert_traces_almost_equal(r1, stats) ++ self.assertEqual(len(stats), 4) ++ ++ stats = yappi.get_func_stats( ++ filter_callback=lambda x: yappi.func_matches(x, [time.sleep]) ++ ) ++ self.assertEqual(len(stats), 1) ++ r1 = ''' ++ time.sleep 2 0.206804 0.220000 0.103402 ++ ''' ++ self.assert_traces_almost_equal(r1, stats) ++ ++ def test_print_formatting(self): ++ ++ def a(): ++ pass ++ ++ def b(): ++ a() ++ ++ func_cols = { ++ 1: ("name", 48), ++ 0: ("ncall", 5), ++ 2: ("tsub", 8), ++ } ++ thread_cols = { ++ 1: ("name", 48), ++ 0: ("ttot", 8), ++ } ++ ++ yappi.start() ++ a() ++ b() ++ yappi.stop() ++ fs = yappi.get_func_stats() ++ cs = fs[1].children ++ ts = yappi.get_thread_stats() ++ #fs.print_all(out=sys.stderr, columns={1:("name", 70), }) ++ #cs.print_all(out=sys.stderr, columns=func_cols) ++ #ts.print_all(out=sys.stderr, columns=thread_cols) ++ #cs.print_all(out=sys.stderr, columns={}) ++ ++ self.assertRaises( ++ yappi.YappiError, fs.print_all, columns={1: ("namee", 9)} ++ ) ++ self.assertRaises( ++ yappi.YappiError, cs.print_all, columns={1: ("dd", 0)} ++ ) ++ self.assertRaises( ++ yappi.YappiError, ts.print_all, columns={1: ("tidd", 0)} ++ ) ++ ++ def test_get_clock(self): ++ yappi.set_clock_type('cpu') ++ self.assertEqual('cpu', yappi.get_clock_type()) ++ clock_info = yappi.get_clock_info() ++ self.assertTrue('api' in clock_info) ++ self.assertTrue('resolution' in clock_info) ++ ++ yappi.set_clock_type('wall') ++ self.assertEqual('wall', yappi.get_clock_type()) ++ ++ t0 = yappi.get_clock_time() ++ time.sleep(0.1) ++ duration = yappi.get_clock_time() - t0 ++ self.assertTrue(0.05 < duration < 0.3) ++ ++ def test_profile_decorator(self): ++ ++ def aggregate(func, stats): ++ fname = "tests/%s.profile" % (func.__name__) ++ try: ++ stats.add(fname) ++ except IOError: ++ pass ++ stats.save(fname) ++ raise Exception("messing around") ++ ++ @yappi.profile(return_callback=aggregate) ++ def a(x, y): ++ if x + y == 25: ++ raise Exception("") ++ return x + y ++ ++ def b(): ++ pass ++ ++ try: ++ os.remove( ++ "tests/a.profile" ++ ) # remove the one from prev test, if available ++ except: ++ pass ++ ++ # global profile is on to mess things up ++ yappi.start() ++ b() ++ ++ # assert functionality and call function at same time ++ try: ++ self.assertEqual(a(1, 2), 3) ++ except: ++ pass ++ try: ++ self.assertEqual(a(2, 5), 7) ++ except: ++ pass ++ try: ++ a(4, 21) ++ except: ++ pass ++ stats = yappi.get_func_stats().add("tests/a.profile") ++ fsa = utils.find_stat_by_name(stats, 'a') ++ self.assertEqual(fsa.ncall, 3) ++ self.assertEqual(len(stats), 1) # b() should be cleared out. ++ ++ @yappi.profile(return_callback=aggregate) ++ def count_down_rec(n): ++ if n == 0: ++ return ++ count_down_rec(n - 1) ++ ++ try: ++ os.remove( ++ "tests/count_down_rec.profile" ++ ) # remove the one from prev test, if available ++ except: ++ pass ++ ++ try: ++ count_down_rec(4) ++ except: ++ pass ++ try: ++ count_down_rec(3) ++ except: ++ pass ++ ++ stats = yappi.YFuncStats("tests/count_down_rec.profile") ++ fsrec = utils.find_stat_by_name(stats, 'count_down_rec') ++ self.assertEqual(fsrec.ncall, 9) ++ self.assertEqual(fsrec.nactualcall, 2) ++ ++ def test_strip_dirs(self): ++ ++ def a(): ++ pass ++ ++ stats = utils.run_and_get_func_stats(a, ) ++ stats.strip_dirs() ++ fsa = utils.find_stat_by_name(stats, "a") ++ self.assertEqual(fsa.module, os.path.basename(fsa.module)) ++ ++ @unittest.skipIf(os.name == "nt", "do not run on Windows") ++ def test_run_as_script(self): ++ import re ++ p = subprocess.Popen( ++ ['yappi', os.path.join('./tests', 'run_as_script.py')], ++ stdout=subprocess.PIPE ++ ) ++ out, err = p.communicate() ++ self.assertEqual(p.returncode, 0) ++ func_stats, thread_stats = re.split( ++ b'name\\s+id\\s+tid\\s+ttot\\s+scnt\\s*\n', out ++ ) ++ self.assertTrue(b'FancyThread' in thread_stats) ++ ++ def test_yappi_overhead(self): ++ LOOP_COUNT = 100000 ++ ++ def a(): ++ pass ++ ++ def b(): ++ for i in range(LOOP_COUNT): ++ a() ++ ++ t0 = time.time() ++ yappi.start() ++ b() ++ yappi.stop() ++ time_with_yappi = time.time() - t0 ++ t0 = time.time() ++ b() ++ time_without_yappi = time.time() - t0 ++ if time_without_yappi == 0: ++ time_without_yappi = 0.000001 ++ ++ # in latest v0.82, I calculated this as close to "7.0" in my machine. ++ # however, %83 of this overhead is coming from tickcount(). The other %17 ++ # seems to have been evenly distributed to the internal bookkeeping ++ # structures/algorithms which seems acceptable. Note that our test only ++ # tests one function being profiled at-a-time in a short interval. ++ # profiling high number of functions in a small time ++ # is a different beast, (which is pretty unlikely in most applications) ++ # So as a conclusion: I cannot see any optimization window for Yappi that ++ # is worth implementing as we will only optimize %17 of the time. ++ sys.stderr.write("\r\nYappi puts %0.1f times overhead to the profiled application in average.\r\n" % \ ++ (time_with_yappi / time_without_yappi)) ++ ++ def test_clear_stats_while_running(self): ++ ++ def a(): ++ pass ++ ++ yappi.start() ++ a() ++ yappi.clear_stats() ++ a() ++ stats = yappi.get_func_stats() ++ fsa = utils.find_stat_by_name(stats, 'a') ++ self.assertEqual(fsa.ncall, 1) ++ ++ def test_generator(self): ++ ++ def _gen(n): ++ while (n > 0): ++ yield n ++ n -= 1 ++ ++ yappi.start() ++ for x in _gen(5): ++ pass ++ self.assertTrue( ++ yappi.convert2pstats(yappi.get_func_stats()) is not None ++ ) ++ ++ def test_slice_child_stats_and_strip_dirs(self): ++ ++ def b(): ++ for i in range(10000000): ++ pass ++ ++ def a(): ++ b() ++ ++ yappi.start(builtins=True) ++ a() ++ stats = yappi.get_func_stats() ++ fsa = utils.find_stat_by_name(stats, 'a') ++ fsb = utils.find_stat_by_name(stats, 'b') ++ self.assertTrue(fsa.children[0:1] is not None) ++ prev_afullname = fsa.full_name ++ prev_bchildfullname = fsa.children[fsb].full_name ++ stats.strip_dirs() ++ self.assertTrue(len(prev_afullname) > len(fsa.full_name)) ++ self.assertTrue( ++ len(prev_bchildfullname) > len(fsa.children[fsb].full_name) ++ ) ++ ++ def test_children_stat_functions(self): ++ _timings = {"a_1": 5, "b_1": 3, "c_1": 1} ++ _yappi._set_test_timings(_timings) ++ ++ def b(): ++ pass ++ ++ def c(): ++ pass ++ ++ def a(): ++ b() ++ c() ++ ++ yappi.start() ++ a() ++ b() # non-child call ++ c() # non-child call ++ stats = yappi.get_func_stats() ++ fsa = utils.find_stat_by_name(stats, 'a') ++ childs_of_a = fsa.children.get().sort("tavg", "desc") ++ prev_item = None ++ for item in childs_of_a: ++ if prev_item: ++ self.assertTrue(prev_item.tavg > item.tavg) ++ prev_item = item ++ childs_of_a.sort("name", "desc") ++ prev_item = None ++ for item in childs_of_a: ++ if prev_item: ++ self.assertTrue(prev_item.name > item.name) ++ prev_item = item ++ childs_of_a.clear() ++ self.assertTrue(childs_of_a.empty()) ++ ++ def test_no_stats_different_clock_type_load(self): ++ ++ def a(): ++ pass ++ ++ yappi.start() ++ a() ++ yappi.stop() ++ yappi.get_func_stats().save("tests/ystats1.ys") ++ yappi.clear_stats() ++ yappi.set_clock_type("WALL") ++ yappi.start() ++ yappi.stop() ++ stats = yappi.get_func_stats().add("tests/ystats1.ys") ++ fsa = utils.find_stat_by_name(stats, 'a') ++ self.assertTrue(fsa is not None) ++ ++ def test_subsequent_profile(self): ++ _timings = {"a_1": 1, "b_1": 1} ++ _yappi._set_test_timings(_timings) ++ ++ def a(): ++ pass ++ ++ def b(): ++ pass ++ ++ yappi.start() ++ a() ++ yappi.stop() ++ yappi.start() ++ b() ++ yappi.stop() ++ stats = yappi.get_func_stats() ++ fsa = utils.find_stat_by_name(stats, 'a') ++ fsb = utils.find_stat_by_name(stats, 'b') ++ self.assertTrue(fsa is not None) ++ self.assertTrue(fsb is not None) ++ self.assertEqual(fsa.ttot, 1) ++ self.assertEqual(fsb.ttot, 1) ++ ++ def test_lambda(self): ++ f = lambda: time.sleep(0.3) ++ yappi.set_clock_type("wall") ++ yappi.start() ++ f() ++ stats = yappi.get_func_stats() ++ fsa = utils.find_stat_by_name(stats, '') ++ self.assertTrue(fsa.ttot > 0.1) ++ ++ def test_module_stress(self): ++ self.assertEqual(yappi.is_running(), False) ++ ++ yappi.start() ++ yappi.clear_stats() ++ self.assertRaises(_yappi.error, yappi.set_clock_type, "wall") ++ ++ yappi.stop() ++ yappi.clear_stats() ++ yappi.set_clock_type("cpu") ++ self.assertRaises(yappi.YappiError, yappi.set_clock_type, "dummy") ++ self.assertEqual(yappi.is_running(), False) ++ yappi.clear_stats() ++ yappi.clear_stats() ++ ++ def test_stat_sorting(self): ++ _timings = {"a_1": 13, "b_1": 10, "a_2": 6, "b_2": 1} ++ _yappi._set_test_timings(_timings) ++ ++ self._ncall = 1 ++ ++ def a(): ++ b() ++ ++ def b(): ++ if self._ncall == 2: ++ return ++ self._ncall += 1 ++ a() ++ ++ stats = utils.run_and_get_func_stats(a) ++ stats = stats.sort("totaltime", "desc") ++ prev_stat = None ++ for stat in stats: ++ if prev_stat: ++ self.assertTrue(prev_stat.ttot >= stat.ttot) ++ prev_stat = stat ++ stats = stats.sort("totaltime", "asc") ++ prev_stat = None ++ for stat in stats: ++ if prev_stat: ++ self.assertTrue(prev_stat.ttot <= stat.ttot) ++ prev_stat = stat ++ stats = stats.sort("avgtime", "asc") ++ prev_stat = None ++ for stat in stats: ++ if prev_stat: ++ self.assertTrue(prev_stat.tavg <= stat.tavg) ++ prev_stat = stat ++ stats = stats.sort("name", "asc") ++ prev_stat = None ++ for stat in stats: ++ if prev_stat: ++ self.assertTrue(prev_stat.name <= stat.name) ++ prev_stat = stat ++ stats = stats.sort("subtime", "asc") ++ prev_stat = None ++ for stat in stats: ++ if prev_stat: ++ self.assertTrue(prev_stat.tsub <= stat.tsub) ++ prev_stat = stat ++ ++ self.assertRaises( ++ yappi.YappiError, stats.sort, "invalid_func_sorttype_arg" ++ ) ++ self.assertRaises( ++ yappi.YappiError, stats.sort, "totaltime", ++ "invalid_func_sortorder_arg" ++ ) ++ ++ def test_start_flags(self): ++ self.assertEqual(_yappi._get_start_flags(), None) ++ yappi.start() ++ ++ def a(): ++ pass ++ ++ a() ++ self.assertEqual(_yappi._get_start_flags()["profile_builtins"], 0) ++ self.assertEqual(_yappi._get_start_flags()["profile_multicontext"], 1) ++ self.assertEqual(len(yappi.get_thread_stats()), 1) ++ ++ def test_builtin_profiling(self): ++ ++ def a(): ++ time.sleep(0.4) # is a builtin function ++ ++ yappi.set_clock_type('wall') ++ ++ yappi.start(builtins=True) ++ a() ++ stats = yappi.get_func_stats() ++ fsa = utils.find_stat_by_name(stats, 'sleep') ++ self.assertTrue(fsa is not None) ++ self.assertTrue(fsa.ttot > 0.3) ++ yappi.stop() ++ yappi.clear_stats() ++ ++ def a(): ++ pass ++ ++ yappi.start() ++ t = threading.Thread(target=a) ++ t.start() ++ t.join() ++ stats = yappi.get_func_stats() ++ ++ def test_singlethread_profiling(self): ++ yappi.set_clock_type('wall') ++ ++ def a(): ++ time.sleep(0.2) ++ ++ class Worker1(threading.Thread): ++ ++ def a(self): ++ time.sleep(0.3) ++ ++ def run(self): ++ self.a() ++ ++ yappi.start(profile_threads=False) ++ ++ c = Worker1() ++ c.start() ++ c.join() ++ a() ++ stats = yappi.get_func_stats() ++ fsa1 = utils.find_stat_by_name(stats, 'Worker1.a') ++ fsa2 = utils.find_stat_by_name(stats, 'a') ++ self.assertTrue(fsa1 is None) ++ self.assertTrue(fsa2 is not None) ++ self.assertTrue(fsa2.ttot > 0.1) ++ ++ def test_run(self): ++ ++ def profiled(): ++ pass ++ ++ yappi.clear_stats() ++ try: ++ with yappi.run(): ++ profiled() ++ stats = yappi.get_func_stats() ++ finally: ++ yappi.clear_stats() ++ ++ self.assertIsNotNone(utils.find_stat_by_name(stats, 'profiled')) ++ ++ def test_run_recursive(self): ++ ++ def profiled(): ++ pass ++ ++ def not_profiled(): ++ pass ++ ++ yappi.clear_stats() ++ try: ++ with yappi.run(): ++ with yappi.run(): ++ profiled() ++ # Profiling stopped here ++ not_profiled() ++ stats = yappi.get_func_stats() ++ finally: ++ yappi.clear_stats() ++ ++ self.assertIsNotNone(utils.find_stat_by_name(stats, 'profiled')) ++ self.assertIsNone(utils.find_stat_by_name(stats, 'not_profiled')) ++ ++ ++class StatSaveScenarios(utils.YappiUnitTestCase): ++ ++ def test_pstats_conversion(self): ++ ++ def pstat_id(fs): ++ return (fs.module, fs.lineno, fs.name) ++ ++ def a(): ++ d() ++ ++ def b(): ++ d() ++ ++ def c(): ++ pass ++ ++ def d(): ++ pass ++ ++ _timings = {"a_1": 12, "b_1": 7, "c_1": 5, "d_1": 2} ++ _yappi._set_test_timings(_timings) ++ stats = utils.run_and_get_func_stats(a, ) ++ stats.strip_dirs() ++ stats.save("tests/a1.pstats", type="pstat") ++ fsa_pid = pstat_id(utils.find_stat_by_name(stats, "a")) ++ fsd_pid = pstat_id(utils.find_stat_by_name(stats, "d")) ++ yappi.clear_stats() ++ _yappi._set_test_timings(_timings) ++ stats = utils.run_and_get_func_stats(a, ) ++ stats.strip_dirs() ++ stats.save("tests/a2.pstats", type="pstat") ++ yappi.clear_stats() ++ _yappi._set_test_timings(_timings) ++ stats = utils.run_and_get_func_stats(b, ) ++ stats.strip_dirs() ++ stats.save("tests/b1.pstats", type="pstat") ++ fsb_pid = pstat_id(utils.find_stat_by_name(stats, "b")) ++ yappi.clear_stats() ++ _yappi._set_test_timings(_timings) ++ stats = utils.run_and_get_func_stats(c, ) ++ stats.strip_dirs() ++ stats.save("tests/c1.pstats", type="pstat") ++ fsc_pid = pstat_id(utils.find_stat_by_name(stats, "c")) ++ ++ # merge saved stats and check pstats values are correct ++ import pstats ++ p = pstats.Stats( ++ 'tests/a1.pstats', 'tests/a2.pstats', 'tests/b1.pstats', ++ 'tests/c1.pstats' ++ ) ++ p.strip_dirs() ++ # ct = ttot, tt = tsub ++ (cc, nc, tt, ct, callers) = p.stats[fsa_pid] ++ self.assertEqual(cc, nc, 2) ++ self.assertEqual(tt, 20) ++ self.assertEqual(ct, 24) ++ (cc, nc, tt, ct, callers) = p.stats[fsd_pid] ++ self.assertEqual(cc, nc, 3) ++ self.assertEqual(tt, 6) ++ self.assertEqual(ct, 6) ++ self.assertEqual(len(callers), 2) ++ (cc, nc, tt, ct) = callers[fsa_pid] ++ self.assertEqual(cc, nc, 2) ++ self.assertEqual(tt, 4) ++ self.assertEqual(ct, 4) ++ (cc, nc, tt, ct) = callers[fsb_pid] ++ self.assertEqual(cc, nc, 1) ++ self.assertEqual(tt, 2) ++ self.assertEqual(ct, 2) ++ ++ def test_merge_stats(self): ++ _timings = { ++ "a_1": 15, ++ "b_1": 14, ++ "c_1": 12, ++ "d_1": 10, ++ "e_1": 9, ++ "f_1": 7, ++ "g_1": 6, ++ "h_1": 5, ++ "i_1": 1 ++ } ++ _yappi._set_test_timings(_timings) ++ ++ def a(): ++ b() ++ ++ def b(): ++ c() ++ ++ def c(): ++ d() ++ ++ def d(): ++ e() ++ ++ def e(): ++ f() ++ ++ def f(): ++ g() ++ ++ def g(): ++ h() ++ ++ def h(): ++ i() ++ ++ def i(): ++ pass ++ ++ yappi.start() ++ a() ++ a() ++ yappi.stop() ++ stats = yappi.get_func_stats() ++ self.assertRaises( ++ NotImplementedError, stats.save, "", "INVALID_SAVE_TYPE" ++ ) ++ stats.save("tests/ystats2.ys") ++ yappi.clear_stats() ++ _yappi._set_test_timings(_timings) ++ yappi.start() ++ a() ++ stats = yappi.get_func_stats().add("tests/ystats2.ys") ++ fsa = utils.find_stat_by_name(stats, "a") ++ fsb = utils.find_stat_by_name(stats, "b") ++ fsc = utils.find_stat_by_name(stats, "c") ++ fsd = utils.find_stat_by_name(stats, "d") ++ fse = utils.find_stat_by_name(stats, "e") ++ fsf = utils.find_stat_by_name(stats, "f") ++ fsg = utils.find_stat_by_name(stats, "g") ++ fsh = utils.find_stat_by_name(stats, "h") ++ fsi = utils.find_stat_by_name(stats, "i") ++ self.assertEqual(fsa.ttot, 45) ++ self.assertEqual(fsa.ncall, 3) ++ self.assertEqual(fsa.nactualcall, 3) ++ self.assertEqual(fsa.tsub, 3) ++ self.assertEqual(fsa.children[fsb].ttot, fsb.ttot) ++ self.assertEqual(fsa.children[fsb].tsub, fsb.tsub) ++ self.assertEqual(fsb.children[fsc].ttot, fsc.ttot) ++ self.assertEqual(fsb.children[fsc].tsub, fsc.tsub) ++ self.assertEqual(fsc.tsub, 6) ++ self.assertEqual(fsc.children[fsd].ttot, fsd.ttot) ++ self.assertEqual(fsc.children[fsd].tsub, fsd.tsub) ++ self.assertEqual(fsd.children[fse].ttot, fse.ttot) ++ self.assertEqual(fsd.children[fse].tsub, fse.tsub) ++ self.assertEqual(fse.children[fsf].ttot, fsf.ttot) ++ self.assertEqual(fse.children[fsf].tsub, fsf.tsub) ++ self.assertEqual(fsf.children[fsg].ttot, fsg.ttot) ++ self.assertEqual(fsf.children[fsg].tsub, fsg.tsub) ++ self.assertEqual(fsg.ttot, 18) ++ self.assertEqual(fsg.tsub, 3) ++ self.assertEqual(fsg.children[fsh].ttot, fsh.ttot) ++ self.assertEqual(fsg.children[fsh].tsub, fsh.tsub) ++ self.assertEqual(fsh.ttot, 15) ++ self.assertEqual(fsh.tsub, 12) ++ self.assertEqual(fsh.tavg, 5) ++ self.assertEqual(fsh.children[fsi].ttot, fsi.ttot) ++ self.assertEqual(fsh.children[fsi].tsub, fsi.tsub) ++ #stats.debug_print() ++ ++ def test_merge_multithreaded_stats(self): ++ import _yappi ++ timings = {"a_1": 2, "b_1": 1} ++ _yappi._set_test_timings(timings) ++ ++ def a(): ++ pass ++ ++ def b(): ++ pass ++ ++ yappi.start() ++ t = threading.Thread(target=a) ++ t.start() ++ t.join() ++ t = threading.Thread(target=b) ++ t.start() ++ t.join() ++ yappi.get_func_stats().save("tests/ystats1.ys") ++ yappi.clear_stats() ++ _yappi._set_test_timings(timings) ++ self.assertEqual(len(yappi.get_func_stats()), 0) ++ self.assertEqual(len(yappi.get_thread_stats()), 1) ++ t = threading.Thread(target=a) ++ t.start() ++ t.join() ++ ++ self.assertEqual(_yappi._get_start_flags()["profile_builtins"], 0) ++ self.assertEqual(_yappi._get_start_flags()["profile_multicontext"], 1) ++ yappi.get_func_stats().save("tests/ystats2.ys") ++ ++ stats = yappi.YFuncStats([ ++ "tests/ystats1.ys", ++ "tests/ystats2.ys", ++ ]) ++ fsa = utils.find_stat_by_name(stats, "a") ++ fsb = utils.find_stat_by_name(stats, "b") ++ self.assertEqual(fsa.ncall, 2) ++ self.assertEqual(fsb.ncall, 1) ++ self.assertEqual(fsa.tsub, fsa.ttot, 4) ++ self.assertEqual(fsb.tsub, fsb.ttot, 1) ++ ++ def test_merge_load_different_clock_types(self): ++ yappi.start(builtins=True) ++ ++ def a(): ++ b() ++ ++ def b(): ++ c() ++ ++ def c(): ++ pass ++ ++ t = threading.Thread(target=a) ++ t.start() ++ t.join() ++ yappi.get_func_stats().sort("name", "asc").save("tests/ystats1.ys") ++ yappi.stop() ++ yappi.clear_stats() ++ yappi.start(builtins=False) ++ t = threading.Thread(target=a) ++ t.start() ++ t.join() ++ yappi.get_func_stats().save("tests/ystats2.ys") ++ yappi.stop() ++ self.assertRaises(_yappi.error, yappi.set_clock_type, "wall") ++ yappi.clear_stats() ++ yappi.set_clock_type("wall") ++ yappi.start() ++ t = threading.Thread(target=a) ++ t.start() ++ t.join() ++ yappi.get_func_stats().save("tests/ystats3.ys") ++ self.assertRaises( ++ yappi.YappiError, ++ yappi.YFuncStats().add("tests/ystats1.ys").add, "tests/ystats3.ys" ++ ) ++ stats = yappi.YFuncStats(["tests/ystats1.ys", ++ "tests/ystats2.ys"]).sort("name") ++ fsa = utils.find_stat_by_name(stats, "a") ++ fsb = utils.find_stat_by_name(stats, "b") ++ fsc = utils.find_stat_by_name(stats, "c") ++ self.assertEqual(fsa.ncall, 2) ++ self.assertEqual(fsa.ncall, fsb.ncall, fsc.ncall) ++ ++ def test_merge_aabab_aabbc(self): ++ _timings = { ++ "a_1": 15, ++ "a_2": 14, ++ "b_1": 12, ++ "a_3": 10, ++ "b_2": 9, ++ "c_1": 4 ++ } ++ _yappi._set_test_timings(_timings) ++ ++ def a(): ++ if self._ncall == 1: ++ self._ncall += 1 ++ a() ++ elif self._ncall == 5: ++ self._ncall += 1 ++ a() ++ else: ++ b() ++ ++ def b(): ++ if self._ncall == 2: ++ self._ncall += 1 ++ a() ++ elif self._ncall == 6: ++ self._ncall += 1 ++ b() ++ elif self._ncall == 7: ++ c() ++ else: ++ return ++ ++ def c(): ++ pass ++ ++ self._ncall = 1 ++ stats = utils.run_and_get_func_stats(a, ) ++ stats.save("tests/ystats1.ys") ++ yappi.clear_stats() ++ _yappi._set_test_timings(_timings) ++ #stats.print_all() ++ ++ self._ncall = 5 ++ stats = utils.run_and_get_func_stats(a, ) ++ stats.save("tests/ystats2.ys") ++ ++ #stats.print_all() ++ ++ def a(): # same name but another function(code object) ++ pass ++ ++ yappi.start() ++ a() ++ stats = yappi.get_func_stats().add( ++ ["tests/ystats1.ys", "tests/ystats2.ys"] ++ ) ++ #stats.print_all() ++ self.assertEqual(len(stats), 4) ++ ++ fsa = None ++ for stat in stats: ++ if stat.name == "a" and stat.ttot == 45: ++ fsa = stat ++ break ++ self.assertTrue(fsa is not None) ++ ++ self.assertEqual(fsa.ncall, 7) ++ self.assertEqual(fsa.nactualcall, 3) ++ self.assertEqual(fsa.ttot, 45) ++ self.assertEqual(fsa.tsub, 10) ++ fsb = utils.find_stat_by_name(stats, "b") ++ fsc = utils.find_stat_by_name(stats, "c") ++ self.assertEqual(fsb.ncall, 6) ++ self.assertEqual(fsb.nactualcall, 3) ++ self.assertEqual(fsb.ttot, 36) ++ self.assertEqual(fsb.tsub, 27) ++ self.assertEqual(fsb.tavg, 6) ++ self.assertEqual(fsc.ttot, 8) ++ self.assertEqual(fsc.tsub, 8) ++ self.assertEqual(fsc.tavg, 4) ++ self.assertEqual(fsc.nactualcall, fsc.ncall, 2) ++ ++ ++class MultithreadedScenarios(utils.YappiUnitTestCase): ++ ++ def test_issue_32(self): ++ ''' ++ Start yappi from different thread and we get Internal Error(15) as ++ the current_ctx_id() called while enumerating the threads in start() ++ and as it does not swap to the enumerated ThreadState* the THreadState_GetDict() ++ returns wrong object and thus sets an invalid id for the _ctx structure. ++ ++ When this issue happens multiple Threads have same tid as the internal ts_ptr ++ will be same for different contexts. So, let's see if that happens ++ ''' ++ ++ def foo(): ++ time.sleep(0.2) ++ ++ def bar(): ++ time.sleep(0.1) ++ ++ def thread_func(): ++ yappi.set_clock_type("wall") ++ yappi.start() ++ ++ bar() ++ ++ t = threading.Thread(target=thread_func) ++ t.start() ++ t.join() ++ ++ foo() ++ ++ yappi.stop() ++ ++ thread_ids = set() ++ for tstat in yappi.get_thread_stats(): ++ self.assertTrue(tstat.tid not in thread_ids) ++ thread_ids.add(tstat.tid) ++ ++ def test_subsequent_profile(self): ++ WORKER_COUNT = 5 ++ ++ def a(): ++ pass ++ ++ def b(): ++ pass ++ ++ def c(): ++ pass ++ ++ _timings = { ++ "a_1": 3, ++ "b_1": 2, ++ "c_1": 1, ++ } ++ ++ yappi.start() ++ ++ def g(): ++ pass ++ ++ g() ++ yappi.stop() ++ yappi.clear_stats() ++ _yappi._set_test_timings(_timings) ++ yappi.start() ++ ++ _dummy = [] ++ for i in range(WORKER_COUNT): ++ t = threading.Thread(target=a) ++ t.start() ++ t.join() ++ for i in range(WORKER_COUNT): ++ t = threading.Thread(target=b) ++ t.start() ++ _dummy.append(t) ++ t.join() ++ for i in range(WORKER_COUNT): ++ t = threading.Thread(target=a) ++ t.start() ++ t.join() ++ for i in range(WORKER_COUNT): ++ t = threading.Thread(target=c) ++ t.start() ++ t.join() ++ yappi.stop() ++ yappi.start() ++ ++ def f(): ++ pass ++ ++ f() ++ stats = yappi.get_func_stats() ++ fsa = utils.find_stat_by_name(stats, 'a') ++ fsb = utils.find_stat_by_name(stats, 'b') ++ fsc = utils.find_stat_by_name(stats, 'c') ++ self.assertEqual(fsa.ncall, 10) ++ self.assertEqual(fsb.ncall, 5) ++ self.assertEqual(fsc.ncall, 5) ++ self.assertEqual(fsa.ttot, fsa.tsub, 30) ++ self.assertEqual(fsb.ttot, fsb.tsub, 10) ++ self.assertEqual(fsc.ttot, fsc.tsub, 5) ++ ++ # MACOSx optimizes by only creating one worker thread ++ self.assertTrue(len(yappi.get_thread_stats()) >= 2) ++ ++ def test_basic(self): ++ yappi.set_clock_type('wall') ++ ++ def dummy(): ++ pass ++ ++ def a(): ++ time.sleep(0.2) ++ ++ class Worker1(threading.Thread): ++ ++ def a(self): ++ time.sleep(0.3) ++ ++ def run(self): ++ self.a() ++ ++ yappi.start(builtins=False, profile_threads=True) ++ ++ c = Worker1() ++ c.start() ++ c.join() ++ a() ++ stats = yappi.get_func_stats() ++ fsa1 = utils.find_stat_by_name(stats, 'Worker1.a') ++ fsa2 = utils.find_stat_by_name(stats, 'a') ++ self.assertTrue(fsa1 is not None) ++ self.assertTrue(fsa2 is not None) ++ self.assertTrue(fsa1.ttot > 0.2) ++ self.assertTrue(fsa2.ttot > 0.1) ++ tstats = yappi.get_thread_stats() ++ self.assertEqual(len(tstats), 2) ++ tsa = utils.find_stat_by_name(tstats, 'Worker1') ++ tsm = utils.find_stat_by_name(tstats, '_MainThread') ++ dummy() # call dummy to force ctx name to be retrieved again. ++ self.assertTrue(tsa is not None) ++ # TODO: I put dummy() to fix below, remove the comments after a while. ++ self.assertTrue( # FIX: I see this fails sometimes? ++ tsm is not None, ++ 'Could not find "_MainThread". Found: %s' % (', '.join(utils.get_stat_names(tstats)))) ++ ++ def test_ctx_stats(self): ++ from threading import Thread ++ DUMMY_WORKER_COUNT = 5 ++ yappi.start() ++ ++ class DummyThread(Thread): ++ pass ++ ++ def dummy(): ++ pass ++ ++ def dummy_worker(): ++ pass ++ ++ for i in range(DUMMY_WORKER_COUNT): ++ t = DummyThread(target=dummy_worker) ++ t.start() ++ t.join() ++ yappi.stop() ++ stats = yappi.get_thread_stats() ++ tsa = utils.find_stat_by_name(stats, "DummyThread") ++ self.assertTrue(tsa is not None) ++ yappi.clear_stats() ++ time.sleep(1.0) ++ _timings = { ++ "a_1": 6, ++ "b_1": 5, ++ "c_1": 3, ++ "d_1": 1, ++ "a_2": 4, ++ "b_2": 3, ++ "c_2": 2, ++ "d_2": 1 ++ } ++ _yappi._set_test_timings(_timings) ++ ++ class Thread1(Thread): ++ pass ++ ++ class Thread2(Thread): ++ pass ++ ++ def a(): ++ b() ++ ++ def b(): ++ c() ++ ++ def c(): ++ d() ++ ++ def d(): ++ time.sleep(0.6) ++ ++ yappi.set_clock_type("wall") ++ yappi.start() ++ t1 = Thread1(target=a) ++ t1.start() ++ t2 = Thread2(target=a) ++ t2.start() ++ t1.join() ++ t2.join() ++ stats = yappi.get_thread_stats() ++ ++ # the fist clear_stats clears the context table? ++ tsa = utils.find_stat_by_name(stats, "DummyThread") ++ self.assertTrue(tsa is None) ++ ++ tst1 = utils.find_stat_by_name(stats, "Thread1") ++ tst2 = utils.find_stat_by_name(stats, "Thread2") ++ tsmain = utils.find_stat_by_name(stats, "_MainThread") ++ dummy() # call dummy to force ctx name to be retrieved again. ++ self.assertTrue(len(stats) == 3) ++ self.assertTrue(tst1 is not None) ++ self.assertTrue(tst2 is not None) ++ # TODO: I put dummy() to fix below, remove the comments after a while. ++ self.assertTrue( # FIX: I see this fails sometimes ++ tsmain is not None, ++ 'Could not find "_MainThread". Found: %s' % (', '.join(utils.get_stat_names(stats)))) ++ self.assertTrue(1.0 > tst2.ttot >= 0.5) ++ self.assertTrue(1.0 > tst1.ttot >= 0.5) ++ ++ # test sorting of the ctx stats ++ stats = stats.sort("totaltime", "desc") ++ prev_stat = None ++ for stat in stats: ++ if prev_stat: ++ self.assertTrue(prev_stat.ttot >= stat.ttot) ++ prev_stat = stat ++ stats = stats.sort("totaltime", "asc") ++ prev_stat = None ++ for stat in stats: ++ if prev_stat: ++ self.assertTrue(prev_stat.ttot <= stat.ttot) ++ prev_stat = stat ++ stats = stats.sort("schedcount", "desc") ++ prev_stat = None ++ for stat in stats: ++ if prev_stat: ++ self.assertTrue(prev_stat.sched_count >= stat.sched_count) ++ prev_stat = stat ++ stats = stats.sort("name", "desc") ++ prev_stat = None ++ for stat in stats: ++ if prev_stat: ++ self.assertTrue(prev_stat.name.lower() >= stat.name.lower()) ++ prev_stat = stat ++ self.assertRaises( ++ yappi.YappiError, stats.sort, "invalid_thread_sorttype_arg" ++ ) ++ self.assertRaises( ++ yappi.YappiError, stats.sort, "invalid_thread_sortorder_arg" ++ ) ++ ++ def test_ctx_stats_cpu(self): ++ ++ def get_thread_name(): ++ try: ++ return threading.current_thread().name ++ except AttributeError: ++ return "Anonymous" ++ ++ def burn_cpu(sec): ++ t0 = yappi.get_clock_time() ++ elapsed = 0 ++ while (elapsed < sec): ++ for _ in range(1000): ++ pass ++ elapsed = yappi.get_clock_time() - t0 ++ ++ def test(): ++ ++ ts = [] ++ for i in (0.01, 0.05, 0.1): ++ t = threading.Thread(target=burn_cpu, args=(i, )) ++ t.name = "burn_cpu-%s" % str(i) ++ t.start() ++ ts.append(t) ++ for t in ts: ++ t.join() ++ ++ yappi.set_clock_type("cpu") ++ yappi.set_context_name_callback(get_thread_name) ++ ++ yappi.start() ++ ++ test() ++ ++ yappi.stop() ++ ++ tstats = yappi.get_thread_stats() ++ r1 = ''' ++ burn_cpu-0.1 3 123145356058624 0.100105 8 ++ burn_cpu-0.05 2 123145361313792 0.050149 8 ++ burn_cpu-0.01 1 123145356058624 0.010127 2 ++ MainThread 0 4321620864 0.001632 6 ++ ''' ++ self.assert_ctx_stats_almost_equal(r1, tstats) ++ ++ def test_producer_consumer_with_queues(self): ++ # we currently just stress yappi, no functionality test is done here. ++ yappi.start() ++ if utils.is_py3x(): ++ from queue import Queue ++ else: ++ from Queue import Queue ++ from threading import Thread ++ WORKER_THREAD_COUNT = 50 ++ WORK_ITEM_COUNT = 2000 ++ ++ def worker(): ++ while True: ++ item = q.get() ++ # do the work with item ++ q.task_done() ++ ++ q = Queue() ++ for i in range(WORKER_THREAD_COUNT): ++ t = Thread(target=worker) ++ t.daemon = True ++ t.start() ++ ++ for item in range(WORK_ITEM_COUNT): ++ q.put(item) ++ q.join() # block until all tasks are done ++ #yappi.get_func_stats().sort("callcount").print_all() ++ yappi.stop() ++ ++ def test_temporary_lock_waiting(self): ++ yappi.start() ++ _lock = threading.Lock() ++ ++ def worker(): ++ _lock.acquire() ++ try: ++ time.sleep(1.0) ++ finally: ++ _lock.release() ++ ++ t1 = threading.Thread(target=worker) ++ t2 = threading.Thread(target=worker) ++ t1.start() ++ t2.start() ++ t1.join() ++ t2.join() ++ #yappi.get_func_stats().sort("callcount").print_all() ++ yappi.stop() ++ ++ @unittest.skipIf(os.name != "posix", "requires Posix compliant OS") ++ def test_signals_with_blocking_calls(self): ++ import signal, os, time ++ ++ # just to verify if signal is handled correctly and stats/yappi are not corrupted. ++ def handler(signum, frame): ++ raise Exception("Signal handler executed!") ++ ++ yappi.start() ++ signal.signal(signal.SIGALRM, handler) ++ signal.alarm(1) ++ self.assertRaises(Exception, time.sleep, 2) ++ stats = yappi.get_func_stats() ++ fsh = utils.find_stat_by_name(stats, "handler") ++ self.assertTrue(fsh is not None) ++ ++ @unittest.skipIf(not sys.version_info >= (3, 2), "requires Python 3.2") ++ def test_concurrent_futures(self): ++ yappi.start() ++ from concurrent.futures import ThreadPoolExecutor ++ with ThreadPoolExecutor(max_workers=5) as executor: ++ f = executor.submit(pow, 5, 2) ++ self.assertEqual(f.result(), 25) ++ time.sleep(1.0) ++ yappi.stop() ++ ++ @unittest.skipIf(not sys.version_info >= (3, 2), "requires Python 3.2") ++ def test_barrier(self): ++ yappi.start() ++ b = threading.Barrier(2, timeout=1) ++ ++ def worker(): ++ try: ++ b.wait() ++ except threading.BrokenBarrierError: ++ pass ++ except Exception: ++ raise Exception("BrokenBarrierError not raised") ++ ++ t1 = threading.Thread(target=worker) ++ t1.start() ++ #b.wait() ++ t1.join() ++ yappi.stop() ++ ++ ++class NonRecursiveFunctions(utils.YappiUnitTestCase): ++ ++ def test_abcd(self): ++ _timings = {"a_1": 6, "b_1": 5, "c_1": 3, "d_1": 1} ++ _yappi._set_test_timings(_timings) ++ ++ def a(): ++ b() ++ ++ def b(): ++ c() ++ ++ def c(): ++ d() ++ ++ def d(): ++ pass ++ ++ stats = utils.run_and_get_func_stats(a) ++ fsa = utils.find_stat_by_name(stats, 'a') ++ fsb = utils.find_stat_by_name(stats, 'b') ++ fsc = utils.find_stat_by_name(stats, 'c') ++ fsd = utils.find_stat_by_name(stats, 'd') ++ cfsab = fsa.children[fsb] ++ cfsbc = fsb.children[fsc] ++ cfscd = fsc.children[fsd] ++ ++ self.assertEqual(fsa.ttot, 6) ++ self.assertEqual(fsa.tsub, 1) ++ self.assertEqual(fsb.ttot, 5) ++ self.assertEqual(fsb.tsub, 2) ++ self.assertEqual(fsc.ttot, 3) ++ self.assertEqual(fsc.tsub, 2) ++ self.assertEqual(fsd.ttot, 1) ++ self.assertEqual(fsd.tsub, 1) ++ self.assertEqual(cfsab.ttot, 5) ++ self.assertEqual(cfsab.tsub, 2) ++ self.assertEqual(cfsbc.ttot, 3) ++ self.assertEqual(cfsbc.tsub, 2) ++ self.assertEqual(cfscd.ttot, 1) ++ self.assertEqual(cfscd.tsub, 1) ++ ++ def test_stop_in_middle(self): ++ _timings = {"a_1": 6, "b_1": 4} ++ _yappi._set_test_timings(_timings) ++ ++ def a(): ++ b() ++ yappi.stop() ++ ++ def b(): ++ time.sleep(0.2) ++ ++ yappi.start() ++ a() ++ stats = yappi.get_func_stats() ++ fsa = utils.find_stat_by_name(stats, 'a') ++ fsb = utils.find_stat_by_name(stats, 'b') ++ ++ self.assertEqual(fsa.ncall, 1) ++ self.assertEqual(fsa.nactualcall, 0) ++ self.assertEqual(fsa.ttot, 0) # no call_leave called ++ self.assertEqual(fsa.tsub, 0) # no call_leave called ++ self.assertEqual(fsb.ttot, 4) ++ ++ ++class RecursiveFunctions(utils.YappiUnitTestCase): ++ ++ def test_fibonacci(self): ++ ++ def fib(n): ++ if n > 1: ++ return fib(n - 1) + fib(n - 2) ++ else: ++ return n ++ ++ stats = utils.run_and_get_func_stats(fib, 22) ++ fs = utils.find_stat_by_name(stats, 'fib') ++ self.assertEqual(fs.ncall, 57313) ++ self.assertEqual(fs.ttot, fs.tsub) ++ ++ def test_abcadc(self): ++ _timings = { ++ "a_1": 20, ++ "b_1": 19, ++ "c_1": 17, ++ "a_2": 13, ++ "d_1": 12, ++ "c_2": 10, ++ "a_3": 5 ++ } ++ _yappi._set_test_timings(_timings) ++ ++ def a(n): ++ if n == 3: ++ return ++ if n == 1 + 1: ++ d(n) ++ else: ++ b(n) ++ ++ def b(n): ++ c(n) ++ ++ def c(n): ++ a(n + 1) ++ ++ def d(n): ++ c(n) ++ ++ stats = utils.run_and_get_func_stats(a, 1) ++ fsa = utils.find_stat_by_name(stats, 'a') ++ fsb = utils.find_stat_by_name(stats, 'b') ++ fsc = utils.find_stat_by_name(stats, 'c') ++ fsd = utils.find_stat_by_name(stats, 'd') ++ self.assertEqual(fsa.ncall, 3) ++ self.assertEqual(fsa.nactualcall, 1) ++ self.assertEqual(fsa.ttot, 20) ++ self.assertEqual(fsa.tsub, 7) ++ self.assertEqual(fsb.ttot, 19) ++ self.assertEqual(fsb.tsub, 2) ++ self.assertEqual(fsc.ttot, 17) ++ self.assertEqual(fsc.tsub, 9) ++ self.assertEqual(fsd.ttot, 12) ++ self.assertEqual(fsd.tsub, 2) ++ cfsca = fsc.children[fsa] ++ self.assertEqual(cfsca.nactualcall, 0) ++ self.assertEqual(cfsca.ncall, 2) ++ self.assertEqual(cfsca.ttot, 13) ++ self.assertEqual(cfsca.tsub, 6) ++ ++ def test_aaaa(self): ++ _timings = {"d_1": 9, "d_2": 7, "d_3": 3, "d_4": 2} ++ _yappi._set_test_timings(_timings) ++ ++ def d(n): ++ if n == 3: ++ return ++ d(n + 1) ++ ++ stats = utils.run_and_get_func_stats(d, 0) ++ fsd = utils.find_stat_by_name(stats, 'd') ++ self.assertEqual(fsd.ncall, 4) ++ self.assertEqual(fsd.nactualcall, 1) ++ self.assertEqual(fsd.ttot, 9) ++ self.assertEqual(fsd.tsub, 9) ++ cfsdd = fsd.children[fsd] ++ self.assertEqual(cfsdd.ttot, 7) ++ self.assertEqual(cfsdd.tsub, 7) ++ self.assertEqual(cfsdd.ncall, 3) ++ self.assertEqual(cfsdd.nactualcall, 0) ++ ++ def test_abcabc(self): ++ _timings = { ++ "a_1": 20, ++ "b_1": 19, ++ "c_1": 17, ++ "a_2": 13, ++ "b_2": 11, ++ "c_2": 9, ++ "a_3": 6 ++ } ++ _yappi._set_test_timings(_timings) ++ ++ def a(n): ++ if n == 3: ++ return ++ else: ++ b(n) ++ ++ def b(n): ++ c(n) ++ ++ def c(n): ++ a(n + 1) ++ ++ stats = utils.run_and_get_func_stats(a, 1) ++ fsa = utils.find_stat_by_name(stats, 'a') ++ fsb = utils.find_stat_by_name(stats, 'b') ++ fsc = utils.find_stat_by_name(stats, 'c') ++ self.assertEqual(fsa.ncall, 3) ++ self.assertEqual(fsa.nactualcall, 1) ++ self.assertEqual(fsa.ttot, 20) ++ self.assertEqual(fsa.tsub, 9) ++ self.assertEqual(fsb.ttot, 19) ++ self.assertEqual(fsb.tsub, 4) ++ self.assertEqual(fsc.ttot, 17) ++ self.assertEqual(fsc.tsub, 7) ++ cfsab = fsa.children[fsb] ++ cfsbc = fsb.children[fsc] ++ cfsca = fsc.children[fsa] ++ self.assertEqual(cfsab.ttot, 19) ++ self.assertEqual(cfsab.tsub, 4) ++ self.assertEqual(cfsbc.ttot, 17) ++ self.assertEqual(cfsbc.tsub, 7) ++ self.assertEqual(cfsca.ttot, 13) ++ self.assertEqual(cfsca.tsub, 8) ++ ++ def test_abcbca(self): ++ _timings = {"a_1": 10, "b_1": 9, "c_1": 7, "b_2": 4, "c_2": 2, "a_2": 1} ++ _yappi._set_test_timings(_timings) ++ self._ncall = 1 ++ ++ def a(): ++ if self._ncall == 1: ++ b() ++ else: ++ return ++ ++ def b(): ++ c() ++ ++ def c(): ++ if self._ncall == 1: ++ self._ncall += 1 ++ b() ++ else: ++ a() ++ ++ stats = utils.run_and_get_func_stats(a) ++ fsa = utils.find_stat_by_name(stats, 'a') ++ fsb = utils.find_stat_by_name(stats, 'b') ++ fsc = utils.find_stat_by_name(stats, 'c') ++ cfsab = fsa.children[fsb] ++ cfsbc = fsb.children[fsc] ++ cfsca = fsc.children[fsa] ++ self.assertEqual(fsa.ttot, 10) ++ self.assertEqual(fsa.tsub, 2) ++ self.assertEqual(fsb.ttot, 9) ++ self.assertEqual(fsb.tsub, 4) ++ self.assertEqual(fsc.ttot, 7) ++ self.assertEqual(fsc.tsub, 4) ++ self.assertEqual(cfsab.ttot, 9) ++ self.assertEqual(cfsab.tsub, 2) ++ self.assertEqual(cfsbc.ttot, 7) ++ self.assertEqual(cfsbc.tsub, 4) ++ self.assertEqual(cfsca.ttot, 1) ++ self.assertEqual(cfsca.tsub, 1) ++ self.assertEqual(cfsca.ncall, 1) ++ self.assertEqual(cfsca.nactualcall, 0) ++ ++ def test_aabccb(self): ++ _timings = { ++ "a_1": 13, ++ "a_2": 11, ++ "b_1": 9, ++ "c_1": 5, ++ "c_2": 3, ++ "b_2": 1 ++ } ++ _yappi._set_test_timings(_timings) ++ self._ncall = 1 ++ ++ def a(): ++ if self._ncall == 1: ++ self._ncall += 1 ++ a() ++ else: ++ b() ++ ++ def b(): ++ if self._ncall == 3: ++ return ++ else: ++ c() ++ ++ def c(): ++ if self._ncall == 2: ++ self._ncall += 1 ++ c() ++ else: ++ b() ++ ++ stats = utils.run_and_get_func_stats(a) ++ fsa = utils.find_stat_by_name(stats, 'a') ++ fsb = utils.find_stat_by_name(stats, 'b') ++ fsc = utils.find_stat_by_name(stats, 'c') ++ cfsaa = fsa.children[fsa.index] ++ cfsab = fsa.children[fsb] ++ cfsbc = fsb.children[fsc.full_name] ++ cfscc = fsc.children[fsc] ++ cfscb = fsc.children[fsb] ++ self.assertEqual(fsb.ttot, 9) ++ self.assertEqual(fsb.tsub, 5) ++ self.assertEqual(cfsbc.ttot, 5) ++ self.assertEqual(cfsbc.tsub, 2) ++ self.assertEqual(fsa.ttot, 13) ++ self.assertEqual(fsa.tsub, 4) ++ self.assertEqual(cfsab.ttot, 9) ++ self.assertEqual(cfsab.tsub, 4) ++ self.assertEqual(cfsaa.ttot, 11) ++ self.assertEqual(cfsaa.tsub, 2) ++ self.assertEqual(fsc.ttot, 5) ++ self.assertEqual(fsc.tsub, 4) ++ ++ def test_abaa(self): ++ _timings = {"a_1": 13, "b_1": 10, "a_2": 9, "a_3": 5} ++ _yappi._set_test_timings(_timings) ++ ++ self._ncall = 1 ++ ++ def a(): ++ if self._ncall == 1: ++ b() ++ elif self._ncall == 2: ++ self._ncall += 1 ++ a() ++ else: ++ return ++ ++ def b(): ++ self._ncall += 1 ++ a() ++ ++ stats = utils.run_and_get_func_stats(a) ++ fsa = utils.find_stat_by_name(stats, 'a') ++ fsb = utils.find_stat_by_name(stats, 'b') ++ cfsaa = fsa.children[fsa] ++ cfsba = fsb.children[fsa] ++ self.assertEqual(fsb.ttot, 10) ++ self.assertEqual(fsb.tsub, 1) ++ self.assertEqual(fsa.ttot, 13) ++ self.assertEqual(fsa.tsub, 12) ++ self.assertEqual(cfsaa.ttot, 5) ++ self.assertEqual(cfsaa.tsub, 5) ++ self.assertEqual(cfsba.ttot, 9) ++ self.assertEqual(cfsba.tsub, 4) ++ ++ def test_aabb(self): ++ _timings = {"a_1": 13, "a_2": 10, "b_1": 9, "b_2": 5} ++ _yappi._set_test_timings(_timings) ++ ++ self._ncall = 1 ++ ++ def a(): ++ if self._ncall == 1: ++ self._ncall += 1 ++ a() ++ elif self._ncall == 2: ++ b() ++ else: ++ return ++ ++ def b(): ++ if self._ncall == 2: ++ self._ncall += 1 ++ b() ++ else: ++ return ++ ++ stats = utils.run_and_get_func_stats(a) ++ fsa = utils.find_stat_by_name(stats, 'a') ++ fsb = utils.find_stat_by_name(stats, 'b') ++ cfsaa = fsa.children[fsa] ++ cfsab = fsa.children[fsb] ++ cfsbb = fsb.children[fsb] ++ self.assertEqual(fsa.ttot, 13) ++ self.assertEqual(fsa.tsub, 4) ++ self.assertEqual(fsb.ttot, 9) ++ self.assertEqual(fsb.tsub, 9) ++ self.assertEqual(cfsaa.ttot, 10) ++ self.assertEqual(cfsaa.tsub, 1) ++ self.assertEqual(cfsab.ttot, 9) ++ self.assertEqual(cfsab.tsub, 4) ++ self.assertEqual(cfsbb.ttot, 5) ++ self.assertEqual(cfsbb.tsub, 5) ++ ++ def test_abbb(self): ++ _timings = {"a_1": 13, "b_1": 10, "b_2": 6, "b_3": 1} ++ _yappi._set_test_timings(_timings) ++ ++ self._ncall = 1 ++ ++ def a(): ++ if self._ncall == 1: ++ b() ++ ++ def b(): ++ if self._ncall == 3: ++ return ++ self._ncall += 1 ++ b() ++ ++ stats = utils.run_and_get_func_stats(a) ++ fsa = utils.find_stat_by_name(stats, 'a') ++ fsb = utils.find_stat_by_name(stats, 'b') ++ cfsab = fsa.children[fsb] ++ cfsbb = fsb.children[fsb] ++ self.assertEqual(fsa.ttot, 13) ++ self.assertEqual(fsa.tsub, 3) ++ self.assertEqual(fsb.ttot, 10) ++ self.assertEqual(fsb.tsub, 10) ++ self.assertEqual(fsb.ncall, 3) ++ self.assertEqual(fsb.nactualcall, 1) ++ self.assertEqual(cfsab.ttot, 10) ++ self.assertEqual(cfsab.tsub, 4) ++ self.assertEqual(cfsbb.ttot, 6) ++ self.assertEqual(cfsbb.tsub, 6) ++ self.assertEqual(cfsbb.nactualcall, 0) ++ self.assertEqual(cfsbb.ncall, 2) ++ ++ def test_aaab(self): ++ _timings = {"a_1": 13, "a_2": 10, "a_3": 6, "b_1": 1} ++ _yappi._set_test_timings(_timings) ++ ++ self._ncall = 1 ++ ++ def a(): ++ if self._ncall == 3: ++ b() ++ return ++ self._ncall += 1 ++ a() ++ ++ def b(): ++ return ++ ++ stats = utils.run_and_get_func_stats(a) ++ fsa = utils.find_stat_by_name(stats, 'a') ++ fsb = utils.find_stat_by_name(stats, 'b') ++ cfsaa = fsa.children[fsa] ++ cfsab = fsa.children[fsb] ++ self.assertEqual(fsa.ttot, 13) ++ self.assertEqual(fsa.tsub, 12) ++ self.assertEqual(fsb.ttot, 1) ++ self.assertEqual(fsb.tsub, 1) ++ self.assertEqual(cfsaa.ttot, 10) ++ self.assertEqual(cfsaa.tsub, 9) ++ self.assertEqual(cfsab.ttot, 1) ++ self.assertEqual(cfsab.tsub, 1) ++ ++ def test_abab(self): ++ _timings = {"a_1": 13, "b_1": 10, "a_2": 6, "b_2": 1} ++ _yappi._set_test_timings(_timings) ++ ++ self._ncall = 1 ++ ++ def a(): ++ b() ++ ++ def b(): ++ if self._ncall == 2: ++ return ++ self._ncall += 1 ++ a() ++ ++ stats = utils.run_and_get_func_stats(a) ++ fsa = utils.find_stat_by_name(stats, 'a') ++ fsb = utils.find_stat_by_name(stats, 'b') ++ cfsab = fsa.children[fsb] ++ cfsba = fsb.children[fsa] ++ self.assertEqual(fsa.ttot, 13) ++ self.assertEqual(fsa.tsub, 8) ++ self.assertEqual(fsb.ttot, 10) ++ self.assertEqual(fsb.tsub, 5) ++ self.assertEqual(cfsab.ttot, 10) ++ self.assertEqual(cfsab.tsub, 5) ++ self.assertEqual(cfsab.ncall, 2) ++ self.assertEqual(cfsab.nactualcall, 1) ++ self.assertEqual(cfsba.ttot, 6) ++ self.assertEqual(cfsba.tsub, 5) ++ ++ ++if __name__ == '__main__': ++ # import sys;sys.argv = ['', 'BasicUsage.test_run_as_script'] ++ # import sys;sys.argv = ['', 'MultithreadedScenarios.test_subsequent_profile'] ++ unittest.main() +--- a/tests/test_gevent.py ++++ b/tests/test_gevent.py +@@ -4,7 +4,7 @@ import yappi + import gevent + from gevent.event import Event + import threading +-from utils import ( ++from .utils import ( + YappiUnitTestCase, find_stat_by_name, burn_cpu, burn_io, + burn_io_gevent + ) +--- a/tests/test_hooks.py ++++ b/tests/test_hooks.py +@@ -5,7 +5,7 @@ import unittest + import time + + import yappi +-import utils ++import tests.utils as utils + + + def a(): +--- a/tests/test_tags.py ++++ b/tests/test_tags.py +@@ -2,7 +2,7 @@ import unittest + import yappi + import threading + import time +-from utils import YappiUnitTestCase, find_stat_by_name, burn_cpu, burn_io ++from .utils import YappiUnitTestCase, find_stat_by_name, burn_cpu, burn_io + + + class MultiThreadTests(YappiUnitTestCase): diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.3.2.bb index 7c3f0fd4b..8a1aca21f 100644 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.3.2.bb +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.3.2.bb @@ -8,6 +8,7 @@ SRC_URI[sha256sum] = "a51d3e6e5563cc74b5bb82ed6e7bd44a9c1a7eae3d97e4d52e9465edb3 SRC_URI += " \ file://run-ptest \ + file://0001-Fix-imports-for-ptests.patch \ " inherit pypi setuptools3 ptest @@ -19,9 +20,11 @@ RDEPENDS_${PN} += "\ " RDEPENDS_${PN}-ptest += " \ - ${PYTHON_PN}-pytest \ + ${PYTHON_PN}-gevent \ ${PYTHON_PN}-multiprocessing \ + ${PYTHON_PN}-pytest \ ${PYTHON_PN}-profile \ + ${PYTHON_PN}-zopeinterface \ " do_install_ptest() { diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl/0001-Drop-tests-for-semicolon-as-a-separator.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl/0001-Drop-tests-for-semicolon-as-a-separator.patch new file mode 100644 index 000000000..1a9d5d02d --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl/0001-Drop-tests-for-semicolon-as-a-separator.patch @@ -0,0 +1,45 @@ +From 47eabc562a8883d757e3cff487c6c6e98def5a21 Mon Sep 17 00:00:00 2001 +From: Andrew Svetlov +Date: Fri, 28 May 2021 12:42:17 +0300 +Subject: [PATCH] Drop tests for semicolon as a separator + +yarl 1.6.3 ptests check the use of semicolons as separators in URLs, +which are no longer valid by default in newer versions of Python. This +patch is in python3-yarl master, but there is no release with it yet, so +backport it until there is a new release. + +For more info, see: +https://bugs.python.org/issue42967 +https://github.com/aio-libs/yarl/issues/563 + +Upstream-Status: Backport +(https://github.com/aio-libs/yarl/commit/47eabc562a8883d757e3cff487c6c6e98def5a21) + +Signed-off-by: Trevor Gamblin + +--- + tests/test_url_query.py | 11 ----------- + 1 file changed, 11 deletions(-) + +diff --git a/tests/test_url_query.py b/tests/test_url_query.py +index d2ca640..07f858b 100644 +--- a/tests/test_url_query.py ++++ b/tests/test_url_query.py +@@ -60,14 +60,3 @@ def test_ampersand_as_value(): + u = URL("http://127.0.0.1/?a=1%26b=2") + assert len(u.query) == 1 + assert u.query["a"] == "1&b=2" +- +- +-def test_semicolon_as_separator(): +- u = URL("http://127.0.0.1/?a=1;b=2") +- assert len(u.query) == 2 +- +- +-def test_semicolon_as_value(): +- u = URL("http://127.0.0.1/?a=1%3Bb=2") +- assert len(u.query) == 1 +- assert u.query["a"] == "1;b=2" +-- +2.31.1 + diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.6.3.bb index 01682a46d..e0e262646 100644 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.6.3.bb +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.6.3.bb @@ -7,6 +7,7 @@ SRC_URI[sha256sum] = "8a9066529240171b68893d60dca86a763eae2139dd42f42106b03cf4b4 SRC_URI += " \ file://run-ptest \ + file://0001-Drop-tests-for-semicolon-as-a-separator.patch \ " PYPI_PACKAGE = "yarl" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.33.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.33.1.bb new file mode 100644 index 000000000..a0af8420f --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.33.1.bb @@ -0,0 +1,13 @@ +SUMMARY = "Pure Python Multicast DNS Service Discovery Library (Bonjour/Avahi compatible)" +HOMEPAGE = "https://github.com/jstasiak/python-zeroconf" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=3bb705b228ea4a14ea2728215b780d80" + +SRC_URI[sha256sum] = "ac88738639669f924859a4e01d9742f3783e619e710103f4a0d321a47f260fd2" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-ifaddr \ + ${PYTHON_PN}-asyncio \ +" diff --git a/meta-openembedded/meta-python/recipes-extended/send2trash/python3-send2trash_1.5.0.bb b/meta-openembedded/meta-python/recipes-extended/send2trash/python3-send2trash_1.5.0.bb deleted file mode 100644 index d906c0b9e..000000000 --- a/meta-openembedded/meta-python/recipes-extended/send2trash/python3-send2trash_1.5.0.bb +++ /dev/null @@ -1,9 +0,0 @@ -SUMMARY = "Send file to trash natively under Mac OS X, Windows and Linux" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=05faa35ba1ca10b723f19d286c9d5237" - -inherit pypi setuptools3 - -SRC_URI[sha256sum] = "60001cc07d707fe247c94f74ca6ac0d3255aabcb930529690897ca2a39db28b2" - -PYPI_PACKAGE = "Send2Trash" diff --git a/meta-openembedded/meta-python/recipes-extended/send2trash/python3-send2trash_1.7.1.bb b/meta-openembedded/meta-python/recipes-extended/send2trash/python3-send2trash_1.7.1.bb new file mode 100644 index 000000000..d3554c803 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-extended/send2trash/python3-send2trash_1.7.1.bb @@ -0,0 +1,9 @@ +SUMMARY = "Send file to trash natively under Mac OS X, Windows and Linux" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a02659c2d5f4cc626e4dcf6504b865eb" + +inherit pypi setuptools3 + +SRC_URI[sha256sum] = "17730aa0a33ab82ed6ca76be3bb25f0433d0014f1ccf63c979bab13a5b9db2b2" + +PYPI_PACKAGE = "Send2Trash" -- cgit v1.2.3