From 9d2986ad5a7cf3558d20acd8c594d95a478011c3 Mon Sep 17 00:00:00 2001 From: externref Date: Fri, 16 Aug 2024 04:11:46 +0530 Subject: [PATCH 01/14] initialise rust rewrite --- .gitignore | 8 +- assets/peanut.png | Bin 36413 -> 0 bytes data/databases/.gitkeep | 0 docs/assets/anya.png | Bin 78216 -> 0 bytes docs/assets/examples/create_schema.gif | Bin 52357 -> 0 bytes docs/assets/examples/display_schema.gif | Bin 41859 -> 0 bytes docs/assets/examples/insert.gif | Bin 32491 -> 0 bytes docs/assets/examples/select.gif | Bin 78395 -> 0 bytes docs/assets/peanut.png | Bin 7999 -> 0 bytes docs/assets/structure.png | Bin 180737 -> 0 bytes docs/commands.md | 108 -- docs/getting-started.md | 80 -- docs/index.md | 47 - mkdocs.yml | 34 - peanuts/__init__.py | 39 - peanuts/__main__.py | 26 - peanuts/cli/session.py | 162 --- peanuts/server/server.py | 0 poetry.lock | 1239 ----------------------- pyproject.toml | 41 - src/cache.py | 22 - src/common.py | 30 - src/main.py | 62 -- src/schema.py | 135 --- 24 files changed, 3 insertions(+), 2030 deletions(-) delete mode 100644 assets/peanut.png delete mode 100644 data/databases/.gitkeep delete mode 100644 docs/assets/anya.png delete mode 100644 docs/assets/examples/create_schema.gif delete mode 100644 docs/assets/examples/display_schema.gif delete mode 100644 docs/assets/examples/insert.gif delete mode 100644 docs/assets/examples/select.gif delete mode 100644 docs/assets/peanut.png delete mode 100644 docs/assets/structure.png delete mode 100644 docs/commands.md delete mode 100644 docs/getting-started.md delete mode 100644 docs/index.md delete mode 100644 mkdocs.yml delete mode 100644 peanuts/__init__.py delete mode 100644 peanuts/__main__.py delete mode 100644 peanuts/cli/session.py delete mode 100644 peanuts/server/server.py delete mode 100644 poetry.lock delete mode 100644 pyproject.toml delete mode 100644 src/cache.py delete mode 100644 src/common.py delete mode 100644 src/main.py delete mode 100644 src/schema.py diff --git a/.gitignore b/.gitignore index bd95dc3..7a0ec7f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,3 @@ -data/databases/* -!data/databases/.gitkeep -__pycache__/ -.cache/ -site/ \ No newline at end of file +# Added by cargo + +/target diff --git a/assets/peanut.png b/assets/peanut.png deleted file mode 100644 index ba999c328d9536e6bb16179520b94f6d59bb5631..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36413 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 diff --git a/data/databases/.gitkeep b/data/databases/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/docs/assets/anya.png b/docs/assets/anya.png deleted file mode 100644 index a93559bf3d220b0fd2e937da4037d469d0f9c1a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78216 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%0DI>Ax#T_+-YY56gRf#1Z(iHVM$;L^ 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�z?`CVSsA4B1F(9Q% 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 diff --git a/docs/assets/examples/display_schema.gif b/docs/assets/examples/display_schema.gif deleted file mode 100644 index 58a0143540f3ac1b695a5768680101452dc1da88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41859 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∨d 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 ZtfT2cZ##j)r5O0;v*Fhr@;4e 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 D73kHY diff --git a/docs/assets/examples/select.gif b/docs/assets/examples/select.gif deleted file mode 100644 index 6a5b6ec3204667d75ea1c1cfec8f59428e62f766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78395 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 GpR56;@;sIR diff --git a/docs/assets/peanut.png b/docs/assets/peanut.png deleted file mode 100644 index c2212ef592b19b28ae136ab64bf94e181fd83d6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7999 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 diff --git a/docs/assets/structure.png b/docs/assets/structure.png deleted file mode 100644 index 8915e87e0787daab77a7666cf9d5b47a1197fb2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180737 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­?9kmC4tejV*Q1cXfXJMybj}19@eKf8>{zPxzzTm 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 D=JX^M diff --git a/docs/commands.md b/docs/commands.md deleted file mode 100644 index 245724f..0000000 --- a/docs/commands.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -description: Guide through all the commands available in the database system ---- - -# Commands - -Here's a list of all the available commands in the database - -## Schema and core operations. - -### `!help` - -Displays all commands info. - -### `!quit` - -Quits the CLI. Aliases: `!q`, `:q`, `:quit` - -### `!create_schema` - -Creates a new [schema](getting-started.md#schema) - -**Syntax** -```json -!create_schema ; - -// example: -!create_schema studentinfo { - "name": "string", - "age": "number" -}; -``` - -

- -

- -### `!drop_schema` - -Drops an existing schema. - -**Syntax** -```json -!drop_schema ; - -// example: -!drop_schema studentinfo; -``` - -### `!display_schema` - -Displays data under an schema. - -**Syntax** -```json -!display_schema ; - -// example: -!display_schema studeinfo; -``` - -

- -

- - -### `!load_cache` - -Loads all the existing data into cache. This is optional and suggested only when large operations have to be performed. - -## Data related commands - -### `insert` - -Adds data to an schema with respect to provided ID - -**Syntax** -```json -insert [data_JSON]; - -// example: -insert studentinfo 1; // app will ask for further data -insert studentinfo 1 { - "name": "sarthak", - "age": 19 -}; -``` - -

- -

- - -### `select` - -Fetch data from the cache or the storage - -**Syntax** -```json -select ; - -// example: -select studentinfo 1; -``` - -

- -

diff --git a/docs/getting-started.md b/docs/getting-started.md deleted file mode 100644 index 84a2b3e..0000000 --- a/docs/getting-started.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -description: Setting up and getting started with the database ---- - -The database is only available as a python package as of now, that can be downloaded from Github. - -### Requirements - -* [Python 3.8+](https://www.python.org/) - - Python comes pre-installed in most linux distros. You can install python for mac and windows from the official website. ([`Windows`](https://www.python.org/downloads/windows/), [`macOS`](https://www.python.org/downloads/macos/)). Make sure to install pip and add python to path. - -* [Poetry](https://python-poetry.org/) - - Poetry is a python packaging and dependency management tool. `peanuts` heavily rely on it for the CLI and dependencies. You can install it from PYPI. - ```sh - python -m pip install poetry - ``` - -* [Git (optional)](https://git-scm.com/) - - Git can be used to clone the repository to your device directly. Alternatively you can manually download code from github. - -### Setting up the project - -Clone the github repository using the git clone command and navigate into the project directory. - -```sh -git clone https://github.com/externref/peanuts -cd peanuts -``` - -!!! info - Alternatively you can download the project from Github from [here](https://codeload.github.com/externref/peanuts/zip/refs/heads/main) and unzip it to get the same output as `git clone` if you don't plan to contribute. - -To start with the database setup, install all the dependencies using `poetry install` command and enable the poetry venv using `poetry shell` - -```sh -[python -m] poetry install -[python -m] poetry shell -# you might have to use [python -m] based on your python installation -``` - -## The Database - -![](assets/structure.png) - -### Creating A Database - -Creating a database is a simple task, you just need to run the CLI with the database name -``` -[poetry run] peanuts -``` - -If the database does not exist it will be created and connected to, else a new database with that name will be created. - -### Schema - -Schemas defines the strucutre of the data type to save. It acts as an equivalent of a SQL table in this case scenario. This is a sample schema configuration: - -```json -{ - "name": "string", - "age": "integer" -} -``` - -The schema must be defined using a dictionary with name-type mapping, allowed types are: - -* `string`: For strings - -* `integer`: For integers - -* `float`: For floats - -* `bool`: For booleans - -* `a_`: For array of above types ( `a_string`, `a_bool`, etc...) - -You will learn how to create a new database in [commands](commands.md#create_schema) \ No newline at end of file diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 20db9e8..0000000 --- a/docs/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -description: A minimalist JSON based database for people who love peanuts :3 ( or not ) ---- - -# peanuts - -

- -

- - - - - - -
-A minimalist JSON based database for people who love peanuts :3 ( or not ) -

- -!!! warning - This database system is just a raw idea and prone to unexpected behaviour. - -[Getting Started](getting-started.md){ .md-button .md-button--primary } - -## About - -`peanuts` is a JSON based database system using file-name approach to store user data with strict schema checking and CLI flexibility. - -It uses simple SQL like syntax for querying and inserting data along-side a expressive CLI with helpful error messages in case you make a mistake while using the commands. - - -!!! note "How is the data stored?" - - The project comes with a `data` folder that stores all the data. The `databases` sub-directory stores all the database related content. - - For each database, a new directory is created under `data/databases` with this structure - - ```sh - └── data/databases - └── database_name # name of the database - ├── data # this is where data is stored - │ └── schema_name # schema related to the item - │ └── entry_id.pnuts.json # saved data with the unique ID - └── schemas # all schema structure are saved under this - └── schema_name.pnuts.json # json of a particular schema - ``` - diff --git a/mkdocs.yml b/mkdocs.yml deleted file mode 100644 index 8216fcf..0000000 --- a/mkdocs.yml +++ /dev/null @@ -1,34 +0,0 @@ -site_name: peanuts -site_url: https://peanuts.externref.tech - -theme: - name: material - logo: assets/peanut.png - favicon: assets/peanut.png - palette: - - scheme: slate - toggle: - icon: material/brightness-4 - name: Switch to light mode - - - scheme: default - toggle: - icon: material/brightness-7 - name: Switch to dark mode - -plugins: - - social: - cards_color: - fill: "#bf9674" - text: "#131314" - -nav: - - 'Welcome!': 'index.md' - - 'Getting Started': 'getting-started.md' - - 'commands.md' - -markdown_extensions: - - admonition - - pymdownx.details - - pymdownx.superfences - - attr_list \ No newline at end of file diff --git a/peanuts/__init__.py b/peanuts/__init__.py deleted file mode 100644 index a2b4ff9..0000000 --- a/peanuts/__init__.py +++ /dev/null @@ -1,39 +0,0 @@ -# MIT License - -# Copyright (c) 2024 sarthak - -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: - -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. - -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -import sys - -from peanuts.cli.session import Session -from src.common import display_syntax - - -def main() -> None: - try: - session = Session(sys.argv[1]) - if len(sys.argv) > 2 and sys.argv[2] in ["--compile", "-c"]: - assert len(sys.argv) == 4 - session.run_command(sys.argv[3].split()[0], sys.argv[3].split()[1:]) - return - session.run_session() - except IndexError as e: - raise e - Session.console.print(display_syntax("peanuts", "peanuts [-c ]")) diff --git a/peanuts/__main__.py b/peanuts/__main__.py deleted file mode 100644 index d8ef48b..0000000 --- a/peanuts/__main__.py +++ /dev/null @@ -1,26 +0,0 @@ -# MIT License - -# Copyright (c) 2024 sarthak - -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: - -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. - -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from . import main - -if __name__ == "__main__": - main() diff --git a/peanuts/cli/session.py b/peanuts/cli/session.py deleted file mode 100644 index 1c2aaf2..0000000 --- a/peanuts/cli/session.py +++ /dev/null @@ -1,162 +0,0 @@ -# MIT License - -# Copyright (c) 2024 sarthak - -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: - -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. - -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from __future__ import annotations - -import json -import os -import typing - -import tabulate -from rich.console import Console - -from src.common import DataTypeConflictException, display_syntax -from src.main import Instance -from src.schema import SchemaTypeToPyT - -if os.name != "nt": - # readline module enables arrow actions etc in the terminal stdin - import readline # type: ignore # noqa: F401 - - -class Session: - dbname: str - app: Instance - console = Console() - - def __init__(self, dbname: str) -> None: - self.dbname = dbname - self.app = Instance(dbname) - - @staticmethod - def map_insert_to_json(items: dict[str, SchemaTypeToPyT]) -> str: - entries = {} - for key, tdata in items.items(): - ind = Session.console.input(f"[cyan][bold]{key} (type: {tdata}): [/bold][/cyan]") - if tdata == SchemaTypeToPyT.STRING: - entries[key] = ind - else: - - def verify_array(t: type, arr: list[typing.Any]) -> None: - for item in arr: - if not (isinstance(item, t)): - raise DataTypeConflictException(str(t), str(type(item))) # type: ignore - - data: typing.Any = json.loads(ind) - if tdata in ( - SchemaTypeToPyT.A_BOOL, - SchemaTypeToPyT.A_FLOAT, - SchemaTypeToPyT.A_INTEGER, - SchemaTypeToPyT.A_STRING, - ): - if tdata == SchemaTypeToPyT.A_STRING: - assert verify_array(str, data) - elif tdata == SchemaTypeToPyT.A_INTEGER: - assert verify_array(int, data) - elif tdata == SchemaTypeToPyT.A_FLOAT: - assert verify_array(float, data) - elif tdata == SchemaTypeToPyT.A_BOOL: - assert verify_array(bool, data) - elif tdata == SchemaTypeToPyT.BOOL and not isinstance(data, bool): - raise DataTypeConflictException("bool", str(type(data))) # type: ignore - elif tdata == SchemaTypeToPyT.INTEGER and not isinstance(data, int): - raise DataTypeConflictException("int", str(type(data))) # type: ignore - elif tdata == SchemaTypeToPyT.FLOAT and not isinstance(data, float): - raise DataTypeConflictException("float", str(type(data))) # type: ignore - entries[key] = data - - return json.dumps(entries) - - def run_command(self, action: str, restargs: list[str]) -> None: - if action == "!create_schema": - self.app.add_schema(restargs[0], " ".join(restargs[1:])) - elif action == "!drop_schema": - self.app.drop_schema(restargs[0]) - elif action == "!load_cache": - if len(restargs) == 0: - for schema in self.app.schemas.values(): - schema.cache.load() - else: - for sname in restargs: - try: - self.console.print(f"⌛[blue]Loading {sname} ...") - self.app.schemas[sname.strip()].cache.load() - except KeyError: - self.console.print(f"[red]No schema named [bold]{sname}[/bold] found.") - elif action == "!display_schema": - if len(restargs) != 1: - self.console.print(display_syntax("!display_schema", "!display_schema ")) - return - - assert self.app.schemas.get(restargs[0]), f"No schema named [bold]{restargs[0]}[/bold] found" - print( - tabulate.tabulate( - self.app.schemas[restargs[0]].display_dict(), - headers="keys", - tablefmt="rounded_grid", - numalign="right", - ) - ) - - elif action == "insert": - assert self.app.schemas.get(restargs[0]), f"No schema named [bold]{restargs[0]}[/bold] found" - if len(restargs) == 2: - try: - items = self.map_insert_to_json(self.app.schemas[restargs[0]].configs) - self.app.schemas[restargs[0]].write(restargs[1], items) - except DataTypeConflictException as e: - self.console.print(f"[red]{e}") - except json.decoder.JSONDecodeError: - self.console.print("[red]Invalid Input.") - return - self.app.schemas[restargs[0]].write(restargs[1], " ".join(restargs[2:])) - elif action == "select": - assert self.app.schemas.get(restargs[0]), f"No schema named {restargs[0]} found" - try: - data = self.app.schemas[restargs[0]].read(restargs[1]) - print(tabulate.tabulate(([k, v] for k, v in data.items()), tablefmt="rounded_grid")) - except FileNotFoundError: - self.console.print(f"[red]No data with ID {restargs[1]} found.") - - elif action in ["!q", "!quit", ":q", ":quit"]: - raise KeyboardInterrupt - else: - self.console.print("[red]Invalid Command, use [bold]!help[/bold] to get a list of available commands.") - - def run_session(self) -> None: - try: - self.console.print( - f" [bold][cyan]Welcome to peanuts 🥜, Connected to database: [bold]{self.dbname}[/bold][/cyan][/bold]" - ) - while True: - cmd = self.console.input("[bold][green]#[/green][/bold] ").strip() - - while not cmd.endswith(";"): - cmd += " " + self.console.input("[bold][green]>[/green][/bold] ").strip() - vals = cmd.strip(" ;").split() - args = [arg.strip() for arg in vals if arg != " "] - try: - self.run_command(vals[0], args[1:]) - except AssertionError as e: - self.console.print(f"[red]{e}") - except KeyboardInterrupt: - self.console.print("[green]Thanks for using [bold]peanuts[/bold]!") diff --git a/peanuts/server/server.py b/peanuts/server/server.py deleted file mode 100644 index e69de29..0000000 diff --git a/poetry.lock b/poetry.lock deleted file mode 100644 index 36baee4..0000000 --- a/poetry.lock +++ /dev/null @@ -1,1239 +0,0 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. - -[[package]] -name = "annotated-types" -version = "0.7.0" -description = "Reusable constraint types to use with typing.Annotated" -optional = false -python-versions = ">=3.8" -files = [ - {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, - {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, -] - -[package.dependencies] -typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""} - -[[package]] -name = "anyio" -version = "4.4.0" -description = "High level compatibility layer for multiple asynchronous event loop implementations" -optional = false -python-versions = ">=3.8" -files = [ - {file = "anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7"}, - {file = "anyio-4.4.0.tar.gz", hash = "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94"}, -] - -[package.dependencies] -exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} -idna = ">=2.8" -sniffio = ">=1.1" -typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} - -[package.extras] -doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] -trio = ["trio (>=0.23)"] - -[[package]] -name = "attrs" -version = "24.1.0" -description = "Classes Without Boilerplate" -optional = false -python-versions = ">=3.7" -files = [ - {file = "attrs-24.1.0-py3-none-any.whl", hash = "sha256:377b47448cb61fea38533f671fba0d0f8a96fd58facd4dc518e3dac9dbea0905"}, - {file = "attrs-24.1.0.tar.gz", hash = "sha256:adbdec84af72d38be7628e353a09b6a6790d15cd71819f6e9d7b0faa8a125745"}, -] - -[package.extras] -benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] - -[[package]] -name = "babel" -version = "2.15.0" -description = "Internationalization utilities" -optional = false -python-versions = ">=3.8" -files = [ - {file = "Babel-2.15.0-py3-none-any.whl", hash = "sha256:08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb"}, - {file = "babel-2.15.0.tar.gz", hash = "sha256:8daf0e265d05768bc6c7a314cf1321e9a123afc328cc635c18622a2f30a04413"}, -] - -[package.dependencies] -pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} - -[package.extras] -dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] - -[[package]] -name = "capstone" -version = "5.0.1" -description = "Capstone disassembly engine" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "capstone-5.0.1-py3-none-macosx_10_9_universal2.whl", hash = "sha256:740a70624d3f258cf8503898dbfd968052c008ddd4fc4ab938c7046c8828c294"}, - {file = "capstone-5.0.1-py3-none-manylinux1_i686.manylinux_2_5_i686.whl", hash = "sha256:3f34a949699c298e88d7c9a576a2fd7685dba658a9c432bce826eeb88676cf24"}, - {file = "capstone-5.0.1-py3-none-manylinux1_i686.whl", hash = "sha256:08f16c2782e54d05c95f1d40e1ae0e58e4a57d6a6c3192f8c5ff61476f4130de"}, - {file = "capstone-5.0.1-py3-none-manylinux1_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ea8d0be06d2faa39545937fe88db239fd62227915f9744d8990439011c479f05"}, - {file = "capstone-5.0.1-py3-none-manylinux1_x86_64.whl", hash = "sha256:04223a4e5c2374f21da59c5c5a5b90471bfcef5cb938e7b32de68579cf863b7a"}, - {file = "capstone-5.0.1-py3-none-win32.whl", hash = "sha256:4356bdee55639c4448d025dc9d8a3b6c07f2b188c62b88df3d554a84e2cd89af"}, - {file = "capstone-5.0.1-py3-none-win_amd64.whl", hash = "sha256:1bfa5c81e6880caf41a31946cd6d2d069c048bcc22edf121254b501a048de675"}, - {file = "capstone-5.0.1.tar.gz", hash = "sha256:740afacc29861db591316beefe30df382c4da08dcb0345a0d10f0cac4f8b1ee2"}, -] - -[[package]] -name = "certifi" -version = "2024.7.4" -description = "Python package for providing Mozilla's CA Bundle." -optional = false -python-versions = ">=3.6" -files = [ - {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, - {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, -] - -[[package]] -name = "charset-normalizer" -version = "3.3.2" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, - {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, -] - -[[package]] -name = "click" -version = "8.1.7" -description = "Composable command line interface toolkit" -optional = false -python-versions = ">=3.7" -files = [ - {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, - {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} - -[[package]] -name = "colorama" -version = "0.4.6" -description = "Cross-platform colored terminal text." -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "exceptiongroup" -version = "1.2.2" -description = "Backport of PEP 654 (exception groups)" -optional = false -python-versions = ">=3.7" -files = [ - {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, - {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, -] - -[package.extras] -test = ["pytest (>=6)"] - -[[package]] -name = "fastapi" -version = "0.112.0" -description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" -optional = false -python-versions = ">=3.8" -files = [ - {file = "fastapi-0.112.0-py3-none-any.whl", hash = "sha256:3487ded9778006a45834b8c816ec4a48d522e2631ca9e75ec5a774f1b052f821"}, - {file = "fastapi-0.112.0.tar.gz", hash = "sha256:d262bc56b7d101d1f4e8fc0ad2ac75bb9935fec504d2b7117686cec50710cf05"}, -] - -[package.dependencies] -pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0" -starlette = ">=0.37.2,<0.38.0" -typing-extensions = ">=4.8.0" - -[package.extras] -all = ["email_validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.7)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] -standard = ["email_validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "jinja2 (>=2.11.2)", "python-multipart (>=0.0.7)", "uvicorn[standard] (>=0.12.0)"] - -[[package]] -name = "fishhook" -version = "0.3.2" -description = "Allows for runtime hooking of static class functions" -optional = false -python-versions = ">=3.8" -files = [ - {file = "fishhook-0.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:078bbd846006c0c7619b3c7df777cc67280cdb9fe1e930caaf1165678228330d"}, - {file = "fishhook-0.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66d5ab9fd6b89107524ccbe106a987f7e39f322f5a924f6d5312c9a27e82aeda"}, - {file = "fishhook-0.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea1d08716d078f00e70a3f2539db775d91703caba083decd78fcc3ee3a88e514"}, - {file = "fishhook-0.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7f8f8724f0adfcc38815f38647e1aaa67a5522db45c346bb62bd6da4bdad5272"}, - {file = "fishhook-0.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:dfb793d1beed5c9bfaffab9e75ddb8efeeadbb4c74c8b86b8e1b25b4cbeedff3"}, - {file = "fishhook-0.3.2-cp310-cp310-win32.whl", hash = "sha256:3116d11d605241e4b0b5c78791905994fda9fe9a79d2c30522c928acfd12ec7a"}, - {file = "fishhook-0.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:63a54688c58539aa3eadc3a69eb5932cdb9508b94e5b8351eac06eb9a6946b1b"}, - {file = "fishhook-0.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3ee718a0809e554404a8ebcfa81e202f18b97d3ef1eb7a52f02440abc62aa3bf"}, - {file = "fishhook-0.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76ca3cead5709399037fac00cb6c0449dcfeb53ec39bff79f58147a7d186d9f2"}, - {file = "fishhook-0.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57404083d232af30083571a7447df26fbf18fb58bf444f1ced9dedbe3a228ae0"}, - {file = "fishhook-0.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:d64a784b05ad60e11c99fba3cd17385b798705d4f944a7947537a52aaacbac78"}, - {file = "fishhook-0.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60135907097e30cabef1a96a4a6a71988dee66fb718a5dff487c9adbe6f4dff6"}, - {file = "fishhook-0.3.2-cp311-cp311-win32.whl", hash = "sha256:f1a04d64e314ec6aaf50220fb4017749f87815265ba990c48b12cb545dec945b"}, - {file = "fishhook-0.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:c8d025fddd38b324b3c5a2ad67f1892cb7c736ee966120710743344e16ac8730"}, - {file = "fishhook-0.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:28c969cb72bd5cae364befc5b8c8ed7f8109a0c73f4dc033ec2d74e41ddf8565"}, - {file = "fishhook-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3edf9bb596813fba3bb141c3efb4d66343316f961eb52514813bb203e55c4ced"}, - {file = "fishhook-0.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1d8951906f421a1cdb74522176e99f6a1dbf89b1fd976e7e0c9d1dac4b48c22"}, - {file = "fishhook-0.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:b6378512de7112ce22921c080068a23d0767109f1d5e3830ff8f2e08354479c5"}, - {file = "fishhook-0.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ac4cf5ad1be33b6ffc05e57d9446c498ca99c9e542f3832f328d381366c9294b"}, - {file = "fishhook-0.3.2-cp312-cp312-win32.whl", hash = "sha256:23e553a4f692515ca87bbc8a4e4d5fbdd557b5b8c4be9dc00838182aeb6e5f58"}, - {file = "fishhook-0.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:081a895f41a961881b687487fcb8d74b044791f00b390073b2f5ad704a385fcf"}, - {file = "fishhook-0.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6db217e150ad1e0f7fea2010474e98a1a69e0157a1f028ab114a7eb7c0dd704f"}, - {file = "fishhook-0.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12de15eb9d31b6456595af1f6e987ce55d104c97349bdb503c067fc5f017ec73"}, - {file = "fishhook-0.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:215461c2fb4bbf898855827de9f7675c250367dc5ce03cb3f69d60febc375782"}, - {file = "fishhook-0.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a59ffeab407d6a08ab9128fc85a9767b6e331d04c12ef2f5b5c306acc61292fc"}, - {file = "fishhook-0.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3d7989362525d7750fc807c58614604602b50748d11a002baecbe76604b1ec5b"}, - {file = "fishhook-0.3.2-cp38-cp38-win32.whl", hash = "sha256:3dd8229a9dd230f95539b5f30b30fe373a2cac9407e2dcce8a77af399318401f"}, - {file = "fishhook-0.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:8398f3564d8aa3a13cf2df205aa45a7320094a8d6b4e05d0ed9b740a9e29fadf"}, - {file = "fishhook-0.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:65151d1d223c280a4f55b8bf4968eab91965750edd8b973935f9fa461c3b206a"}, - {file = "fishhook-0.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef5fb0563680d602d030b2aefddcff2a81d380f0d3b55130f6609d82e5b8723e"}, - {file = "fishhook-0.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c381abd6993d4503c2011b96401dc63f5e3e7e2379252fd5dc3ca15bf815e903"}, - {file = "fishhook-0.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3c243f9467018827a9be04e642d76ca89226a804df6e8331272a875732379d36"}, - {file = "fishhook-0.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a34615393c32890939dc5ac04fe450a44f1ede7da8892f50c5335233f2f9b99c"}, - {file = "fishhook-0.3.2-cp39-cp39-win32.whl", hash = "sha256:c2f9b18f421819b6326fb9cad71df09a2b973ecb85bbdaf8dd8fae2f3fe7f0b4"}, - {file = "fishhook-0.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:f8236eac4b84fbc773016842afa1a5c402a48a26fee28e379e7b8eb793174805"}, - {file = "fishhook-0.3.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:85bfd2687835a2767fde6b85d5667c8f7511551c22cde09e7c318537aac1e7ca"}, - {file = "fishhook-0.3.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174126945adf70aef8dfded2d4e1b163840d86b69ff2c25cb863e61190bbc8c"}, - {file = "fishhook-0.3.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd8339ff34f3d38055140320ac9e41fbc702bc0987d556a07535d6a7141104fc"}, - {file = "fishhook-0.3.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f7b846977ac7e08addb8338f3e510e622fe45c292f1ce6380547a6cb86595ed4"}, - {file = "fishhook-0.3.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:59c6f4ff90ae13bfeddcba7087a7cc385379afda9a8a6cf6d7344c073d3fde05"}, - {file = "fishhook-0.3.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:960a840554177183104d9c210f87a4ac31722177965f587fe902d2f74721eb95"}, - {file = "fishhook-0.3.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:138452ca0ef1803cd3855a7604b2e71083634048c6d58bb93ac139d6ef13c7dd"}, - {file = "fishhook-0.3.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4a85e99e34395e78646d37b05cb3e7d6e0dbbdc8de36402d94e1d2c90a13af1c"}, - {file = "fishhook-0.3.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0b6b6884421dd0839c2260d6acbc0e84df964a0c5d42118548f504917785f43e"}, - {file = "fishhook-0.3.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b015892a975100ca039f1503f43116df8e16574fbb54a42030db1b27b5520ee"}, - {file = "fishhook-0.3.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0691480409c680c301bf76d2f2f1ad451992896d26af9eb4cd04066cf3870ca6"}, - {file = "fishhook-0.3.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:bc49942c9d89866640cfff8ef1ea866b14e21aaedbb01d774126fe3033c2d0a0"}, - {file = "fishhook-0.3.2.tar.gz", hash = "sha256:9c0b04769c89d7bcf957e6f32fee100df2c0f523aa1d0f9fa2bf8621d3f48bcb"}, -] - -[package.dependencies] -capstone = "*" -keystone-engine = "*" - -[[package]] -name = "ghp-import" -version = "2.1.0" -description = "Copy your docs directly to the gh-pages branch." -optional = false -python-versions = "*" -files = [ - {file = "ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343"}, - {file = "ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619"}, -] - -[package.dependencies] -python-dateutil = ">=2.8.1" - -[package.extras] -dev = ["flake8", "markdown", "twine", "wheel"] - -[[package]] -name = "idna" -version = "3.7" -description = "Internationalized Domain Names in Applications (IDNA)" -optional = false -python-versions = ">=3.5" -files = [ - {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, - {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, -] - -[[package]] -name = "importlib-metadata" -version = "8.2.0" -description = "Read metadata from Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "importlib_metadata-8.2.0-py3-none-any.whl", hash = "sha256:11901fa0c2f97919b288679932bb64febaeacf289d18ac84dd68cb2e74213369"}, - {file = "importlib_metadata-8.2.0.tar.gz", hash = "sha256:72e8d4399996132204f9a16dcc751af254a48f8d1b20b9ff0f98d4a8f901e73d"}, -] - -[package.dependencies] -zipp = ">=0.5" - -[package.extras] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -perf = ["ipython"] -test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] - -[[package]] -name = "isort" -version = "5.13.2" -description = "A Python utility / library to sort Python imports." -optional = false -python-versions = ">=3.8.0" -files = [ - {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, - {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, -] - -[package.extras] -colors = ["colorama (>=0.4.6)"] - -[[package]] -name = "jinja2" -version = "3.1.4" -description = "A very fast and expressive template engine." -optional = false -python-versions = ">=3.7" -files = [ - {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, - {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, -] - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "keystone-engine" -version = "0.9.2" -description = "Keystone assembler engine" -optional = false -python-versions = "*" -files = [ - {file = "keystone-engine-0.9.2.tar.gz", hash = "sha256:2f7af62dab0ce6c2732dbb4f31cfa2184a8a149e280b96b92ebc0db84c6e50f5"}, - {file = "keystone_engine-0.9.2-py2.py3-none-macosx_10_14_x86_64.whl", hash = "sha256:dafcc3d9450c239cbc54148855b79c4b387777099c6d054005c835768cf955f2"}, - {file = "keystone_engine-0.9.2-py2.py3-none-manylinux1_i686.whl", hash = "sha256:9e04dea5a2b50509b7b707abdb395de42772c40faa36131ea94482fba8dd5d9f"}, - {file = "keystone_engine-0.9.2-py2.py3-none-manylinux1_x86_64.whl", hash = "sha256:5a5316a34323620b1bba31dcfe9e4b4ca6f0c030e82fc7a151da7c8fbe81a379"}, - {file = "keystone_engine-0.9.2-py2.py3-none-win32.whl", hash = "sha256:9f81e480904a405ef008f1d9f0e4a05e37d2bd83c5218a27136e1a294b02c1f6"}, - {file = "keystone_engine-0.9.2-py2.py3-none-win_amd64.whl", hash = "sha256:c91db1ff16d9d094e00d1827107d1b4afd5e63ce19b491a0140e660635000e8b"}, -] - -[[package]] -name = "markdown" -version = "3.6" -description = "Python implementation of John Gruber's Markdown." -optional = false -python-versions = ">=3.8" -files = [ - {file = "Markdown-3.6-py3-none-any.whl", hash = "sha256:48f276f4d8cfb8ce6527c8f79e2ee29708508bf4d40aa410fbc3b4ee832c850f"}, - {file = "Markdown-3.6.tar.gz", hash = "sha256:ed4f41f6daecbeeb96e576ce414c41d2d876daa9a16cb35fa8ed8c2ddfad0224"}, -] - -[package.dependencies] -importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} - -[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]"] -testing = ["coverage", "pyyaml"] - -[[package]] -name = "markdown-it-py" -version = "3.0.0" -description = "Python port of markdown-it. Markdown parsing, done right!" -optional = false -python-versions = ">=3.8" -files = [ - {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, - {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, -] - -[package.dependencies] -mdurl = ">=0.1,<1.0" - -[package.extras] -benchmarking = ["psutil", "pytest", "pytest-benchmark"] -code-style = ["pre-commit (>=3.0,<4.0)"] -compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] -linkify = ["linkify-it-py (>=1,<3)"] -plugins = ["mdit-py-plugins"] -profiling = ["gprof2dot"] -rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] -testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] - -[[package]] -name = "markupsafe" -version = "2.1.5" -description = "Safely add untrusted strings to HTML/XML markup." -optional = false -python-versions = ">=3.7" -files = [ - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, - {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, -] - -[[package]] -name = "mdurl" -version = "0.1.2" -description = "Markdown URL utilities" -optional = false -python-versions = ">=3.7" -files = [ - {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, - {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, -] - -[[package]] -name = "mergedeep" -version = "1.3.4" -description = "A deep merge function for 🐍." -optional = false -python-versions = ">=3.6" -files = [ - {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, - {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, -] - -[[package]] -name = "mkdocs" -version = "1.6.0" -description = "Project documentation with Markdown." -optional = false -python-versions = ">=3.8" -files = [ - {file = "mkdocs-1.6.0-py3-none-any.whl", hash = "sha256:1eb5cb7676b7d89323e62b56235010216319217d4af5ddc543a91beb8d125ea7"}, - {file = "mkdocs-1.6.0.tar.gz", hash = "sha256:a73f735824ef83a4f3bcb7a231dcab23f5a838f88b7efc54a0eef5fbdbc3c512"}, -] - -[package.dependencies] -click = ">=7.0" -colorama = {version = ">=0.4", markers = "platform_system == \"Windows\""} -ghp-import = ">=1.0" -importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} -jinja2 = ">=2.11.1" -markdown = ">=3.3.6" -markupsafe = ">=2.0.1" -mergedeep = ">=1.3.4" -mkdocs-get-deps = ">=0.2.0" -packaging = ">=20.5" -pathspec = ">=0.11.1" -pyyaml = ">=5.1" -pyyaml-env-tag = ">=0.1" -watchdog = ">=2.0" - -[package.extras] -i18n = ["babel (>=2.9.0)"] -min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.4)", "jinja2 (==2.11.1)", "markdown (==3.3.6)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "mkdocs-get-deps (==0.2.0)", "packaging (==20.5)", "pathspec (==0.11.1)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "watchdog (==2.0)"] - -[[package]] -name = "mkdocs-get-deps" -version = "0.2.0" -description = "MkDocs extension that lists all dependencies according to a mkdocs.yml file" -optional = false -python-versions = ">=3.8" -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"}, -] - -[package.dependencies] -importlib-metadata = {version = ">=4.3", markers = "python_version < \"3.10\""} -mergedeep = ">=1.3.4" -platformdirs = ">=2.2.0" -pyyaml = ">=5.1" - -[[package]] -name = "mkdocs-material" -version = "9.5.31" -description = "Documentation that simply works" -optional = false -python-versions = ">=3.8" -files = [ - {file = "mkdocs_material-9.5.31-py3-none-any.whl", hash = "sha256:1b1f49066fdb3824c1e96d6bacd2d4375de4ac74580b47e79ff44c4d835c5fcb"}, - {file = "mkdocs_material-9.5.31.tar.gz", hash = "sha256:31833ec664772669f5856f4f276bf3fdf0e642a445e64491eda459249c3a1ca8"}, -] - -[package.dependencies] -babel = ">=2.10,<3.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" -regex = ">=2022.4" -requests = ">=2.26,<3.0" - -[package.extras] -git = ["mkdocs-git-committers-plugin-2 (>=1.1,<2.0)", "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)"] - -[[package]] -name = "mkdocs-material-extensions" -version = "1.3.1" -description = "Extension pack for Python Markdown and MkDocs Material." -optional = false -python-versions = ">=3.8" -files = [ - {file = "mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31"}, - {file = "mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443"}, -] - -[[package]] -name = "packaging" -version = "24.1" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, - {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, -] - -[[package]] -name = "paginate" -version = "0.5.6" -description = "Divides large result sets into pages for easier browsing" -optional = false -python-versions = "*" -files = [ - {file = "paginate-0.5.6.tar.gz", hash = "sha256:5e6007b6a9398177a7e1648d04fdd9f8c9766a1a945bceac82f1929e8c78af2d"}, -] - -[[package]] -name = "pathspec" -version = "0.12.1" -description = "Utility library for gitignore style pattern matching of file paths." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, - {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, -] - -[[package]] -name = "platformdirs" -version = "4.2.2" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." -optional = false -python-versions = ">=3.8" -files = [ - {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, - {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, -] - -[package.extras] -docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] -type = ["mypy (>=1.8)"] - -[[package]] -name = "pydantic" -version = "2.8.2" -description = "Data validation using Python type hints" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic-2.8.2-py3-none-any.whl", hash = "sha256:73ee9fddd406dc318b885c7a2eab8a6472b68b8fb5ba8150949fc3db939f23c8"}, - {file = "pydantic-2.8.2.tar.gz", hash = "sha256:6f62c13d067b0755ad1c21a34bdd06c0c12625a22b0fc09c6b149816604f7c2a"}, -] - -[package.dependencies] -annotated-types = ">=0.4.0" -pydantic-core = "2.20.1" -typing-extensions = [ - {version = ">=4.12.2", markers = "python_version >= \"3.13\""}, - {version = ">=4.6.1", markers = "python_version < \"3.13\""}, -] - -[package.extras] -email = ["email-validator (>=2.0.0)"] - -[[package]] -name = "pydantic-core" -version = "2.20.1" -description = "Core functionality for Pydantic validation and serialization" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic_core-2.20.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3acae97ffd19bf091c72df4d726d552c473f3576409b2a7ca36b2f535ffff4a3"}, - {file = "pydantic_core-2.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:41f4c96227a67a013e7de5ff8f20fb496ce573893b7f4f2707d065907bffdbd6"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f239eb799a2081495ea659d8d4a43a8f42cd1fe9ff2e7e436295c38a10c286a"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53e431da3fc53360db73eedf6f7124d1076e1b4ee4276b36fb25514544ceb4a3"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1f62b2413c3a0e846c3b838b2ecd6c7a19ec6793b2a522745b0869e37ab5bc1"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d41e6daee2813ecceea8eda38062d69e280b39df793f5a942fa515b8ed67953"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d482efec8b7dc6bfaedc0f166b2ce349df0011f5d2f1f25537ced4cfc34fd98"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e93e1a4b4b33daed65d781a57a522ff153dcf748dee70b40c7258c5861e1768a"}, - {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e7c4ea22b6739b162c9ecaaa41d718dfad48a244909fe7ef4b54c0b530effc5a"}, - {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4f2790949cf385d985a31984907fecb3896999329103df4e4983a4a41e13e840"}, - {file = "pydantic_core-2.20.1-cp310-none-win32.whl", hash = "sha256:5e999ba8dd90e93d57410c5e67ebb67ffcaadcea0ad973240fdfd3a135506250"}, - {file = "pydantic_core-2.20.1-cp310-none-win_amd64.whl", hash = "sha256:512ecfbefef6dac7bc5eaaf46177b2de58cdf7acac8793fe033b24ece0b9566c"}, - {file = "pydantic_core-2.20.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d2a8fa9d6d6f891f3deec72f5cc668e6f66b188ab14bb1ab52422fe8e644f312"}, - {file = "pydantic_core-2.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:175873691124f3d0da55aeea1d90660a6ea7a3cfea137c38afa0a5ffabe37b88"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37eee5b638f0e0dcd18d21f59b679686bbd18917b87db0193ae36f9c23c355fc"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25e9185e2d06c16ee438ed39bf62935ec436474a6ac4f9358524220f1b236e43"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:150906b40ff188a3260cbee25380e7494ee85048584998c1e66df0c7a11c17a6"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ad4aeb3e9a97286573c03df758fc7627aecdd02f1da04516a86dc159bf70121"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3f3ed29cd9f978c604708511a1f9c2fdcb6c38b9aae36a51905b8811ee5cbf1"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b0dae11d8f5ded51699c74d9548dcc5938e0804cc8298ec0aa0da95c21fff57b"}, - {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:faa6b09ee09433b87992fb5a2859efd1c264ddc37280d2dd5db502126d0e7f27"}, - {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9dc1b507c12eb0481d071f3c1808f0529ad41dc415d0ca11f7ebfc666e66a18b"}, - {file = "pydantic_core-2.20.1-cp311-none-win32.whl", hash = "sha256:fa2fddcb7107e0d1808086ca306dcade7df60a13a6c347a7acf1ec139aa6789a"}, - {file = "pydantic_core-2.20.1-cp311-none-win_amd64.whl", hash = "sha256:40a783fb7ee353c50bd3853e626f15677ea527ae556429453685ae32280c19c2"}, - {file = "pydantic_core-2.20.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:595ba5be69b35777474fa07f80fc260ea71255656191adb22a8c53aba4479231"}, - {file = "pydantic_core-2.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a4f55095ad087474999ee28d3398bae183a66be4823f753cd7d67dd0153427c9"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9aa05d09ecf4c75157197f27cdc9cfaeb7c5f15021c6373932bf3e124af029f"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e97fdf088d4b31ff4ba35db26d9cc472ac7ef4a2ff2badeabf8d727b3377fc52"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc633a9fe1eb87e250b5c57d389cf28998e4292336926b0b6cdaee353f89a237"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d573faf8eb7e6b1cbbcb4f5b247c60ca8be39fe2c674495df0eb4318303137fe"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26dc97754b57d2fd00ac2b24dfa341abffc380b823211994c4efac7f13b9e90e"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:33499e85e739a4b60c9dac710c20a08dc73cb3240c9a0e22325e671b27b70d24"}, - {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bebb4d6715c814597f85297c332297c6ce81e29436125ca59d1159b07f423eb1"}, - {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:516d9227919612425c8ef1c9b869bbbee249bc91912c8aaffb66116c0b447ebd"}, - {file = "pydantic_core-2.20.1-cp312-none-win32.whl", hash = "sha256:469f29f9093c9d834432034d33f5fe45699e664f12a13bf38c04967ce233d688"}, - {file = "pydantic_core-2.20.1-cp312-none-win_amd64.whl", hash = "sha256:035ede2e16da7281041f0e626459bcae33ed998cca6a0a007a5ebb73414ac72d"}, - {file = "pydantic_core-2.20.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:0827505a5c87e8aa285dc31e9ec7f4a17c81a813d45f70b1d9164e03a813a686"}, - {file = "pydantic_core-2.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:19c0fa39fa154e7e0b7f82f88ef85faa2a4c23cc65aae2f5aea625e3c13c735a"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa223cd1e36b642092c326d694d8bf59b71ddddc94cdb752bbbb1c5c91d833b"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c336a6d235522a62fef872c6295a42ecb0c4e1d0f1a3e500fe949415761b8a19"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7eb6a0587eded33aeefea9f916899d42b1799b7b14b8f8ff2753c0ac1741edac"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70c8daf4faca8da5a6d655f9af86faf6ec2e1768f4b8b9d0226c02f3d6209703"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9fa4c9bf273ca41f940bceb86922a7667cd5bf90e95dbb157cbb8441008482c"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:11b71d67b4725e7e2a9f6e9c0ac1239bbc0c48cce3dc59f98635efc57d6dac83"}, - {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:270755f15174fb983890c49881e93f8f1b80f0b5e3a3cc1394a255706cabd203"}, - {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c81131869240e3e568916ef4c307f8b99583efaa60a8112ef27a366eefba8ef0"}, - {file = "pydantic_core-2.20.1-cp313-none-win32.whl", hash = "sha256:b91ced227c41aa29c672814f50dbb05ec93536abf8f43cd14ec9521ea09afe4e"}, - {file = "pydantic_core-2.20.1-cp313-none-win_amd64.whl", hash = "sha256:65db0f2eefcaad1a3950f498aabb4875c8890438bc80b19362cf633b87a8ab20"}, - {file = "pydantic_core-2.20.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:4745f4ac52cc6686390c40eaa01d48b18997cb130833154801a442323cc78f91"}, - {file = "pydantic_core-2.20.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a8ad4c766d3f33ba8fd692f9aa297c9058970530a32c728a2c4bfd2616d3358b"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41e81317dd6a0127cabce83c0c9c3fbecceae981c8391e6f1dec88a77c8a569a"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:04024d270cf63f586ad41fff13fde4311c4fc13ea74676962c876d9577bcc78f"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaad4ff2de1c3823fddf82f41121bdf453d922e9a238642b1dedb33c4e4f98ad"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26ab812fa0c845df815e506be30337e2df27e88399b985d0bb4e3ecfe72df31c"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c5ebac750d9d5f2706654c638c041635c385596caf68f81342011ddfa1e5598"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2aafc5a503855ea5885559eae883978c9b6d8c8993d67766ee73d82e841300dd"}, - {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4868f6bd7c9d98904b748a2653031fc9c2f85b6237009d475b1008bfaeb0a5aa"}, - {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa2f457b4af386254372dfa78a2eda2563680d982422641a85f271c859df1987"}, - {file = "pydantic_core-2.20.1-cp38-none-win32.whl", hash = "sha256:225b67a1f6d602de0ce7f6c1c3ae89a4aa25d3de9be857999e9124f15dab486a"}, - {file = "pydantic_core-2.20.1-cp38-none-win_amd64.whl", hash = "sha256:6b507132dcfc0dea440cce23ee2182c0ce7aba7054576efc65634f080dbe9434"}, - {file = "pydantic_core-2.20.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:b03f7941783b4c4a26051846dea594628b38f6940a2fdc0df00b221aed39314c"}, - {file = "pydantic_core-2.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1eedfeb6089ed3fad42e81a67755846ad4dcc14d73698c120a82e4ccf0f1f9f6"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:635fee4e041ab9c479e31edda27fcf966ea9614fff1317e280d99eb3e5ab6fe2"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:77bf3ac639c1ff567ae3b47f8d4cc3dc20f9966a2a6dd2311dcc055d3d04fb8a"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ed1b0132f24beeec5a78b67d9388656d03e6a7c837394f99257e2d55b461611"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6514f963b023aeee506678a1cf821fe31159b925c4b76fe2afa94cc70b3222b"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10d4204d8ca33146e761c79f83cc861df20e7ae9f6487ca290a97702daf56006"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d036c7187b9422ae5b262badb87a20a49eb6c5238b2004e96d4da1231badef1"}, - {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9ebfef07dbe1d93efb94b4700f2d278494e9162565a54f124c404a5656d7ff09"}, - {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6b9d9bb600328a1ce523ab4f454859e9d439150abb0906c5a1983c146580ebab"}, - {file = "pydantic_core-2.20.1-cp39-none-win32.whl", hash = "sha256:784c1214cb6dd1e3b15dd8b91b9a53852aed16671cc3fbe4786f4f1db07089e2"}, - {file = "pydantic_core-2.20.1-cp39-none-win_amd64.whl", hash = "sha256:d2fe69c5434391727efa54b47a1e7986bb0186e72a41b203df8f5b0a19a4f669"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a45f84b09ac9c3d35dfcf6a27fd0634d30d183205230a0ebe8373a0e8cfa0906"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d02a72df14dfdbaf228424573a07af10637bd490f0901cee872c4f434a735b94"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2b27e6af28f07e2f195552b37d7d66b150adbaa39a6d327766ffd695799780f"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:084659fac3c83fd674596612aeff6041a18402f1e1bc19ca39e417d554468482"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:242b8feb3c493ab78be289c034a1f659e8826e2233786e36f2893a950a719bb6"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:38cf1c40a921d05c5edc61a785c0ddb4bed67827069f535d794ce6bcded919fc"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e0bbdd76ce9aa5d4209d65f2b27fc6e5ef1312ae6c5333c26db3f5ade53a1e99"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:254ec27fdb5b1ee60684f91683be95e5133c994cc54e86a0b0963afa25c8f8a6"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:407653af5617f0757261ae249d3fba09504d7a71ab36ac057c938572d1bc9331"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:c693e916709c2465b02ca0ad7b387c4f8423d1db7b4649c551f27a529181c5ad"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b5ff4911aea936a47d9376fd3ab17e970cc543d1b68921886e7f64bd28308d1"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177f55a886d74f1808763976ac4efd29b7ed15c69f4d838bbd74d9d09cf6fa86"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:964faa8a861d2664f0c7ab0c181af0bea66098b1919439815ca8803ef136fc4e"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:4dd484681c15e6b9a977c785a345d3e378d72678fd5f1f3c0509608da24f2ac0"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f6d6cff3538391e8486a431569b77921adfcdef14eb18fbf19b7c0a5294d4e6a"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a6d511cc297ff0883bc3708b465ff82d7560193169a8b93260f74ecb0a5e08a7"}, - {file = "pydantic_core-2.20.1.tar.gz", hash = "sha256:26ca695eeee5f9f1aeeb211ffc12f10bcb6f71e2989988fda61dabd65db878d4"}, -] - -[package.dependencies] -typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" - -[[package]] -name = "pygments" -version = "2.18.0" -description = "Pygments is a syntax highlighting package written in Python." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, - {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, -] - -[package.extras] -windows-terminal = ["colorama (>=0.4.6)"] - -[[package]] -name = "pymdown-extensions" -version = "10.9" -description = "Extension pack for Python Markdown." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pymdown_extensions-10.9-py3-none-any.whl", hash = "sha256:d323f7e90d83c86113ee78f3fe62fc9dee5f56b54d912660703ea1816fed5626"}, - {file = "pymdown_extensions-10.9.tar.gz", hash = "sha256:6ff740bcd99ec4172a938970d42b96128bdc9d4b9bcad72494f29921dc69b753"}, -] - -[package.dependencies] -markdown = ">=3.6" -pyyaml = "*" - -[package.extras] -extra = ["pygments (>=2.12)"] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -description = "Extensions to the standard Python datetime module" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, - {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, -] - -[package.dependencies] -six = ">=1.5" - -[[package]] -name = "pytz" -version = "2024.1" -description = "World timezone definitions, modern and historical" -optional = false -python-versions = "*" -files = [ - {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, - {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.2" -description = "YAML parser and emitter for Python" -optional = false -python-versions = ">=3.8" -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"}, -] - -[[package]] -name = "pyyaml-env-tag" -version = "0.1" -description = "A custom YAML tag for referencing environment variables in YAML files. " -optional = false -python-versions = ">=3.6" -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"}, -] - -[package.dependencies] -pyyaml = "*" - -[[package]] -name = "regex" -version = "2024.7.24" -description = "Alternative regular expression module, to replace re." -optional = false -python-versions = ">=3.8" -files = [ - {file = "regex-2024.7.24-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:228b0d3f567fafa0633aee87f08b9276c7062da9616931382993c03808bb68ce"}, - {file = "regex-2024.7.24-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3426de3b91d1bc73249042742f45c2148803c111d1175b283270177fdf669024"}, - {file = "regex-2024.7.24-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f273674b445bcb6e4409bf8d1be67bc4b58e8b46fd0d560055d515b8830063cd"}, - {file = "regex-2024.7.24-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23acc72f0f4e1a9e6e9843d6328177ae3074b4182167e34119ec7233dfeccf53"}, - {file = "regex-2024.7.24-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65fd3d2e228cae024c411c5ccdffae4c315271eee4a8b839291f84f796b34eca"}, - {file = "regex-2024.7.24-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c414cbda77dbf13c3bc88b073a1a9f375c7b0cb5e115e15d4b73ec3a2fbc6f59"}, - {file = "regex-2024.7.24-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf7a89eef64b5455835f5ed30254ec19bf41f7541cd94f266ab7cbd463f00c41"}, - {file = "regex-2024.7.24-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19c65b00d42804e3fbea9708f0937d157e53429a39b7c61253ff15670ff62cb5"}, - {file = "regex-2024.7.24-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7a5486ca56c8869070a966321d5ab416ff0f83f30e0e2da1ab48815c8d165d46"}, - {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6f51f9556785e5a203713f5efd9c085b4a45aecd2a42573e2b5041881b588d1f"}, - {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a4997716674d36a82eab3e86f8fa77080a5d8d96a389a61ea1d0e3a94a582cf7"}, - {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c0abb5e4e8ce71a61d9446040c1e86d4e6d23f9097275c5bd49ed978755ff0fe"}, - {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:18300a1d78cf1290fa583cd8b7cde26ecb73e9f5916690cf9d42de569c89b1ce"}, - {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:416c0e4f56308f34cdb18c3f59849479dde5b19febdcd6e6fa4d04b6c31c9faa"}, - {file = "regex-2024.7.24-cp310-cp310-win32.whl", hash = "sha256:fb168b5924bef397b5ba13aabd8cf5df7d3d93f10218d7b925e360d436863f66"}, - {file = "regex-2024.7.24-cp310-cp310-win_amd64.whl", hash = "sha256:6b9fc7e9cc983e75e2518496ba1afc524227c163e43d706688a6bb9eca41617e"}, - {file = "regex-2024.7.24-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:382281306e3adaaa7b8b9ebbb3ffb43358a7bbf585fa93821300a418bb975281"}, - {file = "regex-2024.7.24-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4fdd1384619f406ad9037fe6b6eaa3de2749e2e12084abc80169e8e075377d3b"}, - {file = "regex-2024.7.24-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3d974d24edb231446f708c455fd08f94c41c1ff4f04bcf06e5f36df5ef50b95a"}, - {file = "regex-2024.7.24-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2ec4419a3fe6cf8a4795752596dfe0adb4aea40d3683a132bae9c30b81e8d73"}, - {file = "regex-2024.7.24-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb563dd3aea54c797adf513eeec819c4213d7dbfc311874eb4fd28d10f2ff0f2"}, - {file = "regex-2024.7.24-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:45104baae8b9f67569f0f1dca5e1f1ed77a54ae1cd8b0b07aba89272710db61e"}, - {file = "regex-2024.7.24-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:994448ee01864501912abf2bad9203bffc34158e80fe8bfb5b031f4f8e16da51"}, - {file = "regex-2024.7.24-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3fac296f99283ac232d8125be932c5cd7644084a30748fda013028c815ba3364"}, - {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7e37e809b9303ec3a179085415cb5f418ecf65ec98cdfe34f6a078b46ef823ee"}, - {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:01b689e887f612610c869421241e075c02f2e3d1ae93a037cb14f88ab6a8934c"}, - {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f6442f0f0ff81775eaa5b05af8a0ffa1dda36e9cf6ec1e0d3d245e8564b684ce"}, - {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:871e3ab2838fbcb4e0865a6e01233975df3a15e6fce93b6f99d75cacbd9862d1"}, - {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c918b7a1e26b4ab40409820ddccc5d49871a82329640f5005f73572d5eaa9b5e"}, - {file = "regex-2024.7.24-cp311-cp311-win32.whl", hash = "sha256:2dfbb8baf8ba2c2b9aa2807f44ed272f0913eeeba002478c4577b8d29cde215c"}, - {file = "regex-2024.7.24-cp311-cp311-win_amd64.whl", hash = "sha256:538d30cd96ed7d1416d3956f94d54e426a8daf7c14527f6e0d6d425fcb4cca52"}, - {file = "regex-2024.7.24-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:fe4ebef608553aff8deb845c7f4f1d0740ff76fa672c011cc0bacb2a00fbde86"}, - {file = "regex-2024.7.24-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:74007a5b25b7a678459f06559504f1eec2f0f17bca218c9d56f6a0a12bfffdad"}, - {file = "regex-2024.7.24-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7df9ea48641da022c2a3c9c641650cd09f0cd15e8908bf931ad538f5ca7919c9"}, - {file = "regex-2024.7.24-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a1141a1dcc32904c47f6846b040275c6e5de0bf73f17d7a409035d55b76f289"}, - {file = "regex-2024.7.24-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80c811cfcb5c331237d9bad3bea2c391114588cf4131707e84d9493064d267f9"}, - {file = "regex-2024.7.24-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7214477bf9bd195894cf24005b1e7b496f46833337b5dedb7b2a6e33f66d962c"}, - {file = "regex-2024.7.24-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d55588cba7553f0b6ec33130bc3e114b355570b45785cebdc9daed8c637dd440"}, - {file = "regex-2024.7.24-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:558a57cfc32adcf19d3f791f62b5ff564922942e389e3cfdb538a23d65a6b610"}, - {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a512eed9dfd4117110b1881ba9a59b31433caed0c4101b361f768e7bcbaf93c5"}, - {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:86b17ba823ea76256b1885652e3a141a99a5c4422f4a869189db328321b73799"}, - {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5eefee9bfe23f6df09ffb6dfb23809f4d74a78acef004aa904dc7c88b9944b05"}, - {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:731fcd76bbdbf225e2eb85b7c38da9633ad3073822f5ab32379381e8c3c12e94"}, - {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eaef80eac3b4cfbdd6de53c6e108b4c534c21ae055d1dbea2de6b3b8ff3def38"}, - {file = "regex-2024.7.24-cp312-cp312-win32.whl", hash = "sha256:185e029368d6f89f36e526764cf12bf8d6f0e3a2a7737da625a76f594bdfcbfc"}, - {file = "regex-2024.7.24-cp312-cp312-win_amd64.whl", hash = "sha256:2f1baff13cc2521bea83ab2528e7a80cbe0ebb2c6f0bfad15be7da3aed443908"}, - {file = "regex-2024.7.24-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:66b4c0731a5c81921e938dcf1a88e978264e26e6ac4ec96a4d21ae0354581ae0"}, - {file = "regex-2024.7.24-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:88ecc3afd7e776967fa16c80f974cb79399ee8dc6c96423321d6f7d4b881c92b"}, - {file = "regex-2024.7.24-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:64bd50cf16bcc54b274e20235bf8edbb64184a30e1e53873ff8d444e7ac656b2"}, - {file = "regex-2024.7.24-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb462f0e346fcf41a901a126b50f8781e9a474d3927930f3490f38a6e73b6950"}, - {file = "regex-2024.7.24-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a82465ebbc9b1c5c50738536fdfa7cab639a261a99b469c9d4c7dcbb2b3f1e57"}, - {file = "regex-2024.7.24-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:68a8f8c046c6466ac61a36b65bb2395c74451df2ffb8458492ef49900efed293"}, - {file = "regex-2024.7.24-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac8e84fff5d27420f3c1e879ce9929108e873667ec87e0c8eeb413a5311adfe"}, - {file = "regex-2024.7.24-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba2537ef2163db9e6ccdbeb6f6424282ae4dea43177402152c67ef869cf3978b"}, - {file = "regex-2024.7.24-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:43affe33137fcd679bdae93fb25924979517e011f9dea99163f80b82eadc7e53"}, - {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:c9bb87fdf2ab2370f21e4d5636e5317775e5d51ff32ebff2cf389f71b9b13750"}, - {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:945352286a541406f99b2655c973852da7911b3f4264e010218bbc1cc73168f2"}, - {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:8bc593dcce679206b60a538c302d03c29b18e3d862609317cb560e18b66d10cf"}, - {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:3f3b6ca8eae6d6c75a6cff525c8530c60e909a71a15e1b731723233331de4169"}, - {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c51edc3541e11fbe83f0c4d9412ef6c79f664a3745fab261457e84465ec9d5a8"}, - {file = "regex-2024.7.24-cp38-cp38-win32.whl", hash = "sha256:d0a07763776188b4db4c9c7fb1b8c494049f84659bb387b71c73bbc07f189e96"}, - {file = "regex-2024.7.24-cp38-cp38-win_amd64.whl", hash = "sha256:8fd5afd101dcf86a270d254364e0e8dddedebe6bd1ab9d5f732f274fa00499a5"}, - {file = "regex-2024.7.24-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0ffe3f9d430cd37d8fa5632ff6fb36d5b24818c5c986893063b4e5bdb84cdf24"}, - {file = "regex-2024.7.24-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:25419b70ba00a16abc90ee5fce061228206173231f004437730b67ac77323f0d"}, - {file = "regex-2024.7.24-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:33e2614a7ce627f0cdf2ad104797d1f68342d967de3695678c0cb84f530709f8"}, - {file = "regex-2024.7.24-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d33a0021893ede5969876052796165bab6006559ab845fd7b515a30abdd990dc"}, - {file = "regex-2024.7.24-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04ce29e2c5fedf296b1a1b0acc1724ba93a36fb14031f3abfb7abda2806c1535"}, - {file = "regex-2024.7.24-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b16582783f44fbca6fcf46f61347340c787d7530d88b4d590a397a47583f31dd"}, - {file = "regex-2024.7.24-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:836d3cc225b3e8a943d0b02633fb2f28a66e281290302a79df0e1eaa984ff7c1"}, - {file = "regex-2024.7.24-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:438d9f0f4bc64e8dea78274caa5af971ceff0f8771e1a2333620969936ba10be"}, - {file = "regex-2024.7.24-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:973335b1624859cb0e52f96062a28aa18f3a5fc77a96e4a3d6d76e29811a0e6e"}, - {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c5e69fd3eb0b409432b537fe3c6f44ac089c458ab6b78dcec14478422879ec5f"}, - {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:fbf8c2f00904eaf63ff37718eb13acf8e178cb940520e47b2f05027f5bb34ce3"}, - {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ae2757ace61bc4061b69af19e4689fa4416e1a04840f33b441034202b5cd02d4"}, - {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:44fc61b99035fd9b3b9453f1713234e5a7c92a04f3577252b45feefe1b327759"}, - {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:84c312cdf839e8b579f504afcd7b65f35d60b6285d892b19adea16355e8343c9"}, - {file = "regex-2024.7.24-cp39-cp39-win32.whl", hash = "sha256:ca5b2028c2f7af4e13fb9fc29b28d0ce767c38c7facdf64f6c2cd040413055f1"}, - {file = "regex-2024.7.24-cp39-cp39-win_amd64.whl", hash = "sha256:7c479f5ae937ec9985ecaf42e2e10631551d909f203e31308c12d703922742f9"}, - {file = "regex-2024.7.24.tar.gz", hash = "sha256:9cfd009eed1a46b27c14039ad5bbc5e71b6367c5b2e6d5f5da0ea91600817506"}, -] - -[[package]] -name = "requests" -version = "2.32.3" -description = "Python HTTP for Humans." -optional = false -python-versions = ">=3.8" -files = [ - {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, - {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, -] - -[package.dependencies] -certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" -idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<3" - -[package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] - -[[package]] -name = "rich" -version = "13.7.1" -description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222"}, - {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, -] - -[package.dependencies] -markdown-it-py = ">=2.2.0" -pygments = ">=2.13.0,<3.0.0" -typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.9\""} - -[package.extras] -jupyter = ["ipywidgets (>=7.5.1,<9)"] - -[[package]] -name = "ruff" -version = "0.5.6" -description = "An extremely fast Python linter and code formatter, written in Rust." -optional = false -python-versions = ">=3.7" -files = [ - {file = "ruff-0.5.6-py3-none-linux_armv6l.whl", hash = "sha256:a0ef5930799a05522985b9cec8290b185952f3fcd86c1772c3bdbd732667fdcd"}, - {file = "ruff-0.5.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b652dc14f6ef5d1552821e006f747802cc32d98d5509349e168f6bf0ee9f8f42"}, - {file = "ruff-0.5.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:80521b88d26a45e871f31e4b88938fd87db7011bb961d8afd2664982dfc3641a"}, - {file = "ruff-0.5.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9bc8f328a9f1309ae80e4d392836e7dbc77303b38ed4a7112699e63d3b066ab"}, - {file = "ruff-0.5.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4d394940f61f7720ad371ddedf14722ee1d6250fd8d020f5ea5a86e7be217daf"}, - {file = "ruff-0.5.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:111a99cdb02f69ddb2571e2756e017a1496c2c3a2aeefe7b988ddab38b416d36"}, - {file = "ruff-0.5.6-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:e395daba77a79f6dc0d07311f94cc0560375ca20c06f354c7c99af3bf4560c5d"}, - {file = "ruff-0.5.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c476acb43c3c51e3c614a2e878ee1589655fa02dab19fe2db0423a06d6a5b1b6"}, - {file = "ruff-0.5.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e2ff8003f5252fd68425fd53d27c1f08b201d7ed714bb31a55c9ac1d4c13e2eb"}, - {file = "ruff-0.5.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c94e084ba3eaa80c2172918c2ca2eb2230c3f15925f4ed8b6297260c6ef179ad"}, - {file = "ruff-0.5.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:1f77c1c3aa0669fb230b06fb24ffa3e879391a3ba3f15e3d633a752da5a3e670"}, - {file = "ruff-0.5.6-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:f908148c93c02873210a52cad75a6eda856b2cbb72250370ce3afef6fb99b1ed"}, - {file = "ruff-0.5.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:563a7ae61ad284187d3071d9041c08019975693ff655438d8d4be26e492760bd"}, - {file = "ruff-0.5.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:94fe60869bfbf0521e04fd62b74cbca21cbc5beb67cbb75ab33fe8c174f54414"}, - {file = "ruff-0.5.6-py3-none-win32.whl", hash = "sha256:e6a584c1de6f8591c2570e171cc7ce482bb983d49c70ddf014393cd39e9dfaed"}, - {file = "ruff-0.5.6-py3-none-win_amd64.whl", hash = "sha256:d7fe7dccb1a89dc66785d7aa0ac283b2269712d8ed19c63af908fdccca5ccc1a"}, - {file = "ruff-0.5.6-py3-none-win_arm64.whl", hash = "sha256:57c6c0dd997b31b536bff49b9eee5ed3194d60605a4427f735eeb1f9c1b8d264"}, - {file = "ruff-0.5.6.tar.gz", hash = "sha256:07c9e3c2a8e1fe377dd460371c3462671a728c981c3205a5217291422209f642"}, -] - -[[package]] -name = "six" -version = "1.16.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] - -[[package]] -name = "sniffio" -version = "1.3.1" -description = "Sniff out which async library your code is running under" -optional = false -python-versions = ">=3.7" -files = [ - {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, - {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, -] - -[[package]] -name = "starlette" -version = "0.37.2" -description = "The little ASGI library that shines." -optional = false -python-versions = ">=3.8" -files = [ - {file = "starlette-0.37.2-py3-none-any.whl", hash = "sha256:6fe59f29268538e5d0d182f2791a479a0c64638e6935d1c6989e63fb2699c6ee"}, - {file = "starlette-0.37.2.tar.gz", hash = "sha256:9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823"}, -] - -[package.dependencies] -anyio = ">=3.4.0,<5" -typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} - -[package.extras] -full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.7)", "pyyaml"] - -[[package]] -name = "tabulate" -version = "0.9.0" -description = "Pretty-print tabular data" -optional = false -python-versions = ">=3.7" -files = [ - {file = "tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f"}, - {file = "tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c"}, -] - -[package.extras] -widechars = ["wcwidth"] - -[[package]] -name = "typing-extensions" -version = "4.12.2" -description = "Backported and Experimental Type Hints for Python 3.8+" -optional = false -python-versions = ">=3.8" -files = [ - {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, - {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, -] - -[[package]] -name = "urllib3" -version = "2.2.2" -description = "HTTP library with thread-safe connection pooling, file post, and more." -optional = false -python-versions = ">=3.8" -files = [ - {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, - {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, -] - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] - -[[package]] -name = "watchdog" -version = "4.0.1" -description = "Filesystem events monitoring" -optional = false -python-versions = ">=3.8" -files = [ - {file = "watchdog-4.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:da2dfdaa8006eb6a71051795856bedd97e5b03e57da96f98e375682c48850645"}, - {file = "watchdog-4.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e93f451f2dfa433d97765ca2634628b789b49ba8b504fdde5837cdcf25fdb53b"}, - {file = "watchdog-4.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ef0107bbb6a55f5be727cfc2ef945d5676b97bffb8425650dadbb184be9f9a2b"}, - {file = "watchdog-4.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:17e32f147d8bf9657e0922c0940bcde863b894cd871dbb694beb6704cfbd2fb5"}, - {file = "watchdog-4.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:03e70d2df2258fb6cb0e95bbdbe06c16e608af94a3ffbd2b90c3f1e83eb10767"}, - {file = "watchdog-4.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:123587af84260c991dc5f62a6e7ef3d1c57dfddc99faacee508c71d287248459"}, - {file = "watchdog-4.0.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:093b23e6906a8b97051191a4a0c73a77ecc958121d42346274c6af6520dec175"}, - {file = "watchdog-4.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:611be3904f9843f0529c35a3ff3fd617449463cb4b73b1633950b3d97fa4bfb7"}, - {file = "watchdog-4.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:62c613ad689ddcb11707f030e722fa929f322ef7e4f18f5335d2b73c61a85c28"}, - {file = "watchdog-4.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:d4925e4bf7b9bddd1c3de13c9b8a2cdb89a468f640e66fbfabaf735bd85b3e35"}, - {file = "watchdog-4.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cad0bbd66cd59fc474b4a4376bc5ac3fc698723510cbb64091c2a793b18654db"}, - {file = "watchdog-4.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a3c2c317a8fb53e5b3d25790553796105501a235343f5d2bf23bb8649c2c8709"}, - {file = "watchdog-4.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c9904904b6564d4ee8a1ed820db76185a3c96e05560c776c79a6ce5ab71888ba"}, - {file = "watchdog-4.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:667f3c579e813fcbad1b784db7a1aaa96524bed53437e119f6a2f5de4db04235"}, - {file = "watchdog-4.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d10a681c9a1d5a77e75c48a3b8e1a9f2ae2928eda463e8d33660437705659682"}, - {file = "watchdog-4.0.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0144c0ea9997b92615af1d94afc0c217e07ce2c14912c7b1a5731776329fcfc7"}, - {file = "watchdog-4.0.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:998d2be6976a0ee3a81fb8e2777900c28641fb5bfbd0c84717d89bca0addcdc5"}, - {file = "watchdog-4.0.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e7921319fe4430b11278d924ef66d4daa469fafb1da679a2e48c935fa27af193"}, - {file = "watchdog-4.0.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:f0de0f284248ab40188f23380b03b59126d1479cd59940f2a34f8852db710625"}, - {file = "watchdog-4.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bca36be5707e81b9e6ce3208d92d95540d4ca244c006b61511753583c81c70dd"}, - {file = "watchdog-4.0.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ab998f567ebdf6b1da7dc1e5accfaa7c6992244629c0fdaef062f43249bd8dee"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_aarch64.whl", hash = "sha256:dddba7ca1c807045323b6af4ff80f5ddc4d654c8bce8317dde1bd96b128ed253"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_armv7l.whl", hash = "sha256:4513ec234c68b14d4161440e07f995f231be21a09329051e67a2118a7a612d2d"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_i686.whl", hash = "sha256:4107ac5ab936a63952dea2a46a734a23230aa2f6f9db1291bf171dac3ebd53c6"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_ppc64.whl", hash = "sha256:6e8c70d2cd745daec2a08734d9f63092b793ad97612470a0ee4cbb8f5f705c57"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:f27279d060e2ab24c0aa98363ff906d2386aa6c4dc2f1a374655d4e02a6c5e5e"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_s390x.whl", hash = "sha256:f8affdf3c0f0466e69f5b3917cdd042f89c8c63aebdb9f7c078996f607cdb0f5"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_x86_64.whl", hash = "sha256:ac7041b385f04c047fcc2951dc001671dee1b7e0615cde772e84b01fbf68ee84"}, - {file = "watchdog-4.0.1-py3-none-win32.whl", hash = "sha256:206afc3d964f9a233e6ad34618ec60b9837d0582b500b63687e34011e15bb429"}, - {file = "watchdog-4.0.1-py3-none-win_amd64.whl", hash = "sha256:7577b3c43e5909623149f76b099ac49a1a01ca4e167d1785c76eb52fa585745a"}, - {file = "watchdog-4.0.1-py3-none-win_ia64.whl", hash = "sha256:d7b9f5f3299e8dd230880b6c55504a1f69cf1e4316275d1b215ebdd8187ec88d"}, - {file = "watchdog-4.0.1.tar.gz", hash = "sha256:eebaacf674fa25511e8867028d281e602ee6500045b57f43b08778082f7f8b44"}, -] - -[package.extras] -watchmedo = ["PyYAML (>=3.10)"] - -[[package]] -name = "zipp" -version = "3.19.2" -description = "Backport of pathlib-compatible object wrapper for zip files" -optional = false -python-versions = ">=3.8" -files = [ - {file = "zipp-3.19.2-py3-none-any.whl", hash = "sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c"}, - {file = "zipp-3.19.2.tar.gz", hash = "sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19"}, -] - -[package.extras] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] - -[metadata] -lock-version = "2.0" -python-versions = "^3.8" -content-hash = "f01844472d53a36a34300ab3c10cbbcbb45a352a73833057322fc95c078ab7bf" diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index cea4884..0000000 --- a/pyproject.toml +++ /dev/null @@ -1,41 +0,0 @@ -[project] -requires-python = ">=3.8" - -[tool.ruff] -line-length = 120 - -[tool.ruff.format] -indent-style = "space" - -[tool.poetry] -name = "peanuts" -version = "0.0.1a" -description = "A file based database system." -authors = ["externref "] -license = "MIT" -readme = "README.md" - -[tool.poetry.dependencies] -python = "^3.8" -attrs = "^24.1.0" -fishhook = "^0.3.2" -tabulate = "^0.9.0" -rich = "^13.7.1" - -[tool.poetry.group.server.dependencies] -fastapi = "^0.112.0" - -[tool.poetry.group.dev.dependencies] -ruff = "^0.5.6" -isort = "^5.13.2" - -[tool.poetry.group.docs.dependencies] -mkdocs-material = "^9.5.31" - - -[tool.poetry.scripts] -peanuts = 'peanuts:main' - -[build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" diff --git a/src/cache.py b/src/cache.py deleted file mode 100644 index 3468eac..0000000 --- a/src/cache.py +++ /dev/null @@ -1,22 +0,0 @@ -from __future__ import annotations - -import json -import os -import typing - -if typing.TYPE_CHECKING: - from src.schema import Schema - - -class Cache: - schema: Schema - storage: dict[str, dict[str, typing.Any]] - - def __init__(self, inst: Schema) -> None: - self.schema = inst - self.storage = {} - - def load(self) -> None: - for item in os.listdir(self.schema.storage_path): - with open(self.schema.storage_path / item) as file: - self.storage[item] = json.load(file) diff --git a/src/common.py b/src/common.py deleted file mode 100644 index eba693e..0000000 --- a/src/common.py +++ /dev/null @@ -1,30 +0,0 @@ -# MIT License - -# Copyright (c) 2024 sarthak - -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: - -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. - -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - - -def display_syntax(cmd: str, valid: str) -> str: - return f"[red]Wrong usage of command {cmd}\n[bold]Correct Usage (<>: Required, []: Optional):[/bold][/red] [green]{valid}[/green]" - - -class DataTypeConflictException(Exception): - def __init__(self, exp: str, got: str) -> None: - super().__init__(f"Expected {exp}, got {got}") diff --git a/src/main.py b/src/main.py deleted file mode 100644 index dc14007..0000000 --- a/src/main.py +++ /dev/null @@ -1,62 +0,0 @@ -# MIT License - -# Copyright (c) 2024 sarthak - -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: - -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. - -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from __future__ import annotations - -import json -import os -import pathlib - -from src.schema import Schema - - -class Instance: - database_name: str - schemas: dict[str, Schema] - - def __init__(self, db_name: str) -> None: - self.database_name = db_name - if not ((dpath := pathlib.Path(f"data/databases/{db_name}")).exists() and dpath.is_dir()): - os.mkdir(f"data/databases/{db_name}") - os.mkdir(f"data/databases/{self.database_name}/data/") - os.mkdir(f"data/databases/{db_name}/schemas") - self.schemas = { - fname.split(".")[0]: Schema.from_str( - db_name, - fname.split(".")[0], - open(f"data/databases/{db_name}/schemas/{fname}").read(), - ) - for fname in os.listdir(f"data/databases/{db_name}/schemas") - } - - def drop_schema(self, name: str) -> None: - if not self.schemas.get(name): - Schema.console.print(f"[red]No schema named {name}") - return - self.schemas.pop(name) - os.remove(f"data/databases/{self.database_name}/schemas/{name}.pnuts.json") - os.rmdir(f"data/databases/{self.database_name}/data/{name}") - Schema.console.print(f"Schema {name} dropped.") - - def add_schema(self, name: str, data: str) -> None: - schema = Schema(self.database_name, name, json.loads(data)) - self.schemas[name] = schema.create() diff --git a/src/schema.py b/src/schema.py deleted file mode 100644 index 40e8248..0000000 --- a/src/schema.py +++ /dev/null @@ -1,135 +0,0 @@ -# MIT License - -# Copyright (c) 2024 sarthak - -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: - -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. - -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from __future__ import annotations - -import enum -import json -import os -import pathlib -import string -import typing - -from rich.console import Console - -from src.cache import Cache -from src.common import display_syntax - -SchemaTypes = typing.Literal["string", "integer", "float", "bool", "a_string", "a_integer", "a_float", "a_bool"] - - -class SchemaTypeToPyT(enum.Enum): - STRING = "string" - INTEGER = "integer" - FLOAT = "float" - BOOL = "bool" - A_STRING = "a_string" - A_INTEGER = "a_integer" - A_FLOAT = "a_float" - A_BOOL = "a_bool" - - -class Schema: - database: str - name: str - raw_configs: dict[str, SchemaTypes] - configs: dict[str, SchemaTypeToPyT] - cache: Cache - console = Console() - - def __init__(self, dbname: str, schema_name: str, schema_data: dict[str, SchemaTypes]) -> None: - self.database = dbname - self.name = schema_name - self.raw_configs = schema_data - self.cache = Cache(self) - self.configs = {name: SchemaTypeToPyT(t.lower()) for name, t in schema_data.items()} - - def __repr__(self) -> str: - return json.dumps(self.raw_configs, indent=4) - - @classmethod - def from_str(cls, db_name: str, schema_name: str, data: str) -> Schema: - return cls(db_name, schema_name, json.loads(data)) - - @property - def storage_path(self) -> pathlib.Path: - return pathlib.Path(f"data/databases/{self.database}/data/{self.name}") - - def create(self) -> Schema: - with open(f"data/databases/{self.database}/schemas/{self.name}.pnuts.json", "w") as schemafile: - schemafile.write(json.dumps(self.raw_configs, indent=4)) - - os.mkdir(f"data/databases/{self.database}/data/{self.name}") - self.console.print(f"[green]Schema [bold]{self.name}[/bold] created") - return self - - def validate(self, data: dict[str, typing.Any]) -> None: - assert set(self.raw_configs.keys()) == set(data.keys()), "Key mismatch" - - def verify_array(t: type, arr: list[typing.Any]) -> None: - for item in arr: - assert isinstance(item, t), f"Expected type {t} for {key}, got {type(item)}" - - for key, value in data.items(): - dtype = self.configs[key] - if dtype == SchemaTypeToPyT.STRING: - assert isinstance(value, str), f"Expected type {dtype} for {key}, got {type(value)}" - elif dtype == SchemaTypeToPyT.INTEGER: - assert isinstance(value, int), f"Expected type {dtype} for {key}, got {type(value)}" - elif dtype == SchemaTypeToPyT.FLOAT: - assert isinstance(value, float), f"Expected type {dtype} for {key}, got {type(value)}" - elif dtype == SchemaTypeToPyT.BOOL: - assert isinstance(value, bool), f"Expected type {dtype} for {key}, got {type(value)}" - elif dtype == SchemaTypeToPyT.A_STRING: - assert verify_array(str, value) - elif dtype == SchemaTypeToPyT.A_INTEGER: - assert verify_array(int, value) - elif dtype == SchemaTypeToPyT.A_FLOAT: - assert verify_array(float, value) - elif dtype == SchemaTypeToPyT.A_BOOL: - assert verify_array(bool, value) - - def write(self, id: str, payload: str) -> None: - if set(id) & set(string.ascii_letters + "1234567890-_") != set(id): - self.console.print(display_syntax("insert", "insert [data_JSON]")) - return - try: - self.validate(d := json.loads(payload)) - except AssertionError as e: - self.console.print(f"[red]{e}") - return - with open(f"data/databases/{self.database}/data/{self.name}/{id}.pnuts.json", "w") as datafile: - json.dump(d, datafile, indent=4) - self.console.print(f"[green]Written data for [bold]{id}[/bold] in [bold]{self.name}[/bold]") - - def read(self, id: str) -> dict[str, typing.Any]: - with open(f"data/databases/{self.database}/data/{self.name}/{id}.pnuts.json") as file: - return json.load(file) - - def display_dict(self) -> dict[str, list[typing.Any]]: - data: dict[str, list[typing.Any]] = {"id": []} - data.update({f"\033[1m{col}\033[0m": [] for col in self.configs.keys()}) - for file in self.storage_path.glob("*.pnuts.json"): - data["id"].append(file.name.split(".")[0]) - for key, value in json.loads(file.read_text()).items(): - data[f"\033[1m{key}\033[0m"].append(value) - return data From fb1167c17917c8feac5181799fee8b925cec5299 Mon Sep 17 00:00:00 2001 From: externref Date: Fri, 16 Aug 2024 04:12:05 +0530 Subject: [PATCH 02/14] setup project --- Cargo.lock | 7 +++++++ Cargo.toml | 6 ++++++ README.md | 16 ++++++++-------- 3 files changed, 21 insertions(+), 8 deletions(-) create mode 100644 Cargo.lock create mode 100644 Cargo.toml diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..f77f182 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "space" +version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..aeee403 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "space" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/README.md b/README.md index accc409..726f570 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ -# peanuts 🥜 +# space 🌌

- - + + - - -
-A minimalist JSON based database for people who love peanuts :3 ( or not ) + + +
+A minimalist JSON based database.

@@ -16,5 +16,5 @@ A minimalist JSON based database for people who love peanuts :3 ( or not ) > [!WARNING] > This database system is just a raw idea and prone to unexpected behaviour. -Documentation @ [https://peanuts.externref.tech](https://peanuts.externref.tech) +Documentation @ [https://space.externref.tech](https://space.externref.tech) From 5f4b93b32553002f4da2930b2c9c1ca4b27a30fc Mon Sep 17 00:00:00 2001 From: externref Date: Fri, 16 Aug 2024 04:12:30 +0530 Subject: [PATCH 03/14] add `database` and `schema` structs --- src/internals/database.rs | 58 ++++++++++++++++++++ src/internals/mod.rs | 24 ++++++++ src/internals/schema.rs | 112 ++++++++++++++++++++++++++++++++++++++ src/main.rs | 29 ++++++++++ 4 files changed, 223 insertions(+) create mode 100644 src/internals/database.rs create mode 100644 src/internals/mod.rs create mode 100644 src/internals/schema.rs create mode 100644 src/main.rs diff --git a/src/internals/database.rs b/src/internals/database.rs new file mode 100644 index 0000000..43b000a --- /dev/null +++ b/src/internals/database.rs @@ -0,0 +1,58 @@ +// MIT License + +// Copyright (c) 2024 sarthak + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +use crate::fs_utils; + +use crate::internals::schema; + +pub struct Database { + name: String, + schemas: Vec, + path: std::path::PathBuf, +} + +impl Database { + /** + * loads all schema files from the database storage and adds it to the database instance. + */ + fn load_schemas(&self) {} + fn create_if_not_exist(&self) { + + if !(self.path.exists() & self.path.is_dir()) { + println!("Writing to {:?}", self.path); + std::fs::create_dir(self.path.clone()).unwrap(); + } + } + pub fn new(name: String) -> Database { + let schemas: Vec = vec![]; + let path = fs_utils::get_database_dir(name.to_string()); + let database = Database { + name, + schemas, + path, + }; + database.create_if_not_exist(); + + database.load_schemas(); + return database; + } +} diff --git a/src/internals/mod.rs b/src/internals/mod.rs new file mode 100644 index 0000000..f58bba8 --- /dev/null +++ b/src/internals/mod.rs @@ -0,0 +1,24 @@ +// MIT License + +// Copyright (c) 2024 sarthak + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +pub mod database; +pub mod schema; diff --git a/src/internals/schema.rs b/src/internals/schema.rs new file mode 100644 index 0000000..c46fb86 --- /dev/null +++ b/src/internals/schema.rs @@ -0,0 +1,112 @@ +// MIT License + +// Copyright (c) 2024 sarthak + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +use super::database::Database; + +enum DataType { + String, + Integer, + Float, + Bool, + ArrayString, + ArrayInteger, + ArrayFloat, + ArrayBool, +} + +pub(crate) struct Schema { + database: Database, + name: String, + raw_configs: std::collections::HashMap, + configs: std::collections::HashMap, +} + +impl Schema { + fn generate_configs( + raw_configs: &std::collections::HashMap, + ) -> std::collections::HashMap { + // let type_map = std::collections::HashMap::from([ + // ("string", DataType::String), + // ("integer", DataType::Integer), + // ("float", DataType::Float), + // ("bool", DataType::Bool), + // ("a_string", DataType::ArrayString), + // ("a_integer", DataType::Integer), + // ("a_float", DataType::ArrayFloat), + // ("a_bool", DataType::ArrayBool), + // ]); + let mut configs: std::collections::HashMap = + std::collections::HashMap::new(); + for (attr, val) in raw_configs.iter() { + let valid = [ + "string", + "integer", + "float", + "bool", + "a_string", + "a_integer", + "a_float", + "a_bool", + ]; + if !valid.contains(&val.as_str()) { + panic!("Invalid data type in schema: \"{}\"", val) + } + if val == "string" { + configs.insert(attr.to_string(), DataType::String); + } else if val == "integer" { + configs.insert(attr.to_string(), DataType::Integer); + } else if val == "float" { + configs.insert(attr.to_string(), DataType::Float); + } else if val == "bool" { + configs.insert(attr.to_string(), DataType::Bool); + } else if val == "a_string" { + configs.insert(attr.to_string(), DataType::ArrayString); + } else if val == "a_integer" { + configs.insert(attr.to_string(), DataType::ArrayInteger); + } else if val == "a_float" { + configs.insert(attr.to_string(), DataType::ArrayFloat); + } else if val == "a_bool" { + configs.insert(attr.to_string(), DataType::ArrayBool); + } + } + return configs; + } + + pub fn new( + self, + database:Database, + name: String, + raw_configs: std::collections::HashMap, + ) -> Schema { + let configs = Schema::generate_configs(&raw_configs); + return Schema { + database, + name, + raw_configs, + configs, + }; + } + + pub fn create(database: Database, name: String, configs: std::collections::HashMap ) -> Schema{ + todo!() + } +} diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..7e4591b --- /dev/null +++ b/src/main.rs @@ -0,0 +1,29 @@ +// MIT License + +// Copyright (c) 2024 sarthak + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +mod internals; +mod fs_utils; + +fn main() { + let test_db = "database"; + let db = internals::database::Database::new(test_db.to_string()); +} From b39402cd9622ba16c8a4d8b68735b6c3dd11140f Mon Sep 17 00:00:00 2001 From: externref Date: Fri, 16 Aug 2024 04:12:43 +0530 Subject: [PATCH 04/14] add path related utils --- src/fs_utils.rs | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/fs_utils.rs diff --git a/src/fs_utils.rs b/src/fs_utils.rs new file mode 100644 index 0000000..b298efd --- /dev/null +++ b/src/fs_utils.rs @@ -0,0 +1,54 @@ +// MIT License + +// Copyright (c) 2024 sarthak + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +/** +Gets the path as [std::path::PathBuf] of the directory to use for data storage. +*/ +pub fn get_data_save_dir() -> std::path::PathBuf { + if cfg!(target_os = "linux") { + let xdg_dirs = std::env::var("HOME").unwrap(); + return std::path::PathBuf::from(format!( + "{}/.local/share/", + xdg_dirs.split(":").next().unwrap().to_owned(), + )); + } else if cfg!(target_os = "windows") { + let appdata = std::env::var("APPDATA").unwrap(); + return std::path::PathBuf::from(format!("{}/", appdata)); + } else if cfg!(target_os = "macos") { + let home = std::env::var("HOME").unwrap(); + return std::path::PathBuf::from(format!("{}/Library/Application Support/", home)); + } else { + return std::path::PathBuf::from(format!("data/database/")); + } +} + + +pub fn verify_setup(){ + let data_dir = get_data_save_dir(); +} + + +pub fn get_database_dir(dbname: String)-> std::path::PathBuf{ + let mut strgdir = get_data_save_dir(); + strgdir.push(dbname); + return strgdir; +} \ No newline at end of file From 0de3f2e129cf6d3d4fed86282b3b08d037c573e7 Mon Sep 17 00:00:00 2001 From: externref Date: Mon, 19 Aug 2024 23:33:13 +0530 Subject: [PATCH 05/14] add rust to recommended exts --- .vscode/extensions.json | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.vscode/extensions.json b/.vscode/extensions.json index e09074a..e3697c0 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,10 +1,5 @@ { "recommendations": [ - "ms-python.python", - "charliermarsh.ruff", - "redhat.vscode-yaml", - "eamodio.gitlens", - "ms-python.black-formatter", - "ms-python.isort" + "rust-lang.rust-analyzer", ] } \ No newline at end of file From 63b0022925e1422d4b390f8d9cc3e78d1906135e Mon Sep 17 00:00:00 2001 From: externref Date: Mon, 19 Aug 2024 23:33:33 +0530 Subject: [PATCH 06/14] add `hashmap_0` and `input_str` snippets --- .vscode/decs.code-snippets | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .vscode/decs.code-snippets diff --git a/.vscode/decs.code-snippets b/.vscode/decs.code-snippets new file mode 100644 index 0000000..c756bd1 --- /dev/null +++ b/.vscode/decs.code-snippets @@ -0,0 +1,19 @@ +{ + "add hashmap of string to a struct": { + "scope": "rust", + "prefix": "hashmap_0", + "body": [ + "let $0: std::collections::HashMap =", + " std::collections::HashMap::new();" + ], + "description": "adds a hashmap variable with string keys" + }, + "input a string": { + "scope": "rust", + "prefix": "input_str", + "body": [ + "let mut input = String::new();", + "std::io::stdin().read_line(&mut input).unwrap();" + ] + } +} \ No newline at end of file From 4db5e890762a552dd1a3d5340010d7eb2a0d92cc Mon Sep 17 00:00:00 2001 From: externref Date: Mon, 19 Aug 2024 23:34:35 +0530 Subject: [PATCH 07/14] implement command handler and cli loop --- src/internals/database.rs | 125 +++++++++++++++++++++++++++++++++----- 1 file changed, 110 insertions(+), 15 deletions(-) diff --git a/src/internals/database.rs b/src/internals/database.rs index 43b000a..3f021e8 100644 --- a/src/internals/database.rs +++ b/src/internals/database.rs @@ -20,39 +20,134 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -use crate::fs_utils; +use std::io::Write; +use crate::fs_utils; use crate::internals::schema; +#[derive(Clone)] +pub struct CommandHandler { + db_path: std::path::PathBuf, +} + +impl CommandHandler { + fn create_schema_command(&self, mut args: Vec<&str>) { + let schema_name = args.get(0).unwrap().to_string(); + args.remove(0); + let schema_data: std::collections::HashMap = + serde_json::from_str(args.join(" ").as_str()).unwrap(); + let mut path = self.db_path.clone(); + path.push(format!(".schemas/{}.space.json", schema_name.clone())); + let schema = schema::Schema::new(path, self.db_path.clone(), schema_name, schema_data); + schema.create(); + } + + #[allow(dead_code, unreachable_code, unused)] + fn interactive_write(&self, schema: &schema::Schema) { + todo!(); + let mut data: std::collections::HashMap = + std::collections::HashMap::new(); + for (name, dtype) in schema.configs.iter() { + let mut input = String::new(); + std::io::stdin().read_line(&mut input).unwrap(); + let convr: serde_json::Value = serde_json::from_str(&input).unwrap(); + data.insert(name.to_string(), convr); + } + } +} +#[derive(Clone)] pub struct Database { - name: String, - schemas: Vec, - path: std::path::PathBuf, + pub name: String, + pub schemas: std::collections::HashMap, + pub path: std::path::PathBuf, + pub command_handler: CommandHandler, } impl Database { /** * loads all schema files from the database storage and adds it to the database instance. */ - fn load_schemas(&self) {} - fn create_if_not_exist(&self) { - - if !(self.path.exists() & self.path.is_dir()) { - println!("Writing to {:?}", self.path); - std::fs::create_dir(self.path.clone()).unwrap(); + fn load_schemas(&mut self) { + let mut schemas = self.path.clone(); + schemas.push(".schemas"); + for _file in std::fs::read_dir(schemas).unwrap() { + let file = _file.unwrap(); + let raw_configs: std::collections::HashMap = serde_json::from_reader( + std::io::BufReader::new(std::fs::File::open(&file.path()).unwrap()), + ) + .unwrap(); + + let schema = schema::Schema::new( + file.path(), + self.path.clone(), + file.file_name().into_string().unwrap(), + raw_configs, + ); + self.schemas + .insert(schema.name.split(".").next().unwrap().to_string(), schema); } } pub fn new(name: String) -> Database { - let schemas: Vec = vec![]; + let schemas = std::collections::HashMap::new(); let path = fs_utils::get_database_dir(name.to_string()); - let database = Database { - name, + let command_handler = CommandHandler { + db_path: path.clone(), + }; + let mut database = Database { + name: name.clone(), schemas, path, + command_handler, }; - database.create_if_not_exist(); - + fs_utils::verify_setup(database.name.clone()); database.load_schemas(); return database; } + + #[allow(unused_mut)] + pub fn run_command(&self, command: &str, mut tokens: Vec<&str>) { + match command { + "!create_schema" => { + self.command_handler.create_schema_command(tokens); + } + _ => {} + } + } + + pub fn run(&self) { + clearscreen::clear().unwrap(); + color_print::cprintln!( + r#" ___ ____ ____ ____ ____ + /___)| _ \ / _ | / ___) / _ ) * ☀️ . +|___ || | | |( ( | |( (___ ( (/ / . 🌏 * ' +(___/ | ||_/ \_||_| \____) \____) * * + |_|"# + ); + + let mut cmd: String = String::new(); + color_print::cprintln!( + " Welcome to space-db, connected to [{}]", + self.name + ); + loop { + print!("> "); + cmd.clear(); + std::io::stdout().flush().unwrap(); + while !cmd.trim().ends_with(";") { + std::io::stdin().read_line(&mut cmd).unwrap(); + if [":q", ":quit", "!q", "!quit"].contains(&cmd.trim()) { + color_print::cprintln!("Thanks for using space 🌌"); + std::process::exit(0); + } + } + let mut tokens: Vec<&str> = cmd + .trim() + .strip_suffix(';') + .unwrap() + .split_whitespace() + .collect(); + let command = tokens.remove(0); + self.run_command(command, tokens); + } + } } From b252e0c77472f5e4d60672f5d841d7bdd574775c Mon Sep 17 00:00:00 2001 From: externref Date: Mon, 19 Aug 2024 23:34:51 +0530 Subject: [PATCH 08/14] edit path for data --- src/fs_utils.rs | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/src/fs_utils.rs b/src/fs_utils.rs index b298efd..c766e2f 100644 --- a/src/fs_utils.rs +++ b/src/fs_utils.rs @@ -23,7 +23,7 @@ /** Gets the path as [std::path::PathBuf] of the directory to use for data storage. */ -pub fn get_data_save_dir() -> std::path::PathBuf { +pub fn get_data_save_dir() -> std::path::PathBuf { if cfg!(target_os = "linux") { let xdg_dirs = std::env::var("HOME").unwrap(); return std::path::PathBuf::from(format!( @@ -31,24 +31,46 @@ pub fn get_data_save_dir() -> std::path::PathBuf { xdg_dirs.split(":").next().unwrap().to_owned(), )); } else if cfg!(target_os = "windows") { - let appdata = std::env::var("APPDATA").unwrap(); + let appdata: String = std::env::var("APPDATA").unwrap(); return std::path::PathBuf::from(format!("{}/", appdata)); } else if cfg!(target_os = "macos") { - let home = std::env::var("HOME").unwrap(); + let home: String = std::env::var("HOME").unwrap(); return std::path::PathBuf::from(format!("{}/Library/Application Support/", home)); } else { return std::path::PathBuf::from(format!("data/database/")); } } - -pub fn verify_setup(){ - let data_dir = get_data_save_dir(); +/** +Checks all the file system related setups needed for the db to function. +*/ +pub fn verify_setup(dbname: String) { + let mut data_dir = get_data_save_dir(); + data_dir.push(".space"); + if !data_dir.exists() { + std::fs::create_dir(&data_dir).unwrap(); + } + data_dir.push(dbname); + if !data_dir.exists() { + println!("{:?}", data_dir); + std::fs::create_dir(&data_dir).unwrap(); + } + if !data_dir.join("data").exists() { + std::fs::create_dir(&data_dir.join("data")).unwrap(); + } + data_dir.push(".schemas"); + if !data_dir.exists() { + std::fs::create_dir(&data_dir).unwrap(); + } } - -pub fn get_database_dir(dbname: String)-> std::path::PathBuf{ +/** +This is just appending the `.space/` to the PathBuf returned by [get_data_save_dir], +ideally after verifying the setup. +*/ +pub fn get_database_dir(dbname: String) -> std::path::PathBuf { let mut strgdir = get_data_save_dir(); + strgdir.push(".space"); strgdir.push(dbname); return strgdir; -} \ No newline at end of file +} From 45b1a9cdbeaadb121be16c6a4b4fb5a9cb3c214c Mon Sep 17 00:00:00 2001 From: externref Date: Mon, 19 Aug 2024 23:35:08 +0530 Subject: [PATCH 09/14] add `serde_json` and `color_print` to dependency --- Cargo.lock | 490 +++++++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 4 + 2 files changed, 494 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index f77f182..f0403ac 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,496 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] +name = "clearscreen" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f8c93eb5f77c9050c7750e14f13ef1033a40a0aac70c6371535b6763a01438c" +dependencies = [ + "nix", + "terminfo", + "thiserror", + "which", + "winapi", +] + +[[package]] +name = "color-print" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee543c60ff3888934877a5671f45494dd27ed4ba25c6670b9a7576b7ed7a8c0" +dependencies = [ + "color-print-proc-macro", +] + +[[package]] +name = "color-print-proc-macro" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ff1a80c5f3cb1ca7c06ffdd71b6a6dd6d8f896c42141fbd43f50ed28dcdb93" +dependencies = [ + "nom", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "libc" +version = "0.2.156" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5f43f184355eefb8d17fc948dbecf6c13be3c141f20d834ae842193a448c72a" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags", + "libc", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "nix" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" +dependencies = [ + "bitflags", + "cfg-if", + "cfg_aliases", + "libc", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_shared", +] + +[[package]] +name = "phf_codegen" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a" +dependencies = [ + "phf_generator", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared", + "rand", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "proc-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" + +[[package]] +name = "redox_users" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "serde" +version = "1.0.208" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.208" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.125" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + [[package]] name = "space" version = "0.1.0" +dependencies = [ + "clearscreen", + "color-print", + "serde", + "serde_json", +] + +[[package]] +name = "syn" +version = "2.0.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "terminfo" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "666cd3a6681775d22b200409aad3b089c5b99fb11ecdd8a204d9d62f8148498f" +dependencies = [ + "dirs", + "fnv", + "nom", + "phf", + "phf_codegen", +] + +[[package]] +name = "thiserror" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "which" +version = "6.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d9c5ed668ee1f17edb3b627225343d210006a90bb1e3745ce1f30b1fb115075" +dependencies = [ + "either", + "home", + "rustix", + "winsafe", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winsafe" +version = "0.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" diff --git a/Cargo.toml b/Cargo.toml index aeee403..e4ca010 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,3 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] +clearscreen = "3.0.0" +color-print = "0.3.6" +serde = { version = "1.0.208", features = ["derive"]} +serde_json = "1.0.125" From fe7de8975f2ded47d3e423a9e21df1abb667c0b2 Mon Sep 17 00:00:00 2001 From: externref Date: Mon, 19 Aug 2024 23:35:22 +0530 Subject: [PATCH 10/14] update readme badges --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 726f570..12ac03c 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,9 @@

- - + - -
+
A minimalist JSON based database.

From c0010c774ef4cfc1fea7838105bf92aa2813c501 Mon Sep 17 00:00:00 2001 From: externref Date: Mon, 19 Aug 2024 23:35:38 +0530 Subject: [PATCH 11/14] add validation and input functions --- src/internals/schema.rs | 106 +++++++++++++++++++++++++++++++++++----- 1 file changed, 93 insertions(+), 13 deletions(-) diff --git a/src/internals/schema.rs b/src/internals/schema.rs index c46fb86..d7694d1 100644 --- a/src/internals/schema.rs +++ b/src/internals/schema.rs @@ -20,9 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -use super::database::Database; - -enum DataType { +#[derive(Clone, Debug)] +pub enum DataType { String, Integer, Float, @@ -32,12 +31,13 @@ enum DataType { ArrayFloat, ArrayBool, } - -pub(crate) struct Schema { - database: Database, - name: String, +#[derive(Clone, Debug)] +pub struct Schema { + pub name: String, + pub path: std::path::PathBuf, + database_path: std::path::PathBuf, raw_configs: std::collections::HashMap, - configs: std::collections::HashMap, + pub configs: std::collections::HashMap, } impl Schema { @@ -92,21 +92,101 @@ impl Schema { } pub fn new( - self, - database:Database, + path: std::path::PathBuf, + database_path: std::path::PathBuf, name: String, raw_configs: std::collections::HashMap, ) -> Schema { let configs = Schema::generate_configs(&raw_configs); return Schema { - database, + path, + database_path, name, raw_configs, configs, }; } + pub fn validate_input( + &self, + input: &std::collections::HashMap, + ) -> bool { + for (key, dtype) in &self.configs { + let value = input.get(key); + + let is_type_correct = match dtype { + DataType::String => value.unwrap().is_string(), + DataType::Integer => value.unwrap().is_i64(), + DataType::Float => value.unwrap().is_f64(), + DataType::Bool => value.unwrap().is_boolean(), + + _ => { + let val = value.unwrap(); + if !val.is_array() { + return false; + } + let internal_type_correct = match dtype { + DataType::ArrayString => { + for item in val.as_array().unwrap() { + if !item.is_string() { + return false; + } + } + true + } + DataType::ArrayInteger => { + for item in val.as_array().unwrap() { + if !item.is_i64() { + println!(" breaks here"); + return false; + } + } + true + } + DataType::ArrayFloat => { + for item in val.as_array().unwrap() { + if !item.is_f64() { + return false; + } + } + true + } + DataType::ArrayBool => { + for item in val.as_array().unwrap() { + if !item.is_boolean() { + return false; + } + } + true + } + _ => false, + }; + internal_type_correct + } + }; + if !is_type_correct { + return false; + } + } + return true; + } + + pub fn write(&self, id: String, data: std::collections::HashMap) { + if !self.validate_input(&data) { + panic!("invalid data input"); + } + std::fs::write( + self.database_path + .join(format!("data/{}/{}.space.json", self.name, id)), + serde_json::to_string_pretty(&data).unwrap(), + ) + .unwrap(); + } - pub fn create(database: Database, name: String, configs: std::collections::HashMap ) -> Schema{ - todo!() + pub fn create(&self) { + // add schema files under schemas folder + let json_data = serde_json::to_string_pretty(&self.raw_configs).unwrap(); + std::fs::write(self.path.clone(), json_data).unwrap(); + // create folder for schema data + std::fs::create_dir(self.database_path.join(format!("data/{}", self.name))).unwrap(); } } From aaeef27d7fc96d7bf915b8d589ee2cf59f3d477c Mon Sep 17 00:00:00 2001 From: externref Date: Mon, 19 Aug 2024 23:35:48 +0530 Subject: [PATCH 12/14] add tests --- src/main.rs | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 72 insertions(+), 3 deletions(-) diff --git a/src/main.rs b/src/main.rs index 7e4591b..07e5b5a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -20,10 +20,79 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -mod internals; mod fs_utils; +mod internals; fn main() { - let test_db = "database"; - let db = internals::database::Database::new(test_db.to_string()); + let mut args = Vec::from_iter(std::env::args()); + let _exec_from = args.remove(0); + let db_name = args.remove(0); + let db = internals::database::Database::new(db_name); + db.run(); +} + +#[cfg(test)] +mod tests { + use crate::fs_utils; + use crate::internals; + + fn rm_schema_if_exists() { + let schema_file = fs_utils::get_database_dir(".space_tests".to_string()) + .join(".schemas/test_schema.space.json"); + let schema_dir = + fs_utils::get_database_dir(".space_tests".to_string()).join("data/test_schema"); + if schema_file.exists() { + std::fs::remove_file(schema_file).unwrap(); + } + if schema_dir.exists() { + std::fs::remove_dir_all(schema_dir).unwrap(); + } + } + + #[test] + fn create_schema() { + rm_schema_if_exists(); + let db = internals::database::Database::new(".space_tests".to_string()); + let schema_config: std::collections::HashMap = + std::collections::HashMap::from([ + ("name".to_string(), "string".to_string()), + ("marks".to_string(), "a_integer".to_string()), + ]); + let schema = internals::schema::Schema::new( + db.path.join(".schemas/test_schema.space.json"), + db.path, + "test_schema".to_string(), + schema_config.clone(), + ); + schema.create(); + let saved_file_data: std::collections::HashMap = + serde_json::from_str(std::fs::read_to_string(schema.path).unwrap().as_str()).unwrap(); + assert_eq!(schema_config, saved_file_data); + } + + #[test] + fn test_input_validation() { + let db: internals::database::Database = + internals::database::Database::new(".space_tests".to_string()); + let schema: &internals::schema::Schema = db.schemas.get("test_schema").unwrap(); + // schema.create(); + let invalid_input: std::collections::HashMap = + serde_json::from_str( + r#"{ + "name": "sarthak", + "marks": [1, "hello"] + }"#, + ) + .unwrap(); + let valid_input: std::collections::HashMap = + serde_json::from_str( + r#"{ + "name": "not sarthak", + "marks": [1, 2, 4, 5] + }"#, + ) + .unwrap(); + assert_eq!(schema.validate_input(&valid_input), true); + assert_eq!(schema.validate_input(&invalid_input), false); + } } From 5a114c875ac211dfbf2cdae9c4c093b23fc2ebb1 Mon Sep 17 00:00:00 2001 From: vidhyk Date: Tue, 20 Aug 2024 03:16:20 +0530 Subject: [PATCH 13/14] initialise docs --- src/docs/assets/space.png | Bin 0 -> 10143 bytes src/docs/commands.md | 0 src/docs/getting-started.md | 0 src/docs/index.md | 1 + src/mkdocs.yml | 34 ++++ src/poetry.lock | 371 ++++++++++++++++++++++++++++++++++++ src/pyproject.toml | 16 ++ 7 files changed, 422 insertions(+) create mode 100644 src/docs/assets/space.png create mode 100644 src/docs/commands.md create mode 100644 src/docs/getting-started.md create mode 100644 src/docs/index.md create mode 100644 src/mkdocs.yml create mode 100644 src/poetry.lock create mode 100644 src/pyproject.toml diff --git a/src/docs/assets/space.png b/src/docs/assets/space.png new file mode 100644 index 0000000000000000000000000000000000000000..8cde92c92504cd81ed24bb2edaa789a60c3e0ca0 GIT binary patch literal 10143 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 L+6%MWALjoDG03>O literal 0 HcmV?d00001 diff --git a/src/docs/commands.md b/src/docs/commands.md new file mode 100644 index 0000000..e69de29 diff --git a/src/docs/getting-started.md b/src/docs/getting-started.md new file mode 100644 index 0000000..e69de29 diff --git a/src/docs/index.md b/src/docs/index.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/docs/index.md @@ -0,0 +1 @@ + diff --git a/src/mkdocs.yml b/src/mkdocs.yml new file mode 100644 index 0000000..3d0bf76 --- /dev/null +++ b/src/mkdocs.yml @@ -0,0 +1,34 @@ +site_name: space +site_url: https://space.externref.tech + +theme: + name: material + logo: assets/space.png + favicon: assets/space.png + palette: + - scheme: slate + toggle: + icon: material/brightness-4 + name: Switch to light mode + + - scheme: default + toggle: + icon: material/brightness-7 + name: Switch to dark mode + +plugins: + - social: + cards_color: + fill: "#bf9674" + text: "#131314" + +nav: + - 'Welcome!': 'index.md' + - 'Getting Started': 'getting-started.md' + - 'commands.md' + +markdown_extensions: + - admonition + - pymdownx.details + - pymdownx.superfences + - attr_list diff --git a/src/poetry.lock b/src/poetry.lock new file mode 100644 index 0000000..9c9d498 --- /dev/null +++ b/src/poetry.lock @@ -0,0 +1,371 @@ +[[package]] +name = "babel" +version = "2.16.0" +description = "Internationalization utilities" +category = "main" +optional = false +python-versions = ">=3.8" + +[package.extras] +dev = ["pytest (>=6.0)", "pytest-cov", "freezegun (>=1.0,<2.0)"] + +[[package]] +name = "certifi" +version = "2024.7.4" +description = "Python package for providing Mozilla's CA Bundle." +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "charset-normalizer" +version = "3.3.2" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" +optional = false +python-versions = ">=3.7.0" + +[[package]] +name = "click" +version = "8.1.7" +description = "Composable command line interface toolkit" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" + +[[package]] +name = "ghp-import" +version = "2.1.0" +description = "Copy your docs directly to the gh-pages branch." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +python-dateutil = ">=2.8.1" + +[package.extras] +dev = ["twine", "markdown", "flake8", "wheel"] + +[[package]] +name = "idna" +version = "3.7" +description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "jinja2" +version = "3.1.4" +description = "A very fast and expressive template engine." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "markdown" +version = "3.7" +description = "Python implementation of John Gruber's Markdown." +category = "main" +optional = false +python-versions = ">=3.8" + +[package.extras] +docs = ["mkdocs (>=1.5)", "mkdocs-nature (>=0.6)", "mdx-gh-links (>=0.2)", "mkdocstrings", "mkdocs-gen-files", "mkdocs-section-index", "mkdocs-literate-nav"] +testing = ["coverage", "pyyaml"] + +[[package]] +name = "markupsafe" +version = "2.1.5" +description = "Safely add untrusted strings to HTML/XML markup." +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "mergedeep" +version = "1.3.4" +description = "A deep merge function for 🐍." +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "mkdocs" +version = "1.6.0" +description = "Project documentation with Markdown." +category = "main" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +click = ">=7.0" +colorama = {version = ">=0.4", markers = "platform_system == \"Windows\""} +ghp-import = ">=1.0" +jinja2 = ">=2.11.1" +markdown = ">=3.3.6" +markupsafe = ">=2.0.1" +mergedeep = ">=1.3.4" +mkdocs-get-deps = ">=0.2.0" +packaging = ">=20.5" +pathspec = ">=0.11.1" +pyyaml = ">=5.1" +pyyaml-env-tag = ">=0.1" +watchdog = ">=2.0" + +[package.extras] +i18n = ["babel (>=2.9.0)"] +min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.4)", "jinja2 (==2.11.1)", "markdown (==3.3.6)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "mkdocs-get-deps (==0.2.0)", "packaging (==20.5)", "pathspec (==0.11.1)", "pyyaml-env-tag (==0.1)", "pyyaml (==5.1)", "watchdog (==2.0)"] + +[[package]] +name = "mkdocs-get-deps" +version = "0.2.0" +description = "MkDocs extension that lists all dependencies according to a mkdocs.yml file" +category = "main" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +mergedeep = ">=1.3.4" +platformdirs = ">=2.2.0" +pyyaml = ">=5.1" + +[[package]] +name = "mkdocs-material" +version = "9.5.32" +description = "Documentation that simply works" +category = "main" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +babel = ">=2.10,<3.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" +regex = ">=2022.4" +requests = ">=2.26,<3.0" + +[package.extras] +git = ["mkdocs-git-committers-plugin-2 (>=1.1,<2.0)", "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)"] + +[[package]] +name = "mkdocs-material-extensions" +version = "1.3.1" +description = "Extension pack for Python Markdown and MkDocs Material." +category = "main" +optional = false +python-versions = ">=3.8" + +[[package]] +name = "packaging" +version = "24.1" +description = "Core utilities for Python packages" +category = "main" +optional = false +python-versions = ">=3.8" + +[[package]] +name = "paginate" +version = "0.5.6" +description = "Divides large result sets into pages for easier browsing" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "pathspec" +version = "0.12.1" +description = "Utility library for gitignore style pattern matching of file paths." +category = "main" +optional = false +python-versions = ">=3.8" + +[[package]] +name = "platformdirs" +version = "4.2.2" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +category = "main" +optional = false +python-versions = ">=3.8" + +[package.extras] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx-autodoc-typehints (>=1.25.2)", "sphinx (>=7.2.6)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest (>=7.4.3)"] +type = ["mypy (>=1.8)"] + +[[package]] +name = "pygments" +version = "2.18.0" +description = "Pygments is a syntax highlighting package written in Python." +category = "main" +optional = false +python-versions = ">=3.8" + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pymdown-extensions" +version = "10.9" +description = "Extension pack for Python Markdown." +category = "main" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +markdown = ">=3.6" +pyyaml = "*" + +[package.extras] +extra = ["pygments (>=2.12)"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +category = "main" +optional = false +python-versions = ">=3.8" + +[[package]] +name = "pyyaml-env-tag" +version = "0.1" +description = "A custom YAML tag for referencing environment variables in YAML files. " +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +pyyaml = "*" + +[[package]] +name = "regex" +version = "2024.7.24" +description = "Alternative regular expression module, to replace re." +category = "main" +optional = false +python-versions = ">=3.8" + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +category = "main" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "urllib3" +version = "2.2.2" +description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" +optional = false +python-versions = ">=3.8" + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "watchdog" +version = "4.0.2" +description = "Filesystem events monitoring" +category = "main" +optional = false +python-versions = ">=3.8" + +[package.extras] +watchmedo = ["PyYAML (>=3.10)"] + +[metadata] +lock-version = "1.1" +python-versions = "^3.10" +content-hash = "ce92b6a28153c22f6e3b2d7def00571494abe079befe83f0014f957623f98e84" + +[metadata.files] +babel = [] +certifi = [] +charset-normalizer = [] +click = [] +colorama = [] +ghp-import = [] +idna = [] +jinja2 = [] +markdown = [] +markupsafe = [] +mergedeep = [] +mkdocs = [] +mkdocs-get-deps = [] +mkdocs-material = [] +mkdocs-material-extensions = [] +packaging = [] +paginate = [] +pathspec = [] +platformdirs = [] +pygments = [] +pymdown-extensions = [] +python-dateutil = [] +pyyaml = [] +pyyaml-env-tag = [] +regex = [] +requests = [] +six = [] +urllib3 = [] +watchdog = [] diff --git a/src/pyproject.toml b/src/pyproject.toml new file mode 100644 index 0000000..ff561ab --- /dev/null +++ b/src/pyproject.toml @@ -0,0 +1,16 @@ +[tool.poetry] +name = "space" +version = "0.1.0" +description = "A JSON based minimalist database" +authors = ["vidhyk"] +license = "MIT" + +[tool.poetry.dependencies] +python = "^3.10" +mkdocs-material = "^9.5.32" + +[tool.poetry.dev-dependencies] + +[build-system] +requires = ["poetry-core>=1.0.0"] +build-backend = "poetry.core.masonry.api" From 5b8ffe57f19cc27b9c900edd99c8ba70530ba5a5 Mon Sep 17 00:00:00 2001 From: externref Date: Tue, 20 Aug 2024 03:21:33 +0530 Subject: [PATCH 14/14] move docs files outside the `src` dir --- {src/docs => docs}/assets/space.png | Bin {src/docs => docs}/commands.md | 0 {src/docs => docs}/getting-started.md | 0 {src/docs => docs}/index.md | 0 src/mkdocs.yml => mkdocs.yml | 0 src/poetry.lock => poetry.lock | 0 src/pyproject.toml => pyproject.toml | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename {src/docs => docs}/assets/space.png (100%) rename {src/docs => docs}/commands.md (100%) rename {src/docs => docs}/getting-started.md (100%) rename {src/docs => docs}/index.md (100%) rename src/mkdocs.yml => mkdocs.yml (100%) rename src/poetry.lock => poetry.lock (100%) rename src/pyproject.toml => pyproject.toml (100%) diff --git a/src/docs/assets/space.png b/docs/assets/space.png similarity index 100% rename from src/docs/assets/space.png rename to docs/assets/space.png diff --git a/src/docs/commands.md b/docs/commands.md similarity index 100% rename from src/docs/commands.md rename to docs/commands.md diff --git a/src/docs/getting-started.md b/docs/getting-started.md similarity index 100% rename from src/docs/getting-started.md rename to docs/getting-started.md diff --git a/src/docs/index.md b/docs/index.md similarity index 100% rename from src/docs/index.md rename to docs/index.md diff --git a/src/mkdocs.yml b/mkdocs.yml similarity index 100% rename from src/mkdocs.yml rename to mkdocs.yml diff --git a/src/poetry.lock b/poetry.lock similarity index 100% rename from src/poetry.lock rename to poetry.lock diff --git a/src/pyproject.toml b/pyproject.toml similarity index 100% rename from src/pyproject.toml rename to pyproject.toml