So I have a Python package following the project structure outlined by the Python Packaging User Guide (Without the tests/ directory). Let’s call it Package A.
This package can be used alongside another package, Package B, however no proper compatibility exists in Package A to support Package B’s rendering system.
I want to make a compatibility package, Package AB, to make Package B’s systems work with Package A. It shares the same dependencies as Package A, however it has Package B as a dependency.
How should I setup my project structure for Package AB? Should it be its own project directory? Should it be nested inside Package A’s src directory?
Additionally, I have Sphinx /w Hatch setup with Package A for documentation. Depending on the setup chosen above, how should I setup documentation for Package AB?
Some things to note:
- Package AB would use classes and methods from Package A and Package B
- Package B’s license (MIT) is compatible with Package A (GPLv3). Package AB would be licensed under the same as Package A
If more details are required, let me know.


Basically, it’s a TUI library for getting user input. It has different types of prompts, like text and multiple choice.
For use with Package A: Optional. However with Package AB: Mandatory, as this compatibility package would essentially replace certain functions in Package B.
I don’t want Package A having Package B as a dependency when it’s not being used. I only want Package B as a dependency when using Package A with Package B (AB).