title: Python dependencies: Merging two packages into one
body: <p>I have two python packages <code>A</code> and <code>B</code> that I would like to merge together into <code>A</code>, i.e. all functionality of <code>B</code> is now reachable in <code>A.B</code>. Previously, <code>A-1.0</code> depended on <code>B-1.0</code>. Now I want to avoid, that users of <code>A-2.0</code> still have <code>B-1.0</code> installed and I don't know how to handle this properly.</p>
  
  <p>Different solutions/ideas I came up with:</p>
  
  <ul>
  <li><p>Include some code in <code>A-2.0</code> that tries to import <code>B</code>, if an ImportError is raised, catch the exception and go on, otherwise throw a RuntimeError that <code>B</code> is installed in parallel</p></li>
  <li><p>Somehow mark <code>B</code> as a blocker for <code>A-2.0</code> (<strong>is this possible</strong>?)</p></li>
  <li><p>Create a "fake" successor for <code>B</code>, so people who update their virtual environments or install the "latest" version of <code>B</code> get an empty package that throws an exception upon importing.</p></li>
  </ul>
  
  <p>I welcome your opinion, and experiences</p>