Skip to content

Instantly share code, notes, and snippets.

@huonw
Last active April 2, 2023 01:48
Show Gist options
  • Save huonw/adbd1d685f595d10780e5f878a5245cd to your computer and use it in GitHub Desktop.
Save huonw/adbd1d685f595d10780e5f878a5245cd to your computer and use it in GitHub Desktop.
set -x
# Build two PEX files, for different platforms
pex --layout=packed --include-tools --complete-platform=macos-platform.json pydantic -o macos.pex
pex --layout=packed --include-tools --complete-platform=linux-platform.json pydantic -o linux.pex
PEX_TOOLS=1 python ./macos.pex repository info
# when running on arm64 macOS, this gives useful output:
#> pydantic 1.10.7 /Users/huon/.pex/installed_wheels/976cae77ba6a49ad80f461fd8bba183ff7ba79f44aa5cfa82f1346b5626542f8e/pydantic-1.10.7-cp39-cp39-macosx_11_0_arm64.whl
#> typing_extensions 4.5.0 /Users/huon/.pex/installed_wheels/b46af7f121ca528ad7180c389d9ace75b11294dc75989f8d553eb6474bafadd8/typing_extensions-4.5.0-py3-none-any.whl
PEX_TOOLS=1 python ./linux.pex repository info
# when run on Linux, this undestandably just gives error messages:
#> ... A distribution for pydantic could not be resolved for ...
# ('repository extract' and 'venv' are similar)
{
"path": "/var/lang/bin/python3.9",
"compatible_tags": [
"cp39-cp39-manylinux_2_26_x86_64",
"cp39-cp39-manylinux_2_25_x86_64",
"cp39-cp39-manylinux_2_24_x86_64",
"cp39-cp39-manylinux_2_23_x86_64",
"cp39-cp39-manylinux_2_22_x86_64",
"cp39-cp39-manylinux_2_21_x86_64",
"cp39-cp39-manylinux_2_20_x86_64",
"cp39-cp39-manylinux_2_19_x86_64",
"cp39-cp39-manylinux_2_18_x86_64",
"cp39-cp39-manylinux_2_17_x86_64",
"cp39-cp39-manylinux2014_x86_64",
"cp39-cp39-manylinux_2_16_x86_64",
"cp39-cp39-manylinux_2_15_x86_64",
"cp39-cp39-manylinux_2_14_x86_64",
"cp39-cp39-manylinux_2_13_x86_64",
"cp39-cp39-manylinux_2_12_x86_64",
"cp39-cp39-manylinux2010_x86_64",
"cp39-cp39-manylinux_2_11_x86_64",
"cp39-cp39-manylinux_2_10_x86_64",
"cp39-cp39-manylinux_2_9_x86_64",
"cp39-cp39-manylinux_2_8_x86_64",
"cp39-cp39-manylinux_2_7_x86_64",
"cp39-cp39-manylinux_2_6_x86_64",
"cp39-cp39-manylinux_2_5_x86_64",
"cp39-cp39-manylinux1_x86_64",
"cp39-cp39-linux_x86_64",
"cp39-abi3-manylinux_2_26_x86_64",
"cp39-abi3-manylinux_2_25_x86_64",
"cp39-abi3-manylinux_2_24_x86_64",
"cp39-abi3-manylinux_2_23_x86_64",
"cp39-abi3-manylinux_2_22_x86_64",
"cp39-abi3-manylinux_2_21_x86_64",
"cp39-abi3-manylinux_2_20_x86_64",
"cp39-abi3-manylinux_2_19_x86_64",
"cp39-abi3-manylinux_2_18_x86_64",
"cp39-abi3-manylinux_2_17_x86_64",
"cp39-abi3-manylinux2014_x86_64",
"cp39-abi3-manylinux_2_16_x86_64",
"cp39-abi3-manylinux_2_15_x86_64",
"cp39-abi3-manylinux_2_14_x86_64",
"cp39-abi3-manylinux_2_13_x86_64",
"cp39-abi3-manylinux_2_12_x86_64",
"cp39-abi3-manylinux2010_x86_64",
"cp39-abi3-manylinux_2_11_x86_64",
"cp39-abi3-manylinux_2_10_x86_64",
"cp39-abi3-manylinux_2_9_x86_64",
"cp39-abi3-manylinux_2_8_x86_64",
"cp39-abi3-manylinux_2_7_x86_64",
"cp39-abi3-manylinux_2_6_x86_64",
"cp39-abi3-manylinux_2_5_x86_64",
"cp39-abi3-manylinux1_x86_64",
"cp39-abi3-linux_x86_64",
"cp39-none-manylinux_2_26_x86_64",
"cp39-none-manylinux_2_25_x86_64",
"cp39-none-manylinux_2_24_x86_64",
"cp39-none-manylinux_2_23_x86_64",
"cp39-none-manylinux_2_22_x86_64",
"cp39-none-manylinux_2_21_x86_64",
"cp39-none-manylinux_2_20_x86_64",
"cp39-none-manylinux_2_19_x86_64",
"cp39-none-manylinux_2_18_x86_64",
"cp39-none-manylinux_2_17_x86_64",
"cp39-none-manylinux2014_x86_64",
"cp39-none-manylinux_2_16_x86_64",
"cp39-none-manylinux_2_15_x86_64",
"cp39-none-manylinux_2_14_x86_64",
"cp39-none-manylinux_2_13_x86_64",
"cp39-none-manylinux_2_12_x86_64",
"cp39-none-manylinux2010_x86_64",
"cp39-none-manylinux_2_11_x86_64",
"cp39-none-manylinux_2_10_x86_64",
"cp39-none-manylinux_2_9_x86_64",
"cp39-none-manylinux_2_8_x86_64",
"cp39-none-manylinux_2_7_x86_64",
"cp39-none-manylinux_2_6_x86_64",
"cp39-none-manylinux_2_5_x86_64",
"cp39-none-manylinux1_x86_64",
"cp39-none-linux_x86_64",
"cp38-abi3-manylinux_2_26_x86_64",
"cp38-abi3-manylinux_2_25_x86_64",
"cp38-abi3-manylinux_2_24_x86_64",
"cp38-abi3-manylinux_2_23_x86_64",
"cp38-abi3-manylinux_2_22_x86_64",
"cp38-abi3-manylinux_2_21_x86_64",
"cp38-abi3-manylinux_2_20_x86_64",
"cp38-abi3-manylinux_2_19_x86_64",
"cp38-abi3-manylinux_2_18_x86_64",
"cp38-abi3-manylinux_2_17_x86_64",
"cp38-abi3-manylinux2014_x86_64",
"cp38-abi3-manylinux_2_16_x86_64",
"cp38-abi3-manylinux_2_15_x86_64",
"cp38-abi3-manylinux_2_14_x86_64",
"cp38-abi3-manylinux_2_13_x86_64",
"cp38-abi3-manylinux_2_12_x86_64",
"cp38-abi3-manylinux2010_x86_64",
"cp38-abi3-manylinux_2_11_x86_64",
"cp38-abi3-manylinux_2_10_x86_64",
"cp38-abi3-manylinux_2_9_x86_64",
"cp38-abi3-manylinux_2_8_x86_64",
"cp38-abi3-manylinux_2_7_x86_64",
"cp38-abi3-manylinux_2_6_x86_64",
"cp38-abi3-manylinux_2_5_x86_64",
"cp38-abi3-manylinux1_x86_64",
"cp38-abi3-linux_x86_64",
"cp37-abi3-manylinux_2_26_x86_64",
"cp37-abi3-manylinux_2_25_x86_64",
"cp37-abi3-manylinux_2_24_x86_64",
"cp37-abi3-manylinux_2_23_x86_64",
"cp37-abi3-manylinux_2_22_x86_64",
"cp37-abi3-manylinux_2_21_x86_64",
"cp37-abi3-manylinux_2_20_x86_64",
"cp37-abi3-manylinux_2_19_x86_64",
"cp37-abi3-manylinux_2_18_x86_64",
"cp37-abi3-manylinux_2_17_x86_64",
"cp37-abi3-manylinux2014_x86_64",
"cp37-abi3-manylinux_2_16_x86_64",
"cp37-abi3-manylinux_2_15_x86_64",
"cp37-abi3-manylinux_2_14_x86_64",
"cp37-abi3-manylinux_2_13_x86_64",
"cp37-abi3-manylinux_2_12_x86_64",
"cp37-abi3-manylinux2010_x86_64",
"cp37-abi3-manylinux_2_11_x86_64",
"cp37-abi3-manylinux_2_10_x86_64",
"cp37-abi3-manylinux_2_9_x86_64",
"cp37-abi3-manylinux_2_8_x86_64",
"cp37-abi3-manylinux_2_7_x86_64",
"cp37-abi3-manylinux_2_6_x86_64",
"cp37-abi3-manylinux_2_5_x86_64",
"cp37-abi3-manylinux1_x86_64",
"cp37-abi3-linux_x86_64",
"cp36-abi3-manylinux_2_26_x86_64",
"cp36-abi3-manylinux_2_25_x86_64",
"cp36-abi3-manylinux_2_24_x86_64",
"cp36-abi3-manylinux_2_23_x86_64",
"cp36-abi3-manylinux_2_22_x86_64",
"cp36-abi3-manylinux_2_21_x86_64",
"cp36-abi3-manylinux_2_20_x86_64",
"cp36-abi3-manylinux_2_19_x86_64",
"cp36-abi3-manylinux_2_18_x86_64",
"cp36-abi3-manylinux_2_17_x86_64",
"cp36-abi3-manylinux2014_x86_64",
"cp36-abi3-manylinux_2_16_x86_64",
"cp36-abi3-manylinux_2_15_x86_64",
"cp36-abi3-manylinux_2_14_x86_64",
"cp36-abi3-manylinux_2_13_x86_64",
"cp36-abi3-manylinux_2_12_x86_64",
"cp36-abi3-manylinux2010_x86_64",
"cp36-abi3-manylinux_2_11_x86_64",
"cp36-abi3-manylinux_2_10_x86_64",
"cp36-abi3-manylinux_2_9_x86_64",
"cp36-abi3-manylinux_2_8_x86_64",
"cp36-abi3-manylinux_2_7_x86_64",
"cp36-abi3-manylinux_2_6_x86_64",
"cp36-abi3-manylinux_2_5_x86_64",
"cp36-abi3-manylinux1_x86_64",
"cp36-abi3-linux_x86_64",
"cp35-abi3-manylinux_2_26_x86_64",
"cp35-abi3-manylinux_2_25_x86_64",
"cp35-abi3-manylinux_2_24_x86_64",
"cp35-abi3-manylinux_2_23_x86_64",
"cp35-abi3-manylinux_2_22_x86_64",
"cp35-abi3-manylinux_2_21_x86_64",
"cp35-abi3-manylinux_2_20_x86_64",
"cp35-abi3-manylinux_2_19_x86_64",
"cp35-abi3-manylinux_2_18_x86_64",
"cp35-abi3-manylinux_2_17_x86_64",
"cp35-abi3-manylinux2014_x86_64",
"cp35-abi3-manylinux_2_16_x86_64",
"cp35-abi3-manylinux_2_15_x86_64",
"cp35-abi3-manylinux_2_14_x86_64",
"cp35-abi3-manylinux_2_13_x86_64",
"cp35-abi3-manylinux_2_12_x86_64",
"cp35-abi3-manylinux2010_x86_64",
"cp35-abi3-manylinux_2_11_x86_64",
"cp35-abi3-manylinux_2_10_x86_64",
"cp35-abi3-manylinux_2_9_x86_64",
"cp35-abi3-manylinux_2_8_x86_64",
"cp35-abi3-manylinux_2_7_x86_64",
"cp35-abi3-manylinux_2_6_x86_64",
"cp35-abi3-manylinux_2_5_x86_64",
"cp35-abi3-manylinux1_x86_64",
"cp35-abi3-linux_x86_64",
"cp34-abi3-manylinux_2_26_x86_64",
"cp34-abi3-manylinux_2_25_x86_64",
"cp34-abi3-manylinux_2_24_x86_64",
"cp34-abi3-manylinux_2_23_x86_64",
"cp34-abi3-manylinux_2_22_x86_64",
"cp34-abi3-manylinux_2_21_x86_64",
"cp34-abi3-manylinux_2_20_x86_64",
"cp34-abi3-manylinux_2_19_x86_64",
"cp34-abi3-manylinux_2_18_x86_64",
"cp34-abi3-manylinux_2_17_x86_64",
"cp34-abi3-manylinux2014_x86_64",
"cp34-abi3-manylinux_2_16_x86_64",
"cp34-abi3-manylinux_2_15_x86_64",
"cp34-abi3-manylinux_2_14_x86_64",
"cp34-abi3-manylinux_2_13_x86_64",
"cp34-abi3-manylinux_2_12_x86_64",
"cp34-abi3-manylinux2010_x86_64",
"cp34-abi3-manylinux_2_11_x86_64",
"cp34-abi3-manylinux_2_10_x86_64",
"cp34-abi3-manylinux_2_9_x86_64",
"cp34-abi3-manylinux_2_8_x86_64",
"cp34-abi3-manylinux_2_7_x86_64",
"cp34-abi3-manylinux_2_6_x86_64",
"cp34-abi3-manylinux_2_5_x86_64",
"cp34-abi3-manylinux1_x86_64",
"cp34-abi3-linux_x86_64",
"cp33-abi3-manylinux_2_26_x86_64",
"cp33-abi3-manylinux_2_25_x86_64",
"cp33-abi3-manylinux_2_24_x86_64",
"cp33-abi3-manylinux_2_23_x86_64",
"cp33-abi3-manylinux_2_22_x86_64",
"cp33-abi3-manylinux_2_21_x86_64",
"cp33-abi3-manylinux_2_20_x86_64",
"cp33-abi3-manylinux_2_19_x86_64",
"cp33-abi3-manylinux_2_18_x86_64",
"cp33-abi3-manylinux_2_17_x86_64",
"cp33-abi3-manylinux2014_x86_64",
"cp33-abi3-manylinux_2_16_x86_64",
"cp33-abi3-manylinux_2_15_x86_64",
"cp33-abi3-manylinux_2_14_x86_64",
"cp33-abi3-manylinux_2_13_x86_64",
"cp33-abi3-manylinux_2_12_x86_64",
"cp33-abi3-manylinux2010_x86_64",
"cp33-abi3-manylinux_2_11_x86_64",
"cp33-abi3-manylinux_2_10_x86_64",
"cp33-abi3-manylinux_2_9_x86_64",
"cp33-abi3-manylinux_2_8_x86_64",
"cp33-abi3-manylinux_2_7_x86_64",
"cp33-abi3-manylinux_2_6_x86_64",
"cp33-abi3-manylinux_2_5_x86_64",
"cp33-abi3-manylinux1_x86_64",
"cp33-abi3-linux_x86_64",
"cp32-abi3-manylinux_2_26_x86_64",
"cp32-abi3-manylinux_2_25_x86_64",
"cp32-abi3-manylinux_2_24_x86_64",
"cp32-abi3-manylinux_2_23_x86_64",
"cp32-abi3-manylinux_2_22_x86_64",
"cp32-abi3-manylinux_2_21_x86_64",
"cp32-abi3-manylinux_2_20_x86_64",
"cp32-abi3-manylinux_2_19_x86_64",
"cp32-abi3-manylinux_2_18_x86_64",
"cp32-abi3-manylinux_2_17_x86_64",
"cp32-abi3-manylinux2014_x86_64",
"cp32-abi3-manylinux_2_16_x86_64",
"cp32-abi3-manylinux_2_15_x86_64",
"cp32-abi3-manylinux_2_14_x86_64",
"cp32-abi3-manylinux_2_13_x86_64",
"cp32-abi3-manylinux_2_12_x86_64",
"cp32-abi3-manylinux2010_x86_64",
"cp32-abi3-manylinux_2_11_x86_64",
"cp32-abi3-manylinux_2_10_x86_64",
"cp32-abi3-manylinux_2_9_x86_64",
"cp32-abi3-manylinux_2_8_x86_64",
"cp32-abi3-manylinux_2_7_x86_64",
"cp32-abi3-manylinux_2_6_x86_64",
"cp32-abi3-manylinux_2_5_x86_64",
"cp32-abi3-manylinux1_x86_64",
"cp32-abi3-linux_x86_64",
"py39-none-manylinux_2_26_x86_64",
"py39-none-manylinux_2_25_x86_64",
"py39-none-manylinux_2_24_x86_64",
"py39-none-manylinux_2_23_x86_64",
"py39-none-manylinux_2_22_x86_64",
"py39-none-manylinux_2_21_x86_64",
"py39-none-manylinux_2_20_x86_64",
"py39-none-manylinux_2_19_x86_64",
"py39-none-manylinux_2_18_x86_64",
"py39-none-manylinux_2_17_x86_64",
"py39-none-manylinux2014_x86_64",
"py39-none-manylinux_2_16_x86_64",
"py39-none-manylinux_2_15_x86_64",
"py39-none-manylinux_2_14_x86_64",
"py39-none-manylinux_2_13_x86_64",
"py39-none-manylinux_2_12_x86_64",
"py39-none-manylinux2010_x86_64",
"py39-none-manylinux_2_11_x86_64",
"py39-none-manylinux_2_10_x86_64",
"py39-none-manylinux_2_9_x86_64",
"py39-none-manylinux_2_8_x86_64",
"py39-none-manylinux_2_7_x86_64",
"py39-none-manylinux_2_6_x86_64",
"py39-none-manylinux_2_5_x86_64",
"py39-none-manylinux1_x86_64",
"py39-none-linux_x86_64",
"py3-none-manylinux_2_26_x86_64",
"py3-none-manylinux_2_25_x86_64",
"py3-none-manylinux_2_24_x86_64",
"py3-none-manylinux_2_23_x86_64",
"py3-none-manylinux_2_22_x86_64",
"py3-none-manylinux_2_21_x86_64",
"py3-none-manylinux_2_20_x86_64",
"py3-none-manylinux_2_19_x86_64",
"py3-none-manylinux_2_18_x86_64",
"py3-none-manylinux_2_17_x86_64",
"py3-none-manylinux2014_x86_64",
"py3-none-manylinux_2_16_x86_64",
"py3-none-manylinux_2_15_x86_64",
"py3-none-manylinux_2_14_x86_64",
"py3-none-manylinux_2_13_x86_64",
"py3-none-manylinux_2_12_x86_64",
"py3-none-manylinux2010_x86_64",
"py3-none-manylinux_2_11_x86_64",
"py3-none-manylinux_2_10_x86_64",
"py3-none-manylinux_2_9_x86_64",
"py3-none-manylinux_2_8_x86_64",
"py3-none-manylinux_2_7_x86_64",
"py3-none-manylinux_2_6_x86_64",
"py3-none-manylinux_2_5_x86_64",
"py3-none-manylinux1_x86_64",
"py3-none-linux_x86_64",
"py38-none-manylinux_2_26_x86_64",
"py38-none-manylinux_2_25_x86_64",
"py38-none-manylinux_2_24_x86_64",
"py38-none-manylinux_2_23_x86_64",
"py38-none-manylinux_2_22_x86_64",
"py38-none-manylinux_2_21_x86_64",
"py38-none-manylinux_2_20_x86_64",
"py38-none-manylinux_2_19_x86_64",
"py38-none-manylinux_2_18_x86_64",
"py38-none-manylinux_2_17_x86_64",
"py38-none-manylinux2014_x86_64",
"py38-none-manylinux_2_16_x86_64",
"py38-none-manylinux_2_15_x86_64",
"py38-none-manylinux_2_14_x86_64",
"py38-none-manylinux_2_13_x86_64",
"py38-none-manylinux_2_12_x86_64",
"py38-none-manylinux2010_x86_64",
"py38-none-manylinux_2_11_x86_64",
"py38-none-manylinux_2_10_x86_64",
"py38-none-manylinux_2_9_x86_64",
"py38-none-manylinux_2_8_x86_64",
"py38-none-manylinux_2_7_x86_64",
"py38-none-manylinux_2_6_x86_64",
"py38-none-manylinux_2_5_x86_64",
"py38-none-manylinux1_x86_64",
"py38-none-linux_x86_64",
"py37-none-manylinux_2_26_x86_64",
"py37-none-manylinux_2_25_x86_64",
"py37-none-manylinux_2_24_x86_64",
"py37-none-manylinux_2_23_x86_64",
"py37-none-manylinux_2_22_x86_64",
"py37-none-manylinux_2_21_x86_64",
"py37-none-manylinux_2_20_x86_64",
"py37-none-manylinux_2_19_x86_64",
"py37-none-manylinux_2_18_x86_64",
"py37-none-manylinux_2_17_x86_64",
"py37-none-manylinux2014_x86_64",
"py37-none-manylinux_2_16_x86_64",
"py37-none-manylinux_2_15_x86_64",
"py37-none-manylinux_2_14_x86_64",
"py37-none-manylinux_2_13_x86_64",
"py37-none-manylinux_2_12_x86_64",
"py37-none-manylinux2010_x86_64",
"py37-none-manylinux_2_11_x86_64",
"py37-none-manylinux_2_10_x86_64",
"py37-none-manylinux_2_9_x86_64",
"py37-none-manylinux_2_8_x86_64",
"py37-none-manylinux_2_7_x86_64",
"py37-none-manylinux_2_6_x86_64",
"py37-none-manylinux_2_5_x86_64",
"py37-none-manylinux1_x86_64",
"py37-none-linux_x86_64",
"py36-none-manylinux_2_26_x86_64",
"py36-none-manylinux_2_25_x86_64",
"py36-none-manylinux_2_24_x86_64",
"py36-none-manylinux_2_23_x86_64",
"py36-none-manylinux_2_22_x86_64",
"py36-none-manylinux_2_21_x86_64",
"py36-none-manylinux_2_20_x86_64",
"py36-none-manylinux_2_19_x86_64",
"py36-none-manylinux_2_18_x86_64",
"py36-none-manylinux_2_17_x86_64",
"py36-none-manylinux2014_x86_64",
"py36-none-manylinux_2_16_x86_64",
"py36-none-manylinux_2_15_x86_64",
"py36-none-manylinux_2_14_x86_64",
"py36-none-manylinux_2_13_x86_64",
"py36-none-manylinux_2_12_x86_64",
"py36-none-manylinux2010_x86_64",
"py36-none-manylinux_2_11_x86_64",
"py36-none-manylinux_2_10_x86_64",
"py36-none-manylinux_2_9_x86_64",
"py36-none-manylinux_2_8_x86_64",
"py36-none-manylinux_2_7_x86_64",
"py36-none-manylinux_2_6_x86_64",
"py36-none-manylinux_2_5_x86_64",
"py36-none-manylinux1_x86_64",
"py36-none-linux_x86_64",
"py35-none-manylinux_2_26_x86_64",
"py35-none-manylinux_2_25_x86_64",
"py35-none-manylinux_2_24_x86_64",
"py35-none-manylinux_2_23_x86_64",
"py35-none-manylinux_2_22_x86_64",
"py35-none-manylinux_2_21_x86_64",
"py35-none-manylinux_2_20_x86_64",
"py35-none-manylinux_2_19_x86_64",
"py35-none-manylinux_2_18_x86_64",
"py35-none-manylinux_2_17_x86_64",
"py35-none-manylinux2014_x86_64",
"py35-none-manylinux_2_16_x86_64",
"py35-none-manylinux_2_15_x86_64",
"py35-none-manylinux_2_14_x86_64",
"py35-none-manylinux_2_13_x86_64",
"py35-none-manylinux_2_12_x86_64",
"py35-none-manylinux2010_x86_64",
"py35-none-manylinux_2_11_x86_64",
"py35-none-manylinux_2_10_x86_64",
"py35-none-manylinux_2_9_x86_64",
"py35-none-manylinux_2_8_x86_64",
"py35-none-manylinux_2_7_x86_64",
"py35-none-manylinux_2_6_x86_64",
"py35-none-manylinux_2_5_x86_64",
"py35-none-manylinux1_x86_64",
"py35-none-linux_x86_64",
"py34-none-manylinux_2_26_x86_64",
"py34-none-manylinux_2_25_x86_64",
"py34-none-manylinux_2_24_x86_64",
"py34-none-manylinux_2_23_x86_64",
"py34-none-manylinux_2_22_x86_64",
"py34-none-manylinux_2_21_x86_64",
"py34-none-manylinux_2_20_x86_64",
"py34-none-manylinux_2_19_x86_64",
"py34-none-manylinux_2_18_x86_64",
"py34-none-manylinux_2_17_x86_64",
"py34-none-manylinux2014_x86_64",
"py34-none-manylinux_2_16_x86_64",
"py34-none-manylinux_2_15_x86_64",
"py34-none-manylinux_2_14_x86_64",
"py34-none-manylinux_2_13_x86_64",
"py34-none-manylinux_2_12_x86_64",
"py34-none-manylinux2010_x86_64",
"py34-none-manylinux_2_11_x86_64",
"py34-none-manylinux_2_10_x86_64",
"py34-none-manylinux_2_9_x86_64",
"py34-none-manylinux_2_8_x86_64",
"py34-none-manylinux_2_7_x86_64",
"py34-none-manylinux_2_6_x86_64",
"py34-none-manylinux_2_5_x86_64",
"py34-none-manylinux1_x86_64",
"py34-none-linux_x86_64",
"py33-none-manylinux_2_26_x86_64",
"py33-none-manylinux_2_25_x86_64",
"py33-none-manylinux_2_24_x86_64",
"py33-none-manylinux_2_23_x86_64",
"py33-none-manylinux_2_22_x86_64",
"py33-none-manylinux_2_21_x86_64",
"py33-none-manylinux_2_20_x86_64",
"py33-none-manylinux_2_19_x86_64",
"py33-none-manylinux_2_18_x86_64",
"py33-none-manylinux_2_17_x86_64",
"py33-none-manylinux2014_x86_64",
"py33-none-manylinux_2_16_x86_64",
"py33-none-manylinux_2_15_x86_64",
"py33-none-manylinux_2_14_x86_64",
"py33-none-manylinux_2_13_x86_64",
"py33-none-manylinux_2_12_x86_64",
"py33-none-manylinux2010_x86_64",
"py33-none-manylinux_2_11_x86_64",
"py33-none-manylinux_2_10_x86_64",
"py33-none-manylinux_2_9_x86_64",
"py33-none-manylinux_2_8_x86_64",
"py33-none-manylinux_2_7_x86_64",
"py33-none-manylinux_2_6_x86_64",
"py33-none-manylinux_2_5_x86_64",
"py33-none-manylinux1_x86_64",
"py33-none-linux_x86_64",
"py32-none-manylinux_2_26_x86_64",
"py32-none-manylinux_2_25_x86_64",
"py32-none-manylinux_2_24_x86_64",
"py32-none-manylinux_2_23_x86_64",
"py32-none-manylinux_2_22_x86_64",
"py32-none-manylinux_2_21_x86_64",
"py32-none-manylinux_2_20_x86_64",
"py32-none-manylinux_2_19_x86_64",
"py32-none-manylinux_2_18_x86_64",
"py32-none-manylinux_2_17_x86_64",
"py32-none-manylinux2014_x86_64",
"py32-none-manylinux_2_16_x86_64",
"py32-none-manylinux_2_15_x86_64",
"py32-none-manylinux_2_14_x86_64",
"py32-none-manylinux_2_13_x86_64",
"py32-none-manylinux_2_12_x86_64",
"py32-none-manylinux2010_x86_64",
"py32-none-manylinux_2_11_x86_64",
"py32-none-manylinux_2_10_x86_64",
"py32-none-manylinux_2_9_x86_64",
"py32-none-manylinux_2_8_x86_64",
"py32-none-manylinux_2_7_x86_64",
"py32-none-manylinux_2_6_x86_64",
"py32-none-manylinux_2_5_x86_64",
"py32-none-manylinux1_x86_64",
"py32-none-linux_x86_64",
"py31-none-manylinux_2_26_x86_64",
"py31-none-manylinux_2_25_x86_64",
"py31-none-manylinux_2_24_x86_64",
"py31-none-manylinux_2_23_x86_64",
"py31-none-manylinux_2_22_x86_64",
"py31-none-manylinux_2_21_x86_64",
"py31-none-manylinux_2_20_x86_64",
"py31-none-manylinux_2_19_x86_64",
"py31-none-manylinux_2_18_x86_64",
"py31-none-manylinux_2_17_x86_64",
"py31-none-manylinux2014_x86_64",
"py31-none-manylinux_2_16_x86_64",
"py31-none-manylinux_2_15_x86_64",
"py31-none-manylinux_2_14_x86_64",
"py31-none-manylinux_2_13_x86_64",
"py31-none-manylinux_2_12_x86_64",
"py31-none-manylinux2010_x86_64",
"py31-none-manylinux_2_11_x86_64",
"py31-none-manylinux_2_10_x86_64",
"py31-none-manylinux_2_9_x86_64",
"py31-none-manylinux_2_8_x86_64",
"py31-none-manylinux_2_7_x86_64",
"py31-none-manylinux_2_6_x86_64",
"py31-none-manylinux_2_5_x86_64",
"py31-none-manylinux1_x86_64",
"py31-none-linux_x86_64",
"py30-none-manylinux_2_26_x86_64",
"py30-none-manylinux_2_25_x86_64",
"py30-none-manylinux_2_24_x86_64",
"py30-none-manylinux_2_23_x86_64",
"py30-none-manylinux_2_22_x86_64",
"py30-none-manylinux_2_21_x86_64",
"py30-none-manylinux_2_20_x86_64",
"py30-none-manylinux_2_19_x86_64",
"py30-none-manylinux_2_18_x86_64",
"py30-none-manylinux_2_17_x86_64",
"py30-none-manylinux2014_x86_64",
"py30-none-manylinux_2_16_x86_64",
"py30-none-manylinux_2_15_x86_64",
"py30-none-manylinux_2_14_x86_64",
"py30-none-manylinux_2_13_x86_64",
"py30-none-manylinux_2_12_x86_64",
"py30-none-manylinux2010_x86_64",
"py30-none-manylinux_2_11_x86_64",
"py30-none-manylinux_2_10_x86_64",
"py30-none-manylinux_2_9_x86_64",
"py30-none-manylinux_2_8_x86_64",
"py30-none-manylinux_2_7_x86_64",
"py30-none-manylinux_2_6_x86_64",
"py30-none-manylinux_2_5_x86_64",
"py30-none-manylinux1_x86_64",
"py30-none-linux_x86_64",
"py39-none-any",
"py3-none-any",
"py38-none-any",
"py37-none-any",
"py36-none-any",
"py35-none-any",
"py34-none-any",
"py33-none-any",
"py32-none-any",
"py31-none-any",
"py30-none-any"
],
"marker_environment": {
"implementation_name": "cpython",
"implementation_version": "3.9.11",
"os_name": "posix",
"platform_machine": "x86_64",
"platform_python_implementation": "CPython",
"platform_release": "4.14.255-273-220.498.amzn2.x86_64",
"platform_system": "Linux",
"platform_version": "#1 SMP Tue Mar 29 00:40:11 UTC 2022",
"python_full_version": "3.9.11",
"python_version": "3.9",
"sys_platform": "linux"
}
}
{
"path": "/Users/huon/.pyenv/versions/3.9.10/bin/python3.9",
"compatible_tags": [
"cp39-cp39-macosx_12_0_arm64",
"cp39-cp39-macosx_12_0_universal2",
"cp39-cp39-macosx_11_0_arm64",
"cp39-cp39-macosx_11_0_universal2",
"cp39-cp39-macosx_10_16_universal2",
"cp39-cp39-macosx_10_15_universal2",
"cp39-cp39-macosx_10_14_universal2",
"cp39-cp39-macosx_10_13_universal2",
"cp39-cp39-macosx_10_12_universal2",
"cp39-cp39-macosx_10_11_universal2",
"cp39-cp39-macosx_10_10_universal2",
"cp39-cp39-macosx_10_9_universal2",
"cp39-cp39-macosx_10_8_universal2",
"cp39-cp39-macosx_10_7_universal2",
"cp39-cp39-macosx_10_6_universal2",
"cp39-cp39-macosx_10_5_universal2",
"cp39-cp39-macosx_10_4_universal2",
"cp39-abi3-macosx_12_0_arm64",
"cp39-abi3-macosx_12_0_universal2",
"cp39-abi3-macosx_11_0_arm64",
"cp39-abi3-macosx_11_0_universal2",
"cp39-abi3-macosx_10_16_universal2",
"cp39-abi3-macosx_10_15_universal2",
"cp39-abi3-macosx_10_14_universal2",
"cp39-abi3-macosx_10_13_universal2",
"cp39-abi3-macosx_10_12_universal2",
"cp39-abi3-macosx_10_11_universal2",
"cp39-abi3-macosx_10_10_universal2",
"cp39-abi3-macosx_10_9_universal2",
"cp39-abi3-macosx_10_8_universal2",
"cp39-abi3-macosx_10_7_universal2",
"cp39-abi3-macosx_10_6_universal2",
"cp39-abi3-macosx_10_5_universal2",
"cp39-abi3-macosx_10_4_universal2",
"cp39-none-macosx_12_0_arm64",
"cp39-none-macosx_12_0_universal2",
"cp39-none-macosx_11_0_arm64",
"cp39-none-macosx_11_0_universal2",
"cp39-none-macosx_10_16_universal2",
"cp39-none-macosx_10_15_universal2",
"cp39-none-macosx_10_14_universal2",
"cp39-none-macosx_10_13_universal2",
"cp39-none-macosx_10_12_universal2",
"cp39-none-macosx_10_11_universal2",
"cp39-none-macosx_10_10_universal2",
"cp39-none-macosx_10_9_universal2",
"cp39-none-macosx_10_8_universal2",
"cp39-none-macosx_10_7_universal2",
"cp39-none-macosx_10_6_universal2",
"cp39-none-macosx_10_5_universal2",
"cp39-none-macosx_10_4_universal2",
"cp38-abi3-macosx_12_0_arm64",
"cp38-abi3-macosx_12_0_universal2",
"cp38-abi3-macosx_11_0_arm64",
"cp38-abi3-macosx_11_0_universal2",
"cp38-abi3-macosx_10_16_universal2",
"cp38-abi3-macosx_10_15_universal2",
"cp38-abi3-macosx_10_14_universal2",
"cp38-abi3-macosx_10_13_universal2",
"cp38-abi3-macosx_10_12_universal2",
"cp38-abi3-macosx_10_11_universal2",
"cp38-abi3-macosx_10_10_universal2",
"cp38-abi3-macosx_10_9_universal2",
"cp38-abi3-macosx_10_8_universal2",
"cp38-abi3-macosx_10_7_universal2",
"cp38-abi3-macosx_10_6_universal2",
"cp38-abi3-macosx_10_5_universal2",
"cp38-abi3-macosx_10_4_universal2",
"cp37-abi3-macosx_12_0_arm64",
"cp37-abi3-macosx_12_0_universal2",
"cp37-abi3-macosx_11_0_arm64",
"cp37-abi3-macosx_11_0_universal2",
"cp37-abi3-macosx_10_16_universal2",
"cp37-abi3-macosx_10_15_universal2",
"cp37-abi3-macosx_10_14_universal2",
"cp37-abi3-macosx_10_13_universal2",
"cp37-abi3-macosx_10_12_universal2",
"cp37-abi3-macosx_10_11_universal2",
"cp37-abi3-macosx_10_10_universal2",
"cp37-abi3-macosx_10_9_universal2",
"cp37-abi3-macosx_10_8_universal2",
"cp37-abi3-macosx_10_7_universal2",
"cp37-abi3-macosx_10_6_universal2",
"cp37-abi3-macosx_10_5_universal2",
"cp37-abi3-macosx_10_4_universal2",
"cp36-abi3-macosx_12_0_arm64",
"cp36-abi3-macosx_12_0_universal2",
"cp36-abi3-macosx_11_0_arm64",
"cp36-abi3-macosx_11_0_universal2",
"cp36-abi3-macosx_10_16_universal2",
"cp36-abi3-macosx_10_15_universal2",
"cp36-abi3-macosx_10_14_universal2",
"cp36-abi3-macosx_10_13_universal2",
"cp36-abi3-macosx_10_12_universal2",
"cp36-abi3-macosx_10_11_universal2",
"cp36-abi3-macosx_10_10_universal2",
"cp36-abi3-macosx_10_9_universal2",
"cp36-abi3-macosx_10_8_universal2",
"cp36-abi3-macosx_10_7_universal2",
"cp36-abi3-macosx_10_6_universal2",
"cp36-abi3-macosx_10_5_universal2",
"cp36-abi3-macosx_10_4_universal2",
"cp35-abi3-macosx_12_0_arm64",
"cp35-abi3-macosx_12_0_universal2",
"cp35-abi3-macosx_11_0_arm64",
"cp35-abi3-macosx_11_0_universal2",
"cp35-abi3-macosx_10_16_universal2",
"cp35-abi3-macosx_10_15_universal2",
"cp35-abi3-macosx_10_14_universal2",
"cp35-abi3-macosx_10_13_universal2",
"cp35-abi3-macosx_10_12_universal2",
"cp35-abi3-macosx_10_11_universal2",
"cp35-abi3-macosx_10_10_universal2",
"cp35-abi3-macosx_10_9_universal2",
"cp35-abi3-macosx_10_8_universal2",
"cp35-abi3-macosx_10_7_universal2",
"cp35-abi3-macosx_10_6_universal2",
"cp35-abi3-macosx_10_5_universal2",
"cp35-abi3-macosx_10_4_universal2",
"cp34-abi3-macosx_12_0_arm64",
"cp34-abi3-macosx_12_0_universal2",
"cp34-abi3-macosx_11_0_arm64",
"cp34-abi3-macosx_11_0_universal2",
"cp34-abi3-macosx_10_16_universal2",
"cp34-abi3-macosx_10_15_universal2",
"cp34-abi3-macosx_10_14_universal2",
"cp34-abi3-macosx_10_13_universal2",
"cp34-abi3-macosx_10_12_universal2",
"cp34-abi3-macosx_10_11_universal2",
"cp34-abi3-macosx_10_10_universal2",
"cp34-abi3-macosx_10_9_universal2",
"cp34-abi3-macosx_10_8_universal2",
"cp34-abi3-macosx_10_7_universal2",
"cp34-abi3-macosx_10_6_universal2",
"cp34-abi3-macosx_10_5_universal2",
"cp34-abi3-macosx_10_4_universal2",
"cp33-abi3-macosx_12_0_arm64",
"cp33-abi3-macosx_12_0_universal2",
"cp33-abi3-macosx_11_0_arm64",
"cp33-abi3-macosx_11_0_universal2",
"cp33-abi3-macosx_10_16_universal2",
"cp33-abi3-macosx_10_15_universal2",
"cp33-abi3-macosx_10_14_universal2",
"cp33-abi3-macosx_10_13_universal2",
"cp33-abi3-macosx_10_12_universal2",
"cp33-abi3-macosx_10_11_universal2",
"cp33-abi3-macosx_10_10_universal2",
"cp33-abi3-macosx_10_9_universal2",
"cp33-abi3-macosx_10_8_universal2",
"cp33-abi3-macosx_10_7_universal2",
"cp33-abi3-macosx_10_6_universal2",
"cp33-abi3-macosx_10_5_universal2",
"cp33-abi3-macosx_10_4_universal2",
"cp32-abi3-macosx_12_0_arm64",
"cp32-abi3-macosx_12_0_universal2",
"cp32-abi3-macosx_11_0_arm64",
"cp32-abi3-macosx_11_0_universal2",
"cp32-abi3-macosx_10_16_universal2",
"cp32-abi3-macosx_10_15_universal2",
"cp32-abi3-macosx_10_14_universal2",
"cp32-abi3-macosx_10_13_universal2",
"cp32-abi3-macosx_10_12_universal2",
"cp32-abi3-macosx_10_11_universal2",
"cp32-abi3-macosx_10_10_universal2",
"cp32-abi3-macosx_10_9_universal2",
"cp32-abi3-macosx_10_8_universal2",
"cp32-abi3-macosx_10_7_universal2",
"cp32-abi3-macosx_10_6_universal2",
"cp32-abi3-macosx_10_5_universal2",
"cp32-abi3-macosx_10_4_universal2",
"py39-none-macosx_12_0_arm64",
"py39-none-macosx_12_0_universal2",
"py39-none-macosx_11_0_arm64",
"py39-none-macosx_11_0_universal2",
"py39-none-macosx_10_16_universal2",
"py39-none-macosx_10_15_universal2",
"py39-none-macosx_10_14_universal2",
"py39-none-macosx_10_13_universal2",
"py39-none-macosx_10_12_universal2",
"py39-none-macosx_10_11_universal2",
"py39-none-macosx_10_10_universal2",
"py39-none-macosx_10_9_universal2",
"py39-none-macosx_10_8_universal2",
"py39-none-macosx_10_7_universal2",
"py39-none-macosx_10_6_universal2",
"py39-none-macosx_10_5_universal2",
"py39-none-macosx_10_4_universal2",
"py3-none-macosx_12_0_arm64",
"py3-none-macosx_12_0_universal2",
"py3-none-macosx_11_0_arm64",
"py3-none-macosx_11_0_universal2",
"py3-none-macosx_10_16_universal2",
"py3-none-macosx_10_15_universal2",
"py3-none-macosx_10_14_universal2",
"py3-none-macosx_10_13_universal2",
"py3-none-macosx_10_12_universal2",
"py3-none-macosx_10_11_universal2",
"py3-none-macosx_10_10_universal2",
"py3-none-macosx_10_9_universal2",
"py3-none-macosx_10_8_universal2",
"py3-none-macosx_10_7_universal2",
"py3-none-macosx_10_6_universal2",
"py3-none-macosx_10_5_universal2",
"py3-none-macosx_10_4_universal2",
"py38-none-macosx_12_0_arm64",
"py38-none-macosx_12_0_universal2",
"py38-none-macosx_11_0_arm64",
"py38-none-macosx_11_0_universal2",
"py38-none-macosx_10_16_universal2",
"py38-none-macosx_10_15_universal2",
"py38-none-macosx_10_14_universal2",
"py38-none-macosx_10_13_universal2",
"py38-none-macosx_10_12_universal2",
"py38-none-macosx_10_11_universal2",
"py38-none-macosx_10_10_universal2",
"py38-none-macosx_10_9_universal2",
"py38-none-macosx_10_8_universal2",
"py38-none-macosx_10_7_universal2",
"py38-none-macosx_10_6_universal2",
"py38-none-macosx_10_5_universal2",
"py38-none-macosx_10_4_universal2",
"py37-none-macosx_12_0_arm64",
"py37-none-macosx_12_0_universal2",
"py37-none-macosx_11_0_arm64",
"py37-none-macosx_11_0_universal2",
"py37-none-macosx_10_16_universal2",
"py37-none-macosx_10_15_universal2",
"py37-none-macosx_10_14_universal2",
"py37-none-macosx_10_13_universal2",
"py37-none-macosx_10_12_universal2",
"py37-none-macosx_10_11_universal2",
"py37-none-macosx_10_10_universal2",
"py37-none-macosx_10_9_universal2",
"py37-none-macosx_10_8_universal2",
"py37-none-macosx_10_7_universal2",
"py37-none-macosx_10_6_universal2",
"py37-none-macosx_10_5_universal2",
"py37-none-macosx_10_4_universal2",
"py36-none-macosx_12_0_arm64",
"py36-none-macosx_12_0_universal2",
"py36-none-macosx_11_0_arm64",
"py36-none-macosx_11_0_universal2",
"py36-none-macosx_10_16_universal2",
"py36-none-macosx_10_15_universal2",
"py36-none-macosx_10_14_universal2",
"py36-none-macosx_10_13_universal2",
"py36-none-macosx_10_12_universal2",
"py36-none-macosx_10_11_universal2",
"py36-none-macosx_10_10_universal2",
"py36-none-macosx_10_9_universal2",
"py36-none-macosx_10_8_universal2",
"py36-none-macosx_10_7_universal2",
"py36-none-macosx_10_6_universal2",
"py36-none-macosx_10_5_universal2",
"py36-none-macosx_10_4_universal2",
"py35-none-macosx_12_0_arm64",
"py35-none-macosx_12_0_universal2",
"py35-none-macosx_11_0_arm64",
"py35-none-macosx_11_0_universal2",
"py35-none-macosx_10_16_universal2",
"py35-none-macosx_10_15_universal2",
"py35-none-macosx_10_14_universal2",
"py35-none-macosx_10_13_universal2",
"py35-none-macosx_10_12_universal2",
"py35-none-macosx_10_11_universal2",
"py35-none-macosx_10_10_universal2",
"py35-none-macosx_10_9_universal2",
"py35-none-macosx_10_8_universal2",
"py35-none-macosx_10_7_universal2",
"py35-none-macosx_10_6_universal2",
"py35-none-macosx_10_5_universal2",
"py35-none-macosx_10_4_universal2",
"py34-none-macosx_12_0_arm64",
"py34-none-macosx_12_0_universal2",
"py34-none-macosx_11_0_arm64",
"py34-none-macosx_11_0_universal2",
"py34-none-macosx_10_16_universal2",
"py34-none-macosx_10_15_universal2",
"py34-none-macosx_10_14_universal2",
"py34-none-macosx_10_13_universal2",
"py34-none-macosx_10_12_universal2",
"py34-none-macosx_10_11_universal2",
"py34-none-macosx_10_10_universal2",
"py34-none-macosx_10_9_universal2",
"py34-none-macosx_10_8_universal2",
"py34-none-macosx_10_7_universal2",
"py34-none-macosx_10_6_universal2",
"py34-none-macosx_10_5_universal2",
"py34-none-macosx_10_4_universal2",
"py33-none-macosx_12_0_arm64",
"py33-none-macosx_12_0_universal2",
"py33-none-macosx_11_0_arm64",
"py33-none-macosx_11_0_universal2",
"py33-none-macosx_10_16_universal2",
"py33-none-macosx_10_15_universal2",
"py33-none-macosx_10_14_universal2",
"py33-none-macosx_10_13_universal2",
"py33-none-macosx_10_12_universal2",
"py33-none-macosx_10_11_universal2",
"py33-none-macosx_10_10_universal2",
"py33-none-macosx_10_9_universal2",
"py33-none-macosx_10_8_universal2",
"py33-none-macosx_10_7_universal2",
"py33-none-macosx_10_6_universal2",
"py33-none-macosx_10_5_universal2",
"py33-none-macosx_10_4_universal2",
"py32-none-macosx_12_0_arm64",
"py32-none-macosx_12_0_universal2",
"py32-none-macosx_11_0_arm64",
"py32-none-macosx_11_0_universal2",
"py32-none-macosx_10_16_universal2",
"py32-none-macosx_10_15_universal2",
"py32-none-macosx_10_14_universal2",
"py32-none-macosx_10_13_universal2",
"py32-none-macosx_10_12_universal2",
"py32-none-macosx_10_11_universal2",
"py32-none-macosx_10_10_universal2",
"py32-none-macosx_10_9_universal2",
"py32-none-macosx_10_8_universal2",
"py32-none-macosx_10_7_universal2",
"py32-none-macosx_10_6_universal2",
"py32-none-macosx_10_5_universal2",
"py32-none-macosx_10_4_universal2",
"py31-none-macosx_12_0_arm64",
"py31-none-macosx_12_0_universal2",
"py31-none-macosx_11_0_arm64",
"py31-none-macosx_11_0_universal2",
"py31-none-macosx_10_16_universal2",
"py31-none-macosx_10_15_universal2",
"py31-none-macosx_10_14_universal2",
"py31-none-macosx_10_13_universal2",
"py31-none-macosx_10_12_universal2",
"py31-none-macosx_10_11_universal2",
"py31-none-macosx_10_10_universal2",
"py31-none-macosx_10_9_universal2",
"py31-none-macosx_10_8_universal2",
"py31-none-macosx_10_7_universal2",
"py31-none-macosx_10_6_universal2",
"py31-none-macosx_10_5_universal2",
"py31-none-macosx_10_4_universal2",
"py30-none-macosx_12_0_arm64",
"py30-none-macosx_12_0_universal2",
"py30-none-macosx_11_0_arm64",
"py30-none-macosx_11_0_universal2",
"py30-none-macosx_10_16_universal2",
"py30-none-macosx_10_15_universal2",
"py30-none-macosx_10_14_universal2",
"py30-none-macosx_10_13_universal2",
"py30-none-macosx_10_12_universal2",
"py30-none-macosx_10_11_universal2",
"py30-none-macosx_10_10_universal2",
"py30-none-macosx_10_9_universal2",
"py30-none-macosx_10_8_universal2",
"py30-none-macosx_10_7_universal2",
"py30-none-macosx_10_6_universal2",
"py30-none-macosx_10_5_universal2",
"py30-none-macosx_10_4_universal2",
"py39-none-any",
"py3-none-any",
"py38-none-any",
"py37-none-any",
"py36-none-any",
"py35-none-any",
"py34-none-any",
"py33-none-any",
"py32-none-any",
"py31-none-any",
"py30-none-any"
],
"marker_environment": {
"implementation_name": "cpython",
"implementation_version": "3.9.10",
"os_name": "posix",
"platform_machine": "arm64",
"platform_python_implementation": "CPython",
"platform_release": "21.6.0",
"platform_system": "Darwin",
"platform_version": "Darwin Kernel Version 21.6.0: Wed Aug 10 14:28:35 PDT 2022; root:xnu-8020.141.5~2/RELEASE_ARM64_T8101",
"python_full_version": "3.9.10",
"python_version": "3.9",
"sys_platform": "darwin"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment