# Quantopian, Inc. licenses this file to you under the Apache License, Version
# 2.0 (the "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
# 
#   http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.

fasteners==0.14.1
Logbook==1.4.3.post1
netifaces==0.10.9
pexpect==4.6.0
psutil==5.4.8
pycryptodome==3.7.2
python-daemon==2.2.0
python-dateutil==2.7.5
PyYAML==4.2b4
requests==2.21.0
stopit==1.1.2

# Quantopian, Inc. licenses this file to you under the Apache License, Version
# 2.0 (the "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
# 
#   http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.

fasteners==0.14.1
Logbook==1.4.3.post1
netifaces==0.10.9
pexpect==4.6.0
psutil==5.4.8
pycryptodome==3.7.2
python-daemon==2.2.4
python-dateutil==2.7.5
PyYAML==4.2b4
requests==2.21.0
stopit==1.1.2

Upgrade `python-daemon` to 2.2.4 for compatibility with recent Python
Upgrade `python-daemon` to 2.2.4 for compatibility with recent Python

With recent versions of Python 3, opening a client shell fails with
this stack trace in the client logs:

```
Traceback (most recent call last):
  File "client/endpoints/shell.py", line 54, in <module>
    main()
  File "client/endpoints/shell.py", line 49, in main
    with manager():
  File "/opt/penguindome/client/var/client-venv/lib/python3.8/site-packages/daem
on/daemon.py", line 273, in __init__
    detach_process = is_detach_process_context_required()
  File "/opt/penguindome/client/var/client-venv/lib/python3.8/site-packages/daemon/daemon.py", line 821, in is_detach_process_context_required
    if is_process_started_by_init() or is_process_started_by_superserver():
  File "/opt/penguindome/client/var/client-venv/lib/python3.8/site-packages/daemon/daemon.py", line 798, in is_process_started_by_superserver
    if is_socket(stdin_fd):
  File "/opt/penguindome/client/var/client-venv/lib/python3.8/site-packages/daemon/daemon.py", line 764, in is_socket
    file_socket = socket.fromfd(fd, socket.AF_INET, socket.SOCK_RAW)
  File "/usr/lib/python3.8/socket.py", line 544, in fromfd
    return socket(family, type, proto, nfd)
  File "/usr/lib/python3.8/socket.py", line 231, in __init__
    _socket.socket.__init__(self, family, type, proto, fileno)
OSError: [Errno 88] Socket operation on non-socket
```

Upgrading to the current version of `python-daemon` fixes this.
