diff --git a/.github/locks/atest_linux-64.conda.lock b/.github/locks/atest_linux-64.conda.lock index 2f5a3fac..677f55fa 100644 --- a/.github/locks/atest_linux-64.conda.lock +++ b/.github/locks/atest_linux-64.conda.lock @@ -33,7 +33,7 @@ https://conda.anaconda.org/conda-forge/linux-64/selenium-manager-4.12.0-he8a937b https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2#2161070d867d1b1204ea749c8eec4ef0 https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.43.0-h2797004_0.conda#903fa782a9067d5934210df6d79220f6 https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda#47d31b792659ce70f470b5c82fdfb7a4 -https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.12-h27826a3_0.tar.bz2#5b8c42eb62e9fc961af70bdd6a26e168 +https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-h2797004_0.conda#513336054f884f95d9fd925748f41ef3 https://conda.anaconda.org/conda-forge/linux-64/python-3.11.5-hab00c5b_0_cpython.conda#f0288cb82594b1cbc71111d1cd3c5422 https://conda.anaconda.org/conda-forge/noarch/attrs-23.1.0-pyh71513ae_1.conda#3edfead7cedd1ab4400a6c588f3e75f8 https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py311hb755f60_0.conda#b8128d083dbf6abd472b1a3e98b0b83d diff --git a/.github/locks/atest_osx-64.conda.lock b/.github/locks/atest_osx-64.conda.lock index 8accf57b..b5985341 100644 --- a/.github/locks/atest_osx-64.conda.lock +++ b/.github/locks/atest_osx-64.conda.lock @@ -26,7 +26,7 @@ https://conda.anaconda.org/conda-forge/osx-64/geckodriver-0.33.0-hf46a32e_0.cond https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.43.0-h58db7d2_0.conda#e2195038e85e49e26fbeb7efc0ad38c4 https://conda.anaconda.org/conda-forge/osx-64/openssl-3.1.3-h8a1eda9_0.conda#26f9b58f905547e658e9587f8e8cfe43 https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda#f17f77f2acf4d344734bda76829ce14e -https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.12-h5dbffcc_0.tar.bz2#8e9480d9c47061db2ed1b4ecce519a7f +https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hef22860_0.conda#0c25eedcc888b6d765948ab62a18c03e https://conda.anaconda.org/conda-forge/osx-64/python-3.11.5-h30d4d87_0_cpython.conda#ef2b263b5b02d2acf00908bb07c14b12 https://conda.anaconda.org/conda-forge/noarch/attrs-23.1.0-pyh71513ae_1.conda#3edfead7cedd1ab4400a6c588f3e75f8 https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py311hdf8f085_0.conda#ee00aa713ef0dffaebf0b6a8316cc9a2 diff --git a/.github/locks/atest_win-64.conda.lock b/.github/locks/atest_win-64.conda.lock index a0c9e1e5..5fe9d286 100644 --- a/.github/locks/atest_win-64.conda.lock +++ b/.github/locks/atest_win-64.conda.lock @@ -26,7 +26,7 @@ https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.43.0-hcfcfb64_0.conda# https://conda.anaconda.org/conda-forge/win-64/libzlib-1.2.13-hcfcfb64_5.conda#5fdb9c6a113b6b6cb5e517fd972d5f41 https://conda.anaconda.org/conda-forge/win-64/openssl-3.1.3-hcfcfb64_0.conda#16b2c80ad196f18acd31b588ef28cb9a https://conda.anaconda.org/conda-forge/win-64/selenium-manager-4.12.0-h975169c_0.conda#286d6d19aaff7e7f5f928d4c1b3b0107 -https://conda.anaconda.org/conda-forge/win-64/tk-8.6.12-h8ffe710_0.tar.bz2#c69a5047cc9291ae40afd4a1ad6f0c0f +https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-hcfcfb64_0.conda#74405f2ccbb40af409fee1a71ce70dc6 https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2#515d77642eaa3639413c6b1bc3f94219 https://conda.anaconda.org/conda-forge/win-64/python-3.11.5-h2628c8c_0_cpython.conda#28e01783b6a42f295fe07c7790aa75a1 https://conda.anaconda.org/conda-forge/noarch/attrs-23.1.0-pyh71513ae_1.conda#3edfead7cedd1ab4400a6c588f3e75f8 diff --git a/.github/locks/binder_linux-64_lab4.0.conda.lock b/.github/locks/binder_linux-64_lab4.0.conda.lock index 348b8fe1..8f197b2a 100644 --- a/.github/locks/binder_linux-64_lab4.0.conda.lock +++ b/.github/locks/binder_linux-64_lab4.0.conda.lock @@ -65,7 +65,7 @@ https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.11.5-h0d562d8_0.conda# https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.40-hc3806b6_0.tar.bz2#69e2c796349cd9b273890bee0febfe1b https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda#47d31b792659ce70f470b5c82fdfb7a4 https://conda.anaconda.org/conda-forge/linux-64/reproc-cpp-14.2.4-hcb278e6_0.conda#ede8e0f849f2fee2f78cb488b4ea3b33 -https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.12-h27826a3_0.tar.bz2#5b8c42eb62e9fc961af70bdd6a26e168 +https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-h2797004_0.conda#513336054f884f95d9fd925748f41ef3 https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.4-h9c3ff4c_1.tar.bz2#21743a8d2ea0c8cfbbf8fe489b0347df https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-hd590300_5.conda#68c34ec6149623be41a1933ab996a209 https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.5-hfc55251_0.conda#04b88013080254850d6c01ed54810589 @@ -90,7 +90,7 @@ https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.cond https://conda.anaconda.org/conda-forge/noarch/cloudpickle-2.2.1-pyhd8ed1ab_0.conda#b325bfc4cff7d7f8a868f1f7ecc4ed16 https://conda.anaconda.org/conda-forge/noarch/crashtest-0.4.1-pyhd8ed1ab_0.tar.bz2#709a2295dd907bb34afb57d54320642f https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2#ecfff944ba3960ecb334b9a2663d708d -https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.0-py311hb755f60_0.conda#18855bb6c744389b662f6e2ba20acbb7 +https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.0-py311hb755f60_1.conda#2c241533b8eafe8028442d46ef41eb13 https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2#43afe5ab04e35e17ba28649471dd7364 https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.7-pyhd8ed1ab_0.conda#12d8aae6994f342618443a8f05c652a0 @@ -127,7 +127,7 @@ https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.17.1-pyhd8ed1a https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.5-py311h459d7ec_1.conda#490d7fa8675afd1aa6f1b2332d156a45 https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2#359eeb6536da0e687af562ed265ec263 https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2#6784285c7e55cb7212efabc79e4c2883 -https://conda.anaconda.org/conda-forge/linux-64/pycosat-0.6.4-py311hd4cff14_1.tar.bz2#17399f8b68b4592f098ab18d4fdb0ac4 +https://conda.anaconda.org/conda-forge/linux-64/pycosat-0.6.4-py311h459d7ec_2.conda#c534512f6429fdf03e97380552e17c01 https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2#076becd9e05608f8dc72757d5f3a91ff https://conda.anaconda.org/conda-forge/noarch/pygments-2.16.1-pyhd8ed1ab_0.conda#40e5cb18165466773619e5c963f00a7b https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.8.0-pyhd8ed1ab_0.conda#912c0194f898fdb783021fd25f913c31 @@ -143,7 +143,7 @@ https://conda.anaconda.org/conda-forge/noarch/rfc3986-2.0.0-pyhd8ed1ab_0.tar.bz2 https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2#912a71cc01012ee38e6b90ddd561e36f https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.10.3-py311h46250e7_0.conda#da1b2b57ac17853cfeb4197d0595db45 https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.7-py311h2582759_1.conda#5e997292429a22ad50c11af0a2cb0f08 -https://conda.anaconda.org/conda-forge/linux-64/ruamel_yaml-0.15.80-py311hd4cff14_1008.tar.bz2#cfc7aa9d4e13c267fb6531d4788f2ede +https://conda.anaconda.org/conda-forge/linux-64/ruamel_yaml-0.15.80-py311h459d7ec_1009.conda#799197f6c21be0b366d1a593d1015a5c https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.2-pyh41d4057_0.conda#ada5a17adcd10be4fc7e37e4166ba0e2 https://conda.anaconda.org/conda-forge/noarch/setuptools-68.2.2-pyhd8ed1ab_0.conda#fc2166155db840c634a1291a5c35a709 https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 @@ -231,7 +231,7 @@ https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.39-pyha770c72_0 https://conda.anaconda.org/conda-forge/noarch/pydantic-2.3.0-pyhd8ed1ab_0.conda#55aaca64695fcebdfa8057c87ed180e7 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.2.0-pyhd8ed1ab_1.conda#34f7d568bf59d18e3fef8c405cbece21 https://conda.anaconda.org/conda-forge/noarch/readme_renderer-42.0-pyhd8ed1ab_0.conda#fdc16f5dc3a911d8f43f64f814a45961 -https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py311h38be061_1.tar.bz2#ec745aaae03cc47120c1f11ac7b7bcf5 +https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py311h38be061_2.conda#30a57eaa8e72cb0c2c84d6d7db32010c https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.24.4-pyhd8ed1ab_0.conda#c3feaf947264a59a125e8c26e98c3c5a https://conda.anaconda.org/conda-forge/noarch/certipy-0.1.3-py_0.tar.bz2#23486713ef5712923e7c57cae609b22e https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.2.0-pyh38be061_0.conda#8a3ae7f6318376aa08ea753367bb7dd6 diff --git a/.github/locks/build_linux-64_lab4.0.conda.lock b/.github/locks/build_linux-64_lab4.0.conda.lock index bd0ecc4f..c502b18d 100644 --- a/.github/locks/build_linux-64_lab4.0.conda.lock +++ b/.github/locks/build_linux-64_lab4.0.conda.lock @@ -58,7 +58,7 @@ https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hd590300_0.co https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.43.0-h2797004_0.conda#903fa782a9067d5934210df6d79220f6 https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.40-hc3806b6_0.tar.bz2#69e2c796349cd9b273890bee0febfe1b https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda#47d31b792659ce70f470b5c82fdfb7a4 -https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.12-h27826a3_0.tar.bz2#5b8c42eb62e9fc961af70bdd6a26e168 +https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-h2797004_0.conda#513336054f884f95d9fd925748f41ef3 https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.4-h9c3ff4c_1.tar.bz2#21743a8d2ea0c8cfbbf8fe489b0347df https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-hd590300_5.conda#68c34ec6149623be41a1933ab996a209 https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hd590300_0.conda#aeafb07a327e3f14a796bf081ea07472 @@ -76,7 +76,7 @@ https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.2.0-pyhd8ed1a https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda#f3ad426304898027fc619827ff428eca https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2#3faab06a954c2a04039983f2c4a50d99 https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2#ecfff944ba3960ecb334b9a2663d708d -https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.0-py311hb755f60_0.conda#18855bb6c744389b662f6e2ba20acbb7 +https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.0-py311hb755f60_1.conda#2c241533b8eafe8028442d46ef41eb13 https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2#43afe5ab04e35e17ba28649471dd7364 https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 https://conda.anaconda.org/conda-forge/linux-64/docutils-0.20.1-py311h38be061_2.conda#33f8066e53679dd4be2355fec849bf01 @@ -121,7 +121,7 @@ https://conda.anaconda.org/conda-forge/noarch/rfc3986-2.0.0-pyhd8ed1ab_0.tar.bz2 https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2#912a71cc01012ee38e6b90ddd561e36f https://conda.anaconda.org/conda-forge/noarch/robotframework-6.1.1-pyhd8ed1ab_0.conda#64834ba75dbdf737b5d7f1c000169703 https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.10.3-py311h46250e7_0.conda#da1b2b57ac17853cfeb4197d0595db45 -https://conda.anaconda.org/conda-forge/linux-64/ruff-0.0.291-py311h7145743_0.conda#bed640f24dc167824d16d7710cd7a9a2 +https://conda.anaconda.org/conda-forge/linux-64/ruff-0.0.291-py311h7145743_1.conda#ab7eb558f0e98f2f8a43365f52b6ef77 https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.2-pyh41d4057_0.conda#ada5a17adcd10be4fc7e37e4166ba0e2 https://conda.anaconda.org/conda-forge/noarch/setuptools-68.2.2-pyhd8ed1ab_0.conda#fc2166155db840c634a1291a5c35a709 https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 @@ -133,7 +133,7 @@ https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2#5 https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2#73506d1ab4202481841c68c169b7ef6c https://conda.anaconda.org/conda-forge/linux-64/tornado-6.3.3-py311h459d7ec_1.conda#a700fcb5cedd3e72d0c75d095c7a6eda https://conda.anaconda.org/conda-forge/noarch/traitlets-5.10.0-pyhd8ed1ab_0.conda#efd3f63a93621367d4fa6e274c511696 -https://conda.anaconda.org/conda-forge/noarch/types-pyyaml-6.0.12.11-pyhd8ed1ab_0.conda#22776dce28e8ba933e5cbcf20b62c583 +https://conda.anaconda.org/conda-forge/noarch/types-pyyaml-6.0.12.12-pyhd8ed1ab_0.conda#0cb14c80f66937df894d60626dd1921f https://conda.anaconda.org/conda-forge/noarch/types-ujson-5.8.0.1-pyhd8ed1ab_0.conda#a2cc2f10e120658c6a9a609f93149ef0 https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.8.0-pyha770c72_0.conda#5b1be40a26d10a06f6d4f1f9e19fa0c7 https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_0.tar.bz2#eb67e3cace64c66233e2d35949e20f92 @@ -206,7 +206,7 @@ https://conda.anaconda.org/conda-forge/noarch/readme_renderer-42.0-pyhd8ed1ab_0. https://conda.anaconda.org/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_0.conda#99c98318c8646b08cc764f90ce98906e https://conda.anaconda.org/conda-forge/noarch/rich-click-1.6.1-pyhd8ed1ab_0.conda#59a168d82c582248859d8dc8075da6f6 https://conda.anaconda.org/conda-forge/noarch/robotframework-robocop-4.1.1-pyhd8ed1ab_0.conda#3485834773157a84933b7b5eb3a84a34 -https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py311h38be061_1.tar.bz2#ec745aaae03cc47120c1f11ac7b7bcf5 +https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py311h38be061_2.conda#30a57eaa8e72cb0c2c84d6d7db32010c https://conda.anaconda.org/conda-forge/noarch/trio-websocket-0.10.4-pyhd8ed1ab_0.conda#bc76193d006d24be88cfff3314249f46 https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.19.1-pyhd8ed1ab_0.conda#daca0665e6fe8a376e48b9f0b5865326 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.3.1-pyhd8ed1ab_0.conda#b7cc0981484fcb6390e6d341e55618b3 diff --git a/.github/locks/build_osx-64_lab4.0.conda.lock b/.github/locks/build_osx-64_lab4.0.conda.lock index b2497b8d..a6e38931 100644 --- a/.github/locks/build_osx-64_lab4.0.conda.lock +++ b/.github/locks/build_osx-64_lab4.0.conda.lock @@ -47,7 +47,7 @@ https://conda.anaconda.org/conda-forge/osx-64/libbrotlienc-1.1.0-h0dc2134_0.cond https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.43.0-h58db7d2_0.conda#e2195038e85e49e26fbeb7efc0ad38c4 https://conda.anaconda.org/conda-forge/osx-64/openssl-3.1.3-h8a1eda9_0.conda#26f9b58f905547e658e9587f8e8cfe43 https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda#f17f77f2acf4d344734bda76829ce14e -https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.12-h5dbffcc_0.tar.bz2#8e9480d9c47061db2ed1b4ecce519a7f +https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hef22860_0.conda#0c25eedcc888b6d765948ab62a18c03e https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.4-he49afe7_1.tar.bz2#1972d732b123ed04b60fd21e94f0b178 https://conda.anaconda.org/conda-forge/osx-64/zlib-1.2.13-h8a1eda9_5.conda#75a8a98b1c4671c5d2897975731da42d https://conda.anaconda.org/conda-forge/osx-64/brotli-bin-1.1.0-h0dc2134_0.conda#fdff11974d36d586c4e5aeae3b9a9a79 @@ -64,7 +64,7 @@ https://conda.anaconda.org/conda-forge/noarch/certifi-2023.7.22-pyhd8ed1ab_0.con https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.2.0-pyhd8ed1ab_0.conda#313516e9a4b08b12dfb1e1cd390a96e3 https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda#f3ad426304898027fc619827ff428eca https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2#3faab06a954c2a04039983f2c4a50d99 -https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.0-py311hdf8f085_0.conda#95c51b03233bf5edce2aa07c8552b95b +https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.0-py311hdf8f085_1.conda#7f20ef8a63be62d1bcdaa8136ec09647 https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2#43afe5ab04e35e17ba28649471dd7364 https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 https://conda.anaconda.org/conda-forge/osx-64/docutils-0.20.1-py311h6eed73b_2.conda#d56b49f1a2c908d05d1ca6b3f85d0fd5 @@ -108,7 +108,7 @@ https://conda.anaconda.org/conda-forge/noarch/rfc3986-2.0.0-pyhd8ed1ab_0.tar.bz2 https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2#912a71cc01012ee38e6b90ddd561e36f https://conda.anaconda.org/conda-forge/noarch/robotframework-6.1.1-pyhd8ed1ab_0.conda#64834ba75dbdf737b5d7f1c000169703 https://conda.anaconda.org/conda-forge/osx-64/rpds-py-0.10.3-py311h299eb51_0.conda#c939f09ffd5f40e0439b1f5c801f728f -https://conda.anaconda.org/conda-forge/osx-64/ruff-0.0.291-py311hbf57787_0.conda#7499330abba2235d8f49eac835f528e9 +https://conda.anaconda.org/conda-forge/osx-64/ruff-0.0.291-py311hbf57787_1.conda#b7e6f3634bfca0bdf2e402a002971e7a https://conda.anaconda.org/conda-forge/noarch/setuptools-68.2.2-pyhd8ed1ab_0.conda#fc2166155db840c634a1291a5c35a709 https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.0-pyhd8ed1ab_0.tar.bz2#dd6cbc539e74cb1f430efbd4575b9303 @@ -119,7 +119,7 @@ https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2#5 https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2#73506d1ab4202481841c68c169b7ef6c https://conda.anaconda.org/conda-forge/osx-64/tornado-6.3.3-py311h2725bcf_1.conda#daf5f053a40c2b0b8f86b605e302b7a4 https://conda.anaconda.org/conda-forge/noarch/traitlets-5.10.0-pyhd8ed1ab_0.conda#efd3f63a93621367d4fa6e274c511696 -https://conda.anaconda.org/conda-forge/noarch/types-pyyaml-6.0.12.11-pyhd8ed1ab_0.conda#22776dce28e8ba933e5cbcf20b62c583 +https://conda.anaconda.org/conda-forge/noarch/types-pyyaml-6.0.12.12-pyhd8ed1ab_0.conda#0cb14c80f66937df894d60626dd1921f https://conda.anaconda.org/conda-forge/noarch/types-ujson-5.8.0.1-pyhd8ed1ab_0.conda#a2cc2f10e120658c6a9a609f93149ef0 https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.8.0-pyha770c72_0.conda#5b1be40a26d10a06f6d4f1f9e19fa0c7 https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_0.tar.bz2#eb67e3cace64c66233e2d35949e20f92 diff --git a/.github/locks/build_win-64_lab4.0.conda.lock b/.github/locks/build_win-64_lab4.0.conda.lock index 01b10ba8..5672ea47 100644 --- a/.github/locks/build_win-64_lab4.0.conda.lock +++ b/.github/locks/build_win-64_lab4.0.conda.lock @@ -48,7 +48,7 @@ https://conda.anaconda.org/conda-forge/win-64/libzlib-1.2.13-hcfcfb64_5.conda#5f https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2#066552ac6b907ec6d72c0ddab29050dc https://conda.anaconda.org/conda-forge/win-64/openssl-3.1.3-hcfcfb64_0.conda#16b2c80ad196f18acd31b588ef28cb9a https://conda.anaconda.org/conda-forge/win-64/selenium-manager-4.12.0-h975169c_0.conda#286d6d19aaff7e7f5f928d4c1b3b0107 -https://conda.anaconda.org/conda-forge/win-64/tk-8.6.12-h8ffe710_0.tar.bz2#c69a5047cc9291ae40afd4a1ad6f0c0f +https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-hcfcfb64_0.conda#74405f2ccbb40af409fee1a71ce70dc6 https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2#515d77642eaa3639413c6b1bc3f94219 https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2#adbfb9f45d1004a26763652246a33764 https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-hcfcfb64_0.conda#b694da94a046204c19b25673de87f796 @@ -65,7 +65,7 @@ https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1 https://conda.anaconda.org/conda-forge/noarch/certifi-2023.7.22-pyhd8ed1ab_0.conda#7f3dbc9179b4dde7da98dfb151d0ad22 https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.2.0-pyhd8ed1ab_0.conda#313516e9a4b08b12dfb1e1cd390a96e3 https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2#3faab06a954c2a04039983f2c4a50d99 -https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.0-py311h12c1d0e_0.conda#50b40f48b3559741ed9e980d1f3dbbc0 +https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.0-py311h12c1d0e_1.conda#8f521f35a7544cbf058b24e11561d53a https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2#43afe5ab04e35e17ba28649471dd7364 https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 https://conda.anaconda.org/conda-forge/win-64/docutils-0.20.1-py311h1ea47a8_2.conda#6b90695c3fc8616b09e3fabc77f816df @@ -110,7 +110,7 @@ https://conda.anaconda.org/conda-forge/noarch/rfc3986-2.0.0-pyhd8ed1ab_0.tar.bz2 https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2#912a71cc01012ee38e6b90ddd561e36f https://conda.anaconda.org/conda-forge/noarch/robotframework-6.1.1-pyhd8ed1ab_0.conda#64834ba75dbdf737b5d7f1c000169703 https://conda.anaconda.org/conda-forge/win-64/rpds-py-0.10.3-py311hc37eb10_0.conda#3c68a972297b95ff3bc9464db2466b61 -https://conda.anaconda.org/conda-forge/win-64/ruff-0.0.291-py311hc14472d_0.conda#5676083dbf012584b45aa4c6b8a8027d +https://conda.anaconda.org/conda-forge/win-64/ruff-0.0.291-py311hc14472d_1.conda#9bdff5af0c15424fb49df290f5ceb93a https://conda.anaconda.org/conda-forge/noarch/setuptools-68.2.2-pyhd8ed1ab_0.conda#fc2166155db840c634a1291a5c35a709 https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.0-pyhd8ed1ab_0.tar.bz2#dd6cbc539e74cb1f430efbd4575b9303 @@ -122,7 +122,7 @@ https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2#5 https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2#73506d1ab4202481841c68c169b7ef6c https://conda.anaconda.org/conda-forge/win-64/tornado-6.3.3-py311ha68e1ae_1.conda#ec581b55f82fd6a4a96770c74d48e456 https://conda.anaconda.org/conda-forge/noarch/traitlets-5.10.0-pyhd8ed1ab_0.conda#efd3f63a93621367d4fa6e274c511696 -https://conda.anaconda.org/conda-forge/noarch/types-pyyaml-6.0.12.11-pyhd8ed1ab_0.conda#22776dce28e8ba933e5cbcf20b62c583 +https://conda.anaconda.org/conda-forge/noarch/types-pyyaml-6.0.12.12-pyhd8ed1ab_0.conda#0cb14c80f66937df894d60626dd1921f https://conda.anaconda.org/conda-forge/noarch/types-ujson-5.8.0.1-pyhd8ed1ab_0.conda#a2cc2f10e120658c6a9a609f93149ef0 https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.8.0-pyha770c72_0.conda#5b1be40a26d10a06f6d4f1f9e19fa0c7 https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_0.tar.bz2#eb67e3cace64c66233e2d35949e20f92 diff --git a/.github/locks/lab_linux-64_lab3.5.conda.lock b/.github/locks/lab_linux-64_lab3.5.conda.lock index 407ff9de..4fa6076a 100644 --- a/.github/locks/lab_linux-64_lab3.5.conda.lock +++ b/.github/locks/lab_linux-64_lab3.5.conda.lock @@ -36,7 +36,7 @@ https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2#2161 https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2#4cb3ad778ec2d5a7acbdf254eb1c42ae https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.43.0-h2797004_0.conda#903fa782a9067d5934210df6d79220f6 https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda#47d31b792659ce70f470b5c82fdfb7a4 -https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.12-h27826a3_0.tar.bz2#5b8c42eb62e9fc961af70bdd6a26e168 +https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-h2797004_0.conda#513336054f884f95d9fd925748f41ef3 https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.4-h9c3ff4c_1.tar.bz2#21743a8d2ea0c8cfbbf8fe489b0347df https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-hd590300_5.conda#68c34ec6149623be41a1933ab996a209 https://conda.anaconda.org/conda-forge/linux-64/pandoc-3.1.3-h32600fe_0.conda#8287aeb8462e2d4b235eff788e75919d @@ -49,7 +49,7 @@ https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1 https://conda.anaconda.org/conda-forge/noarch/certifi-2023.7.22-pyhd8ed1ab_0.conda#7f3dbc9179b4dde7da98dfb151d0ad22 https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.2.0-pyhd8ed1ab_0.conda#313516e9a4b08b12dfb1e1cd390a96e3 https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2#3faab06a954c2a04039983f2c4a50d99 -https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.0-py38h17151c0_0.conda#bdd3e5d573420e5c7f254659d96aa830 +https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.0-py38h17151c0_1.conda#b43385ccbd4fa88f2c195ad3c4101c77 https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2#43afe5ab04e35e17ba28649471dd7364 https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2#3cf04868fee0a029769bd41f4b2fbf2d diff --git a/.github/locks/lab_linux-64_lab4.0.conda.lock b/.github/locks/lab_linux-64_lab4.0.conda.lock index 7057b081..f2daa905 100644 --- a/.github/locks/lab_linux-64_lab4.0.conda.lock +++ b/.github/locks/lab_linux-64_lab4.0.conda.lock @@ -38,7 +38,7 @@ https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2#2161 https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2#4cb3ad778ec2d5a7acbdf254eb1c42ae https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.43.0-h2797004_0.conda#903fa782a9067d5934210df6d79220f6 https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda#47d31b792659ce70f470b5c82fdfb7a4 -https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.12-h27826a3_0.tar.bz2#5b8c42eb62e9fc961af70bdd6a26e168 +https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-h2797004_0.conda#513336054f884f95d9fd925748f41ef3 https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.4-h9c3ff4c_1.tar.bz2#21743a8d2ea0c8cfbbf8fe489b0347df https://conda.anaconda.org/conda-forge/linux-64/python-3.11.5-hab00c5b_0_cpython.conda#f0288cb82594b1cbc71111d1cd3c5422 https://conda.anaconda.org/conda-forge/noarch/attrs-23.1.0-pyh71513ae_1.conda#3edfead7cedd1ab4400a6c588f3e75f8 @@ -49,7 +49,7 @@ https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1 https://conda.anaconda.org/conda-forge/noarch/certifi-2023.7.22-pyhd8ed1ab_0.conda#7f3dbc9179b4dde7da98dfb151d0ad22 https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.2.0-pyhd8ed1ab_0.conda#313516e9a4b08b12dfb1e1cd390a96e3 https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2#3faab06a954c2a04039983f2c4a50d99 -https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.0-py311hb755f60_0.conda#18855bb6c744389b662f6e2ba20acbb7 +https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.0-py311hb755f60_1.conda#2c241533b8eafe8028442d46ef41eb13 https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2#43afe5ab04e35e17ba28649471dd7364 https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2#3cf04868fee0a029769bd41f4b2fbf2d diff --git a/.github/locks/lab_osx-64_lab3.5.conda.lock b/.github/locks/lab_osx-64_lab3.5.conda.lock index fca4ebf8..04d54af9 100644 --- a/.github/locks/lab_osx-64_lab3.5.conda.lock +++ b/.github/locks/lab_osx-64_lab3.5.conda.lock @@ -29,7 +29,7 @@ https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.43.0-h58db7d2_0.conda# https://conda.anaconda.org/conda-forge/osx-64/openssl-3.1.3-h8a1eda9_0.conda#26f9b58f905547e658e9587f8e8cfe43 https://conda.anaconda.org/conda-forge/osx-64/pandoc-3.1.3-h9d075a6_0.conda#e86a3d5c966a09b6129354114483f7a7 https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda#f17f77f2acf4d344734bda76829ce14e -https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.12-h5dbffcc_0.tar.bz2#8e9480d9c47061db2ed1b4ecce519a7f +https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hef22860_0.conda#0c25eedcc888b6d765948ab62a18c03e https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.4-he49afe7_1.tar.bz2#1972d732b123ed04b60fd21e94f0b178 https://conda.anaconda.org/conda-forge/osx-64/python-3.8.17-hf9b03c3_0_cpython.conda#f613b663d3829f325b4ffb626bf612b6 https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.3-pyhd8ed1ab_0.tar.bz2#54ac328d703bff191256ffa1183126d1 @@ -41,7 +41,7 @@ https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1 https://conda.anaconda.org/conda-forge/noarch/certifi-2023.7.22-pyhd8ed1ab_0.conda#7f3dbc9179b4dde7da98dfb151d0ad22 https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.2.0-pyhd8ed1ab_0.conda#313516e9a4b08b12dfb1e1cd390a96e3 https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2#3faab06a954c2a04039983f2c4a50d99 -https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.0-py38h940360d_0.conda#b1797f2519f9259202548d71acfbc350 +https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.0-py38h940360d_1.conda#36eb00ff62ea418a9da0b795f7886535 https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2#43afe5ab04e35e17ba28649471dd7364 https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2#3cf04868fee0a029769bd41f4b2fbf2d diff --git a/.github/locks/lab_osx-64_lab4.0.conda.lock b/.github/locks/lab_osx-64_lab4.0.conda.lock index f9bf7576..29809b74 100644 --- a/.github/locks/lab_osx-64_lab4.0.conda.lock +++ b/.github/locks/lab_osx-64_lab4.0.conda.lock @@ -31,7 +31,7 @@ https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2#d7e0 https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.43.0-h58db7d2_0.conda#e2195038e85e49e26fbeb7efc0ad38c4 https://conda.anaconda.org/conda-forge/osx-64/openssl-3.1.3-h8a1eda9_0.conda#26f9b58f905547e658e9587f8e8cfe43 https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda#f17f77f2acf4d344734bda76829ce14e -https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.12-h5dbffcc_0.tar.bz2#8e9480d9c47061db2ed1b4ecce519a7f +https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hef22860_0.conda#0c25eedcc888b6d765948ab62a18c03e https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.4-he49afe7_1.tar.bz2#1972d732b123ed04b60fd21e94f0b178 https://conda.anaconda.org/conda-forge/osx-64/python-3.11.5-h30d4d87_0_cpython.conda#ef2b263b5b02d2acf00908bb07c14b12 https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.3-pyhd8ed1ab_0.tar.bz2#54ac328d703bff191256ffa1183126d1 @@ -43,7 +43,7 @@ https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1 https://conda.anaconda.org/conda-forge/noarch/certifi-2023.7.22-pyhd8ed1ab_0.conda#7f3dbc9179b4dde7da98dfb151d0ad22 https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.2.0-pyhd8ed1ab_0.conda#313516e9a4b08b12dfb1e1cd390a96e3 https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2#3faab06a954c2a04039983f2c4a50d99 -https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.0-py311hdf8f085_0.conda#95c51b03233bf5edce2aa07c8552b95b +https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.0-py311hdf8f085_1.conda#7f20ef8a63be62d1bcdaa8136ec09647 https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2#43afe5ab04e35e17ba28649471dd7364 https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2#3cf04868fee0a029769bd41f4b2fbf2d diff --git a/.github/locks/lab_win-64_lab3.5.conda.lock b/.github/locks/lab_win-64_lab3.5.conda.lock index 84df5be8..168b013a 100644 --- a/.github/locks/lab_win-64_lab3.5.conda.lock +++ b/.github/locks/lab_win-64_lab3.5.conda.lock @@ -29,7 +29,7 @@ https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.18-h8d14728_1.tar.bz https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.43.0-hcfcfb64_0.conda#16c6f482e70cb3da41d0bee5d49c6bf3 https://conda.anaconda.org/conda-forge/win-64/libzlib-1.2.13-hcfcfb64_5.conda#5fdb9c6a113b6b6cb5e517fd972d5f41 https://conda.anaconda.org/conda-forge/win-64/openssl-3.1.3-hcfcfb64_0.conda#16b2c80ad196f18acd31b588ef28cb9a -https://conda.anaconda.org/conda-forge/win-64/tk-8.6.12-h8ffe710_0.tar.bz2#c69a5047cc9291ae40afd4a1ad6f0c0f +https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-hcfcfb64_0.conda#74405f2ccbb40af409fee1a71ce70dc6 https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2#515d77642eaa3639413c6b1bc3f94219 https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2#adbfb9f45d1004a26763652246a33764 https://conda.anaconda.org/conda-forge/win-64/python-3.8.17-h4de0772_0_cpython.conda#be2296eaf70eeb1cb83c4e95136e694a @@ -42,7 +42,7 @@ https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1 https://conda.anaconda.org/conda-forge/noarch/certifi-2023.7.22-pyhd8ed1ab_0.conda#7f3dbc9179b4dde7da98dfb151d0ad22 https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.2.0-pyhd8ed1ab_0.conda#313516e9a4b08b12dfb1e1cd390a96e3 https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2#3faab06a954c2a04039983f2c4a50d99 -https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.0-py38hd3f51b4_0.conda#7567ccff874a7822bc9061ffc3c9dc9d +https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.0-py38hd3f51b4_1.conda#7a11964db637a30b25586fdf5e5d3b5c https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2#43afe5ab04e35e17ba28649471dd7364 https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2#3cf04868fee0a029769bd41f4b2fbf2d diff --git a/.github/locks/lab_win-64_lab4.0.conda.lock b/.github/locks/lab_win-64_lab4.0.conda.lock index bac79975..ed32f45a 100644 --- a/.github/locks/lab_win-64_lab4.0.conda.lock +++ b/.github/locks/lab_win-64_lab4.0.conda.lock @@ -31,7 +31,7 @@ https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.18-h8d14728_1.tar.bz https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.43.0-hcfcfb64_0.conda#16c6f482e70cb3da41d0bee5d49c6bf3 https://conda.anaconda.org/conda-forge/win-64/libzlib-1.2.13-hcfcfb64_5.conda#5fdb9c6a113b6b6cb5e517fd972d5f41 https://conda.anaconda.org/conda-forge/win-64/openssl-3.1.3-hcfcfb64_0.conda#16b2c80ad196f18acd31b588ef28cb9a -https://conda.anaconda.org/conda-forge/win-64/tk-8.6.12-h8ffe710_0.tar.bz2#c69a5047cc9291ae40afd4a1ad6f0c0f +https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-hcfcfb64_0.conda#74405f2ccbb40af409fee1a71ce70dc6 https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2#515d77642eaa3639413c6b1bc3f94219 https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2#adbfb9f45d1004a26763652246a33764 https://conda.anaconda.org/conda-forge/win-64/python-3.11.5-h2628c8c_0_cpython.conda#28e01783b6a42f295fe07c7790aa75a1 @@ -44,7 +44,7 @@ https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1 https://conda.anaconda.org/conda-forge/noarch/certifi-2023.7.22-pyhd8ed1ab_0.conda#7f3dbc9179b4dde7da98dfb151d0ad22 https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.2.0-pyhd8ed1ab_0.conda#313516e9a4b08b12dfb1e1cd390a96e3 https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2#3faab06a954c2a04039983f2c4a50d99 -https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.0-py311h12c1d0e_0.conda#50b40f48b3559741ed9e980d1f3dbbc0 +https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.0-py311h12c1d0e_1.conda#8f521f35a7544cbf058b24e11561d53a https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2#43afe5ab04e35e17ba28649471dd7364 https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2#3cf04868fee0a029769bd41f4b2fbf2d diff --git a/.github/locks/lock_linux-64.conda.lock b/.github/locks/lock_linux-64.conda.lock index 62b1e5bd..90f38438 100644 --- a/.github/locks/lock_linux-64.conda.lock +++ b/.github/locks/lock_linux-64.conda.lock @@ -50,7 +50,7 @@ https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.11.5-h232c23b_1.conda# https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.40-hc3806b6_0.tar.bz2#69e2c796349cd9b273890bee0febfe1b https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda#47d31b792659ce70f470b5c82fdfb7a4 https://conda.anaconda.org/conda-forge/linux-64/reproc-cpp-14.2.4-hcb278e6_0.conda#ede8e0f849f2fee2f78cb488b4ea3b33 -https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.12-h27826a3_0.tar.bz2#5b8c42eb62e9fc961af70bdd6a26e168 +https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-h2797004_0.conda#513336054f884f95d9fd925748f41ef3 https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.5-hfc55251_0.conda#04b88013080254850d6c01ed54810589 https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.2-h659d440_0.conda#cd95826dbd331ed1be26bdf401432844 https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.6.2-h039dbb9_1.conda#29cf970521d30d113f3425b84cb250f6 @@ -78,7 +78,7 @@ https://conda.anaconda.org/conda-forge/noarch/packaging-23.1-pyhd8ed1ab_0.conda# https://conda.anaconda.org/conda-forge/noarch/pastel-0.2.1-pyhd8ed1ab_0.tar.bz2#a4eea5bff523f26442405bc5d1f52adb https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.9.6-pyhd8ed1ab_0.conda#be1e9f1c65a1ed0f2ae9352fec99db64 https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_1.conda#405678b942f2481cecdb3e010f4925d9 -https://conda.anaconda.org/conda-forge/linux-64/pycosat-0.6.4-py311hd4cff14_1.tar.bz2#17399f8b68b4592f098ab18d4fdb0ac4 +https://conda.anaconda.org/conda-forge/linux-64/pycosat-0.6.4-py311h459d7ec_2.conda#c534512f6429fdf03e97380552e17c01 https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2#076becd9e05608f8dc72757d5f3a91ff https://conda.anaconda.org/conda-forge/noarch/pylev-1.4.0-pyhd8ed1ab_0.tar.bz2#edf8651c4379d9d1495ad6229622d150 https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2#2a7de29fb590ca14b5243c4c812c8025 @@ -86,7 +86,7 @@ https://conda.anaconda.org/conda-forge/noarch/python-dotenv-1.0.0-pyhd8ed1ab_1.c https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py311h459d7ec_1.conda#52719a74ad130de8fb5d047dc91f247a https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.10.3-py311h46250e7_0.conda#da1b2b57ac17853cfeb4197d0595db45 https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.7-py311h2582759_1.conda#5e997292429a22ad50c11af0a2cb0f08 -https://conda.anaconda.org/conda-forge/linux-64/ruamel_yaml-0.15.80-py311hd4cff14_1008.tar.bz2#cfc7aa9d4e13c267fb6531d4788f2ede +https://conda.anaconda.org/conda-forge/linux-64/ruamel_yaml-0.15.80-py311h459d7ec_1009.conda#799197f6c21be0b366d1a593d1015a5c https://conda.anaconda.org/conda-forge/noarch/setuptools-68.2.2-pyhd8ed1ab_0.conda#fc2166155db840c634a1291a5c35a709 https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 https://conda.anaconda.org/conda-forge/noarch/smmap-3.0.5-pyh44b312d_0.tar.bz2#3a8dc70789709aa315325d5df06fb7e4 @@ -125,7 +125,7 @@ https://conda.anaconda.org/conda-forge/noarch/doitoml-0.2.0-pyhd8ed1ab_0.conda#6 https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.19.1-pyhd8ed1ab_0.conda#78aff5d2af74e6537c1ca73017f01f4f https://conda.anaconda.org/conda-forge/noarch/pydantic-2.3.0-pyhd8ed1ab_0.conda#55aaca64695fcebdfa8057c87ed180e7 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.2.0-pyhd8ed1ab_1.conda#34f7d568bf59d18e3fef8c405cbece21 -https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py311h38be061_1.tar.bz2#ec745aaae03cc47120c1f11ac7b7bcf5 +https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py311h38be061_2.conda#30a57eaa8e72cb0c2c84d6d7db32010c https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.24.4-pyhd8ed1ab_0.conda#c3feaf947264a59a125e8c26e98c3c5a https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.2.0-pyh38be061_0.conda#8a3ae7f6318376aa08ea753367bb7dd6 https://conda.anaconda.org/conda-forge/noarch/doitoml-with-jinja2-0.2.0-pyhd8ed1ab_0.conda#72a6f30d08084c8adfd59ff83574551f diff --git a/.github/locks/lock_osx-64.conda.lock b/.github/locks/lock_osx-64.conda.lock index c2c106ec..105ca771 100644 --- a/.github/locks/lock_osx-64.conda.lock +++ b/.github/locks/lock_osx-64.conda.lock @@ -36,7 +36,7 @@ https://conda.anaconda.org/conda-forge/osx-64/lz4-c-1.9.4-hf0c8a7f_0.conda#aa04f https://conda.anaconda.org/conda-forge/osx-64/openssl-3.1.3-h8a1eda9_0.conda#26f9b58f905547e658e9587f8e8cfe43 https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda#f17f77f2acf4d344734bda76829ce14e https://conda.anaconda.org/conda-forge/osx-64/reproc-cpp-14.2.4-hf0c8a7f_0.conda#aef754e1111b466a15227427f65a1733 -https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.12-h5dbffcc_0.tar.bz2#8e9480d9c47061db2ed1b4ecce519a7f +https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hef22860_0.conda#0c25eedcc888b6d765948ab62a18c03e https://conda.anaconda.org/conda-forge/osx-64/yaml-cpp-0.7.0-hf0c8a7f_2.tar.bz2#06c92b93b45ed2c842eb0893c5d2552a https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.5-h829000d_0.conda#80abc41d0c48b82fe0f04e7f42f5cb7e https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.2-hb884880_0.conda#80505a68783f01dc8d7308c075261b2f @@ -64,7 +64,7 @@ https://conda.anaconda.org/conda-forge/noarch/packaging-23.1-pyhd8ed1ab_0.conda# https://conda.anaconda.org/conda-forge/noarch/pastel-0.2.1-pyhd8ed1ab_0.tar.bz2#a4eea5bff523f26442405bc5d1f52adb https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.9.6-pyhd8ed1ab_0.conda#be1e9f1c65a1ed0f2ae9352fec99db64 https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_1.conda#405678b942f2481cecdb3e010f4925d9 -https://conda.anaconda.org/conda-forge/osx-64/pycosat-0.6.4-py311h5547dcb_1.tar.bz2#229e642050372d50ebdc24e2265ce8b2 +https://conda.anaconda.org/conda-forge/osx-64/pycosat-0.6.4-py311h2725bcf_2.conda#a83e2db2f9f4187076239d0091c215b9 https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2#076becd9e05608f8dc72757d5f3a91ff https://conda.anaconda.org/conda-forge/noarch/pylev-1.4.0-pyhd8ed1ab_0.tar.bz2#edf8651c4379d9d1495ad6229622d150 https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2#2a7de29fb590ca14b5243c4c812c8025 @@ -72,7 +72,7 @@ https://conda.anaconda.org/conda-forge/noarch/python-dotenv-1.0.0-pyhd8ed1ab_1.c https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.1-py311h2725bcf_1.conda#9283f991b5e5856a99f8aabba9927df5 https://conda.anaconda.org/conda-forge/osx-64/rpds-py-0.10.3-py311h299eb51_0.conda#c939f09ffd5f40e0439b1f5c801f728f https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml.clib-0.2.7-py311h5547dcb_1.conda#fdae97fc41b9e4aa53d644cca8ba6c54 -https://conda.anaconda.org/conda-forge/osx-64/ruamel_yaml-0.15.80-py311h5547dcb_1008.tar.bz2#42c63993b1aaba9dc3c69a36e368d11c +https://conda.anaconda.org/conda-forge/osx-64/ruamel_yaml-0.15.80-py311h2725bcf_1009.conda#73f2352190b9b03c0f77ba2bf9b33cba https://conda.anaconda.org/conda-forge/noarch/setuptools-68.2.2-pyhd8ed1ab_0.conda#fc2166155db840c634a1291a5c35a709 https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 https://conda.anaconda.org/conda-forge/noarch/smmap-3.0.5-pyh44b312d_0.tar.bz2#3a8dc70789709aa315325d5df06fb7e4 diff --git a/.github/locks/lock_win-64.conda.lock b/.github/locks/lock_win-64.conda.lock index 09e64948..a0448895 100644 --- a/.github/locks/lock_win-64.conda.lock +++ b/.github/locks/lock_win-64.conda.lock @@ -28,7 +28,7 @@ https://conda.anaconda.org/conda-forge/win-64/lz4-c-1.9.4-hcfcfb64_0.conda#e3472 https://conda.anaconda.org/conda-forge/win-64/lzo-2.10-he774522_1000.tar.bz2#d5cf4b7eaa52316f135eed9e8548ad57 https://conda.anaconda.org/conda-forge/win-64/openssl-3.1.3-hcfcfb64_0.conda#16b2c80ad196f18acd31b588ef28cb9a https://conda.anaconda.org/conda-forge/win-64/reproc-14.2.4-hcfcfb64_0.conda#059e1351c1affff15b16aec51c6967a6 -https://conda.anaconda.org/conda-forge/win-64/tk-8.6.12-h8ffe710_0.tar.bz2#c69a5047cc9291ae40afd4a1ad6f0c0f +https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-hcfcfb64_0.conda#74405f2ccbb40af409fee1a71ce70dc6 https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2#515d77642eaa3639413c6b1bc3f94219 https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2#adbfb9f45d1004a26763652246a33764 https://conda.anaconda.org/conda-forge/win-64/yaml-cpp-0.7.0-h63175ca_2.tar.bz2#27c8a78ba0cd18268cfc7b04c5512162 @@ -61,7 +61,7 @@ https://conda.anaconda.org/conda-forge/noarch/packaging-23.1-pyhd8ed1ab_0.conda# https://conda.anaconda.org/conda-forge/noarch/pastel-0.2.1-pyhd8ed1ab_0.tar.bz2#a4eea5bff523f26442405bc5d1f52adb https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.9.6-pyhd8ed1ab_0.conda#be1e9f1c65a1ed0f2ae9352fec99db64 https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_1.conda#405678b942f2481cecdb3e010f4925d9 -https://conda.anaconda.org/conda-forge/win-64/pycosat-0.6.4-py311ha68e1ae_1.tar.bz2#c7af04cd8a66f6d782982751200239d0 +https://conda.anaconda.org/conda-forge/win-64/pycosat-0.6.4-py311ha68e1ae_2.conda#61d5d995dfc20cfe519c3714a4dd6602 https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2#076becd9e05608f8dc72757d5f3a91ff https://conda.anaconda.org/conda-forge/noarch/pylev-1.4.0-pyhd8ed1ab_0.tar.bz2#edf8651c4379d9d1495ad6229622d150 https://conda.anaconda.org/conda-forge/noarch/python-dotenv-1.0.0-pyhd8ed1ab_1.conda#111e7f9edd31865e2659fa9aad8ec8fd @@ -69,7 +69,7 @@ https://conda.anaconda.org/conda-forge/win-64/pywin32-ctypes-0.2.2-py311h1ea47a8 https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.1-py311ha68e1ae_1.conda#2b4128962cd665153e946f2a88667a3b https://conda.anaconda.org/conda-forge/win-64/rpds-py-0.10.3-py311hc37eb10_0.conda#3c68a972297b95ff3bc9464db2466b61 https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml.clib-0.2.7-py311ha68e1ae_1.conda#654fbe603c79490699cd7447e4627aee -https://conda.anaconda.org/conda-forge/win-64/ruamel_yaml-0.15.80-py311ha68e1ae_1008.tar.bz2#c1c3cca1078977cfa12d36f32eb58fbe +https://conda.anaconda.org/conda-forge/win-64/ruamel_yaml-0.15.80-py311ha68e1ae_1009.conda#9fc711b8fe661f119eac57aa2f2748d2 https://conda.anaconda.org/conda-forge/noarch/setuptools-68.2.2-pyhd8ed1ab_0.conda#fc2166155db840c634a1291a5c35a709 https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 https://conda.anaconda.org/conda-forge/noarch/smmap-3.0.5-pyh44b312d_0.tar.bz2#3a8dc70789709aa315325d5df06fb7e4 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cac7bdc3..172e7d15 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ env: PYTHONUNBUFFERED: 1 MAMBA_NO_BANNER: 1 # ours - CACHE_EPOCH: 2 + CACHE_EPOCH: 3 ATEST_RETRIES: 3 defaults: diff --git a/.gitignore b/.gitignore index fa8836d5..18ea5602 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ __pycache__ -_d/ +src/_d/ _testoutput/ .env .envs/ diff --git a/CHANGELOG.md b/CHANGELOG.md index b0317895..6afa8099 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## v3.0.0a1 + +- remove tests and duplicated assets from wheel +- fix npm version numbers +- lazily load JSS and friends + ## v3.0.0a0 - Support JupyterLab 4 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 787b8209..14bb0054 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -46,6 +46,49 @@ then doit lab ``` +## Testing + +```bash +doit test +``` + +### Advanced testing + +#### JS Bundle analysis + +Create a `.env` file: + +```ini +WITH_JS_VIZ=1 +``` + +Then run: + +```bash +doit dist +``` + +See `build/reports/webpack`. + +#### JS Coverage + +Create a `.env` file: + +```ini +WITH_JS_COV=1 +``` + +Run + +```bash +doit test +# run some other excursions, by env var or `.env` file e.g. +# JLF_LAB=lab3.5 doit test +doit report +``` + +See `build/reports/nyc/index.html`. + ## Thinking about Committing ```bash diff --git a/atest/_keywords.resource b/atest/_keywords.resource index 79aeb2c2..de8db7d9 100644 --- a/atest/_keywords.resource +++ b/atest/_keywords.resource @@ -12,6 +12,7 @@ Library shutil *** Variables *** ${JUPYTERLAB_EXE} ["jupyter-lab"] +${JSCOV} ${EMPTY} *** Keywords *** diff --git a/dodo.py b/dodo.py index 9405e702..8f60533c 100644 --- a/dodo.py +++ b/dodo.py @@ -10,14 +10,19 @@ from doitoml import DoiTOML from ruamel.yaml import safe_load -if Path(".env").exists(): +DOT_ENV = Path(".env") + +dotenv_loaded = {} + +if DOT_ENV.exists(): try: import dotenv + dotenv_loaded = dotenv.dotenv_values(DOT_ENV) dotenv.load_dotenv() except ImportError as err: warnings.warn( - f"""{Path(".env")} found, but cannot load python-dotenv: {err}""", + f"{DOT_ENV} found, but cannot load python-dotenv: {err}", stacklevel=1, ) @@ -135,3 +140,7 @@ def task(): _phony("build", "*:build:*") _phony("test", "*:atest:*") _phony("lab", "dt:serve:lab") +_phony("report") + +if dotenv_loaded: + os.environ.update(dotenv_loaded) diff --git a/package.json b/package.json index f12f6571..7d6540fc 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "source-map-loader": "^4.0.1", "ts-node": "^10.9.1", "typescript": "~5.2.2", + "webpack-bundle-analyzer": "^4.9.1", "yarn-berry-deduplicate": "^6.1.1" }, "doitoml": { @@ -99,7 +100,6 @@ ] }, "env": { - "JLF_SHARED": "src/jupyterlab_fonts/_d/share/jupyter/labextensions/@deathbeds", "NX_CACHE_DIRECTORY": "${JLF_ROOT}/build/.cache/nx", "NX_PROJECT_GRAPH_CACHE_DIRECTORY": "${JLF_ROOT}/build/.cache/nx", "YARN_CACHE_FOLDER": "${JLF_ROOT}/build/.cache/yarn" @@ -212,6 +212,9 @@ }, "report": { "nyc": { + "uptodate": [ + false + ], "file_dep": [ "::yarn_history" ], diff --git a/packages/_meta/package.json b/packages/_meta/package.json index 2b90c4b1..b259477d 100644 --- a/packages/_meta/package.json +++ b/packages/_meta/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@deathbeds/meta-jupyterlab-fonts", - "version": "3.0.0.alpha0", + "version": "3.0.0-alpha.1", "scripts": { "build": "tsc -b --sourceMap", "build:cov": "tsc -b --inlineSourceMap", diff --git a/packages/jupyterlab-font-anonymous-pro/package.json b/packages/jupyterlab-font-anonymous-pro/package.json index 18e933da..faa5a865 100644 --- a/packages/jupyterlab-font-anonymous-pro/package.json +++ b/packages/jupyterlab-font-anonymous-pro/package.json @@ -1,6 +1,6 @@ { "name": "@deathbeds/jupyterlab-font-anonymous-pro", - "version": "3.0.0.alpha0", + "version": "3.0.0-alpha.1", "description": "Anonymous Pro Fonts for JupyterLab", "license": "BSD-3-Clause", "author": "Dead Pixels Collective", @@ -24,7 +24,7 @@ }, "types": "lib/index.d.ts", "dependencies": { - "@deathbeds/jupyterlab-fonts": "~3.0.0.alpha0", + "@deathbeds/jupyterlab-fonts": "~3.0.0-alpha.1", "@jupyterlab/application": "3 || 4", "typeface-anonymous-pro": "^1.1.13" }, @@ -46,10 +46,13 @@ "../../dist/deathbeds-jupyterlab-font-anonymous-pro-${JLF_VERSION}.tgz" ], "dist_pkg_json": [ - "../../src/jupyterlab_fonts/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-font-anonymous-pro/package.json" + "../../src/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-font-anonymous-pro/package.json" ], "here": [ "." + ], + "webpack_config": [ + "webpack.config.js" ] }, "tasks": { @@ -62,6 +65,7 @@ ], "file_dep": [ "package.json", + "::webpack_config", "::js-root::tsbuildinfo", "::js-root::yarn_history" ], @@ -98,7 +102,7 @@ }, "jupyterlab": { "extension": true, - "outputDir": "../../src/jupyterlab_fonts/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-font-anonymous-pro", + "outputDir": "../../src/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-font-anonymous-pro", "webpackConfig": "./webpack.config.js", "sharedPackages": { "@deathbeds/jupyterlab-fonts": { diff --git a/packages/jupyterlab-font-anonymous-pro/webpack.config.js b/packages/jupyterlab-font-anonymous-pro/webpack.config.js index 0ee88a2a..adeccc01 100644 --- a/packages/jupyterlab-font-anonymous-pro/webpack.config.js +++ b/packages/jupyterlab-font-anonymous-pro/webpack.config.js @@ -1,16 +1,32 @@ +let rules = []; +let plugins = []; + +const WITH_JS_COV = !!JSON.parse((process.env.WITH_JS_COV || '').toLowerCase()); +const WITH_JS_VIZ = !!JSON.parse((process.env.WITH_JS_VIZ || '').toLowerCase()); + +if (WITH_JS_COV) { + console.error('Building with coverage'); + rules.push({ test: /\.js$/, use: ['@ephesoft/webpack.istanbul.loader'] }); +} + +if (WITH_JS_VIZ) { + const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer'); + const path = require('path'); + const pkg = path.basename(__dirname); + const reportFilename = path.resolve(__dirname, `../../build/reports/webpack/${pkg}.html`); + console.error('Building with visualized bundle', reportFilename); + plugins.push( + new BundleAnalyzerPlugin({ + analyzerMode: 'static', + reportFilename, + openAnalyzer: false, + }), + ); +} + module.exports = { - output: { - clean: true, - }, + output: { clean: true }, devtool: 'source-map', - module: { - rules: [ - { - test: /\.js$/, - use: process.env.WITH_JS_COV - ? ['@ephesoft/webpack.istanbul.loader'] - : ['source-map-loader'], - }, - ], - }, + module: { rules }, + plugins, }; diff --git a/packages/jupyterlab-font-atkinson-hyperlegible/package.json b/packages/jupyterlab-font-atkinson-hyperlegible/package.json index e4d06cb6..877f9716 100644 --- a/packages/jupyterlab-font-atkinson-hyperlegible/package.json +++ b/packages/jupyterlab-font-atkinson-hyperlegible/package.json @@ -1,6 +1,6 @@ { "name": "@deathbeds/jupyterlab-font-atkinson-hyperlegible", - "version": "3.0.0.alpha0", + "version": "3.0.0-alpha.1", "description": "Atkinson Hyperlegible for JupyterLab", "license": "BSD-3-Clause", "author": "Dead Pixels Collective", @@ -23,7 +23,7 @@ }, "types": "lib/index.d.ts", "dependencies": { - "@deathbeds/jupyterlab-fonts": "~3.0.0.alpha0", + "@deathbeds/jupyterlab-fonts": "~3.0.0-alpha.1", "@fontsource/atkinson-hyperlegible": "^5.0.12", "@jupyterlab/application": "3 || 4" }, @@ -49,7 +49,10 @@ "." ], "dist_pkg_json": [ - "../../src/jupyterlab_fonts/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-font-atkinson-hyperlegible/package.json" + "../../src/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-font-atkinson-hyperlegible/package.json" + ], + "webpack_config": [ + "webpack.config.js" ] }, "tasks": { @@ -61,6 +64,7 @@ ] ], "file_dep": [ + "::webpack_config", "package.json", "::js-root::tsbuildinfo", "::js-root::yarn_history" @@ -98,7 +102,7 @@ }, "jupyterlab": { "extension": true, - "outputDir": "../../src/jupyterlab_fonts/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-font-atkinson-hyperlegible", + "outputDir": "../../src/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-font-atkinson-hyperlegible", "webpackConfig": "./webpack.config.js", "sharedPackages": { "@deathbeds/jupyterlab-fonts": { diff --git a/packages/jupyterlab-font-atkinson-hyperlegible/webpack.config.js b/packages/jupyterlab-font-atkinson-hyperlegible/webpack.config.js index 0ee88a2a..adeccc01 100644 --- a/packages/jupyterlab-font-atkinson-hyperlegible/webpack.config.js +++ b/packages/jupyterlab-font-atkinson-hyperlegible/webpack.config.js @@ -1,16 +1,32 @@ +let rules = []; +let plugins = []; + +const WITH_JS_COV = !!JSON.parse((process.env.WITH_JS_COV || '').toLowerCase()); +const WITH_JS_VIZ = !!JSON.parse((process.env.WITH_JS_VIZ || '').toLowerCase()); + +if (WITH_JS_COV) { + console.error('Building with coverage'); + rules.push({ test: /\.js$/, use: ['@ephesoft/webpack.istanbul.loader'] }); +} + +if (WITH_JS_VIZ) { + const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer'); + const path = require('path'); + const pkg = path.basename(__dirname); + const reportFilename = path.resolve(__dirname, `../../build/reports/webpack/${pkg}.html`); + console.error('Building with visualized bundle', reportFilename); + plugins.push( + new BundleAnalyzerPlugin({ + analyzerMode: 'static', + reportFilename, + openAnalyzer: false, + }), + ); +} + module.exports = { - output: { - clean: true, - }, + output: { clean: true }, devtool: 'source-map', - module: { - rules: [ - { - test: /\.js$/, - use: process.env.WITH_JS_COV - ? ['@ephesoft/webpack.istanbul.loader'] - : ['source-map-loader'], - }, - ], - }, + module: { rules }, + plugins, }; diff --git a/packages/jupyterlab-font-dejavu-sans-mono/package.json b/packages/jupyterlab-font-dejavu-sans-mono/package.json index 6df79122..1475bcad 100644 --- a/packages/jupyterlab-font-dejavu-sans-mono/package.json +++ b/packages/jupyterlab-font-dejavu-sans-mono/package.json @@ -1,6 +1,6 @@ { "name": "@deathbeds/jupyterlab-font-dejavu-sans-mono", - "version": "3.0.0.alpha0", + "version": "3.0.0-alpha.1", "description": "Dejavu Sans Mono Fonts for JupyterLab", "license": "BSD-3-Clause", "author": "Dead Pixels Collective", @@ -25,7 +25,7 @@ }, "types": "lib/index.d.ts", "dependencies": { - "@deathbeds/jupyterlab-fonts": "~3.0.0.alpha0", + "@deathbeds/jupyterlab-fonts": "~3.0.0-alpha.1", "@jupyterlab/application": "3 || 4" }, "devDependencies": { @@ -53,7 +53,10 @@ "." ], "dist_pkg_json": [ - "../../src/jupyterlab_fonts/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-font-dejavu-sans-mono/package.json" + "../../src/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-font-dejavu-sans-mono/package.json" + ], + "webpack_config": [ + "webpack.config.js" ], "prebuild_targets": [ "style/fonts/DejaVuSansMono-Bold.woff2", @@ -87,6 +90,7 @@ ] ], "file_dep": [ + "::webpack_config", "package.json", "::all_style", "::js-root::tsbuildinfo", @@ -127,7 +131,7 @@ }, "jupyterlab": { "extension": true, - "outputDir": "../../src/jupyterlab_fonts/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-font-dejavu-sans-mono", + "outputDir": "../../src/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-font-dejavu-sans-mono", "webpackConfig": "./webpack.config.js", "sharedPackages": { "@deathbeds/jupyterlab-fonts": { diff --git a/packages/jupyterlab-font-dejavu-sans-mono/webpack.config.js b/packages/jupyterlab-font-dejavu-sans-mono/webpack.config.js index 0ee88a2a..adeccc01 100644 --- a/packages/jupyterlab-font-dejavu-sans-mono/webpack.config.js +++ b/packages/jupyterlab-font-dejavu-sans-mono/webpack.config.js @@ -1,16 +1,32 @@ +let rules = []; +let plugins = []; + +const WITH_JS_COV = !!JSON.parse((process.env.WITH_JS_COV || '').toLowerCase()); +const WITH_JS_VIZ = !!JSON.parse((process.env.WITH_JS_VIZ || '').toLowerCase()); + +if (WITH_JS_COV) { + console.error('Building with coverage'); + rules.push({ test: /\.js$/, use: ['@ephesoft/webpack.istanbul.loader'] }); +} + +if (WITH_JS_VIZ) { + const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer'); + const path = require('path'); + const pkg = path.basename(__dirname); + const reportFilename = path.resolve(__dirname, `../../build/reports/webpack/${pkg}.html`); + console.error('Building with visualized bundle', reportFilename); + plugins.push( + new BundleAnalyzerPlugin({ + analyzerMode: 'static', + reportFilename, + openAnalyzer: false, + }), + ); +} + module.exports = { - output: { - clean: true, - }, + output: { clean: true }, devtool: 'source-map', - module: { - rules: [ - { - test: /\.js$/, - use: process.env.WITH_JS_COV - ? ['@ephesoft/webpack.istanbul.loader'] - : ['source-map-loader'], - }, - ], - }, + module: { rules }, + plugins, }; diff --git a/packages/jupyterlab-font-fira-code/package.json b/packages/jupyterlab-font-fira-code/package.json index fb673ce3..a176f135 100644 --- a/packages/jupyterlab-font-fira-code/package.json +++ b/packages/jupyterlab-font-fira-code/package.json @@ -1,6 +1,6 @@ { "name": "@deathbeds/jupyterlab-font-fira-code", - "version": "3.0.0.alpha0", + "version": "3.0.0-alpha.1", "description": "Fira Code Fonts for JupyterLab", "license": "BSD-3-Clause", "author": "Dead Pixels Collective", @@ -23,7 +23,7 @@ }, "types": "lib/index.d.ts", "dependencies": { - "@deathbeds/jupyterlab-fonts": "~3.0.0.alpha0", + "@deathbeds/jupyterlab-fonts": "~3.0.0-alpha.1", "@jupyterlab/application": "3 || 4", "firacode": "^6.2.0" }, @@ -48,7 +48,10 @@ "." ], "dist_pkg_json": [ - "../../src/jupyterlab_fonts/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-font-fira-code/package.json" + "../../src/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-font-fira-code/package.json" + ], + "webpack_config": [ + "webpack.config.js" ] }, "tasks": { @@ -60,6 +63,7 @@ ] ], "file_dep": [ + "::webpack_config", "package.json", "::js-root::tsbuildinfo", "::js-root::yarn_history" @@ -97,7 +101,7 @@ }, "jupyterlab": { "extension": true, - "outputDir": "../../src/jupyterlab_fonts/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-font-fira-code", + "outputDir": "../../src/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-font-fira-code", "webpackConfig": "./webpack.config.js", "sharedPackages": { "@deathbeds/jupyterlab-fonts": { diff --git a/packages/jupyterlab-font-fira-code/webpack.config.js b/packages/jupyterlab-font-fira-code/webpack.config.js index 0ee88a2a..adeccc01 100644 --- a/packages/jupyterlab-font-fira-code/webpack.config.js +++ b/packages/jupyterlab-font-fira-code/webpack.config.js @@ -1,16 +1,32 @@ +let rules = []; +let plugins = []; + +const WITH_JS_COV = !!JSON.parse((process.env.WITH_JS_COV || '').toLowerCase()); +const WITH_JS_VIZ = !!JSON.parse((process.env.WITH_JS_VIZ || '').toLowerCase()); + +if (WITH_JS_COV) { + console.error('Building with coverage'); + rules.push({ test: /\.js$/, use: ['@ephesoft/webpack.istanbul.loader'] }); +} + +if (WITH_JS_VIZ) { + const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer'); + const path = require('path'); + const pkg = path.basename(__dirname); + const reportFilename = path.resolve(__dirname, `../../build/reports/webpack/${pkg}.html`); + console.error('Building with visualized bundle', reportFilename); + plugins.push( + new BundleAnalyzerPlugin({ + analyzerMode: 'static', + reportFilename, + openAnalyzer: false, + }), + ); +} + module.exports = { - output: { - clean: true, - }, + output: { clean: true }, devtool: 'source-map', - module: { - rules: [ - { - test: /\.js$/, - use: process.env.WITH_JS_COV - ? ['@ephesoft/webpack.istanbul.loader'] - : ['source-map-loader'], - }, - ], - }, + module: { rules }, + plugins, }; diff --git a/packages/jupyterlab-fonts/package.json b/packages/jupyterlab-fonts/package.json index 034fd1f3..e7408378 100644 --- a/packages/jupyterlab-fonts/package.json +++ b/packages/jupyterlab-fonts/package.json @@ -1,6 +1,6 @@ { "name": "@deathbeds/jupyterlab-fonts", - "version": "3.0.0.alpha0", + "version": "3.0.0-alpha.1", "description": "Interactive Typography and Style for JupyterLab", "license": "BSD-3-Clause", "author": "Dead Pixels Collective", @@ -70,7 +70,7 @@ "." ], "dist_pkg_json": [ - "../../src/jupyterlab_fonts/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-fonts/package.json" + "../../src/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-fonts/package.json" ], "prebuild_deps": [ "schema/fonts.json" @@ -78,6 +78,9 @@ "prebuild_targets": [ "src/_schema.d.ts", "lib/_schema.d.ts" + ], + "webpack_config": [ + "webpack.config.js" ] }, "tasks": { @@ -104,6 +107,7 @@ ] ], "file_dep": [ + "::webpack_config", "package.json", "::all_style", "::all_ts", @@ -146,7 +150,15 @@ "jupyterlab": { "extension": "lib/plugin.js", "schemaDir": "schema", - "outputDir": "../../src/jupyterlab_fonts/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-fonts", - "webpackConfig": "./webpack.config.js" + "outputDir": "../../src/_d/share/jupyter/labextensions/@deathbeds/jupyterlab-fonts", + "webpackConfig": "./webpack.config.js", + "sharedPackages": { + "jss": { + "bundled": true + }, + "jss-preset-default": { + "bundled": true + } + } } } diff --git a/packages/jupyterlab-fonts/src/manager.ts b/packages/jupyterlab-fonts/src/manager.ts index 09b85176..8f2c1352 100644 --- a/packages/jupyterlab-fonts/src/manager.ts +++ b/packages/jupyterlab-fonts/src/manager.ts @@ -110,7 +110,7 @@ export class FontManager implements IFontManager { if (settings) { settings.changed.connect(this.settingsUpdate, this); } - this.settingsUpdate(); + void this.settingsUpdate(); } setTransientNotebookStyle( @@ -471,12 +471,13 @@ export class FontManager implements IFontManager { }); } - settingsUpdate(): void { + async settingsUpdate(): Promise { let meta: SCHEMA.ISettings = { styles: this._settings.get('styles').composite as SCHEMA.IStyles, }; - if (this.enabled) { - this._stylist.stylesheet(meta, void 0, true); + if (this.enabled && meta.styles && Object.keys(meta.styles).length) { + await this._stylist.ensureJss(); + this._stylist.stylesheet(meta); } else { this._stylist.hack(false); } diff --git a/packages/jupyterlab-fonts/src/stylist.ts b/packages/jupyterlab-fonts/src/stylist.ts index eb1b39df..5b853010 100644 --- a/packages/jupyterlab-fonts/src/stylist.ts +++ b/packages/jupyterlab-fonts/src/stylist.ts @@ -1,11 +1,10 @@ import { Cell, ICellModel } from '@jupyterlab/cells'; import { PathExt, PageConfig, URLExt } from '@jupyterlab/coreutils'; import { Notebook, NotebookPanel } from '@jupyterlab/notebook'; -import { JSONExt } from '@lumino/coreutils'; +import { JSONExt, PromiseDelegate } from '@lumino/coreutils'; import { Debouncer } from '@lumino/polling'; import { Signal } from '@lumino/signaling'; -import * as JSS from 'jss'; -import jssPresetDefault from 'jss-preset-default'; +import type * as JSS from 'jss'; import * as compat from './labcompat'; import * as SCHEMA from './schema'; @@ -20,7 +19,7 @@ export class Stylist { private _globalStyles: HTMLStyleElement; private _notebookStyles = new Map(); private _transientNotebookStyles = new Map(); - private _jss = JSS.create(jssPresetDefault()); + private _jss: JSS.Jss | null; private _fontCache = new Map(); private _cacheUpdated = new Signal(this); private _cellStyleCache = new Map(); @@ -31,10 +30,11 @@ export class Stylist { this._globalStyles = document.createElement('style'); this._globalStyles.classList.add(DOM.sheet); this._globalStyles.classList.add(DOM.modGlobal); - this._notebookContentDebouncer = new Debouncer((notebook: Notebook) => { - this._onNotebookModelContentChanged(notebook); + this._notebookContentDebouncer = new Debouncer(async (notebook: Notebook) => { + await this._onNotebookModelContentChanged(notebook); }, 100); } + get cacheUpdated() { return this._cacheUpdated; } @@ -50,19 +50,27 @@ export class Stylist { this, ); panel.disposed.connect(this._onDisposed, this); - this._onNotebookModelContentChanged(panel.content); + this._onNotebookModelContentChanged(panel.content) + .then(() => this.hack()) + .catch(console.warn); this.hack(); } else { this._onDisposed(panel); } } + async ensureJss() { + if (!this._jss) { + this._jss = await Private.ensureJSS(); + } + } + private _debouncedNotebookContentChanged(notebook: Notebook) { this._notebookContentDebouncer.invoke(notebook).catch(console.warn); } /** hoist cell metadata to data attributes */ - private _onNotebookModelContentChanged(notebook: Notebook) { + private async _onNotebookModelContentChanged(notebook: Notebook): Promise { const newCellCount = notebook.widgets.length; const oldCellCount = this._notebookCellCount.get(notebook) || -1; @@ -83,7 +91,8 @@ export class Stylist { const meta = compat.getCellMetadata(cell.model, PACKAGE_NAME) || JSONExt.emptyObject; - let cached = this._cellStyleCache.get(cell.model.id) || JSONExt.emptyObject; + const cached = this._cellStyleCache.get(cell.model.id) || JSONExt.emptyObject; + console.log(meta, cached); if (!JSONExt.deepEqual(meta, cached)) { needsUpdate = true; } @@ -94,6 +103,8 @@ export class Stylist { return; } + await this.ensureJss(); + this.stylesheet( notebook.model ? (compat.getPanelMetadata(notebook.model, PACKAGE_NAME) as SCHEMA.ISettings) @@ -145,7 +156,11 @@ export class Stylist { return this._transientNotebookStyles.get(panel) || null; } - stylesheet(meta: SCHEMA.ISettings | null, panel?: NotebookPanel, clear = false) { + stylesheet(meta: SCHEMA.ISettings | null, panel?: NotebookPanel) { + if (!this._jss) { + console.error('JSS not loaded yet'); + return; + } let sheet = panel ? this._notebookStyles.get(panel) : this._globalStyles; let style: SCHEMA.IStyles | null = null; @@ -346,3 +361,24 @@ export class Stylist { } } } + +namespace Private { + let _jss: JSS.Jss; + let _loading: PromiseDelegate | null; + + export async function ensureJSS(): Promise { + if (_jss) { + return _jss; + } + if (!_loading) { + _loading = new PromiseDelegate(); + const [jss, jssPresetDefault] = await Promise.all([ + import('jss'), + import('jss-preset-default'), + ]); + _jss = jss.create(jssPresetDefault.default()); + _loading.resolve(_jss); + } + return _loading.promise; + } +} diff --git a/packages/jupyterlab-fonts/webpack.config.js b/packages/jupyterlab-fonts/webpack.config.js index 0ee88a2a..adeccc01 100644 --- a/packages/jupyterlab-fonts/webpack.config.js +++ b/packages/jupyterlab-fonts/webpack.config.js @@ -1,16 +1,32 @@ +let rules = []; +let plugins = []; + +const WITH_JS_COV = !!JSON.parse((process.env.WITH_JS_COV || '').toLowerCase()); +const WITH_JS_VIZ = !!JSON.parse((process.env.WITH_JS_VIZ || '').toLowerCase()); + +if (WITH_JS_COV) { + console.error('Building with coverage'); + rules.push({ test: /\.js$/, use: ['@ephesoft/webpack.istanbul.loader'] }); +} + +if (WITH_JS_VIZ) { + const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer'); + const path = require('path'); + const pkg = path.basename(__dirname); + const reportFilename = path.resolve(__dirname, `../../build/reports/webpack/${pkg}.html`); + console.error('Building with visualized bundle', reportFilename); + plugins.push( + new BundleAnalyzerPlugin({ + analyzerMode: 'static', + reportFilename, + openAnalyzer: false, + }), + ); +} + module.exports = { - output: { - clean: true, - }, + output: { clean: true }, devtool: 'source-map', - module: { - rules: [ - { - test: /\.js$/, - use: process.env.WITH_JS_COV - ? ['@ephesoft/webpack.istanbul.loader'] - : ['source-map-loader'], - }, - ], - }, + module: { rules }, + plugins, }; diff --git a/pyproject.toml b/pyproject.toml index 0dcae3b7..9c0f652a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,7 @@ dynamic = ["description"] name = "jupyterlab_fonts" readme = "README.md" requires-python = ">=3.8" -version = "3.0.0a0" +version = "3.0.0a1" [project.urls] "Bug Tracker" = "https://github.com/deathbeds/jupyterlab-fonts/issues" @@ -28,10 +28,10 @@ version = "3.0.0a0" "Source" = "https://github.com/deathbeds/jupyterlab-fonts" [tool.flit.sdist] -include = ["src/jupyterlab_fonts/_d"] +include = ["src/_d"] [tool.flit.external-data] -directory = "src/jupyterlab_fonts/_d" +directory = "src/_d" [tool.doit] backend = "sqlite3" @@ -78,6 +78,7 @@ THIS_PY = "3.11" THIS_SUBDIR = "linux-64" # js WITH_JS_COV = 0 +WITH_JS_VIZ = 0 # binder DEMO_IN_BINDER = 0 # shorthand @@ -89,11 +90,13 @@ JLF_ROBOT_REPORT = "build/reports/robot/${THIS_SUBDIR}_${JLF_LAB}" [tool.doitoml.paths] all_lock_py = [":glob::.github/specs::*.py"] -all_py = ["::dodo", "::all_scripts", "::all_py_src", "::all_lock_py"] +all_py = ["::dodo", "::all_scripts", "::all_py_src", "::all_lock_py", "::all_py_test"] all_py_src = [":rglob::src::*.py"] +all_py_test = [":rglob::tests::*.py"] all_robot = [":rglob::atest::*.robot", ":rglob::atest::*.resource"] all_scripts = [":glob::scripts::*.py"] all_toml = ["::ppt"] +atest_all_report = ["build/reports/robot/ALL/log.html"] atest_dir = ["atest"] atest_report = ["${JLF_ROBOT_REPORT}"] atest_report_html = ["${JLF_ROBOT_REPORT}/log.html"] @@ -299,8 +302,7 @@ actions = [ [ "::conda_run_lab", "pytest", - "--pyargs", - "${PY_NAME}", + "tests", "--cov", "${PY_NAME}", "--cov-branch", @@ -313,7 +315,7 @@ actions = [ "--self-contained-html", ], ] -file_dep = ["::ppt", "::all_py_src", "::pip_freeze"] +file_dep = ["::ppt", "::all_py_test", "::all_py_src", "::pip_freeze"] meta = {doitoml = {env = {COVERAGE_FILE = "build/reports/pytest/${THIS_SUBDIR}_${DEFAULT_LAB}/.coverage"}}} targets = ["::pytest_html_cov"] @@ -376,6 +378,21 @@ lint:dryrun: env: JUPYTERLAB_CONDA_PREFIX: ::env_lab_prefix {% endfor %} + +report:rebot: + doc: combine robot reports from multiple runs + uptodate: + - false + actions: + - py: + scripts.actions:rebot: + kwargs: + log_html: ::atest_all_report + conda_run: {{ tokens["dt:conda_run_atest"] }} + file_dep: + - ::env_atest_history + targets: + - ::atest_all_report """ [tool.doitoml.tasks.serve.lab] diff --git a/scripts/actions.py b/scripts/actions.py index 19df9f84..cea91772 100644 --- a/scripts/actions.py +++ b/scripts/actions.py @@ -136,6 +136,8 @@ def maybe_atest_one( # robot f"--variable=ATTEMPT:{ attempt }", f"""--variable=OS:{ os.environ["THIS_SUBDIR"] }""", + f"""--variable=PY:{ os.environ.get("JLF_PY", os.environ.get("THIS_PY")) }""", + f"""--variable=LAB:{ os.environ["JLF_LAB"] }""", f"--variable=JSCOV:{jscov[0]}", "--variable=ROOT:../../..", "--outputdir", @@ -194,3 +196,38 @@ def touch(*paths: str) -> None: if not path.parent.exists(): path.parent.mkdir(parents=True) path.touch() + + +def rebot(log_html, conda_run): + """Merge robot reports. + + In the future: + - fix relative paths + - maybe run libdoc + """ + cwd = Path(log_html[0]).parent + log_root = cwd.parent + if not log_root.is_dir(): + print(f"Can't even look for `output.xml` in missing {log_root}") + return False + shutil.rmtree(cwd, ignore_errors=True) + cwd.mkdir() + all_output = sorted( + p + for p in log_root.glob("*/output.xml") + if not p.parent.name.endswith("a_0") or p.parent.name == "ALL" + ) + if not all_output: + print(f"No robot non dry-run `output.xml` files found in {log_root}") + return False + subprocess.call( + [ + *conda_run, + "rebot", + "--processemptysuite", + "--nostatusrc", + *all_output, + ], + cwd=str(cwd), + ) + return True diff --git a/src/jupyterlab_fonts/_version.py b/src/jupyterlab_fonts/_version.py index e567f530..95520727 100644 --- a/src/jupyterlab_fonts/_version.py +++ b/src/jupyterlab_fonts/_version.py @@ -4,9 +4,9 @@ from pathlib import Path HERE = Path(__file__).parent -_D = HERE / "_d" +_D = HERE.parent / "_d" -__prefix__ = _D if _D.exists() else Path(sys.prefix) +__prefix__ = _D if _D.exists() and _D.parent.name == "src" else Path(sys.prefix) __pkg__ = { f"{p.parent.parent.name}/{p.parent.name}": p diff --git a/src/jupyterlab_fonts/tests/__init__.py b/tests/__init__.py similarity index 100% rename from src/jupyterlab_fonts/tests/__init__.py rename to tests/__init__.py diff --git a/src/jupyterlab_fonts/tests/test_metadata.py b/tests/test_metadata.py similarity index 100% rename from src/jupyterlab_fonts/tests/test_metadata.py rename to tests/test_metadata.py diff --git a/yarn.lock b/yarn.lock index d3b9b01c..3547a552 100644 --- a/yarn.lock +++ b/yarn.lock @@ -611,7 +611,7 @@ __metadata: languageName: unknown linkType: soft -"@discoveryjs/json-ext@npm:^0.5.0": +"@discoveryjs/json-ext@npm:0.5.7, @discoveryjs/json-ext@npm:^0.5.0": version: 0.5.7 resolution: "@discoveryjs/json-ext@npm:0.5.7" checksum: 2176d301cc258ea5c2324402997cf8134ebb212469c0d397591636cea8d3c02f2b3cf9fd58dcb748c7a0dade77ebdc1b10284fa63e608c033a1db52fddc69918 @@ -2219,6 +2219,13 @@ __metadata: languageName: node linkType: hard +"@polka/url@npm:^1.0.0-next.20": + version: 1.0.0-next.23 + resolution: "@polka/url@npm:1.0.0-next.23" + checksum: 4b0330de1ceecd1002c7e7449094d0c41f2ed0e21765f4835ccc7b003f2f024ac557d503b9ffdf0918cf50b80d5b8c99dfc5a91927e7b3c468b09c6bb42a3c41 + languageName: node + linkType: hard + "@rjsf/core@npm:^5.1.0": version: 5.13.0 resolution: "@rjsf/core@npm:5.13.0" @@ -2375,36 +2382,36 @@ __metadata: linkType: hard "@types/emscripten@npm:^1.39.6": - version: 1.39.7 - resolution: "@types/emscripten@npm:1.39.7" - checksum: 9871e4495358cc06cc45b2798022cd097d8ac2eb5b2fae7c276c6c5cadea05507150fad053c73ed346d4cbd844c50a3438604e5d7c3c2a7446b703cacb1ce172 + version: 1.39.8 + resolution: "@types/emscripten@npm:1.39.8" + checksum: adccdfcec3a9829aaeee580259d21653ef15ae638b88c2e310d1d4184cfc83809b463fabdd0050e018c7b6b966166d973d71f3d59601644947d0235e98b77e64 languageName: node linkType: hard "@types/eslint-scope@npm:^3.7.3": - version: 3.7.4 - resolution: "@types/eslint-scope@npm:3.7.4" + version: 3.7.5 + resolution: "@types/eslint-scope@npm:3.7.5" dependencies: "@types/eslint": "*" "@types/estree": "*" - checksum: ea6a9363e92f301cd3888194469f9ec9d0021fe0a397a97a6dd689e7545c75de0bd2153dfb13d3ab532853a278b6572c6f678ce846980669e41029d205653460 + checksum: e91ce335c3791c2cf6084caa0073f90d5b7ae3fcf27785ade8422b7d896159fa14a5a3f1efd31ef03e9ebc1ff04983288280dfe8c9a5579a958539f59df8cc9f languageName: node linkType: hard "@types/eslint@npm:*": - version: 8.44.2 - resolution: "@types/eslint@npm:8.44.2" + version: 8.44.3 + resolution: "@types/eslint@npm:8.44.3" dependencies: "@types/estree": "*" "@types/json-schema": "*" - checksum: 25b3ef61bae96350026593c9914c8a61ee02fde48ab8d568a73ee45032f13c0028c62e47a5ff78715af488dfe8e8bba913f7d30f859f60c7f9e639d328e80482 + checksum: 3a0d152785400cb83a887a646d9c8877468e686b6fb439635c64856b70dbe91019e588d2b32bc923cd60642bf5dca7f70b2cf61eb431cf25fbdf2932f6e13dd3 languageName: node linkType: hard "@types/estree@npm:*, @types/estree@npm:^1.0.0": - version: 1.0.1 - resolution: "@types/estree@npm:1.0.1" - checksum: e9aa175eacb797216fafce4d41e8202c7a75555bc55232dee0f9903d7171f8f19f0ae7d5191bb1a88cb90e65468be508c0df850a9fb81b4433b293a5a749899d + version: 1.0.2 + resolution: "@types/estree@npm:1.0.2" + checksum: aeedb1b2fe20cbe06f44b99b562bf9703e360bfcdf5bb3d61d248182ee1dd63500f2474e12f098ffe1f5ac3202b43b3e18ec99902d9328d5374f5512fa077e45 languageName: node linkType: hard @@ -2470,16 +2477,16 @@ __metadata: linkType: hard "@types/node@npm:*": - version: 20.6.3 - resolution: "@types/node@npm:20.6.3" - checksum: 444a6f1f41cfa8d3e20ce0108e6e43960fb2ae0e481f233bb1c14d6252aa63a92e021de561cd317d9fdb411688f871065f40175a1f18763282dee2613a08f8a3 + version: 20.6.4 + resolution: "@types/node@npm:20.6.4" + checksum: 5fdf81c8760b620a3f3b2cdac1688008f0c73a00af98e067b4621a572d39b831eaeee8fbd7300cd06667dec31d8b032fbb8e1bbedae56ec6ff1230a338b4e8a5 languageName: node linkType: hard "@types/normalize-package-data@npm:^2.4.0": - version: 2.4.1 - resolution: "@types/normalize-package-data@npm:2.4.1" - checksum: e87bccbf11f95035c89a132b52b79ce69a1e3652fe55962363063c9c0dae0fe2477ebc585e03a9652adc6f381d24ba5589cc5e51849df4ced3d3e004a7d40ed5 + version: 2.4.2 + resolution: "@types/normalize-package-data@npm:2.4.2" + checksum: 2132e4054711e6118de967ae3a34f8c564e58d71fbcab678ec2c34c14659f638a86c35a0fd45237ea35a4a03079cf0a485e3f97736ffba5ed647bfb5da086b03 languageName: node linkType: hard @@ -2505,9 +2512,9 @@ __metadata: linkType: hard "@types/prop-types@npm:*": - version: 15.7.6 - resolution: "@types/prop-types@npm:15.7.6" - checksum: 5f2796c7330461a556c4d18035fb914b372f96b1619a4f8302d07e1ea708e06a2dbe666dfcd8ff03f64c625aa4c12b31f677d0298a32910f5ab7ee51521d8086 + version: 15.7.7 + resolution: "@types/prop-types@npm:15.7.7" + checksum: 023b95f7dd82e1c594f51dcb93ec4c382600cef6eeee29a2ac7b782b92c0882eab8da16d4cbd6e18b39e85ac8d94ebf4ca02c6e248ce5b5fb4b16dbab5d82861 languageName: node linkType: hard @@ -3046,14 +3053,14 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^8.1.1": +"acorn-walk@npm:^8.0.0, acorn-walk@npm:^8.1.1": version: 8.2.0 resolution: "acorn-walk@npm:8.2.0" checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 languageName: node linkType: hard -"acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": +"acorn@npm:^8.0.4, acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": version: 8.10.0 resolution: "acorn@npm:8.10.0" bin: @@ -3978,6 +3985,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^7.2.0": + version: 7.2.0 + resolution: "commander@npm:7.2.0" + checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc + languageName: node + linkType: hard + "commander@npm:^9.4.1": version: 9.5.0 resolution: "commander@npm:9.5.0" @@ -4589,7 +4603,7 @@ __metadata: languageName: node linkType: hard -"duplexer@npm:^0.1.1": +"duplexer@npm:^0.1.1, duplexer@npm:^0.1.2": version: 0.1.2 resolution: "duplexer@npm:0.1.2" checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0 @@ -5929,6 +5943,15 @@ __metadata: languageName: node linkType: hard +"gzip-size@npm:^6.0.0": + version: 6.0.0 + resolution: "gzip-size@npm:6.0.0" + dependencies: + duplexer: ^0.1.2 + checksum: 2df97f359696ad154fc171dcb55bc883fe6e833bca7a65e457b9358f3cb6312405ed70a8da24a77c1baac0639906cd52358dc0ce2ec1a937eaa631b934c94194 + languageName: node + linkType: hard + "handlebars@npm:^4.7.7": version: 4.7.8 resolution: "handlebars@npm:4.7.8" @@ -7536,6 +7559,13 @@ __metadata: languageName: node linkType: hard +"lodash.debounce@npm:^4.0.8": + version: 4.0.8 + resolution: "lodash.debounce@npm:4.0.8" + checksum: a3f527d22c548f43ae31c861ada88b2637eb48ac6aa3eb56e82d44917971b8aa96fbb37aa60efea674dc4ee8c42074f90f7b1f772e9db375435f6c83a19b3bc6 + languageName: node + linkType: hard + "lodash.escape@npm:^4.0.1": version: 4.0.1 resolution: "lodash.escape@npm:4.0.1" @@ -7543,6 +7573,13 @@ __metadata: languageName: node linkType: hard +"lodash.flatten@npm:^4.4.0": + version: 4.4.0 + resolution: "lodash.flatten@npm:4.4.0" + checksum: 0ac34a393d4b795d4b7421153d27c13ae67e08786c9cbb60ff5b732210d46f833598eee3fb3844bb10070e8488efe390ea53bb567377e0cb47e9e630bf0811cb + languageName: node + linkType: hard + "lodash.flattendeep@npm:^4.4.0": version: 4.4.0 resolution: "lodash.flattendeep@npm:4.4.0" @@ -7550,6 +7587,13 @@ __metadata: languageName: node linkType: hard +"lodash.invokemap@npm:^4.6.0": + version: 4.6.0 + resolution: "lodash.invokemap@npm:4.6.0" + checksum: 646ceebbefbcb6da301f8c2868254680fd0bcdc6ada470495d9ae49c9c32938829c1b38a38c95d0258409a9655f85db404b16e648381c7450b7ed3d9c52d8808 + languageName: node + linkType: hard + "lodash.ismatch@npm:^4.4.0": version: 4.4.0 resolution: "lodash.ismatch@npm:4.4.0" @@ -7571,6 +7615,20 @@ __metadata: languageName: node linkType: hard +"lodash.pullall@npm:^4.2.0": + version: 4.2.0 + resolution: "lodash.pullall@npm:4.2.0" + checksum: 7a5fbaedf186ec197ce1e0b9ba1d88a89773ebaf6a8291c7d273838cac59cb3b339cf36ef00e94172862ee84d2304c38face161846f08f5581d0553dcbdcd090 + languageName: node + linkType: hard + +"lodash.uniqby@npm:^4.7.0": + version: 4.7.0 + resolution: "lodash.uniqby@npm:4.7.0" + checksum: 659264545a95726d1493123345aad8cbf56e17810fa9a0b029852c6d42bc80517696af09d99b23bef1845d10d95e01b8b4a1da578f22aeba7a30d3e0022a4938 + languageName: node + linkType: hard + "lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.7.0": version: 4.17.21 resolution: "lodash@npm:4.17.21" @@ -8047,6 +8105,13 @@ __metadata: languageName: node linkType: hard +"mrmime@npm:^1.0.0": + version: 1.0.1 + resolution: "mrmime@npm:1.0.1" + checksum: cc979da44bbbffebaa8eaf7a45117e851f2d4cb46a3ada6ceb78130466a04c15a0de9a9ce1c8b8ba6f6e1b8618866b1352992bf1757d241c0ddca558b9f28a77 + languageName: node + linkType: hard + "ms@npm:2.1.2, ms@npm:^2.0.0, ms@npm:^2.1.1": version: 2.1.2 resolution: "ms@npm:2.1.2" @@ -8665,6 +8730,15 @@ __metadata: languageName: node linkType: hard +"opener@npm:^1.5.2": + version: 1.5.2 + resolution: "opener@npm:1.5.2" + bin: + opener: bin/opener-bin.js + checksum: 33b620c0d53d5b883f2abc6687dd1c5fd394d270dbe33a6356f2d71e0a2ec85b100d5bac94694198ccf5c30d592da863b2292c5539009c715a9c80c697b4f6cc + languageName: node + linkType: hard + "optionator@npm:^0.9.3": version: 0.9.3 resolution: "optionator@npm:0.9.3" @@ -9756,6 +9830,7 @@ __metadata: source-map-loader: ^4.0.1 ts-node: ^10.9.1 typescript: ~5.2.2 + webpack-bundle-analyzer: ^4.9.1 yarn-berry-deduplicate: ^6.1.1 languageName: unknown linkType: soft @@ -10020,6 +10095,17 @@ __metadata: languageName: node linkType: hard +"sirv@npm:^2.0.3": + version: 2.0.3 + resolution: "sirv@npm:2.0.3" + dependencies: + "@polka/url": ^1.0.0-next.20 + mrmime: ^1.0.0 + totalist: ^3.0.0 + checksum: e2dfd4c97735a6ad6d842d0eec2cd9e3919ff0e46f0d228248c5753ad4b70b832711e77e1259c031c439cdb08303cc54d923685c92b0e890145cc733af7c5568 + languageName: node + linkType: hard + "slash@npm:3.0.0, slash@npm:^3.0.0": version: 3.0.0 resolution: "slash@npm:3.0.0" @@ -10653,6 +10739,13 @@ __metadata: languageName: node linkType: hard +"totalist@npm:^3.0.0": + version: 3.0.1 + resolution: "totalist@npm:3.0.1" + checksum: 5132d562cf88ff93fd710770a92f31dbe67cc19b5c6ccae2efc0da327f0954d211bbfd9456389655d726c624f284b4a23112f56d1da931ca7cfabbe1f45e778a + languageName: node + linkType: hard + "tr46@npm:^2.1.0": version: 2.1.0 resolution: "tr46@npm:2.1.0" @@ -11237,6 +11330,33 @@ __metadata: languageName: node linkType: hard +"webpack-bundle-analyzer@npm:^4.9.1": + version: 4.9.1 + resolution: "webpack-bundle-analyzer@npm:4.9.1" + dependencies: + "@discoveryjs/json-ext": 0.5.7 + acorn: ^8.0.4 + acorn-walk: ^8.0.0 + commander: ^7.2.0 + escape-string-regexp: ^4.0.0 + gzip-size: ^6.0.0 + is-plain-object: ^5.0.0 + lodash.debounce: ^4.0.8 + lodash.escape: ^4.0.1 + lodash.flatten: ^4.4.0 + lodash.invokemap: ^4.6.0 + lodash.pullall: ^4.2.0 + lodash.uniqby: ^4.7.0 + opener: ^1.5.2 + picocolors: ^1.0.0 + sirv: ^2.0.3 + ws: ^7.3.1 + bin: + webpack-bundle-analyzer: lib/bin/analyzer.js + checksum: 7e891c28d5a903242893e55ecc714fa01d7ad6bedade143235c07091b235915349812fa048968462781d59187507962f38b6c61ed7d25fb836ba0ac0ee919a39 + languageName: node + linkType: hard + "webpack-cli@npm:^5.0.1": version: 5.1.4 resolution: "webpack-cli@npm:5.1.4" @@ -11581,6 +11701,21 @@ __metadata: languageName: node linkType: hard +"ws@npm:^7.3.1": + version: 7.5.9 + resolution: "ws@npm:7.5.9" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: c3c100a181b731f40b7f2fddf004aa023f79d64f489706a28bc23ff88e87f6a64b3c6651fbec3a84a53960b75159574d7a7385709847a62ddb7ad6af76f49138 + languageName: node + linkType: hard + "ws@npm:^8.11.0": version: 8.14.2 resolution: "ws@npm:8.14.2"