fix green package not to use absolute_import and otherwise be nice on 2.4

This commit is contained in:
Denis Bilenko
2009-05-19 16:19:05 +07:00
parent 8eba50247f
commit 23d8a30c03
9 changed files with 61 additions and 51 deletions

View File

@@ -1,10 +1,12 @@
from __future__ import absolute_import
import sys import sys
from eventlet.green import socket from eventlet.green import socket
from eventlet.green import SocketServer from eventlet.green import SocketServer
from BaseHTTPServer import (DEFAULT_ERROR_MESSAGE, _quote_html, __version__, __all__, __import_lst = ['DEFAULT_ERROR_MESSAGE', '_quote_html', '__version__', '__all__', 'BaseHTTPRequestHandler']
BaseHTTPRequestHandler as __BaseHTTPRequestHandler) __BaseHTTPServer = __import__('BaseHTTPServer')
for var in __import_lst:
exec "%s = __BaseHTTPServer.%s" % (var, var)
class HTTPServer(SocketServer.TCPServer): class HTTPServer(SocketServer.TCPServer):
@@ -18,7 +20,7 @@ class HTTPServer(SocketServer.TCPServer):
self.server_port = port self.server_port = port
class BaseHTTPRequestHandler(__BaseHTTPRequestHandler): class BaseHTTPRequestHandler(BaseHTTPRequestHandler):
def address_string(self): def address_string(self):
host, port = self.client_address[:2] host, port = self.client_address[:2]

View File

@@ -1,13 +1,15 @@
from __future__ import absolute_import __import_lst = ['__all__', '__version__', 'BaseServer', 'TCPServer', 'UDPServer', 'ForkingMixIn',
from SocketServer import (__all__, __version__, BaseServer, TCPServer as __TCPServer, 'ThreadingMixIn', 'BaseRequestHandler', 'StreamRequestHandler', 'DatagramRequestHandler']
UDPServer as __UDPServer, ForkingMixIn, ThreadingMixIn as __ThreadingMixIn, __SocketServer = __import__('SocketServer')
BaseRequestHandler, StreamRequestHandler, DatagramRequestHandler) for var in __import_lst:
exec "%s = __SocketServer.%s" % (var, var)
# QQQ ForkingMixIn should be fixed to use green waitpid? # QQQ ForkingMixIn should be fixed to use green waitpid?
from eventlet.green import socket from eventlet.green import socket
class TCPServer(__TCPServer): class TCPServer(TCPServer):
def __init__(self, server_address, RequestHandlerClass): def __init__(self, server_address, RequestHandlerClass):
"""Constructor. May be extended, do not override.""" """Constructor. May be extended, do not override."""
@@ -17,7 +19,7 @@ class TCPServer(__TCPServer):
self.server_bind() self.server_bind()
self.server_activate() self.server_activate()
class UDPServer(__UDPServer): class UDPServer(UDPServer):
def __init__(self, server_address, RequestHandlerClass): def __init__(self, server_address, RequestHandlerClass):
"""Constructor. May be extended, do not override.""" """Constructor. May be extended, do not override."""
@@ -27,7 +29,7 @@ class UDPServer(__UDPServer):
self.server_bind() self.server_bind()
self.server_activate() self.server_activate()
class ThreadingMixIn(__ThreadingMixIn): class ThreadingMixIn(ThreadingMixIn):
def process_request(self, request, client_address): def process_request(self, request, client_address):
"""Start a new thread to process the request.""" """Start a new thread to process the request."""

View File

@@ -1,3 +1,5 @@
from __future__ import absolute_import __select = __import__('select')
from select import * for var in dir(__select):
exec "%s = __select.%s" % (var, var)
from eventlet.api import select from eventlet.api import select
del poll

View File

@@ -1,7 +1,6 @@
from __future__ import absolute_import __socket = __import__('socket')
import socket for var in __socket.__all__:
import socket as __socket exec "%s = __socket.%s" % (var, var)
from socket import *
_fileobject = __socket._fileobject _fileobject = __socket._fileobject
from eventlet.api import get_hub from eventlet.api import get_hub

View File

@@ -1,11 +1,10 @@
"""implements standard module 'thread' with greenlets""" """implements standard module 'thread' with greenlets"""
from __future__ import absolute_import __thread = __import__('thread')
import thread as thread_module
from eventlet.support import greenlets as greenlet from eventlet.support import greenlets as greenlet
from eventlet.api import spawn from eventlet.api import spawn
from eventlet.coros import Semaphore as LockType from eventlet.coros import Semaphore as LockType
error = thread_module.error error = __thread.error
def get_ident(gr=None): def get_ident(gr=None):
if gr is None: if gr is None:
@@ -23,11 +22,12 @@ def allocate_lock():
def exit(): def exit():
raise greenlet.GreenletExit raise greenlet.GreenletExit
def stack_size(size=None): if hasattr(__thread, 'stack_size'):
def stack_size(size=None):
if size is None: if size is None:
return thread_module.stack_size() return __thread.stack_size()
if size > thread_module.stack_size(): if size > __thread.stack_size():
return thread_module.stack_size(size) return __thread.stack_size(size)
else: else:
pass pass
# not going to decrease stack_size, because otherwise other greenlets in this thread will suffer # not going to decrease stack_size, because otherwise other greenlets in this thread will suffer

View File

@@ -9,7 +9,7 @@ from collections import deque
# Rename some stuff so "from threading import *" is safe # Rename some stuff so "from threading import *" is safe
__all__ = ['activeCount', 'Condition', 'currentThread', 'enumerate', 'Event', __all__ = ['activeCount', 'Condition', 'currentThread', 'enumerate', 'Event',
'Lock', 'RLock', 'Semaphore', 'BoundedSemaphore', 'Thread', 'Lock', 'RLock', 'Semaphore', 'BoundedSemaphore', 'Thread',
'Timer', 'setprofile', 'settrace', 'local', 'stack_size'] 'Timer', 'setprofile', 'settrace', 'local']
_start_new_thread = thread.start_new_thread _start_new_thread = thread.start_new_thread
_allocate_lock = thread.allocate_lock _allocate_lock = thread.allocate_lock
@@ -743,7 +743,11 @@ def enumerate():
_active_limbo_lock.release() _active_limbo_lock.release()
return active return active
from thread import stack_size try:
from thread import stack_size
__all__.append('stack_size')
except ImportError:
pass
# Create the main thread object, # Create the main thread object,
# and make it available for the interpreter # and make it available for the interpreter

View File

@@ -1,7 +1,4 @@
from __future__ import absolute_import __time = __import__('time')
from time import * for var in dir(__time):
exec "%s = __time.%s" % (var, var)
from eventlet.api import sleep from eventlet.api import sleep
def _install():
import time
time.sleep = sleep

View File

@@ -1,16 +1,19 @@
from __future__ import absolute_import urllib = __import__('urllib')
import urllib for var in dir(urllib):
from urllib import * exec "%s = urllib.%s" % (var, var)
# import the following to be a better drop-in replacement # import the following to be a better drop-in replacement
from urllib import (__all__, __version__, MAXFTPCACHE, ContentTooShortError, __import_lst = ['__all__', '__version__', 'MAXFTPCACHE', 'ContentTooShortError',
ftpcache, _noheaders, noheaders, addbase, addclosehook, 'ftpcache', '_noheaders', 'noheaders', 'addbase', 'addclosehook',
addinfo, addinfourl, _is_unicode, toBytes, _hextochr, 'addinfo', 'addinfourl', '_is_unicode', 'toBytes', '_hextochr',
always_safe, getproxies_environment, proxy_bypass) 'always_safe', 'getproxies_environment', 'proxy_bypass']
for var in __import_lst:
exec "%s = urllib.%s" % (var, var)
from eventlet.green import socket from eventlet.green import socket
import os import os
import time from eventlet.green import time
import sys import sys
from urlparse import urljoin as basejoin from urlparse import urljoin as basejoin

View File

@@ -1,11 +1,12 @@
from __future__ import absolute_import urllib2 = __import__('urllib2')
for var in dir(urllib2):
exec "%s = urllib2.%s" % (var, var)
# XXX blocking builtin open() is used in randombytes() # import the following to be a better drop-in replacement
# AbstractHTTPHandler uses socket.error and socket._fileobject but that's OK __import_lst = ['__version__', '__cut_port_re', '_parse_proxy']
# as long as evenlet.green.socket imports them, does not reimplement them
import urllib2 for var in __import_lst:
from urllib2 import * exec "%s = getattr(urllib2, %r, None)" % (var, var)
from urllib2 import __version__, _cut_port_re, _parse_proxy
del (urlopen, install_opener, build_opener, HTTPHandler, HTTPSHandler, del (urlopen, install_opener, build_opener, HTTPHandler, HTTPSHandler,
HTTPCookieProcessor, FileHandler, FTPHandler, CacheFTPHandler, GopherError) HTTPCookieProcessor, FileHandler, FTPHandler, CacheFTPHandler, GopherError)