Skip to main content

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):

  1. run git init or git clone beforehand
  2. create README.md if missing
  3. propper py package
    • put program.py in package folder poetry-experiment/
    • create init.py (import program) inside, in poetry-experiment/
  4. poetry init
  5. add script to toml
  6. poetry build
  7. poetry config pypi-token.pypi your-api-token
  8. 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:

  1. Create a pyproject.toml file: Make sure you have a pyproject.toml file in your project directory. Poetry uses this file to manage project dependencies and settings.

  2. Add metadata to pyproject.toml: You'll need to define metadata such as the project name, version, and description in the pyproject.toml file.

  3. 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.

  4. Write your program.py: Write the Python script that you want to publish.

  5. Build your package: Use Poetry to build your package. This will generate a distributable package that can be uploaded to PyPI.

  6. 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:

  1. 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"
  1. Write your program.py. Make sure it has a function named main, which will be called when users run your program.
def main():
    print("Hello, world!")
  1. Once you've written your script and configured your pyproject.toml, you can use Poetry to build your package:
poetry build
  1. After the build is successful, you can publish your package to PyPI:
poetry publish --build
  1. After publishing, users can install your package using pip:
pip install poetry_experiment
  1. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

poetry_experiment-0.1.1.tar.gz (2.1 kB view details)

Uploaded Source

Built Distribution

poetry_experiment-0.1.1-py3-none-any.whl (3.3 kB view details)

Uploaded Python 3

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

Hashes for poetry_experiment-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0233f7154e22e2c5ab729ce356251dfc29c93bdfbe2bc334d53c73bc4bb4cf4b
MD5 e5fe0d16a0de571b603f5454d90e43d4
BLAKE2b-256 d0a2e5797aceef03b5dc50efe69c42bec3d503f893009687d70a171a0eb51c7c

See more details on using hashes here.

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

Hashes for poetry_experiment-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 afe3e324e20f655bc9d98b442740da17ae029782718377103dcea9cecdfae4a8
MD5 8a036a9539e44df33fc9fc6fb8e03689
BLAKE2b-256 6e15791d33f05746202e5b570bed32540a80ebf9209404fd1fb9099a45144f35

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page