Unidata / MetPy

MetPy is a collection of tools in Python for reading, visualizing and performing calculations with weather data.

Home Page:https://unidata.github.io/MetPy/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Extension error building docs

sgdecker opened this issue · comments

What went wrong?

I created a newly up-to-date devel environment this morning, but make clean html fails.

Operating System

Linux

Version

1.5.1.post377+g0fe89d5667

Python Version

3.12.0

Code to Reproduce

# BASH commands
create -n devel
conda activate devel
conda config --env --add channels conda-forge --add channels conda-forge/label/testing
conda install --file ci/requirements.txt --file ci/extra_requirements.txt --file ci/test_requirements.txt
pip install -e .
conda install --file ci/doc_requirements.txt
cd docs
make clean html

Errors, Traceback, and Logs

embedding documentation hyperlinks...

Extension error (sphinx_gallery.docs_resolv):
Handler <function embed_code_links at 0x7fcad89b32e0> for event 'build-finished' threw an exception (exception: Expecting property name enclosed in double quotes: line 1 column 2 (char 1))
make: *** [html] Error 2

Related issue here?

I just executed those steps locally (macOS arm64) and everything runs fine. Can you try to recreate the environment again and see if the issue persists? We've had both conda-based builds (Windows and MacOS) and Linux pip-based builds succeed in CI this morning as well.

If it fails again, can you include the output of: conda list -n devel --export?

It would also be good to attach log.txt from: make SPHINXOPTS=-vv clean html &> log.txt

One thing I failed to do earlier was update conda itself. I did that this time, but unfortunately, the error persists.

Here is the conda list output:

# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: linux-64
_libgcc_mutex=0.1=conda_forge
_openmp_mutex=4.5=2_gnu
accessible-pygments=0.0.4=pyhd8ed1ab_0
alabaster=0.7.13=pyhd8ed1ab_0
alsa-lib=1.2.10=hd590300_0
attr=2.5.1=h166bdaf_1
attrs=23.1.0=pyh71513ae_1
aws-c-auth=0.7.8=h538f98c_2
aws-c-cal=0.6.9=h5d48c4d_2
aws-c-common=0.9.10=hd590300_0
aws-c-compression=0.2.17=h7f92143_7
aws-c-event-stream=0.3.2=h0bcb0bb_8
aws-c-http=0.7.14=hd268abd_3
aws-c-io=0.13.36=he0cd244_2
aws-c-mqtt=0.9.10=h35285c7_2
aws-c-s3=0.4.4=h0448019_0
aws-c-sdkutils=0.1.13=h7f92143_0
aws-checksums=0.1.17=h7f92143_6
aws-crt-cpp=0.24.11=h5bdc202_2
aws-sdk-cpp=1.11.210=h967ea9e_4
babel=2.14.0=pyhd8ed1ab_0
beautifulsoup4=4.12.2=pyha770c72_0
blosc=1.21.5=h0f2a231_0
bokeh=3.3.2=pyhd8ed1ab_0
branca=0.7.0=pyhd8ed1ab_1
brotli=1.1.0=hd590300_1
brotli-bin=1.1.0=hd590300_1
brotli-python=1.1.0=py312h30efb56_1
bzip2=1.0.8=hd590300_5
c-ares=1.23.0=hd590300_0
ca-certificates=2023.11.17=hbcca054_0
cairo=1.18.0=h3faef2a_0
cartopy=0.22.0=py312hfb8ada1_1
certifi=2023.11.17=pyhd8ed1ab_0
cfitsio=4.3.1=hbdc6101_0
cftime=1.6.3=py312hc7c0aa3_0
charset-normalizer=3.3.2=pyhd8ed1ab_0
click=8.1.7=unix_pyh707e725_0
click-plugins=1.1.1=py_0
cligj=0.7.2=pyhd8ed1ab_1
cloudpickle=3.0.0=pyhd8ed1ab_0
colorama=0.4.6=pyhd8ed1ab_0
contourpy=1.2.0=py312h8572e83_0
coverage=7.3.2=py312h98912ed_0
cycler=0.12.1=pyhd8ed1ab_0
cytoolz=0.12.2=py312h98912ed_1
dask=2023.12.0=pyhd8ed1ab_0
dask-core=2023.12.0=pyhd8ed1ab_0
dbus=1.13.6=h5008d03_3
distributed=2023.12.0=pyhd8ed1ab_0
docutils=0.20.1=py312h7900ff3_3
exceptiongroup=1.2.0=pyhd8ed1ab_0
expat=2.5.0=hcb278e6_1
fiona=1.9.5=py312h66d9856_2
folium=0.15.1=pyhd8ed1ab_0
font-ttf-dejavu-sans-mono=2.37=hab24e00_0
font-ttf-inconsolata=3.000=h77eed37_0
font-ttf-source-code-pro=2.038=h77eed37_0
font-ttf-ubuntu=0.83=h77eed37_1
fontconfig=2.14.2=h14ed4e7_0
fonts-conda-ecosystem=1=0
fonts-conda-forge=1=0
fonttools=4.46.0=py312h98912ed_0
freetype=2.12.1=h267a509_2
freexl=2.0.0=h743c826_0
fsspec=2023.12.2=pyhca7485f_0
gdal=3.8.1=py312ha82c271_4
geopandas=0.14.1=pyhd8ed1ab_0
geopandas-base=0.14.1=pyha770c72_0
geos=3.12.1=h59595ed_0
geotiff=1.7.1=h6b2125f_15
gettext=0.21.1=h27087fc_0
gflags=2.2.2=he1b5a44_1004
giflib=5.2.1=h0b41bf4_3
glib=2.78.3=hfc55251_0
glib-tools=2.78.3=hfc55251_0
glog=0.6.0=h6f12383_0
graphite2=1.3.13=h58526e2_1001
gst-plugins-base=1.22.7=h8e1006c_1
gstreamer=1.22.7=h98fc4e7_1
harfbuzz=8.3.0=h3d44ed6_0
hdf4=4.2.15=h2a13503_7
hdf5=1.14.3=nompi_h4f84152_100
icu=73.2=h59595ed_0
idna=3.6=pyhd8ed1ab_0
imagesize=1.4.1=pyhd8ed1ab_0
importlib-metadata=7.0.0=pyha770c72_0
importlib_metadata=7.0.0=hd8ed1ab_0
importlib_resources=6.1.1=pyhd8ed1ab_0
iniconfig=2.0.0=pyhd8ed1ab_0
jinja2=3.1.2=pyhd8ed1ab_1
joblib=1.3.2=pyhd8ed1ab_0
json-c=0.17=h7ab15ed_0
kealib=1.5.2=hcd42e92_1
keyutils=1.6.1=h166bdaf_0
kiwisolver=1.4.5=py312h8572e83_1
krb5=1.21.2=h659d440_0
lame=3.100=h166bdaf_1003
lcms2=2.16=hb7c19ff_0
ld_impl_linux-64=2.40=h41732ed_0
lerc=4.0.0=h27087fc_0
libabseil=20230802.1=cxx17_h59595ed_0
libaec=1.1.2=h59595ed_1
libarchive=3.7.2=h2aa1ff5_1
libarrow=14.0.1=h0f82fcc_9_cpu
libarrow-acero=14.0.1=h59595ed_9_cpu
libarrow-dataset=14.0.1=h59595ed_9_cpu
libarrow-flight=14.0.1=h120cb0d_9_cpu
libarrow-flight-sql=14.0.1=h61ff412_9_cpu
libarrow-gandiva=14.0.1=hacb8726_9_cpu
libarrow-substrait=14.0.1=h61ff412_9_cpu
libblas=3.9.0=20_linux64_openblas
libboost-headers=1.83.0=ha770c72_0
libbrotlicommon=1.1.0=hd590300_1
libbrotlidec=1.1.0=hd590300_1
libbrotlienc=1.1.0=hd590300_1
libcap=2.69=h0f662aa_0
libcblas=3.9.0=20_linux64_openblas
libclang=15.0.7=default_hb11cfb5_4
libclang13=15.0.7=default_ha2b6cf4_4
libcrc32c=1.1.2=h9c3ff4c_0
libcups=2.3.3=h4637d8d_4
libcurl=8.5.0=hca28451_0
libdeflate=1.19=hd590300_0
libedit=3.1.20191231=he28a2e2_2
libev=4.33=hd590300_2
libevent=2.1.12=hf998b51_1
libexpat=2.5.0=hcb278e6_1
libffi=3.4.2=h7f98852_5
libflac=1.4.3=h59595ed_0
libgcc-ng=13.2.0=h807b86a_3
libgcrypt=1.10.3=hd590300_0
libgdal=3.8.1=hed8bd54_4
libgfortran-ng=13.2.0=h69a702a_3
libgfortran5=13.2.0=ha4646dd_3
libglib=2.78.3=h783c2da_0
libgomp=13.2.0=h807b86a_3
libgoogle-cloud=2.12.0=h5206363_4
libgpg-error=1.47=h71f35ed_0
libgrpc=1.59.3=hd6c4280_0
libiconv=1.17=hd590300_1
libjpeg-turbo=3.0.0=hd590300_1
libkml=1.3.0=h01aab08_1018
liblapack=3.9.0=20_linux64_openblas
libllvm15=15.0.7=hb3ce162_4
libnetcdf=4.9.2=nompi_h9612171_113
libnghttp2=1.58.0=h47da74e_1
libnsl=2.0.1=hd590300_0
libnuma=2.0.16=h0b41bf4_1
libogg=1.3.4=h7f98852_1
libopenblas=0.3.25=pthreads_h413a1c8_0
libopus=1.3.1=h7f98852_1
libparquet=14.0.1=h352af49_9_cpu
libpng=1.6.39=h753d276_0
libpq=16.1=h33b98f1_7
libprotobuf=4.24.4=hf27288f_0
libre2-11=2023.06.02=h7a70373_0
librttopo=1.1.0=h8917695_15
libsndfile=1.2.2=hc60ed4a_1
libspatialindex=1.9.3=h9c3ff4c_4
libspatialite=5.1.0=h7bd4643_4
libsqlite=3.44.2=h2797004_0
libssh2=1.11.0=h0841786_0
libstdcxx-ng=13.2.0=h7e041cc_3
libsystemd0=255=h3516f8a_0
libthrift=0.19.0=hb90f79a_1
libtiff=4.6.0=ha9c0a0a_2
libutf8proc=2.8.0=h166bdaf_0
libuuid=2.38.1=h0b41bf4_0
libvorbis=1.3.7=h9c3ff4c_0
libwebp-base=1.3.2=hd590300_0
libxcb=1.15=h0b41bf4_0
libxkbcommon=1.6.0=hd429924_1
libxml2=2.12.3=h232c23b_0
libzip=1.10.1=h2629f0a_3
libzlib=1.2.13=hd590300_5
locket=1.0.0=pyhd8ed1ab_0
lz4=4.3.2=py312h03f37cb_1
lz4-c=1.9.4=hcb278e6_0
lzo=2.10=h516909a_1000
mapclassify=2.6.1=pyhd8ed1ab_0
markdown-it-py=3.0.0=pyhd8ed1ab_0
markupsafe=2.1.3=py312h98912ed_1
matplotlib=3.8.2=py312h5ff6afa_200
matplotlib-base=3.8.2=py312h0e6d468_200
mdit-py-plugins=0.4.0=pyhd8ed1ab_0
mdurl=0.1.0=pyhd8ed1ab_0
metpy=1.5.1.post379+g5abc85340f=pypi_0
minizip=4.0.3=h0ab5242_0
mpg123=1.32.3=h59595ed_0
msgpack-python=1.0.7=py312h8572e83_0
munkres=1.1.4=pyh9f0ad1d_0
mysql-common=8.0.33=hf1915f5_6
mysql-libs=8.0.33=hca2cd23_6
myst-parser=2.0.0=pyhd8ed1ab_0
ncurses=6.4=h59595ed_2
netcdf4=1.6.5=nompi_py312h26027e0_100
networkx=3.2.1=pyhd8ed1ab_0
nspr=4.35=h27087fc_0
nss=3.95=h1d7d5a4_0
numpy=1.26.2=py312heda63a1_0
openjpeg=2.5.0=h488ebb8_3
openssl=3.2.0=hd590300_1
orc=1.9.2=h4b38347_0
packaging=23.2=pyhd8ed1ab_0
pandas=2.1.4=py312hfb8ada1_0
partd=1.4.1=pyhd8ed1ab_0
pcre2=10.42=hcad00b1_0
pillow=10.1.0=py312hf3581a9_0
pint=0.23=pyhd8ed1ab_0
pip=23.3.1=pyhd8ed1ab_0
pixman=0.42.2=h59595ed_0
platformdirs=4.1.0=pyhd8ed1ab_0
pluggy=1.3.0=pyhd8ed1ab_0
ply=3.11=py_1
pooch=1.8.0=pyhd8ed1ab_0
poppler=23.12.0=h590f24d_0
poppler-data=0.4.12=hd8ed1ab_0
postgresql=16.1=h7387d8b_7
proj=9.3.1=h1d62c97_0
psutil=5.9.5=py312h98912ed_1
pthread-stubs=0.4=h36c2ea0_1001
pulseaudio-client=16.1=hb77b528_5
pyarrow=14.0.1=py312h176e3d2_9_cpu
pyarrow-hotfix=0.6=pyhd8ed1ab_0
pydata-sphinx-theme=0.14.4=pyhd8ed1ab_0
pygments=2.17.2=pyhd8ed1ab_0
pyparsing=3.1.1=pyhd8ed1ab_0
pyproj=3.6.1=py312h38f1c37_5
pyqt=5.15.9=py312h949fe66_5
pyqt5-sip=12.12.2=py312h30efb56_5
pyshp=2.3.1=pyhd8ed1ab_0
pysocks=1.7.1=pyha2e5f31_6
pytest=7.4.3=pyhd8ed1ab_0
pytest-mpl=0.16.1=pyhd8ed1ab_0
python=3.12.0=hab00c5b_0_cpython
python-dateutil=2.8.2=pyhd8ed1ab_0
python-tzdata=2023.3=pyhd8ed1ab_0
python_abi=3.12=4_cp312
pytz=2023.3.post1=pyhd8ed1ab_0
pyyaml=6.0.1=py312h98912ed_1
qt-main=5.15.8=h450f30e_18
rdma-core=49.0=hd3aeb46_1
re2=2023.06.02=h2873b5e_0
readline=8.2=h8228510_1
requests=2.31.0=pyhd8ed1ab_0
rtree=1.1.0=py312hb0aae1a_0
s2n=1.4.0=h06160fa_0
scikit-learn=1.3.2=py312h394d371_2
scipy=1.11.4=py312heda63a1_0
setuptools=68.2.2=pyhd8ed1ab_0
shapely=2.0.2=py312h9e6bd2c_1
sip=6.7.12=py312h30efb56_0
six=1.16.0=pyh6c4a22f_0
snappy=1.1.10=h9fff704_0
snowballstemmer=2.2.0=pyhd8ed1ab_0
sortedcontainers=2.4.0=pyhd8ed1ab_0
soupsieve=2.5=pyhd8ed1ab_1
sphinx=7.2.6=pyhd8ed1ab_0
sphinx-design=0.5.0=pyhd8ed1ab_0
sphinx-gallery=0.15.0=pyhd8ed1ab_0
sphinxcontrib-applehelp=1.0.7=pyhd8ed1ab_0
sphinxcontrib-devhelp=1.0.5=pyhd8ed1ab_0
sphinxcontrib-htmlhelp=2.0.4=pyhd8ed1ab_0
sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_0
sphinxcontrib-qthelp=1.0.6=pyhd8ed1ab_0
sphinxcontrib-serializinghtml=1.1.9=pyhd8ed1ab_0
sqlite=3.44.2=h2c6b66d_0
tblib=3.0.0=pyhd8ed1ab_0
threadpoolctl=3.2.0=pyha21a80b_0
tiledb=2.18.3=hc1131af_0
tk=8.6.13=noxft_h4845f30_101
toml=0.10.2=pyhd8ed1ab_0
tomli=2.0.1=pyhd8ed1ab_0
toolz=0.12.0=pyhd8ed1ab_0
tornado=6.3.3=py312h98912ed_1
traitlets=5.14.0=pyhd8ed1ab_0
typing-extensions=4.9.0=hd8ed1ab_0
typing_extensions=4.9.0=pyha770c72_0
tzcode=2023c=h0b41bf4_0
tzdata=2023c=h71feb2d_0
ucx=1.15.0=h75e419f_2
uriparser=0.9.7=hcb278e6_1
urllib3=2.1.0=pyhd8ed1ab_0
wheel=0.42.0=pyhd8ed1ab_0
xarray=2023.12.0=pyhd8ed1ab_0
xcb-util=0.4.0=hd590300_1
xcb-util-image=0.4.0=h8ee46fc_1
xcb-util-keysyms=0.4.0=h8ee46fc_1
xcb-util-renderutil=0.3.9=hd590300_1
xcb-util-wm=0.4.1=h8ee46fc_1
xerces-c=3.2.4=hac6953d_3
xkeyboard-config=2.40=hd590300_0
xorg-kbproto=1.0.7=h7f98852_1002
xorg-libice=1.1.1=hd590300_0
xorg-libsm=1.2.4=h7391055_0
xorg-libx11=1.8.7=h8ee46fc_0
xorg-libxau=1.0.11=hd590300_0
xorg-libxdmcp=1.1.3=h7f98852_0
xorg-libxext=1.3.4=h0b41bf4_2
xorg-libxrender=0.9.11=hd590300_0
xorg-renderproto=0.11.1=h7f98852_1002
xorg-xextproto=7.3.0=h0b41bf4_1003
xorg-xf86vidmodeproto=2.3.1=h7f98852_1002
xorg-xproto=7.0.31=h7f98852_1007
xyzservices=2023.10.1=pyhd8ed1ab_0
xz=5.2.6=h166bdaf_0
yaml=0.2.5=h7f98852_2
zict=3.0.0=pyhd8ed1ab_0
zipp=3.17.0=pyhd8ed1ab_0
zlib=1.2.13=hd590300_5
zstd=1.5.5=hfc55251_0

I have attached the requested log as well.
log.txt

While I poke at this, can you try instead running:

make cleanall html

?

Yes, the cleanall bit worked! And I followed that up with make clean html for good measure, and that is fine now as well. A small PR is on the way to add this tip to the documentation.

Just a note, the cleanall here is just blowing away more stuff. The root cause is that you has some bad .js file lurking in your gallery build.