getpelican / pelican

Static site generator that supports Markdown and reST syntax. Powered by Python.
https://getpelican.com
GNU Affero General Public License v3.0
12.48k stars 1.81k forks source link

furo and pelican wants different versions of `pygments` package in requirements/docs.pip (hash: HEAD, v4.9.1) #3385

Open egberts opened 1 month ago

egberts commented 1 month ago

A versioning battle of Pygment has resumed. I bisected it to 903ce3ce33d614dfaa39a55db96b7ec44fc7df43 in the "Pin Furo doc theme" effort in PR #3023.

Pristine environment installation, no Pelican were installed.

The conflict is caused by:
    The user requested Pygments==2.14.0
    furo 2023.9.10 depends on pygments>=2.7
    pelican 4.9.1 depends on pygments>=2.16.1

I'm quite sure I missed something in my new environment, which does NOT have any prior Pelican installed.

mkdir work
cd work
gh repo clone getpelican/pelican
cd pelican
virtualenv ~/virtualenv/work
source ~/virtualenv/work/bin/activate
cd pelican
pip install -e . -r requirements/developer.pip

Output result is:

$ pip install -e . -r requirements/developer.pip
Obtaining file:///home/wolfe/admin/websites/egbert.net/Pelican/main/pelican
  Installing build dependencies ... done
  Checking if build backend supports build_editable ... done
  Getting requirements to build editable ... done
  Preparing editable metadata (pyproject.toml) ... done
Ignoring tomli: markers 'python_version < "3.11"' don't match your environment
Collecting Pygments==2.14.0 (from -r requirements/test.pip (line 2))
  Using cached Pygments-2.14.0-py3-none-any.whl.metadata (1.6 kB)
Collecting pytest (from -r requirements/test.pip (line 3))
  Using cached pytest-8.3.2-py3-none-any.whl.metadata (7.5 kB)
Collecting pytest-cov (from -r requirements/test.pip (line 4))
  Using cached pytest_cov-5.0.0-py3-none-any.whl.metadata (27 kB)
Collecting Markdown==3.5.1 (from -r requirements/test.pip (line 8))
  Using cached Markdown-3.5.1-py3-none-any.whl.metadata (7.1 kB)
Collecting BeautifulSoup4 (from -r requirements/test.pip (line 9))
  Using cached beautifulsoup4-4.12.3-py3-none-any.whl.metadata (3.8 kB)
Collecting lxml (from -r requirements/test.pip (line 10))
  Using cached lxml-5.2.2-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (3.4 kB)
Collecting typogrify (from -r requirements/test.pip (line 11))
  Using cached typogrify-2.0.7-py2.py3-none-any.whl
Collecting sphinx (from -r requirements/docs.pip (line 1))
  Using cached sphinx-7.4.7-py3-none-any.whl.metadata (6.1 kB)
Collecting sphinxext-opengraph (from -r requirements/docs.pip (line 2))
  Using cached sphinxext_opengraph-0.9.1-py3-none-any.whl.metadata (6.5 kB)
Collecting furo==2023.9.10 (from -r requirements/docs.pip (line 3))
  Using cached furo-2023.9.10-py3-none-any.whl.metadata (5.9 kB)
Collecting livereload (from -r requirements/docs.pip (line 4))
  Using cached livereload-2.7.0-py3-none-any.whl.metadata (2.1 kB)
Collecting matplotlib (from -r requirements/docs.pip (line 5))
  Using cached matplotlib-3.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
Collecting pytest-xdist[psutil] (from -r requirements/test.pip (line 5))
  Using cached pytest_xdist-3.6.1-py3-none-any.whl.metadata (4.3 kB)
Collecting sphinx-basic-ng (from furo==2023.9.10->-r requirements/docs.pip (line 3))
  Using cached sphinx_basic_ng-1.0.0b2-py3-none-any.whl.metadata (1.5 kB)
Collecting blinker>=1.7.0 (from pelican==4.9.1)
  Using cached blinker-1.8.2-py3-none-any.whl.metadata (1.6 kB)
Collecting docutils>=0.20.1 (from pelican==4.9.1)
  Using cached docutils-0.21.2-py3-none-any.whl.metadata (2.8 kB)
Collecting feedgenerator>=2.1.0 (from pelican==4.9.1)
  Using cached feedgenerator-2.1.0-py3-none-any.whl.metadata (1.8 kB)
Collecting jinja2>=3.1.2 (from pelican==4.9.1)
  Using cached jinja2-3.1.4-py3-none-any.whl.metadata (2.6 kB)
Collecting ordered-set>=4.1.0 (from pelican==4.9.1)
  Using cached ordered_set-4.1.0-py3-none-any.whl.metadata (5.3 kB)
INFO: pip is looking at multiple versions of pelican to determine which version is compatible with other requirements. This could take a while.
ERROR: Cannot install -r requirements/docs.pip (line 3), Pygments==2.14.0 and pelican==4.9.1 because these package versions have conflicting dependencies.

The conflict is caused by:
    The user requested Pygments==2.14.0
    furo 2023.9.10 depends on pygments>=2.7
    pelican 4.9.1 depends on pygments>=2.16.1

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip to attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

[notice] A new release of pip is available: 24.1 -> 24.2
[notice] To update, run: pip install --upgrade pip

Issue

Platform

Click to expand ## Platform - **OS version and name**: Linux 6.1.0-21-amd64 SMP PREEMPT_DYNAMIC Debian 6.1.90-1 (2024-05-03) x86_64 GNU/Linux - **Python version**: 3.11.2 - **Pelican version**: main, HEAD( 513abbfdc668946590194c637dbe90ec228aaf6f , 4.9.1+) - **Link to theme**: [m.css](https://github.com/egberts/m.css) - **Links to plugins**: [pelican-plugins](https://github.com/getpelican/pelican-plugins) - **Link to your site**: n/a - **Link to your source**: n/a
egberts commented 1 month ago

Since it is a doc-related thingie, it is kind of outside my pay grade but giving it the ol' college try here.

But yanking Pygments up to 2.16.1 in requirements/tests.pip seems to install ok, see expandable details for console output:

Click to expand console output: ```console $ pip install -e . -r requirements/developer.pip Obtaining file:///home/wolfe/admin/websites/egbert.net/Pelican/main/pelican Installing build dependencies ... done Checking if build backend supports build_editable ... done Getting requirements to build editable ... done Preparing editable metadata (pyproject.toml) ... done Ignoring tomli: markers 'python_version < "3.11"' don't match your environment Collecting Pygments==2.16.1 (from -r requirements/test.pip (line 2)) Downloading Pygments-2.16.1-py3-none-any.whl.metadata (2.5 kB) Collecting pytest (from -r requirements/test.pip (line 3)) Using cached pytest-8.3.2-py3-none-any.whl.metadata (7.5 kB) Collecting pytest-cov (from -r requirements/test.pip (line 4)) Using cached pytest_cov-5.0.0-py3-none-any.whl.metadata (27 kB) Collecting Markdown==3.5.1 (from -r requirements/test.pip (line 8)) Using cached Markdown-3.5.1-py3-none-any.whl.metadata (7.1 kB) Collecting BeautifulSoup4 (from -r requirements/test.pip (line 9)) Using cached beautifulsoup4-4.12.3-py3-none-any.whl.metadata (3.8 kB) Collecting lxml (from -r requirements/test.pip (line 10)) Using cached lxml-5.2.2-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (3.4 kB) Collecting typogrify (from -r requirements/test.pip (line 11)) Using cached typogrify-2.0.7-py2.py3-none-any.whl Collecting sphinx (from -r requirements/docs.pip (line 1)) Using cached sphinx-7.4.7-py3-none-any.whl.metadata (6.1 kB) Collecting sphinxext-opengraph (from -r requirements/docs.pip (line 2)) Using cached sphinxext_opengraph-0.9.1-py3-none-any.whl.metadata (6.5 kB) Collecting furo==2023.9.10 (from -r requirements/docs.pip (line 3)) Using cached furo-2023.9.10-py3-none-any.whl.metadata (5.9 kB) Collecting livereload (from -r requirements/docs.pip (line 4)) Using cached livereload-2.7.0-py3-none-any.whl.metadata (2.1 kB) Collecting matplotlib (from -r requirements/docs.pip (line 5)) Using cached matplotlib-3.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB) Collecting pytest-xdist[psutil] (from -r requirements/test.pip (line 5)) Using cached pytest_xdist-3.6.1-py3-none-any.whl.metadata (4.3 kB) Collecting sphinx-basic-ng (from furo==2023.9.10->-r requirements/docs.pip (line 3)) Using cached sphinx_basic_ng-1.0.0b2-py3-none-any.whl.metadata (1.5 kB) Collecting blinker>=1.7.0 (from pelican==4.9.1) Using cached blinker-1.8.2-py3-none-any.whl.metadata (1.6 kB) Collecting docutils>=0.20.1 (from pelican==4.9.1) Using cached docutils-0.21.2-py3-none-any.whl.metadata (2.8 kB) Collecting feedgenerator>=2.1.0 (from pelican==4.9.1) Using cached feedgenerator-2.1.0-py3-none-any.whl.metadata (1.8 kB) Collecting jinja2>=3.1.2 (from pelican==4.9.1) Using cached jinja2-3.1.4-py3-none-any.whl.metadata (2.6 kB) Collecting ordered-set>=4.1.0 (from pelican==4.9.1) Using cached ordered_set-4.1.0-py3-none-any.whl.metadata (5.3 kB) Collecting python-dateutil>=2.8.2 (from pelican==4.9.1) Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB) Collecting rich>=13.6.0 (from pelican==4.9.1) Using cached rich-13.7.1-py3-none-any.whl.metadata (18 kB) Collecting unidecode>=1.3.7 (from pelican==4.9.1) Downloading Unidecode-1.3.8-py3-none-any.whl.metadata (13 kB) Collecting watchfiles>=0.21.0 (from pelican==4.9.1) Using cached watchfiles-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.9 kB) Collecting iniconfig (from pytest->-r requirements/test.pip (line 3)) Using cached iniconfig-2.0.0-py3-none-any.whl.metadata (2.6 kB) Collecting packaging (from pytest->-r requirements/test.pip (line 3)) Using cached packaging-24.1-py3-none-any.whl.metadata (3.2 kB) Collecting pluggy<2,>=1.5 (from pytest->-r requirements/test.pip (line 3)) Using cached pluggy-1.5.0-py3-none-any.whl.metadata (4.8 kB) Collecting coverage>=5.2.1 (from coverage[toml]>=5.2.1->pytest-cov->-r requirements/test.pip (line 4)) Using cached coverage-7.6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (8.2 kB) Collecting execnet>=2.1 (from pytest-xdist[psutil]->-r requirements/test.pip (line 5)) Using cached execnet-2.1.1-py3-none-any.whl.metadata (2.9 kB) Collecting psutil>=3.0 (from pytest-xdist[psutil]->-r requirements/test.pip (line 5)) Using cached psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (21 kB) Collecting soupsieve>1.2 (from BeautifulSoup4->-r requirements/test.pip (line 9)) Using cached soupsieve-2.5-py3-none-any.whl.metadata (4.7 kB) Collecting smartypants>=1.8.3 (from typogrify->-r requirements/test.pip (line 11)) Using cached smartypants-2.0.1-py2.py3-none-any.whl.metadata (1.9 kB) Collecting sphinxcontrib-applehelp (from sphinx->-r requirements/docs.pip (line 1)) Using cached sphinxcontrib_applehelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-devhelp (from sphinx->-r requirements/docs.pip (line 1)) Using cached sphinxcontrib_devhelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-jsmath (from sphinx->-r requirements/docs.pip (line 1)) Using cached sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl.metadata (1.4 kB) Collecting sphinxcontrib-htmlhelp>=2.0.0 (from sphinx->-r requirements/docs.pip (line 1)) Using cached sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-serializinghtml>=1.1.9 (from sphinx->-r requirements/docs.pip (line 1)) Using cached sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl.metadata (2.4 kB) Collecting sphinxcontrib-qthelp (from sphinx->-r requirements/docs.pip (line 1)) Using cached sphinxcontrib_qthelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) INFO: pip is looking at multiple versions of sphinx to determine which version is compatible with other requirements. This could take a while. Collecting sphinx (from -r requirements/docs.pip (line 1)) Using cached sphinx-7.4.6-py3-none-any.whl.metadata (6.1 kB) Using cached sphinx-7.4.5-py3-none-any.whl.metadata (6.1 kB) Using cached sphinx-7.4.4-py3-none-any.whl.metadata (6.1 kB) Using cached sphinx-7.4.3-py3-none-any.whl.metadata (6.1 kB) Using cached sphinx-7.4.2-py3-none-any.whl.metadata (6.1 kB) Using cached sphinx-7.4.1-py3-none-any.whl.metadata (6.1 kB) Using cached sphinx-7.4.0-py3-none-any.whl.metadata (6.1 kB) INFO: pip is still looking at multiple versions of sphinx to determine which version is compatible with other requirements. This could take a while. Using cached sphinx-7.3.7-py3-none-any.whl.metadata (6.0 kB) Collecting snowballstemmer>=2.0 (from sphinx->-r requirements/docs.pip (line 1)) Using cached snowballstemmer-2.2.0-py2.py3-none-any.whl.metadata (6.5 kB) Collecting babel>=2.9 (from sphinx->-r requirements/docs.pip (line 1)) Using cached Babel-2.15.0-py3-none-any.whl.metadata (1.5 kB) Collecting alabaster~=0.7.14 (from sphinx->-r requirements/docs.pip (line 1)) Using cached alabaster-0.7.16-py3-none-any.whl.metadata (2.9 kB) Collecting imagesize>=1.3 (from sphinx->-r requirements/docs.pip (line 1)) Using cached imagesize-1.4.1-py2.py3-none-any.whl.metadata (1.5 kB) Collecting requests>=2.25.0 (from sphinx->-r requirements/docs.pip (line 1)) Using cached requests-2.32.3-py3-none-any.whl.metadata (4.6 kB) Collecting tornado (from livereload->-r requirements/docs.pip (line 4)) Using cached tornado-6.4.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.5 kB) Collecting contourpy>=1.0.1 (from matplotlib->-r requirements/docs.pip (line 5)) Using cached contourpy-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.8 kB) Collecting cycler>=0.10 (from matplotlib->-r requirements/docs.pip (line 5)) Using cached cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB) Collecting fonttools>=4.22.0 (from matplotlib->-r requirements/docs.pip (line 5)) Using cached fonttools-4.53.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (162 kB) Collecting kiwisolver>=1.3.1 (from matplotlib->-r requirements/docs.pip (line 5)) Using cached kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.4 kB) Collecting numpy>=1.23 (from matplotlib->-r requirements/docs.pip (line 5)) Using cached numpy-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (60 kB) Collecting pillow>=8 (from matplotlib->-r requirements/docs.pip (line 5)) Using cached pillow-10.4.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (9.2 kB) Collecting pyparsing>=2.3.1 (from matplotlib->-r requirements/docs.pip (line 5)) Using cached pyparsing-3.1.2-py3-none-any.whl.metadata (5.1 kB) Collecting pytz>=0a (from feedgenerator>=2.1.0->pelican==4.9.1) Downloading pytz-2024.1-py2.py3-none-any.whl.metadata (22 kB) Collecting MarkupSafe>=2.0 (from jinja2>=3.1.2->pelican==4.9.1) Using cached MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.0 kB) Collecting six>=1.5 (from python-dateutil>=2.8.2->pelican==4.9.1) Using cached six-1.16.0-py2.py3-none-any.whl.metadata (1.8 kB) Collecting charset-normalizer<4,>=2 (from requests>=2.25.0->sphinx->-r requirements/docs.pip (line 1)) Using cached charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (33 kB) Collecting idna<4,>=2.5 (from requests>=2.25.0->sphinx->-r requirements/docs.pip (line 1)) Using cached idna-3.7-py3-none-any.whl.metadata (9.9 kB) Collecting urllib3<3,>=1.21.1 (from requests>=2.25.0->sphinx->-r requirements/docs.pip (line 1)) Using cached urllib3-2.2.2-py3-none-any.whl.metadata (6.4 kB) Collecting certifi>=2017.4.17 (from requests>=2.25.0->sphinx->-r requirements/docs.pip (line 1)) Using cached certifi-2024.7.4-py3-none-any.whl.metadata (2.2 kB) Collecting markdown-it-py>=2.2.0 (from rich>=13.6.0->pelican==4.9.1) Using cached markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB) Collecting anyio>=3.0.0 (from watchfiles>=0.21.0->pelican==4.9.1) Using cached anyio-4.4.0-py3-none-any.whl.metadata (4.6 kB) Collecting sniffio>=1.1 (from anyio>=3.0.0->watchfiles>=0.21.0->pelican==4.9.1) Using cached sniffio-1.3.1-py3-none-any.whl.metadata (3.9 kB) Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich>=13.6.0->pelican==4.9.1) Using cached mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB) Downloading Pygments-2.16.1-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 18.7 kB/s eta 0:00:00 Using cached Markdown-3.5.1-py3-none-any.whl (102 kB) Using cached furo-2023.9.10-py3-none-any.whl (324 kB) Using cached pytest-8.3.2-py3-none-any.whl (341 kB) Using cached pytest_cov-5.0.0-py3-none-any.whl (21 kB) Using cached beautifulsoup4-4.12.3-py3-none-any.whl (147 kB) Using cached lxml-5.2.2-cp311-cp311-manylinux_2_28_x86_64.whl (5.0 MB) Using cached sphinx-7.3.7-py3-none-any.whl (3.3 MB) Using cached sphinxext_opengraph-0.9.1-py3-none-any.whl (1.0 MB) Using cached livereload-2.7.0-py3-none-any.whl (22 kB) Using cached matplotlib-3.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.3 MB) Using cached alabaster-0.7.16-py3-none-any.whl (13 kB) Using cached Babel-2.15.0-py3-none-any.whl (9.6 MB) Using cached blinker-1.8.2-py3-none-any.whl (9.5 kB) Using cached contourpy-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (306 kB) Using cached coverage-7.6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (237 kB) Using cached cycler-0.12.1-py3-none-any.whl (8.3 kB) Using cached docutils-0.21.2-py3-none-any.whl (587 kB) Using cached execnet-2.1.1-py3-none-any.whl (40 kB) Downloading feedgenerator-2.1.0-py3-none-any.whl (21 kB) Using cached fonttools-4.53.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB) Using cached imagesize-1.4.1-py2.py3-none-any.whl (8.8 kB) Using cached jinja2-3.1.4-py3-none-any.whl (133 kB) Using cached kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB) Using cached numpy-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.5 MB) Downloading ordered_set-4.1.0-py3-none-any.whl (7.6 kB) Using cached packaging-24.1-py3-none-any.whl (53 kB) Using cached pillow-10.4.0-cp311-cp311-manylinux_2_28_x86_64.whl (4.5 MB) Using cached pluggy-1.5.0-py3-none-any.whl (20 kB) Using cached psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (290 kB) Using cached pyparsing-3.1.2-py3-none-any.whl (103 kB) Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB) Using cached requests-2.32.3-py3-none-any.whl (64 kB) Using cached rich-13.7.1-py3-none-any.whl (240 kB) Using cached smartypants-2.0.1-py2.py3-none-any.whl (9.9 kB) Using cached snowballstemmer-2.2.0-py2.py3-none-any.whl (93 kB) Using cached soupsieve-2.5-py3-none-any.whl (36 kB) Using cached sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl (98 kB) Using cached sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl (92 kB) Downloading Unidecode-1.3.8-py3-none-any.whl (235 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 235.5/235.5 kB 21.8 kB/s eta 0:00:00 Using cached watchfiles-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB) Using cached iniconfig-2.0.0-py3-none-any.whl (5.9 kB) Using cached pytest_xdist-3.6.1-py3-none-any.whl (46 kB) Using cached sphinx_basic_ng-1.0.0b2-py3-none-any.whl (22 kB) Using cached sphinxcontrib_applehelp-2.0.0-py3-none-any.whl (119 kB) Using cached sphinxcontrib_devhelp-2.0.0-py3-none-any.whl (82 kB) Using cached sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl (5.1 kB) Using cached sphinxcontrib_qthelp-2.0.0-py3-none-any.whl (88 kB) Using cached tornado-6.4.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (436 kB) Using cached anyio-4.4.0-py3-none-any.whl (86 kB) Using cached certifi-2024.7.4-py3-none-any.whl (162 kB) Using cached charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (140 kB) Using cached idna-3.7-py3-none-any.whl (66 kB) Using cached markdown_it_py-3.0.0-py3-none-any.whl (87 kB) Using cached MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB) Downloading pytz-2024.1-py2.py3-none-any.whl (505 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 505.5/505.5 kB 14.1 kB/s eta 0:00:00 Using cached six-1.16.0-py2.py3-none-any.whl (11 kB) Using cached urllib3-2.2.2-py3-none-any.whl (121 kB) Using cached mdurl-0.1.2-py3-none-any.whl (10.0 kB) Using cached sniffio-1.3.1-py3-none-any.whl (10 kB) Building wheels for collected packages: pelican Building editable for pelican (pyproject.toml) ... done Created wheel for pelican: filename=pelican-4.9.1-py3-none-any.whl size=15427 sha256=d2c7542f68d91152b018579b4793736db9aa1e29b9456318aa5aa60608a618e5 Stored in directory: /tmp/pip-ephem-wheel-cache-wnnskz4b/wheels/f4/74/f2/21d5b2163cca3f599480db460537b9f4b0c80cfc2728e9ac32 Successfully built pelican Installing collected packages: snowballstemmer, smartypants, pytz, urllib3, unidecode, typogrify, tornado, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, soupsieve, sniffio, six, pyparsing, Pygments, psutil, pluggy, pillow, packaging, ordered-set, numpy, mdurl, MarkupSafe, Markdown, lxml, kiwisolver, iniconfig, imagesize, idna, fonttools, feedgenerator, execnet, docutils, cycler, coverage, charset-normalizer, certifi, blinker, babel, alabaster, requests, python-dateutil, pytest, markdown-it-py, livereload, jinja2, contourpy, BeautifulSoup4, anyio, watchfiles, sphinx, rich, pytest-xdist, pytest-cov, matplotlib, sphinxext-opengraph, sphinx-basic-ng, pelican, furo Successfully installed BeautifulSoup4-4.12.3 Markdown-3.5.1 MarkupSafe-2.1.5 Pygments-2.16.1 alabaster-0.7.16 anyio-4.4.0 babel-2.15.0 blinker-1.8.2 certifi-2024.7.4 charset-normalizer-3.3.2 contourpy-1.2.1 coverage-7.6.0 cycler-0.12.1 docutils-0.21.2 execnet-2.1.1 feedgenerator-2.1.0 fonttools-4.53.1 furo-2023.9.10 idna-3.7 imagesize-1.4.1 iniconfig-2.0.0 jinja2-3.1.4 kiwisolver-1.4.5 livereload-2.7.0 lxml-5.2.2 markdown-it-py-3.0.0 matplotlib-3.9.1 mdurl-0.1.2 numpy-2.0.1 ordered-set-4.1.0 packaging-24.1 pelican-4.9.1 pillow-10.4.0 pluggy-1.5.0 psutil-6.0.0 pyparsing-3.1.2 pytest-8.3.2 pytest-cov-5.0.0 pytest-xdist-3.6.1 python-dateutil-2.9.0.post0 pytz-2024.1 requests-2.32.3 rich-13.7.1 six-1.16.0 smartypants-2.0.1 sniffio-1.3.1 snowballstemmer-2.2.0 soupsieve-2.5 sphinx-7.3.7 sphinx-basic-ng-1.0.0b2 sphinxcontrib-applehelp-2.0.0 sphinxcontrib-devhelp-2.0.0 sphinxcontrib-htmlhelp-2.1.0 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-2.0.0 sphinxcontrib-serializinghtml-2.0.0 sphinxext-opengraph-0.9.1 tornado-6.4.1 typogrify-2.0.7 unidecode-1.3.8 urllib3-2.2.2 watchfiles-0.22.0 ```

Seems to pass everything via invoke tests except for that lone XML thingie.

Click here to expand `pytest` console output ```console $ invoke tests ======================================================== test session starts ======================================================== platform linux -- Python 3.11.2, pytest-8.3.2, pluggy-1.5.0 rootdir: /home/wolfe/admin/websites/egbert.net/Pelican/main/pelican configfile: tox.ini plugins: cov-5.0.0, xdist-3.6.1, anyio-4.4.0 6 workers [295 items] ..sss...........s....s.....s................................................................................................. [ 42%] ............................................................................................................................. [ 84%] .............................F............... [100%] ============================================================= FAILURES ============================================================== ____________________________________________ TestWordpressXmlImporter.test_code_in_list _____________________________________________ [gw3] linux -- Python 3.11.2 /home/wolfe/virtualenvs/pelican-main/bin/python self = def test_code_in_list(self): def r(f): with open(f, encoding="utf-8") as infile: return infile.read() silent_f2p = mute(True)(fields2pelican) test_post = filter(lambda p: p[0].startswith("Code in List"), self.posts) with temporary_folder() as temp: md = next(r(f) for f in silent_f2p(test_post, "markdown", temp)) > sample_line = re.search(r"- This is a code sample", md).group(0) E AttributeError: 'NoneType' object has no attribute 'group' pelican/tests/test_importer.py:366: AttributeError ====================================================== short test summary info ====================================================== SKIPPED [1] pelican/tests/build_test/test_build_files.py:9: Only run when --check-build is given SKIPPED [5] pelican/tests/build_test/test_build_files.py:35: Only run when --check-build is given FAILED pelican/tests/test_importer.py::TestWordpressXmlImporter::test_code_in_list - AttributeError: 'NoneType' object has no attribute 'group' ============================================= 1 failed, 288 passed, 6 skipped in 3.41s ============================================== (pelican-main-pristine) ```