ipython / ipython/ipyparallel

Client.result_status(..., status_only=False) fails in _extract_metadata with TypeError: 'NoneType' object is not subscriptable

Đang mở
#937 4 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Jupyter Notebook
Star
2.6k
Fork
1k
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

Hello ipyparallel devs, thanks for sharing and maintaining your package and for reading this issue. I'm getting a failure calling `Client.result_status(..., status_only=False)` with this traceback:
```
File "C:\jjr8\DenMod\Code\Python\DenMod2\src\DenMod\Parallel\IPyParallel.py", line 428, in _GetResultsAndLogFiles
rs = self._Client.result_status(asyncResult.msg_ids, status_only=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\jjr8\AppData\Local\ESRI\conda\envs\arcgispro-py3-denmod\Lib\site-packages\ipyparallel\client\client.py", line 2271, in result_status
md.update(self._extract_metadata(md_msg))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\jjr8\AppData\Local\ESRI\conda\envs\arcgispro-py3-denmod\Lib\site-packages\ipyparallel\client\client.py", line 817, in _extract_metadata
'msg_id': parent['msg_id'],
~~~~~~^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
```
I'm running ipyparallel 9.0.0 on Windows Server 2019 under Anaconda Python 3.11.10. The output of `conda list` appears further below. This repros 100% in my application but, apologies, I have not constructed a toy example yet that will repro it for you. I can probably do that if really necessary. The lead-up to this failure is roughly this:
```python
# Start the cluster.

self._Cluster = ipyparallel.Cluster(engine_timeout=20, log_level=logLevel, n=47, profile_dir=self._ProfileDir)
##### Wait for engines to start (code not shown).

# Create a load balanced view.

self._Client = self._Cluster.connect_client_sync()
self._Client[:].use_cloudpickle()
self._LoadBalancedView = self._Client.load_balanced_view()

# Start 990 tasks and wait for completion.

asyncResult = self._LoadBalancedView.map(self._Execute, tasks)
while not self._Client.wait(timeout=0.25):
pass
completed = asyncResult.progress
assert completed == len(tasks)

# Get status. The failure occurs here.

rs = self._Client.result_status(asyncResult.msg_ids, status_only=False)
```
The underlying problem appears to be that when `result_status` sends `result_request`, it doesn't get back complete records for all the `msg_ids`. To investigate this, I added some print statements around line 2250 of client.py:
```python
if status_only:
return content

print('=========================================================================')
print(content)
print('=========================================================================')

failures = []
# load cached results into result:
content.update(local_results)
```
The resulting `content` dict looks like this (some light manual formatting applied):
```python
{'status': 'ok',
'pending': [],
'completed': ['6d4d7fcf-0c217157edabb8a1e43e3e12_9012_100', '6d4d7fcf-0c217157edabb8a1e43e3e12_9012_1000', ...],
'6d4d7fcf-0c217157edabb8a1e43e3e12_9012_100': {'header': None, 'metadata': None, 'result_metadata': None, 'result_header': None, 'result_content': None, 'received': None, 'io': {'execute_input': None, 'execute_result': None, 'error': None, 'stdout': '2025-04-06 13:03:24.961 INFO Running on hostname geoduck, process python.exe, PID 35440\n', 'stderr': ''}},
'6d4d7fcf-0c217157edabb8a1e43e3e12_9012_1000': {'header': {'msg_id': '6d4d7fcf-0c217157edabb8a1e43e3e12_9012_1000', 'msg_type': 'apply_request', 'username': 'username', 'session': '6d4d7fcf-0c217157edabb8a1e43e3e12', 'date': '2025-04-06T17:03:00.287682Z', 'version': '5.3'}, 'metadata': {'after': [], 'follow': [], 'timeout': 0.0, 'targets': [], 'retries': 0}, 'result_metadata': {'started': '2025-04-06T17:03:40.368243Z', 'dependencies_met': True, 'engine': '4618f219-96ec25d9df6265feb878eb98', 'is_broadcast': False, 'is_coalescing': False, 'original_msg_id': '', 'status': 'ok'}, 'result_header': {'msg_id': '4618f219-96ec25d9df6265feb878eb98_13060_219', 'msg_type': 'apply_reply', 'username': 'username', 'session': '4618f219-96ec25d9df6265feb878eb98', 'date': '2025-04-06T17:03:41.040159Z', 'version': '5.3'}, 'result_content': {'status': 'ok'}, 'received': '2025-04-06T17:03:41.040159Z', 'io': {'execute_input': None, 'execute_result': None, 'error': None, 'stdout': '2025-04-06 13:03:40.368 INFO Running on hostname geoduck, process python.exe, PID 13060\n2025-04-06 13:03:40.368 INFO Creating the plot.\n2025-04-06 13:03:40.602 INFO Calling matplotlib.pyplot.savefig.\n2025-04-06 13:03:41.024 INFO matplotlib.pyplot.savefig returned without raising an exception.\n2025-04-06 13:03:41.024 INFO Returning "C:\\Users\\jjr8\\AppData\\Local\\Temp\\2\\GeoEcoTemp\\tmp82x7to5x\\Onslow 2010-2011 Left.png".\n2025-04-06 13:03:41.024 INFO Calling fileReturner.ReturnFile("C:\\Users\\jjr8\\AppData\\Local\\Temp\\2\\GeoEcoTemp\\tmp82x7to5x\\Onslow 2010-2011 Left.png")\n2025-04-06 13:03:41.040 INFO Exiting.\n', 'stderr': ''}},
...
}
```
The failure ultimately occurs because the `_100` record has `None` for `'header'`. I don't know what causes this record to be "empty" like this. I can see that `'stdout'` has the first line of output from the executed code but not the rest.

By contrast the `_1000` record that follows has everything filled in and has the full `'stdout'` that I expected to see. I don't know the internal design of ipyparallel so don't really know how to interpret this, but if I were to guess, the execution of the `_100` record hasn't completed yet, while the `_1000` record has. If that interpretation is correct, I would have expected `self._Client.wait` to return `True` at this point. In any case, it is probably not the intended design that `result_status` fail in the way it does, which makes me suspect a bug. But I'm very ready for this to be user error! :-)

Thanks again for reading this issue. Can you shed any light on what is happening here? Thank you very much.

Here is the output from `conda list`:
```
# packages in environment at C:\Users\jjr8\AppData\Local\ESRI\conda\envs\arcgispro-py3-denmod:
#
# Name Version Build Channel
_openmp_mutex 4.5 2_gnu conda-forge
aiohttp 3.9.5 pypi_0 pypi
aiosignal 1.3.1 pypi_0 pypi
annotated-types 0.6.0 py_2 esri
anyio 3.5.0 py311haa95532_0
anywidget 0.9.13 py_1 esri
appdirs 1.4.4 pyhd3eb1b0_0
arcgis 2.4.0 py311_6596 esri
arcgis-mapping 4.30.0 py_305 esri
arcgispro 3.4 0 esri
arcpy 3.4 py311_arcgispro_55347 [arcgispro] esri
arcpy-base 3.4 py311_55347 esri
argon2-cffi 21.3.0 pyhd3eb1b0_0
argon2-cffi-bindings 21.2.0 py311h2bbff1b_0
arrow-cpp 16.1.0 4 esri
asciitree 0.3.3 pypi_0 pypi
asttokens 2.0.5 pyhd3eb1b0_0
async-lru 2.0.4 py_0 esri
attrs 23.1.0 py311haa95532_0
aws-crt-cpp 0.27.4 0 esri
aws-sdk-cpp-base 1.11.386 1 esri
azure-core 1.12.0 py_0 esri
azure-storage-blob 12.8.0 py_0 esri
babel 2.11.0 py311_1 esri
beautifulsoup4 4.12.3 py311haa95532_0
black 23.10.1 py311_2 esri
blas 1.0 mkl
bleach 4.1.0 pyhd3eb1b0_0
blinker 1.6.2 py311haa95532_0
boto3 1.35.73 pypi_0 pypi
botocore 1.35.73 pypi_0 pypi
bottleneck 1.3.7 py311hd7041d2_0
brotli 1.1.0 1 esri
brotli-bin 1.1.0 1 esri
brotli-python 1.0.9 py311hd77b12b_8
bzip2 1.0.8 h2466b09_7 conda-forge
c-ares 1.19.1 0 esri
cachetools 5.3.3 py311haa95532_0
cachier 3.1.2.dev0+7fd5d9b pypi_0 pypi
certifi 2024.8.30 py311haa95532_0
cffi 1.16.0 py311h2bbff1b_1
cftime 1.6.3 py311_0 esri
chardet 4.0.0 py311haa95532_1003
charset-normalizer 3.3.2 pyhd3eb1b0_0
click 8.1.7 py311haa95532_0
cloudpickle 3.0.0 py311haa95532_0
colorama 0.4.6 py311haa95532_0
comm 0.2.2 py_0 esri
contourpy 1.2.0 py311h59b6b97_0
copernicusmarine 1.3.0 pypi_0 pypi
cppzmq 4.9.0 0 esri
cryptography 43.0.1 py311_0 esri
cycler 0.11.0 pyhd3eb1b0_0
cytoolz 0.12.2 py311h2bbff1b_0
dask 2023.3.2 py_0 esri
dask-core 2023.3.2 py_0 esri
debugpy 1.6.7 py311hd77b12b_0
decorator 5.1.1 pyhd3eb1b0_0
defusedxml 0.7.1 pyhd3eb1b0_0
denmod2 2.0.0.dev1 pypi_0 pypi
distributed 2023.3.2 py_0 esri
dnspython 2.7.0 pypi_0 pypi
docutils 0.21.2 pypi_0 pypi
dpcpp-cpp-rt 2022.2.1 arcgispro_19741 [arcgispro] esri
entrypoints 0.4 py311haa95532_0
et_xmlfile 1.1.0 py311haa95532_0
ete3 3.1.3 pypi_0 pypi
exceptiongroup 1.0.0rc9 pyhd8ed1ab_0 esri
executing 0.8.3 pyhd3eb1b0_0
fasteners 0.17.3 pypi_0 pypi
flake8 7.0.0 py311haa95532_0
fonttools 4.51.0 py311h2bbff1b_0
freetype 2.13.2 1 esri
frozenlist 1.5.0 pypi_0 pypi
fsspec 2024.6.1 py311haa95532_0
future 0.18.3 py311_0 esri
gdal 3.9.2 arcgispro_py311_17844 [arcgispro] esri
geomet 1.0.0 py_0 esri
gettext 0.22.5 h5728263_3 conda-forge
gettext-tools 0.22.5 h5a7288d_3 conda-forge
glib 2.82.2 h3d4babf_1 conda-forge
glib-tools 2.82.2 h4394cf3_1 conda-forge
greenlet 3.0.3 pypi_0 pypi
gssapi 1.8.2 pypi_0 pypi
gst-plugins-base 1.22.9 h001b923_1 conda-forge
gstreamer 1.22.9 hb4038d2_1 conda-forge
h11 0.14.0 py311haa95532_0
h5py 3.10.0 arcgispro_py311_0 [arcgispro] esri
httpcore 1.0.2 py311haa95532_0
httpx 0.27.0 py311haa95532_0
icc_rt 2022.2.1 arcgispro_19741 [arcgispro] esri
icu 70.1 h0e60522_0 conda-forge
idna 3.7 py311haa95532_0
importlib-metadata 7.0.1 py311haa95532_0
importlib_metadata 7.0.1 hd3eb1b0_0
importlib_resources 6.4.0 py311haa95532_0
iniconfig 1.1.1 pyhd3eb1b0_0 esri
intel-cmplr-lib-rt 2022.2.1 arcgispro_19741 [arcgispro] esri
intel-fortran-rt 2022.2.1 arcgispro_19741 [arcgispro] esri
intel-openmp 2022.2.1 arcgispro_19741 [arcgispro] esri
ipykernel 6.29.5 pyh5f5efe1_0 esri
ipyparallel 9.0.0 pypi_0 pypi
ipython 8.18.1 pyh3a91677_1 esri
ipython_genutils 0.2.0 pyhd3eb1b0_1
ipywidgets 8.1.5 py_0 esri
isodate 0.6.0 py_0 esri
jdcal 1.4.1 pyhd3eb1b0_0
jedi 0.18.2 py_1 esri
jinja2 3.1.4 py311haa95532_0
jmespath 1.0.1 pypi_0 pypi
jpeg 9e 0 esri
json5 0.9.25 py_0 esri
jsonschema 4.19.2 py311haa95532_0
jsonschema-specifications 2023.7.1 py311haa95532_0
jupyter-lsp 2.2.0 py_0 esri
jupyter_client 8.6.0 py_0 esri
jupyter_console 6.6.3 py_0 esri
jupyter_core 5.5.1 py311_1 esri
jupyter_events 0.10.0 py_0 esri
jupyter_server 2.14.2 py_0 esri
jupyter_server_terminals 0.4.4 py311haa95532_1
jupyterlab 4.2.4 py_0 esri
jupyterlab_pygments 0.3.0 py_1 esri
jupyterlab_server 2.27.3 py_0 esri
jupyterlab_widgets 3.0.13 py_0 esri
keyring 24.3.0 py311_1 esri
kiwisolver 1.4.4 py311hd77b12b_0
krb5 1.20.1 heb0366b_0 conda-forge
libabseil 20230125.3 0 esri
libasprintf 0.22.5 h5728263_3 conda-forge
libasprintf-devel 0.22.5 h5728263_3 conda-forge
libbrotlicommon 1.1.0 1 esri
libbrotlidec 1.1.0 1 esri
libbrotlienc 1.1.0 1 esri
libclang 15.0.7 default_h3a3e6c3_5 conda-forge
libclang13 15.0.7 default_hf64faad_5 conda-forge
libdeflate 1.20 1 esri
libffi 3.4.6 h537db12_0 conda-forge
libgcc 14.2.0 h1383e82_1 conda-forge
libgettextpo 0.22.5 h5728263_3 conda-forge
libgettextpo-devel 0.22.5 h5728263_3 conda-forge
libglib 2.82.2 h7025463_1 conda-forge
libgomp 14.2.0 h1383e82_1 conda-forge
libiconv 1.17 hcfcfb64_2 conda-forge
libintl 0.22.5 h5728263_3 conda-forge
libintl-devel 0.22.5 h5728263_3 conda-forge
libogg 1.3.5 h2466b09_0 conda-forge
libpng 1.6.43 1 esri
libprotobuf 3.21.12 4 esri
libsodium 1.0.18 5 esri
libsqlite 3.48.0 h67fdade_1 conda-forge
libthrift 0.20.0 0 esri
libtiff 4.6.0 4 esri
libutf8proc 2.8.0 0 esri
libvorbis 1.3.7 h0e60522_0 conda-forge
libwinpthread 12.0.0.r4.gg4f2fc60ca h57928b3_9 conda-forge
libxcb 1.17.0 h0e4246c_0 conda-forge
libxml2 2.12.9 arcgispro_0 [arcgispro] esri
libxslt 1.1.42 0 esri
libzlib 1.3.1 h2466b09_2 conda-forge
locket 1.0.0 py311haa95532_0
lxml 5.3.0 py311_0 esri
lz4 4.3.2 py311h2bbff1b_0
lz4-c 1.9.4 1 esri
markupsafe 2.1.3 py311h2bbff1b_0
matplotlib 3.6.3 py311_arcgispro_2 [arcgispro] esri
matplotlib-base 3.6.3 py311_arcgispro_2 [arcgispro] esri
matplotlib-inline 0.1.6 py311haa95532_0
mccabe 0.7.0 pyhd3eb1b0_0
mget3 3.2.0 pypi_0 pypi
mistune 2.0.4 py311haa95532_0
mkl 2022.2.1 arcgispro_19755 [arcgispro] esri
mkl-service 2.4.1 py311_arcgispro_0 [arcgispro] esri
mkl_fft 1.3.10 py311_arcgispro_0 [arcgispro] esri
mkl_random 1.2.7 py311_arcgispro_0 [arcgispro] esri
mpmath 1.3.0 py311haa95532_0
msgpack-python 1.0.3 py311h59b6b97_0
msrest 0.6.21 py_0 esri
multidict 6.1.0 pypi_0 pypi
mypy_extensions 1.0.0 py311haa95532_0
nbclassic 1.1.0 py_1 esri
nbclient 0.8.0 py_0 esri
nbconvert 7.16.4 py_0 esri
nbformat 5.10.4 py_0 esri
nest-asyncio 1.6.0 py311haa95532_0
netcdf4 1.6.4 py311_arcgispro_4 [arcgispro] esri
networkx 3.3 py311haa95532_0
nlohmann_json 3.11.2 0 esri
nose 1.3.7 pyhd3eb1b0_1008
notebook 7.2.1 py_1 esri
notebook-shim 0.2.4 py_0 esri
numcodecs 0.14.1 pypi_0 pypi
numexpr 2.8.4 py311_2 esri
numpy 1.24.3 py311_1 esri
numpy-base 1.24.3 py311_1 esri
oauthlib 3.2.2 py_0 esri
olefile 0.46 pyhd3eb1b0_0
openpyxl 3.1.2 py311h2bbff1b_0
openssl 3.0.15 1 esri
orc 2.0.0 0 esri
overrides 7.4.0 py311haa95532_0
packaging 24.1 py311haa95532_0
pandas 2.0.2 py311_0 esri
pandocfilters 1.5.0 pyhd3eb1b0_0
parso 0.8.3 pyhd3eb1b0_0
partd 1.4.1 py311haa95532_0
pathspec 0.9.0 py_0 esri
patsy 0.5.6 py311haa95532_0
pcre2 10.44 h3d7b363_2 conda-forge
pefile 2022.5.30 pyhd8ed1ab_0 esri
pickleshare 0.7.5 pyhd3eb1b0_1003
pillow 10.4.0 py311_3 esri
pip 23.3.2 py311_0 esri
platformdirs 3.10.0 py311haa95532_0
playwright 1.42.0 pypi_0 pypi
pluggy 1.0.0 py311haa95532_1
ply 3.11 pypi_0 pypi
portalocker 3.0.0 pypi_0 pypi
prettytable 3.12.0 pypi_0 pypi
pro_notebook_integration 3.4 py311_10 esri
prometheus_client 0.20.0 py_0 esri
prompt-toolkit 3.0.47 py_0 esri
prompt_toolkit 3.0.47 0 esri
propcache 0.2.0 pypi_0 pypi
protobuf 4.21.12 py311_5 esri
psutil 5.9.0 py311h2bbff1b_0
psygnal 0.11.0 py_0 esri
pthread-stubs 0.4 h0e40799_1002 conda-forge
pure_eval 0.2.2 pyhd3eb1b0_0
puremagic 1.15 py_0 esri
pyarrow 16.1.0 py311_2 esri
pybind11 2.10.4 2 esri
pybind11_json 0.2.13 2 esri
pycodestyle 2.11.1 py311haa95532_0
pycparser 2.21 pyhd3eb1b0_0
pydantic 2.4.2 py_1 esri
pydantic-core 2.10.1 py311_1 esri
pyee 11.0.1 pypi_0 pypi
pyflakes 3.2.0 py311haa95532_0
pygments 2.18.0 py_0 esri
pyjwt 2.4.0 py_1 esri
pylerc 4.0 py_0 esri
pymongo 4.10.1 pypi_0 pypi
pyodbc 5.0.1 py311hd77b12b_0
pyparsing 3.1.2 py311haa95532_0
pypdf 4.3.1 py_1 esri
pyqt 5.15.9 py311h125bc19_5 conda-forge
pyqt5 5.15.9 pypi_0 pypi
pyqt5-sip 12.12.2 pypi_0 pypi
pyshp 2.3.1 py311haa95532_0
pysocks 1.7.1 py311haa95532_0
pyspnego 0.11.1 py311_0 esri
pystac 1.11.0 pypi_0 pypi
pytest 7.4.3 py311_0 esri
python 3.11.10 0 esri
python-dateutil 2.9.0post0 py311haa95532_2
python-fastjsonschema 2.16.2 py311haa95532_0
python-gssapi 1.8.2 py311hf92330d_2 conda-forge
python-json-logger 2.0.7 py311haa95532_0
python-tzdata 2025.1 pyhd8ed1ab_0 conda-forge
python_abi 3.11 2_cp311 conda-forge
pytz 2022.6 py311_0 esri
pywin32 307 pypi_0 pypi
pywin32-ctypes 0.2.0 py311_1 esri
pywin32-security 306 py311_2 esri
pywinpty 2.0.10 py311h5da7b33_0
pyyaml 6.0.1 py311h2bbff1b_0
pyzmq 25.1.2 py311_0 esri
qt-main 5.15.8 h720456b_6 conda-forge
re2 2023.06.02 0 esri
referencing 0.30.2 py311haa95532_0
regex 2023.10.3 py311h2bbff1b_0
requests 2.31.0 py311haa95532_1
requests-gssapi 1.2.3 py_2 esri
requests-kerberos 0.14.0 pyh424387f_4 esri
requests-oauthlib 2.0.0 py311haa95532_0
requests-toolbelt 1.0.0 py_0 esri
rfc3339-validator 0.1.4 py311haa95532_0
rfc3986-validator 0.1.1 py311haa95532_0
rpds-py 0.10.6 py311h062c2fa_0
ruamel.yaml 0.17.21 py311h2bbff1b_0
s3transfer 0.10.4 pypi_0 pypi
saspy 4.3.2 py_1 esri
scikit-fmm 2025.1.29 pypi_0 pypi
scipy 1.9.3 py311_4 esri
seaborn 0.13.2 py311haa95532_0
semver 3.0.2 pypi_0 pypi
send2trash 1.8.2 py311haa95532_0
setuptools 74.1.2 py311_0 esri
setuptools-scm 8.1.0 pypi_0 pypi
setuptools_scm 8.1.0 hd8ed1ab_1 conda-forge
sip 6.7.12 pypi_0 pypi
six 1.16.0 py_0 esri
snappy 1.2.1 0 esri
sniffio 1.3.0 py311haa95532_0
sortedcontainers 2.4.0 pyhd3eb1b0_0
soupsieve 2.5 py311haa95532_0
sqlalchemy 2.0.32 py311_0 esri
sqlite 3.46.1 0 esri
sspilib 0.1.0 py311_0 esri
stack_data 0.5.1 py_0 esri
statsmodels 0.14.0 py311hd7041d2_0
swat 1.13.3 py311_1 esri
sympy 1.12 py311_0 esri
tblib 1.7.0 pyhd3eb1b0_0
terminado 0.17.1 py311haa95532_0
testpath 0.5.0 py_0 esri
tinycss2 1.1.1 py_0 esri
toml 0.10.2 pyhd3eb1b0_0
tomli 2.0.1 py311haa95532_0
toolz 0.12.0 py311haa95532_0
tornado 6.3.3 py311h2bbff1b_0
tqdm 4.66.5 py311h746a85d_0
traitlets 5.14.3 py311haa95532_0
truststore 0.9.1 py_0 esri
typing-extensions 4.11.0 py311haa95532_0
typing_extensions 4.11.0 py311haa95532_0
tzdata 2025.1 pypi_0 pypi
tzlocal 5.3 pypi_0 pypi
ucrt 10.0.22621.0 h57928b3_1 conda-forge
ujson 5.4.0 py311hd77b12b_0
unicodedata2 15.1.0 py311h2bbff1b_0
urllib3 2.2.2 py311haa95532_0
vc 14.2 h21ff451_1
vc14_runtime 14.42.34433 he29a5d6_23 conda-forge
vs2015_runtime 14.42.34433 hdffcdeb_23 conda-forge
watchdog 6.0.0 pypi_0 pypi
watchfiles 0.21.0 py311h062c2fa_0
wcwidth 0.2.5 pyhd3eb1b0_0
webencodings 0.5.1 py311haa95532_1
websocket-client 1.8.0 py311haa95532_0
wheel 0.44.0 py311haa95532_0
widgetsnbextension 4.0.13 py_0 esri
win_inet_pton 1.1.0 py311_1 esri
winkerberos 0.9.1 py311_0 esri
winpty 0.4.3 4
wrapt 1.14.1 py311h2bbff1b_0
xarray 2023.6.0 py311haa95532_0
xeus 3.0.5 0 esri
xeus-python 0.15.8 py311_2 esri
xeus-python-shell 0.6.3 1 esri
xeus-python-shell-raw 0.6.3 py_1 esri
xeus-zmq 1.0.2 3 esri
xlrd 2.0.1 pyhd3eb1b0_1
xlwt 1.3.0 py311haa95532_0
xorg-libice 1.1.2 h0e40799_0 conda-forge
xorg-libsm 1.2.5 h0e40799_0 conda-forge
xorg-libx11 1.8.11 hf48077a_0 conda-forge
xorg-libxau 1.0.12 h0e40799_0 conda-forge
xorg-libxdmcp 1.1.5 h0e40799_0 conda-forge
xorg-libxext 1.3.6 h0e40799_0 conda-forge
xorg-libxrender 0.9.12 h0e40799_0 conda-forge
xorg-xextproto 7.3.0 h0e40799_1004 conda-forge
xtl 0.7.5 0 esri
xz 5.4.7 0 esri
yaml 0.2.5 0 esri
yarl 1.18.0 pypi_0 pypi
zarr 2.18.3 pypi_0 pypi
zeromq 4.3.5 0 esri
zict 3.0.0 py_0 esri
zipp 3.17.0 py311haa95532_0
zlib 1.3.1 h2466b09_2 conda-forge
zlib-ng 2.1.6 2 esri
zstd 1.5.6 1 esri
```

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.