PageRenderTime 44ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/pypy/module/_socket/__init__.py

https://bitbucket.org/pypy/pypy/
Python | 47 lines | 41 code | 6 blank | 0 comment | 1 complexity | 7650cef68de148ae1965a87638ff253f MD5 | raw file
Possible License(s): AGPL-3.0, BSD-3-Clause, Apache-2.0
  1. from pypy.interpreter.mixedmodule import MixedModule
  2. class Module(MixedModule):
  3. appleveldefs = {
  4. }
  5. interpleveldefs = {
  6. 'SocketType': 'interp_socket.W_Socket',
  7. 'socket' : 'interp_socket.W_Socket',
  8. 'error' : 'interp_socket.get_error(space, "error")',
  9. 'herror' : 'interp_socket.get_error(space, "herror")',
  10. 'gaierror' : 'interp_socket.get_error(space, "gaierror")',
  11. 'timeout' : 'interp_socket.get_error(space, "timeout")',
  12. }
  13. def startup(self, space):
  14. from rpython.rlib.rsocket import rsocket_startup
  15. rsocket_startup()
  16. def shutdown(self, space):
  17. from pypy.module._socket.interp_socket import close_all_sockets
  18. close_all_sockets(space)
  19. def buildloaders(cls):
  20. from rpython.rlib import rsocket
  21. for name in """
  22. gethostbyname gethostbyname_ex gethostbyaddr gethostname
  23. getservbyname getservbyport getprotobyname
  24. fromfd socketpair
  25. ntohs ntohl htons htonl inet_aton inet_ntoa inet_pton inet_ntop
  26. getaddrinfo getnameinfo
  27. getdefaulttimeout setdefaulttimeout
  28. """.split():
  29. if name in ('inet_pton', 'inet_ntop', 'fromfd', 'socketpair') \
  30. and not hasattr(rsocket, name):
  31. continue
  32. Module.interpleveldefs[name] = 'interp_func.%s' % (name, )
  33. for constant, value in rsocket.constants.iteritems():
  34. Module.interpleveldefs[constant] = "space.wrap(%r)" % value
  35. super(Module, cls).buildloaders()
  36. buildloaders = classmethod(buildloaders)
  37. #Module.interpleveldefs['has_ipv6'] = "space.wrap(%s)" % _socket.has_ipv6