This is a sample package which follows the instructions for publishing a Python package to PyPI.
Project description
DEMO-PACKAGE-PYTHON
This is a sample package which follows the instructions for publishing a Python package to PyPI.
This repository can be used as a template for building packages.
See section Reusing as Template
for more info on how.
Outline
This README.md
file is organized as follows:
- Outline
- Full Instructions
- Summarized/Compact Instructions
- Code Structure
- Demo Package Installation Instructions
- Reusing as Template
- Adding Additional Files
Full Instructions
Full instructions for publishing a Python package using PyPI can be found here: https://packaging.python.org/en/latest/tutorials/packaging-projects/
I made a tinyurl.com
shortlinks for the
tutorial link above:
https://tinyurl.com/how-to-package-python
If you want, you can include the links above to your bookmarks.
Summarized/Compact Instructions
In summary the insructions can be divided into the outline below if you don't feel clicking the tutorial link again and again.
Full instructions can be found in the tutorials above in case the summary doesn't still help in recall.
- Creating a package
- Create package files (see code structure below for an example)
- Create
test/
directory - Create
pyproject.toml
with the necessary[build-system]
,[project]
, and[project.urls]
options - Configure metadata of project. Common metadata are show below. For a more thorough example, see
pyproject.toml
- name
- version
- authors (must be in array format)
- description
- readme
- license
- requires-python
- classifiers
- Create
README.md
file - Create
LICENSE
file
- Generating distribution archives
- Step 1: Install
build
package
python3 -m pip install --upgrade build`
- Step 2: Run
python3 -m build
on the first build and successive build updates for different versions.- Generates a
dist/
folder for the built package - Puts a
.whl
and.tar.gz
file in the dist folder for the current version.
- Generates a
- Step 1: Install
- Uploading the distribution archives
- Install
twine
, a tool for uploading packages to different package indices.python3 -m pip install --upgrade twine
- Upload archives under
dist
python3 -m twine upload --repository testpypi dist/*
- Install
Code Structure
demo-package-python
dist/ # distribution files
env/ # virtual environment for the package
scripts/ # scripts
build_pyproject_toml.py # build pyproject_toml.py
src/ # source files for the package
tests/ # tests for the package
main.py
utils/
build.sh # shell script for building package
publish.sh # shell script for publishing package
setup.sh # shell script for setting up package
LICENSE # MIT License
pyproject.dev.toml # project configuration
pyproject.toml # built project configuration
requirements.txt # requirements list generated by pip freeze
Demo Package Installation Instructions
The demo package has a simple API of 3 functions.
.say_hello_world()
.say_hi(name)
.random_rainbow_color()
- uses thefaker
package
To use this package:
pip install demo_package_python
Then:
import demo_package
print(".sayHello() => " + demo_package.say_hello_world())
print(".sayHi('John') => " + demo_package.say_hi('John'))
print(".randomRainbowColor() => " + demo_package.random_rainbow_color())
It should return the following:
.say_hello() => Hello, World!
.say_hi('John') => Hi, John!
.random_rainbow_color() => blue
Reusing as Template
If you intend to reuse this package as a template for future package projects, use the following command:
-
git clone https://gitlab.com/demo-package/demo-package-python.git
-
Edit
pyproject.toml
to match your project description. -
Remove contents of
src/demo_package_python
-
Rename
src/demo_package_python
tosrc/[your_project_name]
-
Run from command line:
bash utils/setup.sh
-
Activate virtual environment
source env/bin/activate
-
Use the following commands to simplify routines:
bash utils/build.sh
- to build projectbash utils/publish.sh
- to upload project
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
Hashes for demo_package_python-0.0.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c042874efd06e24515f397d33a817dcd409ab49c441d0e1d1b58da3bc096d635 |
|
MD5 | 2ec88d60a906a366e33111bea5e65bc9 |
|
BLAKE2b-256 | 11218e801da7a5edf7f6069b74ff96954c2c28d6308926c1dc77f964b114220c |
Hashes for demo_package_python-0.0.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45e91944595c7dbedf0a65fe5e71db0c41ed0d46b557e91885add83200c42153 |
|
MD5 | 6bc541eb415d00ac57b3df230b1f2fdf |
|
BLAKE2b-256 | 1613fc449d109142796af3556c26514902b82767923e319a481bc468db54b9bd |