code: def select(self, timeout):
      # Try Python 3 selector first.
      if self._py3_selector:
          try:
              return self._py3_selector.select(timeout)
          except PermissionError:
              # We had a situation (in pypager) where epoll raised a
              # PermissionError when a local file descriptor was registered,
              # however poll and select worked fine. So, in that case, just
              # try using select below.
              pass
  
      try:
          # Prefer 'select.select', if we don't have much file descriptors.
          # This is more universal.
          return self._select_selector.select(timeout)
      except ValueError:
          # When we have more than 1024 open file descriptors, we'll always
          # get a "ValueError: filedescriptor out of range in select()" for
          # 'select'. In this case, try, using 'poll' instead.
          if self._poll_selector is not None:
              return self._poll_selector.select(timeout)
          else:
              raise
  
imports: from __future__ import unicode_literals, absolute_import
  import sys
  import abc
  import errno
  import select
  import six
label_desc: Use image node_id 4 for calling the AutoSelector obj's underlying member method code with example usage: obj.select(timeout) and returns: self, self, self