123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- """0MQ Constants."""
- # Copyright (c) PyZMQ Developers.
- # Distributed under the terms of the Modified BSD License.
- from zmq.backend import constants
- from zmq.backend import has
- from zmq.utils.constant_names import (
- base_names,
- switched_sockopt_names,
- int_sockopt_names,
- int64_sockopt_names,
- bytes_sockopt_names,
- fd_sockopt_names,
- ctx_opt_names,
- msg_opt_names,
- )
- #-----------------------------------------------------------------------------
- # Python module level constants
- #-----------------------------------------------------------------------------
- __all__ = [
- 'int_sockopts',
- 'int64_sockopts',
- 'bytes_sockopts',
- 'ctx_opts',
- 'ctx_opt_names',
- 'DRAFT_API',
- ]
- if constants.VERSION < 40200:
- DRAFT_API = False
- else:
- DRAFT_API = bool(has('draft') and constants.DRAFT_API)
- int_sockopts = set()
- int64_sockopts = set()
- bytes_sockopts = set()
- fd_sockopts = set()
- ctx_opts = set()
- msg_opts = set()
- if constants.VERSION < 30000:
- int64_sockopt_names.extend(switched_sockopt_names)
- else:
- int_sockopt_names.extend(switched_sockopt_names)
- _UNDEFINED = -9999
- def _add_constant(name, container=None):
- """add a constant to be defined
- optionally add it to one of the sets for use in get/setopt checkers
- """
- c = getattr(constants, name, _UNDEFINED)
- if c == _UNDEFINED:
- return
- globals()[name] = c
- __all__.append(name)
- if container is not None:
- container.add(c)
- return c
- for name in base_names:
- _add_constant(name)
- for name in int_sockopt_names:
- _add_constant(name, int_sockopts)
- for name in int64_sockopt_names:
- _add_constant(name, int64_sockopts)
- for name in bytes_sockopt_names:
- _add_constant(name, bytes_sockopts)
- for name in fd_sockopt_names:
- _add_constant(name, fd_sockopts)
- for name in ctx_opt_names:
- _add_constant(name, ctx_opts)
- for name in msg_opt_names:
- _add_constant(name, msg_opts)
- # ensure some aliases are always defined
- aliases = [
- ('DONTWAIT', 'NOBLOCK'),
- ('XREQ', 'DEALER'),
- ('XREP', 'ROUTER'),
- ]
- for group in aliases:
- undefined = set()
- found = None
- for name in group:
- value = getattr(constants, name, -1)
- if value != -1:
- found = value
- else:
- undefined.add(name)
- if found is not None:
- for name in undefined:
- globals()[name] = found
- __all__.append(name)
|