My personal python starter template. Intended for copy and paste use.
This project is released into the public domain, so feel free to modify and use it as you wish.
If you don't want to walk through the Usage chapter manually, just run this code block:
read -p "Enter the package name: " NEW_PACKAGE_NAME
read -p "Enter the project name [default: $NEW_PACKAGE_NAME]: " NEW_PROJECT_NAME
NEW_PROJECT_NAME=${NEW_PROJECT_NAME:-$NEW_PACKAGE_NAME}
read -p "Enter your GitHub username [default: ptrstn]: " YOUR_GH_USERNAME
YOUR_GH_USERNAME=${YOUR_GH_USERNAME:-ptrstn}
echo -e "\033[0;34mPackage name: $NEW_PACKAGE_NAME\033[0m"
echo -e "\033[0;34mProject name: $NEW_PROJECT_NAME\033[0m"
echo -e "\033[0;34mGitHub username: $YOUR_GH_USERNAME\033[0m"
echo -e "\033[0;34mCloning https://github.com/ptrstn/python-starter.git...\033[0m"
git clone https://github.com/ptrstn/python-starter.git tmp
rm -rf tmp/.git
cp -r tmp/.coveragerc tmp/.flake8 tmp/.gitignore tmp/* .
cp -r tmp/.github .github
rm -rf tmp
mv src/packagename src/$NEW_PACKAGE_NAME
sed -i "s/packagename/$NEW_PACKAGE_NAME/g" pyproject.toml .coveragerc README.md "src/${NEW_PACKAGE_NAME}/__main__.py" tests/test_core.py
sed -i "s/python-starter/$NEW_PROJECT_NAME/g" README.md pyproject.toml
sed -i "s/ptrstn/$YOUR_GH_USERNAME/g" pyproject.toml README.md
sed -i '6,/^## Installation/d' README.md
echo -e '\033[0;32mDone!\033[0m'
echo -e 'Note: Don'"'"'t forget to update your preferred \033[0;34mLICENSE\033[0m'
Copy all files from this repository into your personal project.
git clone https://github.com/ptrstn/python-starter.git tmp
rm -rf tmp/.git
cp -r tmp/.coveragerc tmp/.flake8 tmp/.gitignore tmp/* .
cp -r tmp/.github .github
rm -rf tmp
Note: If your project is not empty, it might overwrite your files.
Replace all occurrences of packagename
and python-starter
with your package name.
You can do this for instance by first declaring a variable NEW_PROJECT_NAME
and replacing <YOUR_PACKAGE_NAME>
with your desired package/project name.
NEW_PACKAGE_NAME=<YOUR_PACKAGE_NAME>
NEW_PROJECT_NAME=<YOUR_PACKAGE_NAME>
You can then use this variable to rename all occurrences in the template with your desired package/project name.
mv src/packagename src/$NEW_PACKAGE_NAME
sed -i "s/packagename/$NEW_PACKAGE_NAME/g" pyproject.toml .coveragerc README.md "src/${NEW_PACKAGE_NAME}/__main__.py" tests/test_core.py
sed -i "s/python-starter/$NEW_PROJECT_NAME/g" README.md pyproject.toml
If your username is not ptrstn
then you can first setup a new variable:
YOUR_GH_USERNAME=<YOUR_GITHUB_USERNAME>
Then you can replace it with the following command:
sed -i "s/ptrstn/$YOUR_GH_USERNAME/g" pyproject.toml README.md
Replace the LICENSE file to whatever you want to use. I would suggest the MIT license.
Also replace the author name in pyproject.toml
with your name.
Adapt README.md, especially the installation instructions, according to your project.
In particular, delete all the text up until ## Installationc
sed -i '6,/^## Installation/d' README.md
pip install --user git+https://github.com/ptrstn/python-starter
packagename
git clone https://github.com/ptrstn/python-starter
cd python-starter
python -m venv .venv
. .venv/bin/activate
pip install -e .[test]
pytest