From c9584ba7bfce351e711bcb72c222d9eff60bbbb7 Mon Sep 17 00:00:00 2001 From: Amir Alavi Date: Thu, 24 Jul 2025 10:23:07 +0100 Subject: [PATCH 1/2] Implement material for mkdocs functionality with basic introduction Signed-off-by: Amir Alavi --- .gitignore | 1 + docs/blog/.authors.yml | 5 + docs/blog/index.md | 0 docs/blogs/index.md | 2 + .../embedIDS_logo - Copy.png:Zone.Identifier | 0 docs/images/embedIDS_logo.png | Bin 0 -> 4904 bytes docs/images/embedIDS_logo_text.png | Bin 0 -> 19472 bytes docs/images/favicon.png | Bin 0 -> 1257 bytes docs/index.md | 96 +++- docs/javascript/extra.js | 0 docs/overrides/main.html | 6 + docs/stylesheets/extra.css | 0 mkdocs.yml | 89 ++- poetry.lock | 540 +++++++++++++++++- pyproject.toml | 9 +- 15 files changed, 731 insertions(+), 17 deletions(-) create mode 100644 docs/blog/.authors.yml create mode 100644 docs/blog/index.md create mode 100644 docs/blogs/index.md create mode 100644 docs/images/embedIDS_logo - Copy.png:Zone.Identifier create mode 100644 docs/images/embedIDS_logo.png create mode 100644 docs/images/embedIDS_logo_text.png create mode 100644 docs/images/favicon.png create mode 100644 docs/javascript/extra.js create mode 100644 docs/overrides/main.html create mode 100644 docs/stylesheets/extra.css diff --git a/.gitignore b/.gitignore index 1d17dae..a9c0a6b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .venv +.cache diff --git a/docs/blog/.authors.yml b/docs/blog/.authors.yml new file mode 100644 index 0000000..87caa76 --- /dev/null +++ b/docs/blog/.authors.yml @@ -0,0 +1,5 @@ +authors: + samiralavi: + name: Seyed Amir Alavi + description: Creator + avatar: https://github.com/samiralavi.png diff --git a/docs/blog/index.md b/docs/blog/index.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/blogs/index.md b/docs/blogs/index.md new file mode 100644 index 0000000..c58f16c --- /dev/null +++ b/docs/blogs/index.md @@ -0,0 +1,2 @@ +# Blog + diff --git a/docs/images/embedIDS_logo - Copy.png:Zone.Identifier b/docs/images/embedIDS_logo - Copy.png:Zone.Identifier new file mode 100644 index 0000000..e69de29 diff --git a/docs/images/embedIDS_logo.png b/docs/images/embedIDS_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3e2347c2e417de5c37097a3b3d271aaed78fdf7c GIT binary patch literal 4904 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 N8S0zqRp_|f{2%EkzhwXb literal 0 HcmV?d00001 diff --git a/docs/images/embedIDS_logo_text.png b/docs/images/embedIDS_logo_text.png new file mode 100644 index 0000000000000000000000000000000000000000..41386b8914489955817a2c903ebb142cdd29ec15 GIT binary patch literal 19472 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 Tw1p~a00000NkvXXu0mjf$x%-v literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index c9353cb..775f86d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1 +1,95 @@ -# EmbedIDS, Modern Intrusion Detection System (IDS) for Embedded Systems +--- +title: Home +description: EmbedIDS is a lightweight Runtime Intrusion Detection SDK specifically designed for low-power embedded Internet of Things (IoT) devices. Our open-source SDK provides AI-driven protection to address the critical security gap in constrained IoT environments. +hide: + - toc +--- +# EmbedIDS: Open Source Intrusion Detection System (IDS) for Embedded Systems + +![EmbedIDS Logo](images/embedIDS_logo_text.png) + +EmbedIDS is a lightweight Runtime Intrusion Detection SDK specifically designed for low-power embedded Internet of Things (IoT) devices. Our open-source SDK provides AI-driven protection to address the critical security gap in constrained IoT environments. + +## Overview + +EmbedIDS provides on-device, AI-driven protection tailored to resource-constrained embedded systems. By deploying compact anomaly-detection agents directly on devices, we enable real-time protection without relying on external connectivity or cloud dependencies. + +## Product Features + +### Open-Source SDK (Apache 2.0 Licensed) +Our free SDK empowers developers to secure embedded devices at no cost, featuring: + +- **Lightweight on-device intrusion detection system** +- **Fixed-logic detection models** optimized for low-power environments +- **Zero licensing fees** for developers and deployments +- **Apache 2.0 license** ensuring maximum flexibility and adoption +- **Customizable metric collection** for device-specific monitoring +- **AI-model training tools** for tailored threat detection + +## Key Features + +### On-Device Intelligence +- **Real-time anomaly detection** without cloud dependency +- **Compact ML models** optimized for embedded constraints +- **Behavioral analysis** tailored to device-specific operations +- **Low resource footprint** suitable for IoT devices + +### Customizable Security +- **Define custom behavioral metrics** based on device functionality +- **Train specialized ML models** using our development tools +- **Deploy targeted protection** for specific threat vectors +- **Adaptive monitoring** that evolves with device behavior + +### Developer-Friendly Design +- **Easy integration** with existing embedded systems +- **Minimal configuration** required for basic protection +- **Comprehensive documentation** and examples +- **Active community support** for open-source users + +## Why EmbedIDS? + +The IoT security landscape faces unique challenges: + +- **Resource constraints** limit traditional security solutions +- **Connectivity issues** make cloud-dependent protection unreliable +- **Scale requirements** demand cost-effective deployment models +- **Diverse hardware** needs flexible, adaptable solutions + +EmbedIDS addresses these challenges by providing: + +1. **On-device protection** that works offline +2. **Lightweight implementation** suitable for constrained devices +3. **Open-source model** enabling rapid adoption and community collaboration +4. **AI-driven detection** for sophisticated threat identification + +## Getting Started + +Start securing your embedded devices immediately with our open-source SDK: + +1. Download the SDK from our repository +2. Integrate the lightweight SDK into your device +3. Configure intrusion detection rules for your use case +4. Train custom ML models using our development tools +5. Deploy with confidence knowing your devices are protected + +## Use Cases + +- **Industrial IoT sensors** monitoring critical infrastructure +- **Smart home devices** protecting personal networks +- **Medical IoT devices** ensuring patient safety and privacy +- **Automotive embedded systems** securing connected vehicles +- **Edge computing nodes** protecting distributed networks + +## Community and Support + +EmbedIDS thrives on open-source collaboration and community contribution: + +- **Active open-source community** for developers and researchers +- **Community support** through forums and documentation +- **Regular updates** and security patches +- **Comprehensive documentation** and tutorials for all skill levels +- **Contribution guidelines** for community developers + +--- + +*Ready to secure your embedded devices? Download our open-source SDK and join the community!* \ No newline at end of file diff --git a/docs/javascript/extra.js b/docs/javascript/extra.js new file mode 100644 index 0000000..e69de29 diff --git a/docs/overrides/main.html b/docs/overrides/main.html new file mode 100644 index 0000000..022ec75 --- /dev/null +++ b/docs/overrides/main.html @@ -0,0 +1,6 @@ +{% extends "base.html" %} + +{% block announce %} + + EmbedIDS is launching soon! Stay tuned for updates. Follow us on LinkedIn for the latest news. +{% endblock %} diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css new file mode 100644 index 0000000..e69de29 diff --git a/mkdocs.yml b/mkdocs.yml index 472fbeb..fa14994 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,34 +1,48 @@ -site_name: EmbedIDS, Modern Intrusion Detection System (IDS) for Embedded Systems +site_name: EmbedIDS, Cybersecurity for Embedded Systems site_author: Seyed Amir Alavi -site_url: https://embedids.samiralavi.io/ -repo_name: samiralavi/embedids +site_url: https://embedids.samiralavi.io/ +repo_url: https://github.com/samiralavi/embedids docs_dir: "docs" theme: name: material + custom_dir: docs/overrides language: en - icon: - logo: material/contacts + logo: images/embedIDS_logo.png favicon: images/favicon.png + icon: + repo: fontawesome/brands/github palette: + # Palette toggle for automatic mode + - media: "(prefers-color-scheme)" + toggle: + icon: material/brightness-auto + name: Switch to light mode + # Palette toggle for light mode - media: "(prefers-color-scheme: light)" scheme: default toggle: icon: material/weather-sunny name: Switch to dark mode - primary: teal - accent: blue + primary: white + accent: red + # Palette toggle for dark mode - media: "(prefers-color-scheme: dark)" scheme: slate toggle: icon: material/weather-night name: Switch to light mode - primary: teal + primary: red accent: red features: - navigation.sections - - toc.integrate + - navigation.tabs + - navigation.sections - navigation.top + - navigation.footer + - header.autohide + - toc.integrate + - toc.follow - search.suggest - search.highlight - search.share @@ -37,6 +51,35 @@ theme: extra: version: provider: mike + social: + - icon: fontawesome/brands/github + link: https://github.com/samiralavi/embedids + - icon: fontawesome/brands/linkedin + link: https://www.linkedin.com/company/embedids + analytics: + provider: google + property: G-5ZPJDQ0248 + feedback: + title: Was this page helpful? + ratings: + - icon: material/emoticon-happy-outline + name: This page was helpful + data: 1 + note: >- + Thanks for your feedback! + - icon: material/emoticon-sad-outline + name: This page could be improved + data: 0 + note: >- + Thanks for your feedback! Help us improve this page by + using our feedback form. + consent: + title: Cookie consent + description: >- + We use cookies to recognize your repeated visits and preferences, as well + as to measure the effectiveness of our documentation and whether users + find what they're searching for. With your consent, you're helping us to + make our documentation better. markdown_extensions: - admonition @@ -57,8 +100,32 @@ markdown_extensions: plugins: - search - mike - + - social + - blog: + blog_dir: blog + archive: false + - rss: + match_path: blog/posts/.* + date_from_meta: + as_creation: date + categories: + - categories + - tags + - git-revision-date-localized: + enable_creation_date: true + - git-committers: + repository: samiralavi/embedids + branch: main nav: - "index.md" + - Blog: + - blog/index.md + +extra_css: + - stylesheets/extra.css + +extra_javascript: + - javascripts/extra.js -copyright: Copyright © 2025 Seyed Amir Alavi. \ No newline at end of file +copyright: Copyright © 2025 Seyed Amir Alavi and Mahyar Abbaspour – + Change cookie settings diff --git a/poetry.lock b/poetry.lock index f284fe3..6ed1746 100644 --- a/poetry.lock +++ b/poetry.lock @@ -35,6 +35,71 @@ files = [ [package.extras] extras = ["regex"] +[[package]] +name = "cachecontrol" +version = "0.14.3" +description = "httplib2 caching for requests" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "cachecontrol-0.14.3-py3-none-any.whl", hash = "sha256:b35e44a3113f17d2a31c1e6b27b9de6d4405f84ae51baa8c1d3cc5b633010cae"}, + {file = "cachecontrol-0.14.3.tar.gz", hash = "sha256:73e7efec4b06b20d9267b441c1f733664f989fb8688391b670ca812d70795d11"}, +] + +[package.dependencies] +filelock = {version = ">=3.8.0", optional = true, markers = "extra == \"filecache\""} +msgpack = ">=0.5.2,<2.0.0" +requests = ">=2.16.0" + +[package.extras] +dev = ["CacheControl[filecache,redis]", "build", "cherrypy", "codespell[tomli]", "furo", "mypy", "pytest", "pytest-cov", "ruff", "sphinx", "sphinx-copybutton", "tox", "types-redis", "types-requests"] +filecache = ["filelock (>=3.8.0)"] +redis = ["redis (>=2.10.5)"] + +[[package]] +name = "cairocffi" +version = "1.7.1" +description = "cffi-based cairo bindings for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "cairocffi-1.7.1-py3-none-any.whl", hash = "sha256:9803a0e11f6c962f3b0ae2ec8ba6ae45e957a146a004697a1ac1bbf16b073b3f"}, + {file = "cairocffi-1.7.1.tar.gz", hash = "sha256:2e48ee864884ec4a3a34bfa8c9ab9999f688286eb714a15a43ec9d068c36557b"}, +] + +[package.dependencies] +cffi = ">=1.1.0" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["numpy", "pikepdf", "pytest", "ruff"] +xcb = ["xcffib (>=1.4.0)"] + +[[package]] +name = "cairosvg" +version = "2.8.2" +description = "A Simple SVG Converter based on Cairo" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "cairosvg-2.8.2-py3-none-any.whl", hash = "sha256:eab46dad4674f33267a671dce39b64be245911c901c70d65d2b7b0821e852bf5"}, + {file = "cairosvg-2.8.2.tar.gz", hash = "sha256:07cbf4e86317b27a92318a4cac2a4bb37a5e9c1b8a27355d06874b22f85bef9f"}, +] + +[package.dependencies] +cairocffi = "*" +cssselect2 = "*" +defusedxml = "*" +pillow = "*" +tinycss2 = "*" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["flake8", "isort", "pytest"] + [[package]] name = "certifi" version = "2025.7.14" @@ -47,6 +112,86 @@ files = [ {file = "certifi-2025.7.14.tar.gz", hash = "sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995"}, ] +[[package]] +name = "cffi" +version = "1.17.1" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, +] + +[package.dependencies] +pycparser = "*" + [[package]] name = "charset-normalizer" version = "3.4.2" @@ -176,6 +321,55 @@ files = [ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +[[package]] +name = "cssselect2" +version = "0.8.0" +description = "CSS selectors for Python ElementTree" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "cssselect2-0.8.0-py3-none-any.whl", hash = "sha256:46fc70ebc41ced7a32cd42d58b1884d72ade23d21e5a4eaaf022401c13f0e76e"}, + {file = "cssselect2-0.8.0.tar.gz", hash = "sha256:7674ffb954a3b46162392aee2a3a0aedb2e14ecf99fcc28644900f4e6e3e9d3a"}, +] + +[package.dependencies] +tinycss2 = "*" +webencodings = "*" + +[package.extras] +doc = ["furo", "sphinx"] +test = ["pytest", "ruff"] + +[[package]] +name = "defusedxml" +version = "0.7.1" +description = "XML bomb protection for Python stdlib modules" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +groups = ["main"] +files = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] + +[[package]] +name = "filelock" +version = "3.18.0" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "filelock-3.18.0-py3-none-any.whl", hash = "sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de"}, + {file = "filelock-3.18.0.tar.gz", hash = "sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"] +typing = ["typing-extensions (>=4.12.2) ; python_version < \"3.11\""] + [[package]] name = "ghp-import" version = "2.1.0" @@ -194,6 +388,40 @@ python-dateutil = ">=2.8.1" [package.extras] dev = ["flake8", "markdown", "twine", "wheel"] +[[package]] +name = "gitdb" +version = "4.0.12" +description = "Git Object Database" +optional = false +python-versions = ">=3.7" +groups = ["main"] +files = [ + {file = "gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf"}, + {file = "gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571"}, +] + +[package.dependencies] +smmap = ">=3.0.1,<6" + +[[package]] +name = "gitpython" +version = "3.1.45" +description = "GitPython is a Python library used to interact with Git repositories" +optional = false +python-versions = ">=3.7" +groups = ["main"] +files = [ + {file = "gitpython-3.1.45-py3-none-any.whl", hash = "sha256:8908cb2e02fb3b93b7eb0f2827125cb699869470432cc885f019b8fd0fccff77"}, + {file = "gitpython-3.1.45.tar.gz", hash = "sha256:85b0ee964ceddf211c41b9f27a49086010a190fd8132a24e21f362a4b36a791c"}, +] + +[package.dependencies] +gitdb = ">=4.0.1,<5" + +[package.extras] +doc = ["sphinx (>=7.1.2,<7.2)", "sphinx-autodoc-typehints", "sphinx_rtd_theme"] +test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock ; python_version < \"3.8\"", "mypy", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "typing-extensions ; python_version < \"3.11\""] + [[package]] name = "idna" version = "3.10" @@ -444,6 +672,41 @@ mergedeep = ">=1.3.4" platformdirs = ">=2.2.0" pyyaml = ">=5.1" +[[package]] +name = "mkdocs-git-committers-plugin-2" +version = "2.5.0" +description = "An MkDocs plugin to create a list of contributors on the page. The git-committers plugin will seed the template context with a list of GitHub or GitLab committers and other useful GIT info such as last modified date" +optional = false +python-versions = "<4,>=3.8" +groups = ["main"] +files = [ + {file = "mkdocs_git_committers_plugin_2-2.5.0-py3-none-any.whl", hash = "sha256:1778becf98ccdc5fac809ac7b62cf01d3c67d6e8432723dffbb823307d1193c4"}, + {file = "mkdocs_git_committers_plugin_2-2.5.0.tar.gz", hash = "sha256:a01f17369e79ca28651681cddf212770e646e6191954bad884ca3067316aae60"}, +] + +[package.dependencies] +gitpython = "*" +mkdocs = ">=1.0.3" +requests = "*" + +[[package]] +name = "mkdocs-git-revision-date-localized-plugin" +version = "1.4.7" +description = "Mkdocs plugin that enables displaying the localized date of the last git modification of a markdown file." +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "mkdocs_git_revision_date_localized_plugin-1.4.7-py3-none-any.whl", hash = "sha256:056c0a90242409148f1dc94d5c9d2c25b5b8ddd8de45489fa38f7fa7ccad2bc4"}, + {file = "mkdocs_git_revision_date_localized_plugin-1.4.7.tar.gz", hash = "sha256:10a49eff1e1c3cb766e054b9d8360c904ce4fe8c33ac3f6cc083ac6459c91953"}, +] + +[package.dependencies] +babel = ">=2.7.0" +gitpython = ">=3.1.44" +mkdocs = ">=1.0" +pytz = ">=2025.1" + [[package]] name = "mkdocs-material" version = "9.6.15" @@ -459,12 +722,14 @@ files = [ [package.dependencies] babel = ">=2.10,<3.0" backrefs = ">=5.7.post1,<6.0" +cairosvg = {version = ">=2.6,<3.0", optional = true, markers = "extra == \"imaging\""} colorama = ">=0.4,<1.0" jinja2 = ">=3.1,<4.0" markdown = ">=3.2,<4.0" mkdocs = ">=1.6,<2.0" mkdocs-material-extensions = ">=1.3,<2.0" paginate = ">=0.5,<1.0" +pillow = {version = ">=10.2,<11.0", optional = true, markers = "extra == \"imaging\""} pygments = ">=2.16,<3.0" pymdown-extensions = ">=10.2,<11.0" requests = ">=2.26,<3.0" @@ -486,6 +751,99 @@ files = [ {file = "mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443"}, ] +[[package]] +name = "mkdocs-rss-plugin" +version = "1.17.3" +description = "MkDocs plugin which generates a static RSS feed using git log and page.meta." +optional = false +python-versions = "<4,>=3.9" +groups = ["main"] +files = [ + {file = "mkdocs_rss_plugin-1.17.3-py2.py3-none-any.whl", hash = "sha256:15b99c6b3370f50503fe189e814600b375e5a0d8f99d19f6d8d9b80c1aa56f5c"}, + {file = "mkdocs_rss_plugin-1.17.3.tar.gz", hash = "sha256:0a5b3e03dd68cc6b94feb50fc2e47fd427d39c452affe0fc3135289da9810a6d"}, +] + +[package.dependencies] +cachecontrol = {version = ">=0.14,<1", extras = ["filecache"]} +GitPython = ">=3.1.43,<3.2" +mkdocs = ">=1.6.1,<2" +requests = ">=2.31,<3" +tzdata = {version = "==2024.*", markers = "python_version >= \"3.9\" and sys_platform == \"win32\""} + +[package.extras] +dev = ["black", "flake8 (>=7.1,<8)", "flake8-bugbear (>=24.10)", "flake8-builtins (>=2.5)", "flake8-eradicate (>=1.5)", "flake8-isort (>=6.1.1)", "pre-commit (>=3.7,<5)"] +doc = ["mkdocs-git-committers-plugin-2 (>=2.4.1,<2.6)", "mkdocs-git-revision-date-localized-plugin (>=1.3,<1.5)", "mkdocs-material[imaging] (>=9.5.47,<10)", "mkdocs-minify-plugin (>=0.8,<0.9)", "mkdocstrings-python (>=1.16.2,<1.17)", "termynal (>=0.12.2,<0.14)"] +test = ["feedparser (>=6.0.11,<6.1)", "jsonfeed-util (>=1.2,<2)", "mkdocs-material[imaging] (>=9.5.47)", "pytest-cov (>=6,<7)", "validator-collection (>=1.5,<1.6)"] + +[[package]] +name = "msgpack" +version = "1.1.1" +description = "MessagePack serializer" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "msgpack-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:353b6fc0c36fde68b661a12949d7d49f8f51ff5fa019c1e47c87c4ff34b080ed"}, + {file = "msgpack-1.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:79c408fcf76a958491b4e3b103d1c417044544b68e96d06432a189b43d1215c8"}, + {file = "msgpack-1.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78426096939c2c7482bf31ef15ca219a9e24460289c00dd0b94411040bb73ad2"}, + {file = "msgpack-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b17ba27727a36cb73aabacaa44b13090feb88a01d012c0f4be70c00f75048b4"}, + {file = "msgpack-1.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7a17ac1ea6ec3c7687d70201cfda3b1e8061466f28f686c24f627cae4ea8efd0"}, + {file = "msgpack-1.1.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:88d1e966c9235c1d4e2afac21ca83933ba59537e2e2727a999bf3f515ca2af26"}, + {file = "msgpack-1.1.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:f6d58656842e1b2ddbe07f43f56b10a60f2ba5826164910968f5933e5178af75"}, + {file = "msgpack-1.1.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:96decdfc4adcbc087f5ea7ebdcfd3dee9a13358cae6e81d54be962efc38f6338"}, + {file = "msgpack-1.1.1-cp310-cp310-win32.whl", hash = "sha256:6640fd979ca9a212e4bcdf6eb74051ade2c690b862b679bfcb60ae46e6dc4bfd"}, + {file = "msgpack-1.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:8b65b53204fe1bd037c40c4148d00ef918eb2108d24c9aaa20bc31f9810ce0a8"}, + {file = "msgpack-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:71ef05c1726884e44f8b1d1773604ab5d4d17729d8491403a705e649116c9558"}, + {file = "msgpack-1.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:36043272c6aede309d29d56851f8841ba907a1a3d04435e43e8a19928e243c1d"}, + {file = "msgpack-1.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a32747b1b39c3ac27d0670122b57e6e57f28eefb725e0b625618d1b59bf9d1e0"}, + {file = "msgpack-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a8b10fdb84a43e50d38057b06901ec9da52baac6983d3f709d8507f3889d43f"}, + {file = "msgpack-1.1.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba0c325c3f485dc54ec298d8b024e134acf07c10d494ffa24373bea729acf704"}, + {file = "msgpack-1.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:88daaf7d146e48ec71212ce21109b66e06a98e5e44dca47d853cbfe171d6c8d2"}, + {file = "msgpack-1.1.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8b55ea20dc59b181d3f47103f113e6f28a5e1c89fd5b67b9140edb442ab67f2"}, + {file = "msgpack-1.1.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4a28e8072ae9779f20427af07f53bbb8b4aa81151054e882aee333b158da8752"}, + {file = "msgpack-1.1.1-cp311-cp311-win32.whl", hash = "sha256:7da8831f9a0fdb526621ba09a281fadc58ea12701bc709e7b8cbc362feabc295"}, + {file = "msgpack-1.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:5fd1b58e1431008a57247d6e7cc4faa41c3607e8e7d4aaf81f7c29ea013cb458"}, + {file = "msgpack-1.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ae497b11f4c21558d95de9f64fff7053544f4d1a17731c866143ed6bb4591238"}, + {file = "msgpack-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:33be9ab121df9b6b461ff91baac6f2731f83d9b27ed948c5b9d1978ae28bf157"}, + {file = "msgpack-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f64ae8fe7ffba251fecb8408540c34ee9df1c26674c50c4544d72dbf792e5ce"}, + {file = "msgpack-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a494554874691720ba5891c9b0b39474ba43ffb1aaf32a5dac874effb1619e1a"}, + {file = "msgpack-1.1.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb643284ab0ed26f6957d969fe0dd8bb17beb567beb8998140b5e38a90974f6c"}, + {file = "msgpack-1.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d275a9e3c81b1093c060c3837e580c37f47c51eca031f7b5fb76f7b8470f5f9b"}, + {file = "msgpack-1.1.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4fd6b577e4541676e0cc9ddc1709d25014d3ad9a66caa19962c4f5de30fc09ef"}, + {file = "msgpack-1.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb29aaa613c0a1c40d1af111abf025f1732cab333f96f285d6a93b934738a68a"}, + {file = "msgpack-1.1.1-cp312-cp312-win32.whl", hash = "sha256:870b9a626280c86cff9c576ec0d9cbcc54a1e5ebda9cd26dab12baf41fee218c"}, + {file = "msgpack-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:5692095123007180dca3e788bb4c399cc26626da51629a31d40207cb262e67f4"}, + {file = "msgpack-1.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3765afa6bd4832fc11c3749be4ba4b69a0e8d7b728f78e68120a157a4c5d41f0"}, + {file = "msgpack-1.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8ddb2bcfd1a8b9e431c8d6f4f7db0773084e107730ecf3472f1dfe9ad583f3d9"}, + {file = "msgpack-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:196a736f0526a03653d829d7d4c5500a97eea3648aebfd4b6743875f28aa2af8"}, + {file = "msgpack-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d592d06e3cc2f537ceeeb23d38799c6ad83255289bb84c2e5792e5a8dea268a"}, + {file = "msgpack-1.1.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4df2311b0ce24f06ba253fda361f938dfecd7b961576f9be3f3fbd60e87130ac"}, + {file = "msgpack-1.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e4141c5a32b5e37905b5940aacbc59739f036930367d7acce7a64e4dec1f5e0b"}, + {file = "msgpack-1.1.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b1ce7f41670c5a69e1389420436f41385b1aa2504c3b0c30620764b15dded2e7"}, + {file = "msgpack-1.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4147151acabb9caed4e474c3344181e91ff7a388b888f1e19ea04f7e73dc7ad5"}, + {file = "msgpack-1.1.1-cp313-cp313-win32.whl", hash = "sha256:500e85823a27d6d9bba1d057c871b4210c1dd6fb01fbb764e37e4e8847376323"}, + {file = "msgpack-1.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:6d489fba546295983abd142812bda76b57e33d0b9f5d5b71c09a583285506f69"}, + {file = "msgpack-1.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bba1be28247e68994355e028dcd668316db30c1f758d3241a7b903ac78dcd285"}, + {file = "msgpack-1.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8f93dcddb243159c9e4109c9750ba5b335ab8d48d9522c5308cd05d7e3ce600"}, + {file = "msgpack-1.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2fbbc0b906a24038c9958a1ba7ae0918ad35b06cb449d398b76a7d08470b0ed9"}, + {file = "msgpack-1.1.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:61e35a55a546a1690d9d09effaa436c25ae6130573b6ee9829c37ef0f18d5e78"}, + {file = "msgpack-1.1.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:1abfc6e949b352dadf4bce0eb78023212ec5ac42f6abfd469ce91d783c149c2a"}, + {file = "msgpack-1.1.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:996f2609ddf0142daba4cefd767d6db26958aac8439ee41db9cc0db9f4c4c3a6"}, + {file = "msgpack-1.1.1-cp38-cp38-win32.whl", hash = "sha256:4d3237b224b930d58e9d83c81c0dba7aacc20fcc2f89c1e5423aa0529a4cd142"}, + {file = "msgpack-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:da8f41e602574ece93dbbda1fab24650d6bf2a24089f9e9dbb4f5730ec1e58ad"}, + {file = "msgpack-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f5be6b6bc52fad84d010cb45433720327ce886009d862f46b26d4d154001994b"}, + {file = "msgpack-1.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3a89cd8c087ea67e64844287ea52888239cbd2940884eafd2dcd25754fb72232"}, + {file = "msgpack-1.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d75f3807a9900a7d575d8d6674a3a47e9f227e8716256f35bc6f03fc597ffbf"}, + {file = "msgpack-1.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d182dac0221eb8faef2e6f44701812b467c02674a322c739355c39e94730cdbf"}, + {file = "msgpack-1.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1b13fe0fb4aac1aa5320cd693b297fe6fdef0e7bea5518cbc2dd5299f873ae90"}, + {file = "msgpack-1.1.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:435807eeb1bc791ceb3247d13c79868deb22184e1fc4224808750f0d7d1affc1"}, + {file = "msgpack-1.1.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:4835d17af722609a45e16037bb1d4d78b7bdf19d6c0128116d178956618c4e88"}, + {file = "msgpack-1.1.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a8ef6e342c137888ebbfb233e02b8fbd689bb5b5fcc59b34711ac47ebd504478"}, + {file = "msgpack-1.1.1-cp39-cp39-win32.whl", hash = "sha256:61abccf9de335d9efd149e2fff97ed5974f2481b3353772e8e2dd3402ba2bd57"}, + {file = "msgpack-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:40eae974c873b2992fd36424a5d9407f93e97656d999f43fca9d29f820899084"}, + {file = "msgpack-1.1.1.tar.gz", hash = "sha256:77b79ce34a2bdab2594f490c8e80dd62a02d650b91a75159a63ec413b8d104cd"}, +] + [[package]] name = "packaging" version = "25.0" @@ -526,6 +884,104 @@ files = [ {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] +[[package]] +name = "pillow" +version = "10.4.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "pillow-10.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e"}, + {file = "pillow-10.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d"}, + {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7928ecbf1ece13956b95d9cbcfc77137652b02763ba384d9ab508099a2eca856"}, + {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4d49b85c4348ea0b31ea63bc75a9f3857869174e2bf17e7aba02945cd218e6f"}, + {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:6c762a5b0997f5659a5ef2266abc1d8851ad7749ad9a6a5506eb23d314e4f46b"}, + {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a985e028fc183bf12a77a8bbf36318db4238a3ded7fa9df1b9a133f1cb79f8fc"}, + {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:812f7342b0eee081eaec84d91423d1b4650bb9828eb53d8511bcef8ce5aecf1e"}, + {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ac1452d2fbe4978c2eec89fb5a23b8387aba707ac72810d9490118817d9c0b46"}, + {file = "pillow-10.4.0-cp310-cp310-win32.whl", hash = "sha256:bcd5e41a859bf2e84fdc42f4edb7d9aba0a13d29a2abadccafad99de3feff984"}, + {file = "pillow-10.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:ecd85a8d3e79cd7158dec1c9e5808e821feea088e2f69a974db5edf84dc53141"}, + {file = "pillow-10.4.0-cp310-cp310-win_arm64.whl", hash = "sha256:ff337c552345e95702c5fde3158acb0625111017d0e5f24bf3acdb9cc16b90d1"}, + {file = "pillow-10.4.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:0a9ec697746f268507404647e531e92889890a087e03681a3606d9b920fbee3c"}, + {file = "pillow-10.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe91cb65544a1321e631e696759491ae04a2ea11d36715eca01ce07284738be"}, + {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dc6761a6efc781e6a1544206f22c80c3af4c8cf461206d46a1e6006e4429ff3"}, + {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e84b6cc6a4a3d76c153a6b19270b3526a5a8ed6b09501d3af891daa2a9de7d6"}, + {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbc527b519bd3aa9d7f429d152fea69f9ad37c95f0b02aebddff592688998abe"}, + {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:76a911dfe51a36041f2e756b00f96ed84677cdeb75d25c767f296c1c1eda1319"}, + {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:59291fb29317122398786c2d44427bbd1a6d7ff54017075b22be9d21aa59bd8d"}, + {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:416d3a5d0e8cfe4f27f574362435bc9bae57f679a7158e0096ad2beb427b8696"}, + {file = "pillow-10.4.0-cp311-cp311-win32.whl", hash = "sha256:7086cc1d5eebb91ad24ded9f58bec6c688e9f0ed7eb3dbbf1e4800280a896496"}, + {file = "pillow-10.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cbed61494057c0f83b83eb3a310f0bf774b09513307c434d4366ed64f4128a91"}, + {file = "pillow-10.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:f5f0c3e969c8f12dd2bb7e0b15d5c468b51e5017e01e2e867335c81903046a22"}, + {file = "pillow-10.4.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:673655af3eadf4df6b5457033f086e90299fdd7a47983a13827acf7459c15d94"}, + {file = "pillow-10.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:866b6942a92f56300012f5fbac71f2d610312ee65e22f1aa2609e491284e5597"}, + {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29dbdc4207642ea6aad70fbde1a9338753d33fb23ed6956e706936706f52dd80"}, + {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf2342ac639c4cf38799a44950bbc2dfcb685f052b9e262f446482afaf4bffca"}, + {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:f5b92f4d70791b4a67157321c4e8225d60b119c5cc9aee8ecf153aace4aad4ef"}, + {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:86dcb5a1eb778d8b25659d5e4341269e8590ad6b4e8b44d9f4b07f8d136c414a"}, + {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:780c072c2e11c9b2c7ca37f9a2ee8ba66f44367ac3e5c7832afcfe5104fd6d1b"}, + {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:37fb69d905be665f68f28a8bba3c6d3223c8efe1edf14cc4cfa06c241f8c81d9"}, + {file = "pillow-10.4.0-cp312-cp312-win32.whl", hash = "sha256:7dfecdbad5c301d7b5bde160150b4db4c659cee2b69589705b6f8a0c509d9f42"}, + {file = "pillow-10.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:1d846aea995ad352d4bdcc847535bd56e0fd88d36829d2c90be880ef1ee4668a"}, + {file = "pillow-10.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:e553cad5179a66ba15bb18b353a19020e73a7921296a7979c4a2b7f6a5cd57f9"}, + {file = "pillow-10.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8bc1a764ed8c957a2e9cacf97c8b2b053b70307cf2996aafd70e91a082e70df3"}, + {file = "pillow-10.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6209bb41dc692ddfee4942517c19ee81b86c864b626dbfca272ec0f7cff5d9fb"}, + {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bee197b30783295d2eb680b311af15a20a8b24024a19c3a26431ff83eb8d1f70"}, + {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ef61f5dd14c300786318482456481463b9d6b91ebe5ef12f405afbba77ed0be"}, + {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:297e388da6e248c98bc4a02e018966af0c5f92dfacf5a5ca22fa01cb3179bca0"}, + {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:e4db64794ccdf6cb83a59d73405f63adbe2a1887012e308828596100a0b2f6cc"}, + {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd2880a07482090a3bcb01f4265f1936a903d70bc740bfcb1fd4e8a2ffe5cf5a"}, + {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b35b21b819ac1dbd1233317adeecd63495f6babf21b7b2512d244ff6c6ce309"}, + {file = "pillow-10.4.0-cp313-cp313-win32.whl", hash = "sha256:551d3fd6e9dc15e4c1eb6fc4ba2b39c0c7933fa113b220057a34f4bb3268a060"}, + {file = "pillow-10.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:030abdbe43ee02e0de642aee345efa443740aa4d828bfe8e2eb11922ea6a21ea"}, + {file = "pillow-10.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:5b001114dd152cfd6b23befeb28d7aee43553e2402c9f159807bf55f33af8a8d"}, + {file = "pillow-10.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8d4d5063501b6dd4024b8ac2f04962d661222d120381272deea52e3fc52d3736"}, + {file = "pillow-10.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c1ee6f42250df403c5f103cbd2768a28fe1a0ea1f0f03fe151c8741e1469c8b"}, + {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15e02e9bb4c21e39876698abf233c8c579127986f8207200bc8a8f6bb27acf2"}, + {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a8d4bade9952ea9a77d0c3e49cbd8b2890a399422258a77f357b9cc9be8d680"}, + {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:43efea75eb06b95d1631cb784aa40156177bf9dd5b4b03ff38979e048258bc6b"}, + {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:950be4d8ba92aca4b2bb0741285a46bfae3ca699ef913ec8416c1b78eadd64cd"}, + {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d7480af14364494365e89d6fddc510a13e5a2c3584cb19ef65415ca57252fb84"}, + {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:73664fe514b34c8f02452ffb73b7a92c6774e39a647087f83d67f010eb9a0cf0"}, + {file = "pillow-10.4.0-cp38-cp38-win32.whl", hash = "sha256:e88d5e6ad0d026fba7bdab8c3f225a69f063f116462c49892b0149e21b6c0a0e"}, + {file = "pillow-10.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:5161eef006d335e46895297f642341111945e2c1c899eb406882a6c61a4357ab"}, + {file = "pillow-10.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0ae24a547e8b711ccaaf99c9ae3cd975470e1a30caa80a6aaee9a2f19c05701d"}, + {file = "pillow-10.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:298478fe4f77a4408895605f3482b6cc6222c018b2ce565c2b6b9c354ac3229b"}, + {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:134ace6dc392116566980ee7436477d844520a26a4b1bd4053f6f47d096997fd"}, + {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:930044bb7679ab003b14023138b50181899da3f25de50e9dbee23b61b4de2126"}, + {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c76e5786951e72ed3686e122d14c5d7012f16c8303a674d18cdcd6d89557fc5b"}, + {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b2724fdb354a868ddf9a880cb84d102da914e99119211ef7ecbdc613b8c96b3c"}, + {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dbc6ae66518ab3c5847659e9988c3b60dc94ffb48ef9168656e0019a93dbf8a1"}, + {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:06b2f7898047ae93fad74467ec3d28fe84f7831370e3c258afa533f81ef7f3df"}, + {file = "pillow-10.4.0-cp39-cp39-win32.whl", hash = "sha256:7970285ab628a3779aecc35823296a7869f889b8329c16ad5a71e4901a3dc4ef"}, + {file = "pillow-10.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:961a7293b2457b405967af9c77dcaa43cc1a8cd50d23c532e62d48ab6cdd56f5"}, + {file = "pillow-10.4.0-cp39-cp39-win_arm64.whl", hash = "sha256:32cda9e3d601a52baccb2856b8ea1fc213c90b340c542dcef77140dfa3278a9e"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5b4815f2e65b30f5fbae9dfffa8636d992d49705723fe86a3661806e069352d4"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8f0aef4ef59694b12cadee839e2ba6afeab89c0f39a3adc02ed51d109117b8da"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f4727572e2918acaa9077c919cbbeb73bd2b3ebcfe033b72f858fc9fbef0026"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff25afb18123cea58a591ea0244b92eb1e61a1fd497bf6d6384f09bc3262ec3e"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:dc3e2db6ba09ffd7d02ae9141cfa0ae23393ee7687248d46a7507b75d610f4f5"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:02a2be69f9c9b8c1e97cf2713e789d4e398c751ecfd9967c18d0ce304efbf885"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:0755ffd4a0c6f267cccbae2e9903d95477ca2f77c4fcf3a3a09570001856c8a5"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a02364621fe369e06200d4a16558e056fe2805d3468350df3aef21e00d26214b"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:1b5dea9831a90e9d0721ec417a80d4cbd7022093ac38a568db2dd78363b00908"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b885f89040bb8c4a1573566bbb2f44f5c505ef6e74cec7ab9068c900047f04b"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87dd88ded2e6d74d31e1e0a99a726a6765cda32d00ba72dc37f0651f306daaa8"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:2db98790afc70118bd0255c2eeb465e9767ecf1f3c25f9a1abb8ffc8cfd1fe0a"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f7baece4ce06bade126fb84b8af1c33439a76d8a6fd818970215e0560ca28c27"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cfdd747216947628af7b259d274771d84db2268ca062dd5faf373639d00113a3"}, + {file = "pillow-10.4.0.tar.gz", hash = "sha256:166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=7.3)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] +tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] +typing = ["typing-extensions ; python_version < \"3.10\""] +xmp = ["defusedxml"] + [[package]] name = "platformdirs" version = "4.3.8" @@ -543,6 +999,18 @@ docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.1.3)", "sphinx-a test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.4)", "pytest-cov (>=6)", "pytest-mock (>=3.14)"] type = ["mypy (>=1.14.1)"] +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + [[package]] name = "pygments" version = "2.19.2" @@ -607,6 +1075,18 @@ files = [ [package.dependencies] six = ">=1.5" +[[package]] +name = "pytz" +version = "2025.2" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +groups = ["main"] +files = [ + {file = "pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00"}, + {file = "pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3"}, +] + [[package]] name = "pyyaml" version = "6.0.2" @@ -719,6 +1199,50 @@ files = [ {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, ] +[[package]] +name = "smmap" +version = "5.0.2" +description = "A pure Python implementation of a sliding window memory map manager" +optional = false +python-versions = ">=3.7" +groups = ["main"] +files = [ + {file = "smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e"}, + {file = "smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5"}, +] + +[[package]] +name = "tinycss2" +version = "1.4.0" +description = "A tiny CSS parser" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289"}, + {file = "tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7"}, +] + +[package.dependencies] +webencodings = ">=0.4" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["pytest", "ruff"] + +[[package]] +name = "tzdata" +version = "2024.2" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +groups = ["main"] +markers = "sys_platform == \"win32\"" +files = [ + {file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"}, + {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"}, +] + [[package]] name = "urllib3" version = "2.5.0" @@ -795,6 +1319,18 @@ files = [ [package.extras] watchmedo = ["PyYAML (>=3.10)"] +[[package]] +name = "webencodings" +version = "0.5.1" +description = "Character encoding aliases for legacy web content" +optional = false +python-versions = "*" +groups = ["main"] +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + [[package]] name = "zipp" version = "3.23.0" @@ -817,5 +1353,5 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.1" -python-versions = ">=3.12" -content-hash = "7e4b13036176b03123cf7f22c95a2bb4a4773eb91469f331c16aa8dfc2bcfb97" +python-versions = ">=3.12,<4" +content-hash = "51eabcb80182fcfee8523bb4d628c00e09a24404a990b6915e4a25efe72d76a9" diff --git a/pyproject.toml b/pyproject.toml index 7697078..9cecdf6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,10 +7,13 @@ authors = [ ] license = "Apache-2.0" readme = "README.md" -requires-python = ">=3.12" +requires-python = ">=3.12,<4" dependencies = [ - "mkdocs-material (>=9.6.15,<10.0.0)", - "mike (>=2.1.3,<3.0.0)" + "mkdocs-material[imaging] (>=9.6.15,<10.0.0)", + "mike (>=2.1.3,<3.0.0)", + "mkdocs-rss-plugin (>=1.17.3,<2.0.0)", + "mkdocs-git-revision-date-localized-plugin (>=1.4.7,<2.0.0)", + "mkdocs-git-committers-plugin-2 (>=2.5.0,<3.0.0)" ] [tool.poetry] From 40f4fd078ff0842381026ad1647e404302f0ced1 Mon Sep 17 00:00:00 2001 From: Amir Alavi Date: Thu, 24 Jul 2025 10:25:49 +0100 Subject: [PATCH 2/2] fix semantic PR title github action Signed-off-by: Amir Alavi --- .github/workflows/semantic_pr_title.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/semantic_pr_title.yaml b/.github/workflows/semantic_pr_title.yaml index 3548f1f..3a05051 100644 --- a/.github/workflows/semantic_pr_title.yaml +++ b/.github/workflows/semantic_pr_title.yaml @@ -11,7 +11,7 @@ jobs: pull-requests: read steps: - name: Check PR title uses conventional commit spec - uses: amannn/action-semantic-pull-request@latest + uses: amannn/action-semantic-pull-request@v5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: