summaryrefslogtreecommitdiffstats
path: root/meta-python/recipes-devtools/python
Commit message (Collapse)AuthorAgeFilesLines
* python3-twitter: set CVE_PRODUCTGyorgy Sarvari2025-12-311-0/+2
| | | | | | | | | | | | | The product's CPE doesn't use "python" as the vendor, set the CVE_PRODUCT accordingly. See CVE db query: sqlite> select * from products where PRODUCT = 'tweepy'; CVE-2012-5825|tweepy|tweepy|-||| Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-sqlalchemy: set CVE_PRODUCTGyorgy Sarvari2025-12-311-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The default python:sqlalchemy CPE fails to match CVEs, because the CVEs are associated with sqlalchemy:sqlalchemy CPE. See CVE db query: sqlite> select * from products where PRODUCT = 'sqlalchemy'; CVE-2012-0805|sqlalchemy|sqlalchemy|||0.7.0|<= CVE-2012-0805|sqlalchemy|sqlalchemy|0.6.0|=|| CVE-2012-0805|sqlalchemy|sqlalchemy|0.6.0_beta1|=|| CVE-2012-0805|sqlalchemy|sqlalchemy|0.6.0_beta2|=|| CVE-2012-0805|sqlalchemy|sqlalchemy|0.6.0_beta3|=|| CVE-2012-0805|sqlalchemy|sqlalchemy|0.6.1|=|| CVE-2012-0805|sqlalchemy|sqlalchemy|0.6.2|=|| CVE-2012-0805|sqlalchemy|sqlalchemy|0.6.3|=|| CVE-2012-0805|sqlalchemy|sqlalchemy|0.6.4|=|| CVE-2012-0805|sqlalchemy|sqlalchemy|0.6.5|=|| CVE-2012-0805|sqlalchemy|sqlalchemy|0.6.6|=|| CVE-2012-0805|sqlalchemy|sqlalchemy|0.6.7|=|| CVE-2012-0805|sqlalchemy|sqlalchemy|0.7.0_b1|=|| CVE-2012-0805|sqlalchemy|sqlalchemy|0.7.0_b2|=|| CVE-2019-7164|sqlalchemy|sqlalchemy|||1.2.17|<= CVE-2019-7164|sqlalchemy|sqlalchemy|1.3.0_beta1|=|| CVE-2019-7164|sqlalchemy|sqlalchemy|1.3.0_beta2|=|| CVE-2019-7548|sqlalchemy|sqlalchemy|1.2.17|=|| Set the CVE_PRODUCT accordingly. Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-paramiko: set CVE_PRODUCTGyorgy Sarvari2025-12-311-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Set correct CVE_PRODUCT for paramiko. The default python:paramiko value doesn't match CVEs, because the product has its own set of CPEs associated with CVEs. See CVE db query: sqlite> select * from products where PRODUCT = 'paramiko'; CVE-2008-0299|python_software_foundation|paramiko|1.7.1|=|| CVE-2018-1000805|paramiko|paramiko|1.17.6|=|| CVE-2018-1000805|paramiko|paramiko|1.18.5|=|| CVE-2018-1000805|paramiko|paramiko|2.0.8|=|| CVE-2018-1000805|paramiko|paramiko|2.1.5|=|| CVE-2018-1000805|paramiko|paramiko|2.2.3|=|| CVE-2018-1000805|paramiko|paramiko|2.3.2|=|| CVE-2018-1000805|paramiko|paramiko|2.4.1|=|| CVE-2018-7750|paramiko|paramiko|||1.17.6|< CVE-2018-7750|paramiko|paramiko|1.18.0|>=|1.18.5|< CVE-2018-7750|paramiko|paramiko|2.0.0|>=|2.0.8|< CVE-2018-7750|paramiko|paramiko|2.1.0|>=|2.1.5|< CVE-2018-7750|paramiko|paramiko|2.2.0|>=|2.2.3|< CVE-2018-7750|paramiko|paramiko|2.3.0|>=|2.3.2|< CVE-2018-7750|paramiko|paramiko|2.4.0|=|| CVE-2022-24302|paramiko|paramiko|||2.10.1|< CVE-2023-48795|paramiko|paramiko|||3.4.0|< Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-tornado: set CVE_PRODUCTGyorgy Sarvari2025-12-311-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The default "python:tornado" CVE_PRODUCT doesn't match relevant CVEs, because the project's CPE is "tornadoweb:tornado". See cve db query (docmosis is an irrelevant vendor): sqlite> select * from products where PRODUCT = 'tornado'; CVE-2012-2374|tornadoweb|tornado|||2.2|<= CVE-2012-2374|tornadoweb|tornado|1.0|=|| CVE-2012-2374|tornadoweb|tornado|1.0.1|=|| CVE-2012-2374|tornadoweb|tornado|1.1|=|| CVE-2012-2374|tornadoweb|tornado|1.1.1|=|| CVE-2012-2374|tornadoweb|tornado|1.2|=|| CVE-2012-2374|tornadoweb|tornado|1.2.1|=|| CVE-2012-2374|tornadoweb|tornado|2.0|=|| CVE-2012-2374|tornadoweb|tornado|2.1|=|| CVE-2012-2374|tornadoweb|tornado|2.1.1|=|| CVE-2014-9720|tornadoweb|tornado|||3.2.2|< CVE-2023-25264|docmosis|tornado|||2.9.5|< CVE-2023-25265|docmosis|tornado|||2.9.5|< CVE-2023-25266|docmosis|tornado|||2.9.5|< CVE-2023-28370|tornadoweb|tornado|||6.3.2|< CVE-2024-42733|docmosis|tornado|||2.9.7|<= CVE-2024-52804|tornadoweb|tornado|||6.4.2|< CVE-2025-47287|tornadoweb|tornado|||6.5.0|< CVE-2025-67724|tornadoweb|tornado|||6.5.3|< CVE-2025-67725|tornadoweb|tornado|||6.5.3|< CVE-2025-67726|tornadoweb|tornado|||6.5.3|< Set the CVE_PRODUCT accordingly. Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-cbor2: set CVE_PRODUCTGyorgy Sarvari2025-12-311-0/+2
| | | | | | | | | | | | The default, "python:cbor2" CVE_PRODUCT is not appropriate for this recipe, because most associated CVEs use "agronholm:cbor2" CPE. Set the CVE_PRODUCT to cbor2, so it will match the currently used CPE, and in case there will be future python:cbor2 CPEs also, they will be matched too. Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-backports-zstd: Upgrade to 1.3.0Khem Raj2025-12-311-2/+5
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-fastapi-cli: upgrade 0.0.16 -> 0.0.20Liu Yiding2025-12-311-1/+1
| | | | | | | | Changelog: https://github.com/fastapi/fastapi-cli/releases/tag/0.0.20 Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-typer: upgrade 0.20.1 -> 0.21.0Wang Mingyu2025-12-311-1/+1
| | | | | Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-pikepdf: upgrade 10.0.3 -> 10.1.0Wang Mingyu2025-12-311-1/+1
| | | | | Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-marshmallow: upgrade 4.1.1 -> 4.1.2Wang Mingyu2025-12-311-1/+1
| | | | | | | | Changelog: Merge error store messages without rebuilding collections. Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-elementpath: upgrade 5.0.4 -> 5.1.0Wang Mingyu2025-12-311-2/+2
| | | | | | | | | | | | | | License-Update: Copyright year updated to 2025. Changelog: =========== - Drop Python 3.9 compatibility and add Pyton 3.15 support - Improve XPath sequence internal processing with a list derived type xlist - Extensions and fixes for XSD datatypes - Add XSequence datatype for external representation of XPath sequences Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-coverage: upgrade 7.13.0 -> 7.13.1Wang Mingyu2025-12-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Changelog: ============ - Added: the JSON report now includes a "start_line" key for function and class regions, indicating the first line of the region in the source. - Added: The debug data command now takes file names as arguments on the command line, so you can inspect specific data files without needing to set the COVERAGE_FILE environment variable. - Fix: the JSON report used to report module docstrings as executed lines, which no other report did, as described in issue 2105. - Fix: coverage.py uses a more disciplined approach to detecting where third-party code is installed, and avoids measuring it. - Performance: data files that will be combined now record their hash as part of the file name. This lets us skip duplicate data more quickly, speeding the combining step. - Docs: added a section explaining more about what is considered a missing branch and how it is reported: Examples of missing branches, as requested in issue 1597. - Tests: the test suite misunderstood what core was being tested if COVERAGE_CORE wasn't set on 3.14+. Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-typer: upgrade 0.20.0 -> 0.20.1Wang Mingyu2025-12-241-1/+1
| | | | | Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-tornado: upgrade 6.5.3 -> 6.5.4Wang Mingyu2025-12-241-1/+1
| | | | | | | | | | | | Bug fixes ~~~~~~~~~ - The "in" operator for "HTTPHeaders" was incorrectly case-sensitive, causing lookups to fail for headers with different casing than the original header name. This was a regression in version 6.5.3 and has been fixed to restore the intended case-insensitive behavior from version 6.5.2 and earlier. Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-soupsieve: upgrade 2.8 -> 2.8.1Wang Mingyu2025-12-241-1/+1
| | | | | | | FIX: Changes in tests to accommodate latest Python HTML parser changes. Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-smbus2: upgrade 0.5.0 -> 0.6.0Wang Mingyu2025-12-241-1/+1
| | | | | | | | | | | Changelog: ========== - Python 3.14 added. - Fix SystemError: buffer overflow on Python 3.14+ on 64-bit systems by using c_ulong instead of c_uint32 for I2C_FUNCS ioctl. Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-sdbus: upgrade 0.14.1 -> 0.14.2Wang Mingyu2025-12-241-1/+1
| | | | | | | | | | Changelog: =========== - Fix segmentation fault if export handle outlives the exported object. - Fix some tests failing on slow systems. Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-python-multipart: upgrade 0.0.20 -> 0.0.21Wang Mingyu2025-12-241-1/+1
| | | | | | | | Changelog: Add support for Python 3.14 and drop EOL 3.8 and 3.9 Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-pikepdf: upgrade 10.0.2 -> 10.0.3Wang Mingyu2025-12-241-1/+1
| | | | | Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-nodeenv: upgrade 1.9.1 -> 1.10.0Wang Mingyu2025-12-241-1/+1
| | | | | | | | | | | | | | | Changelog: ========== - Use lowercase lookup for archmap - Add support for Python 3.13 - Add UV Virtual Environment support - Use sh instead of bash - Replace additional use of which(1) with shutil.which() - Support leading v in .node-version - Check host platform when finding node version Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-joblib: upgrade 1.5.2 -> 1.5.3Wang Mingyu2025-12-241-1/+1
| | | | | | | | | | | | | | | | Changelog: =========== - The Memory object won't overwrite an already existing .gitignore file in its cache directory anymore. - Harden the safety checks in eval_expr(pre_dispatch) to prevent excessive memory allocation and potential crashes by limiting the allowed length of the expression and the maximum numeric value of sub-expressions and not evaluating expressions with non-numeric literals. - Vendor cloudpickle 3.1.2 to fix a pickling problem with interactively defined abstract base classes and type annotations in Python 3.14+. Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-imgtool: upgrade 2.2.0 -> 2.3.0Wang Mingyu2025-12-241-1/+1
| | | | | Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-humanize: upgrade 4.14.0 -> 4.15.0Wang Mingyu2025-12-241-1/+1
| | | | | | | | | | | | | | | | | | | | Added ------ - Add locale support for decimal separator in intword - Add support for Python 3.15 Changed -------- - Replace pre-commit with prek Fixed ------ - naturaldelta: round the value to nearest unit that makes sense - Fix plural form for intword and improve performance - Replace Exception with more specific FileNotFoundError Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-google-auth: upgrade 2.43.0 -> 2.45.0Wang Mingyu2025-12-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Changelog: ============= Features --------- - Adding Agent Identity bound token support and handling certificate mismatches with retries - support Python 3.14 - add ecdsa p-384 support - MDS connections use mTLS - Implement token revocation in STS client and add revoke() method to ExternalAccountAuthorizedUser credentials - Add shlex to correctly parse executable commands with spaces Bug Fixes --------- - Use public refresh method for source credentials in ImpersonatedCredentials - Add temporary patch to workload cert logic to accomodate Cloud Run mis-configuration - Delegate workload cert and key default lookup to helper function Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-filelock: upgrade 3.20.0 -> 3.20.1Wang Mingyu2025-12-241-1/+1
| | | | | | | | Changelog: CVE-2025-68146: Fix TOCTOU symlink vulnerability in lock file creation Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-cmake: upgrade 4.2.0 -> 4.2.1Wang Mingyu2025-12-241-1/+1
| | | | | | | | | | | Changelog: ========== - fix: add missing f-string prefix for --parallel bootstrap arg - fix: workaround issue in lastversion with OpenSSL - chore(deps): update clang to 21.1.8.0 Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-cachetools: upgrade 6.2.3 -> 6.2.4Wang Mingyu2025-12-241-1/+1
| | | | | | | | Changelog: Fix license information displayed on PyPI be using an updated version of twine for uploading. Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-pyzstd: Delete recipeKhem Raj2025-12-241-17/+0
| | | | | | | It has been moved to core layer Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Koen Kooi <koen.kooi@oss.qualcomm.com>
* python3-uvicorn: upgrade 0.38.0 -> 0.40.0Liu Yiding2025-12-231-1/+1
| | | | | Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-importlib-metadata: upgrade 8.7.0 -> 8.7.1Liu Yiding2025-12-231-3/+3
| | | | | | | LIC_FILES_CHKSUM changed as LICENSE file format has been changed in 8.7.1 Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-pytest-metadata: Upgrade to 3.1.1Khem Raj2025-12-221-2/+6
| | | | | | | | | | pytest-metadata version 2.0.2 has a bug where it tries to access py.__version__, but the py library version 1.11.0 removed the __version__ attribute. This is a known incompatibility. Switch to hatching build backend Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-pytest-html: Add missing ptest rdep on pytest htmlKhem Raj2025-12-211-0/+1
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-tzdata: upgrade 2025.2 -> 2025.3Wang Mingyu2025-12-211-1/+1
| | | | | Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-tornado: upgrade 6.5.2 -> 6.5.3Wang Mingyu2025-12-211-1/+1
| | | | | Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-sqlalchemy: upgrade 2.0.44 -> 2.0.45Wang Mingyu2025-12-211-1/+1
| | | | | Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-nanobind: upgrade 2.9.2 -> 2.10.2Wang Mingyu2025-12-211-1/+1
| | | | | Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-matplotlib: upgrade 3.10.7 -> 3.10.8Wang Mingyu2025-12-211-1/+1
| | | | | | | | | | Changelog: =========== - Properly allow freethreaded mode in the MacOS backend - Better error handling for MacOS backend Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-fastapi: upgrade 0.124.0 -> 0.124.4Wang Mingyu2025-12-211-1/+1
| | | | | Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-coverage: upgrade 7.12.0 -> 7.13.0Wang Mingyu2025-12-211-1/+1
| | | | | | | | | | | | | | Changelog: ============ - Feature: coverage.py now supports .coveragerc.toml - Fix: we now include a permanent .pth file which is installed with the code - Deprecated: when coverage.py is installed, it creates three command entry points: coverage, coverage3, and coverage-3.10 (if installed for Python 3.10). The second and third of these are not needed and will eventually be removed. They still work for now, but print a message about their deprecation. Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-cachetools: upgrade 6.2.2 -> 6.2.3Wang Mingyu2025-12-211-1/+1
| | | | | | | | | | | | Changelog: ========== - Improve documentation regarding @cachedmethod with condition parameter. - Minor style and readability improvements. - Modernize build environment. - Update CI environment. Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-black: upgrade 25.11.0 -> 25.12.0Wang Mingyu2025-12-211-1/+1
| | | | | Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-aiodns: upgrade 3.6.0 -> 3.6.1Wang Mingyu2025-12-211-1/+1
| | | | | | | | Changelog: Pin pycares to < 5 Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-txaio: upgrade 25.12.1 -> 25.12.2Liu Yiding2025-12-212-12/+12
| | | | | | | LICENSE CHKSUM has been changed as title was added in new LICENSE file. Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-django: upgrade 4.2.26 -> 4.2.27Gyorgy Sarvari2025-12-201-1/+1
| | | | | | | | | Contains fix for CVE-2025-13372 and CVE-2025-64460 Changelog: https://github.com/django/django/blob/4.2.27/docs/releases/4.2.27.txt Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-django: upgrade 5.2.8 -> 5.2.9Gyorgy Sarvari2025-12-201-1/+1
| | | | | | | | | Includes fix for CVE-2025-13372 and CVE-2025-64460 Changelog: https://github.com/django/django/blob/5.2.9/docs/releases/5.2.9.txt Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-chromecast: upgrade 14.0.7 -> 14.0.9Tom Geelen2025-12-165-117/+2
| | | | | | | | | Changelog: https://github.com/home-assistant-libs/pychromecast/releases/tag/14.0.9 Drop obsolete patches. Signed-off-by: Tom Geelen <t.f.g.geelen@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-aiohttp: add optional PACKAGECONFIG for the extras mentioned in the ↵Tom Geelen2025-12-161-1/+4
| | | | | | | build requirements Signed-off-by: Tom Geelen <t.f.g.geelen@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-aiohttp: add BBCLASSEXTEND: native and nativesdk to the recipeTom Geelen2025-12-161-0/+2
| | | | | Signed-off-by: Tom Geelen <t.f.g.geelen@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-aiohttp: upgrade 3.12.15 -> 3.12.2Tom Geelen2025-12-161-2/+2
| | | | | Signed-off-by: Tom Geelen <t.f.g.geelen@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* python3-async-timeout: add BBCLASSEXTEND for native and nativesdkTom Geelen2025-12-161-0/+2
| | | | | | Signed-off-by: Tom Geelen <t.f.g.geelen@gmail.com> Reviewed-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Khem Raj <raj.khem@gmail.com>