A Python package scaffold
Project description
init-python-package
Minimal, distribution-ready Python package scaffolding.
Generate projects that are instantly installable with pip and publishable to PyPI.
init-python-package helps you bootstrap Python projects with a ready-to-publish structure:
- Editable install support (
pip install -e .) - PyPI-compliant metadata (
pyproject.toml, SPDX license, README`) - Preconfigured tests, scripts, and notebooks
Features
- Generates a complete PyPI-ready package structure
- Includes
README.md,LICENSE, andpyproject.toml - IDE-neutral
.gitignorefor clean collaboration - Modular design for optional flows and diagnostics
- Emphasis on reproducibility and auditability
Installation
Clone the repository and set up your environment:
git clone https://github.com/your-username/init-python-package.git
cd init-python-package
./setup_env.sh # or setup_env.bat on Windows
pip install -e .
Alternatively, users can manually create and activate a virtual environment if they prefer.
📦 Usage
Run directly from your terminal:
init-python-package my_new_package
-or-
init_python_package my_new_package
Argument my_new_package is the full path to the generated package. If you omit the path arg, the tool runs in interactive mode and prompts you for the package location.
This creates a new folder with a complete Python package structure, including:
- Metadata (
pyproject.toml,README.md,LICENSE) - Importable package directory (
my_new_package/) - CLI entry point (
my_new_package/main.py) - Test scaffolding (
tests/) - Supporting folders (
scripts/,notebooks/,data/)
🗂️ Generated Package Structure
my_new_package/
├── my_new_package/ # Importable Python package
│ ├── __init__.py # Includes dynamic version
│ ├── main.py # CLI entry point
│ └── tools/ # Helper modules
├── tests/ # pytest-ready test folder
├── scripts/ # Example scripts
├── notebooks/ # Example notebooks
├── data/ # Data folder
├── README.md # PyPI-ready long description
├── LICENSE # Apache-2.0 license
├── pyproject.toml # Build metadata
├── .gitignore
├── requirements.txt
├── setup_env.bat / .sh # Optional environment setup
Project Intent
The goal of this project is to make starting a new Python package as simple and reliable as possible.
Instead of piecing together configuration files, metadata, and test scaffolding by hand,
init-python-package generates a complete, distribution-ready structure that you can install locally
with pip and publish directly to PyPI.
By using this scaffolding, you can:
- Begin coding immediately without worrying about packaging details.
- Validate that your project installs cleanly in a fresh environment.
- Ensure reproducibility with standardized metadata and licensing.
- Share your work confidently, knowing the structure meets PyPI requirements.
This project is shared publicly in support of the Python open‑source community,
with the hope that it will be useful for learners, researchers, and developers alike.
Contributions are welcome, though please note that pull requests may not be actively reviewed.
Author
George Cutter
Disclaimer
This software is provided “as is”, without warranty of any kind.
The author assumes no responsibility for errors, omissions, or outcomes resulting from its use.
Users are encouraged to validate results independently and adapt workflows to their own requirements.
This project is intended for educational and research purposes and should not be used as a substitute for professional advice in regulated domains (e.g., medical, legal, financial).
License
This project is licensed under the Apache License 2.0.
You may use, modify, and distribute this software under the terms of the Apache License.
See the LICENSE file for the full text.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file init_python_package-0.1.6.tar.gz.
File metadata
- Download URL: init_python_package-0.1.6.tar.gz
- Upload date:
- Size: 21.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2ea340495eae36c66d74d8b9294c7ab40c94ccf978bdbcab58b7a0910ba49e6
|
|
| MD5 |
134791757ae90e76e6dbfa05a69ee5e4
|
|
| BLAKE2b-256 |
8e030ce36f78735734243c055cd29d598f148b13205a1681dcb07edaf68cc1ec
|
File details
Details for the file init_python_package-0.1.6-py3-none-any.whl.
File metadata
- Download URL: init_python_package-0.1.6-py3-none-any.whl
- Upload date:
- Size: 36.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f393f709e7aec567ff60d9fd0e33c5c9378df92b03262dbeaf0719097fece0a5
|
|
| MD5 |
e0a0e1628b72b7ca2e21bdb123ba3997
|
|
| BLAKE2b-256 |
2f817c6a69422daca415bfc8de84f0758bba51737e93265ab94a21440fea4922
|