私の会社のためにいくつかの中小規模のライブラリを作成する必要があるとしましょう。
Pythonic の方法で、Java アプローチを使用し、次の構造を実現するなど、共通の高レベル パッケージ (エヘム、モジュール) をすべてのプレフィックスとして使用することは理にかなっていますか?
mycompany.mylibrary1.moduleA
mycompany.mylibrary1.moduleB.moduleD
mycompany.mylibrary2.moduleC
または単に行く方が良いですか:
mylibrary1.moduleA
mylibrary1.moduleB.moduleD
mylibrary2.moduleC
ほとんどの場合、2番目のアプローチが使用されていることがわかりますが、それが正しい方法であるという確認(またはそうでない)を探していました。
PEP 008では、この点で何も見つかりませんでした。
Python のライブラリの命名規則はややこしいので、これを完全に一貫させることはできません [...]
次に、モジュールとクラスの命名の指示だけでなく、相対インポートが推奨されないという事実のみを取得します。
絶対インポートが進むべき道であるという事実は、ライブラリをどのように編成するかを決定することを非常に重要なものにします (相対インポートを避けることが良いか悪いかを議論するためにここにいるわけではありません)。
私はあなたのすべてのライブラリを名前空間化する Java アプローチが好きですが、それは pythonic ではないという印象があります...どのような方法が推奨されますか?
PS。一般に、「ベスト プラクティス」の質問は SO では主観的であると見なされますが、Python では、PEP の存在により、私の意見では非常に客観的になります。答えは...かもしれませんが、ライブラリを整理するためのベストプラクティスはありません..