diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 002aac5c..9514139d 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,8 +1,24 @@ { - "name": "Python 3.13.2 with MkDocs", - "image": "python:3.13.2", - "postStartCommand": "pip install poetry && poetry install", - "forwardPorts": [ - 8000 - ] + "name": "Advanced Peripherals Docs Dev", + "image": "mcr.microsoft.com/devcontainers/python:3.12-bookworm", + + "features": { + "ghcr.io/devcontainers/features/github-cli:1": {}, + "ghcr.io/devcontainers/features/common-utils:2": { + "configureZshAsDefaultShell": true + } + }, + + "containerEnv": { + "POETRY_VIRTUALENVS_IN_PROJECT": "true", + "POETRY_VIRTUALENVS_CREATE": "true" + }, + + "onCreateCommand": "pip install poetry", + "updateContentCommand": "poetry install", + "postCreateCommand": "git fetch origin gh-pages:gh-pages || true", + + "forwardPorts": [8000], + + "remoteUser": "vscode" } \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 4b420e24..910576f0 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,5 +1,5 @@ -blank_issues_enabled: false +blank_issues_enabled: true contact_links: - name: Mod issues - url: https://github.com/Seniorendi/AdvancedPeripherals/issues + url: https://github.com/IntelligenceModding/AdvancedPeripherals/issues about: Please report bugs at the advanced peripherals repository. This repository is for documentation only. diff --git a/.github/workflows/cleanup.yml b/.github/workflows/cleanup.yml new file mode 100644 index 00000000..4966b992 --- /dev/null +++ b/.github/workflows/cleanup.yml @@ -0,0 +1,30 @@ +name: Cleanup PR Preview +on: + pull_request: + types: [closed] + +permissions: + contents: write + +jobs: + delete-preview: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install mike + run: pip install mike + + - name: Delete Preview + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + + mike delete --push pr-${{ github.event.number }} \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2e091041..f3cf34d8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,20 +1,56 @@ -name: Publish docs via GitHub Pages +name: Publish Documentation on: - workflow_dispatch: push: branches: - - main + - '0.[0-9]+' + +permissions: + contents: write # allows pushing to gh-pages jobs: - build: - name: Deploy docs - runs-on: self-hosted + deploy: + runs-on: ubuntu-latest steps: - - name: Checkout master - uses: actions/checkout@v1 + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # mike needs history to manage versions + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install dependencies + run: | + pip install poetry + poetry install + + - name: Inject Branch Name into Config + run: | + sed -i "s|BRANCH_NAME_HERE|${{ github.ref_name }}|g" mkdocs.yml + + # Just to verify it worked in the logs + grep -E "branch:|edit_uri:" mkdocs.yml - - name: Deploy docs - uses: mhausenblas/mkdocs-deploy-gh-pages@2833747909e0fab61db67a60e8d6e91a871f60aa + - name: Deploy Version env: + EDIT_BRANCH_URI: edit/${{ github.ref_name }}/docs/ + MKDOCS_PLUGINS: true GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - REQUIREMENTS: requirements.txt + run: | + # Get current branch name + BRANCH_NAME=${GITHUB_REF_NAME} + + # Configure Git + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + + if [ "$BRANCH_NAME" == "main" ]; then + poetry run mike deploy --push --update-aliases dev + elif [ "$BRANCH_NAME" == "0.8" ]; then + poetry run mike deploy --push --update-aliases 0.8 canary + elif [ "$BRANCH_NAME" == "0.7" ]; then + poetry run mike deploy --push --update-aliases 0.7 latest + else + poetry run mike deploy --push "$BRANCH_NAME" + fi \ No newline at end of file diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml new file mode 100644 index 00000000..75bd1828 --- /dev/null +++ b/.github/workflows/preview.yml @@ -0,0 +1,56 @@ +name: PR Preview +on: + pull_request: + types: [opened, synchronize, reopened] + +permissions: + contents: write + pull-requests: write + +jobs: + preview: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install dependencies + run: | + pip install poetry + poetry install + + - name: Deploy Preview + env: + MKDOCS_PLUGINS: false + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + EDIT_BRANCH_URI: edit/${{ github.head_ref }}/docs/ + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + + # Deploy to a version named 'pr-{number}' + poetry run mike deploy --push pr-${{ github.event.number }} + + echo "Preview available at: https://docs.advanced-peripherals.de/pr-${{ github.event.number }}/" + - name: Post PR Comment + uses: marocchino/sticky-pull-request-comment@v2 + with: + header: documentation-preview + message: | + ## 📝 Documentation Preview Ready! + + | Item | Details | + | :--- | :--- | + | **Status** | ✅ Deployed Successfully | + | **Preview Link** | [View Documentation](https://docs.advanced-peripherals.de/pr-${{ github.event.number }}/) | + | **Source Branch** | `${{ github.head_ref }}` | + | **Version Alias** | `pr-${{ github.event.number }}` | + + > [!NOTE] + > The **Edit** buttons on this preview link directly to your branch. Changes made there will update this preview after a few minutes. \ No newline at end of file diff --git a/.gitignore b/.gitignore index dc81e498..ddc93b3c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ site/ -.idea \ No newline at end of file +.idea +/.cache/ +.vscode \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 8deaa19c..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "oxcYamlHelper.rulesetDocumentationSettings": 0 -} \ No newline at end of file diff --git a/docs/extra.css b/docs/extra.css index 913a220a..39268337 100644 --- a/docs/extra.css +++ b/docs/extra.css @@ -43,4 +43,14 @@ b.si { font-size: 1.5rem; padding-right: 0.3rem; vertical-align: 1rem; +} + +/* Center Markdown Tables (requires md_in_html extension) */ +.center-table { + text-align: center; +} + +.md-typeset .center-table :is(td,th):not([align]) { + /* Reset alignment for table cells */ + text-align: initial; } \ No newline at end of file diff --git a/docs/guides/disabled_peripherals.md b/docs/guides/disabled_peripherals.md new file mode 100644 index 00000000..cb0ab620 --- /dev/null +++ b/docs/guides/disabled_peripherals.md @@ -0,0 +1,27 @@ +--- +comments: true +--- + +# Disabled Peripherals + +!!! failure + Only available for 1.19.2-0.7.39r, 1.20.1-0.7.45r, 1.21.1-0.7.57b or newer + + +Peripherals can be disabled in the configuration file of AP in `{minecraft_folder}/config/Advancedperipherals/peripherals.toml`. + +When disabled, these peripherals can still be wrapped but all the functions throw a LuaException. Besides that, you can now find a new function called `peripheralDisabled`. +You can simply check in your script if a connected peripheral is disabled via the following example. + +```lua + box = peripheral.find("chat_box") -- (1) + if box.peripheralDisabled then -- (2) + error("Peripheral is Disabled", 0) + end + + print("Peripheral is not Disabled") + +``` + +1. Can be any peripheral, as long as it is from AP. +2. We just check if the function exists, we don't run it since the function does not exist when the peripheral is not disabled. diff --git a/docs/guides/filters.md b/docs/guides/filters.md index e5587b0c..ef249d2f 100644 --- a/docs/guides/filters.md +++ b/docs/guides/filters.md @@ -12,7 +12,7 @@ These can set the item, count, slots, tags, nbt or fingerprint values. ## Syntax -### Item/Fluid Name and Tag +### Item/Fluid/Chemical Name and Tag The item's/fluid's filter name or tag can be specified with the `name` field. If this field is not set, the filter will try to search for items with the right nbt values specified in the `nbt` field @@ -32,9 +32,36 @@ This can be a tag or a name. To filter for tags, place a `#` in front of the nam } ``` +### Types + +!!! success "Added in version 0.8 and 1.21.1-0.7" + +Some functions can be used with any type of filter to prevent the same functions with just a different name. These filters are called generic filters. +They automatically search if the `name` provided is an item, a fluid or a mekanism chemical - in this order. +If none could be found, it will return an empty filter with the message `NO_VALID_FILTER_TYPE`. + +A type can also be forced using the `type` key. +Depending on the AP version and the function, the following types can be used: `item`, `fluid` and `chemical`. + +```lua +{ + name = "minecraft:water" + type = "fluid" +} +``` + +The following example would return nil with the message `FLUID_NOT_FOUND` when used in a function. +```lua +{ + name = "minecraft:dirt" + type = "fluid" +} +``` + + ### Count -The item's/fluid's filter amout can be specified with the `count` field. +The item's/fluid's filter amount can be specified with the `count` field. Standard values are 64 or 1000 for fluids. ```lua diff --git a/docs/guides/objects.md b/docs/guides/objects.md new file mode 100644 index 00000000..4e894704 --- /dev/null +++ b/docs/guides/objects.md @@ -0,0 +1,118 @@ +# Common Lua Objects + +AP contains a lot of different objects based on in-game content, including Items, Item Stacks, Fluids, Entities and more. +This guide contains the most objects we have, including a description and every property with its type it can contain. + +## Item +Base ítem properties: + +| Property | Type | Description | +|----------|------|-------------| +| tags | table | List of item tags | +| name | string | Registry key of the item | + +## Item Stack +Represents a specific amount of an item with additional properties. Includes all Item properties plus: + +| Property | Type | Description | +|----------|------|-------------| +| count | number | Amount of items in the stack | +| displayName | string | Display name of the item | +| maxStackSize | number | Maximum stack size | +| components | table | NBT component data | +| fingerprint | string | Unique identifier for the stack | +| tags | table | List of item tags | +| name | string | Registry key of the item | +| slot | number | (Optional) Slot number when in inventory | + +## Fluid +Base fluid properties: + +| Property | Type | Description | +|----------|------|-------------| +| tags | table | List of fluid tags | +| name | string | Registry key of the fluid | + +## Fluid Stack +Represents a specific amount of fluid with additional properties. Includes all Fluid properties plus: + +| Property | Type | Description | +|----------|------|-------------| +| count | number | Amount of fluid | +| displayName | string | Display name of the fluid | +| fluidType | table | FluidType properties | +| components | table | NBT component data | +| fingerprint | string | Unique identifier for the stack | + +## Mekanism Chemical +Base chemical properties: + +| Property | Type | Description | +|----------|------|-------------| +| tags | table | List of chemical tags | +| name | string | Registry key of the chemical | +| isGaseous | boolean | Whether the chemical is gaseous | +| radioactivity | number | Radioactivity level of the chemical | + +## Mekanism Chemical Stack +Represents a specific amount of chemical with additional properties. Includes all Chemical properties plus: + +| Property | Type | Description | +|----------|------|-------------| +| count | number | Amount of chemical | +| displayName | string | Display name of the chemical | +| fingerprint | string | Unique identifier for the stack | + + +## Entity +| Property | Type | Description | +|----------|------|-------------| +| id | number | Entity ID | +| uuid | string | Entity UUID | +| name | string | Entity name | +| tags | table | Entity tags | +| canFreeze | boolean | Whether entity can freeze | +| isGlowing | boolean | Whether entity is glowing | +| isInWall | boolean | Whether entity is in a wall | + +## Living Entity +Inherits all properties from Entity, plus: + +| Property | Type | Description | +|----------|------|-------------| +| health | number | Current health | +| maxHealth | number | Maximum health | +| lastDamageSource | string | Last damage source (or nil) | + +## Animal +Inherits all properties from LivingEntity, plus: + +| Property | Type | Description | +|----------|------|-------------| +| baby | boolean | Whether the animal is a baby | +| inLove | boolean | Whether the animal is in love state | +| aggressive | boolean | Whether the animal is aggressive | +| shareable | boolean | Whether the animal can be sheared (if applicable) | + +## Position +Common block position object used for some filters and return values. + +| Property | Type | Description | +|----------|------|-------------| +| x | number | X coordinate | +| y | number | Y coordinate | +| z | number | Z coordinate | + +## Fluid Type +| Property | Type | Description | +|----------|------|-------------| +| viscosity | number | Fluid viscosity | +| density | number | Fluid density | +| canHydrate | boolean | Whether fluid can hydrate | +| canExtinguish | boolean | Whether fluid can extinguish | +| canDrownIn | boolean | Whether entities can drown in it | +| canSwim | boolean | Whether entities can swim in it | +| canPushEntity | boolean | Whether fluid can push entities | +| supportsBoating | boolean | Whether boats can float on it | +| canConvertToSource | boolean | Whether fluid can convert to source blocks | +| temperature | number | Fluid temperature | \ No newline at end of file diff --git a/docs/guides/storage_system_functions.md b/docs/guides/storage_system_functions.md new file mode 100644 index 00000000..88c71b81 --- /dev/null +++ b/docs/guides/storage_system_functions.md @@ -0,0 +1,825 @@ +# Storage System Functions + +Starting from AP 0.8 and 0.7 for 1.21.1, the ME and RS Bridge both now share the same functionality along with the new +crafting system. +The following functions can be used for both the ME and RS Bridge + +!!! failure +

You need to place the inventory/tank you want to use to export/import stuff next to the ME/RS Bridge and **NOT** next to the computer!

+ +!!! tip + You can use the command `/advancedperipherals getHashItem` with an item in your hand to get the MD5 hash of the NBT tags + of the item. An MD5 Hash can look like this `-682649218295023`. + +## Common Functions + +!!! info + The item arguments(`filter: table`) accepts our item/fluid/chemical filters, you can check the syntax of these + filters [here](/../guides/filters). + +### isConnected + +``` +isConnected() -> boolean +``` + +Returns true if the block is currently connected to a grid + +--- + +### isOnline + +``` +isOnline() -> boolean +``` + +Returns true if the grid is currently online and available + +--- + +### getItem + +``` +getItem(filter: table) -> table | nil, string +``` + +Returns the first item that matches the filter. Or nil with a debug message if none could be found + +--- + +### getFluid + +``` +getFluid(filter: table) -> table | nil, string +``` + +Returns the first fluid that matches the filter. Or nil with a debug message if none could be found + +--- + +### getChemical + +``` +getChemical(filter: table) -> table | nil, string +``` + +Returns the first mekanism chemical that matches the filter. Or nil with a debug message if none could be found + +--- + +### getItems + +``` +getItems(filter: table) -> table | nil, string +``` + +Returns every item that matches the filter or an empty table if none could be found. +An empty filter can be provided to get every resource. +Returns nil if there was an issue parsing your table. + +--- + +### getFluids + +``` +getFluids(filter: table) -> table | nil, string +``` + +Returns every fluid that matches the filter or an empty table if none could be found. +An empty filter can be provided to get every resource. +Returns nil if there was an issue parsing your table. + +--- + +### getChemicals + +``` +getChemicals(filter: table) -> table | nil, string +``` + +Returns every mekanism chemical that matches the filter or an empty table if none could be found. +An empty filter can be provided to get every resource. +Returns nil if there was an issue parsing your table. + +--- + +### getCraftableItems + +``` +getCraftableItems(filter: table) -> table | nil, string +``` + +Returns every craftable item that matches the filter even if there is currently no item stored or an empty table if none +could be found. +An empty filter can be provided to get every resource. +Returns nil if there was an issue parsing your table. + +--- + +### getCraftableFluids + +``` +getCraftableFluids(filter: table) -> table | nil, string +``` + +Returns every craftable fluid that matches the filter even if there is currently no fluid stored or an empty table if +none could be found. +An empty filter can be provided to get every resource. +Returns nil if there was an issue parsing your table. + +--- + +### getCraftableChemicals + +``` +getCraftableChemicals(filter: table) -> table | nil, string +``` + +Returns every craftable mekanism chemical that matches the filter even if there is currently no chemical stored or an +empty table if none could be found. +An empty filter can be provided to get every resource. +Returns nil if there was an issue parsing your table. + +--- + +### getCells + +``` +getCells() -> table | nil, string +``` + +Returns every storage cell in the drives of the grid. Supports standard RS/ME cells and some third party cells. +Please open a feature request if some custom addon cells do not work + +--- + +### getDrives + +``` +getCells() -> table | nil, string +``` + +Returns every drive connected to the system with the cells in it. + +--- + +## Importing/Exporting functions + +You may are used to two different functions, `importItemFromPeripheral` and `importItem` +The functions now support both at the same time. It first tries to parse the given string `target` as a cardinal or +relative direction. +If that fails, it tries to search for a peripheral on the CC network which exposes an item handler or capability. + +### importItem + +``` +importItem(filter: table, target: string) -> table | nil, string +``` + +Imports an item from the specified target. The filter can be empty to import every item. +One call imports 64 of resources by default, can be set using the count filter key. + +--- + +### exportItem + +``` +exportItem(filter: table, target: string) -> table | nil, string +``` + +Exports an item to the specified target. The filter can be empty to export every item. +One call exports 64 of resources by default, can be set using the count filter key. + +--- + +### importFluid + +``` +importFluid(filter: table, target: string) -> table | nil, string +``` + +Imports a fluid from the specified target. The filter can be empty to import every fluid. +One call imports 1000mB of resources by default, can be set using the count filter key. + +--- + +### exportFluid + +``` +exportFluid(filter: table, target: string) -> table | nil, string +``` + +Exports a fluid to the specified target. The filter can be empty to export every fluid. +One call exports 1000mB of resources by default, can be set using the count filter key. + +--- + +### importChemical + +``` +importChemical(filter: table, target: string) -> table | nil, string +``` + +Imports a mekanism chemical from the specified target. The filter can be empty to import every chemical. +One call imports 1000mB of resources by default, can be set using the count filter key. + +--- + +### exportChemical + +``` +exportChemical(filter: table, target: string) -> table | nil, string +``` + +Exports a mekanism chemical to the specified target. The filter can be empty to export every chemical. +One call exports 1000Mb of resources by default, can be set using the count filter key. + +--- + +## Energy Related Functions + +### getStoredEnergy + +``` +getStoredEnergy() -> int +``` + +Returns the stored energy in the grid. + +--- + +### getEnergyCapacity + +``` +getEnergyCapacity() -> int +``` + +Returns the maximum energy capacity of the grid + +--- + +### getEnergyUsage + +``` +getEnergyUsage() -> int +``` + +Returns the energy usage of the grid + +--- + +!!! note + Currently only supported by the ME Bridge + +### getAvgPowerInjection + +``` +getAvgPowerInjection() -> int +``` + +Returns the average power that is injected into the system + +--- + +## Storage Related Functions + +!!! warning + The RS Bridge currently does not support Any external storage function, we will hopefully be able to support them when + RS2 is out of beta. + +### getTotalExternItemStorage + +``` +getTotalExternItemStorage() -> int +``` + +Returns the total amount of available external item storage. +External storage is available storage by either RS2's external storage bus or AE2's storage bus +This function returns the available storage in items even with the byte system from AE2 + +--- + +### getTotalExternFluidStorage + +``` +getTotalExternFluidStorage() -> int +``` + +Returns the total amount of available external fluid storage. +External storage is available storage by either RS2's external storage bus or AE2's storage bus +This function returns the available storage in millibuckets even with the byte system from AE2 + +--- + +### getTotalExternChemicalStorage + +``` +getTotalExternChemicalStorage() -> int +``` + +Returns the total amount of available external mekanism chemical storage. +External storage is available storage by either RS2's external storage bus or AE2's storage bus +This function returns the available storage in millibuckets even with the byte system from AE2 + +--- + +### getTotalItemStorage + +``` +getTotalItemStorage() -> int +``` + +Returns the total amount of available internal item storage. +This function returns the available storage in items for RS and in bytes for AE2 + +--- + +### getTotalFluidStorage + +``` +getTotalFluidStorage() -> int +``` + +Returns the total amount of available internal fluid storage. +This function returns the available storage in millibuckets for RS and in bytes for AE2 + +--- + +### getTotalChemicalStorage + +``` +getTotalChemicalStorage() -> int +``` + +Returns the total amount of available internal mekanism chemical storage. +This function returns the available storage in millibuckets for RS and in bytes for AE2 + +--- + +### getUsedExternItemStorage + +``` +getUsedExternItemStorage() -> int +``` + +Returns the total amount of used external item storage. +External storage is available storage by either RS2's external storage bus or AE2's storage bus +This function returns the used storage in items even with the byte system from AE2 + +--- + +### getUsedExternFluidStorage + +``` +getUsedExternFluidStorage() -> int +``` + +Returns the total amount of used external fluid storage. +External storage is available storage by either RS2's external storage bus or AE2's storage bus +This function returns the used storage in millibuckets even with the byte system from AE2 + +--- + +### getUsedExternChemicalStorage + +``` +getUsedExternChemicalStorage() -> int +``` + +Returns the total amount of used external mekanism chemical storage. +External storage is available storage by either RS2's external storage bus or AE2's storage bus +This function returns the used storage in millibuckets even with the byte system from AE2 + +--- + +### getUsedItemStorage + +``` +getUsedItemStorage() -> int +``` + +Returns the total amount of used internal item storage. +This function returns the used storage in items for RS and in bytes for AE2 + +--- + +### getUsedFluidStorage + +``` +getUsedFluidStorage() -> int +``` + +Returns the total amount of used internal fluid storage. +This function returns the used storage in millibuckets for RS and in bytes for AE2 + +--- + +### getUsedChemicalStorage + +``` +getUsedChemicalStorage() -> int +``` + +Returns the total amount of used internal mekanism chemical storage. +This function returns the used storage in millibuckets for RS and in bytes for AE2 + +--- + +### getAvailableExternItemStorage + +``` +getAvailableExternItemStorage() -> int +``` + +Returns the total amount of available and not used external item storage. +External storage is available storage by either RS2's external storage bus or AE2's storage bus +This function returns the available and not used storage in items even with the byte system from AE2 + +--- + +### getAvailableExternFluidStorage + +``` +getAvailableExternFluidStorage() -> int +``` + +Returns the total amount of available and not used external fluid storage. +External storage is available storage by either RS2's external storage bus or AE2's storage bus +This function returns the available and not used storage in millibuckets even with the byte system from AE2 + +--- + +### getAvailableExternChemicalStorage + +``` +getAvailableExternChemicalStorage() -> int +``` + +Returns the total amount of available and not used external mekanism chemical storage. +External storage is available storage by either RS2's external storage bus or AE2's storage bus +This function returns the available and not used storage in millibuckets even with the byte system from AE2 + +--- + +### getAvailableItemStorage + +``` +getAvailableItemStorage() -> int +``` + +Returns the total amount of available and not used internal item storage. +This function returns the available and not used storage in items for RS and in bytes for AE2 + +--- + +### getAvailableFluidStorage + +``` +getAvailableFluidStorage() -> int +``` + +Returns the total amount of available and not used internal fluid storage. +This function returns the available and not used storage in millibuckets for RS and in bytes for AE2 + +--- + +### getAvailableChemicalStorage + +``` +getAvailableChemicalStorage() -> int +``` + +Returns the total amount of available and not used internal mekanism chemical storage. +This function returns the available and not used storage in millibuckets for RS and in bytes for AE2 + +--- + +## Crafting System and functions + +Since 0.8 and beta 0.7 for 1.21.1 we created a new crafting system for both the ME and RS Bridge +The functionality is mostly the same but since the RS api is currently not as extensive as the AE2 api, the RS Craft Job +may miss some functions. + +The craft function now returns an object instead of a boolean. Using that object is optional. +That object contains information about the job, if it was canceled, what was requested, what items may miss if +calculation was not successful and much more. + +Crafting is in both RS and AE async. If you request a feature, it calculates the recipe in the background and if that +was successful it starts the task. +To support that in a simple way on a users end, we created that custom object. + +When you schedule a task, it firsts starts calculation in the background and sends an event that the item is either not +craftable or the calculation was started. +If calculation is done, there are several things that can happen. If the calculation was not successful and there were +missing items, it fires the crafting event with the message "MISSING_ITEMs". +The missing items can be retrieved using the object's function `getMissingItems`. +Depending on if you use RS or AE2, it also may return other debug messages if the calculation was nto successful like +overflow or cycle detected. + +If the calculation was successful, the event will fire with the message `CRAFTING_STARTED` and then starts the crafting. + +There are now two ways to track the progress. the `crafting` event will fire when the crafting is done, it was canceled +or if other things might happen that affects the task. +The event also gives you an id to get the crafting object you would also get from the initial `craftX` function. Simply +use `getCraftingJob` to get the object. + +The other way is to regularly check if the crafting is done or canceled by calling the objects `isDone` or `isCanceled` +function. +Using the event is more simple there. + +Every function and property is described in more details below. + +### Crafting Event + +The new crafting event will be fired when the state of a task will change. + +The name of the event is prefixed depending if you use the RS or ME Bridge. +Use `rs_crafting` for the RS Bridge and `me_crafting` for the ME Bridge. +**Values:** + +1. `error: boolean` If an error occurred and the calculation or crafting was not successful +2. `id: int` The id of the craft job. Can be used to get the craft object +3. `debug_message: string` A debug message describing the current task of the task + +```lua linenums="1" +local event, error, id, message = os.pullEvent("rs_crafting") +print("A crafting update occurred for Job #" .. id) +if error then + print("There was an error while calculating or crafting the resource with the message " .. message) +else + print("The new state of the task is " .. message) +end +``` + +### craftItem + +``` +craftItem(filter: table) -> table | nil, string +``` + +Schedules a craft job for items. Will fire the crafting event when changes occur. +Or nil if there was an issue with parsing the filter + +--- + +### craftFluid + +``` +craftFluid(filter: table) -> table | nil, string +``` + +Schedules a craft job for fluids. Will fire the crafting event when changes occur. +Or nil if there was an issue with parsing the filter + +--- + +### craftChemical + +``` +craftChemical(filter: table) -> table | nil, string +``` + +Schedules a craft job for mekanism chemicals. Will fire the crafting event when changes occur. +Or nil if there was an issue with parsing the filter + +--- + +### getCraftingTasks + +``` +getCraftingTasks() -> table +``` + +Returns every crafting task that is currently running. + +--- + +### getCraftingTask + +``` +getCraftingJob(id: int) -> table | nil, string +``` + +Returns the [Crafting Job Object](/../guides/storage_system_functions#crafting-job) with the id. Nil if no object could be found + +--- + +### cancelCraftingTasks + +``` +cancelCraftingTasks(filter: table) -> int +``` + +Cancels every crafting task where the output matches the filter + +--- + +### getPatterns + +``` +getPatterns(pattern_filter: table) -> table | nil, string +``` + +Returns every pattern available to the grid or nil if there was an issue with parsing one of the filters. +The filter of this function is a bit different + +You **can** specify filters for the output and input of patterns. If you don't provide any filter or just no argument at +all, it will return every pattern. + +To specify an input or output filter, you need to use an `input`/`output` key in the filters table. + +For example + +```lua linenums="1" +-- Filter for any patterns with sticks as an output +outputFilter = { + output = { + name="minecraft:stick" + } +} + +-- Filter for any patterns with sticks as an input +inputFilter = { + input = { + name="minecraft:stick" + } +} + +-- Filter for any patterns with sticks as an output and planks as an input +inputFilter = { + input = { + name = "minecraft:oak_planks" + }, + output = { + name="minecraft:stick" + } +} + +-- Or use the function without argument to get every pattern +patterns = bridge.getPatterns() +``` + +--- + +### isCraftable + +``` +isCraftable(filter: table) -> boolean +``` + +Returns true if there is a pattern for the provided filter or nil if there was an issue with parsing the filter. +The filter can be an item filter, a chemical filter or a fluid filter. See [filter types](/../guides/filters/#types) + +--- + +### isCrafting + +``` +isCrafting(filter: table) -> boolean +``` + +Returns true if there is a crafting job running for the provided filter or nil if there was an issue with parsing the +filter. +The filter can be an item filter, a chemical filter or a fluid filter. See [filter types](/../guides/filters/#types) + +## Objects + +Every object here is inherited from common lua objects, see [LuaObjects](/../guides/objects) +Please note that due to different natures of AE2 and RS that not every object is the same. + +### Item Stack + +| Property | Type | Description | +|-------------|---------|--------------------------------------------------| +| isCraftable | boolean | Whether the item is craftable (A pattern exists) | + +### Fluid Stack + +| Property | Type | Description | +|-------------|---------|--------------------------------------------------| +| isCraftable | boolean | Whether the item is craftable (A pattern exists) | + +### Chemical Stack + +| Property | Type | Description | +|-------------|---------|--------------------------------------------------| +| isCraftable | boolean | Whether the item is craftable (A pattern exists) | + +### Storage Disk + +AE2 and RS2 storage disks sadly have a bunch of different properties since AE2 works with types and bytes while RS does +not. + +#### Refined Storage Disk + +| Property | Type | Description | +|----------|--------|-----------------------------| +| used | number | Storage amount what is used | +| capacity | number | Total Capacity | +| state | string | RS Storage state[^1] | +| type | string | RS Storage type[^2] | + +#### Applied Energistics Disk + +| Property | Type | Description | +|--------------|----------------------------------------|----------------------------------| +| item | [Item Object](/../guides/objects#item) | Disk as an Item | +| usedBytes | number | Used Bytes | +| totalBytes | number | Types capacity (Usually 63) | +| bytes | number | Bytes capacity | +| bytesPerType | number | Amount of bytes used by one type | +| type | string | AE2 Storage Type[^3] | +| fuzzyMode | string | AE2 Fuzzy[^4] | + +#### DISK Drive disk + +Storage DISK Drive from AE2 Things inherit the same properties from the classic AE2 disk. + +### Pattern + +| Property | Type | Description | +|---------------|-------------------------------------------------------------------------------------------------------------------------|--------------------------------------------| +| primaryOutput | [Item/Fluid/Chem Stack Object](/../guides/storage_system_functions#objects) | Primary Output | +| outputs | Array of [Item/Fluid/Chem Stack Object](/../guides/storage_system_functions#objects).
Or AE2 Pattern Input object | Outputs | +| inputs | Array of [Item/Fluid/Chem Stack Object](/../guides/storage_system_functions#objects) | Inputs | +| patternType | string | Pattern Type, different for AE2 and RS[^5] | +| id | string | Pattern ID, only for RS | + +### AE2 Pattern Input + +| Property | Type | Description | +|----------------|--------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------| +| primaryInput | [Item/Fluid/Chem Stack Object](/../guides/storage_system_functions#objects) | Primary Input. | +| possibleInputs | Array of [Item/Fluid/Chem Stack Object](/../guides/storage_system_functions#objects) | Other possible Inputs | +| multiplier | number | How many possible inputs are necessary to craft this pattern | +| remaining | number | Remaining items like buckets when a water bucket was used. Nil for non crafting patterns | + +### AE2 Crafting CPU + +| Property | Type | Description | +|---------------|---------------------|---------------------------------------------------------| +| storage | number | Available storage in bytes | +| coProcessors | number | Available co processing unity | +| isBusy | boolean | Whether the CPU is currently performing a task | +| craftingJob | Crafting Job Object | The job it currently performs | +| name | string | Either "Unnamed" when not named for the name of the CPU | +| selectionMode | string | CPU Selection mode[^6] | + +### Crafting Job Details + +| Property | Type | Description | +|------------|---------------------------------------------------------------------------------|---------------------------------------------------------------| +| bridge_id | number | The ID of that task when scheduled via the bride or -1 if not | +| id | string | ID of the task | +| quantity | number | Amount scheduled | +| resource | [Item/Fluid/Chem Stack Object](/../guides/storage_system_functions#objects) | The scheduled resource | +| completion | floating number between 0 and 1 | Completion in percentage | +| crafted | number | Amount already crafted | +| cpu | [AE2 Crafting CPU Object](/../guides/storage_system_functions#ae2-crafting-cpu) | The crafting cpu, nil for RS | + +### Crafting Job + +With the new crafting system, we have a complete new crafting job object. While the basic crafting job only offers some simple details, the actual job that manages the crafting offers everything that RS or AE2 would offer. +Tho these are no properties/fields, these are functions since always pulling these information would be a waste of time. + +Represents a crafting job in the ME/RS system. Used for tracking crafting operations. + +| Function | Return Type | Description | +|------------------------------|-------------|---------------------------------------------------------------------| +| getId() | number | Returns the unique identifier of the crafting job | +| isDone() | boolean | Returns whether the crafting job is completed | +| isCanceled() | boolean | Returns whether the crafting job was canceled | +| isCraftingStarted() | boolean | Returns whether the crafting process has started | +| isCalculationStarted() | boolean | Returns whether the calculation process has started | +| isCalculationNotSuccessful() | boolean | Returns whether the calculation failed | +| hasErrorOccurred() | boolean | Returns whether an error occurred during the job | +| getDebugMessage() | string | Returns a debug message with additional information about the job | +| getRequestedItem() | object | Returns the requested item/fluid/chemical as an object | +| getElapsedTime() | number | Returns the elapsed time since the job was created | +| getTotalItems() | number | Returns the total number of items to be crafted | +| getItemProgress() | number | Returns the current progress of crafting (how many items completed) | +| getEmittedItems() | object | Returns an object representing the items already emitted by the job | +| getUsedItems() | object | Returns an object representing the items used in crafting | +| getMissingItems() | object | Returns an object representing items missing for crafting | +| hasMultiplePaths() | boolean | Returns whether there are multiple crafting paths available | +| getFinalOutput() | object | Returns the final output item/fluid/chemical | +| cancel() | boolean | Cancels the crafting job and returns whether it was successful | +| getUsedBytes() | number | Returns the used bytes for that job. AE2 only | + +[^1]: +Can be NONE, INACTIVE, NORMAL, NEAR_CAPACITY, FULL. + +[^2]: +Can be item, fluid, chemical, unknown (with an unknown addon). + +[^3]: +Can be ae2:f, ae2:i, ae2:chemical or storage types from other addons. + +[^4]: +Can be IGNORE_ALL, PERCENT_99, PERCENT_75, PERCENT_50, PERCENT_25. + +[^5]: +For RS: EXTERNAL, INTERNAL. For AE2: crafting, processing, smithing, stonecutting, unknown(for unknown third party patterns). + +[^6]: +Can be ANY, PLAYER_ONLY, MACHINE_ONLY. \ No newline at end of file diff --git a/docs/img/bridge_requester.png b/docs/img/bridge_requester.png new file mode 100644 index 00000000..5b7b94e4 Binary files /dev/null and b/docs/img/bridge_requester.png differ diff --git a/docs/index.md b/docs/index.md index 43406a70..d42beff4 100644 --- a/docs/index.md +++ b/docs/index.md @@ -17,18 +17,18 @@ With Advanced Peripherals you can control your base in Minecraft only with messa If you need help, join the [Discord](https://discord.intelligence-modding.de/) See the mod page on [Curseforge](https://www.curseforge.com/minecraft/mc-mods/advanced-peripherals) - Find the mod source code on [Github](https://github.com/SirEndii/AdvancedPeripherals) + Find the mod source code on [Github](https://github.com/IntelligenceModding/AdvancedPeripherals) #### Version support | Supported Version | 1.16.5 | 1.17.1 | 1.18.2 | 1.19.2 | 1.19.3 | 1.20.1 | 1.20.4 | 1.21.1 | |-------------------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------| | Security patches | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| Critical fixes | :x: | :x: | :white_check_mark: | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| Minor fixes | :x: | :x: | :x: | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| Minor features | :x: | :x: | :x: | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| Fully supported | :x: | :x: | :x: | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| Will be supported | :x: | :x: | :o: | :o: | :o: | :o: | :o: | :o: | +| Critical fixes | :x: | :x: | :x: | :white_check_mark: | :x: | :white_check_mark: | :x: | :white_check_mark: | +| Minor fixes | :x: | :x: | :x: | :x: | :x: | :white_check_mark: | :x: | :white_check_mark: | +| Minor features | :x: | :x: | :x: | :x: | :x: | :white_check_mark: | :x: | :white_check_mark: | +| Fully supported | :x: | :x: | :x: | :x: | :x: | :white_check_mark: | :x: | :white_check_mark: | +| Will be supported | :x: | :x: | :x: | :o: | :x: | :o: | :x: | :o: | #### Netlify @@ -37,7 +37,7 @@ With Advanced Peripherals you can control your base in Minecraft only with messa #### Contribute -If you want to contribute to this documentation or fix any spelling mistakes, feel free to do so on the documentation [ Github](https://github.com/Seniorendi/Advanced-Peripherals-Documentation), checkout the **Contribute** section in the README for more info. +If you want to contribute to this documentation or fix any spelling mistakes, feel free to do so on the documentation [ Github](https://github.com/IntelligenceModding/Advanced-Peripherals-Documentation), checkout the **Contribute** section in the README for more info.
diff --git a/docs/integrations/botania/flowers.md b/docs/integrations/botania/flowers.md index 71ccabf4..dd7f7cb8 100644 --- a/docs/integrations/botania/flowers.md +++ b/docs/integrations/botania/flowers.md @@ -18,13 +18,13 @@ Mana generating flowers from botania can generate mana for other recipes or ritu --- -
+ | Peripheral Name | Interfaces with | Has events | Introduced in | | --------------- | --------------- | ---------- | ------------- | | manaFlower | Mana flowers | No | 0.6b | -
+ --- diff --git a/docs/integrations/botania/pool.md b/docs/integrations/botania/pool.md index 83e67a47..86b0fd2e 100644 --- a/docs/integrations/botania/pool.md +++ b/docs/integrations/botania/pool.md @@ -18,13 +18,13 @@ Mana Pools are used to store mana. They are also used to craft items. --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | --------------- | --------------- | ---------- | ------------- | | manaPool | Mana Pool block | No | 0.6b | -
+ --- diff --git a/docs/integrations/botania/spreader.md b/docs/integrations/botania/spreader.md index b1b03c79..2f6460d4 100644 --- a/docs/integrations/botania/spreader.md +++ b/docs/integrations/botania/spreader.md @@ -18,13 +18,13 @@ Mana Spreaders are used to transfer mana from one source to another. --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | --------------- | ------------------- | ---------- | ------------- | | manaSpreader | Mana Spreader block | No | 0.6b | -
+ --- diff --git a/docs/integrations/create/basin.md b/docs/integrations/create/basin.md index c9d65547..a53113d2 100644 --- a/docs/integrations/create/basin.md +++ b/docs/integrations/create/basin.md @@ -18,13 +18,13 @@ A Basin can hold items and fluids for many different crafting recipes. --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | --------------- | --------------- | ---------- | ------------- | | basin | Basin block | No | 0.7.16 | -
+ --- diff --git a/docs/integrations/create/blazeburner.md b/docs/integrations/create/blazeburner.md index f6dbe2c0..43842de0 100644 --- a/docs/integrations/create/blazeburner.md +++ b/docs/integrations/create/blazeburner.md @@ -18,13 +18,13 @@ A Blaze Burner uses different fuel types to heat up things above it like basins --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | --------------- | ------------------ | ---------- | ------------- | | blazeBurner | Blaze Burner block | No | 0.7.16 | -
+ --- diff --git a/docs/integrations/create/fluidtank.md b/docs/integrations/create/fluidtank.md index aa733cc7..d3909718 100644 --- a/docs/integrations/create/fluidtank.md +++ b/docs/integrations/create/fluidtank.md @@ -18,13 +18,13 @@ A Fluid Tank is a multiblock structure which can hold fluids. With each block be --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | --------------- | ---------------- | ---------- | ------------- | | fluidTank | Fluid Tank block | No | 0.7.16 | -
+ --- diff --git a/docs/integrations/create/mechanicalmixer.md b/docs/integrations/create/mechanicalmixer.md index 4bdca13e..0fd42f14 100644 --- a/docs/integrations/create/mechanicalmixer.md +++ b/docs/integrations/create/mechanicalmixer.md @@ -18,13 +18,13 @@ A Mechanical Mixer is used in combination with a Basin to process many shapeless --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | --------------- | ---------------------- | ---------- | ------------- | | mechanicalMixer | Mechanical Mixer block | No | 0.7.16 | -
+ --- diff --git a/docs/integrations/create/scrollbehaviour.md b/docs/integrations/create/scrollbehaviour.md index de9a68e6..8cf9e2d3 100644 --- a/docs/integrations/create/scrollbehaviour.md +++ b/docs/integrations/create/scrollbehaviour.md @@ -16,13 +16,13 @@ This integration works for all blocks with any type of scroll value behaviour. L --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | --------------------- | ----------------------------- | ---------- | ------------- | | scrollBehaviourEntity
speedController (1.16) | Scroll Value Behaviour blocks | No | 0.7.16 | -
+ --- diff --git a/docs/integrations/immersive_engineering/connector.md b/docs/integrations/immersive_engineering/connector.md index 873a77c8..7bab71de 100644 --- a/docs/integrations/immersive_engineering/connector.md +++ b/docs/integrations/immersive_engineering/connector.md @@ -18,13 +18,13 @@ The Redstone Wire Connector is a block from Immersive Engineering to connect red --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | ----------------- | ----------------------------- | ---------- | ------------- | | redstoneConnector | Redstone Wire Connector block | No | 0.6b | -
+ --- diff --git a/docs/integrations/immersive_engineering/probe.md b/docs/integrations/immersive_engineering/probe.md index f5437266..16d7252f 100644 --- a/docs/integrations/immersive_engineering/probe.md +++ b/docs/integrations/immersive_engineering/probe.md @@ -18,13 +18,13 @@ The Redstone Probe is a block from Immersive Engineering used to read and write --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | --------------- | -------------------- | ---------- | ------------- | | redstoneProbe | Redstone Probe block | No | 0.6b | -
+ --- diff --git a/docs/integrations/index.md b/docs/integrations/index.md index e18669db..6e81dd7d 100644 --- a/docs/integrations/index.md +++ b/docs/integrations/index.md @@ -21,7 +21,7 @@ print("Is on enchanted soul?: ".. flower.isOnEnchantedSoil()) --- ## Integration Requests -If you want to see more integrations, you can request a mod integration on [ Github](https://github.com/Seniorendi/AdvancedPeripherals/issues). +If you want to see more integrations, you can request a mod integration on [ Github](https://github.com/IntelligenceModding/AdvancedPeripherals/issues). --- diff --git a/docs/integrations/integrated_dynamics/variable_store.md b/docs/integrations/integrated_dynamics/variable_store.md index 4ec12543..d04ebaf6 100644 --- a/docs/integrations/integrated_dynamics/variable_store.md +++ b/docs/integrations/integrated_dynamics/variable_store.md @@ -18,13 +18,13 @@ The Variable Store is a block from Integrated Dynamics that can store variables --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | --------------- | -------------------- | ---------- | ------------- | | variableStore | Variable Store block | No | 0.7r | -
+ --- diff --git a/docs/integrations/minecraft/beacon.md b/docs/integrations/minecraft/beacon.md index 4c06875c..81eef704 100644 --- a/docs/integrations/minecraft/beacon.md +++ b/docs/integrations/minecraft/beacon.md @@ -13,13 +13,13 @@ A [Beacon](https://minecraft.fandom.com/wiki/Beacon) is a block that projects a --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | --------------- | --------------- | ---------- | ------------- | | beacon | Beacon block | No | 0.6b | -
+ --- diff --git a/docs/integrations/minecraft/noteblock.md b/docs/integrations/minecraft/noteblock.md index 4d444e12..62a4e0d3 100644 --- a/docs/integrations/minecraft/noteblock.md +++ b/docs/integrations/minecraft/noteblock.md @@ -13,13 +13,13 @@ A [Note Block](https://minecraft.fandom.com/wiki/Note_Block) is a musical block --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | --------------- | --------------- | ---------- | ------------- | | noteBlock | Note Block | No | 0.7.4r | -
+ --- diff --git a/docs/integrations/powah/ender_cell.md b/docs/integrations/powah/ender_cell.md index ed5ea5cb..2ecd49e7 100644 --- a/docs/integrations/powah/ender_cell.md +++ b/docs/integrations/powah/ender_cell.md @@ -15,13 +15,13 @@ The Ender Cell is a block from Powah to receive, store, and send energy on speci --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | ----------------- | ----------------------------------- | ---------- | ------------- | | enderCell | Every Ender Cell block (all tiers) | No | N/A | -
+ --- diff --git a/docs/integrations/powah/energy_cell.md b/docs/integrations/powah/energy_cell.md index db915495..8219d368 100644 --- a/docs/integrations/powah/energy_cell.md +++ b/docs/integrations/powah/energy_cell.md @@ -15,13 +15,13 @@ The Energy Cell is a block from Powah to receive, store and send energy. --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | ----------------- | ----------------------------------- | ---------- | ------------- | | energyCell | Every energy cell block (all tiers) | No | N/A | -
+ --- diff --git a/docs/integrations/powah/furnator.md b/docs/integrations/powah/furnator.md index 16c6aca5..0b52be27 100644 --- a/docs/integrations/powah/furnator.md +++ b/docs/integrations/powah/furnator.md @@ -15,13 +15,13 @@ The Furnator is a block from Powah to generate power given a fuel source. --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | ----------------- | ----------------------------------- | ---------- | ------------- | | furnator | Every furnator block (all tiers) | No | N/A | -
+ --- diff --git a/docs/integrations/powah/magmator.md b/docs/integrations/powah/magmator.md index 211f01d3..4aa486e6 100644 --- a/docs/integrations/powah/magmator.md +++ b/docs/integrations/powah/magmator.md @@ -16,13 +16,13 @@ The Magmator is a block from Powah to generate power from a fluid heat source (l --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | ----------------- | ----------------------------------- | ---------- | ------------- | | magmator | Every magmator block (all tiers) | No | N/A | -
+ --- diff --git a/docs/integrations/powah/reactor.md b/docs/integrations/powah/reactor.md index 2c6fabdc..36e73cd0 100644 --- a/docs/integrations/powah/reactor.md +++ b/docs/integrations/powah/reactor.md @@ -15,13 +15,13 @@ The Reactor is a block from Powah to generate power from uraninite. --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | ----------------- | ---------------------------------------------- | ---------- | ------------- | | uraniniteReactor | Every reactor multiblock structure (all tiers) | No | N/A | -
+ --- diff --git a/docs/integrations/powah/solar_panel.md b/docs/integrations/powah/solar_panel.md index 59f75c30..17c4f389 100644 --- a/docs/integrations/powah/solar_panel.md +++ b/docs/integrations/powah/solar_panel.md @@ -15,13 +15,13 @@ The Solar Panel is a block from Powah to generate power given direct exposure to --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | ----------------- | ----------------------------------- | ---------- | ------------- | | solarPanel | Every solar panel block (all tiers) | No | N/A | -
+ --- diff --git a/docs/integrations/powah/thermo_generator.md b/docs/integrations/powah/thermo_generator.md index 7aeaebbd..da209871 100644 --- a/docs/integrations/powah/thermo_generator.md +++ b/docs/integrations/powah/thermo_generator.md @@ -16,13 +16,13 @@ The Thermo Generator is block from Powah to generate power from an appropriate h --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | ----------------- | ---------------------------------------- | ---------- | ------------- | | thermo | Every thermo generator block (all tiers) | No | N/A | -
+ --- diff --git a/docs/peripherals/ar_controller.md b/docs/peripherals/ar_controller.md index b019fd60..9a40930b 100644 --- a/docs/peripherals/ar_controller.md +++ b/docs/peripherals/ar_controller.md @@ -17,13 +17,14 @@ The AR Controller is used to control your [AR Goggles](../items/ar_goggles.md) w --- -
+
-| Peripheral Name | Interfaces with | Has events | Introduced in | -| --------------- | --------------- | ---------- | ------------- | -| arController | AR Goggles | No | 0.5b | +| Peripheral Name | Interfaces with | Has events | Introduced in | Minecraft version | +| --------------- | --------------- | ---------- | ------------- | ----------------- | +| arController | AR Goggles | No | 0.5b | Below 1.21.1 | +| ar_controller | AR Goggles | No | - | 1.21.1 and above | -
+ --- @@ -295,11 +296,11 @@ Olfi01 made another script to draw .nfp files, which you can draw with the paint First, we have a script with more adaptability. You can define x, y, width and height. -Script 1: [Github](https://gist.github.com/Seniorendi/ce4971245b20fb031ca9b65ec4fcb4d0) +Script 1: [Github](https://gist.github.com/SirEndii/ce4971245b20fb031ca9b65ec4fcb4d0) And we have another script which depends on the script above, but is simpler to use. -Script 2: [Github](https://gist.github.com/Seniorendi/954e9888fac01efe8f23e82d0ae06e92) +Script 2: [Github](https://gist.github.com/SirEndii/954e9888fac01efe8f23e82d0ae06e92) --- diff --git a/docs/peripherals/block_reader.md b/docs/peripherals/block_reader.md index 0814bc10..b66dd717 100644 --- a/docs/peripherals/block_reader.md +++ b/docs/peripherals/block_reader.md @@ -13,13 +13,14 @@ This block is able to read data about any blocks or tile entities in front of it --- -
+
-| Peripheral Name | Interfaces with | Has events | Introduced in | -| --------------- | --------------- | ---------- | ------------- | -| blockReader | Blocks | No | 0.7r | +| Peripheral Name | Interfaces with | Has events | Introduced in | Minecraft version | +| --------------- | --------------- | ---------- | ------------- | ----------------- | +| blockReader | Blocks | No | 0.7r | Below 1.21.1 | +| block_reader | Blocks | No | - | 1.21.1 and above | -
+ --- @@ -51,7 +52,7 @@ Returns the block data of the block if block is a tile entity. local reader = peripheral.find("blockReader") --Prints the contents of the data -for k, v in ipairs(reader.getBlockData()) do +for k, v in pairs(reader.getBlockData()) do print(k, v) end ``` diff --git a/docs/peripherals/chat_box.md b/docs/peripherals/chat_box.md index 8140de75..0ad27362 100644 --- a/docs/peripherals/chat_box.md +++ b/docs/peripherals/chat_box.md @@ -16,13 +16,14 @@ The Chat Box is able to read and write messages to the in-game chat. You can sen --- -
+
-| Peripheral Name | Interfaces with | Has events | Introduced in | -| --------------- | --------------- | ---------- | ------------- | -| chatBox | Game Chat | Yes | 0.1b | +| Peripheral Name | Interfaces with | Has events | Introduced in | Minecraft version | +| --------------- | --------------- | ---------- | ------------- | ----------------- | +| chatBox | Game Chat | Yes | 0.1b | Below 1.21.1 | +| chat_box | Game Chat | Yes | - | 1.21.1 and above | -
+ --- @@ -34,10 +35,11 @@ Fires when a player sends a message into the chat. 1. `username: string` The username of the player who sent the message 2. `message: string` The message sent by the player 3. `uuid: string` The player's uuid -4. `isHidden: boolean` Whether the message is hidden or not +4. `isHidden: boolean` Whether the message is hidden or not +5. `messageUtf8: string` The message sent by the player, with utf characters. ```lua linenums="1" -local event, username, message, uuid, isHidden = os.pullEvent("chat") +local event, username, message, uuid, isHidden, messageUtf8 = os.pullEvent("chat") print("The 'chat' event was fired with the username " .. username .. " and the message " .. message) ``` @@ -50,7 +52,7 @@ print("The 'chat' event was fired with the username " .. username .. " and the m ### sendMessage ``` -sendMessage(message: string[, prefix: string, brackets: string, bracketColor: string, range: number]) -> true | nil, string +sendMessage(message: string[, prefix: string, brackets: string, bracketColor: string, range: number, utf8Support: boolean]) -> true | nil, string ``` Broadcasts a message to the global chat or if `range` is specified it is sent to all players in the range. The `prefix` will change the text that appears inside the brackets at the start of a message. Defaults to "AP". @@ -58,6 +60,8 @@ To change the `brackets` used around the prefix you must specify a string like s `"[]"`, `"()"`, `"<>"`, ... `bracketColor` specifies the color to use for the brackets, this must be in the [MOTD code format](https://www.digminecraft.com/lists/color_list_pc.php). +If `utf8Support` is `true`: `message`, `prefix`, `brackets`, and `bracketColor` are all expected to be UTF8 encoded, using the `utf8` standard library, unicode escape sequences, or similar. + Returns true if the message is successfully sent, or nil and an error message if it fails. ```lua linenums="1" @@ -67,6 +71,10 @@ chatBox.sendMessage("Hello world!") -- Sends "[AP] Hello world!" in chat os.sleep(1) -- We must account for the cooldown between messages, this is to prevent spam chatBox.sendMessage("I am dave", "Dave") -- Sends "[Dave] I am dave" os.sleep(1) +-- sends a smilely emoji to chat, +-- leaving all other parameters at their defaults. +chatBox.sendMessage("\u{1F600}", nil, nil, nil, nil, true) +os.sleep(1) -- Sends message "Welcome!" with cyan <> brackets around "" -- to players within 30 blocks of the chat box @@ -82,7 +90,7 @@ chatBox.sendMessage("Welcome!", "Box", "<>", "&b", 30) ### sendMessageToPlayer ``` -sendMessageToPlayer(message: string, username: string[, prefix: string, brackets: string, bracketColor: string, range: number]) -> true | nil, string +sendMessageToPlayer(message: string, username: string[, prefix: string, brackets: string, bracketColor: string, range: number, utf8Support: boolean]) -> true | nil, string ``` Similar to [`sendMessage()`](#sendmessage) this sends a message to one specific player. Specify the player to send the message to with the `username` parameter. @@ -94,7 +102,7 @@ chatBox.sendMessageToPlayer("Hello there.", "Player123") -- Sends "[AP] Hello th ### sendToastToPlayer ``` -sendToastToPlayer(message: string, title: string, username: string[, prefix: string, brackets: string, bracketColor: string, range: number]) -> true | nil, string +sendToastToPlayer(message: string, title: string, username: string[, prefix: string, brackets: string, bracketColor: string, range: number, utf8Support: boolean]) -> true | nil, string ``` Sends a toast to the specified player. The design of the toast is the classic notification design. It's planned to add a custom rendered design in the future. @@ -111,7 +119,7 @@ chatBox.sendToastToPlayer("I will chat box you", "Hello", "Dev", "&4&lBoxi", "() ### sendFormattedMessage ``` -sendFormattedMessage(json: string[, prefix: string, brackets: string, bracketColor: string, range: number]) -> true | nil, string +sendFormattedMessage(json: string[, prefix: string, brackets: string, bracketColor: string, range: number, utf8Support: boolean]) -> true | nil, string ``` This function is fundamentally the same as [`sendMessage()`](#sendmessage) except it takes a json text component as the first parameter. Find out more information on how the text component format works on the [minecraft wiki](https://minecraft.wiki/w/Text_component_format). @@ -145,7 +153,7 @@ chatBox.sendFormattedMessage(json) ### sendFormattedMessageToPlayer ``` -sendFormattedMessageToPlayer(json: string, username: string[, prefix: string, brackets: string, bracketColor: string, range: number]) -> true | nil, string +sendFormattedMessageToPlayer(json: string, username: string[, prefix: string, brackets: string, bracketColor: string, range: number, utf8Support: boolean]) -> true | nil, string ``` Similar to [`sendFormattedMessage()`](#sendformattedmessage) this sends a formatted message to one specific player. Specify the player to send the message to with the `username` parameter. @@ -153,7 +161,7 @@ Similar to [`sendFormattedMessage()`](#sendformattedmessage) this sends a format ### sendFormattedToastToPlayer ``` -sendFormattedToastToPlayer(messageJson: string, titleJson: string, username: string[, prefix: string, brackets: string, bracketColor: string, range: number]) -> true | nil, string +sendFormattedToastToPlayer(messageJson: string, titleJson: string, username: string[, prefix: string, brackets: string, bracketColor: string, range: number, utf8Support: boolean]) -> true | nil, string ``` This function is fundamentally the same as [`sendToast()`](#sendtoasttoplayer) except it takes a json text component as the first and second parameter. Find out more information on how the text component format works on the [minecraft wiki](https://minecraft.wiki/w/Text_component_format). @@ -185,6 +193,9 @@ successful, error = chatBox.sendFormattedToastToPlayer(messageJson, titleJson, " ## Changelog/Trivia +**TODO when merged?** +Added UTF-8 support, allowing sending/recieving any unicode character supported by minecraft. + **1.19.2-0.7.33r/1.20.1-0.7.37r** Added `sendToastToPlayer` and `sendFormattedToastToPlayer` diff --git a/docs/peripherals/colony_integrator.md b/docs/peripherals/colony_integrator.md index c49a2509..6089188b 100644 --- a/docs/peripherals/colony_integrator.md +++ b/docs/peripherals/colony_integrator.md @@ -16,13 +16,14 @@ The colony integrator can interact with a colony from MineColonies. --- -
+
-| Peripheral Name | Interfaces with | Has events | Introduced in | -| ---------------- | --------------- | ---------- | ------------- | -| colonyIntegrator | Mine Colony | No | 0.7r | +| Peripheral Name | Interfaces with | Has events | Introduced in | Minecraft version | +| ----------------- | --------------- | ---------- | ------------- | ----------------- | +| colonyIntegrator | Mine Colony | No | 0.7r | Below 1.21.1 | +| colony_integrator | Mine Colony | No | - | 1.21.1 and above | -
+ --- @@ -396,14 +397,14 @@ Returns the current number of active construction sites. We made a script to show every citizens and their gender on a monitor. -You can view and download the script on [Github](https://github.com/Seniorendi/Lua-Projects/blob/master/Examples/colony_integrator_list.lua) +You can view and download the script on [Github](https://github.com/SirEndii/Lua-Projects/blob/master/Examples/colony_integrator_list.lua) ![!Image of the citizen list program](../img/colony_integrator/citizen_list.png) ### Colony Stats And here we have a script made for a pocket computer to show statistics about a colony. -You can view and download the script on [Github](https://github.com/Seniorendi/Lua-Projects/blob/master/Examples/colony_integrator_status.lua) +You can view and download the script on [Github](https://github.com/SirEndii/Lua-Projects/blob/master/Examples/colony_integrator_status.lua) ![!Image of the colony info program](../img/colony_integrator/colony_info.png) --- diff --git a/docs/peripherals/energy_detector.md b/docs/peripherals/energy_detector.md index bc72c48b..9a8f2925 100644 --- a/docs/peripherals/energy_detector.md +++ b/docs/peripherals/energy_detector.md @@ -17,13 +17,14 @@ The Energy Detector can detect energy flow and acts as a resistor. You can defin --- -
+
-| Peripheral Name | Interfaces with | Has events | Introduced in | -| --------------- | --------------- | ---------- | ------------- | -| energyDetector | Forge Energy | No | 0.4.1b | +| Peripheral Name | Interfaces with | Has events | Introduced in | Minecraft version | +| --------------- | --------------- | ---------- | ------------- | ----------------- | +| energyDetector | Forge Energy | No | 0.4.1b | Below 1.21.1 | +| energy_detector | Forge Energy | No | - | 1.21.1 and above | -
+ --- diff --git a/docs/peripherals/environment_detector.md b/docs/peripherals/environment_detector.md index bb6489c6..5cc6eb20 100644 --- a/docs/peripherals/environment_detector.md +++ b/docs/peripherals/environment_detector.md @@ -14,13 +14,14 @@ the light level of the block and many more. --- -
+
-| Peripheral Name | Interfaces with | Has events | Introduced in | -| ------------------- | --------------- | ---------- | ------------- | -| environmentDetector | World | No | 0.1b | +| Peripheral Name | Interfaces with | Has events | Introduced in | Minecraft version | +| -------------------- | --------------- | ---------- | ------------- | ----------------- | +| environmentDetector | World | No | 0.1b | Below 1.21.1 | +| environment_detector | World | No | - | 1.21.1 and above | -
+ --- @@ -73,10 +74,10 @@ Returns the current sky light level from 0 to 15 (like a daylight sensor). --- -### getDimensionName +### getDimension ``` -getDimensionName() -> string +getDimension() -> string ``` Returns the name of the current dimension (ex. `overworld`, `the_nether` or `the_end`). @@ -85,7 +86,7 @@ Returns the name of the current dimension (ex. `overworld`, `the_nether` or `the local detector = peripheral.find("environmentDetector") -- e.g. prints "Dimension: the_nether" -print("Dimension: " .. detector.getDimensionName()) +print("Dimension: " .. detector.getDimension()) ``` --- diff --git a/docs/peripherals/geo_scanner.md b/docs/peripherals/geo_scanner.md index 6c952967..fa3ac218 100644 --- a/docs/peripherals/geo_scanner.md +++ b/docs/peripherals/geo_scanner.md @@ -15,27 +15,19 @@ The Geo scanner has a delay between scans, so you must wait until you can scan a --- -
+
-| Peripheral Name | Interfaces with | Has events | Introduced in | -| --------------- | --------------- | ---------- | ------------- | -| geoScanner | Blocks | No | 0.7r | +| Peripheral Name | Interfaces with | Has events | Introduced in | Minecraft version | +| --------------- | --------------- | ---------- | ------------- | ----------------- | +| geoScanner | Blocks | No | 0.7r | Below 1.21.1 | +| geo_scanner | Blocks | No | - | 1.21.1 and above | -
+ --- ## Functions -### getFuelLevel -``` -getFuelLevel() -> number -``` - -Returns the amount of stored fuel. - ---- - ### getMaxFuelLevel ``` getMaxFuelLevel() -> number @@ -73,15 +65,6 @@ Returns a list of data about all blocks in the radius. Or if the scan fails it r --- -### getScanCooldown -``` -getScanCooldown() -> number -``` - -Returns the current time remaining until then next `scan()` can be ran. - ---- - ### chunkAnalyze ``` chunkAnalyze() -> table | nil, reason diff --git a/docs/peripherals/inventory_manager.md b/docs/peripherals/inventory_manager.md index fa3f33af..52699fde 100644 --- a/docs/peripherals/inventory_manager.md +++ b/docs/peripherals/inventory_manager.md @@ -16,13 +16,14 @@ The Inventory Manager can communicate with the player's inventory. You need to a --- -
+
-| Peripheral Name | Interfaces with | Has events | Introduced in | -| ---------------- | ---------------- | ---------- | ------------- | -| inventoryManager | Player Inventory | No | 0.5b | +| Peripheral Name | Interfaces with | Has events | Introduced in | Minecraft version | +| ----------------- | ---------------- | ---------- | ------------- | ----------------- | +| inventoryManager | Player Inventory | No | 0.5b | Below 1.21.1 | +| inventory_manager | Player Inventory | No | - | 1.21.1 and above | -
+ --- diff --git a/docs/peripherals/me_bridge.md b/docs/peripherals/me_bridge.md index 841fefdb..90fd5047 100644 --- a/docs/peripherals/me_bridge.md +++ b/docs/peripherals/me_bridge.md @@ -17,397 +17,439 @@ You can retrieve items, craft items, get all items as a list and more. The ME Br --- -
+
-| Peripheral Name | Interfaces with | Has events | Introduced in | -| --------------- | --------------- | ---------- | ------------- | -| meBridge | ME System | Yes | 0.3b | +| Peripheral Name | Interfaces with | Has events | Introduced in | Minecraft version | +| --------------- | --------------- | ---------- | ------------- | ----------------- | +| meBridge | ME System | Yes | 0.3b | Below 1.21.1 | +| me_bridge | ME System | Yes | - | 1.21.1 and above | -
+ --- !!! failure

You need to place the inventory/tank you want to use to export/import stuff next to the ME Bridge and **NOT** next to the computer!

-## Events - -### crafting -Fires when a crafting job starts or fails. -**Values:** -1. `success: boolean` Indicates whether a crafting job has successfully started or not -2. `message: string` A message about the status of the crafting job -These values are equivalent to the return values of [`craftItem()`](#craftitem). - -```lua linenums="1" -local event, success, message = os.pullEvent("crafting") -if success then - print("A crafting job has successfully started") -else - print("A crafting job has failed to start") -end -``` - -!!! Warning +=== "1.20.1-0.7 and older" + + !!! info + If you are playing on 0.7 for the minecraft version 1.21.1 and newer, please use the content tab for "1.21.1-0.7 and newer". + The following documentation contains the legacy ME and RS bridge features which will be replaced with the next stable AP version. + + The new ME and RS Bridge systems will eventually be back ported to 1.20.1 and 1.19.2 with 0.8. + +
+ + ## Events + + ### crafting + Fires when a crafting job starts or fails. + **Values:** + 1. `success: boolean` Indicates whether a crafting job has successfully started or not + 2. `message: string` A message about the status of the crafting job + These values are equivalent to the return values of [`craftItem()`](#craftitem). + + ```lua linenums="1" + local event, success, message = os.pullEvent("crafting") + if success then + print("A crafting job has successfully started") + else + print("A crafting job has failed to start") + end + ``` + + !!! Warning The `crafting` event will fire when the ME Bridge is connected to an active ME System that is performing crafting operations. These operations **need** to be started by the bridge itself! - ---- - -!!! tip + + --- + + !!! tip You can use the command `/advancedperipherals getHashItem` with an item in your hand to get the MD5 hash of the NBT tags of the item. An MD5 Hash can look like this `ae70053c97f877de546b0248b9ddf525`. - -## Functions - -!!! info + + ## Functions + + !!! info The item arguments(`item: table`) accepts our item filters, you can check the syntax of these filters [here](/../guides/filters). - - -### craftItem -``` -craftItem(item: table[, craftingCpu: string]) -> boolean, err: string -``` - -Tries to craft the provided `item`. If a `craftingCpu`'s name is provided then it will use that cpu to craft the `item`. - -#### Item Properties - -Check the [item filters guide](/../guides/filters) for more info! - -| item | Description | -| ---------------- | ------------------------------------------- | -| name: `string` | The registry name of the item or a tag | -| count: `number?` | The amount of the item to craft | -| nbt: `string?` | NBT to match the item on | - -**OR** - -| item | Description | -| --------------------- | ------------------------------------------- | -| fingerprint: `string` | A unique fingerprint which identifies the
item to craft | -| count: `number?` | The amount of the item to craft | - ---- - -### craftFluid -``` -craftFluid(fluid: table[, craftingCpu: string]) -> boolean, err: string -``` - -Tries to craft the provided `fluid`. If a `craftingCpu`'s name is provided then it will use that cpu to craft the `fluid`. - -#### Fluid Properties - -Check the [fluid filters guide](/../guides/filters) for more info! - -| fluid | Description | -| ---------------- | ------------------------------------------- | -| name: `string` | The registry name of the fluid or a tag | -| count: `number?` | The amount of the fluid to craft | -| nbt: `string?` | NBT to match the fluid on | - -**OR** - -| fluid | Description | -| --------------------- | ------------------------------------------- | -| fingerprint: `string` | A unique fingerprint which identifies the
fluid to craft | -| count: `number?` | The amount of the fluid to craft | ---- - -### getItem -``` -getItem(item: table) -> table, err: string -``` - -Returns a table with information about the item type in the system. - -#### Properties - -| result | Description | -| ---------------------- | ------------------------------------------------------- | -| name: `string` | The registry name of the item | -| fingerprint: `string?` | A unique fingerprint which identifies the item to craft | -| amount: `number` | The amount of the item in the system | -| displayName: `string` | The display name for the item | -| isCraftable: `boolean` | Whether the item has a crafting pattern or not | -| nbt: `string?` | NBT to match the item on | -| tags: `table` | A list of all of the item tags | - ---- - -### importItem -``` -importItem(item: table, direction: string) -> number, err: string -``` - -Imports an `item` from a container in the `direction` to the ME System. -Returns the number of the `item` imported into the system. - -!!! tip "Since version 0.7r" - You can now use both relative (`right`, `left`, `front`, `back`, `top`, `bottom`) and cardinal (`north`, `south`, `east`, `west`, `up`, `down`) directions for the `direction` argument. - -```lua linenums="1" -local bridge = peripheral.find("meBridge") - --- Imports 32 dirt from the container above into the system -bridge.importItem({name="minecraft:dirt", count=1}, "up") -``` + + + ### craftItem + ``` + craftItem(item: table[, craftingCpu: string]) -> boolean, err: string + ``` + + Tries to craft the provided `item`. If a `craftingCpu`'s name is provided then it will use that cpu to craft the `item`. + + #### Item Properties + + Check the [item filters guide](/../guides/filters) for more info! + + | item | Description | + | ---------------- | ------------------------------------------- | + | name: `string` | The registry name of the item or a tag | + | count: `number?` | The amount of the item to craft | + | nbt: `string?` | NBT to match the item on | + + **OR** + + | item | Description | + | --------------------- | ------------------------------------------- | + | fingerprint: `string` | A unique fingerprint which identifies the
item to craft | + | count: `number?` | The amount of the item to craft | + + --- + + ### craftFluid + ``` + craftFluid(fluid: table[, craftingCpu: string]) -> boolean, err: string + ``` + + Tries to craft the provided `fluid`. If a `craftingCpu`'s name is provided then it will use that cpu to craft the `fluid`. + + #### Fluid Properties + + Check the [fluid filters guide](/../guides/filters) for more info! + + | fluid | Description | + | ---------------- | ------------------------------------------- | + | name: `string` | The registry name of the fluid or a tag | + | count: `number?` | The amount of the fluid to craft | + | nbt: `string?` | NBT to match the fluid on | + + **OR** + + | fluid | Description | + | --------------------- | ------------------------------------------- | + | fingerprint: `string` | A unique fingerprint which identifies the
fluid to craft | + | count: `number?` | The amount of the fluid to craft | + --- + + ### getItem + ``` + getItem(item: table) -> table, err: string + ``` + + Returns a table with information about the item type in the system. + + #### Properties + + | result | Description | + | ---------------------- | ------------------------------------------------------- | + | name: `string` | The registry name of the item | + | fingerprint: `string?` | A unique fingerprint which identifies the item to craft | + | amount: `number` | The amount of the item in the system | + | displayName: `string` | The display name for the item | + | isCraftable: `boolean` | Whether the item has a crafting pattern or not | + | nbt: `string?` | NBT to match the item on | + | tags: `table` | A list of all of the item tags | + + --- + + ### importItem + ``` + importItem(item: table, direction: string) -> number, err: string + ``` + + Imports an `item` from a container in the `direction` to the ME System. + Returns the number of the `item` imported into the system. + + !!! tip "Since version 0.7r" + You can now use both relative (`right`, `left`, `front`, `back`, `top`, `bottom`) and cardinal (`north`, `south`, `east`, `west`, `up`, `down`) directions for the `direction` argument. + + ```lua linenums="1" + local bridge = peripheral.find("meBridge") + + -- Imports 32 dirt from the container above into the system + bridge.importItem({name="minecraft:dirt", count=1}, "up") + ``` + + --- + + ### exportItem + ``` + exportItem(item: table, direction: string) -> number, err: string + ``` + + Exports an `item` to a container in the `direction` from the ME bridge block. + Returns the number of the `item` exported into the container. + + ```lua linenums="1" + local bridge = peripheral.find("meBridge") + + -- Exports 1 "Protection I" book into the container above + bridge.exportItem({name="minecraft:enchanted_book", count=1, nbt="ae70053c97f877de546b0248b9ddf525"}, "up") + ``` + + --- + + ### importItemFromPeripheral + ``` + importItemFromPeripheral(item: table, container: string) -> number, err: string + ``` + + Similar to [`importItem()`](#importitem) it imports an `item` from a container which is connected to the peripheral network. + `container` should be the exact name of the container peripheral on the network. + Returns the number of the `item` imported from the container. + + --- + + ### exportItemToPeripheral + ``` + exportItemToPeripheral(item: table, container: string) -> number, err: string + ``` + + Similar to [`exportItem()`](#exportitem) it exports an `item` to a container which is connected to the peripheral network. + `container` should be the exact name of the container peripheral on the network. + Returns the number of the `item` exported into the container. + + --- + + ### getEnergyStorage + ``` + getEnergyStorage() -> number, err: string + ``` + + Returns the stored energy of the whole ME System in AE. + + --- + + ### getMaxEnergyStorage + ``` + getMaxEnergyStorage() -> number, err: string + ``` + + Returns the maximum energy storage capacity of the whole ME system in AE. + + --- + + ### getEnergyUsage + ``` + getEnergyUsage() -> number, err: string + ``` + + Returns the energy usage of the whole ME System in AE/t. + + --- + + ### getCraftingCPUs + ``` + getCraftingCPUs() -> table, err: string + ``` + + Returns a list of all connected crafting cpus. + + #### CPU Properties + + | cpu | Description | + | ---------------------- | -------------------------------------- | + | storage: `number` | The amount of storage the CPU has | + | coProcessors: `number` | The number of coprocessors the CPU has | + | isBusy: `boolean` | If the cpu is currently crafting | + + --- + + ### isItemCrafting + ``` + isItemCrafting(item: table[, craftingCpu: string]) -> boolean, err: string + ``` + + Returns true if a crafting job for the `item` exists. If a `craftingCpu`'s name is provided then it will check only if that cpu is crafting the `item`. + + --- + + ### isItemCraftable + ``` + isItemCraftable(item: table) -> boolean, err: string + ``` + + Returns true if the `item` is craftable. + + --- + + ### listCraftableItems + ``` + listCraftableItems() -> table, err: string + ``` + + Returns a list of information about all craftable items + + #### Properties + + | item / fluid | Description | + | ---------------------- | ------------------------------------------------------- | + | name: `string` | The registry name of the item | + | fingerprint: `string?` | A unique fingerprint which identifies the item to craft | + | amount: `number` | The amount of the item in the system | + | displayName: `string` | The display name for the item | + | isCraftable: `boolean` | Whether the item has a crafting pattern or not | + | nbt: `string?` | NBT to match the item on | + | tags: `table` | A list of all of the item tags | + + ```lua linenums="1" + local bridge = peripheral.find("meBridge") + + -- print out all craftable items + craftableItems = bridge.listCraftableItems() + for _, item in pairs(craftableItems) do + print(item.name) + end + ``` + + --- + + ### listCraftableFluid + ``` + listCraftableFluid() -> table, err: string + ``` + + Returns a list of information about all craftable fluids + + --- + + ### listItems + ``` + listItems() -> table, err: string + ``` + + Returns a list of information about all items in the ME System. + + --- + + ### listFluid + ``` + listFluid() -> table, err: string + ``` + + Returns a list of information about all fluids in the ME System. + + --- + + ### listGas + ``` + listGas() -> table, err: string + ``` + + Returns a list of information about all gases (Applied Mekanistics) in the ME System. + + --- + + !!! success "Added in version 1.18.2-0.7.24r | 1.19.2-0.7.23b" + + ### listCells + ``` + listCells() -> table, err: string + ``` + + Returns a list of information about all cells in the disk drives of the ME System. + + + | cell | Description | + | ---------------------- | -------------------------------------- | + | item: `string` | The name of the cell. e.g. `ae2:64k_storage_cell | + | cellType: `string` | The type of the cell. `item` or `fluid`| + | bytesPerType: `int` | The bytes per type | + | totalBytes: `int` | Total available bytes of the cell | + + --- + + !!! success "Added in version 1.18.2-0.7.24r | 1.19.2-0.7.23b" + + ### getTotalItemStorage + ``` + getTotalItemStorage() -> int, err: string + ``` + + Returns how much total item storage the system offers + + --- + + !!! success "Added in version 1.18.2-0.7.24r | 1.19.2-0.7.23b" + + ### getTotalFluidStorage + ``` + getTotalFluidStorage() -> int, err: string + ``` + + Returns how much total fluid storage the system offers + + --- + + !!! success "Added in version 1.18.2-0.7.24r | 1.19.2-0.7.23b" + + ### getUsedItemStorage + ``` + getUsedItemStorage() -> int, err: string + ``` + + Returns how much item storage is used + + --- + + !!! success "Added in version 1.18.2-0.7.24r | 1.19.2-0.7.23b" + + ### getUsedFluidStorage + ``` + getUsedFluidStorage() -> int, err: string + ``` + + Returns how much fluid storage is used + + --- + + !!! success "Added in version 1.18.2-0.7.24r | 1.19.2-0.7.23b" + + ### getAvailableItemStorage + ``` + getAvailableItemStorage() -> int, err: string + ``` + + Returns how much item storage is available + + --- + + !!! success "Added in version 1.18.2-0.7.24r | 1.19.2-0.7.23b" + + ### getAvailableFluidStorage + ``` + getAvailableFluidStorage() -> int, err: string + ``` + + Returns how much fluid storage is available + + +
+ +=== "1.21.1-0.7 and newer" +
+ + !!! info + If you are playing on 0.7 for the minecraft version 1.20.1 and older, please use the content tab for "1.20.1-0.7 and older". + The following documentation also works for the canary 0.8 version. + + The new ME and RS Bridge systems will eventually be back ported to 1.20.1 and 1.19.2 with 0.8. + + ## Functionality + + The RS and ME Bridge now share the same functionality. Check [this Guide](../../guides/storage_system_functions) for the whole documentation for every available feature. + +
--- -### exportItem -``` -exportItem(item: table, direction: string) -> number, err: string -``` - -Exports an `item` to a container in the `direction` from the ME bridge block. -Returns the number of the `item` exported into the container. - -```lua linenums="1" -local bridge = peripheral.find("meBridge") - --- Exports 1 "Protection I" book into the container above -bridge.exportItem({name="minecraft:enchanted_book", count=1, nbt="ae70053c97f877de546b0248b9ddf525"}, "up") -``` - ---- - -### importItemFromPeripheral -``` -importItemFromPeripheral(item: table, container: string) -> number, err: string -``` - -Similar to [`importItem()`](#importitem) it imports an `item` from a container which is connected to the peripheral network. -`container` should be the exact name of the container peripheral on the network. -Returns the number of the `item` imported from the container. - ---- - -### exportItemToPeripheral -``` -exportItemToPeripheral(item: table, container: string) -> number, err: string -``` - -Similar to [`exportItem()`](#exportitem) it exports an `item` to a container which is connected to the peripheral network. -`container` should be the exact name of the container peripheral on the network. -Returns the number of the `item` exported into the container. - ---- - -### getEnergyStorage -``` -getEnergyStorage() -> number, err: string -``` - -Returns the stored energy of the whole ME System in AE. - ---- - -### getMaxEnergyStorage -``` -getMaxEnergyStorage() -> number, err: string -``` - -Returns the maximum energy storage capacity of the whole ME system in AE. - ---- - -### getEnergyUsage -``` -getEnergyUsage() -> number, err: string -``` - -Returns the energy usage of the whole ME System in AE/t. - ---- - -### getCraftingCPUs -``` -getCraftingCPUs() -> table, err: string -``` - -Returns a list of all connected crafting cpus. - -#### CPU Properties - -| cpu | Description | -| ---------------------- | -------------------------------------- | -| storage: `number` | The amount of storage the CPU has | -| coProcessors: `number` | The number of coprocessors the CPU has | -| isBusy: `boolean` | If the cpu is currently crafting | - ---- - -### isItemCrafting -``` -isItemCrafting(item: table[, craftingCpu: string]) -> boolean, err: string -``` - -Returns true if a crafting job for the `item` exists. If a `craftingCpu`'s name is provided then it will check only if that cpu is crafting the `item`. - ---- - -### isItemCraftable -``` -isItemCraftable(item: table) -> boolean, err: string -``` - -Returns true if the `item` is craftable. - ---- - -### listCraftableItems -``` -listCraftableItems() -> table, err: string -``` - -Returns a list of information about all craftable items - -#### Properties - -| item / fluid | Description | -| ---------------------- | ------------------------------------------------------- | -| name: `string` | The registry name of the item | -| fingerprint: `string?` | A unique fingerprint which identifies the item to craft | -| amount: `number` | The amount of the item in the system | -| displayName: `string` | The display name for the item | -| isCraftable: `boolean` | Whether the item has a crafting pattern or not | -| nbt: `string?` | NBT to match the item on | -| tags: `table` | A list of all of the item tags | - -```lua linenums="1" -local bridge = peripheral.find("meBridge") - --- print out all craftable items -craftableItems = bridge.listCraftableItems() -for _, item in pairs(craftableItems) do - print(item.name) -end -``` - ---- - -### listCraftableFluid -``` -listCraftableFluid() -> table, err: string -``` - -Returns a list of information about all craftable fluids - ---- - -### listItems -``` -listItems() -> table, err: string -``` - -Returns a list of information about all items in the ME System. - ---- - -### listFluid -``` -listFluid() -> table, err: string -``` - -Returns a list of information about all fluids in the ME System. - ---- - -### listGas -``` -listGas() -> table, err: string -``` - -Returns a list of information about all gases (Applied Mekanistics) in the ME System. - ---- - -!!! success "Added in version 1.18.2-0.7.24r | 1.19.2-0.7.23b" - -### listCells -``` -listCells() -> table, err: string -``` - -Returns a list of information about all cells in the disk drives of the ME System. - - -| cell | Description | -| ---------------------- | -------------------------------------- | -| item: `string` | The name of the cell. e.g. `ae2:64k_storage_cell | -| cellType: `string` | The type of the cell. `item` or `fluid`| -| bytesPerType: `int` | The bytes per type | -| totalBytes: `int` | Total available bytes of the cell | - ---- - -!!! success "Added in version 1.18.2-0.7.24r | 1.19.2-0.7.23b" - -### getTotalItemStorage -``` -getTotalItemStorage() -> int, err: string -``` - -Returns how much total item storage the system offers - ---- - -!!! success "Added in version 1.18.2-0.7.24r | 1.19.2-0.7.23b" - -### getTotalFluidStorage -``` -getTotalFluidStorage() -> int, err: string -``` - -Returns how much total fluid storage the system offers - ---- - -!!! success "Added in version 1.18.2-0.7.24r | 1.19.2-0.7.23b" - -### getUsedItemStorage -``` -getUsedItemStorage() -> int, err: string -``` - -Returns how much item storage is used - ---- - -!!! success "Added in version 1.18.2-0.7.24r | 1.19.2-0.7.23b" - -### getUsedFluidStorage -``` -getUsedFluidStorage() -> int, err: string -``` - -Returns how much fluid storage is used - ---- - -!!! success "Added in version 1.18.2-0.7.24r | 1.19.2-0.7.23b" - -### getAvailableItemStorage -``` -getAvailableItemStorage() -> int, err: string -``` - -Returns how much item storage is available - ---- +## Examples -!!! success "Added in version 1.18.2-0.7.24r | 1.19.2-0.7.23b" +### Requester -### getAvailableFluidStorage -``` -getAvailableFluidStorage() -> int, err: string -``` +The requester is a successor for the old "Automatic Autocrafting" script which uses the old ME Bridge functions. +It currently only works with AP on 1.21.1 or on 1.19.2 0.8 and supports both the ME and the RS Bridge at the same time. -Returns how much fluid storage is available +This script automatically schedules crafting jobs for pre-defined items, fluids and mekanism chemicals +Do you want 500 glass in your me system at all times? Add glass to the list and the script will craft it for you. +No need for level emitters or crafting cards! ---- +You can find instructions on how to install the script [here](https://github.com/SirEndii/Lua-Projects/tree/master) -## Examples +![Requester example script preview](../img/bridge_requester.png) ### Automatic Autocrafting diff --git a/docs/peripherals/nbt_storage.md b/docs/peripherals/nbt_storage.md index 8e2389e2..4da5851f 100644 --- a/docs/peripherals/nbt_storage.md +++ b/docs/peripherals/nbt_storage.md @@ -13,13 +13,14 @@ NBT Storage is a custom block that allows reading and writing of NBT data to the --- -
+
-| Peripheral Name | Interfaces with | Has events | Introduced in | -| --------------- | --------------- | ---------- | ------------- | -| nbtStorage | NBT | No | 0.7r | +| Peripheral Name | Interfaces with | Has events | Introduced in | Minecraft version | +| --------------- | --------------- | ---------- | ------------- | ----------------- | +| nbtStorage | NBT | No | 0.7r | Below 1.21.1 | +| nbt_storage | NBT | No | - | 1.21.1 and above | -
+ --- diff --git a/docs/peripherals/player_detector.md b/docs/peripherals/player_detector.md index a4c78d0d..c3f7e1c7 100644 --- a/docs/peripherals/player_detector.md +++ b/docs/peripherals/player_detector.md @@ -14,13 +14,14 @@ You can get a list of all online players and detect when a player clicks on the --- -
+
-| Peripheral Name | Interfaces with | Has events | Introduced in | -|-----------------|-----------------|------------|---------------| -| playerDetector | Players | Yes | 0.1b | +| Peripheral Name | Interfaces with | Has events | Introduced in | Minecraft version | +| --------------- | --------------- | ---------- | ------------- | ----------------- | +| playerDetector | Players | Yes | 0.1b | Below 1.21.1 | +| player_detector | Players | Yes | - | 1.21.1 and above | -
+ --- @@ -102,8 +103,12 @@ Returns information about the player with the `username` passed. !!! success "Added more properties in version 0.7.4r" +!!! note "Fields `name` and `uuid` only exist in 1.21.1 version" + | table | Description | |----------------------------|--------------------------------------------| +| uuid: `string` | The player's UUID | +| name: `string` | The player's name | | dimension: `string` | The dimension the player is in | | eyeHeight: `number` | The height of the player's eyes | | pitch: `number` | The pitch of the player's head | diff --git a/docs/peripherals/redstone_integrator.md b/docs/peripherals/redstone_integrator.md index 19eded82..e56d5ca6 100644 --- a/docs/peripherals/redstone_integrator.md +++ b/docs/peripherals/redstone_integrator.md @@ -7,6 +7,10 @@ comments: true !!! picture inline end ![!Image of the Redstone Integrator block](../img/previews/redstone_integrator.png){ align=right } + +!!! warning + The redstone integrator got removed in 1.21.1-0.7.50b since it got superseded by the [redstone relay](https://tweaked.cc/peripheral/redstone_relay.html) from CC:T + The Redstone Integrator is able to interact with redstone. You can use the same code you would use for a computer on a Redstone Integrator. @@ -16,13 +20,13 @@ You may need this peripheral for cases where you need to output redstone signals --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | ------------------ | --------------- | ---------- | ------------- | | redstoneIntegrator | Redstone | No | 0.5.3b | -
+ --- diff --git a/docs/peripherals/rs_bridge.md b/docs/peripherals/rs_bridge.md index 83645f26..509e2ce7 100644 --- a/docs/peripherals/rs_bridge.md +++ b/docs/peripherals/rs_bridge.md @@ -17,339 +17,379 @@ You can retrieve items, craft items, get all items as a list and more. --- -
+
-| Peripheral Name | Interfaces with | Has events | Introduced in | -| --------------- | --------------- | ---------- | ------------- | -| rsBridge | Refined Storage | No | 0.3.6b | +| Peripheral Name | Interfaces with | Has events | Introduced in | Minecraft version | +| --------------- | --------------- | ---------- | ------------- | ----------------- | +| rsBridge | Refined Storage | No | 0.3.6b | Below 1.21.1 | +| rs_bridge | Refined Storage | No | - | 1.21.1 and above | -
+ --- !!! failure

You need to place the inventory/tank you want to use to export/import stuff next to the RS Bridge and **NOT** next to the computer!

-!!! tip - You can use the command `/advancedperipherals getHashItem` with an item in your hand to get the MD5 hash of the NBT tags of the item. An MD5 Hash can look like this `ae70053c97f877de546b0248b9ddf525`. +=== "1.20.1-0.7 and older" -## Functions + !!! info + If you are playing on 0.7 for the minecraft version 1.21.1 and newer, please use the content tab for "1.21.1-0.7 and newer". + The following documentation contains the legacy ME and RS bridge features which will be replaced with the next stable AP version. -!!! info - The item arguments(`item: table`) accepts our item filters, you can check the syntax of these filters [here](/../guides/filters). - -### craftItem -``` -craftItem(item: table) -> boolean -``` - -Tries to craft the provided `item`, returns true if it successfully starts crafting. - -#### Item Properties - -Check the [item filters guide](/../guides/filters) for more info! - -| item | Description | -| ---------------- | ------------------------------------------- | -| name: `string` | The registry name of the item or a tag | -| count: `number?` | The amount of the item to craft | -| nbt: `string?` | NBT to match the item on | - -**OR** - -| item | Description | -| --------------------- | ------------------------------------------- | -| fingerprint: `string` | A unique fingerprint which identifies the
item to craft | -| count: `number?` | The amount of the item to craft | - ---- - -### craftFluid -``` -craftFluid(fluid: table, amount: number) -> boolean -``` - -Tries to craft the provided `fluid` of the given `amount`, returns true if it successfully starts crafting. - -#### Fluid Properties - -Check the [fluid filters guide](/../guides/filters) for more info! - -| fluid | Description | -| ---------------- | ------------------------------------------- | -| name: `string` | The registry name of the fluid or a tag | -| count: `number?` | The amount of the fluid to craft | -| nbt: `string?` | NBT to match the fluid on | - -**OR** - -| fluid | Description | -| --------------------- | ------------------------------------------- | -| fingerprint: `string` | A unique fingerprint which identifies the
fluid to craft | -| count: `number?` | The amount of the fluid to craft - ---- - -### getItem -``` -getItem(item: table) -> table -``` - -Returns a table with information about the item type in the system. - -#### Properties - -| result | Description | -| ---------------------- | ------------------------------------------------------- | -| name: `string` | The registry name of the item | -| fingerprint: `string?` | A unique fingerprint which identifies the item to craft | -| amount: `number` | The amount of the item in the system | -| displayName: `string` | The display name for the item | -| isCraftable: `boolean` | Whether the item has a crafting pattern or not | -| nbt: `string?` | NBT to match the item on | -| tags: `table` | A list of all of the item tags | - ---- - -### importItem -``` -importItem(item: table, direction: string) -> number -``` - -Imports an `item` from a container in the `direction` to the RS System. -Returns the number of the `item` imported into the system. - -!!! tip "Since version 0.7r" - You can now use both relative (`right`, `left`, `front`, `back`, `top`, `bottom`) and cardinal (`north`, `south`, `east`, `west`, `up`, `down`) directions for the `direction` argument. - -```lua linenums="1" -local bridge = peripheral.find("rsBridge") - --- Imports 32 dirt from the container above into the system -bridge.importItem({name="minecraft:dirt", count=1}, "up") -``` - ---- - -### exportItem -``` -exportItem(item: table, direction: string) -> number -``` - -Exports an `item` to a container in the `direction` from the RS bridge block. -Returns the number of the `item` exported into the container. - -```lua linenums="1" -local bridge = peripheral.find("rsBridge") - --- Exports 1 "Protection I" book into the container above -bridge.exportItem({name="minecraft:enchanted_book", count=1, nbt="ae70053c97f877de546b0248b9ddf525"}, "up") -``` - ---- - -### importItemFromPeripheral -``` -importItemFromPeripheral(item: table, container: string) -> number -``` - -Similar to [`importItem()`](#importitem) it imports an `item` from a container which is connected to the peripheral network. -`container` should be the exact name of the container peripheral on the network. -Returns the number of the `item` imported from the container. - ---- - -### exportItemToPeripheral -``` -exportItemToPeripheral(item: table, container: string) -> number -``` - -Similar to [`exportItem()`](#exportitem) it exports an `item` to a container which is connected to the peripheral network. -`container` should be the exact name of the container peripheral on the network. -Returns the number of the `item` exported into the container. - ---- - -### getMaxItemDiskStorage -``` -getMaxItemDiskStorage() -> number -``` - -!!! success "Added in version 0.7.3r" - -Returns the total amount of available item disk storage. - ---- - -### getMaxFluidDiskStorage -``` -getMaxItemDiskStorage() -> number -``` - -!!! success "Added in version 0.7.3r" - -Returns the total amount of available fluid disk storage. - ---- - -### getMaxItemExternalStorage -``` -getMaxItemExternalStorage() -> number -``` - -!!! success "Added in version 0.7.3r" - -Returns the total amount of available external item disk storage. - ---- - -### getMaxFluidExternalStorage -``` -getMaxFluidExternalStorage() -> number -``` - -!!! success "Added in version 0.7.3r" - -Returns the total amount of available external fluid disk storage. - ---- - -### getEnergyStorage -``` -getEnergyStorage() -> number -``` - -Returns the stored energy of the whole RS System in FE. - ---- - -### getMaxEnergyStorage -``` -getMaxEnergyStorage() -> number -``` - -Returns the maximum energy storage capacity of the whole RS system in FE. - ---- - -### getEnergyUsage -``` -getEnergyUsage() -> number -``` - -Returns the energy usage of the whole RS System in FE/t. + The newer ME and RS Bridge system will eventually be back ported to 1.20.1 and 1.19.2 with 0.8. ---- - -### getPattern -``` -getPattern(item: table) -> table | nil, string -``` - -!!! success "Added in version 0.7.3r" - -Returns the crafting pattern for the `item` if one exists. +
-#### Properties - -| pattern | Description | -| --------------------- | ------------------------------------------------------- | -| inputs: `table` | A list of all the input items | -| outputs: `table` | A list of all of the output items | -| byproducts: `table` | A list of any byproduct items | -| processing: `boolean` | If the pattern is currently being used in crafting | - ---- - -### isItemCrafting -``` -isItemCrafting(item: table) -> boolean -``` - -Returns true if a crafting job for the `item` exists. - ---- - -### isItemCraftable -``` -isItemCraftable(item: table) -> boolean -``` - -!!! success "Added in version 0.7.3r" - -Returns true if the `item` is craftable. - ---- - -### listCraftableItems -``` -listCraftableItems() -> table -``` - -!!! danger "Does not exist in versions >=0.7.3r, <0.7.10b" - -Returns a list of information about all craftable items - -#### Properties - -| item / fluid | Description | -| ---------------------- | ------------------------------------------------------- | -| name: `string` | The registry name of the item | -| fingerprint: `string?` | A unique fingerprint which identifies the item to craft | -| amount: `number` | The amount of the item in the system | -| displayName: `string` | The display name for the item | -| isCraftable: `boolean` | Whether the item has a crafting pattern or not | -| nbt: `string?` | NBT to match the item on | -| tags: `table` | A list of all of the item tags | - -```lua linenums="1" -local bridge = peripheral.find("rsBridge") - --- print out all craftable items -craftableItems = bridge.listCraftableItems() -for _, item in pairs(craftableItems) do - print(item.name) -end -``` - ---- - -### listCraftableFluids -``` -listCraftableFluids() -> table -``` - -!!! danger "Does not exist in versions >=0.7.3r, <0.7.10b" - -Returns a list of information about all craftable fluids + ## Functions + + !!! info + The item arguments(`item: table`) accepts our item filters, you can check the syntax of these filters [here](/../guides/filters). + + ### craftItem + ``` + craftItem(item: table) -> boolean + ``` + + Tries to craft the provided `item`, returns true if it successfully starts crafting. + + #### Item Properties + + Check the [item filters guide](/../guides/filters) for more info! + + | item | Description | + | ---------------- | ------------------------------------------- | + | name: `string` | The registry name of the item or a tag | + | count: `number?` | The amount of the item to craft | + | nbt: `string?` | NBT to match the item on | + + **OR** + + | item | Description | + | --------------------- | ------------------------------------------- | + | fingerprint: `string` | A unique fingerprint which identifies the
item to craft | + | count: `number?` | The amount of the item to craft | + + --- + + ### craftFluid + ``` + craftFluid(fluid: table, amount: number) -> boolean + ``` + + Tries to craft the provided `fluid` of the given `amount`, returns true if it successfully starts crafting. + + #### Fluid Properties + + Check the [fluid filters guide](/../guides/filters) for more info! + + | fluid | Description | + | ---------------- | ------------------------------------------- | + | name: `string` | The registry name of the fluid or a tag | + | count: `number?` | The amount of the fluid to craft | + | nbt: `string?` | NBT to match the fluid on | + + **OR** + + | fluid | Description | + | --------------------- | ------------------------------------------- | + | fingerprint: `string` | A unique fingerprint which identifies the
fluid to craft | + | count: `number?` | The amount of the fluid to craft + + --- + + ### getItem + ``` + getItem(item: table) -> table + ``` + + Returns a table with information about the item type in the system. + + #### Properties + + | result | Description | + | ---------------------- | ------------------------------------------------------- | + | name: `string` | The registry name of the item | + | fingerprint: `string?` | A unique fingerprint which identifies the item to craft | + | amount: `number` | The amount of the item in the system | + | displayName: `string` | The display name for the item | + | isCraftable: `boolean` | Whether the item has a crafting pattern or not | + | nbt: `string?` | NBT to match the item on | + | tags: `table` | A list of all of the item tags | + + --- + + ### importItem + ``` + importItem(item: table, direction: string) -> number + ``` + + Imports an `item` from a container in the `direction` to the RS System. + Returns the number of the `item` imported into the system. + + !!! tip "Since version 0.7r" + You can now use both relative (`right`, `left`, `front`, `back`, `top`, `bottom`) and cardinal (`north`, `south`, `east`, `west`, `up`, `down`) directions for the `direction` argument. + + ```lua linenums="1" + local bridge = peripheral.find("rsBridge") + + -- Imports 32 dirt from the container above into the system + bridge.importItem({name="minecraft:dirt", count=1}, "up") + ``` + + --- + + ### exportItem + ``` + exportItem(item: table, direction: string) -> number + ``` + + Exports an `item` to a container in the `direction` from the RS bridge block. + Returns the number of the `item` exported into the container. + + ```lua linenums="1" + local bridge = peripheral.find("rsBridge") + + -- Exports 1 "Protection I" book into the container above + bridge.exportItem({name="minecraft:enchanted_book", count=1, nbt="ae70053c97f877de546b0248b9ddf525"}, "up") + ``` + + --- + + ### importItemFromPeripheral + ``` + importItemFromPeripheral(item: table, container: string) -> number + ``` + + Similar to [`importItem()`](#importitem) it imports an `item` from a container which is connected to the peripheral network. + `container` should be the exact name of the container peripheral on the network. + Returns the number of the `item` imported from the container. + + --- + + ### exportItemToPeripheral + ``` + exportItemToPeripheral(item: table, container: string) -> number + ``` + + Similar to [`exportItem()`](#exportitem) it exports an `item` to a container which is connected to the peripheral network. + `container` should be the exact name of the container peripheral on the network. + Returns the number of the `item` exported into the container. + + --- + + ### getMaxItemDiskStorage + ``` + getMaxItemDiskStorage() -> number + ``` + + !!! success "Added in version 0.7.3r" + + Returns the total amount of available item disk storage. + + --- + + ### getMaxFluidDiskStorage + ``` + getMaxItemDiskStorage() -> number + ``` + + !!! success "Added in version 0.7.3r" + + Returns the total amount of available fluid disk storage. + + --- + + ### getMaxItemExternalStorage + ``` + getMaxItemExternalStorage() -> number + ``` + + !!! success "Added in version 0.7.3r" + + Returns the total amount of available external item disk storage. + + --- + + ### getMaxFluidExternalStorage + ``` + getMaxFluidExternalStorage() -> number + ``` + + !!! success "Added in version 0.7.3r" + + Returns the total amount of available external fluid disk storage. + + --- + + ### getEnergyStorage + ``` + getEnergyStorage() -> number + ``` + + Returns the stored energy of the whole RS System in FE. + + --- + + ### getMaxEnergyStorage + ``` + getMaxEnergyStorage() -> number + ``` + + Returns the maximum energy storage capacity of the whole RS system in FE. + + --- + + ### getEnergyUsage + ``` + getEnergyUsage() -> number + ``` + + Returns the energy usage of the whole RS System in FE/t. + + --- + + ### getPattern + ``` + getPattern(item: table) -> table | nil, string + ``` + + !!! success "Added in version 0.7.3r" + + Returns the crafting pattern for the `item` if one exists. + + #### Properties + + | pattern | Description | + | --------------------- | ------------------------------------------------------- | + | inputs: `table` | A list of all the input items | + | outputs: `table` | A list of all of the output items | + | byproducts: `table` | A list of any byproduct items | + | processing: `boolean` | If the pattern is currently being used in crafting | + + --- + + ### isItemCrafting + ``` + isItemCrafting(item: table) -> boolean + ``` + + Returns true if a crafting job for the `item` exists. + + --- + + ### isItemCraftable + ``` + isItemCraftable(item: table) -> boolean + ``` + + !!! success "Added in version 0.7.3r" + + Returns true if the `item` is craftable. + + --- + + ### listCraftableItems + ``` + listCraftableItems() -> table + ``` + + !!! danger "Does not exist in versions >=0.7.3r, <0.7.10b" + + Returns a list of information about all craftable items + + #### Properties + + | item / fluid | Description | + | ---------------------- | ------------------------------------------------------- | + | name: `string` | The registry name of the item | + | fingerprint: `string?` | A unique fingerprint which identifies the item to craft | + | amount: `number` | The amount of the item in the system | + | displayName: `string` | The display name for the item | + | isCraftable: `boolean` | Whether the item has a crafting pattern or not | + | nbt: `string?` | NBT to match the item on | + | tags: `table` | A list of all of the item tags | + + ```lua linenums="1" + local bridge = peripheral.find("rsBridge") + + -- print out all craftable items + craftableItems = bridge.listCraftableItems() + for _, item in pairs(craftableItems) do + print(item.name) + end + ``` + + --- + + ### listCraftableFluids + ``` + listCraftableFluids() -> table + ``` + + !!! danger "Does not exist in versions >=0.7.3r, <0.7.10b" + + Returns a list of information about all craftable fluids + + --- + + ### listItems + ``` + listItems() -> table + ``` + + Returns a list of information about all items in the RS System. + + --- + + ### listFluids + ``` + listFluids() -> table + ``` + + Returns a list of information about all fluids in the RS System. + + --- + +
+ +=== "1.21.1-0.7 and newer" +
+ + !!! info + If you are playing on 0.7 for the minecraft version 1.20.1 and older, please use the content tab for "1.20.1-0.7 and older". + The following documentation also works for the canary 0.8 version. + + The new ME and RS Bridge systems will eventually be back ported to 1.20.1 and 1.19.2 with 0.8. + + ## Functionality + + The RS and ME Bridge now share the same functionality. Check [this Guide](../guides/storage_system_functions.md) for the whole documentation for every available feature. + +
--- -### listItems -``` -listItems() -> table -``` - -Returns a list of information about all items in the RS System. +## Examples ---- +### Requester -### listFluids -``` -listFluids() -> table -``` +The requester is a successor for the old "Autocrafting script" script which uses the old RS Bridge functions. +It currently only works with AP on 1.21.1 or on 1.19.2 0.8 and supports both the ME and the RS Bridge at the same time. -Returns a list of information about all fluids in the RS System. +This script automatically schedules crafting jobs for pre-defined items, fluids and mekanism chemicals +Do you want 500 glass in your me system at all times? Add glass to the list and the script will craft it for you. +No need for level emitters or crafting cards! ---- +You can find instructions on how to install the script [here](https://github.com/SirEndii/Lua-Projects/tree/master) -## Examples +![Requester example script preview](../img/bridge_requester.png) ### Autocrafting script Here is a script to craft items, the computer will re-craft every item needed (a specified amount) in the RS system. Everything is adjustable. -[Click here](https://gist.github.com/Seniorendi/26bd8ecaec400146f2e38790faceead8) to view the script +[Click here](https://gist.github.com/SirEndii/26bd8ecaec400146f2e38790faceead8) to view the script !!! bug This script does not work on versions above 0.4b diff --git a/docs/turtles/metaphysics/end_automata.md b/docs/turtles/metaphysics/end_automata.md index f2a46cfe..426006de 100644 --- a/docs/turtles/metaphysics/end_automata.md +++ b/docs/turtles/metaphysics/end_automata.md @@ -15,13 +15,13 @@ End automata is a turtle with an End Mechanic Soul upgrade. This upgrade has all --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | --------------- | --------------- | ---------- | ------------- | | endAutomata | World | No | 0.7r | -
+ --- @@ -72,6 +72,15 @@ Returns true if the location is successfully saved, or nil and an error message. --- +### deletePoint +``` +deletePoint(name: string) -> true | nil, string +``` +This deletes a point with the given `name`. +Returns true if the location is successfully deleted, nor nil and an error message. + +--- + ### distanceToPoint ``` distanceToPoint(name: string) -> number | nil, string diff --git a/docs/turtles/metaphysics/husbandry_automata.md b/docs/turtles/metaphysics/husbandry_automata.md index d4b02062..82bca1b0 100644 --- a/docs/turtles/metaphysics/husbandry_automata.md +++ b/docs/turtles/metaphysics/husbandry_automata.md @@ -17,13 +17,13 @@ Husbandry automata is a turtle with a Husbandry Mechanic Soul upgrade. This upgr --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | ----------------- | --------------- | ---------- | ------------- | | husbandryAutomata | World | No | 0.7r | -
+ --- diff --git a/docs/turtles/metaphysics/weak_automata.md b/docs/turtles/metaphysics/weak_automata.md index 61c97794..999e745a 100644 --- a/docs/turtles/metaphysics/weak_automata.md +++ b/docs/turtles/metaphysics/weak_automata.md @@ -19,13 +19,13 @@ Weak automata is a turtle with a Weak Mechanic Soul upgrade. It has several diff --- -
+
| Peripheral Name | Interfaces with | Has events | Introduced in | | --------------- | --------------- | ---------- | ------------- | | weakAutomata | World | No | 0.7r | -
+ --- diff --git a/docs/turtles/pattern_turtle.md b/docs/turtles/pattern_turtle.md new file mode 100644 index 00000000..c3945134 --- /dev/null +++ b/docs/turtles/pattern_turtle.md @@ -0,0 +1,96 @@ +# Pattern Grid Turtle + +!!! picture inline end +![!Image of the Pattern Grid Turtle](../img/previews/chunky_turtle.png){ align=right } + +The Pattern Grid turtle allows you to inspect and craft Refined Storage patterns. + +

+ +--- + +## Functions + +--- + +### getDetails +``` +getDetails([, slot: number]) -> table | false, string +``` + +Gets information about a pattern in a given slot, or the currently selected slot if none is provided. + +Returns information about the pattern in the same structure as is returned by [getPatterns](/../guides/storage_system_functions#getPatterns), including the pattern's input items and outputs. + +--- + +### buildCrafting +``` +buildCrafting(recipe: table[, fuzzy: boolean]) -> table | false, string +``` + +Writes a crafting recipe to the pattern item in the selected slot. + +The input structure is a Lua array, where the keys represent slot number (1-9) in the crafting grid, and the values are item names as strings. For example, the recipe for a stone pickaxe: +``` +{ + [1] = "minecraft:cobblestone", + [2] = "minecraft:cobblestone", + [3] = "minecraft:cobblestone", + [5] = "minecraft:stick", + [8] = "minecraft:stick", +} +``` +Optionally, a boolean can be passed to enable *fuzzy mode* for the pattern. + +Returns the output of getDetails() on the newly built pattern, or *false* and the error as a string. + +--- + +### buildProcessing +``` +buildProcessing(recipe: table) -> table | false, string +``` + +Writes a processing recipe to the pattern item in the selected slot. + +The input structure is a Lua table containing two arrays, one for *inputs* and the other for *outputs*. The basic format for an input/output resource is a table with its resource *name* as a string and an integer *count*; inputs can optionally include an array of *alts*, or alternate tags to match against. Item resources are counted as individual items, while fluid resources are counted in milliBuckets. +``` +{ + inputs = { + [1] = { name = "", count = }, + [2] = { name = "", alts = { [1] = "", ... }, count = }, + ... + }, + outputs = { + [1] = { name = "", count = }, + ... + } +} +``` + +Returns the output of getDetails() on the newly built pattern, or *false* and the error as a string. + +--- + +### Errors + +| Error | Description | +|--------------------------|------------------------------------------------------------------------------------| +| `No room in destination` | The turtle is full, and cannot put the built pattern in its inventory. | +| `Bad recipe` | The pattern didn't build; usually, this means your recipe is unknown to Minecraft. | +| `No pattern available` | Your turtle doesn't have any patterns to write to. +| `Not a pattern` | You're trying to read a recipe from something that isn't a pattern. | +|`Pattern is empty`| This pattern is blank. | +|`Couldn't parse item or fluid x`| You provided a resource name that Minecraft didn't recognize. | +|`Couldn't parse item in slot n`| The given slot has an unknown resource in it. | +|`Recipe is malformed`| Your processing recipe is broken; did you structure the recipe table correctly? | +|`Pattern couldn't be built`| Refined Storage wouldn't build the pattern; something is wrong. | + + +--- + +## Changelog/Trivia + +**0.7.7r** +Added the Pattern Grid Turtle diff --git a/mike.yml b/mike.yml deleted file mode 100644 index 6be498b4..00000000 --- a/mike.yml +++ /dev/null @@ -1,3 +0,0 @@ -{ - "default": "0.7" -} \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 93270ca8..5eeac50f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -2,14 +2,17 @@ site_name: Advanced Peripherals site_url: 'https://docs.advanced-peripherals.de/' nav: - - 'Home': 'index.md' - - 'Blog': - - blog/index.md - - 'Guides': - - 'How to: report a bug or request a feature': 'guides/how_to_report.md' + - 'Home': 'index.md' + - 'Blog': + - blog/index.md + - 'Guides': + - 'Disabled Peripherals': 'guides/disabled_peripherals.md' + - 'Lua Objects': 'guides/objects.md' - 'Item and Fluid Filters': 'guides/filters.md' - 'Cooldowns and Fuel consumption': 'guides/cooldowns_and_fuel_consumption.md' - - 'Peripherals': + - 'Storage System Functions': 'guides/storage_system_functions.md' + - 'How to: report a bug or request a feature': 'guides/how_to_report.md' + - 'Peripherals': - 'Chat Box': 'peripherals/chat_box.md' - 'Energy Detector': 'peripherals/energy_detector.md' - 'Environment Detector': 'peripherals/environment_detector.md' @@ -23,49 +26,49 @@ nav: - 'ME Bridge': 'peripherals/me_bridge.md' - 'RS Bridge': 'peripherals/rs_bridge.md' - 'Colony Integrator': 'peripherals/colony_integrator.md' - - 'Turtles': + - 'Turtles': - 'Chatty Turtle': 'turtles/chatty_turtle.md' - 'Chunky Turtle': 'turtles/chunky_turtle.md' - 'Environment Turtle': 'turtles/environment_turtle.md' - 'Player Turtle': 'turtles/player_turtle.md' - 'Geoscanning Turtle': 'turtles/geo_scanner_turtle.md' - 'Metaphysics': - - 'Weak Automata': 'turtles/metaphysics/weak_automata.md' - - 'Husbandry Automata': 'turtles/metaphysics/husbandry_automata.md' - - 'End Automata': 'turtles/metaphysics/end_automata.md' - - 'Overpowered Automata': 'turtles/metaphysics/overpowered_automata.md' - - 'Items': + - 'Weak Automata': 'turtles/metaphysics/weak_automata.md' + - 'Husbandry Automata': 'turtles/metaphysics/husbandry_automata.md' + - 'End Automata': 'turtles/metaphysics/end_automata.md' + - 'Overpowered Automata': 'turtles/metaphysics/overpowered_automata.md' + - 'Items': - 'AR Goggles': 'items/ar_goggles.md' - 'Chunk Controller': 'items/chunk_controller.md' - 'Computer Tool': 'items/computer_tool.md' - 'Memory Card': 'items/memory_card.md' - 'Pocket Computers': 'items/pocket_computer.md' - - 'Mod Integrations': + - 'Mod Integrations': - 'integrations/index.md' - 'Minecraft': - - 'Beacon': 'integrations/minecraft/beacon.md' - - 'Note Block': 'integrations/minecraft/noteblock.md' + - 'Beacon': 'integrations/minecraft/beacon.md' + - 'Note Block': 'integrations/minecraft/noteblock.md' - 'Botania': - - 'Flowers': 'integrations/botania/flowers.md' - - 'Mana Pool': 'integrations/botania/pool.md' - - 'Mana Spreader': 'integrations/botania/spreader.md' + - 'Flowers': 'integrations/botania/flowers.md' + - 'Mana Pool': 'integrations/botania/pool.md' + - 'Mana Spreader': 'integrations/botania/spreader.md' - 'Create': - - 'Basin': 'integrations/create/basin.md' - - 'Blaze Burner': 'integrations/create/blazeburner.md' - - 'Fluid Tank': 'integrations/create/fluidtank.md' - - 'Mechanical Mixer': 'integrations/create/mechanicalmixer.md' - - 'Blocks with Scroll Behaviour': 'integrations/create/scrollbehaviour.md' + - 'Basin': 'integrations/create/basin.md' + - 'Blaze Burner': 'integrations/create/blazeburner.md' + - 'Fluid Tank': 'integrations/create/fluidtank.md' + - 'Mechanical Mixer': 'integrations/create/mechanicalmixer.md' + - 'Blocks with Scroll Behaviour': 'integrations/create/scrollbehaviour.md' - 'Draconic Evolution': - - 'integrations/draconic_evolution/index.md' + - 'integrations/draconic_evolution/index.md' # - 'Energy Core': 'integrations/draconic_evolution/energy_core.md' # - 'Reactor': 'integrations/draconic_evolution/reactor.md' - 'Immersive Engineering': - - 'Redstone Wire Connector': 'integrations/immersive_engineering/connector.md' - - 'Redstone Probe': 'integrations/immersive_engineering/probe.md' + - 'Redstone Wire Connector': 'integrations/immersive_engineering/connector.md' + - 'Redstone Probe': 'integrations/immersive_engineering/probe.md' - 'Integrated Dynamics': - - 'Variable Store': 'integrations/integrated_dynamics/variable_store.md' + - 'Variable Store': 'integrations/integrated_dynamics/variable_store.md' - 'Mekanism': - - 'integrations/mekanism/index.md' + - 'integrations/mekanism/index.md' # - 'Boiler Valve': '' # - 'Induction Valve': '' # - 'Chemical Tank': '' @@ -80,15 +83,15 @@ nav: # - 'Waste Barrel': '' # - 'Energy Blocks': '' - 'Powah': - - 'Energy cell': 'integrations/powah/energy_cell.md' - - 'Furnator': 'integrations/powah/furnator.md' - - 'Magmator': 'integrations/powah/magmator.md' - - 'Reactor': 'integrations/powah/reactor.md' - - 'Solar panel': 'integrations/powah/solar_panel.md' - - 'Thermo generator': 'integrations/powah/thermo_generator.md' + - 'Energy cell': 'integrations/powah/energy_cell.md' + - 'Furnator': 'integrations/powah/furnator.md' + - 'Magmator': 'integrations/powah/magmator.md' + - 'Reactor': 'integrations/powah/reactor.md' + - 'Solar panel': 'integrations/powah/solar_panel.md' + - 'Thermo generator': 'integrations/powah/thermo_generator.md' - 'Storage Drawers': - - 'Drawer': 'integrations/storage_drawers/drawer.md' - - 'Changelogs': + - 'Drawer': 'integrations/storage_drawers/drawer.md' + - 'Changelogs': - 'Changelog 0.7.24r': 'changelogs/0.7.24r.md' - 'Changelog 0.7r': 'changelogs/0.7r.md' @@ -96,23 +99,24 @@ watch: - overrides theme: - name: material - custom_dir: overrides - features: - - navigation.top - # - navigation.instant # Breaks 'lightgallery' extension - - navigation.indexes - - navigation.tabs - - navigation.footer - # - navigation.sections # Makes navigation too long - - content.code.annotate - - content.code.copy - - content.action.edit - - content.action.view - icon: - edit: material/file-edit-outline - view: material/file-eye-outline - palette: + name: material + custom_dir: overrides + features: + - navigation.top + # - navigation.instant # Breaks 'lightgallery' extension + - navigation.indexes + - navigation.tabs + - navigation.footer + # - navigation.sections # Makes navigation too long + - content.code.annotate + - content.code.copy + - content.action.edit + - content.action.view + - content.tabs.link + icon: + edit: material/file-edit-outline + view: material/file-eye-outline + palette: - scheme: slate primary: blue toggle: @@ -136,12 +140,13 @@ plugins: enable_creation_date: true type: date fallback_to_build_date: true - enabled: !ENV [CI, false] + enabled: !ENV [MKDOCS_PLUGINS, false] - git-committers: - repository: IntelligenceModding/Advanced-Peripherals-Documentation - branch: "0.7" - token: !ENV GITHUB_TOKEN - enabled: !ENV [CI, false] + repository: IntelligenceModding/Advanced-Peripherals-Documentation + # we use a fixed string as a placeholder instead of an env var to prevent an "Expected type str instead of float" error + branch: "BRANCH_NAME_HERE" + token: !ENV [GITHUB_TOKEN, ''] + enabled: !ENV [MKDOCS_PLUGINS, false] extra_css: - extra.css @@ -151,7 +156,6 @@ extra_javascript: extra: version: - default: 0.7 provider: mike social: - icon: material/github @@ -163,21 +167,26 @@ extra: repo_url: https://github.com/IntelligenceModding/Advanced-Peripherals-Documentation repo_name: IntelligenceModding/Advanced-Peripherals-Documentation -edit_uri: edit/0.7/docs/ +edit_uri: "edit/BRANCH_NAME_HERE/docs/" markdown_extensions: - - mdx_math - - def_list - - attr_list - - md_in_html - - pymdownx.tasklist: - custom_checkbox: true - - codehilite: - guess_lang: false - - toc: - permalink: true - - admonition - - pymdownx.superfences - - pymdownx.emoji: - emoji_index: !!python/name:material.extensions.emoji.twemoji - emoji_generator: !!python/name:material.extensions.emoji.to_svg + - tables + - md_in_html + - mdx_math + - def_list + - attr_list + - md_in_html + - pymdownx.tasklist: + custom_checkbox: true + - codehilite: + guess_lang: false + - toc: + permalink: true + - admonition + - pymdownx.superfences + - pymdownx.tabbed: + alternate_style: true + - pymdownx.emoji: + emoji_index: !!python/name:material.extensions.emoji.twemoji + emoji_generator: !!python/name:material.extensions.emoji.to_svg + - footnotes diff --git a/netlify.toml b/netlify.toml deleted file mode 100644 index e6a8fdc4..00000000 --- a/netlify.toml +++ /dev/null @@ -1,27 +0,0 @@ -[build] - command = """ - mkdocs build - git config user.name "Version Deployment" - git config user.email "netlifybot@example.com" - git remote set-url origin https://${GITHUB_TOKEN}@github.com/SirEndii/Advanced-Peripherals-Documentation.git - git config pull.rebase true - git switch gh-pages - git pull origin gh-pages - git switch ${BRANCH} - echo "Trying to deploy $BRANCH ..." - if [ "$BRANCH" = "0.8" ]; then - echo "Deploying $BRANCH" - mike deploy --push --update-aliases --ignore-remote-status --allow-empty 0.8 canary - elif [ "$BRANCH" = "0.7" ]; then - echo "Deploying $BRANCH" - mike deploy --push --update-aliases --ignore-remote-status --allow-empty 0.7 latest - else - echo "Deploying $BRANCH" - mike deploy --push --ignore-remote-status --allow-empty "$BRANCH" - fi - """ - publish = "site" # The directory where your built MkDocs site resides - -[context.deploy-preview] - command = "mkdocs build" #build the preview, but don't deploy with mike. - publish = "site" \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index 87335217..51ca8e4a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,15 +1,15 @@ -# This file is automatically @generated by Poetry 2.1.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.3.4 and should not be changed by hand. [[package]] name = "babel" -version = "2.17.0" +version = "2.18.0" description = "Internationalization utilities" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"}, - {file = "babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d"}, + {file = "babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35"}, + {file = "babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d"}, ] [package.extras] @@ -17,18 +17,18 @@ dev = ["backports.zoneinfo ; python_version < \"3.9\"", "freezegun (>=1.0,<2.0)" [[package]] name = "backrefs" -version = "5.8" +version = "7.0" description = "A wrapper around re and regex that adds additional back references." optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "backrefs-5.8-py310-none-any.whl", hash = "sha256:c67f6638a34a5b8730812f5101376f9d41dc38c43f1fdc35cb54700f6ed4465d"}, - {file = "backrefs-5.8-py311-none-any.whl", hash = "sha256:2e1c15e4af0e12e45c8701bd5da0902d326b2e200cafcd25e49d9f06d44bb61b"}, - {file = "backrefs-5.8-py312-none-any.whl", hash = "sha256:bbef7169a33811080d67cdf1538c8289f76f0942ff971222a16034da88a73486"}, - {file = "backrefs-5.8-py313-none-any.whl", hash = "sha256:e3a63b073867dbefd0536425f43db618578528e3896fb77be7141328642a1585"}, - {file = "backrefs-5.8-py39-none-any.whl", hash = "sha256:a66851e4533fb5b371aa0628e1fee1af05135616b86140c9d787a2ffdf4b8fdc"}, - {file = "backrefs-5.8.tar.gz", hash = "sha256:2cab642a205ce966af3dd4b38ee36009b31fa9502a35fd61d59ccc116e40a6bd"}, + {file = "backrefs-7.0-py310-none-any.whl", hash = "sha256:b57cd227ea556b0aed3dc9b8da4628db4eabc0402c6d7fcfc69283a93955f7e9"}, + {file = "backrefs-7.0-py311-none-any.whl", hash = "sha256:a0fa7360c63509e9e077e174ef4e6d3c21c8db94189b9d957289ae6d794b9475"}, + {file = "backrefs-7.0-py312-none-any.whl", hash = "sha256:ca42ce6a49ace3d75684dfa9937f3373902a63284ecb385ce36d15e5dcb41c12"}, + {file = "backrefs-7.0-py313-none-any.whl", hash = "sha256:f2c52955d631b9e1ac4cd56209f0a3a946d592b98e7790e77699339ae01c102a"}, + {file = "backrefs-7.0-py314-none-any.whl", hash = "sha256:a6448b28180e3ca01134c9cf09dcebafad8531072e09903c5451748a05f24bc9"}, + {file = "backrefs-7.0.tar.gz", hash = "sha256:4989bb9e1e99eb23647c7160ed51fb21d0b41b5d200f2d3017da41e023097e82"}, ] [package.extras] @@ -36,128 +36,165 @@ extras = ["regex"] [[package]] name = "certifi" -version = "2025.1.31" +version = "2026.4.22" description = "Python package for providing Mozilla's CA Bundle." optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" groups = ["main"] files = [ - {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, - {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, + {file = "certifi-2026.4.22-py3-none-any.whl", hash = "sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a"}, + {file = "certifi-2026.4.22.tar.gz", hash = "sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580"}, ] [[package]] name = "charset-normalizer" -version = "3.4.1" +version = "3.4.7" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7" groups = ["main"] files = [ - {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, - {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, - {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, + {file = "charset_normalizer-3.4.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cdd68a1fb318e290a2077696b7eb7a21a49163c455979c639bf5a5dcdc46617d"}, + {file = "charset_normalizer-3.4.7-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e17b8d5d6a8c47c85e68ca8379def1303fd360c3e22093a807cd34a71cd082b8"}, + {file = "charset_normalizer-3.4.7-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:511ef87c8aec0783e08ac18565a16d435372bc1ac25a91e6ac7f5ef2b0bff790"}, + {file = "charset_normalizer-3.4.7-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:007d05ec7321d12a40227aae9e2bc6dca73f3cb21058999a1df9e193555a9dcc"}, + {file = "charset_normalizer-3.4.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cf29836da5119f3c8a8a70667b0ef5fdca3bb12f80fd06487cfa575b3909b393"}, + {file = "charset_normalizer-3.4.7-cp310-cp310-manylinux_2_31_armv7l.whl", hash = "sha256:12d8baf840cc7889b37c7c770f478adea7adce3dcb3944d02ec87508e2dcf153"}, + {file = "charset_normalizer-3.4.7-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d560742f3c0d62afaccf9f41fe485ed69bd7661a241f86a3ef0f0fb8b1a397af"}, + {file = "charset_normalizer-3.4.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b14b2d9dac08e28bb8046a1a0434b1750eb221c8f5b87a68f4fa11a6f97b5e34"}, + {file = "charset_normalizer-3.4.7-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:bc17a677b21b3502a21f66a8cc64f5bfad4df8a0b8434d661666f8ce90ac3af1"}, + {file = "charset_normalizer-3.4.7-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:750e02e074872a3fad7f233b47734166440af3cdea0add3e95163110816d6752"}, + {file = "charset_normalizer-3.4.7-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:4e5163c14bffd570ef2affbfdd77bba66383890797df43dc8b4cc7d6f500bf53"}, + {file = "charset_normalizer-3.4.7-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6ed74185b2db44f41ef35fd1617c5888e59792da9bbc9190d6c7300617182616"}, + {file = "charset_normalizer-3.4.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:94e1885b270625a9a828c9793b4d52a64445299baa1fea5a173bf1d3dd9a1a5a"}, + {file = "charset_normalizer-3.4.7-cp310-cp310-win32.whl", hash = "sha256:6785f414ae0f3c733c437e0f3929197934f526d19dfaa75e18fdb4f94c6fb374"}, + {file = "charset_normalizer-3.4.7-cp310-cp310-win_amd64.whl", hash = "sha256:6696b7688f54f5af4462118f0bfa7c1621eeb87154f77fa04b9295ce7a8f2943"}, + {file = "charset_normalizer-3.4.7-cp310-cp310-win_arm64.whl", hash = "sha256:66671f93accb62ed07da56613636f3641f1a12c13046ce91ffc923721f23c008"}, + {file = "charset_normalizer-3.4.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7641bb8895e77f921102f72833904dcd9901df5d6d72a2ab8f31d04b7e51e4e7"}, + {file = "charset_normalizer-3.4.7-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:202389074300232baeb53ae2569a60901f7efadd4245cf3a3bf0617d60b439d7"}, + {file = "charset_normalizer-3.4.7-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:30b8d1d8c52a48c2c5690e152c169b673487a2a58de1ec7393196753063fcd5e"}, + {file = "charset_normalizer-3.4.7-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:532bc9bf33a68613fd7d65e4b1c71a6a38d7d42604ecf239c77392e9b4e8998c"}, + {file = "charset_normalizer-3.4.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2fe249cb4651fd12605b7288b24751d8bfd46d35f12a20b1ba33dea122e690df"}, + {file = "charset_normalizer-3.4.7-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:65bcd23054beab4d166035cabbc868a09c1a49d1efe458fe8e4361215df40265"}, + {file = "charset_normalizer-3.4.7-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:08e721811161356f97b4059a9ba7bafb23ea5ee2255402c42881c214e173c6b4"}, + {file = "charset_normalizer-3.4.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e060d01aec0a910bdccb8be71faf34e7799ce36950f8294c8bf612cba65a2c9e"}, + {file = "charset_normalizer-3.4.7-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:38c0109396c4cfc574d502df99742a45c72c08eff0a36158b6f04000043dbf38"}, + {file = "charset_normalizer-3.4.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:1c2a768fdd44ee4a9339a9b0b130049139b8ce3c01d2ce09f67f5a68048d477c"}, + {file = "charset_normalizer-3.4.7-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:1a87ca9d5df6fe460483d9a5bbf2b18f620cbed41b432e2bddb686228282d10b"}, + {file = "charset_normalizer-3.4.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:d635aab80466bc95771bb78d5370e74d36d1fe31467b6b29b8b57b2a3cd7d22c"}, + {file = "charset_normalizer-3.4.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ae196f021b5e7c78e918242d217db021ed2a6ace2bc6ae94c0fc596221c7f58d"}, + {file = "charset_normalizer-3.4.7-cp311-cp311-win32.whl", hash = "sha256:adb2597b428735679446b46c8badf467b4ca5f5056aae4d51a19f9570301b1ad"}, + {file = "charset_normalizer-3.4.7-cp311-cp311-win_amd64.whl", hash = "sha256:8e385e4267ab76874ae30db04c627faaaf0b509e1ccc11a95b3fc3e83f855c00"}, + {file = "charset_normalizer-3.4.7-cp311-cp311-win_arm64.whl", hash = "sha256:d4a48e5b3c2a489fae013b7589308a40146ee081f6f509e047e0e096084ceca1"}, + {file = "charset_normalizer-3.4.7-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:eca9705049ad3c7345d574e3510665cb2cf844c2f2dcfe675332677f081cbd46"}, + {file = "charset_normalizer-3.4.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6178f72c5508bfc5fd446a5905e698c6212932f25bcdd4b47a757a50605a90e2"}, + {file = "charset_normalizer-3.4.7-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e1421b502d83040e6d7fb2fb18dff63957f720da3d77b2fbd3187ceb63755d7b"}, + {file = "charset_normalizer-3.4.7-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:edac0f1ab77644605be2cbba52e6b7f630731fc42b34cb0f634be1a6eface56a"}, + {file = "charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5649fd1c7bade02f320a462fdefd0b4bd3ce036065836d4f42e0de958038e116"}, + {file = "charset_normalizer-3.4.7-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:203104ed3e428044fd943bc4bf45fa73c0730391f9621e37fe39ecf477b128cb"}, + {file = "charset_normalizer-3.4.7-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:298930cec56029e05497a76988377cbd7457ba864beeea92ad7e844fe74cd1f1"}, + {file = "charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:708838739abf24b2ceb208d0e22403dd018faeef86ddac04319a62ae884c4f15"}, + {file = "charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:0f7eb884681e3938906ed0434f20c63046eacd0111c4ba96f27b76084cd679f5"}, + {file = "charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4dc1e73c36828f982bfe79fadf5919923f8a6f4df2860804db9a98c48824ce8d"}, + {file = "charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:aed52fea0513bac0ccde438c188c8a471c4e0f457c2dd20cdbf6ea7a450046c7"}, + {file = "charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464"}, + {file = "charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb6d88045545b26da47aa879dd4a89a71d1dce0f0e549b1abcb31dfe4a8eac49"}, + {file = "charset_normalizer-3.4.7-cp312-cp312-win32.whl", hash = "sha256:2257141f39fe65a3fdf38aeccae4b953e5f3b3324f4ff0daf9f15b8518666a2c"}, + {file = "charset_normalizer-3.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:5ed6ab538499c8644b8a3e18debabcd7ce684f3fa91cf867521a7a0279cab2d6"}, + {file = "charset_normalizer-3.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:56be790f86bfb2c98fb742ce566dfb4816e5a83384616ab59c49e0604d49c51d"}, + {file = "charset_normalizer-3.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f496c9c3cc02230093d8330875c4c3cdfc3b73612a5fd921c65d39cbcef08063"}, + {file = "charset_normalizer-3.4.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ea948db76d31190bf08bd371623927ee1339d5f2a0b4b1b4a4439a65298703c"}, + {file = "charset_normalizer-3.4.7-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a277ab8928b9f299723bc1a2dabb1265911b1a76341f90a510368ca44ad9ab66"}, + {file = "charset_normalizer-3.4.7-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3bec022aec2c514d9cf199522a802bd007cd588ab17ab2525f20f9c34d067c18"}, + {file = "charset_normalizer-3.4.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e044c39e41b92c845bc815e5ae4230804e8e7bc29e399b0437d64222d92809dd"}, + {file = "charset_normalizer-3.4.7-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:f495a1652cf3fbab2eb0639776dad966c2fb874d79d87ca07f9d5f059b8bd215"}, + {file = "charset_normalizer-3.4.7-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e712b419df8ba5e42b226c510472b37bd57b38e897d3eca5e8cfd410a29fa859"}, + {file = "charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7804338df6fcc08105c7745f1502ba68d900f45fd770d5bdd5288ddccb8a42d8"}, + {file = "charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:481551899c856c704d58119b5025793fa6730adda3571971af568f66d2424bb5"}, + {file = "charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f59099f9b66f0d7145115e6f80dd8b1d847176df89b234a5a6b3f00437aa0832"}, + {file = "charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:f59ad4c0e8f6bba240a9bb85504faa1ab438237199d4cce5f622761507b8f6a6"}, + {file = "charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:3dedcc22d73ec993f42055eff4fcfed9318d1eeb9a6606c55892a26964964e48"}, + {file = "charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:64f02c6841d7d83f832cd97ccf8eb8a906d06eb95d5276069175c696b024b60a"}, + {file = "charset_normalizer-3.4.7-cp313-cp313-win32.whl", hash = "sha256:4042d5c8f957e15221d423ba781e85d553722fc4113f523f2feb7b188cc34c5e"}, + {file = "charset_normalizer-3.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:3946fa46a0cf3e4c8cb1cc52f56bb536310d34f25f01ca9b6c16afa767dab110"}, + {file = "charset_normalizer-3.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:80d04837f55fc81da168b98de4f4b797ef007fc8a79ab71c6ec9bc4dd662b15b"}, + {file = "charset_normalizer-3.4.7-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c36c333c39be2dbca264d7803333c896ab8fa7d4d6f0ab7edb7dfd7aea6e98c0"}, + {file = "charset_normalizer-3.4.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c2aed2e5e41f24ea8ef1590b8e848a79b56f3a5564a65ceec43c9d692dc7d8a"}, + {file = "charset_normalizer-3.4.7-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:54523e136b8948060c0fa0bc7b1b50c32c186f2fceee897a495406bb6e311d2b"}, + {file = "charset_normalizer-3.4.7-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:715479b9a2802ecac752a3b0efa2b0b60285cf962ee38414211abdfccc233b41"}, + {file = "charset_normalizer-3.4.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bd6c2a1c7573c64738d716488d2cdd3c00e340e4835707d8fdb8dc1a66ef164e"}, + {file = "charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:c45e9440fb78f8ddabcf714b68f936737a121355bf59f3907f4e17721b9d1aae"}, + {file = "charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3534e7dcbdcf757da6b85a0bbf5b6868786d5982dd959b065e65481644817a18"}, + {file = "charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e8ac484bf18ce6975760921bb6148041faa8fef0547200386ea0b52b5d27bf7b"}, + {file = "charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a5fe03b42827c13cdccd08e6c0247b6a6d4b5e3cdc53fd1749f5896adcdc2356"}, + {file = "charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:2d6eb928e13016cea4f1f21d1e10c1cebd5a421bc57ddf5b1142ae3f86824fab"}, + {file = "charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e74327fb75de8986940def6e8dee4f127cc9752bee7355bb323cc5b2659b6d46"}, + {file = "charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d6038d37043bced98a66e68d3aa2b6a35505dc01328cd65217cefe82f25def44"}, + {file = "charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7579e913a5339fb8fa133f6bbcfd8e6749696206cf05acdbdca71a1b436d8e72"}, + {file = "charset_normalizer-3.4.7-cp314-cp314-win32.whl", hash = "sha256:5b77459df20e08151cd6f8b9ef8ef1f961ef73d85c21a555c7eed5b79410ec10"}, + {file = "charset_normalizer-3.4.7-cp314-cp314-win_amd64.whl", hash = "sha256:92a0a01ead5e668468e952e4238cccd7c537364eb7d851ab144ab6627dbbe12f"}, + {file = "charset_normalizer-3.4.7-cp314-cp314-win_arm64.whl", hash = "sha256:67f6279d125ca0046a7fd386d01b311c6363844deac3e5b069b514ba3e63c246"}, + {file = "charset_normalizer-3.4.7-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:effc3f449787117233702311a1b7d8f59cba9ced946ba727bdc329ec69028e24"}, + {file = "charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79"}, + {file = "charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:733784b6d6def852c814bce5f318d25da2ee65dd4839a0718641c696e09a2960"}, + {file = "charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a89c23ef8d2c6b27fd200a42aa4ac72786e7c60d40efdc76e6011260b6e949c4"}, + {file = "charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6c114670c45346afedc0d947faf3c7f701051d2518b943679c8ff88befe14f8e"}, + {file = "charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:a180c5e59792af262bf263b21a3c49353f25945d8d9f70628e73de370d55e1e1"}, + {file = "charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3c9a494bc5ec77d43cea229c4f6db1e4d8fe7e1bbffa8b6f0f0032430ff8ab44"}, + {file = "charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8d828b6667a32a728a1ad1d93957cdf37489c57b97ae6c4de2860fa749b8fc1e"}, + {file = "charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:cf1493cd8607bec4d8a7b9b004e699fcf8f9103a9284cc94962cb73d20f9d4a3"}, + {file = "charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0c96c3b819b5c3e9e165495db84d41914d6894d55181d2d108cc1a69bfc9cce0"}, + {file = "charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:752a45dc4a6934060b3b0dab47e04edc3326575f82be64bc4fc293914566503e"}, + {file = "charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:8778f0c7a52e56f75d12dae53ae320fae900a8b9b4164b981b9c5ce059cd1fcb"}, + {file = "charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ce3412fbe1e31eb81ea42f4169ed94861c56e643189e1e75f0041f3fe7020abe"}, + {file = "charset_normalizer-3.4.7-cp314-cp314t-win32.whl", hash = "sha256:c03a41a8784091e67a39648f70c5f97b5b6a37f216896d44d2cdcb82615339a0"}, + {file = "charset_normalizer-3.4.7-cp314-cp314t-win_amd64.whl", hash = "sha256:03853ed82eeebbce3c2abfdbc98c96dc205f32a79627688ac9a27370ea61a49c"}, + {file = "charset_normalizer-3.4.7-cp314-cp314t-win_arm64.whl", hash = "sha256:c35abb8bfff0185efac5878da64c45dafd2b37fb0383add1be155a763c1f083d"}, + {file = "charset_normalizer-3.4.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e5f4d355f0a2b1a31bc3edec6795b46324349c9cb25eed068049e4f472fb4259"}, + {file = "charset_normalizer-3.4.7-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:16d971e29578a5e97d7117866d15889a4a07befe0e87e703ed63cd90cb348c01"}, + {file = "charset_normalizer-3.4.7-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:dca4bbc466a95ba9c0234ef56d7dd9509f63da22274589ebd4ed7f1f4d4c54e3"}, + {file = "charset_normalizer-3.4.7-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e80c8378d8f3d83cd3164da1ad2df9e37a666cdde7b1cb2298ed0b558064be30"}, + {file = "charset_normalizer-3.4.7-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:36836d6ff945a00b88ba1e4572d721e60b5b8c98c155d465f56ad19d68f23734"}, + {file = "charset_normalizer-3.4.7-cp38-cp38-manylinux_2_31_armv7l.whl", hash = "sha256:bd9b23791fe793e4968dba0c447e12f78e425c59fc0e3b97f6450f4781f3ee60"}, + {file = "charset_normalizer-3.4.7-cp38-cp38-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:aef65cd602a6d0e0ff6f9930fcb1c8fec60dd2cfcb6facaf4bdb0e5873042db0"}, + {file = "charset_normalizer-3.4.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:82b271f5137d07749f7bf32f70b17ab6eaabedd297e75dce75081a24f76eb545"}, + {file = "charset_normalizer-3.4.7-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:1efde3cae86c8c273f1eb3b287be7d8499420cf2fe7585c41d370d3e790054a5"}, + {file = "charset_normalizer-3.4.7-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:c593052c465475e64bbfe5dbd81680f64a67fdc752c56d7a0ae205dc8aeefe0f"}, + {file = "charset_normalizer-3.4.7-cp38-cp38-musllinux_1_2_riscv64.whl", hash = "sha256:af21eb4409a119e365397b2adbaca4c9ccab56543a65d5dbd9f920d6ac29f686"}, + {file = "charset_normalizer-3.4.7-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:84c018e49c3bf790f9c2771c45e9313a08c2c2a6342b162cd650258b57817706"}, + {file = "charset_normalizer-3.4.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:dd915403e231e6b1809fe9b6d9fc55cf8fb5e02765ac625d9cd623342a7905d7"}, + {file = "charset_normalizer-3.4.7-cp38-cp38-win32.whl", hash = "sha256:320ade88cfb846b8cd6b4ddf5ee9e80ee0c1f52401f2456b84ae1ae6a1a5f207"}, + {file = "charset_normalizer-3.4.7-cp38-cp38-win_amd64.whl", hash = "sha256:1dc8b0ea451d6e69735094606991f32867807881400f808a106ee1d963c46a83"}, + {file = "charset_normalizer-3.4.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:177a0ba5f0211d488e295aaf82707237e331c24788d8d76c96c5a41594723217"}, + {file = "charset_normalizer-3.4.7-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e0d51f618228538a3e8f46bd246f87a6cd030565e015803691603f55e12afb5"}, + {file = "charset_normalizer-3.4.7-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:14265bfe1f09498b9d8ec91e9ec9fa52775edf90fcbde092b25f4a33d444fea9"}, + {file = "charset_normalizer-3.4.7-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:87fad7d9ba98c86bcb41b2dc8dbb326619be2562af1f8ff50776a39e55721c5a"}, + {file = "charset_normalizer-3.4.7-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f22dec1690b584cea26fade98b2435c132c1b5f68e39f5a0b7627cd7ae31f1dc"}, + {file = "charset_normalizer-3.4.7-cp39-cp39-manylinux_2_31_armv7l.whl", hash = "sha256:d61f00a0869d77422d9b2aba989e2d24afa6ffd552af442e0e58de4f35ea6d00"}, + {file = "charset_normalizer-3.4.7-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6370e8686f662e6a3941ee48ed4742317cafbe5707e36406e9df792cdb535776"}, + {file = "charset_normalizer-3.4.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a6c5863edfbe888d9eff9c8b8087354e27618d9da76425c119293f11712a6319"}, + {file = "charset_normalizer-3.4.7-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:ed065083d0898c9d5b4bbec7b026fd755ff7454e6e8b73a67f8c744b13986e24"}, + {file = "charset_normalizer-3.4.7-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:2cd4a60d0e2fb04537162c62bbbb4182f53541fe0ede35cdf270a1c1e723cc42"}, + {file = "charset_normalizer-3.4.7-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:813c0e0132266c08eb87469a642cb30aaff57c5f426255419572aaeceeaa7bf4"}, + {file = "charset_normalizer-3.4.7-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:07d9e39b01743c3717745f4c530a6349eadbfa043c7577eef86c502c15df2c67"}, + {file = "charset_normalizer-3.4.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c0f081d69a6e58272819b70288d3221a6ee64b98df852631c80f293514d3b274"}, + {file = "charset_normalizer-3.4.7-cp39-cp39-win32.whl", hash = "sha256:8751d2787c9131302398b11e6c8068053dcb55d5a8964e114b6e196cf16cb366"}, + {file = "charset_normalizer-3.4.7-cp39-cp39-win_amd64.whl", hash = "sha256:12a6fff75f6bc66711b73a2f0addfc4c8c15a20e805146a02d147a318962c444"}, + {file = "charset_normalizer-3.4.7-cp39-cp39-win_arm64.whl", hash = "sha256:bb8cc7534f51d9a017b93e3e85b260924f909601c3df002bcdb58ddb4dc41a5c"}, + {file = "charset_normalizer-3.4.7-py3-none-any.whl", hash = "sha256:3dce51d0f5e7951f8bb4900c257dad282f49190fdbebecd4ba99bcc41fef404d"}, + {file = "charset_normalizer-3.4.7.tar.gz", hash = "sha256:ae89db9e5f98a11a4bf50407d4363e7b09b31e55bc117b4f7d80aab97ba009e5"}, ] [[package]] name = "click" -version = "8.1.8" +version = "8.3.3" description = "Composable command line interface toolkit" optional = false -python-versions = ">=3.7" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, - {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, + {file = "click-8.3.3-py3-none-any.whl", hash = "sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613"}, + {file = "click-8.3.3.tar.gz", hash = "sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2"}, ] [package.dependencies] @@ -210,92 +247,48 @@ smmap = ">=3.0.1,<6" [[package]] name = "gitpython" -version = "3.1.44" +version = "3.1.49" 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.44-py3-none-any.whl", hash = "sha256:9e0e10cda9bed1ee64bc9a6de50e7e38a9c9943241cd7f585f6df3ed28011110"}, - {file = "gitpython-3.1.44.tar.gz", hash = "sha256:c87e30b26253bf5418b01b0660f818967f3c503193838337fe5e573331249269"}, + {file = "gitpython-3.1.49-py3-none-any.whl", hash = "sha256:024b0422d7f84d15cd794844e029ffebd4c5d42a7eb9b936b458697ef550a02c"}, + {file = "gitpython-3.1.49.tar.gz", hash = "sha256:42f9399c9eb33fc581014bedd76049dfbaf6375aa2a5754575966387280315e1"}, ] [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\""] +doc = ["sphinx (>=7.4.7,<8)", "sphinx-autodoc-typehints", "sphinx_rtd_theme"] +test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock ; python_version < \"3.8\"", "mypy (==1.18.2) ; python_version >= \"3.9\"", "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" +version = "3.13" description = "Internationalized Domain Names in Applications (IDNA)" optional = false -python-versions = ">=3.6" -groups = ["main"] -files = [ - {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, - {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, -] - -[package.extras] -all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] - -[[package]] -name = "importlib-metadata" -version = "8.6.1" -description = "Read metadata from Python packages" -optional = false -python-versions = ">=3.9" -groups = ["main"] -files = [ - {file = "importlib_metadata-8.6.1-py3-none-any.whl", hash = "sha256:02a89390c1e15fdfdc0d7c6b25cb3e62650d0494005c97d6f148bf5b9787525e"}, - {file = "importlib_metadata-8.6.1.tar.gz", hash = "sha256:310b41d755445d74569f993ccfc22838295d9fe005425094fad953d7f15c8580"}, -] - -[package.dependencies] -zipp = ">=3.20" - -[package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] -cover = ["pytest-cov"] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -enabler = ["pytest-enabler (>=2.2)"] -perf = ["ipython"] -test = ["flufl.flake8", "importlib_resources (>=1.3) ; python_version < \"3.9\"", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] -type = ["pytest-mypy"] - -[[package]] -name = "importlib-resources" -version = "6.5.2" -description = "Read resources from Python packages" -optional = false -python-versions = ">=3.9" +python-versions = ">=3.8" groups = ["main"] files = [ - {file = "importlib_resources-6.5.2-py3-none-any.whl", hash = "sha256:789cfdc3ed28c78b67a06acb8126751ced69a3d5f79c095a98298cd8a760ccec"}, - {file = "importlib_resources-6.5.2.tar.gz", hash = "sha256:185f87adef5bcc288449d98fb4fba07cea78bc036455dd44c5fc4a2fe78fed2c"}, + {file = "idna-3.13-py3-none-any.whl", hash = "sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3"}, + {file = "idna-3.13.tar.gz", hash = "sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242"}, ] [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] -cover = ["pytest-cov"] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -enabler = ["pytest-enabler (>=2.2)"] -test = ["jaraco.test (>=5.4)", "pytest (>=6,!=8.1.*)", "zipp (>=3.17)"] -type = ["pytest-mypy"] +all = ["mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] [[package]] name = "jinja2" -version = "3.1.5" +version = "3.1.6" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" groups = ["main"] files = [ - {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, - {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, + {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, + {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, ] [package.dependencies] @@ -306,89 +299,117 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "markdown" -version = "3.7" +version = "3.10.2" description = "Python implementation of John Gruber's Markdown." optional = false -python-versions = ">=3.8" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803"}, - {file = "markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2"}, + {file = "markdown-3.10.2-py3-none-any.whl", hash = "sha256:e91464b71ae3ee7afd3017d9f358ef0baf158fd9a298db92f1d4761133824c36"}, + {file = "markdown-3.10.2.tar.gz", hash = "sha256:994d51325d25ad8aa7ce4ebaec003febcce822c3f8c911e3b17c52f7f589f950"}, ] [package.extras] -docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"] +docs = ["mdx_gh_links (>=0.2)", "mkdocs (>=1.6)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python] (>=0.28.3)"] testing = ["coverage", "pyyaml"] [[package]] name = "markupsafe" -version = "3.0.2" +version = "3.0.3" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, - {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, + {file = "markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559"}, + {file = "markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419"}, + {file = "markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695"}, + {file = "markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591"}, + {file = "markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c"}, + {file = "markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f"}, + {file = "markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6"}, + {file = "markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1"}, + {file = "markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa"}, + {file = "markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8"}, + {file = "markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1"}, + {file = "markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad"}, + {file = "markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a"}, + {file = "markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50"}, + {file = "markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf"}, + {file = "markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f"}, + {file = "markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a"}, + {file = "markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115"}, + {file = "markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a"}, + {file = "markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19"}, + {file = "markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01"}, + {file = "markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c"}, + {file = "markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e"}, + {file = "markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce"}, + {file = "markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d"}, + {file = "markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d"}, + {file = "markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a"}, + {file = "markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b"}, + {file = "markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f"}, + {file = "markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b"}, + {file = "markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d"}, + {file = "markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c"}, + {file = "markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f"}, + {file = "markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795"}, + {file = "markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219"}, + {file = "markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6"}, + {file = "markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676"}, + {file = "markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9"}, + {file = "markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1"}, + {file = "markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc"}, + {file = "markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12"}, + {file = "markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed"}, + {file = "markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5"}, + {file = "markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485"}, + {file = "markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73"}, + {file = "markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37"}, + {file = "markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19"}, + {file = "markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025"}, + {file = "markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6"}, + {file = "markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f"}, + {file = "markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb"}, + {file = "markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009"}, + {file = "markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354"}, + {file = "markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218"}, + {file = "markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287"}, + {file = "markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe"}, + {file = "markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026"}, + {file = "markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737"}, + {file = "markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97"}, + {file = "markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d"}, + {file = "markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda"}, + {file = "markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf"}, + {file = "markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe"}, + {file = "markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9"}, + {file = "markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581"}, + {file = "markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4"}, + {file = "markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab"}, + {file = "markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175"}, + {file = "markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634"}, + {file = "markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50"}, + {file = "markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e"}, + {file = "markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5"}, + {file = "markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523"}, + {file = "markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc"}, + {file = "markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d"}, + {file = "markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9"}, + {file = "markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa"}, + {file = "markupsafe-3.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15d939a21d546304880945ca1ecb8a039db6b4dc49b2c5a400387cdae6a62e26"}, + {file = "markupsafe-3.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f71a396b3bf33ecaa1626c255855702aca4d3d9fea5e051b41ac59a9c1c41edc"}, + {file = "markupsafe-3.0.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f4b68347f8c5eab4a13419215bdfd7f8c9b19f2b25520968adfad23eb0ce60c"}, + {file = "markupsafe-3.0.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8fc20152abba6b83724d7ff268c249fa196d8259ff481f3b1476383f8f24e42"}, + {file = "markupsafe-3.0.3-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:949b8d66bc381ee8b007cd945914c721d9aba8e27f71959d750a46f7c282b20b"}, + {file = "markupsafe-3.0.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:3537e01efc9d4dccdf77221fb1cb3b8e1a38d5428920e0657ce299b20324d758"}, + {file = "markupsafe-3.0.3-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:591ae9f2a647529ca990bc681daebdd52c8791ff06c2bfa05b65163e28102ef2"}, + {file = "markupsafe-3.0.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a320721ab5a1aba0a233739394eb907f8c8da5c98c9181d1161e77a0c8e36f2d"}, + {file = "markupsafe-3.0.3-cp39-cp39-win32.whl", hash = "sha256:df2449253ef108a379b8b5d6b43f4b1a8e81a061d6537becd5582fba5f9196d7"}, + {file = "markupsafe-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:7c3fb7d25180895632e5d3148dbdc29ea38ccb7fd210aa27acbd1201a1902c6e"}, + {file = "markupsafe-3.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:38664109c14ffc9e7437e86b4dceb442b0096dfe3541d7864d9cbe1da4cf36c8"}, + {file = "markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698"}, ] [[package]] @@ -405,21 +426,19 @@ files = [ [[package]] name = "mike" -version = "2.1.3" +version = "2.2.0" description = "Manage multiple versions of your MkDocs-powered documentation" optional = false python-versions = "*" groups = ["main"] files = [ - {file = "mike-2.1.3-py3-none-any.whl", hash = "sha256:d90c64077e84f06272437b464735130d380703a76a5738b152932884c60c062a"}, - {file = "mike-2.1.3.tar.gz", hash = "sha256:abd79b8ea483fb0275b7972825d3082e5ae67a41820f8d8a0dc7a3f49944e810"}, + {file = "mike-2.2.0-py3-none-any.whl", hash = "sha256:e1f4981c1152eec7c2490a3401142292cc47d686194188416db2648fdfe1d040"}, + {file = "mike-2.2.0.tar.gz", hash = "sha256:1e3858e32c0f125aac14432fc7848434358f9ae0962c5c5cde387ad47f6ad25e"}, ] [package.dependencies] -importlib-metadata = "*" -importlib-resources = "*" jinja2 = ">=2.7" -mkdocs = ">=1.0" +mkdocs = ">=1.0,<2.0" pyparsing = ">=3.0" pyyaml = ">=5.1" pyyaml-env-tag = "*" @@ -462,14 +481,14 @@ min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4) ; platform [[package]] name = "mkdocs-get-deps" -version = "0.2.0" -description = "MkDocs extension that lists all dependencies according to a mkdocs.yml file" +version = "0.2.2" +description = "An extra command for MkDocs that infers required PyPI packages from `plugins` in mkdocs.yml" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134"}, - {file = "mkdocs_get_deps-0.2.0.tar.gz", hash = "sha256:162b3d129c7fad9b19abfdcb9c1458a651628e4b1dea628ac68790fb3061c60c"}, + {file = "mkdocs_get_deps-0.2.2-py3-none-any.whl", hash = "sha256:e7878cbeac04860b8b5e0ca31d3abad3df9411a75a32cde82f8e44b6c16ff650"}, + {file = "mkdocs_get_deps-0.2.2.tar.gz", hash = "sha256:8ee8d5f316cdbbb2834bc1df6e69c08fe769a83e040060de26d3c19fad3599a1"}, ] [package.dependencies] @@ -496,26 +515,21 @@ requests = "*" [[package]] name = "mkdocs-git-revision-date-localized-plugin" -version = "1.3.0" +version = "1.5.1" description = "Mkdocs plugin that enables displaying the localized date of the last git modification of a markdown file." optional = false -python-versions = ">=3.8" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "mkdocs_git_revision_date_localized_plugin-1.3.0-py3-none-any.whl", hash = "sha256:c99377ee119372d57a9e47cff4e68f04cce634a74831c06bc89b33e456e840a1"}, - {file = "mkdocs_git_revision_date_localized_plugin-1.3.0.tar.gz", hash = "sha256:439e2f14582204050a664c258861c325064d97cdc848c541e48bb034a6c4d0cb"}, + {file = "mkdocs_git_revision_date_localized_plugin-1.5.1-py3-none-any.whl", hash = "sha256:b00fd36ed0f9b2326b1488fd8fa31bf2ce64e68c4aa60a9ce857f10719571903"}, + {file = "mkdocs_git_revision_date_localized_plugin-1.5.1.tar.gz", hash = "sha256:2b0239455cd84784dd87ac8dfc9253fe4b2dd35e102696f21b5d34e2175981c6"}, ] [package.dependencies] babel = ">=2.7.0" -GitPython = "*" +gitpython = ">=3.1.44" mkdocs = ">=1.0" -pytz = "*" - -[package.extras] -all = ["GitPython", "babel (>=2.7.0)", "click", "codecov", "mkdocs (>=1.0)", "mkdocs-gen-files", "mkdocs-git-authors-plugin", "mkdocs-material", "mkdocs-static-i18n", "pytest", "pytest-cov", "pytz"] -base = ["GitPython", "babel (>=2.7.0)", "mkdocs (>=1.0)", "pytz"] -dev = ["click", "codecov", "mkdocs-gen-files", "mkdocs-git-authors-plugin", "mkdocs-material", "mkdocs-static-i18n", "pytest", "pytest-cov"] +tzdata = {version = ">=2023.3", markers = "sys_platform == \"win32\""} [[package]] name = "mkdocs-glightbox" @@ -531,33 +545,33 @@ files = [ [[package]] name = "mkdocs-material" -version = "9.6.7" +version = "9.7.6" description = "Documentation that simply works" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "mkdocs_material-9.6.7-py3-none-any.whl", hash = "sha256:8a159e45e80fcaadd9fbeef62cbf928569b93df954d4dc5ba76d46820caf7b47"}, - {file = "mkdocs_material-9.6.7.tar.gz", hash = "sha256:3e2c1fceb9410056c2d91f334a00cdea3215c28750e00c691c1e46b2a33309b4"}, + {file = "mkdocs_material-9.7.6-py3-none-any.whl", hash = "sha256:71b84353921b8ea1ba84fe11c50912cc512da8fe0881038fcc9a0761c0e635ba"}, + {file = "mkdocs_material-9.7.6.tar.gz", hash = "sha256:00bdde50574f776d328b1862fe65daeaf581ec309bd150f7bff345a098c64a69"}, ] [package.dependencies] -babel = ">=2.10,<3.0" -backrefs = ">=5.7.post1,<6.0" -colorama = ">=0.4,<1.0" -jinja2 = ">=3.0,<4.0" -markdown = ">=3.2,<4.0" -mkdocs = ">=1.6,<2.0" -mkdocs-material-extensions = ">=1.3,<2.0" -paginate = ">=0.5,<1.0" -pygments = ">=2.16,<3.0" -pymdown-extensions = ">=10.2,<11.0" -requests = ">=2.26,<3.0" +babel = ">=2.10" +backrefs = ">=5.7.post1" +colorama = ">=0.4" +jinja2 = ">=3.1" +markdown = ">=3.2" +mkdocs = ">=1.6,<2" +mkdocs-material-extensions = ">=1.3" +paginate = ">=0.5" +pygments = ">=2.16" +pymdown-extensions = ">=10.2" +requests = ">=2.30" [package.extras] -git = ["mkdocs-git-committers-plugin-2 (>=1.1,<3)", "mkdocs-git-revision-date-localized-plugin (>=1.2.4,<2.0)"] -imaging = ["cairosvg (>=2.6,<3.0)", "pillow (>=10.2,<11.0)"] -recommended = ["mkdocs-minify-plugin (>=0.7,<1.0)", "mkdocs-redirects (>=1.2,<2.0)", "mkdocs-rss-plugin (>=1.6,<2.0)"] +git = ["mkdocs-git-committers-plugin-2 (>=1.1)", "mkdocs-git-revision-date-localized-plugin (>=1.2.4)"] +imaging = ["cairosvg (>=2.6)", "pillow (>=10.2)"] +recommended = ["mkdocs-minify-plugin (>=0.7)", "mkdocs-redirects (>=1.2)", "mkdocs-rss-plugin (>=1.6)"] [[package]] name = "mkdocs-material-extensions" @@ -573,14 +587,14 @@ files = [ [[package]] name = "packaging" -version = "24.2" +version = "26.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, - {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, + {file = "packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e"}, + {file = "packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661"}, ] [[package]] @@ -601,43 +615,43 @@ lint = ["black"] [[package]] name = "pathspec" -version = "0.12.1" +version = "1.1.1" description = "Utility library for gitignore style pattern matching of file paths." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, - {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, + {file = "pathspec-1.1.1-py3-none-any.whl", hash = "sha256:a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189"}, + {file = "pathspec-1.1.1.tar.gz", hash = "sha256:17db5ecd524104a120e173814c90367a96a98d07c45b2e10c2f3919fff91bf5a"}, ] +[package.extras] +hyperscan = ["hyperscan (>=0.7)"] +optional = ["typing-extensions (>=4)"] +re2 = ["google-re2 (>=1.1)"] + [[package]] name = "platformdirs" -version = "4.3.6" +version = "4.9.6" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false -python-versions = ">=3.8" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, - {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, + {file = "platformdirs-4.9.6-py3-none-any.whl", hash = "sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917"}, + {file = "platformdirs-4.9.6.tar.gz", hash = "sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a"}, ] -[package.extras] -docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] -type = ["mypy (>=1.11.2)"] - [[package]] name = "pygments" -version = "2.19.1" +version = "2.20.0" description = "Pygments is a syntax highlighting package written in Python." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, - {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, + {file = "pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176"}, + {file = "pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f"}, ] [package.extras] @@ -645,14 +659,14 @@ windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pymdown-extensions" -version = "10.14.3" +version = "10.21.2" description = "Extension pack for Python Markdown." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pymdown_extensions-10.14.3-py3-none-any.whl", hash = "sha256:05e0bee73d64b9c71a4ae17c72abc2f700e8bc8403755a00580b49a4e9f189e9"}, - {file = "pymdown_extensions-10.14.3.tar.gz", hash = "sha256:41e576ce3f5d650be59e900e4ceff231e0aed2a88cf30acaee41e02f063a061b"}, + {file = "pymdown_extensions-10.21.2-py3-none-any.whl", hash = "sha256:5c0fd2a2bea14eb39af8ff284f1066d898ab2187d81b889b75d46d4348c01638"}, + {file = "pymdown_extensions-10.21.2.tar.gz", hash = "sha256:c3f55a5b8a1d0edf6699e35dcbea71d978d34ff3fa79f3d807b8a5b3fa90fbdc"}, ] [package.dependencies] @@ -664,14 +678,14 @@ extra = ["pygments (>=2.19.1)"] [[package]] name = "pyparsing" -version = "3.2.1" -description = "pyparsing module - Classes and methods to define and execute parsing grammars" +version = "3.3.2" +description = "pyparsing - Classes and methods to define and execute parsing grammars" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pyparsing-3.2.1-py3-none-any.whl", hash = "sha256:506ff4f4386c4cec0590ec19e6302d3aedb992fdc02c761e90416f158dacf8e1"}, - {file = "pyparsing-3.2.1.tar.gz", hash = "sha256:61980854fd66de3a90028d679a954d5f2623e83144b5afe5ee86f43d762e5f0a"}, + {file = "pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d"}, + {file = "pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc"}, ] [package.extras] @@ -709,89 +723,109 @@ Markdown = ">=3.0" [[package]] name = "pytz" -version = "2025.1" +version = "2026.1.post1" description = "World timezone definitions, modern and historical" optional = false python-versions = "*" groups = ["main"] files = [ - {file = "pytz-2025.1-py2.py3-none-any.whl", hash = "sha256:89dd22dca55b46eac6eda23b2d72721bf1bdfef212645d81513ef5d03038de57"}, - {file = "pytz-2025.1.tar.gz", hash = "sha256:c2db42be2a2518b28e65f9207c4d05e6ff547d1efa4086469ef855e4ab70178e"}, + {file = "pytz-2026.1.post1-py2.py3-none-any.whl", hash = "sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a"}, + {file = "pytz-2026.1.post1.tar.gz", hash = "sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1"}, ] [[package]] name = "pyyaml" -version = "6.0.2" +version = "6.0.3" description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, - {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, - {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, - {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, - {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, - {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, - {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, - {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, - {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, - {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, - {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, - {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, - {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, - {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, - {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, - {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, - {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, + {file = "PyYAML-6.0.3-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:c2514fceb77bc5e7a2f7adfaa1feb2fb311607c9cb518dbc378688ec73d8292f"}, + {file = "PyYAML-6.0.3-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c57bb8c96f6d1808c030b1687b9b5fb476abaa47f0db9c0101f5e9f394e97f4"}, + {file = "PyYAML-6.0.3-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:efd7b85f94a6f21e4932043973a7ba2613b059c4a000551892ac9f1d11f5baf3"}, + {file = "PyYAML-6.0.3-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22ba7cfcad58ef3ecddc7ed1db3409af68d023b7f940da23c6c2a1890976eda6"}, + {file = "PyYAML-6.0.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6344df0d5755a2c9a276d4473ae6b90647e216ab4757f8426893b5dd2ac3f369"}, + {file = "PyYAML-6.0.3-cp38-cp38-win32.whl", hash = "sha256:3ff07ec89bae51176c0549bc4c63aa6202991da2d9a6129d7aef7f1407d3f295"}, + {file = "PyYAML-6.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:5cf4e27da7e3fbed4d6c3d8e797387aaad68102272f8f9752883bc32d61cb87b"}, + {file = "pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b"}, + {file = "pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956"}, + {file = "pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8"}, + {file = "pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198"}, + {file = "pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b"}, + {file = "pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0"}, + {file = "pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69"}, + {file = "pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e"}, + {file = "pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c"}, + {file = "pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e"}, + {file = "pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824"}, + {file = "pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c"}, + {file = "pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00"}, + {file = "pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d"}, + {file = "pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a"}, + {file = "pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4"}, + {file = "pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b"}, + {file = "pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf"}, + {file = "pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196"}, + {file = "pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0"}, + {file = "pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28"}, + {file = "pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c"}, + {file = "pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc"}, + {file = "pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e"}, + {file = "pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea"}, + {file = "pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5"}, + {file = "pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b"}, + {file = "pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd"}, + {file = "pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8"}, + {file = "pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1"}, + {file = "pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c"}, + {file = "pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5"}, + {file = "pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6"}, + {file = "pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6"}, + {file = "pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be"}, + {file = "pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26"}, + {file = "pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c"}, + {file = "pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb"}, + {file = "pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac"}, + {file = "pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310"}, + {file = "pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7"}, + {file = "pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788"}, + {file = "pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5"}, + {file = "pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764"}, + {file = "pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35"}, + {file = "pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac"}, + {file = "pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3"}, + {file = "pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3"}, + {file = "pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba"}, + {file = "pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c"}, + {file = "pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702"}, + {file = "pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c"}, + {file = "pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065"}, + {file = "pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65"}, + {file = "pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9"}, + {file = "pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b"}, + {file = "pyyaml-6.0.3-cp39-cp39-macosx_10_13_x86_64.whl", hash = "sha256:b865addae83924361678b652338317d1bd7e79b1f4596f96b96c77a5a34b34da"}, + {file = "pyyaml-6.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c3355370a2c156cffb25e876646f149d5d68f5e0a3ce86a5084dd0b64a994917"}, + {file = "pyyaml-6.0.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3c5677e12444c15717b902a5798264fa7909e41153cdf9ef7ad571b704a63dd9"}, + {file = "pyyaml-6.0.3-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5ed875a24292240029e4483f9d4a4b8a1ae08843b9c54f43fcc11e404532a8a5"}, + {file = "pyyaml-6.0.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0150219816b6a1fa26fb4699fb7daa9caf09eb1999f3b70fb6e786805e80375a"}, + {file = "pyyaml-6.0.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:fa160448684b4e94d80416c0fa4aac48967a969efe22931448d853ada8baf926"}, + {file = "pyyaml-6.0.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:27c0abcb4a5dac13684a37f76e701e054692a9b2d3064b70f5e4eb54810553d7"}, + {file = "pyyaml-6.0.3-cp39-cp39-win32.whl", hash = "sha256:1ebe39cb5fc479422b83de611d14e2c0d3bb2a18bbcb01f229ab3cfbd8fee7a0"}, + {file = "pyyaml-6.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:2e71d11abed7344e42a8849600193d15b6def118602c4c176f748e4583246007"}, + {file = "pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f"}, ] [[package]] name = "pyyaml-env-tag" -version = "0.1" -description = "A custom YAML tag for referencing environment variables in YAML files. " +version = "1.1" +description = "A custom YAML tag for referencing environment variables in YAML files." optional = false -python-versions = ">=3.6" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"}, - {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"}, + {file = "pyyaml_env_tag-1.1-py3-none-any.whl", hash = "sha256:17109e1a528561e32f026364712fee1264bc2ea6715120891174ed1b980d2e04"}, + {file = "pyyaml_env_tag-1.1.tar.gz", hash = "sha256:2eb38b75a2d21ee0475d6d97ec19c63287a7e140231e4214969d0eac923cd7ff"}, ] [package.dependencies] @@ -799,25 +833,25 @@ pyyaml = "*" [[package]] name = "requests" -version = "2.32.3" +version = "2.33.1" description = "Python HTTP for Humans." optional = false -python-versions = ">=3.8" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, - {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, + {file = "requests-2.33.1-py3-none-any.whl", hash = "sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a"}, + {file = "requests-2.33.1.tar.gz", hash = "sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517"}, ] [package.dependencies] -certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" +certifi = ">=2023.5.7" +charset_normalizer = ">=2,<4" idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<3" +urllib3 = ">=1.26,<3" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<8)"] [[package]] name = "six" @@ -833,33 +867,46 @@ files = [ [[package]] name = "smmap" -version = "5.0.2" +version = "5.0.3" 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"}, + {file = "smmap-5.0.3-py3-none-any.whl", hash = "sha256:c106e05d5a61449cf6ba9a1e650227ecfb141590d2a98412103ff35d89fc7b2f"}, + {file = "smmap-5.0.3.tar.gz", hash = "sha256:4d9debb8b99007ae47165abc08670bd74cb74b5227dda7f643eccc4e9eb5642c"}, +] + +[[package]] +name = "tzdata" +version = "2026.2" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +groups = ["main"] +markers = "sys_platform == \"win32\"" +files = [ + {file = "tzdata-2026.2-py2.py3-none-any.whl", hash = "sha256:bbe9af844f658da81a5f95019480da3a89415801f6cc966806612cc7169bffe7"}, + {file = "tzdata-2026.2.tar.gz", hash = "sha256:9173fde7d80d9018e02a662e168e5a2d04f87c41ea174b139fbef642eda62d10"}, ] [[package]] name = "urllib3" -version = "2.3.0" +version = "2.6.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, - {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, + {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, + {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, ] [package.extras] -brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] +brotli = ["brotli (>=1.2.0) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=1.2.0.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] +zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] [[package]] name = "verspec" @@ -919,27 +966,7 @@ files = [ [package.extras] watchmedo = ["PyYAML (>=3.10)"] -[[package]] -name = "zipp" -version = "3.21.0" -description = "Backport of pathlib-compatible object wrapper for zip files" -optional = false -python-versions = ">=3.9" -groups = ["main"] -files = [ - {file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"}, - {file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"}, -] - -[package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] -cover = ["pytest-cov"] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -enabler = ["pytest-enabler (>=2.2)"] -test = ["big-O", "importlib-resources ; python_version < \"3.9\"", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] -type = ["pytest-mypy"] - [metadata] lock-version = "2.1" python-versions = ">=3.12,<4" -content-hash = "9a42b45358f5d33c3d12f168c68ac10dc5e84b228a7c7d676d51afb314d4478c" +content-hash = "d954f2cc7ccbb40527263c32c4506afb99360d1a9223008da9d9fb5f4a639467" diff --git a/pyproject.toml b/pyproject.toml index 2a5a3922..41c331e1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,13 +9,14 @@ package-mode = false [tool.poetry.dependencies] python = ">=3.12,<4" mkdocs = "^1.6.1" -mkdocs-material = "^9.5.50" +mkdocs-material = "^9.7.6" python-markdown-math = "^0.8" pyyaml = "^6.0.2" mkdocs-glightbox = "^0.3.7" mkdocs-git-committers-plugin-2 = "^2.4.1" mkdocs-git-revision-date-localized-plugin = "^1.3.0" -mike = "^2.1.0" +mike = "^2.2.0" +pytz = "^2026.1.post1" [build-system] requires = ["poetry-core"] diff --git a/requirements.txt b/requirements.txt index 44ca9bc3..dc6d52c9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,43 @@ -mkdocs -mkdocs-material -python-markdown-math -mkdocs-glightbox -mkdocs-git-revision-date-localized-plugin -mkdocs-git-committers-plugin-2 -mike \ No newline at end of file +babel==2.17.0 ; python_version >= "3.12" and python_version < "4" +backrefs==5.8 ; python_version >= "3.12" and python_version < "4" +certifi==2025.4.26 ; python_version >= "3.12" and python_version < "4" +charset-normalizer==3.4.2 ; python_version >= "3.12" and python_version < "4" +click==8.2.1 ; python_version >= "3.12" and python_version < "4" +colorama==0.4.6 ; python_version >= "3.12" and python_version < "4" +ghp-import==2.1.0 ; python_version >= "3.12" and python_version < "4" +gitdb==4.0.12 ; python_version >= "3.12" and python_version < "4" +gitpython==3.1.44 ; python_version >= "3.12" and python_version < "4" +idna==3.10 ; python_version >= "3.12" and python_version < "4" +importlib-metadata==8.7.0 ; python_version >= "3.12" and python_version < "4" +importlib-resources==6.5.2 ; python_version >= "3.12" and python_version < "4" +jinja2==3.1.6 ; python_version >= "3.12" and python_version < "4" +markdown==3.8 ; python_version >= "3.12" and python_version < "4" +markupsafe==3.0.2 ; python_version >= "3.12" and python_version < "4" +mergedeep==1.3.4 ; python_version >= "3.12" and python_version < "4" +mike==2.1.3 ; python_version >= "3.12" and python_version < "4" +mkdocs-get-deps==0.2.0 ; python_version >= "3.12" and python_version < "4" +mkdocs-git-committers-plugin-2==2.5.0 ; python_version >= "3.12" and python_version < "4" +mkdocs-git-revision-date-localized-plugin==1.4.7 ; python_version >= "3.12" and python_version < "4" +mkdocs-glightbox==0.3.7 ; python_version >= "3.12" and python_version < "4" +mkdocs-material-extensions==1.3.1 ; python_version >= "3.12" and python_version < "4" +mkdocs-material==9.6.14 ; python_version >= "3.12" and python_version < "4" +mkdocs==1.6.1 ; python_version >= "3.12" and python_version < "4" +packaging==25.0 ; python_version >= "3.12" and python_version < "4" +paginate==0.5.7 ; python_version >= "3.12" and python_version < "4" +pathspec==0.12.1 ; python_version >= "3.12" and python_version < "4" +platformdirs==4.3.8 ; python_version >= "3.12" and python_version < "4" +pygments==2.19.1 ; python_version >= "3.12" and python_version < "4" +pymdown-extensions==10.15 ; python_version >= "3.12" and python_version < "4" +pyparsing==3.2.3 ; python_version >= "3.12" and python_version < "4" +python-dateutil==2.9.0.post0 ; python_version >= "3.12" and python_version < "4" +python-markdown-math==0.8 ; python_version >= "3.12" and python_version < "4" +pytz==2025.2 ; python_version >= "3.12" and python_version < "4" +pyyaml-env-tag==1.1 ; python_version >= "3.12" and python_version < "4" +pyyaml==6.0.2 ; python_version >= "3.12" and python_version < "4" +requests==2.32.3 ; python_version >= "3.12" and python_version < "4" +six==1.17.0 ; python_version >= "3.12" and python_version < "4" +smmap==5.0.2 ; python_version >= "3.12" and python_version < "4" +urllib3==2.4.0 ; python_version >= "3.12" and python_version < "4" +verspec==0.1.0 ; python_version >= "3.12" and python_version < "4" +watchdog==6.0.0 ; python_version >= "3.12" and python_version < "4" +zipp==3.22.0 ; python_version >= "3.12" and python_version < "4"