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 init
orgit clone
beforehand - 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.toml
file: Make sure you have apyproject.toml
file 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.toml
file. -
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
publish
command.
Here's a step-by-step guide:
- Create a
pyproject.toml
file 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
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 |