Changeset - 7578f855d18b
[Not reviewed]
default
0 2 0
drewp@bigasterisk.com - 8 months ago 2024-05-14 21:46:56
drewp@bigasterisk.com
deps fix
2 files changed with 420 insertions and 44 deletions:
0 comments (0 inline, 0 general)
pdm.lock
Show inline comments
 
# This file is @generated by PDM.
 
# It is not intended for manual editing.
 

	
 
[metadata]
 
groups = ["default"]
 
groups = ["default", "dev"]
 
strategy = ["cross_platform", "inherit_metadata"]
 
lock_version = "4.4.1"
 
content_hash = "sha256:4d47b7232c48c8ff6346aa24142d7822a94b74217997758f65fe69259eeffcc2"
 
content_hash = "sha256:d3ae9f6966068cc41ec2f3189399535df27dceba40835b5e2614a57c8cb48f7e"
 

	
 
[[package]]
 
name = "aiohttp"
 
version = "3.9.5"
 
requires_python = ">=3.8"
 
summary = "Async http client/server framework (asyncio)"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
dependencies = [
 
    "aiosignal>=1.1.2",
 
    "attrs>=17.3.0",
 
    "frozenlist>=1.1.1",
 
    "multidict<7.0,>=4.5",
 
    "yarl<2.0,>=1.0",
 
]
 
files = [
 
    {file = "aiohttp-3.9.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e0ae53e33ee7476dd3d1132f932eeb39bf6125083820049d06edcdca4381f342"},
 
    {file = "aiohttp-3.9.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c088c4d70d21f8ca5c0b8b5403fe84a7bc8e024161febdd4ef04575ef35d474d"},
 
    {file = "aiohttp-3.9.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:639d0042b7670222f33b0028de6b4e2fad6451462ce7df2af8aee37dcac55424"},
 
    {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f26383adb94da5e7fb388d441bf09c61e5e35f455a3217bfd790c6b6bc64b2ee"},
 
@@ -50,25 +50,25 @@ files = [
 
    {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:393c7aba2b55559ef7ab791c94b44f7482a07bf7640d17b341b79081f5e5cd1a"},
 
    {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c671dc117c2c21a1ca10c116cfcd6e3e44da7fcde37bf83b2be485ab377b25da"},
 
    {file = "aiohttp-3.9.5-cp312-cp312-win32.whl", hash = "sha256:5a7ee16aab26e76add4afc45e8f8206c95d1d75540f1039b84a03c3b3800dd59"},
 
    {file = "aiohttp-3.9.5-cp312-cp312-win_amd64.whl", hash = "sha256:5ca51eadbd67045396bc92a4345d1790b7301c14d1848feaac1d6a6c9289e888"},
 
    {file = "aiohttp-3.9.5.tar.gz", hash = "sha256:edea7d15772ceeb29db4aff55e482d4bcfb6ae160ce144f2682de02f6d693551"},
 
]
 

	
 
[[package]]
 
name = "aiosignal"
 
version = "1.3.1"
 
requires_python = ">=3.7"
 
summary = "aiosignal: a list of registered asynchronous callbacks"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
dependencies = [
 
    "frozenlist>=1.1.0",
 
]
 
files = [
 
    {file = "aiosignal-1.3.1-py3-none-any.whl", hash = "sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"},
 
    {file = "aiosignal-1.3.1.tar.gz", hash = "sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"},
 
]
 

	
 
[[package]]
 
name = "alsa-midi"
 
version = "1.0.2"
 
summary = "Python interface for ALSA MIDI sequencer"
 
@@ -80,59 +80,86 @@ files = [
 
    {file = "alsa-midi-1.0.2.tar.gz", hash = "sha256:456573ba98edde04e8dedda12166fe4066d7abca07b87e97690b394ca1e6b22b"},
 
    {file = "alsa_midi-1.0.2-cp311-cp311-manylinux_2_17_i686.whl", hash = "sha256:52651d916b29566feb5ee0790e3edd51baab06fcffe3036407ee48767424943d"},
 
    {file = "alsa_midi-1.0.2-cp311-cp311-manylinux_2_17_x86_64.whl", hash = "sha256:27e65c83a55b3a3f0748f6e9067f30e8dec8af355070d82a967dee47381b9e5a"},
 
    {file = "alsa_midi-1.0.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:89b8457bdf2d144f3c3d33442869b136360dc3569f4c355c7c97238bea7a558c"},
 
    {file = "alsa_midi-1.0.2-py3-none-any.whl", hash = "sha256:eb9614a9545b8567a60d919b7e86736cfc52db2e106755ff1f5cdb3ca9f461e2"},
 
]
 

	
 
[[package]]
 
name = "anyio"
 
version = "4.3.0"
 
requires_python = ">=3.8"
 
summary = "High level compatibility layer for multiple asynchronous event loop implementations"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
dependencies = [
 
    "idna>=2.8",
 
    "sniffio>=1.1",
 
]
 
files = [
 
    {file = "anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"},
 
    {file = "anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"},
 
]
 

	
 
[[package]]
 
name = "asttokens"
 
version = "2.4.1"
 
summary = "Annotate AST trees with source code positions"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
dependencies = [
 
    "six>=1.12.0",
 
]
 
files = [
 
    {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"},
 
    {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"},
 
]
 

	
 
[[package]]
 
name = "asyncinotify"
 
version = "4.0.9"
 
requires_python = "<4,>=3.6"
 
summary = "A simple optionally-async python inotify library, focused on simplicity of use and operation, and leveraging modern Python features"
 
groups = ["dev"]
 
files = [
 
    {file = "asyncinotify-4.0.9-py3-none-any.whl", hash = "sha256:45e3e2c95e331b4fbc0a76db3ad8e25e50d2a436ae2cd0d9917bcfd8b7d5cd37"},
 
    {file = "asyncinotify-4.0.9.tar.gz", hash = "sha256:d0fc2c9af487b6ac2a3bd7db7b5139de54afcc3660720f80d7324b122a27c1c7"},
 
]
 

	
 
[[package]]
 
name = "attrs"
 
version = "23.2.0"
 
requires_python = ">=3.7"
 
summary = "Classes Without Boilerplate"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"},
 
    {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"},
 
]
 

	
 
[[package]]
 
name = "autobahn"
 
version = "23.6.2"
 
requires_python = ">=3.9"
 
summary = "WebSocket client & server library, WAMP real-time framework"
 
groups = ["dev"]
 
dependencies = [
 
    "cryptography>=3.4.6",
 
    "hyperlink>=21.0.0",
 
    "setuptools",
 
    "txaio>=21.2.1",
 
]
 
files = [
 
    {file = "autobahn-23.6.2.tar.gz", hash = "sha256:ec9421c52a2103364d1ef0468036e6019ee84f71721e86b36fe19ad6966c1181"},
 
]
 

	
 
[[package]]
 
name = "automat"
 
version = "22.10.0"
 
summary = "Self-service finite-state machines for the programmer on the go."
 
groups = ["default"]
 
dependencies = [
 
    "attrs>=19.2.0",
 
    "six",
 
]
 
files = [
 
    {file = "Automat-22.10.0-py2.py3-none-any.whl", hash = "sha256:c3164f8742b9dc440f3682482d32aaff7bb53f71740dd018533f9de286b64180"},
 
    {file = "Automat-22.10.0.tar.gz", hash = "sha256:e56beb84edad19dcc11d30e8d9b895f75deeb5ef5e96b84a467066b3b84bb04e"},
 
]
 
@@ -153,25 +180,25 @@ requires_python = ">=3.6"
 
summary = "Python package for providing Mozilla's CA Bundle."
 
groups = ["default"]
 
files = [
 
    {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"},
 
    {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"},
 
]
 

	
 
[[package]]
 
name = "cffi"
 
version = "1.16.0"
 
requires_python = ">=3.8"
 
summary = "Foreign Function Interface for Python calling C code."
 
groups = ["default"]
 
groups = ["default", "dev"]
 
dependencies = [
 
    "pycparser",
 
]
 
files = [
 
    {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"},
 
    {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"},
 
    {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"},
 
    {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"},
 
    {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"},
 
    {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"},
 
    {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"},
 
    {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"},
 
@@ -242,26 +269,25 @@ dependencies = [
 
    "colorama; platform_system == \"Windows\"",
 
]
 
files = [
 
    {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"},
 
    {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"},
 
]
 

	
 
[[package]]
 
name = "colorama"
 
version = "0.4.6"
 
requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
 
summary = "Cross-platform colored terminal text."
 
groups = ["default"]
 
marker = "sys_platform == \"win32\" or platform_system == \"Windows\""
 
groups = ["default", "dev"]
 
files = [
 
    {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
 
    {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
 
]
 

	
 
[[package]]
 
name = "coloredlogs"
 
version = "15.0.1"
 
requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 
summary = "Colored terminal output for Python's logging module"
 
groups = ["default"]
 
dependencies = [
 
@@ -288,29 +314,60 @@ files = [
 
[[package]]
 
name = "constantly"
 
version = "23.10.4"
 
requires_python = ">=3.8"
 
summary = "Symbolic constants in Python"
 
groups = ["default"]
 
files = [
 
    {file = "constantly-23.10.4-py3-none-any.whl", hash = "sha256:3fd9b4d1c3dc1ec9757f3c52aef7e53ad9323dbe39f51dfd4c43853b68dfa3f9"},
 
    {file = "constantly-23.10.4.tar.gz", hash = "sha256:aa92b70a33e2ac0bb33cd745eb61776594dc48764b06c35e0efd050b7f1c7cbd"},
 
]
 

	
 
[[package]]
 
name = "coverage"
 
version = "7.5.1"
 
requires_python = ">=3.8"
 
summary = "Code coverage measurement for Python"
 
groups = ["dev"]
 
files = [
 
    {file = "coverage-7.5.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:796a79f63eca8814ca3317a1ea443645c9ff0d18b188de470ed7ccd45ae79428"},
 
    {file = "coverage-7.5.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4fc84a37bfd98db31beae3c2748811a3fa72bf2007ff7902f68746d9757f3746"},
 
    {file = "coverage-7.5.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6175d1a0559986c6ee3f7fccfc4a90ecd12ba0a383dcc2da30c2b9918d67d8a3"},
 
    {file = "coverage-7.5.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fc81d5878cd6274ce971e0a3a18a8803c3fe25457165314271cf78e3aae3aa2"},
 
    {file = "coverage-7.5.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:556cf1a7cbc8028cb60e1ff0be806be2eded2daf8129b8811c63e2b9a6c43bca"},
 
    {file = "coverage-7.5.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9981706d300c18d8b220995ad22627647be11a4276721c10911e0e9fa44c83e8"},
 
    {file = "coverage-7.5.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:d7fed867ee50edf1a0b4a11e8e5d0895150e572af1cd6d315d557758bfa9c057"},
 
    {file = "coverage-7.5.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ef48e2707fb320c8f139424a596f5b69955a85b178f15af261bab871873bb987"},
 
    {file = "coverage-7.5.1-cp311-cp311-win32.whl", hash = "sha256:9314d5678dcc665330df5b69c1e726a0e49b27df0461c08ca12674bcc19ef136"},
 
    {file = "coverage-7.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:5fa567e99765fe98f4e7d7394ce623e794d7cabb170f2ca2ac5a4174437e90dd"},
 
    {file = "coverage-7.5.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b6cf3764c030e5338e7f61f95bd21147963cf6aa16e09d2f74f1fa52013c1206"},
 
    {file = "coverage-7.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2ec92012fefebee89a6b9c79bc39051a6cb3891d562b9270ab10ecfdadbc0c34"},
 
    {file = "coverage-7.5.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16db7f26000a07efcf6aea00316f6ac57e7d9a96501e990a36f40c965ec7a95d"},
 
    {file = "coverage-7.5.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:beccf7b8a10b09c4ae543582c1319c6df47d78fd732f854ac68d518ee1fb97fa"},
 
    {file = "coverage-7.5.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8748731ad392d736cc9ccac03c9845b13bb07d020a33423fa5b3a36521ac6e4e"},
 
    {file = "coverage-7.5.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7352b9161b33fd0b643ccd1f21f3a3908daaddf414f1c6cb9d3a2fd618bf2572"},
 
    {file = "coverage-7.5.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:7a588d39e0925f6a2bff87154752481273cdb1736270642aeb3635cb9b4cad07"},
 
    {file = "coverage-7.5.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:68f962d9b72ce69ea8621f57551b2fa9c70509af757ee3b8105d4f51b92b41a7"},
 
    {file = "coverage-7.5.1-cp312-cp312-win32.whl", hash = "sha256:f152cbf5b88aaeb836127d920dd0f5e7edff5a66f10c079157306c4343d86c19"},
 
    {file = "coverage-7.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:5a5740d1fb60ddf268a3811bcd353de34eb56dc24e8f52a7f05ee513b2d4f596"},
 
    {file = "coverage-7.5.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:6537e7c10cc47c595828b8a8be04c72144725c383c4702703ff4e42e44577312"},
 
    {file = "coverage-7.5.1.tar.gz", hash = "sha256:54de9ef3a9da981f7af93eafde4ede199e0846cd819eb27c88e2b712aae9708c"},
 
]
 

	
 
[[package]]
 
name = "cryptography"
 
version = "42.0.7"
 
requires_python = ">=3.7"
 
summary = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
 
groups = ["default"]
 
groups = ["default", "dev"]
 
dependencies = [
 
    "cffi>=1.12; platform_python_implementation != \"PyPy\"",
 
]
 
files = [
 
    {file = "cryptography-42.0.7-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:a987f840718078212fdf4504d0fd4c6effe34a7e4740378e59d47696e8dfb477"},
 
    {file = "cryptography-42.0.7-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:bd13b5e9b543532453de08bcdc3cc7cebec6f9883e886fd20a92f26940fd3e7a"},
 
    {file = "cryptography-42.0.7-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a79165431551042cc9d1d90e6145d5d0d3ab0f2d66326c201d9b0e7f5bf43604"},
 
    {file = "cryptography-42.0.7-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a47787a5e3649008a1102d3df55424e86606c9bae6fb77ac59afe06d234605f8"},
 
    {file = "cryptography-42.0.7-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:02c0eee2d7133bdbbc5e24441258d5d2244beb31da5ed19fbb80315f4bbbff55"},
 
    {file = "cryptography-42.0.7-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:5e44507bf8d14b36b8389b226665d597bc0f18ea035d75b4e53c7b1ea84583cc"},
 
    {file = "cryptography-42.0.7-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:7f8b25fa616d8b846aef64b15c606bb0828dbc35faf90566eb139aa9cff67af2"},
 
    {file = "cryptography-42.0.7-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:93a3209f6bb2b33e725ed08ee0991b92976dfdcf4e8b38646540674fc7508e13"},
 
@@ -336,64 +393,103 @@ files = [
 
    {file = "cryptography-42.0.7-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e9b2a6309f14c0497f348d08a065d52f3020656f675819fc405fb63bbcd26562"},
 
    {file = "cryptography-42.0.7-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d8e3098721b84392ee45af2dd554c947c32cc52f862b6a3ae982dbb90f577f14"},
 
    {file = "cryptography-42.0.7-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c65f96dad14f8528a447414125e1fc8feb2ad5a272b8f68477abbcc1ea7d94b9"},
 
    {file = "cryptography-42.0.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:36017400817987670037fbb0324d71489b6ead6231c9604f8fc1f7d008087c68"},
 
    {file = "cryptography-42.0.7.tar.gz", hash = "sha256:ecbfbc00bf55888edda9868a4cf927205de8499e7fabe6c050322298382953f2"},
 
]
 

	
 
[[package]]
 
name = "decorator"
 
version = "4.4.2"
 
requires_python = ">=2.6, !=3.0.*, !=3.1.*"
 
summary = "Decorators for Humans"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "decorator-4.4.2-py2.py3-none-any.whl", hash = "sha256:41fa54c2a0cc4ba648be4fd43cff00aedf5b9465c9bf18d64325bc225f08f760"},
 
    {file = "decorator-4.4.2.tar.gz", hash = "sha256:e3a62f0520172440ca0dcc823749319382e377f37f140a0b99ef45fecb84bfe7"},
 
]
 

	
 
[[package]]
 
name = "docopt"
 
version = "0.6.2"
 
summary = "Pythonic argument parser, that will make you smile"
 
groups = ["dev"]
 
files = [
 
    {file = "docopt-0.6.2.tar.gz", hash = "sha256:49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491"},
 
]
 

	
 
[[package]]
 
name = "executing"
 
version = "2.0.1"
 
requires_python = ">=3.5"
 
summary = "Get the currently executing AST node of a frame, and other information"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"},
 
    {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"},
 
]
 

	
 
[[package]]
 
name = "flake8"
 
version = "7.0.0"
 
requires_python = ">=3.8.1"
 
summary = "the modular source code checker: pep8 pyflakes and co"
 
groups = ["dev"]
 
dependencies = [
 
    "mccabe<0.8.0,>=0.7.0",
 
    "pycodestyle<2.12.0,>=2.11.0",
 
    "pyflakes<3.3.0,>=3.2.0",
 
]
 
files = [
 
    {file = "flake8-7.0.0-py2.py3-none-any.whl", hash = "sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3"},
 
    {file = "flake8-7.0.0.tar.gz", hash = "sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132"},
 
]
 

	
 
[[package]]
 
name = "flask"
 
version = "2.2.4"
 
requires_python = ">=3.7"
 
summary = "A simple framework for building complex web applications."
 
groups = ["default"]
 
dependencies = [
 
    "Jinja2>=3.0",
 
    "Werkzeug>=2.2.2",
 
    "click>=8.0",
 
    "itsdangerous>=2.0",
 
]
 
files = [
 
    {file = "Flask-2.2.4-py3-none-any.whl", hash = "sha256:13f6329ddbfff11340939cd11919daf150a01358ded4b7e81c03c055dfecb559"},
 
    {file = "Flask-2.2.4.tar.gz", hash = "sha256:77504c4c097f56ac5f29b00f9009213010cf9d2923a288c0e0564a5db2bb53d6"},
 
]
 

	
 
[[package]]
 
name = "freezegun"
 
version = "1.5.1"
 
requires_python = ">=3.7"
 
summary = "Let your Python tests travel through time"
 
groups = ["dev"]
 
dependencies = [
 
    "python-dateutil>=2.7",
 
]
 
files = [
 
    {file = "freezegun-1.5.1-py3-none-any.whl", hash = "sha256:bf111d7138a8abe55ab48a71755673dbaa4ab87f4cff5634a4442dfec34c15f1"},
 
    {file = "freezegun-1.5.1.tar.gz", hash = "sha256:b29dedfcda6d5e8e083ce71b2b542753ad48cfec44037b3fc79702e2980a89e9"},
 
]
 

	
 
[[package]]
 
name = "frozenlist"
 
version = "1.4.1"
 
requires_python = ">=3.8"
 
summary = "A list-like structure which implements collections.abc.MutableSequence"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a0cb6f11204443f27a1628b0e460f37fb30f624be6051d490fa7d7e26d4af3d0"},
 
    {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b46c8ae3a8f1f41a0d2ef350c0b6e65822d80772fe46b653ab6b6274f61d4a49"},
 
    {file = "frozenlist-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fde5bd59ab5357e3853313127f4d3565fc7dad314a74d7b5d43c22c6a5ed2ced"},
 
    {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:722e1124aec435320ae01ee3ac7bec11a5d47f25d0ed6328f2273d287bc3abb0"},
 
    {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2471c201b70d58a0f0c1f91261542a03d9a5e088ed3dc6c160d614c01649c106"},
 
    {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c757a9dd70d72b076d6f68efdbb9bc943665ae954dad2801b874c8c69e185068"},
 
    {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f146e0911cb2f1da549fc58fc7bcd2b836a44b79ef871980d605ec392ff6b0d2"},
 
    {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9c515e7914626b2a2e1e311794b4c35720a0be87af52b79ff8e1429fc25f19"},
 
    {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c302220494f5c1ebeb0912ea782bcd5e2f8308037b3c7553fad0e48ebad6ad82"},
 
    {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:442acde1e068288a4ba7acfe05f5f343e19fac87bfc96d89eb886b0363e977ec"},
 
    {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:1b280e6507ea8a4fa0c0a7150b4e526a8d113989e28eaaef946cc77ffd7efc0a"},
 
@@ -461,43 +557,71 @@ version = "10.0"
 
requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 
summary = "Human friendly output for text interfaces using Python"
 
groups = ["default"]
 
dependencies = [
 
    "pyreadline3; sys_platform == \"win32\" and python_version >= \"3.8\"",
 
]
 
files = [
 
    {file = "humanfriendly-10.0-py2.py3-none-any.whl", hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477"},
 
    {file = "humanfriendly-10.0.tar.gz", hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc"},
 
]
 

	
 
[[package]]
 
name = "hunter"
 
version = "3.7.0"
 
requires_python = ">=3.8"
 
summary = "Hunter is a flexible code tracing toolkit."
 
groups = ["dev"]
 
dependencies = [
 
    "manhole>=1.5; platform_system != \"Windows\"",
 
]
 
files = [
 
    {file = "hunter-3.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94efe2df941a6186e0aa7fc0b87df6686d9455ac77fc48f67a0d10237397591f"},
 
    {file = "hunter-3.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c3516266c3dceae92636c7f21808f0ca2cd571d368bff79da57c7fb505398f5"},
 
    {file = "hunter-3.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3b94da39b1881492cfda6f4630c27815c17823078ddefb9dfaf3d79d0c7ee89"},
 
    {file = "hunter-3.7.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:403a54ba425dda94cb00ebc47c71a2e7c8e8c2e4188dc9b1b6848ce2e13059d0"},
 
    {file = "hunter-3.7.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1fe660d266547f85644bce8230e714e6984bfaa94e8513d77c8c8b5562aeefae"},
 
    {file = "hunter-3.7.0-cp311-cp311-win32.whl", hash = "sha256:c810b56999576a8313793d4da64b857165e97a8f6f6a3b161f13c8b285324dd4"},
 
    {file = "hunter-3.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:6d32a1c3ead5347325f92b90299f4e049b8cdea45a7682312187a34f0ecdbf43"},
 
    {file = "hunter-3.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c5aebe6d72749d509a2001ebf4bc6cba2a6bafb7dd645b8a6a027dcc2c966465"},
 
    {file = "hunter-3.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8948f11a0dfb3d19112cf67539d9ade7517ea22c5b3471b0566c7d62075f090"},
 
    {file = "hunter-3.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab774df3dcf99c1b933afe91c1d5ed7e9bfa53826bd88c7b37cd0650db9e4ce9"},
 
    {file = "hunter-3.7.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:161bc2b522449696d06943c0fdc61219c15f8a407d4f06ddfc71689e43a77d80"},
 
    {file = "hunter-3.7.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fa34b19b00be465054f1001158e6ac89511ce7b3bb40f8e7bc56a9ae18184c5b"},
 
    {file = "hunter-3.7.0-cp312-cp312-win32.whl", hash = "sha256:b73aa7eeb5990807698692367f874fb746d9ffb45430fb07ef497ac9fb7ad63c"},
 
    {file = "hunter-3.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:d1e72f28d81c67921548f504afc254f5bd96128ef92ecbf17946a145752a6602"},
 
    {file = "hunter-3.7.0-pp310.pp38.pp39-none-any.whl", hash = "sha256:b9955013d2e8eb4d0472823153086cba7c36f894ea3acab43aface1d9d27444c"},
 
    {file = "hunter-3.7.0.tar.gz", hash = "sha256:16f4fb4dbde366bac61ebf235bc4d075bfd8748009c8a4e0327d2fbca6f611d6"},
 
]
 

	
 
[[package]]
 
name = "hyperlink"
 
version = "21.0.0"
 
requires_python = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 
summary = "A featureful, immutable, and correct URL for Python."
 
groups = ["default"]
 
groups = ["default", "dev"]
 
dependencies = [
 
    "idna>=2.5",
 
]
 
files = [
 
    {file = "hyperlink-21.0.0-py2.py3-none-any.whl", hash = "sha256:e6b14c37ecb73e89c77d78cdb4c2cc8f3fb59a885c5b3f819ff4ed80f25af1b4"},
 
    {file = "hyperlink-21.0.0.tar.gz", hash = "sha256:427af957daa58bc909471c6c40f74c5450fa123dd093fc53efd2e91d2705a56b"},
 
]
 

	
 
[[package]]
 
name = "idna"
 
version = "3.7"
 
requires_python = ">=3.5"
 
summary = "Internationalized Domain Names in Applications (IDNA)"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"},
 
    {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"},
 
]
 

	
 
[[package]]
 
name = "imageio"
 
version = "2.34.1"
 
requires_python = ">=3.8"
 
summary = "Library for reading and writing a wide range of image, video, scientific, and volumetric data formats."
 
groups = ["default"]
 
marker = "python_version >= \"3.4\""
 
@@ -521,86 +645,126 @@ dependencies = [
 
    "setuptools",
 
]
 
files = [
 
    {file = "imageio-ffmpeg-0.4.9.tar.gz", hash = "sha256:39bcd1660118ef360fa4047456501071364661aa9d9021d3d26c58f1ee2081f5"},
 
    {file = "imageio_ffmpeg-0.4.9-py3-none-macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:24095e882a126a0d217197b86265f821b4bb3cf9004104f67c1384a2b4b49168"},
 
    {file = "imageio_ffmpeg-0.4.9-py3-none-manylinux2010_x86_64.whl", hash = "sha256:2996c64af3e5489227096580269317719ea1a8121d207f2e28d6c24ebc4a253e"},
 
    {file = "imageio_ffmpeg-0.4.9-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7eead662d2f46d748c0ab446b68f423eb63d2b54d0a8ef96f80607245540866d"},
 
    {file = "imageio_ffmpeg-0.4.9-py3-none-win32.whl", hash = "sha256:b6de1e18911687c538d5585d8287ab1a23624ca9dc2044fcc4607de667bcf11e"},
 
    {file = "imageio_ffmpeg-0.4.9-py3-none-win_amd64.whl", hash = "sha256:7e900c695c6541b1cb17feb1baacd4009b30a53a45b81c23d53a67ab13ffb766"},
 
]
 

	
 
[[package]]
 
name = "importlib-metadata"
 
version = "7.1.0"
 
requires_python = ">=3.8"
 
summary = "Read metadata from Python packages"
 
groups = ["dev"]
 
dependencies = [
 
    "zipp>=0.5",
 
]
 
files = [
 
    {file = "importlib_metadata-7.1.0-py3-none-any.whl", hash = "sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570"},
 
    {file = "importlib_metadata-7.1.0.tar.gz", hash = "sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2"},
 
]
 

	
 
[[package]]
 
name = "incremental"
 
version = "22.10.0"
 
summary = "\"A small library that versions your Python projects.\""
 
groups = ["default"]
 
files = [
 
    {file = "incremental-22.10.0-py2.py3-none-any.whl", hash = "sha256:b864a1f30885ee72c5ac2835a761b8fe8aa9c28b9395cacf27286602688d3e51"},
 
    {file = "incremental-22.10.0.tar.gz", hash = "sha256:912feeb5e0f7e0188e6f42241d2f450002e11bbc0937c65865045854c24c0bd0"},
 
]
 

	
 
[[package]]
 
name = "iniconfig"
 
version = "2.0.0"
 
requires_python = ">=3.7"
 
summary = "brain-dead simple config-ini parsing"
 
groups = ["default", "dev"]
 
files = [
 
    {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"},
 
    {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
 
]
 

	
 
[[package]]
 
name = "ipdb"
 
version = "0.13.13"
 
requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 
summary = "IPython-enabled pdb"
 
groups = ["dev"]
 
dependencies = [
 
    "decorator; python_version >= \"3.11\"",
 
    "ipython>=7.31.1; python_version >= \"3.11\"",
 
]
 
files = [
 
    {file = "ipdb-0.13.13-py3-none-any.whl", hash = "sha256:45529994741c4ab6d2388bfa5d7b725c2cf7fe9deffabdb8a6113aa5ed449ed4"},
 
    {file = "ipdb-0.13.13.tar.gz", hash = "sha256:e3ac6018ef05126d442af680aad863006ec19d02290561ac88b8b1c0b0cfc726"},
 
]
 

	
 
[[package]]
 
name = "ipython"
 
version = "8.24.0"
 
requires_python = ">=3.10"
 
summary = "IPython: Productive Interactive Computing"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
dependencies = [
 
    "colorama; sys_platform == \"win32\"",
 
    "decorator",
 
    "jedi>=0.16",
 
    "matplotlib-inline",
 
    "pexpect>4.3; sys_platform != \"win32\" and sys_platform != \"emscripten\"",
 
    "prompt-toolkit<3.1.0,>=3.0.41",
 
    "pygments>=2.4.0",
 
    "stack-data",
 
    "traitlets>=5.13.0",
 
    "typing-extensions>=4.6; python_version < \"3.12\"",
 
]
 
files = [
 
    {file = "ipython-8.24.0-py3-none-any.whl", hash = "sha256:d7bf2f6c4314984e3e02393213bab8703cf163ede39672ce5918c51fe253a2a3"},
 
    {file = "ipython-8.24.0.tar.gz", hash = "sha256:010db3f8a728a578bb641fdd06c063b9fb8e96a9464c63aec6310fbcb5e80501"},
 
]
 

	
 
[[package]]
 
name = "isodate"
 
version = "0.6.1"
 
summary = "An ISO 8601 date/time/duration parser and formatter"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
dependencies = [
 
    "six",
 
]
 
files = [
 
    {file = "isodate-0.6.1-py2.py3-none-any.whl", hash = "sha256:0751eece944162659049d35f4f549ed815792b38793f07cf73381c1c87cbed96"},
 
    {file = "isodate-0.6.1.tar.gz", hash = "sha256:48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9"},
 
]
 

	
 
[[package]]
 
name = "itsdangerous"
 
version = "2.2.0"
 
requires_python = ">=3.8"
 
summary = "Safely pass data to untrusted environments and back."
 
groups = ["default"]
 
files = [
 
    {file = "itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef"},
 
    {file = "itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173"},
 
]
 

	
 
[[package]]
 
name = "jedi"
 
version = "0.19.1"
 
requires_python = ">=3.6"
 
summary = "An autocompletion tool for Python that can be used for text editors."
 
groups = ["default"]
 
groups = ["default", "dev"]
 
dependencies = [
 
    "parso<0.9.0,>=0.8.3",
 
]
 
files = [
 
    {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"},
 
    {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"},
 
]
 

	
 
[[package]]
 
name = "jinja2"
 
version = "3.1.4"
 
requires_python = ">=3.7"
 
@@ -626,24 +790,36 @@ files = [
 
[[package]]
 
name = "louie"
 
version = "2.0.1"
 
requires_python = ">=3.6"
 
summary = "Signal dispatching mechanism"
 
groups = ["default"]
 
files = [
 
    {file = "Louie-2.0.1-py3-none-any.whl", hash = "sha256:4c6f385bb5084285eab72bf6d5af9576a4e8d37af34e61bd01bcb18dea02c1db"},
 
    {file = "Louie-2.0.1.tar.gz", hash = "sha256:7d6650f9172b5e3fa2129065fc4c74bcd14d6aaa5430ca0d9b4f1299fd0c2268"},
 
]
 

	
 
[[package]]
 
name = "manhole"
 
version = "1.8.0"
 
requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 
summary = "Manhole is in-process service that will accept unix domain socket connections and present the"
 
groups = ["dev"]
 
marker = "platform_system != \"Windows\""
 
files = [
 
    {file = "manhole-1.8.0-py2.py3-none-any.whl", hash = "sha256:a17f62f9d47bd9a53438f655d351d7d2b0d6e9d805665fc775e4cb6cbbb4440b"},
 
    {file = "manhole-1.8.0.tar.gz", hash = "sha256:bada20a25b547b395d472e2e08928f0437df26bbdbda4797c55863198e29a21f"},
 
]
 

	
 
[[package]]
 
name = "markupsafe"
 
version = "2.1.5"
 
requires_python = ">=3.7"
 
summary = "Safely add untrusted strings to HTML/XML markup."
 
groups = ["default"]
 
files = [
 
    {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"},
 
    {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"},
 
    {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"},
 
    {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"},
 
    {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"},
 
    {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"},
 
@@ -660,72 +836,94 @@ files = [
 
    {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"},
 
    {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"},
 
    {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"},
 
    {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"},
 
    {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"},
 
]
 

	
 
[[package]]
 
name = "matplotlib-inline"
 
version = "0.1.7"
 
requires_python = ">=3.8"
 
summary = "Inline Matplotlib backend for Jupyter"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
dependencies = [
 
    "traitlets",
 
]
 
files = [
 
    {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"},
 
    {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"},
 
]
 

	
 
[[package]]
 
name = "mccabe"
 
version = "0.7.0"
 
requires_python = ">=3.6"
 
summary = "McCabe checker, plugin for flake8"
 
groups = ["dev"]
 
files = [
 
    {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"},
 
    {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"},
 
]
 

	
 
[[package]]
 
name = "mido"
 
version = "1.3.2"
 
requires_python = "~=3.7"
 
summary = "MIDI Objects for Python"
 
groups = ["default"]
 
dependencies = [
 
    "packaging~=23.1",
 
]
 
files = [
 
    {file = "mido-1.3.2-py3-none-any.whl", hash = "sha256:9f5668d2eae78e43d54f4c651f8bf41a614eb23f98ce5179d3ddd984bf19eb58"},
 
    {file = "mido-1.3.2.tar.gz", hash = "sha256:3aea28b6ed730f737d5b12da3578debe9dc50058fa370fe9ceded9189b67c348"},
 
]
 

	
 
[[package]]
 
name = "mock"
 
version = "5.1.0"
 
requires_python = ">=3.6"
 
summary = "Rolling backport of unittest.mock for all Pythons"
 
groups = ["dev"]
 
files = [
 
    {file = "mock-5.1.0-py3-none-any.whl", hash = "sha256:18c694e5ae8a208cdb3d2c20a993ca1a7b0efa258c247a1e565150f477f83744"},
 
    {file = "mock-5.1.0.tar.gz", hash = "sha256:5e96aad5ccda4718e0a229ed94b2024df75cc2d55575ba5762d31f5767b8767d"},
 
]
 

	
 
[[package]]
 
name = "moviepy"
 
version = "1.0.3"
 
summary = "Video editing with Python"
 
groups = ["default"]
 
dependencies = [
 
    "decorator<5.0,>=4.0.2",
 
    "imageio-ffmpeg>=0.2.0; python_version >= \"3.4\"",
 
    "imageio<3.0,>=2.5; python_version >= \"3.4\"",
 
    "numpy; python_version >= \"2.7\"",
 
    "numpy>=1.17.3; python_version != \"2.7\"",
 
    "proglog<=1.0.0",
 
    "requests<3.0,>=2.8.1",
 
    "tqdm<5.0,>=4.11.2",
 
]
 
files = [
 
    {file = "moviepy-1.0.3.tar.gz", hash = "sha256:2884e35d1788077db3ff89e763c5ba7bfddbd7ae9108c9bc809e7ba58fa433f5"},
 
]
 

	
 
[[package]]
 
name = "multidict"
 
version = "6.0.5"
 
requires_python = ">=3.7"
 
summary = "multidict implementation"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f285e862d2f153a70586579c15c44656f888806ed0e5b56b64489afe4a2dbfba"},
 
    {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:53689bb4e102200a4fafa9de9c7c3c212ab40a7ab2c8e474491914d2305f187e"},
 
    {file = "multidict-6.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:612d1156111ae11d14afaf3a0669ebf6c170dbb735e510a7438ffe2369a847fd"},
 
    {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7be7047bd08accdb7487737631d25735c9a04327911de89ff1b26b81745bd4e3"},
 
    {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de170c7b4fe6859beb8926e84f7d7d6c693dfe8e27372ce3b76f01c46e489fcf"},
 
    {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04bde7a7b3de05732a4eb39c94574db1ec99abb56162d6c520ad26f83267de29"},
 
    {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85f67aed7bb647f93e7520633d8f51d3cbc6ab96957c71272b286b2f30dc70ed"},
 
    {file = "multidict-6.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425bf820055005bfc8aa9a0b99ccb52cc2f4070153e34b701acc98d201693733"},
 
    {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d3eb1ceec286eba8220c26f3b0096cf189aea7057b6e7b7a2e60ed36b373b77f"},
 
    {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7901c05ead4b3fb75113fb1dd33eb1253c6d3ee37ce93305acd9d38e0b5f21a4"},
 
    {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e0e79d91e71b9867c73323a3444724d496c037e578a0e1755ae159ba14f4f3d1"},
 
@@ -765,24 +963,35 @@ files = [
 

	
 
[[package]]
 
name = "noise"
 
version = "1.2.2"
 
summary = "Perlin noise for Python"
 
groups = ["default"]
 
files = [
 
    {file = "noise-1.2.2.tar.gz", hash = "sha256:57a2797436574391ff63a111e852e53a4164ecd81ad23639641743cd1a209b65"},
 
    {file = "noise-1.2.2.zip", hash = "sha256:36036cdaca131ddd2ab4397fba649af7f074ec08031e1e0a51031d0ae23b509a"},
 
]
 

	
 
[[package]]
 
name = "nose2"
 
version = "0.14.2"
 
requires_python = ">=3.8"
 
summary = "unittest with plugins"
 
groups = ["dev"]
 
files = [
 
    {file = "nose2-0.14.2-py3-none-any.whl", hash = "sha256:50cd5f5d025dcf4b6b7c8ada9849ba9a5ffb544fc46f8740da1059502c4b7f92"},
 
    {file = "nose2-0.14.2.tar.gz", hash = "sha256:29e581efcef01a1aba391e817b121a681e9841b3299c1110bba8b1cd1d4074bf"},
 
]
 

	
 
[[package]]
 
name = "numpy"
 
version = "1.26.4"
 
requires_python = ">=3.9"
 
summary = "Fundamental package for array computing in Python"
 
groups = ["default"]
 
files = [
 
    {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"},
 
    {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"},
 
    {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"},
 
    {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"},
 
    {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"},
 
    {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"},
 
@@ -798,46 +1007,46 @@ files = [
 
    {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"},
 
    {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"},
 
    {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"},
 
    {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"},
 
    {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"},
 
]
 

	
 
[[package]]
 
name = "packaging"
 
version = "23.2"
 
requires_python = ">=3.7"
 
summary = "Core utilities for Python packages"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"},
 
    {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"},
 
]
 

	
 
[[package]]
 
name = "parso"
 
version = "0.8.4"
 
requires_python = ">=3.6"
 
summary = "A Python Parser"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"},
 
    {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"},
 
]
 

	
 
[[package]]
 
name = "pexpect"
 
version = "4.9.0"
 
summary = "Pexpect allows easy control of interactive console applications."
 
groups = ["default"]
 
groups = ["default", "dev"]
 
marker = "sys_platform != \"win32\" and sys_platform != \"emscripten\""
 
dependencies = [
 
    "ptyprocess>=0.5",
 
]
 
files = [
 
    {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"},
 
    {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"},
 
]
 

	
 
[[package]]
 
name = "pillow"
 
version = "10.3.0"
 
@@ -876,77 +1085,99 @@ files = [
 
    {file = "pillow-10.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dd78700f5788ae180b5ee8902c6aea5a5726bac7c364b202b4b3e3ba2d293170"},
 
    {file = "pillow-10.3.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:aff76a55a8aa8364d25400a210a65ff59d0168e0b4285ba6bf2bd83cf675ba32"},
 
    {file = "pillow-10.3.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:b7bc2176354defba3edc2b9a777744462da2f8e921fbaf61e52acb95bafa9828"},
 
    {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:793b4e24db2e8742ca6423d3fde8396db336698c55cd34b660663ee9e45ed37f"},
 
    {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d93480005693d247f8346bc8ee28c72a2191bdf1f6b5db469c096c0c867ac015"},
 
    {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c83341b89884e2b2e55886e8fbbf37c3fa5efd6c8907124aeb72f285ae5696e5"},
 
    {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1a1d1915db1a4fdb2754b9de292642a39a7fb28f1736699527bb649484fb966a"},
 
    {file = "pillow-10.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a0eaa93d054751ee9964afa21c06247779b90440ca41d184aeb5d410f20ff591"},
 
    {file = "pillow-10.3.0.tar.gz", hash = "sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d"},
 
]
 

	
 
[[package]]
 
name = "platformdirs"
 
version = "4.2.1"
 
requires_python = ">=3.8"
 
summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`."
 
groups = ["dev"]
 
files = [
 
    {file = "platformdirs-4.2.1-py3-none-any.whl", hash = "sha256:17d5a1161b3fd67b390023cb2d3b026bbd40abde6fdb052dfbd3a29c3ba22ee1"},
 
    {file = "platformdirs-4.2.1.tar.gz", hash = "sha256:031cd18d4ec63ec53e82dceaac0417d218a6863f7745dfcc9efe7793b7039bdf"},
 
]
 

	
 
[[package]]
 
name = "pluggy"
 
version = "1.5.0"
 
requires_python = ">=3.8"
 
summary = "plugin and hook calling mechanisms for python"
 
groups = ["default", "dev"]
 
files = [
 
    {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"},
 
    {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"},
 
]
 

	
 
[[package]]
 
name = "proglog"
 
version = "0.1.10"
 
summary = "Log and progress bar manager for console, notebooks, web..."
 
groups = ["default"]
 
dependencies = [
 
    "tqdm",
 
]
 
files = [
 
    {file = "proglog-0.1.10-py3-none-any.whl", hash = "sha256:19d5da037e8c813da480b741e3fa71fb1ac0a5b02bf21c41577c7f327485ec50"},
 
    {file = "proglog-0.1.10.tar.gz", hash = "sha256:658c28c9c82e4caeb2f25f488fff9ceace22f8d69b15d0c1c86d64275e4ddab4"},
 
]
 

	
 
[[package]]
 
name = "prometheus-client"
 
version = "0.20.0"
 
requires_python = ">=3.8"
 
summary = "Python client for the Prometheus monitoring system."
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"},
 
    {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"},
 
]
 

	
 
[[package]]
 
name = "prompt-toolkit"
 
version = "3.0.43"
 
requires_python = ">=3.7.0"
 
summary = "Library for building powerful interactive command lines in Python"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
dependencies = [
 
    "wcwidth",
 
]
 
files = [
 
    {file = "prompt_toolkit-3.0.43-py3-none-any.whl", hash = "sha256:a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6"},
 
    {file = "prompt_toolkit-3.0.43.tar.gz", hash = "sha256:3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d"},
 
]
 

	
 
[[package]]
 
name = "ptyprocess"
 
version = "0.7.0"
 
summary = "Run a subprocess in a pseudo terminal"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
marker = "sys_platform != \"win32\" and sys_platform != \"emscripten\""
 
files = [
 
    {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"},
 
    {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"},
 
]
 

	
 
[[package]]
 
name = "pure-eval"
 
version = "0.2.2"
 
summary = "Safely evaluate AST nodes without side effects"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"},
 
    {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"},
 
]
 

	
 
[[package]]
 
name = "pyasn1"
 
version = "0.6.0"
 
requires_python = ">=3.8"
 
summary = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)"
 
groups = ["default"]
 
files = [
 
@@ -976,73 +1207,108 @@ summary = "Python interface for cairo"
 
groups = ["default"]
 
files = [
 
    {file = "pycairo-1.26.0-cp311-cp311-win32.whl", hash = "sha256:5986b8da3e7de7ab931d7ad527938df38f75d3a3bdea2b515c786c5ca2c5093c"},
 
    {file = "pycairo-1.26.0-cp311-cp311-win_amd64.whl", hash = "sha256:d374d9ec6d2f791bf57105d87a9028db1ef2b687848f64a524e447033eae7229"},
 
    {file = "pycairo-1.26.0-cp311-cp311-win_arm64.whl", hash = "sha256:20a31af89d92ffd5fc60c08e65ff649f16e18621a14a40dbdb049fc74942d7a9"},
 
    {file = "pycairo-1.26.0-cp312-cp312-win32.whl", hash = "sha256:d63929ab5a2f890a333f2f2f51de9f1c9fe20d1bddc982c2ca577b737448d72f"},
 
    {file = "pycairo-1.26.0-cp312-cp312-win_amd64.whl", hash = "sha256:8616408ae93de4824a3777ec532ea75643e4bf74e49d601062c0b1788180c962"},
 
    {file = "pycairo-1.26.0-cp312-cp312-win_arm64.whl", hash = "sha256:a611e4d82ad8470138bb46d465d47e8db826d9d80b6a520ccd83ee007f2073e4"},
 
    {file = "pycairo-1.26.0.tar.gz", hash = "sha256:2dddd0a874fbddb21e14acd9b955881ee1dc6e63b9c549a192d613a907f9cbeb"},
 
]
 

	
 
[[package]]
 
name = "pycodestyle"
 
version = "2.11.1"
 
requires_python = ">=3.8"
 
summary = "Python style guide checker"
 
groups = ["dev"]
 
files = [
 
    {file = "pycodestyle-2.11.1-py2.py3-none-any.whl", hash = "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"},
 
    {file = "pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"},
 
]
 

	
 
[[package]]
 
name = "pycparser"
 
version = "2.22"
 
requires_python = ">=3.8"
 
summary = "C parser in Python"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"},
 
    {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"},
 
]
 

	
 
[[package]]
 
name = "pydeps"
 
version = "1.12.20"
 
summary = "Display module dependencies"
 
groups = ["dev"]
 
dependencies = [
 
    "stdlib-list",
 
]
 
files = [
 
    {file = "pydeps-1.12.20-py3-none-any.whl", hash = "sha256:7278a8912bdada26b773d3550f0cc8fd76bed172d23dc1472c457d6292b67fd7"},
 
    {file = "pydeps-1.12.20.tar.gz", hash = "sha256:4f6a833a7998bfa24e339c55535882905c22960efc14902c361f74b2952aff19"},
 
]
 

	
 
[[package]]
 
name = "pydmxcontrol"
 
version = "2.0.0"
 
requires_python = ">= 3.6"
 
summary = "A Python 3 module to control DMX using OpenDMX or uDMX. Featuring fixture profiles, built-in effects and a web control panel."
 
groups = ["default"]
 
dependencies = [
 
    "flask",
 
    "pyftdi",
 
    "pyserial",
 
    "pyusb",
 
    "udmx-pyusb",
 
]
 
files = [
 
    {file = "PyDMXControl-2.0.0-py3-none-any.whl", hash = "sha256:a7de05df4a553d797aec2dabb20e616ec609fd89068419d84cb150c21d0cb0c5"},
 
    {file = "PyDMXControl-2.0.0.tar.gz", hash = "sha256:ea130d78b9dcf9fe1ba5092ef1c50cc5e6b2d795bda81957d8fa991dfc159eaa"},
 
]
 

	
 
[[package]]
 
name = "pyflakes"
 
version = "3.2.0"
 
requires_python = ">=3.8"
 
summary = "passive checker of Python programs"
 
groups = ["dev"]
 
files = [
 
    {file = "pyflakes-3.2.0-py2.py3-none-any.whl", hash = "sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a"},
 
    {file = "pyflakes-3.2.0.tar.gz", hash = "sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f"},
 
]
 

	
 
[[package]]
 
name = "pyftdi"
 
version = "0.55.4"
 
requires_python = ">=3.8"
 
summary = "FTDI device driver (pure Python)"
 
groups = ["default"]
 
dependencies = [
 
    "pyserial>=3.0",
 
    "pyusb!=1.2.0,>=1.0.0",
 
]
 
files = [
 
    {file = "pyftdi-0.55.4-py3-none-any.whl", hash = "sha256:64a804ea1c652e6935897df7867dbba18910848cad0a4927ccdb06813c072c85"},
 
    {file = "pyftdi-0.55.4.tar.gz", hash = "sha256:cb2770b606507024a65e0a520bf892f239a36cec25cab45338ce3e3027de53c8"},
 
]
 

	
 
[[package]]
 
name = "pygments"
 
version = "2.18.0"
 
requires_python = ">=3.8"
 
summary = "Pygments is a syntax highlighting package written in Python."
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"},
 
    {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"},
 
]
 

	
 
[[package]]
 
name = "pygobject"
 
version = "3.48.2"
 
requires_python = "<4,>=3.8"
 
summary = "Python bindings for GObject Introspection"
 
groups = ["default"]
 
dependencies = [
 
@@ -1074,25 +1340,25 @@ dependencies = [
 
    "cryptography<43,>=41.0.5",
 
]
 
files = [
 
    {file = "pyOpenSSL-24.1.0-py3-none-any.whl", hash = "sha256:17ed5be5936449c5418d1cd269a1a9e9081bc54c17aed272b45856a3d3dc86ad"},
 
    {file = "pyOpenSSL-24.1.0.tar.gz", hash = "sha256:cabed4bfaa5df9f1a16c0ef64a0cb65318b5cd077a7eda7d6970131ca2f41a6f"},
 
]
 

	
 
[[package]]
 
name = "pyparsing"
 
version = "3.1.2"
 
requires_python = ">=3.6.8"
 
summary = "pyparsing module - Classes and methods to define and execute parsing grammars"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"},
 
    {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"},
 
]
 

	
 
[[package]]
 
name = "pyreadline3"
 
version = "3.4.1"
 
summary = "A python implementation of GNU readline."
 
groups = ["default"]
 
marker = "sys_platform == \"win32\" and python_version >= \"3.8\""
 
files = [
 
@@ -1102,29 +1368,61 @@ files = [
 

	
 
[[package]]
 
name = "pyserial"
 
version = "3.5"
 
summary = "Python Serial Port Extension"
 
groups = ["default"]
 
files = [
 
    {file = "pyserial-3.5-py2.py3-none-any.whl", hash = "sha256:c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0"},
 
    {file = "pyserial-3.5.tar.gz", hash = "sha256:3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb"},
 
]
 

	
 
[[package]]
 
name = "pytest"
 
version = "8.2.0"
 
requires_python = ">=3.8"
 
summary = "pytest: simple powerful testing with Python"
 
groups = ["default", "dev"]
 
dependencies = [
 
    "colorama; sys_platform == \"win32\"",
 
    "iniconfig",
 
    "packaging",
 
    "pluggy<2.0,>=1.5",
 
]
 
files = [
 
    {file = "pytest-8.2.0-py3-none-any.whl", hash = "sha256:1733f0620f6cda4095bbf0d9ff8022486e91892245bb9e7d5542c018f612f233"},
 
    {file = "pytest-8.2.0.tar.gz", hash = "sha256:d507d4482197eac0ba2bae2e9babf0672eb333017bcedaa5fb1a3d42c1174b3f"},
 
]
 

	
 
[[package]]
 
name = "pytest-watch"
 
version = "4.2.0"
 
summary = "Local continuous test runner with pytest and watchdog."
 
groups = ["dev"]
 
dependencies = [
 
    "colorama>=0.3.3",
 
    "docopt>=0.4.0",
 
    "pytest>=2.6.4",
 
    "watchdog>=0.6.0",
 
]
 
files = [
 
    {file = "pytest-watch-4.2.0.tar.gz", hash = "sha256:06136f03d5b361718b8d0d234042f7b2f203910d8568f63df2f866b547b3d4b9"},
 
]
 

	
 
[[package]]
 
name = "python-dateutil"
 
version = "2.9.0.post0"
 
requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
 
summary = "Extensions to the standard Python datetime module"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
dependencies = [
 
    "six>=1.5",
 
]
 
files = [
 
    {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"},
 
    {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"},
 
]
 

	
 
[[package]]
 
name = "python-debouncer"
 
version = "0.1.4"
 
requires_python = ">=3.9,<4.0"
 
@@ -1250,29 +1548,46 @@ files = [
 
    {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e76654e9dbfb835b3518f9938e565c7806976c07b37c33526b574cc1a1050480"},
 
    {file = "pyzmq-26.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:871587bdadd1075b112e697173e946a07d722459d20716ceb3d1bd6c64bd08ce"},
 
    {file = "pyzmq-26.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d0a2d1bd63a4ad79483049b26514e70fa618ce6115220da9efdff63688808b17"},
 
    {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0270b49b6847f0d106d64b5086e9ad5dc8a902413b5dbbb15d12b60f9c1747a4"},
 
    {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:703c60b9910488d3d0954ca585c34f541e506a091a41930e663a098d3b794c67"},
 
    {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74423631b6be371edfbf7eabb02ab995c2563fee60a80a30829176842e71722a"},
 
    {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4adfbb5451196842a88fda3612e2c0414134874bffb1c2ce83ab4242ec9e027d"},
 
    {file = "pyzmq-26.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3516119f4f9b8671083a70b6afaa0a070f5683e431ab3dc26e9215620d7ca1ad"},
 
    {file = "pyzmq-26.0.3.tar.gz", hash = "sha256:dba7d9f2e047dfa2bca3b01f4f84aa5246725203d6284e3790f2ca15fba6b40a"},
 
]
 

	
 
[[package]]
 
name = "rdfdb"
 
version = "0.24.0"
 
requires_python = ">=3.10"
 
editable = true
 
path = "/my/proj/rdfdb"
 
summary = ""
 
groups = ["dev"]
 
dependencies = [
 
    "aiohttp>=3.8.1",
 
    "asyncinotify>=4.0.2",
 
    "autobahn>=23.1.2",
 
    "prometheus-client>=0.13.1",
 
    "rdflib",
 
    "starlette-exporter>=0.12.0",
 
]
 

	
 
[[package]]
 
name = "rdflib"
 
version = "7.0.0"
 
requires_python = ">=3.8.1,<4.0.0"
 
summary = "RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information."
 
groups = ["default"]
 
groups = ["default", "dev"]
 
dependencies = [
 
    "isodate<0.7.0,>=0.6.0",
 
    "pyparsing<4,>=2.1.0",
 
]
 
files = [
 
    {file = "rdflib-7.0.0-py3-none-any.whl", hash = "sha256:0438920912a642c866a513de6fe8a0001bd86ef975057d6962c79ce4771687cd"},
 
    {file = "rdflib-7.0.0.tar.gz", hash = "sha256:9995eb8569428059b8c1affd26b25eac510d64f5043d9ce8c84e0d0036e995ae"},
 
]
 

	
 
[[package]]
 
name = "requests"
 
version = "2.31.0"
 
@@ -1339,47 +1654,47 @@ dependencies = [
 
    "pyasn1-modules",
 
]
 
files = [
 
    {file = "service_identity-24.1.0-py3-none-any.whl", hash = "sha256:a28caf8130c8a5c1c7a6f5293faaf239bbfb7751e4862436920ee6f2616f568a"},
 
    {file = "service_identity-24.1.0.tar.gz", hash = "sha256:6829c9d62fb832c2e1c435629b0a8c476e1929881f28bee4d20bc24161009221"},
 
]
 

	
 
[[package]]
 
name = "setuptools"
 
version = "69.5.1"
 
requires_python = ">=3.8"
 
summary = "Easily download, build, install, upgrade, and uninstall Python packages"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "setuptools-69.5.1-py3-none-any.whl", hash = "sha256:c636ac361bc47580504644275c9ad802c50415c7522212252c033bd15f301f32"},
 
    {file = "setuptools-69.5.1.tar.gz", hash = "sha256:6c1fccdac05a97e598fb0ae3bbed5904ccb317337a51139dcd51453611bbb987"},
 
]
 

	
 
[[package]]
 
name = "six"
 
version = "1.16.0"
 
requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
 
summary = "Python 2 and 3 compatibility utilities"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
 
    {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
 
]
 

	
 
[[package]]
 
name = "sniffio"
 
version = "1.3.1"
 
requires_python = ">=3.7"
 
summary = "Sniff out which async library your code is running under"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"},
 
    {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"},
 
]
 

	
 
[[package]]
 
name = "sse-starlette"
 
version = "2.1.0"
 
requires_python = ">=3.8"
 
summary = "SSE plugin for Starlette"
 
groups = ["default"]
 
dependencies = [
 
@@ -1387,85 +1702,107 @@ dependencies = [
 
    "starlette",
 
    "uvicorn",
 
]
 
files = [
 
    {file = "sse_starlette-2.1.0-py3-none-any.whl", hash = "sha256:ea92bcb366c12482c1e23cab6b5afed19eb1320efe9ddfba8a0cf1f7f73ffba9"},
 
    {file = "sse_starlette-2.1.0.tar.gz", hash = "sha256:ffff6e7d948f925f347e662be77af5783a6b93efce15d42c03004dcd7d6d91d3"},
 
]
 

	
 
[[package]]
 
name = "stack-data"
 
version = "0.6.3"
 
summary = "Extract data from python stack frames and tracebacks for informative displays"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
dependencies = [
 
    "asttokens>=2.1.0",
 
    "executing>=1.2.0",
 
    "pure-eval",
 
]
 
files = [
 
    {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"},
 
    {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"},
 
]
 

	
 
[[package]]
 
name = "starlette"
 
version = "0.37.2"
 
requires_python = ">=3.8"
 
summary = "The little ASGI library that shines."
 
groups = ["default"]
 
groups = ["default", "dev"]
 
dependencies = [
 
    "anyio<5,>=3.4.0",
 
]
 
files = [
 
    {file = "starlette-0.37.2-py3-none-any.whl", hash = "sha256:6fe59f29268538e5d0d182f2791a479a0c64638e6935d1c6989e63fb2699c6ee"},
 
    {file = "starlette-0.37.2.tar.gz", hash = "sha256:9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823"},
 
]
 

	
 
[[package]]
 
name = "starlette-exporter"
 
version = "0.21.0"
 
requires_python = ">=3.8"
 
summary = "Prometheus metrics exporter for Starlette applications."
 
groups = ["default"]
 
groups = ["default", "dev"]
 
dependencies = [
 
    "prometheus-client>=0.12",
 
    "starlette>=0.35",
 
]
 
files = [
 
    {file = "starlette_exporter-0.21.0-py3-none-any.whl", hash = "sha256:f6c66fe241c7cc3634ba9d35231684bffb620ea35671e71cd788c26a50a7caaa"},
 
    {file = "starlette_exporter-0.21.0.tar.gz", hash = "sha256:ca513b173003439303e931f467054c9fe75e7c98439f2ae17e94c9c3bcf18dfd"},
 
]
 

	
 
[[package]]
 
name = "statprof"
 
version = "0.1.2"
 
summary = "Statistical profiling for Python"
 
groups = ["default"]
 
files = [
 
    {file = "statprof-0.1.2.tar.gz", hash = "sha256:adb8654edd5183e91e1538ee9112314f8129a52796bfa32cfa34b2f0e73295b4"},
 
]
 

	
 
[[package]]
 
name = "stdlib-list"
 
version = "0.10.0"
 
requires_python = ">=3.7"
 
summary = "A list of Python Standard Libraries (2.7 through 3.12)."
 
groups = ["dev"]
 
files = [
 
    {file = "stdlib_list-0.10.0-py3-none-any.whl", hash = "sha256:b3a911bc441d03e0332dd1a9e7d0870ba3bb0a542a74d7524f54fb431256e214"},
 
    {file = "stdlib_list-0.10.0.tar.gz", hash = "sha256:6519c50d645513ed287657bfe856d527f277331540691ddeaf77b25459964a14"},
 
]
 

	
 
[[package]]
 
name = "tenacity"
 
version = "8.3.0"
 
requires_python = ">=3.8"
 
summary = "Retry code until it succeeds"
 
groups = ["default"]
 
files = [
 
    {file = "tenacity-8.3.0-py3-none-any.whl", hash = "sha256:3649f6443dbc0d9b01b9d8020a9c4ec7a1ff5f6f3c6c8a036ef371f573fe9185"},
 
    {file = "tenacity-8.3.0.tar.gz", hash = "sha256:953d4e6ad24357bceffbc9707bc74349aca9d245f68eb65419cf0c249a1949a2"},
 
]
 

	
 
[[package]]
 
name = "tomli"
 
version = "2.0.1"
 
requires_python = ">=3.7"
 
summary = "A lil' TOML parser"
 
groups = ["dev"]
 
files = [
 
    {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
 
    {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
 
]
 

	
 
[[package]]
 
name = "toposort"
 
version = "1.10"
 
summary = "Implements a topological sort algorithm."
 
groups = ["default"]
 
files = [
 
    {file = "toposort-1.10-py3-none-any.whl", hash = "sha256:cbdbc0d0bee4d2695ab2ceec97fe0679e9c10eab4b2a87a9372b929e70563a87"},
 
    {file = "toposort-1.10.tar.gz", hash = "sha256:bfbb479c53d0a696ea7402601f4e693c97b0367837c8898bc6471adfca37a6bd"},
 
]
 

	
 
[[package]]
 
name = "tqdm"
 
version = "4.66.4"
 
@@ -1476,25 +1813,25 @@ dependencies = [
 
    "colorama; platform_system == \"Windows\"",
 
]
 
files = [
 
    {file = "tqdm-4.66.4-py3-none-any.whl", hash = "sha256:b75ca56b413b030bc3f00af51fd2c1a1a5eac6a0c1cca83cbb37a5c52abce644"},
 
    {file = "tqdm-4.66.4.tar.gz", hash = "sha256:e4d936c9de8727928f3be6079590e97d9abfe8d39a590be678eb5919ffc186bb"},
 
]
 

	
 
[[package]]
 
name = "traitlets"
 
version = "5.14.3"
 
requires_python = ">=3.8"
 
summary = "Traitlets Python configuration system"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"},
 
    {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"},
 
]
 

	
 
[[package]]
 
name = "treq"
 
version = "23.11.0"
 
requires_python = ">=3.6"
 
summary = "High-level Twisted HTTP Client API"
 
groups = ["default"]
 
dependencies = [
 
@@ -1558,43 +1895,54 @@ groups = ["default"]
 
dependencies = [
 
    "idna>=2.4",
 
    "pyopenssl>=21.0.0",
 
    "service-identity>=18.1.0",
 
    "twisted==24.3.0",
 
]
 
files = [
 
    {file = "twisted-24.3.0-py3-none-any.whl", hash = "sha256:039f2e6a49ab5108abd94de187fa92377abe5985c7a72d68d0ad266ba19eae63"},
 
    {file = "twisted-24.3.0.tar.gz", hash = "sha256:6b38b6ece7296b5e122c9eb17da2eeab3d98a198f50ca9efd00fb03e5b4fd4ae"},
 
]
 

	
 
[[package]]
 
name = "txaio"
 
version = "23.1.1"
 
requires_python = ">=3.7"
 
summary = "Compatibility API between asyncio/Twisted/Trollius"
 
groups = ["dev"]
 
files = [
 
    {file = "txaio-23.1.1-py2.py3-none-any.whl", hash = "sha256:aaea42f8aad50e0ecfb976130ada140797e9dcb85fad2cf72b0f37f8cefcb490"},
 
    {file = "txaio-23.1.1.tar.gz", hash = "sha256:f9a9216e976e5e3246dfd112ad7ad55ca915606b60b84a757ac769bd404ff704"},
 
]
 

	
 
[[package]]
 
name = "txzmq"
 
version = "1.0.0"
 
summary = "Twisted bindings for ZeroMQ"
 
groups = ["default"]
 
dependencies = [
 
    "Twisted>=10.0",
 
    "pyzmq>=13",
 
]
 
files = [
 
    {file = "txZMQ-1.0.0-py3-none-any.whl", hash = "sha256:23dd8554994e99736b20112dce5254c0f45574b250cd428fed8091bccb357870"},
 
    {file = "txZMQ-1.0.0.tar.gz", hash = "sha256:8d607d0bf09ca94600b8e42f0721dbe43ee53a0470182344ac7ace7e58dc6177"},
 
]
 

	
 
[[package]]
 
name = "typing-extensions"
 
version = "4.11.0"
 
requires_python = ">=3.8"
 
summary = "Backported and Experimental Type Hints for Python 3.8+"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"},
 
    {file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"},
 
]
 

	
 
[[package]]
 
name = "udmx-pyusb"
 
version = "2.0.0"
 
summary = "uDMX Interface Library"
 
groups = ["default"]
 
dependencies = [
 
    "pyusb>=1.0.2",
 
@@ -1671,25 +2019,25 @@ files = [
 
    {file = "uvloop-0.19.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2693049be9d36fef81741fddb3f441673ba12a34a704e7b4361efb75cf30befc"},
 
    {file = "uvloop-0.19.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7010271303961c6f0fe37731004335401eb9075a12680738731e9c92ddd96ad6"},
 
    {file = "uvloop-0.19.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:5daa304d2161d2918fa9a17d5635099a2f78ae5b5960e742b2fcfbb7aefaa593"},
 
    {file = "uvloop-0.19.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:7207272c9520203fea9b93843bb775d03e1cf88a80a936ce760f60bb5add92f3"},
 
    {file = "uvloop-0.19.0.tar.gz", hash = "sha256:0246f4fd1bf2bf702e06b0d45ee91677ee5c31242f39aab4ea6fe0c51aedd0fd"},
 
]
 

	
 
[[package]]
 
name = "watchdog"
 
version = "4.0.0"
 
requires_python = ">=3.8"
 
summary = "Filesystem events monitoring"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "watchdog-4.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8350d4055505412a426b6ad8c521bc7d367d1637a762c70fdd93a3a0d595990b"},
 
    {file = "watchdog-4.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c17d98799f32e3f55f181f19dd2021d762eb38fdd381b4a748b9f5a36738e935"},
 
    {file = "watchdog-4.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4986db5e8880b0e6b7cd52ba36255d4793bf5cdc95bd6264806c233173b1ec0b"},
 
    {file = "watchdog-4.0.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:11e12fafb13372e18ca1bbf12d50f593e7280646687463dd47730fd4f4d5d257"},
 
    {file = "watchdog-4.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5369136a6474678e02426bd984466343924d1df8e2fd94a9b443cb7e3aa20d19"},
 
    {file = "watchdog-4.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76ad8484379695f3fe46228962017a7e1337e9acadafed67eb20aabb175df98b"},
 
    {file = "watchdog-4.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6e949a8a94186bced05b6508faa61b7adacc911115664ccb1923b9ad1f1ccf7b"},
 
    {file = "watchdog-4.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6a4db54edea37d1058b08947c789a2354ee02972ed5d1e0dca9b0b820f4c7f92"},
 
    {file = "watchdog-4.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d31481ccf4694a8416b681544c23bd271f5a123162ab603c7d7d2dd7dd901a07"},
 
    {file = "watchdog-4.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:8fec441f5adcf81dd240a5fe78e3d83767999771630b5ddfc5867827a34fa3d3"},
 
    {file = "watchdog-4.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:6a9c71a0b02985b4b0b6d14b875a6c86ddea2fdbebd0c9a720a806a8bbffc69f"},
 
@@ -1750,25 +2098,25 @@ files = [
 
    {file = "watchfiles-0.21.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dd5fad9b9c0dd89904bbdea978ce89a2b692a7ee8a0ce19b940e538c88a809c"},
 
    {file = "watchfiles-0.21.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:be6dd5d52b73018b21adc1c5d28ac0c68184a64769052dfeb0c5d9998e7f56a2"},
 
    {file = "watchfiles-0.21.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:b3cab0e06143768499384a8a5efb9c4dc53e19382952859e4802f294214f36ec"},
 
    {file = "watchfiles-0.21.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c6ed10c2497e5fedadf61e465b3ca12a19f96004c15dcffe4bd442ebadc2d85"},
 
    {file = "watchfiles-0.21.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43babacef21c519bc6631c5fce2a61eccdfc011b4bcb9047255e9620732c8097"},
 
    {file = "watchfiles-0.21.0.tar.gz", hash = "sha256:c76c635fabf542bb78524905718c39f736a98e5ab25b23ec6d4abede1a85a6a3"},
 
]
 

	
 
[[package]]
 
name = "wcwidth"
 
version = "0.2.13"
 
summary = "Measures the displayed width of unicode strings in a terminal"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
files = [
 
    {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"},
 
    {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"},
 
]
 

	
 
[[package]]
 
name = "webcolors"
 
version = "1.13"
 
requires_python = ">=3.7"
 
summary = "A library for working with the color formats defined by HTML and CSS."
 
groups = ["default"]
 
files = [
 
@@ -1830,29 +2178,45 @@ version = "3.0.3"
 
requires_python = ">=3.8"
 
summary = "The comprehensive WSGI web application library."
 
groups = ["default"]
 
dependencies = [
 
    "MarkupSafe>=2.1.1",
 
]
 
files = [
 
    {file = "werkzeug-3.0.3-py3-none-any.whl", hash = "sha256:fc9645dc43e03e4d630d23143a04a7f947a9a3b5727cd535fdfe155a17cc48c8"},
 
    {file = "werkzeug-3.0.3.tar.gz", hash = "sha256:097e5bfda9f0aba8da6b8545146def481d06aa7d3266e7448e2cccf67dd8bd18"},
 
]
 

	
 
[[package]]
 
name = "yapf"
 
version = "0.40.2"
 
requires_python = ">=3.7"
 
summary = "A formatter for Python code"
 
groups = ["dev"]
 
dependencies = [
 
    "importlib-metadata>=6.6.0",
 
    "platformdirs>=3.5.1",
 
    "tomli>=2.0.1",
 
]
 
files = [
 
    {file = "yapf-0.40.2-py3-none-any.whl", hash = "sha256:adc8b5dd02c0143108878c499284205adb258aad6db6634e5b869e7ee2bd548b"},
 
    {file = "yapf-0.40.2.tar.gz", hash = "sha256:4dab8a5ed7134e26d57c1647c7483afb3f136878b579062b786c9ba16b94637b"},
 
]
 

	
 
[[package]]
 
name = "yarl"
 
version = "1.9.4"
 
requires_python = ">=3.7"
 
summary = "Yet another URL library"
 
groups = ["default"]
 
groups = ["default", "dev"]
 
dependencies = [
 
    "idna>=2.0",
 
    "multidict>=4.0",
 
]
 
files = [
 
    {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:35a2b9396879ce32754bd457d31a51ff0a9d426fd9e0e3c33394bf4b9036b099"},
 
    {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c7d56b293cc071e82532f70adcbd8b61909eec973ae9d2d1f9b233f3d943f2c"},
 
    {file = "yarl-1.9.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d8a1c6c0be645c745a081c192e747c5de06e944a0d21245f4cf7c05e457c36e0"},
 
    {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b3c1ffe10069f655ea2d731808e76e0f452fc6c749bea04781daf18e6039525"},
 
    {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:549d19c84c55d11687ddbd47eeb348a89df9cb30e1993f1b128f4685cd0ebbf8"},
 
    {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7409f968456111140c1c95301cadf071bd30a81cbd7ab829169fb9e3d72eae9"},
 
    {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e23a6d84d9d1738dbc6e38167776107e63307dfc8ad108e580548d1f2c587f42"},
 
@@ -1875,24 +2239,35 @@ files = [
 
    {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:008d3e808d03ef28542372d01057fd09168419cdc8f848efe2804f894ae03e51"},
 
    {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6f5cb257bc2ec58f437da2b37a8cd48f666db96d47b8a3115c29f316313654ff"},
 
    {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:992f18e0ea248ee03b5a6e8b3b4738850ae7dbb172cc41c966462801cbf62cf7"},
 
    {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0e9d124c191d5b881060a9e5060627694c3bdd1fe24c5eecc8d5d7d0eb6faabc"},
 
    {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3986b6f41ad22988e53d5778f91855dc0399b043fc8946d4f2e68af22ee9ff10"},
 
    {file = "yarl-1.9.4-cp312-cp312-win32.whl", hash = "sha256:4b21516d181cd77ebd06ce160ef8cc2a5e9ad35fb1c5930882baff5ac865eee7"},
 
    {file = "yarl-1.9.4-cp312-cp312-win_amd64.whl", hash = "sha256:a9bd00dc3bc395a662900f33f74feb3e757429e545d831eef5bb280252631984"},
 
    {file = "yarl-1.9.4-py3-none-any.whl", hash = "sha256:928cecb0ef9d5a7946eb6ff58417ad2fe9375762382f1bf5c55e61645f2c43ad"},
 
    {file = "yarl-1.9.4.tar.gz", hash = "sha256:566db86717cf8080b99b58b083b773a908ae40f06681e87e589a976faf8246bf"},
 
]
 

	
 
[[package]]
 
name = "zipp"
 
version = "3.18.1"
 
requires_python = ">=3.8"
 
summary = "Backport of pathlib-compatible object wrapper for zip files"
 
groups = ["dev"]
 
files = [
 
    {file = "zipp-3.18.1-py3-none-any.whl", hash = "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b"},
 
    {file = "zipp-3.18.1.tar.gz", hash = "sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715"},
 
]
 

	
 
[[package]]
 
name = "zmq"
 
version = "0.0.0"
 
summary = "You are probably looking for pyzmq."
 
groups = ["default"]
 
dependencies = [
 
    "pyzmq",
 
]
 
files = [
 
    {file = "zmq-0.0.0.tar.gz", hash = "sha256:6b1a1de53338646e8c8405803cffb659e8eb7bb02fff4c9be62a7acfac8370c9"},
 
    {file = "zmq-0.0.0.zip", hash = "sha256:21cfc6be254c9bc25e4dabb8a3b2006a4227966b7b39a637426084c8dc6901f7"},
 
]
 

	
pyproject.toml
Show inline comments
 
@@ -35,24 +35,25 @@ dependencies = [
 
    "uvicorn[standard]>=0.17.6",
 
    "watchdog>=2.1.7",
 
    "webcolors>=1.11.1",
 
    "scipy>=1.9.3",
 
    "braillegraph>=0.6",
 
    "tenacity>=8.2.2",
 
    "zmq>=0.0.0",
 
    "mido>=1.2.10",
 
    "alsa-midi>=1.0.1",
 
    "treq>=22.2.0",
 
    "light9 @ file:///${PROJECT_ROOT}/",
 
    "python-debouncer>=0.1.4",
 
    "pytest>=8.2.0",
 
]
 
requires-python = ">=3.11"
 

	
 
readme = "README.md"
 

	
 
[project.urls]
 
Homepage = "https://bigasterisk.com/light9/"
 

	
 
[tool.pdm]
 

	
 
[tool.pdm.dev-dependencies]
 
dev = [
0 comments (0 inline, 0 general)