odd errors when network drops: TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'

Describe the issue briefly here.
Environment Versions

OS Type
Python version: $ python -V
pip version:  $ pip --version
pip-tools version: $ pip-compile --version

Steps to replicate

run pip-compile
remove ethernet cable
observe odd errors

Expected result
just a plain old socket error
Actual result
Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 138, in _new_conn
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/connection.py", line 98, in create_connection
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/connection.py", line 88, in create_connection
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 594, in urlopen
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 350, in _make_request
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 837, in _validate_conn
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 281, in connect
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 143, in _new_conn
requests.packages.urllib3.exceptions.ConnectTimeoutError: (<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7f3fa3f63710>, 'Connection to pypi.python.org timed out. (connect timeout=15)')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/bin/pip-compile", line 11, in <module>
    sys.exit(cli())
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/scripts/compile.py", line 187, in cli
    results = resolver.resolve(max_rounds=max_rounds)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 102, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 191, in _resolve_one_round
    best_matches = {self.get_best_match(ireq) for ireq in constraints}
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 191, in <setcomp>
    best_matches = {self.get_best_match(ireq) for ireq in constraints}
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 256, in get_best_match
    best_match = self.repository.find_best_match(ireq, prereleases=self.prereleases)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/repositories/pypi.py", line 110, in find_best_match
    all_candidates = self.find_all_candidates(ireq.name)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/repositories/pypi.py", line 96, in find_all_candidates
    candidates = self.finder.find_all_candidates(req_name)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 423, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 568, in _get_pages
    page = self._get_page(location)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 683, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 792, in get_page
    "Cache-Control": "max-age=600",
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 501, in get
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/download.py", line 386, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 488, in request
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 609, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/adapter.py", line 47, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/adapters.py", line 423, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 643, in urlopen
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 315, in increment
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 138, in _new_conn
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/connection.py", line 98, in create_connection
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/connection.py", line 88, in create_connection
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 594, in urlopen
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 350, in _make_request
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 837, in _validate_conn
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 281, in connect
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 143, in _new_conn
requests.packages.urllib3.exceptions.ConnectTimeoutError: (<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7f284e40dc18>, 'Connection to pypi.python.org timed out. (connect timeout=15)')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/bin/pip-compile", line 11, in <module>
    sys.exit(cli())
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/scripts/compile.py", line 187, in cli
    results = resolver.resolve(max_rounds=max_rounds)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 102, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 191, in _resolve_one_round
    best_matches = {self.get_best_match(ireq) for ireq in constraints}
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 191, in <setcomp>
    best_matches = {self.get_best_match(ireq) for ireq in constraints}
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 256, in get_best_match
    best_match = self.repository.find_best_match(ireq, prereleases=self.prereleases)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/repositories/pypi.py", line 110, in find_best_match
    all_candidates = self.find_all_candidates(ireq.name)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/repositories/pypi.py", line 96, in find_all_candidates
    candidates = self.finder.find_all_candidates(req_name)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 423, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 568, in _get_pages
    page = self._get_page(location)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 683, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 792, in get_page
    "Cache-Control": "max-age=600",
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 501, in get
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/download.py", line 386, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 488, in request
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 609, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/adapter.py", line 47, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/adapters.py", line 423, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 643, in urlopen
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 315, in increment
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 350, in _make_request
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 837, in _validate_conn
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 323, in connect
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/ssl_.py", line 324, in ssl_wrap_socket
  File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket
    _context=self, _session=session)
  File "/usr/lib/python3.6/ssl.py", line 814, in __init__
    self.do_handshake()
  File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake
    self._sslobj.do_handshake()
  File "/usr/lib/python3.6/ssl.py", line 689, in do_handshake
    self._sslobj.do_handshake()
socket.timeout: _ssl.c:761: The handshake operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 594, in urlopen
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 353, in _make_request
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 313, in _raise_timeout
requests.packages.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out. (read timeout=15)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/bin/pip-compile", line 11, in <module>
    sys.exit(cli())
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/scripts/compile.py", line 187, in cli
    results = resolver.resolve(max_rounds=max_rounds)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 102, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 191, in _resolve_one_round
    best_matches = {self.get_best_match(ireq) for ireq in constraints}
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 191, in <setcomp>
    best_matches = {self.get_best_match(ireq) for ireq in constraints}
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 256, in get_best_match
    best_match = self.repository.find_best_match(ireq, prereleases=self.prereleases)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/repositories/pypi.py", line 110, in find_best_match
    all_candidates = self.find_all_candidates(ireq.name)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/repositories/pypi.py", line 96, in find_all_candidates
    candidates = self.finder.find_all_candidates(req_name)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 423, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 568, in _get_pages
    page = self._get_page(location)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 683, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 792, in get_page
    "Cache-Control": "max-age=600",
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 501, in get
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/download.py", line 386, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 488, in request
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 609, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/adapter.py", line 47, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/adapters.py", line 423, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 643, in urlopen
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 315, in increment
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 350, in _make_request
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 837, in _validate_conn
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 323, in connect
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/ssl_.py", line 324, in ssl_wrap_socket
  File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket
    _context=self, _session=session)
  File "/usr/lib/python3.6/ssl.py", line 814, in __init__
    self.do_handshake()
  File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake
    self._sslobj.do_handshake()
  File "/usr/lib/python3.6/ssl.py", line 689, in do_handshake
    self._sslobj.do_handshake()
socket.timeout: _ssl.c:761: The handshake operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 594, in urlopen
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 353, in _make_request
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 313, in _raise_timeout
requests.packages.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out. (read timeout=15)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/bin/pip-compile", line 11, in <module>
    sys.exit(cli())
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/scripts/compile.py", line 187, in cli
    results = resolver.resolve(max_rounds=max_rounds)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 102, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 191, in _resolve_one_round
    best_matches = {self.get_best_match(ireq) for ireq in constraints}
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 191, in <setcomp>
    best_matches = {self.get_best_match(ireq) for ireq in constraints}
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 256, in get_best_match
    best_match = self.repository.find_best_match(ireq, prereleases=self.prereleases)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/repositories/pypi.py", line 110, in find_best_match
    all_candidates = self.find_all_candidates(ireq.name)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/repositories/pypi.py", line 96, in find_all_candidates
    candidates = self.finder.find_all_candidates(req_name)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 423, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 568, in _get_pages
    page = self._get_page(location)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 683, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 792, in get_page
    "Cache-Control": "max-age=600",
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 501, in get
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/download.py", line 386, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 488, in request
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 609, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/adapter.py", line 47, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/adapters.py", line 423, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 643, in urlopen
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 315, in increment
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 138, in _new_conn
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/connection.py", line 98, in create_connection
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/connection.py", line 88, in create_connection
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 594, in urlopen
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 350, in _make_request
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 837, in _validate_conn
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 281, in connect
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 143, in _new_conn
requests.packages.urllib3.exceptions.ConnectTimeoutError: (<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7f41ce2c22e8>, 'Connection to pypi.python.org timed out. (connect timeout=15)')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/bin/pip-compile", line 11, in <module>
    sys.exit(cli())
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/scripts/compile.py", line 187, in cli
    results = resolver.resolve(max_rounds=max_rounds)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 102, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 191, in _resolve_one_round
    best_matches = {self.get_best_match(ireq) for ireq in constraints}
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 191, in <setcomp>
    best_matches = {self.get_best_match(ireq) for ireq in constraints}
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 256, in get_best_match
    best_match = self.repository.find_best_match(ireq, prereleases=self.prereleases)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/repositories/pypi.py", line 110, in find_best_match
    all_candidates = self.find_all_candidates(ireq.name)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/repositories/pypi.py", line 96, in find_all_candidates
    candidates = self.finder.find_all_candidates(req_name)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 423, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 568, in _get_pages
    page = self._get_page(location)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 683, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 792, in get_page
    "Cache-Control": "max-age=600",
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 501, in get
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/download.py", line 386, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 488, in request
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 609, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/adapter.py", line 47, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/adapters.py", line 423, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 643, in urlopen
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 315, in increment
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 138, in _new_conn
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/connection.py", line 98, in create_connection
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/connection.py", line 88, in create_connection
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 594, in urlopen
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 350, in _make_request
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 837, in _validate_conn
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 281, in connect
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 143, in _new_conn
requests.packages.urllib3.exceptions.ConnectTimeoutError: (<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7f110c87bb38>, 'Connection to pypi.python.org timed out. (connect timeout=15)')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/bin/pip-compile", line 11, in <module>
    sys.exit(cli())
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/scripts/compile.py", line 187, in cli
    results = resolver.resolve(max_rounds=max_rounds)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 102, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 191, in _resolve_one_round
    best_matches = {self.get_best_match(ireq) for ireq in constraints}
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 191, in <setcomp>
    best_matches = {self.get_best_match(ireq) for ireq in constraints}
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 256, in get_best_match
    best_match = self.repository.find_best_match(ireq, prereleases=self.prereleases)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/repositories/pypi.py", line 110, in find_best_match
    all_candidates = self.find_all_candidates(ireq.name)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/repositories/pypi.py", line 96, in find_all_candidates
    candidates = self.finder.find_all_candidates(req_name)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 423, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 568, in _get_pages
    page = self._get_page(location)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 683, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 792, in get_page
    "Cache-Control": "max-age=600",
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 501, in get
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/download.py", line 386, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 488, in request
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 609, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/adapter.py", line 47, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/adapters.py", line 423, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 643, in urlopen
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 315, in increment
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 138, in _new_conn
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/connection.py", line 98, in create_connection
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/connection.py", line 88, in create_connection
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 594, in urlopen
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 350, in _make_request
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 837, in _validate_conn
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 281, in connect
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 143, in _new_conn
requests.packages.urllib3.exceptions.ConnectTimeoutError: (<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7f55b1acfd30>, 'Connection to pypi.python.org timed out. (connect timeout=15)')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/bin/pip-compile", line 11, in <module>
    sys.exit(cli())
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/scripts/compile.py", line 187, in cli
    results = resolver.resolve(max_rounds=max_rounds)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 102, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 191, in _resolve_one_round
    best_matches = {self.get_best_match(ireq) for ireq in constraints}
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 191, in <setcomp>
    best_matches = {self.get_best_match(ireq) for ireq in constraints}
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 256, in get_best_match
    best_match = self.repository.find_best_match(ireq, prereleases=self.prereleases)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/repositories/pypi.py", line 110, in find_best_match
    all_candidates = self.find_all_candidates(ireq.name)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/repositories/pypi.py", line 96, in find_all_candidates
    candidates = self.finder.find_all_candidates(req_name)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 423, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 568, in _get_pages
    page = self._get_page(location)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 683, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 792, in get_page
    "Cache-Control": "max-age=600",
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 501, in get
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/download.py", line 386, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 488, in request
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 609, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/adapter.py", line 47, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/adapters.py", line 423, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 643, in urlopen
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 315, in increment
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 138, in _new_conn
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/connection.py", line 98, in create_connection
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/connection.py", line 88, in create_connection
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 594, in urlopen
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 350, in _make_request
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 837, in _validate_conn
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 281, in connect
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connection.py", line 143, in _new_conn
requests.packages.urllib3.exceptions.ConnectTimeoutError: (<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7f384fe0b9b0>, 'Connection to pypi.python.org timed out. (connect timeout=15)')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/graingert/.virtualenvs/pip-compile/bin/pip-compile", line 11, in <module>
    sys.exit(cli())
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/scripts/compile.py", line 187, in cli
    results = resolver.resolve(max_rounds=max_rounds)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 102, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 191, in _resolve_one_round
    best_matches = {self.get_best_match(ireq) for ireq in constraints}
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 191, in <setcomp>
    best_matches = {self.get_best_match(ireq) for ireq in constraints}
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/resolver.py", line 256, in get_best_match
    best_match = self.repository.find_best_match(ireq, prereleases=self.prereleases)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/repositories/pypi.py", line 110, in find_best_match
    all_candidates = self.find_all_candidates(ireq.name)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/piptools/repositories/pypi.py", line 96, in find_all_candidates
    candidates = self.finder.find_all_candidates(req_name)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 423, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 568, in _get_pages
    page = self._get_page(location)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 683, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/index.py", line 792, in get_page
    "Cache-Control": "max-age=600",
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 501, in get
  File "/home/graingert/.virtualenvs/pip-compile/lib/python3.6/site-packages/pip/download.py", line 386, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 488, in request
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 609, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/adapter.py", line 47, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/adapters.py", line 423, in send
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 643, in urlopen
  File "/home/graingert/.virtualenvs/pip-compile/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 315, in increment
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'

Hi @graingert, thanks for the report.
I'm almost certain this isn't an issue with pip-tools, but rather with one of the upstream library, likely urllib3.
Although, I thought that pip was vendoring its libs, so I'm surprised to not see the path to pip vendored lib there. Another thing that caught my eye is the share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/..., I'm not used to seeing lib used outside of site-packages, even less directly from wheels.
I have a pretty strong gut feeling that something special is going on with this setup. You probably have a better idea of what's going on than I do.

@vphilippon it's a plain old ubuntu python3 -m venv

Well I learned something today: virtualenv vs venv!
I really need to get up-to-date on python 3 (shakes fist at my own legacy projects).
Back on track: I found a similar issue, regarding pip rather that pip-tools:
https://stackoverflow.com/questions/37495375/python-pip-install-throws-typeerror-unsupported-operand-types-for-retry#comment62486615_37495375
Skipping the part pointing out to a network issue (you got that figured out already), others are pointing to the surprising part where pip isn't using its vendored libs. In that case, venv is also used.
Then, I searched a bit on pip Github issue tracker:

https://github.com/pypa/pip/issues/3943#issuecomment-245306197
https://github.com/pypa/pip/issues/4779#issuecomment-335945617

That seem to be related to the patched pip version distributed by Ubuntu.
In the end, this is not on pip-tools side*.
I hope you have a few pointers nonetheless!
* (That is, until we make the move to vendor pip to avoid the major breaks from pip 10. I won't have the luxury of throwing back the ball then.)


Revert PR 287 which added service tag

See https://github.com/opentracing/specification/issues/131.
Until this gets resolved, I don't think it should be included in an official release.
Reverts opentracing/opentracing-java#287.

+1


Lock Picking Module - Add it to your scenario!

Hi All,
I have created a Module that you can use to add a Lock picking puzzle into your scenario.
It looks like this!

Its just a simple order puzzle, thematically appropriate (I hope).
Its just a script to copy some lines of code into your Event.ini, ui.ini and localization.english.txt, it also uses some custom images that I made.
Unzip the ScrubblessLockPickModule.zip into your %appdata%\Valkyrie\MoM\Editor<scenariofolder> then run the RunMe.bat.
Once you've done that, the event chains and UI elements will show up in your scenario. Create a token and point it to "LP_Token". There are a few bits you'll need to edit, but its all explained in the ReadMe.txt contained within the .ZIP.
If you're worried about the script, edit it to take a look at what its doing. Its just a "type" batch command that will copy the contents of pre-generated files into your scenario files, then delete the files and script.
I wanted to get some feedback before I added this to the guide and made it more widely available. If you lot like it i'll make a more graphical guide and add it to the tutorial.
ScrubblessLockPickModule.zip

Awesome idea scrubbles! will try it soon.

@scrubbless, I'd like to test your creation and give you a feedback but I think I am dump :p. Although I've followed the instruction, I have problems.
I've created a totally new scenario. I've done points 1-4 written in the instruction. Unfortunately, I'm stuck at point 5. Although I see new things in the files, I can't see any of them in the app.

I tried another scenario made by someone else and the RunMe script works:

Could you check it? Also, could you create an alone scenario where you can test the functionality?

You ran the script before creating a ui element.
Open the quest.ini file and add this line unde rthe other .ini files:
ui.ini

Yes, I did run the script before creating a UI element. I partially did the instruction from above and README.txt; I omitted the second part of point 1. Sorry.
I started the process over again.
Created a scenario, added a token (Token0) and an event (Event0, with the trigger EventStart) which adds component Token0. And edited Token0 by adding a button to it which fires EventLP_Token event.
After staring the scenario and clicking the token, I can see ~~~~~~~~~~ text.
But right after I click Pick lock, the app crashes.
Scenario: EditorScenario1.zip
Output file: output_log.txt
I think the cause of the crash is "Error: Unable to create missing quest component: UIBLACKBG". What is the UIBLACKBG?

Did you add ui.ini to the quest.inu file?
I suspect that because the ui.ini is not linked that when the event calls the UI elements it crashes.

Ok, everything works now. I didn't add ui.ini to the quest.ini file because I thought that after I created a new scenario and added a token, the un.ini file will automatically be added to the quest.ini. My bad, again.
It'd be good to either:

in the instruction write that a user must make sure that ui.ini file is listed in the quest.ini file otherwise the module won't work,
write the RunMe.bat script so it checks if the ui.ini file is listed inside quest.ini and, if not, add it to the file.

I'll shortly edit the RunMe.bat script and try to do the latter.
And shortly I'll write my opinion/ideas about your work :).
HERE IS THE WORKING SCENARIO WITH THE EXAMPLE OF THE MODULE
EditorScenario1.zip

In the read me file is says to make sure that at least one UI component and one Event have been created before installing the module , this will ensure that the three files are present.
Adding the ui.ini was just a fix for your situation. It would be a problem  if the scenario had no events or dialogue before installation too (aka no events.ini or localisation files linked in quest.ini).

After playing with the module for a bit I only can say GREAT PIECE OF WORK @scrubbless!
Pros:
+it should be quite easy to extend it for even higher difficulties if someone wants,
+it is easy to hardcore a solution if needed.
I can't find any cons, to be honest.
I only have two concerns:

creating multiple hardcoded riddles,
creating multiple riddles with different BGs;

But it should be relatively easy to do as you will need to play a little with making copies of events.
QUESTION: Would it be possible to make the module a bit easier to maintain? What I mean, making many BG is a bit difficult from what I can see as you'll need to make a copy of 4 events do add 1 extra BG.
I think that if it's possible, it'd good if the order of callback is as follows:
[EventLP_Opener] - displays a comment for players,
[EventLP_Token] - if even needed,
[EventLP_Opener_SetVariables] & [EventLP_START] - at the same time (in one event)
That way, a creator would need to create a copy of just 2-3 events which they would eventually need to do if creating multiple riddles with either hardcoded solutions or BGs

I was thinking about using the puzzle multiple times and have yet to think of an elegant solution.

[EventLP_Opener] - displays a comment for players,
[EventLP_Token] - if even needed,
[EventLP_Opener_SetVariables] & [EventLP_START] - at the same time (in one event)

I agree some of these events are redundant, I was originally going to make the event a loop, always going back to the Start event and re-running the sequence. The method has is pro's - as its much more adaptable. Then I realised part way through that I was making it more complicated than it needed to be.
I'll try to stream line it a bit.
I could probably do something a little cleverer with the script and get the player to input a variable when running the script. This could then inject whatever the player types (or even a random combination) into the prefix - aka LP_* might become XY_* or whatever.
@NPBruce mentioned about making the file an SLPmodule, when I get some more understanding of this I may be able to work something a bit more usable.

If you've played "Escape" 4 player, there is a number lock puzzle. That one you use a riddle and a key to decipher the number.
I was wondering if it might be another candidate for a module, this way there could be a lock on a room for example but the player would have to find the code somewhere in the mansion.

If you've played "Escape" 4 player, there is a number lock puzzle. That one you use a riddle and a key to decipher the number.
I was wondering if it might be another candidate for a module, this way there could be a lock on a room for example but the player would have to find the code somewhere in the mansion.

in my scneario THe Cult of Cthulhu i use a lock puzzle to end the scenario like the one you refer here. Not with that awesome image but using tha actual puzzles available.

If it would be more suitable, or something people would like I would be happy to make something up.
I could share the .XCF files too or generate different backgrounds. For example I could make the lock static, then have a set of different backgrounds that could be picked from.
For example, the Lock Picking puzzle above, I just reused the images from Escape and made them a bit more generic.

I just use layers in GIMP to lay on flavour, so would be simple enough to cut the lock into its own layer and then impose new backgrounds behind it.

@scrubbless, I like the idea of yours but there is a small problem. Chests usually have a lock in the centre, not on the side :). It would look strange having a lock like that on a chest.
I think what creators really and only would need is to set:

a comment (which is set in EventLP_Opener),
difficulty and solution of a riddle (which is done in EventLP_Opener_SetVariables),
UI elements of the BG and pins they want to use which are set in ui.ini file.

1 and 2 should be easy to implement in one event.
I'm seeing a problem with 3 as UILP_PinX_Pos_Y UI elements are hardcoded in many events. A user who would like to create a custom graphic (i.e. a chest with a lock in the centre) will need to recreate the whole lot right now.
So, I have a question. Is it possible to use a variable and store in it a name of a UI element written in ui.ini to later use it in the 'add' property? I mean to be used as follows:
[EventLP_SetParams]
operations=comment,=,Opening Event, tailor to situation.,LP_Final_Move_1,=,#rand2 LP_Final_Move_2,=,#rand2 LP_Final_Move_3,=,#rand2 LP_Final_Move_4,=,#rand2 LP_Final_Move_5,=,#rand2 LP_VarsSet,=,1 LP_Difficulty,=,4,
UILP_Pin1_Pos_0,=,CustomPin1Pos0,UILP_Pin1_Pos_1,=,CustomPin1Pos1,UILP_Pin2_Pos_0,=,CustomPin2Pos0,UILP_Pin2_Pos_1,=,CustomPin2Pos1
[EventLP_Pin1_Pos_0]
...
add=UILP_Pin1_Pos_1
remove=UILP_Pin1_Pos_0

Unfortunately I don't think I can answer your questions.
As for locks only the picks need to be intractable, the rest if just for show.
So I could create a background  image UI, that players could just insert their own image into. Then as long at the lock in the image is at a certain point (say, dead center) then the picks would line up.
That means the only interaction to change the default puzzle would be to replace the image in the uilp_background component.

I'm not sure what you mean by the word "intractable". Did you mean interactive?
I think it shouldn't be you who creates a BG image. Nor should you force a creator to put a lock in a certain point.
I think you know what I meant previously but I'll give some examples now. What I'm trying to say is, some creators may like the image

others

or

Each of them has a different position of a lock. It may not be possible to put a lock in a point forced by you by design so it will look good.
The best solution would be creating the module so it allows changing BG and position of the picks. Right now the latter is impossible because EventLP_PinX_Pos_Y events call adding and removing UILP_PinX_Pos_Y UI elements. It isn't that much of a problem if you have only one riddle of the kind as you just need to change BG and picks' positioning in ui.ini. The real issue here is creating 1> riddles of the kind during a game as the only solution to the problem at the moment is copping all events and modifying most of them for new elements.
That's why I asked if the above idea of mine is possible.
@scrubbless, if it isn't an easy task to do, what you already have created is great! I think a necessity to put a lock in the bg at a certain point is something that people can live with :). I just wanted to point out what would be the best solution.

I'm not sure what you mean by the word "intractable". Did you mean interactive?

Interactive,  yes. Not sure where I got that other word!
I worry that if I make the module too customisable it will case confusion.
I think splitting out the background from the lock would be a good idea. Then give alternate background options, since the player could just rename them to update the aesthetic without manipulating the code.
If a more advanced user wants to make their own, it would be as simple as replacing the background image and then each of the lp_pin_* UI elements with their own images and moving them to the correct coordinates.
The rest of the code would remain intact and work.

For some reason, I haven't thought about using CTRL+H option :). You're right, replacing UILP_PinX_Pos_Y with UICustomLP_PinX_Pos_Y and other texts for more advanced users shouldn't be a problem.
So the only thing that might need to be done is either:
A. flattening a code so if a user wants to create multiple riddles they don't have to copy so many functions and looking for "what more should I do"
or
B. writing in the instruction that you want to create some tips which would explain "how to do sth", i.e.

How to create multiple lockpicks riddles? (with information which parts of the code should be copied/changed)
How to create different backgrounds for each riddle and where should you change the positioning of the picks?
How to set riddle's solution so it isn't random?
What should I do to use different picks in multiple riddles?
etc.

The second option should be less time-consuming than modifying your code and will serve the purpose.

I'll close this off for now. I'll add the code into the guide should anyone want it.
I'll look into a neater module, apparently I should be able to contain all of the module in one self contained file to be added to a scenario. So I'll work on that.


AttributeError in Wikipedia Sentences Example

While testing the wikipedia sentences example, I am getting Attribute Error for score in the indexer.py file at line 29 which is d.score.value = 1 - _dist .
The Traceback:-

Jina version is 2.0.5
Please help

The example code is not updated to the latest document api, the right attribute now is scores, which is a key value pair.
e.g. you need to do d.scores['cosine'] = 1 - _dist as documented in https://github.com/jina-ai/jina/blob/master/.github/2.0/cookbooks/Document.md#add-relevancy-to-documents

@Kelton8Z Thanks. Closing the issue


Allow git dependency with shorthand ssh submodules to work.

If a submodule is defined with a shorthand ssh url (like git@github.com/user/repo.git), then cargo was choking on it trying to convert it to a URL. The fix is to just pass around strings.
An alternate solution would be to try to detect shorthand git urls and automatically add ssh:// to the path. I'm concerned about matching git's heuristics for this, though. I'm willing to try if you think this would be better, though.
I can't think of a good way to write a test for this, since we don't have any SSH test infrastructure. I verified running locally against github.
Closes #7202

r? @alexcrichton
(rust_highfive has picked a reviewer for you, use r? to override)

@bors: r+
Yeah this seems fine to verify manually, no worries on the test!

:pushpin: Commit 04008795f9a193e7995eeef963d5afffa5a38c76 has been approved by alexcrichton

:hourglass: Testing commit 04008795f9a193e7995eeef963d5afffa5a38c76 with merge 130e11cb0be34117c22bfa9f8b29627054eb0da7...

:sunny: Test successful - checks-azure
Approved by: alexcrichton
Pushing 130e11cb0be34117c22bfa9f8b29627054eb0da7 to master...

Hey guys, I've just spent a decent amount of time debugging both 0.46.1 and 0.30 versions of cargo in this PR to cargo-generate: https://github.com/ashleygwilliams/cargo-generate/pull/237 just to understand that cargo no longer tolerates git submodules with file:// scheme which have 2 slashes after file: but not 3.
This is a small breaking change (since double slashes with no host are non-standard), but I just want to notify you about this fact.
Is there someplace where you put changelogs for cargo as a library on crates.io? Because I haven't found it and had to go thru the hard part finding out this breaking change.
cc @ehuss , @alexcrichton
And sorry for bringing up an old PR...

@Veetaha this is almost a year old so if it's causing issues it's probably best to open a fresh issue with fresh details to track anything necessary


Beaker Notebook setup files required for Red Hat Linux ver 6.x (Hadoop Servers)

Hi,
Need setup files to install Beaker Notebook in Red Hat Linux ver 6.x (for Hadoop Servers)...
Please suggest some link/url
Thanks
Regards,
Jai Murugesh

Hi, sorry we don't support Red Hat Linux, but it's probably pretty easy to adapt https://github.com/twosigma/beaker-notebook/blob/master/launcher/ubuntu/install-runtime-core-dependencies.sh
for a minimal setup, and the other dependencies file in that directory for a complete runtime.


⚠ Bofrost.de has degraded performance

In f1610b4, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1729 ms

Resolved: Bofrost.de performance has improved in a4e6a70 after 3 hours, 12 minutes.


update go-bip39 lib, integrate it and improve code around it

don't squash

@robvanmieghem unit tests pass now. Was using assert by accident without vendoring it. And it seemed silly to do so for just one test, so I removed the need for it, by using plain old std Testing.

Yeah I agree with many of those things @robvanmieghem. Perhaps it's stuff that can better wait until we have #155 resolved or wontfix-closed though, as that's another big impact feature in this area. After that we can and should indeed spend some time cleaning up. Supporting unseeded, I have no real opinion about that yet, as I haven't read on that subject, but it sounds a feature that might come in handy indeed.
Could you perhaps make one or multiple issues to track and backlog the further improvements you have in mind (optionally linking those with #155). As I think we can make the wallet code quite comprehensive, clean and proper with a bit of more work in regards with such issues. But just mentioning it in a comment, is going to be forgotten eventually.

https://github.com/rivine/rivine/issues/158
https://github.com/rivine/rivine/issues/159


Update Composer dependencies (2022-03-29-00-03)

Visual regression test passed!
View the visual regression test report


[FEATURE] Please update the top navigation

Is your feature request related to a problem?
Menu update needed.
What solution would you like?
I have updated the top navigation menu on opensearch.org, and removed 'Partners' from the footer since it's now in the top nav - please update the doc site to match. It should now be:
Download
Documentation
Blog
Forum
Events
Partners
(see https://github.com/opensearch-project/project-website/pull/844 for details)
What alternatives have you considered?
N/A
Do you have any additional context?
tagging:
@AMoo-Miki @alicejw-aws @Naarcha-AWS for visibility

Hi @AMoo-Miki, is this something you need to do or can you point me to the right file? Thanks.

@AMoo-Miki @hdhalter -
Miki - do you have time to check into this?

@krisfreedain - Hi Kris, the nav pane works, but before we mreget the code, can you please check the code snippet? We had to hard code the forum string, so wondering if that is ok as is, or if there is a better way to represent that? Thanks!

Header is fixed and working as expected: https://opensearch.org/docs/latest
I need to update the footer file before closing.


YouTube Cookies is not working anymore

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting that yt-dlp is broken on a supported site
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
canada
Provide a description that is worded well enough to be understood
the YouTube download with cookies is not working anymore
ERROR: [youtube] Yzt7KnWfwgs: Video unavailable. This content isn’t available.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
root@ip-10-0-29-86:/# yt-dlp --get-title --skip-download --get-format --get-duration -f "bestvideo[height<=?720][ext=mp4][vcodec!=av01]+bestaudio/best"      https://www.youtube.com/watch?v=Yzt7KnWfwgs --cookies ./youtube_cookies_copy.txt -vU
[debug] Command-line config: ['--get-title', '--skip-download', '--get-format', '--get-duration', '-f', 'bestvideo[height<=?720][ext=mp4][vcodec!=av01]+bestaudio/best', 'https://www.youtube.com/watch?v=Yzt7KnWfwgs', '--cookies', './youtube_cookies_copy.txt', '-vU']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [4bd265539]
[debug] Lazy loading extractors is disabled
[debug] Python 3.10.12 (CPython x86_64 64bit) - Linux-5.10.228-219.884.amzn2.x86_64-x86_64-with-glibc2.28 (OpenSSL 1.1.1n  15 Mar 2022, glibc 2.28)
[debug] exe versions: ffmpeg 4.1.11-0, ffprobe 4.1.11-0
[debug] Optional libraries: certifi-2024.08.30, mutagen-1.47.0, requests-2.32.3, sqlite3-3.27.2, urllib3-2.2.3
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests
[debug] Loaded 1837 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[youtube] Extracting URL: https://www.youtube.com/watch?v=Yzt7KnWfwgs
[youtube] Yzt7KnWfwgs: Downloading webpage
[debug] [youtube] Extracted SAPISID cookie
[youtube] Yzt7KnWfwgs: Downloading web creator player API JSON
[youtube] Yzt7KnWfwgs: Downloading mweb player API JSON
ERROR: [youtube] Yzt7KnWfwgs: Video unavailable. This content isn’t available.
  File "/src/yt-dlp/yt_dlp/extractor/common.py", line 742, in extract
    ie_result = self._real_extract(url)
  File "/src/yt-dlp/yt_dlp/extractor/youtube.py", line 4492, in _real_extract
    self.raise_no_formats(reason, expected=True)
  File "/src/yt-dlp/yt_dlp/extractor/common.py", line 1276, in raise_no_formats
    raise ExtractorError(msg, expected=expected, video_id=video_id)

root@ip-10-0-29-86:/# yt-dlp --get-title --skip-download --get-format --get-duration -f bestvideo[height<=?720][ext=mp4][vcodec!=av01]+bestaudio/best https://www.youtube.com/watch?v=Yzt7KnWfwgs --cookies ./youtube_cookies_copy.txt
bash: =?720][ext=mp4][vcodec!=av01]+bestaudio/best: No such file or directory
root@ip-10-0-29-86:/# yt-dlp --get-title --skip-download --get-format --get-duration -f "bestvideo[height<=?720][ext=mp4][vcodec!=av01]+bestaudio/best" https://www.youtube.com/watch?v=Yzt7
KnWfwgs --cookies ./youtube_cookies_copy.txt
ERROR: [youtube] Yzt7KnWfwgs: Video unavailable. This content isn’t available.

Duplicate of #10085
Your account has been temporarily(?) restricted from watching videos

I changed the token
but either the token is getting expired or the account getting ban every day


[metadata manager m8s] [Result Paginator] impl for result pagination

What type of PR is this?

/kind new feature

What this PR does / why we need it:
This PR implements result pagination , sorted by backend name in ascending order.
Test Report Added?:

/kind TESTED

Test Report:

offset =0, limit =0

offset = valid (present in result) , limit =0 (return 0 doc)

offset = invalid (greater than number of result items  in the document) , limit = valid

offset = valid, limit = valid

offset=empty, limit=empty

sort=asc

sort=desc

sort=desc1(invalid)

LGTM


Includes in dl files should not use relative paths

Ideally, we want to follow the convention of specifying the full path starting from WORKSPACE root. e.g., #include "src/analysis/souffle/taint.dl" instead of #include "../../taint.dl".
Supporting full paths requires adding the bazel workspace root as an additional include path in souffle_cc_libraryrule.

Fixed in PR #297


Show buildstep status in the Console View

Problem
When one clicks from the graph of builds into a single one that failed and wants to find out what actually went wrong, one has to look through multiple steps and guess depending on the limited output whether this was the step that failed or not.
Solution
Put a 👍  or 👎 on the right side of each step depending on whether this step's return code was 0 or something else.

We are not executing the steps, we only start the docker container. So the only return code we get is the one of the entire container. So we cannot look at individual steps and mark them easily.

Hm. That makes it harder, true. But you also print the steps and their outputs on the fly, right? So there must be some kind of communication happening between what's running inside the container and the UI.

there's no real communication. We only parse the output and based on "Step " or "##" we create a section in the ui. So what we could do is to scane the output for "error", but this may have many false positives.

Wait, you're serious? I thought you were joking. This is a very standard element of a CI-tool UI. If the most obvious way doesn't work, then find not-so-obvious one. That's called software development. "We are not tracking that until now" is not a good response to "Please track that".


[1.15.2] Crash with forge 31.2.31 at startup in multiplayer

Describe the bug (Required)
When trying to run the latest (as of now) version of forge for Minecraft 1.15.2 (31.2.31) with this mod in multiplayer, the client fails to connect with the error:
Internal Exception:io.netty.handler.codec.DecoderException: The received string length is longer than maximum allowed (137 > 128).
To Reproduce (Required unless not known)
Steps to reproduce the behavior:

Set up a brand new forge 31.2.31 client and server for minecraft 1.15.2.
Add the VanillaTweaks mod and run
Try to connect
Client fails to connect to server with above error.

Crash report (via. Hastebin)
No crash report as the client is technically still running but unable to connect.
Expected behavior (Required)
Client and server should successfully pass the handshake and connect.
Versions:(check log if you don't know)

Forge Version: 31.2.31
MC Version: 1.15.2
Mod Version: <IP_ADDRESS>.5.28
JEI Version (if present) : N/A
Baubles Version (if present) : N/A
Curios Version (if present) : N/A

Additional context
Originally found this when updating forge and various mods in a custom modpack. Isolated to this mod. With other mods enabled sometimes the maximum allowed message length changes but same error occurs.

Can you provide log?

It looks like the fix is using the wrong path for createDirectories, it needs the parent not the toml file.

Thanks will fix it soon


Basic integration in Android Studio

@balysv @ming13 : When i follow the instructions given in read me (by compiling all 4) i facing 9 errors in my sample project.
Can you please make the readme (using the library) more easier and also a demonstration video if possible.
Do we need to include all these in my apps build.gradle
// stock actionBar
compile 'com.balysv.materialmenu:material-menu:1.x.x'
// Toolbar and ActionBarCompat-v21 (includes support-v7:21.0.x)
compile 'com.balysv.materialmenu:material-menu-toolbar:1.x.x'
// actionBarCompat-v20 (up to support-v7:20.0.0 - does not support Toolbar)
compile 'com.balysv.materialmenu:material-menu-abc:1.x.x'
// actionBarSherlock
compile 'com.balysv.materialmenu:material-menu-abs:1.x.x'

Hi!
I'm not the developer of this, I'm just another user. You only need to import one of these, depending on which action bar type you use. Importing all of them is probably what triggers all those errors.

Yes, it's exactly as @SimenCodes mentioned. You only pick a single import line, depending on what ActionBar version or Toolbar you use


[duktape] Optimize build script and provide unofficial targets

[x] Changes comply with the maintainer guide
[x] SHA512s are updated for each updated download
[x] The "supports" clause reflects platforms that may be fixed by this new version
[x] Any fixed CI baseline entries are removed from that file.
[x] Any patches that are no longer applied are deleted from the port's directory.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[x] Only one version is added to each modified port's versions file.

The usage passed on x64-osx and x64-windows with bellow demo code
cmake_minimum_required(VERSION 3.15)

project(vcpkg_demo_duktape)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(unofficial-duktape CONFIG REQUIRED)
add_executable(vcpkg_demo_duktape main.cpp)
target_link_libraries(vcpkg_demo_duktape PRIVATE unofficial::duktape::duktape)

#include <cstdio>
#include "duktape.h"

const char *script = R"(
// polyfill Array.from
if (Array.from === undefined) {
    Array.from = function (v) {
        return Array.prototype.slice.call(v);
    };
}

// polyfill console.log
if (this.console === undefined) {
    this.console = {};
}
if (this.console.log === undefined) {
    this.console.log = function () {
        print(Array.from(arguments).map(function (v) {
            if (typeof v === 'object') {
                return JSON.stringify(v);
            }
            return String(v);
        }).join(' '));
    };
}

var a = 1;
var b = 2;
var c = a + b;
console.log("a + b =", c);
console.log({name: 'xiaozhuai'});
console.log([1, 2, 3]);
)";

static duk_ret_t native_print(duk_context *ctx) {
    printf("%s\n", duk_to_string(ctx, 0));
    return 0;
}

int main() {
    duk_context *ctx = duk_create_heap_default();
    duk_push_c_function(ctx, native_print, 1);
    duk_put_global_string(ctx, "print");
    duk_eval_string(ctx, script);
    duk_destroy_heap(ctx);
    return 0;
}

@dg0yt Done

Did you consider keeping config under the old name, forwarding to the new config but with a deprecation warning based on new usage? This gives users time for a smooth transition.
Cf. e.g. ports/minizip/minizipConfig.cmake.in.

Did you consider keeping config under the old name

No, the old usage is not official and shouldn't be there.

the old usage is not official and shouldn't be there.

I support its removal. The point is that vcpkg offered (and even suggested) the config over an extended period of time. So usage is likely to exist, and that's why a grace period can be appropriate. In particular when users want to test both new versions and old versions before finally switching in production.
(A hard removal was just merged for port libusb, and the first user already opened an issue.)

(A hard removal was just merged for port libusb, and the first user already opened an issue.)

Ah... I happened to run into this issue too.
Ok, I will update this pr.

keeping config under the old name, forwarding to the new config but with a deprecation warning based on new usage

@dg0yt Done

@Adela0814 Please review.

Usage test pass on x64-windows.

@dg0yt
file(READ "${CMAKE_CURRENT_LIST_DIR}/usage" DUKTAPE_USAGE)
message(WARNING "'find_package(duktape CONFIG)' is deprecated. Please following new usage.\n${DUKTAPE_USAGE}")
unset(DUKTAPE_USAGE)

include(CMakeFindDependencyMacro)
find_dependency(unofficial-duktape ${${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION} CONFIG)
if(TARGET duktape::duktape)
    add_library(duktape::duktape INTERFACE IMPORTED)
    set_target_properties(duktape::duktape PROPERTIES INTERFACE_LINK_LIBRARIES unofficial::duktape::duktape)
    set(DUKTAPE_FOUND TRUE)
    get_target_property(DUKTAPE_INCLUDE_DIRS unofficial::duktape::duktape INTERFACE_INCLUDE_DIRECTORIES)
    set(DUKTAPE_LIBRARIES duktape::duktape)
endif()

Does this look good to you.

@vicroms Please review this pr.

I see @vicroms already added requires vcpkg team review. I want to discuss:

When we create unofficial targets like this for ports that use pkgconfig internally like this
Whether we should deprecate ( https://github.com/microsoft/vcpkg/pull/35813#discussion_r1441173450 )

Results of discussion with @ras0219-msft @vicroms @dan-shaw and myself. Most of these responses are directly from me though which is why I say "I" rather than "we".

When we create unofficial targets like this for ports that use pkgconfig internally like this

I don't think we should create a .pc unless upstream canonically is accessed that way unless we have a good understanding of how/why it will be used.
@ras0219-msft points out that the .tar.xz does have a .pc.in which suggests that maybe we should provide that.

Whether we should deprecate ( https://github.com/microsoft/vcpkg/pull/35813#discussion_r1441173450 )

The instructions at https://github.com/svaarala/duktape?tab=readme-ov-file#getting-started-end-user say 'get through vcpkg' which to me indicates that upstream has effectively blessed the targets we make, so I don't think we should deprecate them.

@ras0219-msft wants to make a stronger statement that he opposes deprecating them even if upstream had not blessed it. We wouldn't add the non-unofficial ones today but that doesn't mean that we want to remove ones that are already shipping.
@ras0219-msft "The maintainer guide should be understood as new targets should have this name, not convert old targets to have this name. We do not have concrete evidence for these names causing problems for users. We do believe that the unofficial name is better, but that is to avoid hypothetical pain in the event upstream wants the pretty name. Creating known immediate pain in order to avoid hypothetical pain is a disservice to the users of vcpkg."
Result:

We shouldn't change the name to unofficial.
We should add the .pc because upstream provides it.

Result:

We shouldn't change the name to unofficial.
We should add the .pc because upstream provides it.

@BillyONeal So I just change the name back to duktape? The pc file is already provided.

@BillyONeal Please review this again.

@BillyONeal knock knock～

@Adela0814

@Adela0814 @BillyONeal
Please review this pr. It has been days.

@BillyONeal So I just change the name back to duktape? The pc file is already provided.

Based on

Result:

We shouldn't change the name to unofficial.
We should add the .pc because upstream provides it.

I think we want to keep adding the .pc and revert other changes in this PR.

Hello @svaarala, please take a look at this pr. I would like to hear the upstream voice.
Before this pr. The usage in cmake is
find_package(duktape CONFIG REQUIRED)
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${DUKTAPE_INCLUDE_DIRS})
target_link_libraries(main ${DUKTAPE_LIBRARY})

After this pr. The usage become
find_package(duktape CONFIG REQUIRED)
target_link_libraries(main PRIVATE duktape::duktape)

And we can possibly add duktape::module-node duktape::module-duktape target also.
This is more in line with modern cmake.
In order not to affect existing project, it is compatible with old usage.

@xiaozhuai, I just want to clarify. The only changes to this port should effectively be the inclusion of the .pc file provided by upstream. Please revert the changes to the CMakeLists.txt as well.


Make package compatible with Postgres

Description & motivation
See #69.
Checklist

[x] I have verified that these changes work locally
[x] I have updated the README.md (if applicable)
[ ] I have added tests & descriptions to my models (and macros if applicable)

Request for help
I don't know how to create the integration connection to Postgres. I did the cargo cult thing - i.e., I created another sample profile in integration_tests/ci/sample.profile.yml and added another section to integration_tests/Makefile (+ the BQ section, since that presumably should have been there), but presumably you have to add the environment variables with the credentials, right?

(Pretty sure tests are failing because I added a non-existent target to the Makefile, but for obvious reasons I can't see details)

Latest commit finalizes the Postgres workaround, so the PR should now be ready for review.


Editing recipe navigation

Right now there is no link between viewing a recipe and editing it. Ideally we'd include a link on each recipe page but only when the owner views them. Including a check to make sure the logged in user matches the recipe owner when going directly to the URL.
This can be worked on once https://github.com/RyanNoelk/OpenEats/pull/45 is merged.

Fix with Above PR.


Add oldest supported Julia released to CI

Currently, JET.jl's CI does not test against the lowest supported version of Julia. This is problematic, because JET reaches deep into Julia internals, and so new Julia version are expected to break JET often.
For example, for users of Julia v 1.7, Pkg currently installs a version of Julia (0.6.2) which does not support Julia 1.7, meaning that JET breaks when they try to use it.
To prevent future releases of JET which specify compatibility with old versions of Julia it's not really compatible with, I propose adding the oldest compatible version of Julia to CI. If JET then no longer supports this version, it will be caught in CI, and the supported version of Julia in Project.toml can be updated.
Prevents issues like #386, #263

Codecov Report
Base: 89.90% // Head: 88.08% // Decreases project coverage by -1.81% :warning:

Coverage data is based on head (f3262a1) compared to base (2e37b88).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #417      +/-   ##
==========================================
- Coverage   89.90%   88.08%   -1.82%
==========================================
  Files          10       10
  Lines        2636     2628       -8
==========================================
- Hits         2370     2315      -55
- Misses        266      313      +47

Impacted Files
Coverage Δ

src/abstractinterpret/typeinfer.jl
89.31% <0.00%> (-5.26%)
:arrow_down:

src/analyzers/jetanalyzer.jl
89.84% <0.00%> (-3.71%)
:arrow_down:

src/ui/print.jl
91.15% <0.00%> (-0.69%)
:arrow_down:

src/JET.jl
73.74% <0.00%> (-0.61%)
:arrow_down:

src/abstractinterpret/inferenceerrorreport.jl
89.32% <0.00%> (-0.40%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

It looks like JET current isn't compatible with 1.8.0 but the other versions of the 1.8 series. Do you want me to recover the compatibility? I guess we can with some hacks.

FWIW, JET's compatibility with v1.7 should be fixed by this PR: https://github.com/JuliaRegistries/General/pull/72421

I think you're best equipped to know if it's worth it to restore compatibility with older versions of Julia. Of course more compatible versions is nice, but if it's troublesome, I think it's fine to just say that this version of JET supports 1.8.1-1.8.2 only.
Actually, what do we do about future versions of Julia? For example, we can't know if Julia is compatible with a future Julia 1.8.4 yet. I see two options:

Specify ~1.8.1, meaning we claim to support 1.8.4 (and 1.8.5 etc) even when it isn't released yet. The problem with this is that compatibility might still break, for a specific version of JET, and some users might have specified the exact version of JET they need
Specify "1.8.1 - 1.8.3". Then JET will not be able to be installed by users on master, and whenever a new version of Julia is released, a new version of JET must be released with a new compat range.

The latter is a little more troublesome, but it's more correct. What do you think?

I honestly don't have much motivation for keeping wider compatibility (as I almost always use JET with the very latest master), so I'd like to keep 1.8 compat in general but not very interested in keeping the compat with 1.8.0 (as in general users who daily update packages are supposed to use the latest stable version).

Actually, what do we do about future versions of Julia? For example, we can't know if Julia is compatible with a future Julia 1.8.4 yet. I see two options:

Do those compat annotations prevent uses with the nightly (i.e. 1.9.0-DEV or 1.10-0-DEV)?
If so, I rather want to keep the current state (i.e. allowing whatever newer Julia versions to work with JET). I guess it's relatively easy for me to keep the compatibility with new Julia versions (as I'm using JET with nightly always), so this PR (having oldest supported Julia release to CI) might be enough since from now on we are likely to drop the compat with older Julia version as soon as a problem surfaces up.

Okay let's do that. I'll add a mention in the README as well, but just ask on Slack to hear if anyone has any elegant solution to this.

@aviatesk  Another possibility is for you to simply dev JET in your main environment. Then the compatibility constrains are ignored for you, you can keep working with JET using the master branch of Julia, and JET can have a conservative compat bounds (currently 1.8.1-1.8.3).

Another possibility is for you to simply dev JET in your main environment.

Aha, this is what I'm doing always. So the comservative compat specification should be nice.


Quickly adding components leads to error

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Steps to reproduce 🕹
Steps:

Start dragging any component from drawer onto canvas
Upon 3rd or 4th component (maybe it will need more?) you should get node not found error. Seems that it doesn't matter what kind of component is being added

https://user-images.githubusercontent.com/437214/198314954-09f6fdb6-aed1-4484-82ec-e9c1bf03b440.mov
Current behavior 😯
Prod build swallows error and we can continue to work, seems that it's only visible in the console.
Locally we get an error dialog
Expected behavior 🤔
No error happening when we add components to the canvas
Context 🔦
No response
Your environment 🌎
Local / latest version

Another app is throwing similar error message: "Node "undefined" not found". Not sure if they are related, but I was unable to make it work.

@prakhargupta1 That is different. Can you open a ticket?


cuda works

@lachs0r, from https://mpv.srsfckn.biz/changes/2016-12-25/ :

but if you’re interested, try to use it and report back so I can update this note.

Just tried the latest stable build, and I can confirm that CUDA hwdec works fine 👍

Thanks.


After you press a key towards a direction, stay that direction

Playtesting advice, which I feel like is very correct

Fixed via 8edfc6157a238a0bfd5ee7de5bd22f00026eb748


gvim cursorline would override diff background color

'set cursorline' would override diff background color.
The texts is hard to see.

What color scheme do you use with the example?

This is intentional.  If we do it the other way around and there are large diffs, the cursor can't be seen.
If you prefer to see the diff highlighting, switch off 'cursorline' or move the cursor somewhere else.

@nuko8 It just pure text, highligh didn't apply yet. My colorscheme is candycode anyway.
@brammool I have already swtched off cursorline.  Thx.
But it seems gvim 74 don't have this issue.

@xyzith

But it seems gvim 74 don't have this issue.

The way of highlighting the cursor line in diff-mode has been changed since e0f148270 (Patch 7.4.391).


Deploy Onsite Notifications to Production

In preparation for go-live we need to push the latest onsite notification code to Production. The flag for onsite notifications should NOT be enabled yet on the debt notification. That configuration will be handled when VA.gov tells me they are rolling out the feature flag.

[ ] Schedule/communicate with the team in a va-notifications-va-gov-program thread

[ ] We will need to understand what repos will be pushed and what other work will be released as part of the deployment

[ ] Deploy feature to production
[ ] Regression testing (where possible)

@jessecanderson  is taking lead on this. The deploy is happening tomorrow at 8pm. @EvanParish will be assisting.
Deployment will be Infra -> API -> Lambda
There's one issue holding back the deploy but it should be put in PR status today.

@jessecanderson @EvanParish Here's the ticket for the onsite deployment you both are on tonight

SSUi smoke test documented at https://dsvavsp.testrail.io/index.php?/runs/view/3474&group_by=cases:section_id&group_order=asc


Add item recipes to config

com.chebgonaz.FriendlySkeletonWand.txt
Item.cs:

Added new InternalName class as well as a CraftingTable enum used to map a config string value to the actual id value in game.  This same format can potentially be used for other various settings later on.

    public class InternalName : Attribute
    {
        public readonly string internalName;
        public InternalName(string internalName) => this.internalName = internalName;
    }

    public enum CraftingTable
    {
        None,
        [InternalName("piece_workbench")] Workbench,
        [InternalName("piece_cauldron")] Cauldron,
        [InternalName("forge")] Forge,
        [InternalName("piece_artisanstation")] ArtisanTable,
        [InternalName("piece_stonecutter")] StoneCutter
    }

Referenced Azumatt's Mjolnir ItemManager for help.

SkeltonWand.cs:

Created a new function addMaterial(string material) for adding materials as well as splitting the config string up.

               // Add a material to the recipe
                void addMaterial(string material)
                {
                    string[] materialSplit = material.Split(':');
                    string materialName = materialSplit[0];
                    int materialAmount = int.Parse(materialSplit[1]);
                    config.AddRequirement(new RequirementConfig(materialName, materialAmount, materialAmount*2));
                }

                config.CraftingStation = ((InternalName)typeof(CraftingTable).GetMember(craftingStationRequired.Value.ToString())[0].GetCustomAttributes(typeof(InternalName)).First()).internalName;

                // Material config format ex: Wood:5,Stone:1,Resin:1
                if (craftingCost.Value.Contains(','))
                {
                    string[] materialList = craftingCost.Value.Split(',');
                    foreach (string material in materialList)
                    {
                        addMaterial(material);
                    }
                } else
                {
                    addMaterial(craftingCost.Value);
                }

Added craftingStationRequired, craftingStationLevel, and craftingCost to config as server values.
I added a *2 multiplier to upgrade costs...maybe too high?  But I mean it's just wood and stone...
Crafting cost is configured via a comma seperated list of item:amount pairs i.e. wood:5,stone:1,resin:1.

My config example:
## Crafting station where Skeleton Wand is available
# Setting type: CraftingTable
# Default value: Workbench
# Acceptable values: None, Workbench, Cauldron, Forge, ArtisanTable, StoneCutter
Crafting Station = Forge

## Crafting station level required to craft Skeleton Wand
# Setting type: Int32
# Default value: 1
Crafting Station Level = 1

## Materials needed to craft Skeleton Wand
# Setting type: String
# Default value: Wood:5
Crafting Costs = Wood:5,Stone:1

Other

Handled an error in publish.ps1

Testing
Use the attached config.  Then log in and check to make sure that you can no longer craft the wand at the workbench.  It should be craftable at the Forge with my config (be default it is still the workbench).  Then ensure the crafting cost is 5 wood and 1 stone (default is 5 wood).  Then you can remove those values and test it with default values.

Totally forgot there is also other stuff to craft other than the wand lol...so I will update all the other recipes to use this method before we merge and push those changes.

Just need to expose quality/level reqs to other minion types and this should be good to go.


Is Source field intended for generic logging?

Hi
I don't see a particular usage on Kledex code per se, so I'm assuming I could use it for putting any information I'd like.
They are located in IDomainCommand and IDomainEvent.
I'm planning to use that for logging user IP, browser version, etc.
Is that so?

Hi, it was meant to be used for the source of the command and therefore of the events (e.g. api 1, api 2, site 1, site 2, etc...)

Closing as it has not been active for a while.


ci: add configuration for Read the Docs

The docs on RTD are currently failing -- not sure why. Hope this config file will fix it, it is recommended by RTD
https://docs.readthedocs.io/en/stable/config-file/v2.html

Codecov Report

Merging #3 into dev will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev       #3   +/-   ##
=======================================
  Coverage   59.56%   59.56%
=======================================
  Files          56       56
  Lines        7970     7970
  Branches     1568     1568
=======================================
  Hits         4747     4747
  Misses       2797     2797
  Partials      426      426

Flag
Coverage Δ

#unittests
59.56% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9fede7c...bee4e40. Read the comment docs.


Document do-not-evict vs do-not-disrupt Pod annotations

Description
It is unclear if the karpenter.sh/do-not-evict: "true" annotation is going to continue to be supported, has been deprecated but still works, or no longer works.
To prevent a pod from being interrupted, the docs for v0.33 say to add the annotation
karpenter.sh/do-not-disrupt: "true"

The docs for v0.31 say to add the annotation
karpenter.sh/do-not-evict: "true"

However, nothing in the upgrade guide says anything about changing the annotations or how the 2 annotations interact. So do I need to change all my annotations or not? If I need to change them, how urgent is it?

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

The annotation is mentioned in the v1beta1 upgrade guide. It's important that you use the relevant labels when using v0.33 to prevent any unexpected or unintended consequences. I highly recommend you update any annotation on the pods if you are using karpenter v0.33. The do-not-evict will not be respected in v0.33.


Add device and dtype parameters to StableEmbedding

This allows using StableEmbedding anywhere where torch.nn.Embeding could be used

Thank you! Also, the layer norm cast to default precision is a great addition!


Make skcms-obj an OBJECT library

When bundling skcms into libjxl.a we want to include the object files
with $<TARGET_OBJECTS:lib> which is only supported for OBJECT
libraries in older versions of cmake. This patch makes a new skcms-obj
library similar to what we do with jxl_dec-obj and jxl_enc-obj.
This fixes the build for debian:buster.
In MSVC, the flag to include a header is /FI, this patch splits that
case which fixes the MSVC windows build.

added the fix for MSVC build. I'm testing that now

windows build passed.