Commit Graph

126 Commits

Author SHA1 Message Date
Victor Stinner cf7eaa4617
Revert "bpo-28533: Remove asyncore, asynchat, smtpd modules (GH-29521)" (GH-29951)
This reverts commit 9bf2cbc4c4.
2021-12-07 12:31:04 +01:00
Victor Stinner 9bf2cbc4c4
bpo-28533: Remove asyncore, asynchat, smtpd modules (GH-29521)
Remove the asyncore and asynchat modules, deprecated in Python
3.6: use the asyncio module instead.

Remove the smtpd module, deprecated in Python 3.6: the aiosmtpd
module can be used instead, it is based on asyncio.

* Remove asyncore, asynchat and smtpd documentation
* Remove test_asyncore, test_asynchat and test_smtpd
* Rename Lib/asynchat.py to Lib/test/support/_asynchat.py
* Rename Lib/asyncore.py to Lib/test/support/_asyncore.py
* Rename Lib/smtpd.py to Lib/test/support/_smtpd.py
* Remove DeprecationWarning from private _asyncore, _asynchat and
  _smtpd modules
* _smtpd: remove deprecated properties
2021-11-16 00:29:17 +01:00
Barry Warsaw 8488b85c63
bpo-44498: Issue a deprecation warning on asynchat, asyncore and smtpd import (#26882)
* Issue a deprecation warning on smtpd import

* Also issue DeprecationWarnings for asynchat and asyncore

* Fix some tests

* test___all__ requires the word 'module' or 'package' in the deprecation
  warning text, so add those to smtpd, asynchat, and asyncore.
* In test_support, use pprint now instead of asyncore as the landmark.

* Add What's New

* Use ..deprecated::

* Use ..deprecated::

* Update Lib/smtpd.py

Co-authored-by: Miro Hrončok <miro@hroncok.cz>

* Update Doc/library/smtpd.rst

Co-authored-by: Miro Hrončok <miro@hroncok.cz>

* Import async{hat,ore} after the DeprecationWarning for this module

Co-authored-by: Miro Hrončok <miro@hroncok.cz>
2021-06-24 12:37:26 -07:00
Serhiy Storchaka c4d45ee670
bpo-42427: Use the errno attribute of OSError instead of args[0] (GH-23449) 2020-11-22 10:28:34 +02:00
Serhiy Storchaka 5eca7f3f38
bpo-15999: Always pass bool instead of int to socket.setblocking(). (GH-15621) 2019-09-01 12:12:52 +03:00
Serhiy Storchaka 96aeaec647
bpo-36793: Remove unneeded __str__ definitions. (GH-13081)
Classes that define __str__ the same as __repr__ can
just inherit it from object.
2019-05-06 22:29:40 +03:00
Gregory P. Smith efb1d0a3c0 bpo-29639: change test.support.HOST to "localhost"
test.support.HOST should be "localhost" as it was in the past. See the bpo-29639.

Tests that need the IP address should use HOSTv4 (added) or the existing HOSTv6 constant.

This changes the definition and fixes tests that needed updating to deal with HOST being
the hostname rather than the hardcoded IP address.

This is only the first step in addressing https://bugs.python.org/issue29639.
2017-09-09 00:30:15 -07:00
Nir Soffer c648a93ae3 bpo-30980: Fix double close in asyncore.file_wrapper (#2789)
* bpo-30980: Fix close test to fail

test_close_twice was not considering the fact that file_wrapper is
duping the file descriptor. Closing the original descriptor left the
duped one open, hiding the fact that close protection is not effective.

* bpo-30980: Fix double close protection

Invalidated self.fd before closing, handling correctly the case when
os.close raises.

* bpo-30980: Fix fd leak introduced in the fixed test
2017-07-24 23:18:06 +02:00
Guido van Rossum 66078ac5d0 Issue #25002: Back out asyncore/asynchat deprecation. 2016-10-25 18:42:51 -07:00
Guido van Rossum 16591f440d Issue 25002: Deprecate asyncore/asynchat. Patch by Mariatta. 2016-10-25 08:49:13 -07:00
Larry Hastings 10108a7b9a Issue #27355: Removed support for Windows CE. It was never finished,
and Windows CE is no longer a relevant platform for Python.
2016-09-05 15:11:23 -07:00
Victor Stinner e19558af1b Add a source parameter to warnings.warn()
Issue #26604:

* Add a new optional source parameter to _warnings.warn() and warnings.warn()
* Modify asyncore, asyncio and _pyio modules to set the source parameter when
  logging a ResourceWarning warning
2016-03-23 00:28:08 +01:00
Victor Stinner 3c7d6e0693 Issue #23485: select.poll.poll() is now retried when interrupted by a signal 2015-03-30 21:38:00 +02:00
Victor Stinner f70e1ca0fc Issue #23485: select.select() is now retried automatically with the recomputed
timeout when interrupted by a signal, except if the signal handler raises an
exception. This change is part of the PEP 475.

The asyncore and selectors module doesn't catch the InterruptedError exception
anymore when calling select.select(), since this function should not raise
InterruptedError anymore.
2015-03-30 21:16:11 +02:00
Raymond Hettinger df1b699447 Issue #22823: Use set literals instead of creating a set from a list 2014-11-09 15:56:33 -08:00
Victor Stinner 1db9e7bb19 Issue #22054: Add os.get_blocking() and os.set_blocking() functions to get and
set the blocking mode of a file descriptor (False if the O_NONBLOCK flag is
set, True otherwise). These functions are not available on Windows.
2014-07-29 22:32:47 +02:00
Serhiy Storchaka 521e5860a5 Issue #22032: __qualname__ instead of __name__ is now always used to format
fully qualified class names of Python implemented classes.
2014-07-22 15:00:37 +03:00
Victor Stinner a81088ae12 (Merge 3.4) Issue #11453: asyncore: emit a ResourceWarning when an unclosed
file_wrapper object is destroyed. The destructor now closes the file if needed.
The close() method can now be called twice: the second call does nothing.
2014-06-27 23:57:19 +02:00
Victor Stinner 4d4c69dc35 Issue #11453: asyncore: emit a ResourceWarning when an unclosed file_wrapper
object is destroyed. The destructor now closes the file if needed. The close()
method can now be called twice: the second call does nothing.
2014-06-27 23:52:03 +02:00
Giampaolo Rodola' 8af740c46a fix isuse #13248: remove previously deprecated asyncore.dispatcher __getattr__ cheap inheritance hack. 2014-04-29 02:03:40 +02:00
Giampaolo Rodola' a4c377cde9 Do not raise exception on close() on account of socket attribute still being None:
>>> import asyncore
>>> d = asyncore.dispatcher()
>>> d.close()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.4/asyncore.py", line 401, in close
    self.socket.close()
AttributeError: 'NoneType' object has no attribute 'close'
>>>
2013-04-09 17:21:25 +02:00
Charles-François Natali fe22dcaba7 Issue #16787: Increase asyncore and asynchat default output buffers size, to
decrease CPU usage and increase throughput.
2013-01-01 16:31:54 +01:00
Andrew Svetlov 0832af6628 Issue #16717: get rid of socket.error, replace with OSError 2012-12-18 23:10:48 +02:00
Andrew Svetlov 5b89840d9c Issue #16714: use 'raise' exceptions, don't 'throw'.
Patch by Serhiy Storchaka.
2012-12-18 21:26:36 +02:00
Andrew Svetlov 737fb89dd1 Issue #16714: use 'raise' exceptions, don't 'throw'.
Patch by Serhiy Storchaka.
2012-12-18 21:14:22 +02:00
Giampaolo Rodola' 3539ef3d21 merge 79422b3684f1 in 3.3 branch (issue 10340) 2012-03-22 16:19:45 +01:00
Giampaolo Rodola' 350c94b900 fix #10340: properly handle EINVAL on OSX and also avoid to call handle_connect() in case of a disconnetected socket which is not meant to connect. 2012-03-22 16:17:43 +01:00
Giampaolo Rodola' 7941736ddb Fix issue #13694: asynchronous connect in asyncore.dispatcher does not set addr. 2012-03-20 16:49:55 +01:00
Giampaolo Rodola' 2a886412ba Fix issue #13694: asynchronous connect in asyncore.dispatcher does not set addr. 2012-03-20 16:44:24 +01:00
Charles-François Natali 88c2e45367 asyncore: POLLERR, POLLHUP and POLLNVAL are ignored when passed as input flag
to poll(2): don't set them.
2011-11-05 14:16:01 +01:00
Antoine Pitrou 24d659daaf Use InterruptedError instead of checking for EINTR 2011-10-23 23:49:42 +02:00
Charles-François Natali f64f9e9ec1 Merge - Issue #12502: asyncore: fix polling loop with AF_UNIX sockets. 2011-07-14 20:00:49 +02:00
Charles-François Natali 1f0ccfa853 Merge - Issue #12502: asyncore: fix polling loop with AF_UNIX sockets. 2011-07-14 19:57:35 +02:00
Giampaolo Rodolà 00a4286591 Merged revisions 88726 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r88726 | giampaolo.rodola | 2011-03-03 15:10:58 +0100 (gio, 03 mar 2011) | 1 line

  fix attribute error
........
2011-03-03 14:11:46 +00:00
Giampaolo Rodolà de3dc0f66c fix attribute error 2011-03-03 14:10:58 +00:00
Giampaolo Rodolà 9c9105dc81 Merged revisions 88722 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r88722 | giampaolo.rodola | 2011-03-03 14:57:47 +0100 (gio, 03 mar 2011) | 1 line

  Fix issue 11265: asyncore now correctly handles EPIPE, EBADF and EAGAIN errors on accept(), recv() and send().
........
2011-03-03 13:59:28 +00:00
Giampaolo Rodolà 1bc75c6cee Fix issue 11265: asyncore now correctly handles EPIPE, EBADF and EAGAIN errors on accept(), recv() and send(). 2011-03-03 13:57:47 +00:00
Giampaolo Rodolà 103a6d6cd6 Issue 11177: asyncore's create_socket() arguments can now be omitted. 2011-02-25 22:21:22 +00:00
Giampaolo Rodolà 900d547047 reverting r88395 and r88387 as per http://mail.python.org/pipermail/python-dev/2011-February/108005.html 2011-02-11 14:01:46 +00:00
Giampaolo Rodolà 42e0b7f47e asyncore: introduce a new 'closed' attribute to make sure that dispatcher gets closed only once.
In different occasions close() might be called more than once, causing problems with already disconnected sockets/dispatchers.
2011-02-11 13:04:18 +00:00
Giampaolo Rodolà 73acad1fa2 get rid of asyncore.dispatcher's debug attribute, which is no longer used (assuming it ever was). 2011-02-10 18:42:36 +00:00
Giampaolo Rodolà 977c707b42 Fix issue 6706: adds new handle_accepted() method to asyncore.dispatcher 2010-10-04 21:08:36 +00:00
Giampaolo Rodolà 86909b50b7 rename DISCONNECTED global constant in _DISCONNECTED 2010-09-15 21:59:04 +00:00
Giampaolo Rodolà 985b68e611 Store all errors signaling a disconnection into a global frozenset to save some computation time on recv() and send(). 2010-09-15 21:43:47 +00:00
Giampaolo Rodolà 76fc8c7098 fix issue 658749: correctly interprets asyncore's windows errors on connect() 2010-08-23 21:53:41 +00:00
Giampaolo Rodolà 934abddaec fix issue #2944: asyncore doesn't handle connection refused correctly (patch by Alexander Shigin). Merged from 2.7 branch. 2010-08-04 09:02:27 +00:00
Georg Brandl cbb0ae4a42 #9354: Provide getsockopt() in asyncore file_wrapper(). Patch by Lukas Langa. 2010-07-28 08:19:35 +00:00
Giampaolo Rodolà 82e02b5876 Merged revisions 81294 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r81294 | giampaolo.rodola | 2010-05-18 22:04:31 +0200 (mar, 18 mag 2010) | 1 line

  Fix issue #8573 (asyncore._strerror bug): fixed os.strerror typo; included NameError in the tuple of expected exception; added test case for asyncore._strerror.
........
2010-05-18 20:11:58 +00:00
Giampaolo Rodolà d61e397b12 Merged revisions 80880 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80880 | giampaolo.rodola | 2010-05-06 21:56:34 +0200 (gio, 06 mag 2010) | 1 line

  provides a clearer warning message when cheap inheritance with the underlying socket object is used
........
2010-05-06 20:02:37 +00:00
Giampaolo Rodolà 8d2dc85154 Merged revisions 80875 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80875 | giampaolo.rodola | 2010-05-06 19:57:06 +0200 (gio, 06 mag 2010) | 1 line

  Fix asyncore issues 8573 and 8483: _strerror might throw ValueError; asyncore.__getattr__ cheap inheritance caused confusing error messages when accessing undefined class attributes; added an alias for __str__ which now is used as a fallback for __repr__
........
2010-05-06 18:06:30 +00:00