title: How does pip wheel resolves transitive dependencies?
body: <p>When I run <code>pip wheel sentry-sdk</code> it downloads the following wheel files:</p>
  <ol>
  <li><code>certifi-2020.6.20-py2.py3-none-any.whl</code></li>
  <li><code>sentry_sdk-0.18.0-py2.py3-none-any.whl</code></li>
  <li><code>urllib3-1.25.10-py2.py3-none-any.whl</code></li>
  </ol>
  <p>Where <code>sentry_sdk-0.18.0-py2.py3-none-any.whl</code> is the lib I actually want to use and the other ones are transitive dependencies required by this lib to work. I understand that the file is coming from <a href="https://pypi.org/project/sentry-sdk/0.18.0/" rel="nofollow noreferrer">PyPI</a> however what I do not understand is how <code>pip wheel</code> is choosing the version of the aforementioned transitive dependencies.</p>
  <h2>More Context</h2>
  <p>My underlying problem is that the resolved version of the <code>urllib3</code> clashes with another one already added to the pex file of the project I'm working on (I'm using Bazel to generate the pex) I'm considering  downgrading the version of <code>urllib3</code> to match my project's existing one. Looking at the <a href="https://github.com/getsentry/sentry-python/blob/master/setup.py" rel="nofollow noreferrer"><code>setup.py</code> from the <code>sentry-sdk</code> in GitHub</a> it says it only requires it to be greater than <code>1.10.0</code> (<code>&quot;urllib3&gt;=1.10.0&quot;</code>) so I think the downgrade would work but I wanted to be sure to avoid production crashes.</p>
  <p>Thanks</p>