I’m not aware of any standard convention for laying out packages. PEP 8 (https://peps.python.org/pep-0008/) specifies conventions for how to write Python, so a standard layout PEP would not be inconsistent.
— Gerard Weatherby | Application Architect NMRbox | NAN | Department of Molecular Biology and Biophysics UConn Health 263 Farmington Avenue, Farmington, CT 06030-6406 uchc.edu On Jul 30, 2022, 4:37 PM -0400, Barry <ba...@barrys-emacs.org>, wrote: *** Attention: This is an external email. Use caution responding, opening attachments or clicking on links. *** On 30 Jul 2022, at 13:52, c.bu...@posteo.jp wrote: Isn't there a PEP? PEP are for improving python. They are not for telling people how to use python. I would be surprised to fine a PEP that addressed this. Barry On 2022-07-26 07:14 c.bu...@posteo.jp wrote: Hello, I am not sure if I looked into the correct sources. I was looking in "PEP 609 – Python Packaging Authority (PyPA) Governance" [1] and the "PyPA specifications" [2]. My question in short: Is there an official document (e.g. a PEP) about a recommended layout for project folders. Looking into the wild and past there are a lot of variations of such layouts. I am far away from being a pro but depending on experience in my own projects and what I have learned from others (e.g. in blog-posts/tutorials) I recommend to have the "test" folder and the package folder side by side on the same level in the project folder (the root). my_project |- tests | └ test_*.py |- my_package | └ __init__.py └-- README.md I sometimes add to it the so called "src"-Layout where the package folder is one level deeper in an extra "src" folder. my_project |- tests | └ test_*.py |- src | └- my_package | └ __init__.py └-- README.md I don't want to discuss the pros and cons of all variations. What I need is an official document I can use in discussions with other maintainers. If there is a PEP/document against my current recommendation I am also fine with this. ;) Kind Christian [1] -- <https://urldefense.com/v3/__https://peps.python.org/pep-0609/__;!!Cn_UX_p3!ipqSQS5_ZFxO37h5h5XALf2DxE3eV-x6qNSrVnKJU3cLZIkLfKhuTzSxi1fb-BvYNVPXeT-nYFX8ogu6BLuJjA$ > [2] -- <https://urldefense.com/v3/__https://packaging.python.org/en/latest/specifications__;!!Cn_UX_p3!ipqSQS5_ZFxO37h5h5XALf2DxE3eV-x6qNSrVnKJU3cLZIkLfKhuTzSxi1fb-BvYNVPXeT-nYFX8oguyjbg15g$ > -- https://urldefense.com/v3/__https://mail.python.org/mailman/listinfo/python-list__;!!Cn_UX_p3!ipqSQS5_ZFxO37h5h5XALf2DxE3eV-x6qNSrVnKJU3cLZIkLfKhuTzSxi1fb-BvYNVPXeT-nYFX8ogse6_J2Hg$ -- https://urldefense.com/v3/__https://mail.python.org/mailman/listinfo/python-list__;!!Cn_UX_p3!ipqSQS5_ZFxO37h5h5XALf2DxE3eV-x6qNSrVnKJU3cLZIkLfKhuTzSxi1fb-BvYNVPXeT-nYFX8ogse6_J2Hg$ -- https://mail.python.org/mailman/listinfo/python-list