File: //proc/self/root/usr/lib/python3/dist-packages/twisted/python/__pycache__/systemd.cpython-38.pyc
U
W[ � @ s: d Z ddlmZmZ dgZddlmZ G dd� de�ZdS )z�
Integration with systemd.
Currently only the minimum APIs necessary for using systemd's socket activation
feature are supported.
� )�division�absolute_import� ListenFDs)�getpidc @ s2 e Zd ZdZdZdd� Zed
dd��Zdd � ZdS )r af
L{ListenFDs} provides access to file descriptors inherited from systemd.
Typically L{ListenFDs.fromEnvironment} should be used to construct a new
instance of L{ListenFDs}.
@cvar _START: File descriptors inherited from systemd are always
consecutively numbered, with a fixed lowest "starting" descriptor. This
gives the default starting descriptor. Since this must agree with the
value systemd is using, it typically should not be overridden.
@type _START: C{int}
@ivar _descriptors: A C{list} of C{int} giving the descriptors which were
inherited.
� c C s
|| _ dS )z
@param descriptors: The descriptors which will be returned from calls to
C{inheritedDescriptors}.
N)�_descriptors)�self�descriptors� r
�8/usr/lib/python3/dist-packages/twisted/python/systemd.py�__init__% s zListenFDs.__init__Nc C s� |dkrddl m} |dkr"| j}g }zt|d �}W n ttfk
rN Y nPX |t� kr�zt|d �}W n ttfk
r� Y nX t||| �}|d= |d= | |�S )a�
@param environ: A dictionary-like object to inspect to discover
inherited descriptors. By default, L{None}, indicating that the
real process environment should be inspected. The default is
suitable for typical usage.
@param start: An integer giving the lowest value of an inherited
descriptor systemd will give us. By default, L{None}, indicating
the known correct (that is, in agreement with systemd) value will be
used. The default is suitable for typical usage.
@return: A new instance of C{cls} which can be used to look up the
descriptors which have been inherited.
Nr )�environZ
LISTEN_PIDZ
LISTEN_FDS)�osr
�_START�int�KeyError�
ValueErrorr �range)�clsr
�startr �pid�countr
r
r �fromEnvironment- s"