question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Poetry allows multiline descriptions which causes problems with pip installing extras

See original GitHub issue
  • I am on the latest Poetry version.
  • I have searched the issues of this repo and believe that this is not a duplicate.
  • If an exception occurs when executing a command, I executed it again in debug mode (-vvv option).

Issue

The issue was discovered while publishing docs from undp/MsGraphExporter on ReadTheDocs. When pyproject.toml option description has a multi-line string enclosed in """ (which is perfectly legit for a string in TOML), it causes poetry to build the package with multi-line Summary in info/METADATA which does not seem to be valid according to https://github.com/pypa/pip/issues/7010#issuecomment-531068027

Perhaps poetry could just truncate the multi-line description, make it a single-lined one or flag the issue with poetry check.

_Originally posted by @OK-UNDP in https://github.com/readthedocs/readthedocs.org/issues/6151#issuecomment-531048562_

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Reactions:3
  • Comments:5

github_iconTop GitHub Comments

1reaction
bmoeskaucommented, Jun 23, 2021

I also ran into this today, and spent multiple hours trying to figure out why my package deps were not installing. Funny enough, I accidentally fixed it at one point just through the course of generally editing the file, then reverted that and broke it again – never once understanding cause and effect. Amazingly frustrating!

I really, really appreciate the work on this project, and know what it’s like to maintain OSS. Not complaining (too loudly) – but consider this a vote to fix this to help the next person avoid hours of pain 😃

1reaction
rreicommented, May 28, 2020

@sdispater thank you very much for creating poetry! I am absolutely in love with this tool ❤️

Any news on this topic? I just spent way too much time banging my head against the wall because of this… 😭

According to this link (https://packaging.python.org/specifications/core-metadata/#summary) and what @OK-UNDP said, I believe poetry should enforce a single-line description field (during poetry build and poetry check). Also, it would be nice if this restriction was mentioned in the documentation (https://python-poetry.org/docs/pyproject/#description).

As it stands now, no error occurs when building, poetry check says everything is okay, and pip only installs my library and none of its dependencies, but it doesn’t display any errors either, which makes it extremely hard to find the source of the error. Worse still, pip installing the sdist does install dependencies!

A simple example that breaks without any useful feedback (I am using Poetry 1.0.5):

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"

[tool.poetry]
name = "example-lib"
version = "0.1.0"
description = """
First line
Second line (BOOOOOM)"""
authors = ["John Doe <john.doe@example.org>"]
packages = [{ include = "example", from = "src" }]

[tool.poetry.dependencies]
python = "^3.8"
addict = "^2.2.1"
loguru = "^0.5.0"
typer = {extras = ["all"], version = "^0.2.1"}
wcmatch = "^6.0.1"

@sdispater if you agree with my suggestion to enforce the single-line description field, I’d be happy to give it a try and submit a PR 😃

Read more comments on GitHub >

github_iconTop Results From Across the Web

Poetry allows multiline descriptions which causes problems ...
As it stands now, no error occurs when building, poetry check says everything is okay, and pip only installs my library and none...
Read more >
All my poetry commands fail with 'The Poetry config is invalid'
A multi-line string is not valid for the description field. The error message does not match '^[^\n]*$' is telling you that it is...
Read more >
tox-poetry-installer - PyPI
This plugin extends the default Tox dependency installation behavior to support installing dependencies using a Poetry-based installation method ...
Read more >
Configuration - tox
Configuration#. tox configuration can be split into two categories: core and environment specific. Core settings are options that can be set once and...
Read more >
Making Python Packages Part 2: How to Publish & Test Your ...
pip install poetry. As always, try pip3 (the version for python3)if you don't have pip. Poetry new. Our first command is to create...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found