Testing poetry, Correct Python Packaging, installing and running as cli
Project description
This repo is just an experiment to test out poetry
Key things:
easyily turn program.py to poetryexp runnable program that can be installed with pip install poetry-experiment
or other available pypi package name
In a new project folder (package-root):
- run
git initorgit clonebeforehand - create README.md if missing
- propper py package
- put program.py in package folder poetry-experiment/
- create init.py (import program) inside, in poetry-experiment/
- poetry init
- add script to toml
- poetry build
- poetry config pypi-token.pypi your-api-token
- poetry publish
package-root/
README.md
poetry.toml (fix name)
poetry-experiment/
__init__.py #import program inside
program.py
.git/
To accomplish this, you can follow these steps:
-
Create a
pyproject.tomlfile: Make sure you have apyproject.tomlfile in your project directory. Poetry uses this file to manage project dependencies and settings. -
Add metadata to
pyproject.toml: You'll need to define metadata such as the project name, version, and description in thepyproject.tomlfile. -
Define entry points: In your
pyproject.toml, you can define entry points for your command-line interface (CLI) using the[tool.poetry.scripts]section. This will allow users to run your program using a specified name. -
Write your
program.py: Write the Python script that you want to publish. -
Build your package: Use Poetry to build your package. This will generate a distributable package that can be uploaded to PyPI.
-
Publish to PyPI: Once your package is built, you can publish it to PyPI using Poetry's
publishcommand.
Here's a step-by-step guide:
- Create a
pyproject.tomlfile if you don't already have one. It should look something like this:
[tool.poetry]
name = "poetry_experiment"
version = "1.0.0"
description = "A description of your program"
authors = ["Your Name <your.email@example.com>"]
[tool.poetry.dependencies]
python = "^3.8"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.poetry.scripts]
poetryexp = "program:main"
- Write your
program.py. Make sure it has a function namedmain, which will be called when users run your program.
def main():
print("Hello, world!")
- Once you've written your script and configured your
pyproject.toml, you can use Poetry to build your package:
poetry build
- After the build is successful, you can publish your package to PyPI:
poetry publish --build
- After publishing, users can install your package using pip:
pip install poetry_experiment
- Once installed, users can run your program using the specified entry point:
poetryexp
This will execute the main() function defined in your program.py.
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 poetry_experiment-0.1.1.tar.gz.
File metadata
- Download URL: poetry_experiment-0.1.1.tar.gz
- Upload date:
- Size: 2.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.11.5 Linux/5.10.16.3-microsoft-standard-WSL2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0233f7154e22e2c5ab729ce356251dfc29c93bdfbe2bc334d53c73bc4bb4cf4b
|
|
| MD5 |
e5fe0d16a0de571b603f5454d90e43d4
|
|
| BLAKE2b-256 |
d0a2e5797aceef03b5dc50efe69c42bec3d503f893009687d70a171a0eb51c7c
|
File details
Details for the file poetry_experiment-0.1.1-py3-none-any.whl.
File metadata
- Download URL: poetry_experiment-0.1.1-py3-none-any.whl
- Upload date:
- Size: 3.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.11.5 Linux/5.10.16.3-microsoft-standard-WSL2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afe3e324e20f655bc9d98b442740da17ae029782718377103dcea9cecdfae4a8
|
|
| MD5 |
8a036a9539e44df33fc9fc6fb8e03689
|
|
| BLAKE2b-256 |
6e15791d33f05746202e5b570bed32540a80ebf9209404fd1fb9099a45144f35
|