diff --git a/.circleci/config.yml b/.circleci/config.yml index 1748e279..5ee02213 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -51,9 +51,14 @@ jobs: default: "chrome" docker: - image: cimg/python:3.12 - - image: selenium/standalone-<>:124.0 environment: + # Starting with python 3.12 coverage could be 2x slower so use experimental COVERAGE_CORE=sysmon + COVERAGE_CORE: sysmon + - image: selenium/standalone-<>:125.0 + environment: + SE_ENABLE_TRACING: false SE_NODE_MAX_SESSIONS: 12 + SE_NODE_OVERRIDE_MAX_SESSIONS: true SE_NODE_SESSION_TIMEOUT: 300 SCREEN_WIDTH: 1366 SCREEN_HEIGHT: 768 @@ -77,7 +82,7 @@ jobs: command: curl --retry 60 --retry-delay 5 --retry-connrefused http://localhost:4444 - run: name: run_functional_tests - command: uv run cucu run features --workers 6 --selenium-remote-url http://localhost:4444 --generate-report --junit junit_results --browser "<>" + command: uv run cucu run features --workers 8 --selenium-remote-url http://localhost:4444 --generate-report --junit junit_results --browser "<>" environment: COVERAGE_PROCESS_START: pyproject.toml # set to config file - run: diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 22530b32..6362b435 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -70,7 +70,7 @@ jobs: pull-requests: write services: webserver: - image: selenium/standalone-${{ matrix.browser }}:124.0 + image: selenium/standalone-${{ matrix.browser }}:125.0 ports: - 4444:4444 options: --shm-size=4gb diff --git a/CHANGELOG.md b/CHANGELOG.md index 62f3fb56..cec91372 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project closely adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 1.0.7 +- Fix - stablize CI runs (increase workers, add envvar tweaks) +- Fix - parse --workers correctly +- Fix - Ctrl-C to terminate for multi-workers +- Fix - ensure testing webserver is online +- Change - use fork when not MacOS for multi-worker +- Chore - bump jellyfish to 1.1.3 + ## 1.0.6 - Chore - relax required versions for requests library diff --git a/pyproject.toml b/pyproject.toml index 412c25f7..1ca375bc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "cucu" -version = "1.0.6" +version = "1.0.7" description = "Easy BDD web testing" readme = "README.md" license = { text = "The Clear BSD License" } @@ -51,7 +51,7 @@ dependencies = [ "humanize~=4.8.0", "importlib-metadata~=8.0.0", "ipdb~=0.13.13", - "jellyfish~=1.0.1", + "jellyfish~=1.1.3", "jinja2~=3.1.3", "lsprotocol~=2023.0.1", "mpire~=2.10.2", diff --git a/src/cucu/cli/core.py b/src/cucu/cli/core.py index 2906b2ba..92d6e5b2 100644 --- a/src/cucu/cli/core.py +++ b/src/cucu/cli/core.py @@ -4,6 +4,7 @@ import os import shutil import signal +import sys import time import xml.etree.ElementTree as ET from importlib.metadata import version @@ -189,6 +190,7 @@ def main(): "--workers", default=None, help="Specifies the number of workers to use to run tests in parallel", + type=int, ) @click.option( "--verbose/--no-verbose", @@ -338,11 +340,20 @@ def cancel_timer(_): if os.path.isdir(filepath): basepath = os.path.join(filepath, "**/*.feature") feature_filepaths = list(glob.iglob(basepath, recursive=True)) - else: feature_filepaths = [filepath] - with WorkerPool(n_jobs=int(workers), start_method="spawn") as pool: + if sys.platform == "darwin": + logger.info( + "MAC OS detected, using 'forkserver' start method since 'fork' is unstable" + ) + start_method = "forkserver" + else: + start_method = "fork" + + with WorkerPool( + n_jobs=int(workers), start_method=start_method + ) as pool: # Each feature file is applied to the pool as an async task. # It then polls the async result of each task. It the result # is ready, it removes the result from the list of results that @@ -364,6 +375,34 @@ def runtime_exit(): timer = Timer(runtime_timeout, runtime_exit) timer.start() + def kill_workers(): + for worker in pool._workers: + try: + worker_proc = psutil.Process(worker.pid) + for child in worker_proc.children(): + child.kill() + + worker_proc.kill() + except psutil.NoSuchProcess: + pass + + def handle_kill_signal(signum, frame): + signal.signal( + signum, signal.SIG_IGN + ) # ignore additional signals + logger.warn( + f"received signal {signum}, sending kill signal to workers" + ) + kill_workers() + if timer: + timer.cancel() + + os.kill(os.getpid(), signal.SIGINT) + + # This is for local runs where you want to cancel the run with a ctrl+c or SIGTERM + signal.signal(signal.SIGINT, handle_kill_signal) + signal.signal(signal.SIGTERM, handle_kill_signal) + async_results = {} for feature_filepath in feature_filepaths: async_results[feature_filepath] = pool.apply_async( @@ -430,15 +469,7 @@ def runtime_exit(): if timeout_reached: logger.warn("Timeout reached, send kill signal to workers") - for worker in pool._workers: - try: - worker_proc = psutil.Process(worker.pid) - for child in worker_proc.children(): - child.kill() - - worker_proc.kill() - except psutil.NoSuchProcess: - pass + kill_workers() task_failed.update(async_results) diff --git a/src/cucu/steps/webserver_steps.py b/src/cucu/steps/webserver_steps.py index ce407b2d..3bc6c143 100644 --- a/src/cucu/steps/webserver_steps.py +++ b/src/cucu/steps/webserver_steps.py @@ -1,10 +1,11 @@ +import socket from functools import partial from http.server import HTTPServer, SimpleHTTPRequestHandler from threading import Thread from behave import step -from cucu import register_after_this_scenario_hook +from cucu import logger, register_after_this_scenario_hook from cucu.config import CONFIG @@ -33,6 +34,9 @@ def run_webserver_for_scenario(ctx, directory, variable): _, port = httpd.server_address CONFIG[variable] = str(port) + with socket.create_connection(("localhost", port), timeout=5): + logger.debug(f"Webserver is running at {port=}port") + def shutdown_webserver(_): httpd.shutdown() thread.join() diff --git a/uv.lock b/uv.lock index c04cee07..e32254c9 100644 --- a/uv.lock +++ b/uv.lock @@ -191,7 +191,7 @@ name = "click" version = "8.1.7" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "platform_system == 'Windows'" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/96/d3/f04c7bfcf5c1862a2a5b845c6b2b360488cf47af55dfa79c98f6a6bf98b5/click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de", size = 336121 } wheels = [ @@ -263,7 +263,7 @@ toml = [ [[package]] name = "cucu" -version = "1.0.6" +version = "1.0.7" source = { editable = "." } dependencies = [ { name = "beautifulsoup4" }, @@ -306,7 +306,7 @@ requires-dist = [ { name = "humanize", specifier = "~=4.8.0" }, { name = "importlib-metadata", specifier = "~=8.0.0" }, { name = "ipdb", specifier = "~=0.13.13" }, - { name = "jellyfish", specifier = "~=1.0.1" }, + { name = "jellyfish", specifier = "~=1.1.3" }, { name = "jinja2", specifier = "~=3.1.3" }, { name = "lsprotocol", specifier = "~=2023.0.1" }, { name = "mpire", specifier = "~=2.10.2" }, @@ -487,64 +487,73 @@ wheels = [ [[package]] name = "jellyfish" -version = "1.0.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cd/68/5e295b66e96675fd32e6cb71b26e71fe3c45d9279dc64c3a20f00c174135/jellyfish-1.0.4.tar.gz", hash = "sha256:72aabb3bedd513cdd20712242fd51173b59972c0b146b7a0b9c6f32f1656293f", size = 363993 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/39/49/4a71fd03843a17f7260ad67c915a82a6c30958db0424069990477dff3387/jellyfish-1.0.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:f2cfa648575d1e8197cd61a1936929913916173aee8ee66210eb6a08b1a2fa11", size = 317430 }, - { url = "https://files.pythonhosted.org/packages/c7/53/7ea1f633f3be63e0d6fab080debb1b1fc74d713f190715ea4335a561bd45/jellyfish-1.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3c915ce23a518d2289c63a502064bf970b9748d9e4164e21e36ebba40c07ad37", size = 315088 }, - { url = "https://files.pythonhosted.org/packages/75/2a/bb47d71dcdd73ebb0b9bf6a27fb544b3855c3fc21defe4ce6bab56b60873/jellyfish-1.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a001b0794aa84bcab311f6019289904ddf417b47ffe2b4796b41a8314bae3c1c", size = 1088009 }, - { url = "https://files.pythonhosted.org/packages/ff/6c/a3a3d9066f18ddbe5cecc60f631e670e9f248b88ee3636c7c71022a82333/jellyfish-1.0.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ffe094f4d5b1de72ed1e8bb3e729ada8915f096bc04c344aabb4327a669f272e", size = 1102101 }, - { url = "https://files.pythonhosted.org/packages/37/fb/d28af418071ba03b864efa854fa075fc68009a51cd5b7fda31f134a79581/jellyfish-1.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:481689f6e1a695ddf44b7fe9250d0f86839d98ab5418115d8e52886d488fd259", size = 1093591 }, - { url = "https://files.pythonhosted.org/packages/53/01/3e0c64d70abb5d569764d0dad2044444ff34e5a8728dae11a1c2e896daf7/jellyfish-1.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:30ccf4b1e6a6f9a54f60250f5d65898746186b93aceebfd0dc7159cbe5554db3", size = 1257553 }, - { url = "https://files.pythonhosted.org/packages/cb/00/c55dc90975cdcba8dd4fb5767d7370e57167f74bf782708ca66947fe9011/jellyfish-1.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0459f8dc1d63a165f3848ed9f756107cff0d4990e3dffbaed839228073b628b7", size = 1281384 }, - { url = "https://files.pythonhosted.org/packages/ac/b5/80f50244c7981bebfc063a8f587922987ca149f7dae8c6b5f2a0205432e8/jellyfish-1.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1830f125dc2f41babd0101b2d67a325972f79e991af1e0a135d9efe2c890bbbc", size = 1262501 }, - { url = "https://files.pythonhosted.org/packages/7a/8d/7a7f4d74c544e839e224e2e406f0cd273055905e2ca41e1f6e41501571c9/jellyfish-1.0.4-cp310-none-win32.whl", hash = "sha256:169634dc62f7bb9b93c03d3d7b5da327426023d47d58bd8b424c61aaaa33085c", size = 203080 }, - { url = "https://files.pythonhosted.org/packages/7e/4c/e3187f031e3fb0e89db71969894e7448f9be7bfa1988be678cc7c510771f/jellyfish-1.0.4-cp310-none-win_amd64.whl", hash = "sha256:5b87fca57f6240fe4658810587a0ff49f261a6a49943ad003bbc109c358cec2e", size = 206711 }, - { url = "https://files.pythonhosted.org/packages/58/49/bd64d2f0573704f007a634bb90d4b0298388287386b29f0c9a8290df3e34/jellyfish-1.0.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:1561cd0d1687113a5b1e4c4f0e1ab373fbc851af0c9c769a486f94f9ede27cd5", size = 317468 }, - { url = "https://files.pythonhosted.org/packages/f1/6b/d0f26bdc16cbbd91390476dfbb4b8f9aa0ecbbff4cbd637d9352b9b45a1c/jellyfish-1.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0d60ab87c542659bd71ed952fbc9c4186293e49016dd92ca79156fee6574a17d", size = 315106 }, - { url = "https://files.pythonhosted.org/packages/f8/a0/f91e0e0a82fbbea5b546105530d2137092965fba600851261645733af8e4/jellyfish-1.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ceba547f96de1f58d29f87c816aab4ec02cbeb6606a48fcad1dcf35c1f06042", size = 1088058 }, - { url = "https://files.pythonhosted.org/packages/c6/0a/7d733385c460b33072c296b8c80be41b11aca9b811aa9bda508333a9250c/jellyfish-1.0.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b1457d3de969f652d6396cb0329cae3f8d75e0851b335f106624bc991c63c80b", size = 1102166 }, - { url = "https://files.pythonhosted.org/packages/68/87/17f9773cca5acea8eb5f8ddcf8c2bca299d8ee8f3533d79ffb3d7479b10e/jellyfish-1.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90384f8b4446a84682bb18051cdc17a069963fff1d0af03ccd2b044b62af6d44", size = 1093707 }, - { url = "https://files.pythonhosted.org/packages/cb/e2/6954983064bbcbb038d7b68d1bb3536e5c72863b9b684f6028384504b1c6/jellyfish-1.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:896552560dcba125db074b980ccc17e123e9444593b272edb82254e4b30f0bd1", size = 1257468 }, - { url = "https://files.pythonhosted.org/packages/3f/0d/4b6ce7fdcbe255ba6b582df1363b2b9f25360147a0ba58d9b21240e8582a/jellyfish-1.0.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:47b0914f375be24976f26ff1436f22dc9fa1ecf9513dbe7ebbee6af5f85409a2", size = 1281488 }, - { url = "https://files.pythonhosted.org/packages/c6/b1/1cd1a356c5d71888ea658f7ccd235067c821dd22276d3f545b17a64417ec/jellyfish-1.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1529a9f1627acffda79ab490ca3f67d35ee1e15c2d30b3f9f93be895b212c4c5", size = 1262551 }, - { url = "https://files.pythonhosted.org/packages/eb/3f/1f50feb1cb31546dbf84de7ce44e0f068ba0376b9fa0f69b6b19849b5f28/jellyfish-1.0.4-cp311-none-win32.whl", hash = "sha256:4a47daa243798db689f8b1f3e6c811032075fd434e2af9dfea35a1553152e34e", size = 203081 }, - { url = "https://files.pythonhosted.org/packages/99/b1/be97f6c8e49844b2999ca4577cef8e59f3628860a1f83051bc8ffa217097/jellyfish-1.0.4-cp311-none-win_amd64.whl", hash = "sha256:1d42fdf67a34a346d906b0ab8d56db9cc68bf6497382650d4581ec0fc8eef342", size = 206712 }, - { url = "https://files.pythonhosted.org/packages/66/a6/58ef8181cceb314860d78d897c8e45a42a9158fb73292082af1f364545f1/jellyfish-1.0.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:81f68a8ba074ef3630fab6e635d542708c6e7b5c504a546257b796835b28a5d5", size = 316625 }, - { url = "https://files.pythonhosted.org/packages/4b/db/6ec30c818b6c13b3d961f03a2480171097360b98d47a5ec700147bdf9bbe/jellyfish-1.0.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:535a7e99c2b6d456b06d160c950379f18cb72effeb856069eae5d024e09b4afd", size = 314382 }, - { url = "https://files.pythonhosted.org/packages/81/06/8839084953d8cd5ce01bf5567ed1a1640651058d043817b827f99f00d176/jellyfish-1.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76b7936b69687d788aabb86875c0780d6a77dbac9d1738503b0091af744ff79b", size = 1087667 }, - { url = "https://files.pythonhosted.org/packages/76/67/ab88ff64b320918c29b47085831168768e22064fdb0c9e69e81ee378edd5/jellyfish-1.0.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:015997043c3eecbf686a71838028180d885f0dc4f7e99daf7194e1787ecd5909", size = 1101817 }, - { url = "https://files.pythonhosted.org/packages/b9/af/46c339497a0cb6f28c5f72fb20c7cb42a7e9a0e65338559bbaf294ceb7f2/jellyfish-1.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66c7c6113565bcd3771882ff1c6a31573ef3ce755f882e1bf27b233c44a24f35", size = 1092823 }, - { url = "https://files.pythonhosted.org/packages/a5/d5/a7e9794d2cc3eeaa78de3afd7a03a6a980ac4304498ad0ab1418429ad869/jellyfish-1.0.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:069d406850c68a43513a4ddbbf4191e83a2b8fb08119d708086a21c2cf6c406e", size = 1257369 }, - { url = "https://files.pythonhosted.org/packages/90/7d/06bf2d3ded5afea865201d10c0abcb484f85264fe1219fc58f7f0e90db48/jellyfish-1.0.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:642dde8453ae45235c377ad3ce6cc990bf90fe9c4222896ab3f0f6c5609089a4", size = 1281109 }, - { url = "https://files.pythonhosted.org/packages/e7/14/dcbad59f3b57dab678c2ba6fc6adcb42b4d07dcb91a5758463b338cd7759/jellyfish-1.0.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:967723d8a1321327b3d6e9eada2db95659ff27ab6de8bb8dc82eefe1ce993333", size = 1261661 }, - { url = "https://files.pythonhosted.org/packages/23/95/02ab81c4ea33555d7d5f050667d5fe05201cd91376b9af7182d865e84edc/jellyfish-1.0.4-cp312-none-win32.whl", hash = "sha256:bd33becfa61956c8ebd12bcb7227d48156d7e4c289780bcccf06e55acde12bf6", size = 202636 }, - { url = "https://files.pythonhosted.org/packages/45/ef/27ea92bf73eb663f27608fe4e64d7b077d624f3bb75e9f4a527255b765b7/jellyfish-1.0.4-cp312-none-win_amd64.whl", hash = "sha256:c3addb4eebadd7cd4f6cdbff55a4a28caf2448333131b20661d4ff342f53e8a4", size = 206193 }, - { url = "https://files.pythonhosted.org/packages/82/14/f799b0b1a17e5eef74cc4dbc947e9b321c6cefd8442eae135b42a48bdcda/jellyfish-1.0.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:651f8c75bf4352427f1160c2b1d9e994862cc86a9ce2106e9c0c2d87e973ca88", size = 317325 }, - { url = "https://files.pythonhosted.org/packages/82/c3/fdbbb88584731accdc8be711841794b01c904b0a38c671ced2f86eb7794f/jellyfish-1.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a9fd3409238012c3d153b5d3ec5f3fe32648ceb6a86f67d42434f0f5f2447a28", size = 315100 }, - { url = "https://files.pythonhosted.org/packages/aa/72/6023c278d78b99a4b5d80d2d0df8b351d209dd1c689025102fe648be90ad/jellyfish-1.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e003e5db6607b46d7f1e321628a0a04e8f56adcbdd8aadfb6b61ec6764bc028a", size = 1087936 }, - { url = "https://files.pythonhosted.org/packages/60/36/74ece5744b8e3017ca9ba2cfdb26441fe8c42ec3caf017632e90d08b3807/jellyfish-1.0.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2d443734829b7e38a4e4525cc572e6ff6e0588254ae346a11c976b935efdbc54", size = 1101972 }, - { url = "https://files.pythonhosted.org/packages/96/2d/0d99fe9381a7c69e57ee8d7b6047d83facea2892a286e239c4b329b46dd5/jellyfish-1.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:984e6307ed255224dc38370b953b48e6f13950209d76489ade582dedc66a001a", size = 1093728 }, - { url = "https://files.pythonhosted.org/packages/51/0a/3019025b7fd714ef268c9462f155b19b0851383263a930df539ffcce71ac/jellyfish-1.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:00e23fb1e87c8b99008fe0a9c00f509754cf0e1a74d9a975fc3737790e756679", size = 1257366 }, - { url = "https://files.pythonhosted.org/packages/85/0f/b701202f3c06903e55d90fc4a3dcf28db976b38537c8781f57ad13c8b1f8/jellyfish-1.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f6f5aaa4f4326feb6754878f3875ee39c5df2e650abe04f9da28c80c3e341728", size = 1281145 }, - { url = "https://files.pythonhosted.org/packages/d9/ea/439ebae9fec86ce50ad5323441ff9d56639f42e145ec0fe48ff32e75b928/jellyfish-1.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d40c3ebd4a00a55845b5653e4a5a8784a032a68e91ca3713163e446b48168887", size = 1262426 }, - { url = "https://files.pythonhosted.org/packages/26/80/609cc4b4e0c996b89d68429e47c38d5fc1996d830ff22a233905ef459291/jellyfish-1.0.4-cp39-none-win32.whl", hash = "sha256:ce7a7c6ab717d7b8961d234a60c0e12f80a24b4b0ec213a2272f4cdba013b5f8", size = 203197 }, - { url = "https://files.pythonhosted.org/packages/86/2f/1049980deb8f374151d1f98e0f389014a4c0c23be2a737ddc12ee3548d84/jellyfish-1.0.4-cp39-none-win_amd64.whl", hash = "sha256:73e0789d20eda3923a6531693aca1ca6231bec12b9b7c6d7c2ed37b1889f40c1", size = 206712 }, - { url = "https://files.pythonhosted.org/packages/e2/5f/277473a9d362c672b5ac370ce64cd4d328f88cbf53d3d07e6980b5237e2f/jellyfish-1.0.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89f6db50049492c49b622e8e8c04c5494d4c96c92f0ae573288eefb809d60d1f", size = 1088210 }, - { url = "https://files.pythonhosted.org/packages/94/bf/fa99ed6bc7d9f8472c7e0c5e1d186277682014a8779426addb9806fc91dd/jellyfish-1.0.4-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f5af807b15db3c7d08c30911fbe82266ff1089f28ba5a682e87e3145943936cd", size = 1102136 }, - { url = "https://files.pythonhosted.org/packages/c7/eb/398956649ac7eb9a4c45fe49505cc6978877c7c4b580934123d64fa868de/jellyfish-1.0.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17c7822dcb9e70b682604941852f6bba78b047b60d41d2df0e6a75a5d2b1bb78", size = 1093809 }, - { url = "https://files.pythonhosted.org/packages/d9/4c/da1020ecd9af5a9927ac4f1c51671f5dc24529f3ab82119b66b4bbf58554/jellyfish-1.0.4-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f581b0184ce7a000f38941b2c81a4480b5fd52cdeb5672f9f682d9e3adb8db84", size = 1257401 }, - { url = "https://files.pythonhosted.org/packages/c3/d2/fb4a81a9ff0135f73f471d15b1db04f9c98c61cc88db0256273b49457454/jellyfish-1.0.4-pp310-pypy310_pp73-musllinux_1_1_i686.whl", hash = "sha256:f5bc5e05616155306756abe2afda23caefb766b59c849d88285f67bcdcf5a5bb", size = 1281423 }, - { url = "https://files.pythonhosted.org/packages/55/49/35f0cee6e8c7073a125c8e8b8798b8872e6c86478e1ac827e2059b9f7a87/jellyfish-1.0.4-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:4de7c4e7245a2fa9d24bb75dd66aaf77b3521b2377883af0b6008740024ce598", size = 1262646 }, - { url = "https://files.pythonhosted.org/packages/d8/78/b9fd1cd0a5cdacf8cceca556bcc5da42d90f89efcec7db73c312f515594f/jellyfish-1.0.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d9552ac0478d3015f93161e7d7e1a388b3204fac2a1a22aaf30d67c3670eb6f2", size = 317397 }, - { url = "https://files.pythonhosted.org/packages/90/54/8e727a69dec0d5e5816ef829b123f6641fe526aaf2a93ec2c9065113254a/jellyfish-1.0.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:2cc0a11166cb1cea0700585de63fa46252a5efa46bc31bc4d869b71e3c666ded", size = 314951 }, - { url = "https://files.pythonhosted.org/packages/fb/87/1091ed88e08121760210921f680c3e257457ea091f26539764c25fd36659/jellyfish-1.0.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6285981622d31c11994f2abcd0d35ec7661cba842538e59bfb735fbedf7b6531", size = 1088133 }, - { url = "https://files.pythonhosted.org/packages/f1/fa/f85f7b32c21419515110245cdf4ab7307bb0b45719d20d27ee6e62cd6b4f/jellyfish-1.0.4-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07e10f5ab014a626048ff7cd78a6a52c81845f89d94902371278c4be66d91909", size = 1102053 }, - { url = "https://files.pythonhosted.org/packages/18/61/f74e8c3faeb683377531ec27abca06bd4b8cdfae0ca0a24622edc6ca025f/jellyfish-1.0.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8eaa4f2cf78f34cfd41270968954b3bc1eed433b6e7d124786b8064021c110a5", size = 1093746 }, - { url = "https://files.pythonhosted.org/packages/c7/c9/73d5b574c366596902546a3bf881e98bc87a47c73e65ca32a83e649fb522/jellyfish-1.0.4-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:83e3c4b446da02926b382f8eb8b931e266927e82162adf4c57f0c55c2bf95b35", size = 1257331 }, - { url = "https://files.pythonhosted.org/packages/8f/5d/4acb01d11f2cbbf6d593a14735fb51d8d1a89922aa0c35e98e2410c55103/jellyfish-1.0.4-pp39-pypy39_pp73-musllinux_1_1_i686.whl", hash = "sha256:d88f47c5c3d97f40b4aa42b83d7ca03707bd6bebd945c9532da6e25515bbeea4", size = 1281472 }, - { url = "https://files.pythonhosted.org/packages/36/9a/7727a067fde2584c3fa81ebef49f2c91c98583c949d0b609a36a26225abd/jellyfish-1.0.4-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:a4b717a510e64773c4f882b373d4aeda7d2b2b8ffae87c16a906426b7cd02d55", size = 1262625 }, +version = "1.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5b/3a/f607d7d44ee5cbad51ce8e2966bde112789eeb53633558f500bc4e44c053/jellyfish-1.1.3.tar.gz", hash = "sha256:650ba1ddabd716499f85fae0e1f3fa3e6532a69b68985d9294e86a1e04f08f9f", size = 364473 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/56/bfb0d74eb31299a043b75a8eb8aa426bed02c6b851ea3cc4abddfaab0dcd/jellyfish-1.1.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:e73a1905eddb66d9bd383531f0ae5f21b95c891ea5ecd6d9e056310ed76ce126", size = 315423 }, + { url = "https://files.pythonhosted.org/packages/25/5d/ecca6b72b78eeeac5738fb824b1711fc8adc2d06f5d820bb27fd5dc79d73/jellyfish-1.1.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e49d34c7114c08def593da522ada324b1481d8baf02184a4c8e1a32604897a41", size = 311191 }, + { url = "https://files.pythonhosted.org/packages/e6/5e/59139f25f665d12b2ce0ce159eb8aa8129e996b345d355951eee743a7fd8/jellyfish-1.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c14c5f5f7e1f1248923498dcaaf2534b43044708b21128ac80f0cb862beaf780", size = 346722 }, + { url = "https://files.pythonhosted.org/packages/4d/8c/cfa3cd265ae7b1e7e0b84d1976201bacafd1a76798ff03234f098de8388e/jellyfish-1.1.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f57af6adb802e7206c85c060597a72297eefcf60471107fbfe96b48dd1f7500b", size = 353969 }, + { url = "https://files.pythonhosted.org/packages/39/1f/a112ed3dd5d0fb1b2d93cad4be35a0907bc2990a5f0d585439892cc32688/jellyfish-1.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db429ecb0d2cd4e83c4082ec36cb2ae4aa251226d6c24948b6dc042aaf149888", size = 347411 }, + { url = "https://files.pythonhosted.org/packages/31/9b/86227e12865c4dd9f823e47a1e938f0c385645fa2ca4ec196906a3e02cbd/jellyfish-1.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:38962cda1a71da0fea76350566b852062fedb06ca3a778eab9aa2a562231304a", size = 525020 }, + { url = "https://files.pythonhosted.org/packages/fe/86/0d50027e55b91caa68c0444914be1b5778464eb37c2e9a7cd596b2842f6a/jellyfish-1.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:39c889621269087e01bace9f844c164dc1637c437f1cda899f52720a560f7cc2", size = 544424 }, + { url = "https://files.pythonhosted.org/packages/0c/53/d519ac52893b482f7d7846dc63a3b805a8889169b4329c479a6aeca554b7/jellyfish-1.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:273bb289e9675e13bfd48db290e30f65582d6e6c3865e2b76d37d3fea40a1d2d", size = 518160 }, + { url = "https://files.pythonhosted.org/packages/87/36/beb0bd3480b79592c1870ad3a71d621700ba33924195b3551547446e248b/jellyfish-1.1.3-cp310-cp310-win32.whl", hash = "sha256:21ae3d7b38e9fb76880c0cc24204db6f47e877624acc9d66a1456d7b6b6b6100", size = 206038 }, + { url = "https://files.pythonhosted.org/packages/7e/6a/d43e3b18521e3a66df060e8ef98913a5c6c8601ec7a06bb22872cdeaa80c/jellyfish-1.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:ff04aaf51b1c8fc42d8f0bd30545f7af0b516f8890e61a8e8b31218a28fec2de", size = 212110 }, + { url = "https://files.pythonhosted.org/packages/3c/e8/48ac146f4907c8a3180f86c2c0f21d65a811a1897a8903383a3bef39b761/jellyfish-1.1.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:429e82b6527a0743358e69f10f7a913ec7c61d26bf21fe2cc2974b63dddb3384", size = 315246 }, + { url = "https://files.pythonhosted.org/packages/ad/e2/824fb1c50bd9a1f620cf88142377b32f53001c7fb8487e4259b6f8ce54ae/jellyfish-1.1.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d2f1a39d2781713dea8e7402a2085c8a8f0f1b7872daf1ebfd84fde80130a20e", size = 310953 }, + { url = "https://files.pythonhosted.org/packages/bf/4e/e38d1c5b54fee6b7d09ea1e685c883222371dcd6835855a22da7ad3842c0/jellyfish-1.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:630618c5a36f40ef43b8e18cef98f40b2ec60661cb45308eb35a3950e1faaf58", size = 346544 }, + { url = "https://files.pythonhosted.org/packages/93/01/29f71deca28546f59ef99bba08bdd06d320f7c717cc572525e9c8d88e8e0/jellyfish-1.1.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7b1094274c11bfede3284e960027d2534145335e51795e043b0d8fd71c91736a", size = 353749 }, + { url = "https://files.pythonhosted.org/packages/bf/2a/837f39fceb7e2cd04d8ab73428e87194229bce1c8ca228479d31c638adda/jellyfish-1.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5398d872fb1588ac0fbf03f4e2137aeac15798b8e7e0f6db38b791360d5e259c", size = 347192 }, + { url = "https://files.pythonhosted.org/packages/13/38/a74c2c95b6f782e09e775c2b37e90ac56f77dfc1822d778faae351394cde/jellyfish-1.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:db18014834731d17490d8a27be19e75ae2e3ff7d5f40792b989e915b0c2bda9d", size = 524446 }, + { url = "https://files.pythonhosted.org/packages/61/57/762ad2bbe3c5eaed5b61eb74b789b663a70e8b86c568788cdef3ed24f9a4/jellyfish-1.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:08b6be37d5e99ba6e82cb45ca6e90d1fc10a6f3d7df7d3c481d1fedae8057c39", size = 544372 }, + { url = "https://files.pythonhosted.org/packages/b6/6f/acf505cefb9dd95409c24ede2c8ff75e6787a52c349efb5db11ae19d1c23/jellyfish-1.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bcd4ada313160333f5a7e482baa3645fd44894db8034396c46e13f729cce327f", size = 517905 }, + { url = "https://files.pythonhosted.org/packages/27/df/35775eb6c51ba1308db17688e5de56cecfac1e956b844eb3881d8ebcec85/jellyfish-1.1.3-cp311-cp311-win32.whl", hash = "sha256:388abeebce8e85a2671b14d3e6fd257db470c058a446e54273495f04ac3d8b8e", size = 205906 }, + { url = "https://files.pythonhosted.org/packages/a7/2f/01604a77a368bb03401fb2e010dae7c506da440d7f552bd16b259eda0eef/jellyfish-1.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:41410d38726eac341943ff9b7505d58dbf341b50d1de5f6067323fa72b8fc13d", size = 212094 }, + { url = "https://files.pythonhosted.org/packages/e0/5e/b1c25ab1bb9cdc5e898ea7f3a39ae60e1cb6ffc8d6d43d23dfaede75d7c3/jellyfish-1.1.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:89d5ccaf5adade69a4f80859f0fa13810064fe35aed57f42b210f2b30c3fbb6a", size = 315234 }, + { url = "https://files.pythonhosted.org/packages/e0/c1/33651fc0e8eb33731909e56aa5495bc4d01b4032bbaafa98886872a299e6/jellyfish-1.1.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:29aa2be83c3346e1cc8d84b765ac4f2d4e7830e8ddb8369caf7c8e7d4c2c58fe", size = 311731 }, + { url = "https://files.pythonhosted.org/packages/cc/12/77d2d044257a991df055c426d396884f7d94e61e113c9e6f649b069ce713/jellyfish-1.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38902e5b5a5015a5add877b9317bc8aeccee4590fbd955016a43f9147d9a1afd", size = 347390 }, + { url = "https://files.pythonhosted.org/packages/9d/cd/2224528770705c84e5d2b260f792c4a76483b5874be80560b75ab495e02a/jellyfish-1.1.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b1c2c11ba786d1dbf5670994ba2aa0cef09a61955e298a5acb1ab3ef9e7a88d3", size = 353315 }, + { url = "https://files.pythonhosted.org/packages/06/b6/5742656ee7e5571a20fd2af14b8f0fd3b4ad511ace90254d0e91fc9c50ed/jellyfish-1.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b098603b3883cc9f38f121c872ba0cc4600d9f92020c5ddcb8f4fe84d941aa5f", size = 347697 }, + { url = "https://files.pythonhosted.org/packages/00/0c/929d300acd0ca600f1f9c3f99b3cdb8c4d8b2e9bd774f27728696ce39908/jellyfish-1.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:cc3460dc0470ba277c87e6fdd3febcf052219253de748b27150884574e7179ec", size = 525590 }, + { url = "https://files.pythonhosted.org/packages/7e/9a/a9cf8a975d2b47727ec863e05c2ce7b1174981f216a0a49d673978301466/jellyfish-1.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:7847238733fe9b62894270a8adeb50b0f28f79bef2ff78f8d39cfc161507d584", size = 543842 }, + { url = "https://files.pythonhosted.org/packages/a8/6f/451a175f362962e5c6af68cdc9ad8873c01130b30e897f340f38df2da7e8/jellyfish-1.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9d07f99fa95624049390eac38604edfe48aa2da7fbec96ce74a7dfaa97faf2bd", size = 518282 }, + { url = "https://files.pythonhosted.org/packages/90/6a/6bb02bbcd611e27a7b4d3a77c6ac5cfadaeff39f6108b82e62e3b1ccf9ae/jellyfish-1.1.3-cp312-cp312-win32.whl", hash = "sha256:c98eec90d704c34f5309f65793d84edd029bc2b641dd03c3b90c2cfe00c22a4e", size = 206069 }, + { url = "https://files.pythonhosted.org/packages/ce/3c/5f007820356627332a6cf957ec1233a4845cb9ce9e9026fd62bbd037ceb0/jellyfish-1.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:c8c70b1cc92ee15031db16db0d2ca7d5841744f5f626a35c29c3dd7b4ea7002b", size = 212067 }, + { url = "https://files.pythonhosted.org/packages/ad/33/bfcd66ed6554cf571c86a71c2fa90948e27209a1f9f61459899716b8af11/jellyfish-1.1.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:a1907b0382b45650a221fd6cc85afed9f75f08063e9b5c3a7a616bf95fef91be", size = 314647 }, + { url = "https://files.pythonhosted.org/packages/dc/da/a25ee60dc4318fbd7d4f9671a6f02af484bb341e3e98973580e6928409df/jellyfish-1.1.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7c0946909f84a1059d241fcee01032840e862746547390bfb0a4cf2f59a387ee", size = 311050 }, + { url = "https://files.pythonhosted.org/packages/87/ec/8975be953ddbd1c730b982a097d716a3efcb46f8e06cb371e041d6dc2742/jellyfish-1.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2105dfb2387a203f77a49cf12d38b4157809377c3a069d8c419c3d331c181816", size = 346781 }, + { url = "https://files.pythonhosted.org/packages/00/22/226d1a0a70596dcb51287122b51eadd892009cebf36e4d5e4aaa3468f0bc/jellyfish-1.1.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f852aa6753f5fbc6044e7d961df8015adbe68a5dd0d65ebef8c2ed24c0c35d13", size = 352912 }, + { url = "https://files.pythonhosted.org/packages/8b/fa/8bebfdc7a7ab628e80b4aec70d609188a79162cdf65a0e4f5abc2f76437c/jellyfish-1.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3afb5e8f327675be57f2121fb7442305c919a07317dc35fa74f6d05fe6f221e7", size = 347218 }, + { url = "https://files.pythonhosted.org/packages/5d/07/3c62d7e870187491d8d3b0028cc9fb0d18402a0a025fddc2c42cbfe73940/jellyfish-1.1.3-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:93c16994e01b772d3d8049c68c5c937f7a810b39a851c15b528379f0258c54d9", size = 524720 }, + { url = "https://files.pythonhosted.org/packages/66/bb/71e7e3ba70f91b3c3b447d8762c8143ccf6a846a31a5fc17dd3f18c8aa06/jellyfish-1.1.3-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:e6d61f1dac3d3b2121b70159a4b2cbcff92834d006e69961cf9bbb1841461d00", size = 543269 }, + { url = "https://files.pythonhosted.org/packages/5e/86/741f727e207a6b57889e4b83af0ee5aa58a31359f60e977d03dbf3b2eba8/jellyfish-1.1.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:5ad5e8156b58caf2e80020ac54a84eb4066ff082362b27cd7af7fa732a7181d6", size = 517836 }, + { url = "https://files.pythonhosted.org/packages/0c/c2/73b67a1a9444c5804ed4e2e4d55df3e94035efc279fe7426d2dbd2bca5c5/jellyfish-1.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:2113195a48ce8cb99d2bb2c6d9b119f58025dde1d727101518e7150c093a66da", size = 211678 }, + { url = "https://files.pythonhosted.org/packages/a7/89/358aac5387c155188dd9e029cbe743669b220d8fb747e83502bb21e25042/jellyfish-1.1.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:2382a385e47e214beacd63049d7cc197472b0b3c9011e4a49410c2a843c6e2c7", size = 315743 }, + { url = "https://files.pythonhosted.org/packages/a4/89/3d2db626c795a5e4b2b71939d2687460408733e551ab977b0384fe715039/jellyfish-1.1.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e87d7f3db29b5893c7db869196837b39ab096f9a27bb382a56f9b8fb604d2f1f", size = 311592 }, + { url = "https://files.pythonhosted.org/packages/d2/64/cca283559ed73f67aa4dd46eb01c20da78259da5fec1410e219ea6a5d555/jellyfish-1.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a7d73bcd96b15550603517ac0ad11475fc21cb431582b6698464247f0dfba666", size = 347336 }, + { url = "https://files.pythonhosted.org/packages/ac/f7/534dac0e9a31ac4995d6b4a65d3d863992323adb6c603a08695cae5551bf/jellyfish-1.1.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3335c7b7ff947f24f6cd7bc60b40ca9e93f9a2308b7f90c390ca75a6da081b97", size = 353791 }, + { url = "https://files.pythonhosted.org/packages/90/6c/6a139217f886f79221c31821b21b3b47c726105775242b652ff77a79ddb1/jellyfish-1.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76d09f407e0f88142167b45e2ffff386b6c7d8bf8ad34ec30c14cb33cce26535", size = 347863 }, + { url = "https://files.pythonhosted.org/packages/60/7d/daf6016c7b2f9d9f096fd8030b9b5cbbe500935ed701f0016ca2c579ad67/jellyfish-1.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:065e60adae1bfb6a0706015892585d37a26bf5708076d19216888aeca1a7e43d", size = 525638 }, + { url = "https://files.pythonhosted.org/packages/69/16/c8e5ea17b3cb81364282de46dbd9b4ecf55fd8e18bbf1632427685c5e596/jellyfish-1.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:8743490c0c1dc00d3b7d211ce3b2150ac4568e891bfdeb61b0a91c5dc5765826", size = 544912 }, + { url = "https://files.pythonhosted.org/packages/a1/27/59b1c44ffa4216850efd76908b3d9b9a51e33ab517ffd74ca90d9d993fbe/jellyfish-1.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:aaa05ba1650d84316f42a7347b2afd6959c804728f5c2b7c90496827e10f705f", size = 518517 }, + { url = "https://files.pythonhosted.org/packages/0b/59/63ed79f5d418c8e87faa54e910aae2f73b519a512bc7d3cae978ba2b34ef/jellyfish-1.1.3-cp39-cp39-win32.whl", hash = "sha256:44fe82f01fe26bf7663d1169af9d28aa04d63e9c497da302aa22e2faef65a588", size = 206087 }, + { url = "https://files.pythonhosted.org/packages/8f/ab/a566439cd8fe4d8b6acd4f05a748853073d161155b18fbf2f06049cae271/jellyfish-1.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:66114f9f58e9b2827716a7e004ee9816de60fa00f6cfc906d187de03570f4726", size = 212164 }, + { url = "https://files.pythonhosted.org/packages/6e/1c/4148523b140a85e1ea6791ddcd44cea467a485da7bb7769354c91fe55e33/jellyfish-1.1.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bd107e94bb1dfafabe6d03ba7a3e471acfa2786eb7d4fd3eaf402d7dc9bd755", size = 348495 }, + { url = "https://files.pythonhosted.org/packages/5e/c7/cc8ef542bb2ce6d60c196086dab501ff95173944448669a358fec9a14384/jellyfish-1.1.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:975cfec3ee2b9e1753aea336f7f65ab609e73a2df36e0f5f30c99b54670ebd9f", size = 354955 }, + { url = "https://files.pythonhosted.org/packages/0e/90/311d809f39d5af235f759d01cb233b3d9c5f5361044bfba72aa37bcc0a22/jellyfish-1.1.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58623f0f1e65deca98b1ddd380d33d5f56202fa2d9f136bcc26951705bd61aac", size = 348829 }, + { url = "https://files.pythonhosted.org/packages/a7/7e/f0fb70b5ef11e336f5c743afee08144da10d423dfdf7d24d05d5f66ed17a/jellyfish-1.1.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:0d724aa11b4625e7cd36958c20dd716723da9e8a11548f59f6e771f298dd79ff", size = 526845 }, + { url = "https://files.pythonhosted.org/packages/32/3e/683e49293169285b652763de7b398eda08e85f6a6fc95684b8ecc2e7d384/jellyfish-1.1.3-pp310-pypy310_pp73-musllinux_1_1_i686.whl", hash = "sha256:fe486886f61bc8539276efaf06687dcefd5a768674eba74e4254304ce1222360", size = 545514 }, + { url = "https://files.pythonhosted.org/packages/e6/89/b5829ddd71fc071251506d6fb80e672387871bb8e241dde345e9d5020d48/jellyfish-1.1.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:8ccb2ac6f0ab98f2f41b08757bc9f90110ccf2cc327a08d8859f2541f45d08d4", size = 519545 }, + { url = "https://files.pythonhosted.org/packages/65/c5/1807d96c5fb1adfef4651d5c3f74c90f22b3fd7fb5a9123bf9c1aa85b0c5/jellyfish-1.1.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:75bef7edada9fe367bbaf05fc5989bcb95f28fb80cca45fe28dcddc3762cb770", size = 316674 }, + { url = "https://files.pythonhosted.org/packages/bf/e3/e7e16cfcbe52a72421a1839a9c2be5b13b124565b2a41d941b1abcc04158/jellyfish-1.1.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:368041ec16ed4fed0c1f30bfaca4bf8041ee688fd2f22ee0d7e6a3b37a2ef8bf", size = 312954 }, + { url = "https://files.pythonhosted.org/packages/2f/7c/368e285fc59668d6353294dea6f4b4aaf9f2001ce8a9646d324c5639a0f8/jellyfish-1.1.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cf1d3c6eab17d59d01b9210fc7fa96da2543726a83053d76b9af6655b4da3e7", size = 348804 }, + { url = "https://files.pythonhosted.org/packages/b3/f1/f1ae3c2d62e7bd7160c5075dc750f7a659c42e13da7c224e32c1aa1d100c/jellyfish-1.1.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c08ee4267db2f90779d0ca5e2f89fd1b49730e622446dc9479edaf218d1261c", size = 355241 }, + { url = "https://files.pythonhosted.org/packages/51/a7/f9b7c36807069f1dab8f8cc42feea2e461e5dbc0a8135e30fad42ef927a5/jellyfish-1.1.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cce030c8a8b6db05ec3be662fd06a813fb3eeee4f568c63d6ed18e1d96667578", size = 348982 }, + { url = "https://files.pythonhosted.org/packages/b4/18/c10b040a09a492b7c1f29aceb474e2f31c1c0670c33d0dc445504823f16a/jellyfish-1.1.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:cca438727233786f314fc0739aae153cbad592755920c96dcc1a965cf1047016", size = 527191 }, + { url = "https://files.pythonhosted.org/packages/ee/d0/9d4dd9ec6a4da70c0ac1e59d1fbea850bb89f1fab6bfbd8c7c0b15f5fad6/jellyfish-1.1.3-pp39-pypy39_pp73-musllinux_1_1_i686.whl", hash = "sha256:a03c6891bc909d9cc2802d5677dfbc39a8c730b50591395fdf7e408612a1845b", size = 546024 }, + { url = "https://files.pythonhosted.org/packages/5e/97/25a35c6744019e28be6d247b860e9b875af4667220148221775a71a51b9d/jellyfish-1.1.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:35cad0b7e914c2da4f1204f3f7e016784bdfc1952cd630e000e20641238f71e7", size = 519662 }, ] [[package]] @@ -638,7 +647,7 @@ version = "2.10.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pygments" }, - { name = "pywin32", marker = "platform_system == 'Windows'" }, + { name = "pywin32", marker = "sys_platform == 'win32'" }, { name = "tqdm" }, ] sdist = { url = "https://files.pythonhosted.org/packages/3a/93/80ac75c20ce54c785648b4ed363c88f148bf22637e10c9863db4fbe73e74/mpire-2.10.2.tar.gz", hash = "sha256:f66a321e93fadff34585a4bfa05e95bd946cf714b442f51c529038eb45773d97", size = 271270 } @@ -1064,7 +1073,7 @@ name = "tqdm" version = "4.66.5" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "platform_system == 'Windows'" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/58/83/6ba9844a41128c62e810fddddd72473201f3eacde02046066142a2d96cc5/tqdm-4.66.5.tar.gz", hash = "sha256:e1020aef2e5096702d8a025ac7d16b1577279c9d63f8375b63083e9a5f0fcbad", size = 169504 } wheels = [