Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-aiosmtplib for openSUSE:Factory checked in at 2023-02-10 14:36:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-aiosmtplib (Old) and /work/SRC/openSUSE:Factory/.python-aiosmtplib.new.1848 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-aiosmtplib" Fri Feb 10 14:36:06 2023 rev:9 rq:1064217 version:2.0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-aiosmtplib/python-aiosmtplib.changes 2022-11-12 17:41:27.886273584 +0100 +++ /work/SRC/openSUSE:Factory/.python-aiosmtplib.new.1848/python-aiosmtplib.changes 2023-02-10 14:36:17.250267284 +0100 @@ -1,0 +2,7 @@ +Fri Feb 10 10:34:43 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- update to 2.0.1: + * Bugfix: "tests" and "docs" in the sdist should be includes, + not packages, so that they do not get put in site-packages. + +------------------------------------------------------------------- Old: ---- aiosmtplib-2.0.0.tar.gz New: ---- aiosmtplib-2.0.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-aiosmtplib.spec ++++++ --- /var/tmp/diff_new_pack.9DOnto/_old 2023-02-10 14:36:17.690269913 +0100 +++ /var/tmp/diff_new_pack.9DOnto/_new 2023-02-10 14:36:17.698269961 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-aiosmtplib # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,7 +20,7 @@ %define skip_python2 1 %define skip_python36 1 Name: python-aiosmtplib -Version: 2.0.0 +Version: 2.0.1 Release: 0 Summary: Python asyncio SMTP client License: MIT @@ -52,7 +52,6 @@ %install %python_install -%python_expand rm -r %{buildroot}%{$python_sitelib}/{tests,docs} %python_expand %fdupes %{buildroot}%{$python_sitelib} %check ++++++ aiosmtplib-2.0.0.tar.gz -> aiosmtplib-2.0.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiosmtplib-2.0.0/CHANGELOG.rst new/aiosmtplib-2.0.1/CHANGELOG.rst --- old/aiosmtplib-2.0.0/CHANGELOG.rst 2022-10-28 05:24:01.108523800 +0200 +++ new/aiosmtplib-2.0.1/CHANGELOG.rst 2023-01-07 19:55:21.944431000 +0100 @@ -1,8 +1,15 @@ Changelog ========= -2.0.0 (unreleased) ------------------- +2.0.1 +----- + +- Bugfix: "tests" and "docs" in the sdist should be includes, not packages, + so that they do not get put in ``site-packages``. + + +2.0.0 +----- - **BREAKING**: Drop Python 3.5 and 3.6 support. - **BREAKING**: On connect, if the server supports STARTTLS, automatically try diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiosmtplib-2.0.0/PKG-INFO new/aiosmtplib-2.0.1/PKG-INFO --- old/aiosmtplib-2.0.0/PKG-INFO 1970-01-01 01:00:00.000000000 +0100 +++ new/aiosmtplib-2.0.1/PKG-INFO 1970-01-01 01:00:00.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: aiosmtplib -Version: 2.0.0 +Version: 2.0.1 Summary: asyncio SMTP client Home-page: https://github.com/cole/aiosmtplib License: MIT @@ -28,9 +28,11 @@ Classifier: Typing :: Typed Provides-Extra: docs Provides-Extra: uvloop -Requires-Dist: sphinx (>=4,<5); extra == "docs" -Requires-Dist: sphinx_autodoc_typehints (>=1.7.0,<2.0.0); extra == "docs" -Requires-Dist: uvloop (>=0.14,<0.15); extra == "uvloop" +Requires-Dist: sphinx (>=5.3.0,<6.0.0) ; extra == "docs" +Requires-Dist: sphinx_autodoc_typehints (>=1.7.0,<2.0.0) ; extra == "docs" +Requires-Dist: uvloop (>=0.14,<0.15) ; (python_version >= "3.7" and python_version < "3.8") and (extra == "uvloop") +Requires-Dist: uvloop (>=0.14,<0.15) ; (python_version >= "3.8" and python_version < "3.9") and (extra == "uvloop") +Requires-Dist: uvloop (>=0.17,<0.18) ; (python_version >= "3.9" and python_version < "4.0") and (extra == "uvloop") Project-URL: Documentation, https://aiosmtplib.readthedocs.io/en/stable/ Project-URL: Repository, https://github.com/cole/aiosmtplib Description-Content-Type: text/x-rst @@ -38,8 +40,8 @@ aiosmtplib ========== -|circleci| |codecov| |pypi-version| |pypi-python-versions| |pypi-status| |downloads| -|pypi-license| |black| +|circleci| |precommit.ci| |codecov| |pypi-version| |pypi-status| |downloads| |pypi-python-versions| +|pypi-license| ------------ @@ -63,8 +65,7 @@ message["Subject"] = "Hello World!" message.set_content("Sent via aiosmtplib") - loop = asyncio.get_event_loop() - loop.run_until_complete(aiosmtplib.send(message, hostname="127.0.0.1", port=25)) + asyncio.run(aiosmtplib.send(message, hostname="127.0.0.1", port=25)) Requirements @@ -89,12 +90,12 @@ .. |pypi-license| image:: https://img.shields.io/pypi/l/aiosmtplib.svg .. |codecov| image:: https://codecov.io/gh/cole/aiosmtplib/branch/main/graph/badge.svg :target: https://codecov.io/gh/cole/aiosmtplib -.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg - :target: https://github.com/ambv/black - :alt: "Code style: black" .. |downloads| image:: https://pepy.tech/badge/aiosmtplib :target: https://pepy.tech/project/aiosmtplib :alt: "aiosmtplib on pypy.tech" +.. |precommit.ci| image:: https://results.pre-commit.ci/badge/github/cole/aiosmtplib/main.svg + :target: https://results.pre-commit.ci/latest/github/cole/aiosmtplib/main + :alt: "pre-commit.ci status" .. _Read The Docs: https://aiosmtplib.readthedocs.io/en/stable/overview.html .. _Github issues: https://github.com/cole/aiosmtplib/issues diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiosmtplib-2.0.0/README.rst new/aiosmtplib-2.0.1/README.rst --- old/aiosmtplib-2.0.0/README.rst 2022-10-28 05:24:01.108523800 +0200 +++ new/aiosmtplib-2.0.1/README.rst 2023-01-07 19:55:21.944431000 +0100 @@ -1,8 +1,8 @@ aiosmtplib ========== -|circleci| |codecov| |pypi-version| |pypi-python-versions| |pypi-status| |downloads| -|pypi-license| |black| +|circleci| |precommit.ci| |codecov| |pypi-version| |pypi-status| |downloads| |pypi-python-versions| +|pypi-license| ------------ @@ -26,8 +26,7 @@ message["Subject"] = "Hello World!" message.set_content("Sent via aiosmtplib") - loop = asyncio.get_event_loop() - loop.run_until_complete(aiosmtplib.send(message, hostname="127.0.0.1", port=25)) + asyncio.run(aiosmtplib.send(message, hostname="127.0.0.1", port=25)) Requirements @@ -52,11 +51,11 @@ .. |pypi-license| image:: https://img.shields.io/pypi/l/aiosmtplib.svg .. |codecov| image:: https://codecov.io/gh/cole/aiosmtplib/branch/main/graph/badge.svg :target: https://codecov.io/gh/cole/aiosmtplib -.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg - :target: https://github.com/ambv/black - :alt: "Code style: black" .. |downloads| image:: https://pepy.tech/badge/aiosmtplib :target: https://pepy.tech/project/aiosmtplib :alt: "aiosmtplib on pypy.tech" +.. |precommit.ci| image:: https://results.pre-commit.ci/badge/github/cole/aiosmtplib/main.svg + :target: https://results.pre-commit.ci/latest/github/cole/aiosmtplib/main + :alt: "pre-commit.ci status" .. _Read The Docs: https://aiosmtplib.readthedocs.io/en/stable/overview.html .. _Github issues: https://github.com/cole/aiosmtplib/issues diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiosmtplib-2.0.0/aiosmtplib/__init__.py new/aiosmtplib-2.0.1/aiosmtplib/__init__.py --- old/aiosmtplib-2.0.0/aiosmtplib/__init__.py 2022-10-28 05:24:01.108523800 +0200 +++ new/aiosmtplib-2.0.1/aiosmtplib/__init__.py 2023-01-07 19:55:21.944431000 +0100 @@ -32,7 +32,7 @@ __title__ = "aiosmtplib" -__version__ = "2.0.0" +__version__ = "2.0.1" __author__ = "Cole Maclean" __license__ = "MIT" __copyright__ = "Copyright 2022 Cole Maclean" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiosmtplib-2.0.0/aiosmtplib/smtp.py new/aiosmtplib-2.0.1/aiosmtplib/smtp.py --- old/aiosmtplib-2.0.0/aiosmtplib/smtp.py 2022-10-28 05:24:01.108523800 +0200 +++ new/aiosmtplib-2.0.1/aiosmtplib/smtp.py 2023-01-07 19:55:21.944431000 +0100 @@ -52,15 +52,15 @@ Basic usage: - >>> loop = asyncio.get_event_loop() + >>> event_loop = asyncio.get_event_loop() >>> smtp = aiosmtplib.SMTP(hostname="127.0.0.1", port=1025) - >>> loop.run_until_complete(smtp.connect()) + >>> event_loop.run_until_complete(smtp.connect()) (220, ...) >>> sender = "root@localhost" >>> recipients = ["somebody@localhost"] >>> message = "Hello World" >>> send = smtp.sendmail(sender, recipients, "Hello World") - >>> loop.run_until_complete(send) + >>> event_loop.run_until_complete(send) ({}, 'OK') Keyword arguments can be provided either on :meth:`__init__` or when @@ -1220,16 +1220,16 @@ Example: - >>> loop = asyncio.get_event_loop() + >>> event_loop = asyncio.get_event_loop() >>> smtp = aiosmtplib.SMTP(hostname="127.0.0.1", port=1025) - >>> loop.run_until_complete(smtp.connect()) + >>> event_loop.run_until_complete(smtp.connect()) (220, ...) >>> recipients = ["o...@one.org", "t...@two.org", "3...@three.org"] >>> message = "From: m...@my.org\\nSubject: testing\\nHello World" >>> send_coro = smtp.sendmail("m...@my.org", recipients, message) - >>> loop.run_until_complete(send_coro) + >>> event_loop.run_until_complete(send_coro) ({}, 'OK') - >>> loop.run_until_complete(smtp.quit()) + >>> event_loop.run_until_complete(smtp.quit()) (221, Bye) In the above example, the message was accepted for delivery for all diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiosmtplib-2.0.0/docs/client.rst new/aiosmtplib-2.0.1/docs/client.rst --- old/aiosmtplib-2.0.0/docs/client.rst 2022-10-28 05:24:01.108523800 +0200 +++ new/aiosmtplib-2.0.1/docs/client.rst 2023-01-07 19:55:21.944431000 +0100 @@ -23,8 +23,7 @@ client = SMTP() - event_loop = asyncio.get_event_loop() - event_loop.run_until_complete(client.connect(hostname="127.0.0.1", port=1025)) + asyncio.run(client.connect(hostname="127.0.0.1", port=1025)) Connecting over TLS/SSL @@ -90,8 +89,7 @@ async with smtp_client: await smtp_client.send_message(message) - event_loop = asyncio.get_event_loop() - event_loop.run_until_complete(say_hello()) + asyncio.run(say_hello()) @@ -104,9 +102,9 @@ Use this method to send :py:class:`email.message.EmailMessage` objects, including :py:mod:`email.mime` subclasses such as :py:class:`email.mime.text.MIMEText`. -For details on creating :py:class:`email.message.Message` objects, see `the +For details on creating :py:class:`email.message.EmailMessage` objects, see `the stdlib documentation examples -<https://docs.python.org/3.7/library/email.examples.html>`_. +<https://docs.python.org/3.11/library/email.examples.html>`_. .. testcode:: @@ -127,8 +125,7 @@ await smtp_client.send_message(message) await smtp_client.quit() - event_loop = asyncio.get_event_loop() - event_loop.run_until_complete(send_with_send_message(mime_message)) + asyncio.run(send_with_send_message(mime_message)) Pass :py:class:`email.mime.multipart.MIMEMultipart` objects to @@ -148,10 +145,13 @@ message.attach(MIMEText("hello", "plain", "utf-8")) message.attach(MIMEText("<html><body><h1>Hello</h1></body></html>", "html", "utf-8")) - smtp_client = SMTP(hostname="127.0.0.1", port=1025) - event_loop.run_until_complete(smtp_client.connect()) - event_loop.run_until_complete(smtp_client.send_message(message)) - event_loop.run_until_complete(smtp_client.quit()) + async def send_multipart_message(message): + smtp_client = SMTP(hostname="127.0.0.1", port=1025) + await smtp_client.connect() + await smtp_client.send_message(message) + await smtp_client.quit() + + asyncio.run(send_multipart_message(message)) :meth:`SMTP.sendmail` @@ -182,8 +182,7 @@ await smtp_client.sendmail(sender, recipients, message) await smtp_client.quit() - event_loop = asyncio.get_event_loop() - event_loop.run_until_complete(send_with_sendmail()) + asyncio.run(send_with_sendmail()) Timeouts diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiosmtplib-2.0.0/docs/conf.py new/aiosmtplib-2.0.1/docs/conf.py --- old/aiosmtplib-2.0.0/docs/conf.py 2022-10-28 05:24:01.108523800 +0200 +++ new/aiosmtplib-2.0.1/docs/conf.py 2023-01-07 19:55:21.944431000 +0100 @@ -82,7 +82,7 @@ # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. -language = None +language = "en" # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. @@ -199,8 +199,15 @@ controller = Controller(object(), hostname="127.0.0.1", port=1025) controller.start() + +event_loop = asyncio.new_event_loop() +asyncio.set_event_loop(event_loop) """ doctest_global_cleanup = """ controller.stop() + +event_loop.stop() +event_loop.run_until_complete(event_loop.shutdown_asyncgens()) +event_loop.close() """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiosmtplib-2.0.0/docs/usage.rst new/aiosmtplib-2.0.1/docs/usage.rst --- old/aiosmtplib-2.0.0/docs/usage.rst 2022-10-28 05:24:01.108523800 +0200 +++ new/aiosmtplib-2.0.1/docs/usage.rst 2023-01-07 19:55:21.944431000 +0100 @@ -41,8 +41,7 @@ await aiosmtplib.send(message, hostname="127.0.0.1", port=1025) - event_loop = asyncio.get_event_loop() - event_loop.run_until_complete(send_hello_world()) + asyncio.run(send_hello_world()) Multipart Messages @@ -98,8 +97,7 @@ port=1025 ) - event_loop = asyncio.get_event_loop() - event_loop.run_until_complete(send_hello_world()) + asyncio.run(send_hello_world()) Connecting Over TLS/SSL diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiosmtplib-2.0.0/pyproject.toml new/aiosmtplib-2.0.1/pyproject.toml --- old/aiosmtplib-2.0.0/pyproject.toml 2022-10-28 05:24:01.108523800 +0200 +++ new/aiosmtplib-2.0.1/pyproject.toml 2023-01-07 19:55:21.944431000 +0100 @@ -4,14 +4,12 @@ [tool.poetry] name = "aiosmtplib" -version = "2.0.0" +version = "2.0.1" description = "asyncio SMTP client" authors = ["Cole Maclean <h...@colemaclean.dev>"] license = "MIT" packages = [ { include = "aiosmtplib" }, - { include = "tests", format = "sdist" }, - { include = "docs", format = "sdist" }, ] readme = "README.rst" repository = "https://github.com/cole/aiosmtplib" @@ -35,33 +33,51 @@ ] include = [ { path = "CHANGELOG.rst", format = "sdist" }, + { path = "tests", format = "sdist" }, + { path = "docs", format = "sdist" }, ] [tool.poetry.dependencies] python = "^3.7" -uvloop = { version = "^0.14", optional = true } -sphinx = { version = ">=4,<5", optional = true } +uvloop = [ + { version = "^0.14", python = "~3.7", optional = true }, + { version = "^0.14", python = "~3.8", optional = true }, + { version = "^0.17", python = "^3.9", optional = true }, +] +sphinx = { version = "^5.3.0", optional = true } sphinx_autodoc_typehints = { version = "^1.7.0", optional = true } -[tool.poetry.dev-dependencies] -pytest = "^7.1" -pytest-asyncio = "^0.18" -pytest-cov = "^3" -coverage = {extras = ["toml"], version = "^6"} -hypothesis = "^6" -aiosmtpd = "^1.4.2" -pytest-xdist = "^2.1.0" -mypy = "^0.950" -flake8 = "^3.9.2" -flake8-bugbear = "^22.1.11" -trustme = "^0.7.0" -black = {version = "^22.3.0", allow-prereleases = true} - [tool.poetry.extras] docs = ["sphinx", "sphinx_autodoc_typehints"] uvloop = ["uvloop"] +[tool.poetry.group.test] +optional = true + +[tool.poetry.group.test.dependencies] +pytest = "^7.2" +pytest-asyncio = "^0.20.1" +pytest-cov = "^4.0" +pytest-xdist = "^3.0.0" +coverage = {extras = ["toml"], version = "^6.5"} +hypothesis = "^6.56" +aiosmtpd = "^1.4.2" +trustme = "^0.9.0" + +[tool.poetry.group.typecheck] +optional = true + +[tool.poetry.group.typecheck.dependencies] +mypy = "^0.982" + +[tool.poetry.group.security] +optional = true + +[tool.poetry.group.security.dependencies] +bandit = "^1.7.4" +safety = "^2.3.1" + [tool.pytest.ini_options] asyncio_mode = "strict" minversion = "6.0" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aiosmtplib-2.0.0/setup.py new/aiosmtplib-2.0.1/setup.py --- old/aiosmtplib-2.0.0/setup.py 1970-01-01 01:00:00.000000000 +0100 +++ new/aiosmtplib-2.0.1/setup.py 1970-01-01 01:00:00.000000000 +0100 @@ -2,20 +2,28 @@ from setuptools import setup packages = \ -['aiosmtplib', 'docs', 'tests'] +['aiosmtplib'] package_data = \ {'': ['*']} extras_require = \ -{'docs': ['sphinx>=4,<5', 'sphinx_autodoc_typehints>=1.7.0,<2.0.0'], - 'uvloop': ['uvloop>=0.14,<0.15']} +{'docs': ['sphinx>=5.3.0,<6.0.0', 'sphinx_autodoc_typehints>=1.7.0,<2.0.0'], + 'uvloop:python_version >= "3.7" and python_version < "3.8"': ['uvloop>=0.14,<0.15', + 'uvloop>=0.14,<0.15', + 'uvloop>=0.14,<0.15'], + 'uvloop:python_version >= "3.8" and python_version < "3.9"': ['uvloop>=0.14,<0.15', + 'uvloop>=0.14,<0.15', + 'uvloop>=0.14,<0.15'], + 'uvloop:python_version >= "3.9" and python_version < "4.0"': ['uvloop>=0.17,<0.18', + 'uvloop>=0.17,<0.18', + 'uvloop>=0.17,<0.18']} setup_kwargs = { 'name': 'aiosmtplib', - 'version': '2.0.0', + 'version': '2.0.1', 'description': 'asyncio SMTP client', - 'long_description': 'aiosmtplib\n==========\n\n|circleci| |codecov| |pypi-version| |pypi-python-versions| |pypi-status| |downloads|\n|pypi-license| |black|\n\n------------\n\naiosmtplib is an asynchronous SMTP client for use with asyncio.\n\nFor documentation, see `Read The Docs`_.\n\nQuickstart\n----------\n\n.. code-block:: python\n\n import asyncio\n from email.message import EmailMessage\n\n import aiosmtplib\n\n message = EmailMessage()\n message["From"] = "root@localhost"\n message["To"] = "someb...@example.com"\n message["Subject"] = "Hello World!"\n message.set_content("Sent via aiosmtplib")\n\n loop = asyncio.get_event_loop()\n loop.run_until_complete(aiosmtplib.send(message, hostname="127.0.0.1", port=25))\n\n\nRequirements\n------------\nPython 3.7+, compiled with SSL support, is required.\n\n\nBug Reporting\n-------------\nBug reports (and feature requests) are welcome via `Github issues`_.\n\n\n\n.. |circleci| image:: https://circleci.c om/gh/cole/aiosmtplib/tree/main.svg?style=shield\n :target: https://circleci.com/gh/cole/aiosmtplib/tree/main\n :alt: "aiosmtplib CircleCI build status"\n.. |pypi-version| image:: https://img.shields.io/pypi/v/aiosmtplib.svg\n :target: https://pypi.python.org/pypi/aiosmtplib\n :alt: "aiosmtplib on the Python Package Index"\n.. |pypi-python-versions| image:: https://img.shields.io/pypi/pyversions/aiosmtplib.svg\n.. |pypi-status| image:: https://img.shields.io/pypi/status/aiosmtplib.svg\n.. |pypi-license| image:: https://img.shields.io/pypi/l/aiosmtplib.svg\n.. |codecov| image:: https://codecov.io/gh/cole/aiosmtplib/branch/main/graph/badge.svg\n :target: https://codecov.io/gh/cole/aiosmtplib\n.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/ambv/black\n :alt: "Code style: black"\n.. |downloads| image:: https://pepy.tech/badge/aiosmtplib\n :target: https://pepy.tech/project/aiosmtplib\n :alt: "aiosmtplib on pypy.tech"\n.. _Read The Docs: https://aiosmtplib.readthedocs.io/en/stable/overview.html\n.. _Github issues: https://github.com/cole/aiosmtplib/issues\n', + 'long_description': 'aiosmtplib\n==========\n\n|circleci| |precommit.ci| |codecov| |pypi-version| |pypi-status| |downloads| |pypi-python-versions|\n|pypi-license|\n\n------------\n\naiosmtplib is an asynchronous SMTP client for use with asyncio.\n\nFor documentation, see `Read The Docs`_.\n\nQuickstart\n----------\n\n.. code-block:: python\n\n import asyncio\n from email.message import EmailMessage\n\n import aiosmtplib\n\n message = EmailMessage()\n message["From"] = "root@localhost"\n message["To"] = "someb...@example.com"\n message["Subject"] = "Hello World!"\n message.set_content("Sent via aiosmtplib")\n\n asyncio.run(aiosmtplib.send(message, hostname="127.0.0.1", port=25))\n\n\nRequirements\n------------\nPython 3.7+, compiled with SSL support, is required.\n\n\nBug Reporting\n-------------\nBug reports (and feature requests) are welcome via `Github issues`_.\n\n\n\n.. |circleci| image:: https://circleci.com/gh/cole/aiosmtplib/tree/main.svg?style= shield\n :target: https://circleci.com/gh/cole/aiosmtplib/tree/main\n :alt: "aiosmtplib CircleCI build status"\n.. |pypi-version| image:: https://img.shields.io/pypi/v/aiosmtplib.svg\n :target: https://pypi.python.org/pypi/aiosmtplib\n :alt: "aiosmtplib on the Python Package Index"\n.. |pypi-python-versions| image:: https://img.shields.io/pypi/pyversions/aiosmtplib.svg\n.. |pypi-status| image:: https://img.shields.io/pypi/status/aiosmtplib.svg\n.. |pypi-license| image:: https://img.shields.io/pypi/l/aiosmtplib.svg\n.. |codecov| image:: https://codecov.io/gh/cole/aiosmtplib/branch/main/graph/badge.svg\n :target: https://codecov.io/gh/cole/aiosmtplib\n.. |downloads| image:: https://pepy.tech/badge/aiosmtplib\n :target: https://pepy.tech/project/aiosmtplib\n :alt: "aiosmtplib on pypy.tech"\n.. |precommit.ci| image:: https://results.pre-commit.ci/badge/github/cole/aiosmtplib/main.svg\n :target: https://results.pre-commit.ci/latest/github/cole/aiosmtplib/main\n :alt: "pre-commit.ci status"\n.. _Read The Docs: https://aiosmtplib.readthedocs.io/en/stable/overview.html\n.. _Github issues: https://github.com/cole/aiosmtplib/issues\n', 'author': 'Cole Maclean', 'author_email': 'h...@colemaclean.dev', 'maintainer': 'None',