Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(46)

Side by Side Diff: Lib/asynchat.py

Issue 3255: Issue #3602 (Closed) SVN Base: http://svn.python.org/view/*checkout*/python/trunk/
Patch Set: Created 1 year, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 # -*- Mode: Python; tab-width: 4 -*- 1 # -*- Mode: Python; tab-width: 4 -*-
2 # Id: asynchat.py,v 2.26 2000/09/07 22:29:26 rushing Exp 2 # Id: asynchat.py,v 2.26 2000/09/07 22:29:26 rushing Exp
3 # Author: Sam Rushing <rushing@nightmare.com> 3 # Author: Sam Rushing <rushing@nightmare.com>
4 4
5 # ====================================================================== 5 # ======================================================================
6 # Copyright 1996 by Sam Rushing 6 # Copyright 1996 by Sam Rushing
7 # 7 #
8 # All Rights Reserved 8 # All Rights Reserved
9 # 9 #
10 # Permission to use, copy, modify, and distribute this software and 10 # Permission to use, copy, modify, and distribute this software and
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 order to process the single-line greeting. Just before issuing a 42 order to process the single-line greeting. Just before issuing a
43 'LIST' command you'll set it to '\r\n.\r\n'. The output of the LIST 43 'LIST' command you'll set it to '\r\n.\r\n'. The output of the LIST
44 command will be accumulated (using your own 'collect_incoming_data' 44 command will be accumulated (using your own 'collect_incoming_data'
45 method) up to the terminator, and then control will be returned to 45 method) up to the terminator, and then control will be returned to
46 you - by calling your self.found_terminator() method. 46 you - by calling your self.found_terminator() method.
47 """ 47 """
48 48
49 import socket 49 import socket
50 import asyncore 50 import asyncore
51 from collections import deque 51 from collections import deque
52 from sys import py3kwarning
Benjamin 2008/08/23 01:46:36 I think it's better to just "import sys" here, so
brett.cannon 2008/08/23 02:19:54 On 2008/08/23 01:46:36, Benjamin wrote: > I think
52 from test.test_support import catch_warning 53 from test.test_support import catch_warning
53 from warnings import filterwarnings 54 from warnings import filterwarnings, catch_warnings
54 55
55 class async_chat (asyncore.dispatcher): 56 class async_chat (asyncore.dispatcher):
56 """This is an abstract class. You must derive from this class, and add 57 """This is an abstract class. You must derive from this class, and add
57 the two methods collect_incoming_data() and found_terminator()""" 58 the two methods collect_incoming_data() and found_terminator()"""
58 59
59 # these are overridable defaults 60 # these are overridable defaults
60 61
61 ac_in_buffer_size = 4096 62 ac_in_buffer_size = 4096
62 ac_out_buffer_size = 4096 63 ac_out_buffer_size = 4096
63 64
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 # handle empty string/buffer or None entry 212 # handle empty string/buffer or None entry
212 if not first: 213 if not first:
213 del self.producer_fifo[0] 214 del self.producer_fifo[0]
214 if first is None: 215 if first is None:
215 self.handle_close() 216 self.handle_close()
216 return 217 return
217 218
218 # handle classic producer behavior 219 # handle classic producer behavior
219 obs = self.ac_out_buffer_size 220 obs = self.ac_out_buffer_size
220 try: 221 try:
221 with catch_warning(record=False): 222 with catch_warnings():
222 filterwarnings("ignore", ".*buffer", DeprecationWarning) 223 if py3kwarning:
224 filterwarnings("ignore", ".*buffer", DeprecationWarning)
223 data = buffer(first, 0, obs) 225 data = buffer(first, 0, obs)
224 except TypeError: 226 except TypeError:
225 data = first.more() 227 data = first.more()
226 if data: 228 if data:
227 self.producer_fifo.appendleft(data) 229 self.producer_fifo.appendleft(data)
228 else: 230 else:
229 del self.producer_fifo[0] 231 del self.producer_fifo[0]
230 continue 232 continue
231 233
232 # send the data 234 # send the data
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 # new python: 28961/s 306 # new python: 28961/s
305 # old python: 18307/s 307 # old python: 18307/s
306 # re: 12820/s 308 # re: 12820/s
307 # regex: 14035/s 309 # regex: 14035/s
308 310
309 def find_prefix_at_end (haystack, needle): 311 def find_prefix_at_end (haystack, needle):
310 l = len(needle) - 1 312 l = len(needle) - 1
311 while l and not haystack.endswith(needle[:l]): 313 while l and not haystack.endswith(needle[:l]):
312 l -= 1 314 l -= 1
313 return l 315 return l
OLDNEW

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld r483