/usr/lib/python2.7/dist-packages/amqp/platform.py is in python-amqp 2.2.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | """Platform compatibility."""
from __future__ import absolute_import, unicode_literals
import struct
import sys
import platform
import re
# Jython does not have this attribute
try:
from socket import SOL_TCP
except ImportError: # pragma: no cover
from socket import IPPROTO_TCP as SOL_TCP # noqa
RE_NUM = re.compile(r'(\d+).+')
def _linux_version_to_tuple(s):
# type: (str) -> Tuple[int, int, int]
return tuple(map(_versionatom, s.split('.')[:3]))
def _versionatom(s):
# type: (str) -> int
if s.isdigit():
return int(s)
match = RE_NUM.match(s)
return int(match.groups()[0]) if match else 0
LINUX_VERSION = None
if sys.platform.startswith('linux'):
LINUX_VERSION = _linux_version_to_tuple(platform.release())
try:
from socket import TCP_USER_TIMEOUT
HAS_TCP_USER_TIMEOUT = True
except ImportError: # pragma: no cover
# should be in Python 3.6+ on Linux.
TCP_USER_TIMEOUT = 18
HAS_TCP_USER_TIMEOUT = LINUX_VERSION and LINUX_VERSION >= (2, 6, 37)
HAS_TCP_MAXSEG = True
# According to MSDN Windows platforms support getsockopt(TCP_MAXSSEG) but not
# setsockopt(TCP_MAXSEG) on IPPROTO_TCP sockets.
if sys.platform.startswith('win'):
HAS_TCP_MAXSEG = False
if sys.version_info < (2, 7, 7):
import functools
def _to_bytes_arg(fun):
@functools.wraps(fun)
def _inner(s, *args, **kwargs):
return fun(s.encode(), *args, **kwargs)
return _inner
pack = _to_bytes_arg(struct.pack)
pack_into = _to_bytes_arg(struct.pack_into)
unpack = _to_bytes_arg(struct.unpack)
unpack_from = _to_bytes_arg(struct.unpack_from)
else:
pack = struct.pack
pack_into = struct.pack_into
unpack = struct.unpack
unpack_from = struct.unpack_from
__all__ = [
'LINUX_VERSION',
'SOL_TCP',
'TCP_USER_TIMEOUT',
'HAS_TCP_USER_TIMEOUT',
'HAS_TCP_MAXSEG',
'pack',
'pack_into',
'unpack',
'unpack_from',
]
|