Quick boilerplate for a new python package. This is can be seen as a quick, leightweight, one-liner poetry, perhaps more suited for prototypes and small personal projects
Project URL : https://github.com/LucasGuillaume/Pyckage
user@computer:$ git clone https://github.com/LucasGuillaume/Pyckage
user@computer:$ pip install -e ./PyckageDétails :
user@computer:$ pyckage -h
usage: pyckage [-h] [--verbosity {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [--version VERSION] [--year YEAR] [--author AUTHOR] [--email EMAIL] [--description DESCRIPTION] [--long_description LONG_DESCRIPTION]
[--URL URL] --requirements REQUIREMENTS
name
Creates the boilerplate of a python package in the current directory.
positional arguments:
name Package name
optional arguments:
-h, --help show this help message and exit
--verbosity {DEBUG,INFO,WARNING,ERROR,CRITICAL}, -v {DEBUG,INFO,WARNING,ERROR,CRITICAL}
Choose your verbosity. Default: DEBUG
--version VERSION Initial version (DEFAULT: 0.1)
--year YEAR, -y YEAR Choose your verbosity. Default: current year
--author AUTHOR, -a AUTHOR
Author name
--email EMAIL, -e EMAIL
Your email address
--description DESCRIPTION, -d DESCRIPTION
Project description (short)
--long_description LONG_DESCRIPTION, -l LONG_DESCRIPTION
Project description (long)
--URL URL, -u URL Project's URL
--requirements REQUIREMENTS, -r REQUIREMENTS
pip requirements, as a python list between quotes. Exemple : "[python>=3.7,tqdm]"
user@computer:$ pyckage my_super_package
user@computer:$ pip install -e ./my_super_package
Obtaining file:///home/my_super_package
Installing collected packages: my-super-package
Running setup.py develop for my-super-package
Successfully installed my-super-packageuser@computer$: my_super_package -h
usage: my_super_package [-h] [--verbosity {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [--progress_bar]
optional arguments:
-h, --help show this help message and exit
--verbosity {DEBUG,INFO,WARNING,ERROR,CRITICAL}, -v {DEBUG,INFO,WARNING,ERROR,CRITICAL}
Choose your verbosity. Default: INFO
--progress_bar, -p Displays a progress bar
Each created package contains a constant variable that refers to the emplacement of its resources:
>>> import mysuperpackage
>>> print(mysuperpackage.RESOURCES_DIR)user@computer:$ tree my_super_package/
my_super_package/
├── LICENSE.txt # Change with whatever license you want
├── METADATA.in
├── my_super_package # Your independent modules goes in this subdirectory
│ ├── app_module1.py # Replace with your own module name
# Add your different modules here
│ ├── __init__.py # Import all your modules here
│ ├── launchers # Your CLI programs
│ │ ├── __init__.py # Don't forget to add additional launcher programs if there is any
│ │ └── my_super_package_launcher.py # Parses arguments
# By default, launches app_module1.appfunction_of_module1(). Change with whatever you want
│ └── resources # Put your resources here (Images, HTML, etc)
│ └── EMPTY
├── README.md # Markdown README
└── setup.py # You can add new launchers if you specify them from here
6 directories, 18 filesuser@computer:$ pip install --update twineuser@computer:$ cd my_super_package
user@computer:$ python setup.py sdist bdist_wheel
user@computer:$ twine upload -r testpypi dist/*
username: ...
password:
...See Here to upload on the real PyPI once you're ready
Python >=3.7
DELEVOYE Guillaume - 2021 delevoye.guillaume@gmail.com
See "License" for more infos