Actual init commit
This commit is contained in:
parent
33f76d1ac9
commit
d7420ab7ab
23 changed files with 2211 additions and 0 deletions
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
.cache/*
|
||||||
|
.cache/**
|
||||||
|
__pycache__/**
|
||||||
|
.upm
|
||||||
|
venv/**
|
||||||
|
**/__pycache__/**
|
||||||
|
.pythonlibs/**
|
10
.replit
Normal file
10
.replit
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
entrypoint = "main.py"
|
||||||
|
modules = ["python-3.10:v18-20230807-322e88b"]
|
||||||
|
|
||||||
|
hidden = [".*", "replit*","*.sh"]
|
||||||
|
|
||||||
|
[nix]
|
||||||
|
channel = "stable-23_05"
|
||||||
|
|
||||||
|
[deployment]
|
||||||
|
run = ["sh", "-c", "python3 main.py"]
|
10
build.py
Normal file
10
build.py
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
def build():
|
||||||
|
from os import system as cmd
|
||||||
|
from editor import edit
|
||||||
|
cmd("clear")
|
||||||
|
# useEditor = input("Run Version Editor (Y|*)? ").upper()
|
||||||
|
# if useEditor == "Y":
|
||||||
|
# edit()
|
||||||
|
# cmd("clear")
|
||||||
|
print("Run these commands next: \n cd package\n ./upload.sh")
|
||||||
|
cmd("bash")
|
22
editor.py
Normal file
22
editor.py
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
def edit():
|
||||||
|
ver = input("Version: ")
|
||||||
|
update = input("What's new?: ")
|
||||||
|
# Edit setup.cfg
|
||||||
|
my_file = open("package/setup.cfg")
|
||||||
|
string_list = my_file.readlines()
|
||||||
|
my_file.close()
|
||||||
|
string_list[2] = f"version = {ver}\n"
|
||||||
|
my_file = open("package/setup.cfg", "w")
|
||||||
|
new_file_contents = "".join(string_list)
|
||||||
|
my_file.write(new_file_contents)
|
||||||
|
my_file.close()
|
||||||
|
# Edit README.md
|
||||||
|
my_file = open("package/README.md")
|
||||||
|
string_list = my_file.readlines()
|
||||||
|
my_file.close()
|
||||||
|
string_list[11] = f"###### v.{ver}:\n"
|
||||||
|
string_list[12] = f"{update}\n\n{string_list[12]}"
|
||||||
|
my_file = open("package/README.md", "w")
|
||||||
|
new_file_contents = "".join(string_list)
|
||||||
|
my_file.write(new_file_contents)
|
||||||
|
my_file.close()
|
22
main.py
Normal file
22
main.py
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
from os import environ, system
|
||||||
|
from build import build
|
||||||
|
|
||||||
|
system("clear")
|
||||||
|
# joe = system("cat /tmp/updated.txt")
|
||||||
|
# if joe != 0:
|
||||||
|
# system("./fix.sh")
|
||||||
|
# system("clear")
|
||||||
|
print("Should be nothing from here")
|
||||||
|
import package.src.firepup650 as fp
|
||||||
|
|
||||||
|
print("Until here (Half-second sleep)")
|
||||||
|
fp.sleep(.5)
|
||||||
|
bob = fp.menu({"Yes":"Y", "No": ""}, "(If owner) Build?")
|
||||||
|
system("clear")
|
||||||
|
if environ["REPL_OWNER"] == "Firepup650" and bob == "Y":
|
||||||
|
build()
|
||||||
|
exit()
|
||||||
|
else:
|
||||||
|
print(fp.menu({"a": "hi", "Some fairly long second test case": ["a", "b", "c"], "A third test": 0}, "Test menu"))
|
||||||
|
fp.console.warn("Test Warning")
|
||||||
|
fp.e("No demo yet!")
|
21
package/LICENSE
Normal file
21
package/LICENSE
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2021 Alexander Maples
|
||||||
|
|
||||||
|
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.
|
77
package/README.md
Normal file
77
package/README.md
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
# Firepup650
|
||||||
|
Package containing various shorthand things I use, and a few imports I almost always use
|
||||||
|
### Change log:
|
||||||
|
#### v.1.0.35:
|
||||||
|
Adds a few missing docstrings and fixes a bug with the menu function
|
||||||
|
#### v.1.0.34:
|
||||||
|
Adds methods to hide/show the cursor and a menu system
|
||||||
|
#### v.1.0.33:
|
||||||
|
Finally fixes `clear`'s ascii option, and adds windows compatibility to the same
|
||||||
|
#### v.1.0.32 (Breaking change!):
|
||||||
|
BREAKING CHANGE: `input` -> `inputCast`
|
||||||
|
|
||||||
|
Adds the `makeError` function, and fixes some mypy complaints
|
||||||
|
#### v.1.0.31:
|
||||||
|
Adds the `isMath` function provided by @python660 on Replit Ask
|
||||||
|
#### v.1.0.30:
|
||||||
|
Fix all mypy stub issues
|
||||||
|
#### v.1.0.29:
|
||||||
|
Provide a mypy stub file
|
||||||
|
#### v.1.0.28:
|
||||||
|
Updates `Color` to flush print by default.
|
||||||
|
#### v.1.0.27:
|
||||||
|
Renames many methods, old names are still avalible for backwards compatiblity however. Also, SQL was moved to it's own package entirely.
|
||||||
|
#### v.1.0.26:
|
||||||
|
Adds `remove_prefix` and `remove_suffix`, name mangles internal variables in `sql`, fixes a bug in `console.warn`, adds `__VERSION__`, `__NEW__`, and `__LICENSE__`, adds many aliases for `help()`.
|
||||||
|
#### v.1.0.25:
|
||||||
|
Fix all bugs related to version `1.0.24`'s patch.
|
||||||
|
#### v.1.0.24:
|
||||||
|
Fixes a bug in `sql`'s `addTable` function.
|
||||||
|
#### v.1.0.23:
|
||||||
|
Adds `sql` (class) and all it's functions
|
||||||
|
#### v.1.0.22:
|
||||||
|
Adds `flush_print`.
|
||||||
|
#### v.1.0.21:
|
||||||
|
Adds `bad_cast_message` to `input` and `replit_input`.
|
||||||
|
#### v.1.0.20:
|
||||||
|
Fixes a bug where `replit_input` didn't cast to `cast`.
|
||||||
|
#### v.1.0.19:
|
||||||
|
Updates `replit_input` to call (new) custom `input` that supports type casting under the hood.
|
||||||
|
#### v.1.0.18:
|
||||||
|
Adds Ease Of Use stuff to `bcolors`.
|
||||||
|
#### v.1.0.17:
|
||||||
|
Adds `cprint`.
|
||||||
|
#### v.1.0.16:
|
||||||
|
Same as `v.1.0.15`. Should be fixed now.
|
||||||
|
#### v.1.0.15:
|
||||||
|
Same as `v.1.0.14`, but I can't use the same number
|
||||||
|
#### v.1.0.14:
|
||||||
|
Hopefully fixes poetry not showing certain project info.
|
||||||
|
#### v.1.0.13:
|
||||||
|
Adds `replit_input`
|
||||||
|
#### v.1.0.12:
|
||||||
|
Description fix for `gp`, add `gh`.
|
||||||
|
#### v.1.0.11:
|
||||||
|
Fix a bug in the `gp` method.
|
||||||
|
#### v.1.0.10:
|
||||||
|
Add the `REPLIT` color to `bcolors`, and add `replit_cursor` to the module.
|
||||||
|
#### v.1.0.9:
|
||||||
|
Small tweaks, nothing major.
|
||||||
|
#### v.1.0.8:
|
||||||
|
Cat install collections. This better fix it.
|
||||||
|
###### v.1.0.7:
|
||||||
|
Adds `console` (class), `bcolors` (class), and `Color` (function). Fixes type hinting on various things (Lots of thanks to [@bigminiboss](https://pypi.org/user/bigminiboss/)!).
|
||||||
|
#### v.1.0.6:
|
||||||
|
Hopefully, fixes an issue where the package doesn't install it's dependencies (Again. Hopefully.)
|
||||||
|
#### v.1.0.5:
|
||||||
|
Hopefully, fixes an issue where the package doesn't install it's dependencies
|
||||||
|
#### v.1.0.4:
|
||||||
|
Subscript errors
|
||||||
|
#### v.1.0.3:
|
||||||
|
Dependant errors
|
||||||
|
#### v.1.0.2:
|
||||||
|
Random shorthand (literally)
|
||||||
|
#### v.1.0.1:
|
||||||
|
Added animated typing function, sleep shorthand
|
||||||
|
#### v.1.0.0:
|
||||||
|
Initial Release!
|
31
package/pyproject.toml
Normal file
31
package/pyproject.toml
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
[tool.poetry]
|
||||||
|
name = "firepup650"
|
||||||
|
version = "1.0.35"
|
||||||
|
authors = ["Firepup650 <firepyp650@gmail.com>"]
|
||||||
|
description = "Package containing various shorthand things I use, and a few imports I almost always use"
|
||||||
|
readme = "README.md"
|
||||||
|
classifiers = [
|
||||||
|
"Programming Language :: Python :: 3",
|
||||||
|
"License :: OSI Approved :: MIT License",
|
||||||
|
"Operating System :: OS Independent",
|
||||||
|
"Development Status :: 5 - Production/Stable",
|
||||||
|
"Environment :: Console",
|
||||||
|
"Intended Audience :: Developers",
|
||||||
|
"Natural Language :: English",
|
||||||
|
]
|
||||||
|
license = "MIT"
|
||||||
|
repository = "https://github.com/F1repup650/firepup650-PYPI"
|
||||||
|
[tool.poetry.urls]
|
||||||
|
"Bug Tracker" = "https://github.com/F1repup650/firepup650-PYPI/issues"
|
||||||
|
Replit = "https://replit.com/@Firepup650/firepup650-PYPI-Package"
|
||||||
|
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = "^3.8"
|
||||||
|
fkeycapture = "^1.2.7"
|
||||||
|
fpsql = "^1, !=1.0.26"
|
||||||
|
|
||||||
|
[tool.poetry.dev-dependencies]
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["poetry-core>=1.0.0"]
|
||||||
|
build-backend = "poetry.core.masonry.api"
|
2
package/requirements.txt
Normal file
2
package/requirements.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
fkeycapture>=1.2.7
|
||||||
|
fpsql>=1.0.0,!=1.0.26
|
32
package/setup.cfg
Normal file
32
package/setup.cfg
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
[metadata]
|
||||||
|
name = firepup650
|
||||||
|
version = 1.0.35
|
||||||
|
author = Firepup650
|
||||||
|
author_email = firepyp650@gmail.com
|
||||||
|
description = Package containing various shorthand things I use, and a few imports I almost always use
|
||||||
|
long_description = file: README.md
|
||||||
|
long_description_content_type = text/markdown
|
||||||
|
url = https://github.com/F1repup650/firepup650-PYPI
|
||||||
|
project_urls =
|
||||||
|
Bug Tracker = https://github.com/F1repup650/firepup650-PYPI/issues
|
||||||
|
replit = https://replit.com/@Firepup650/firepup650-PYPI-Package
|
||||||
|
classifiers =
|
||||||
|
Programming Language :: Python :: 3
|
||||||
|
License :: OSI Approved :: MIT License
|
||||||
|
Operating System :: OS Independent
|
||||||
|
Development Status :: 5 - Production/Stable
|
||||||
|
Environment :: Console
|
||||||
|
Intended Audience :: Developers
|
||||||
|
Natural Language :: English
|
||||||
|
|
||||||
|
[options]
|
||||||
|
package_dir =
|
||||||
|
= src
|
||||||
|
packages = find:
|
||||||
|
python_requires = >=3.8
|
||||||
|
install_requires =
|
||||||
|
fkeycapture
|
||||||
|
fpsql
|
||||||
|
|
||||||
|
[options.packages.find]
|
||||||
|
where = src
|
3
package/setup.py
Normal file
3
package/setup.py
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
from setuptools import setup
|
||||||
|
|
||||||
|
setup()
|
43
package/src/firepup650.egg-info/PKG-INFO
Normal file
43
package/src/firepup650.egg-info/PKG-INFO
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
Metadata-Version: 2.1
|
||||||
|
Name: firepup650
|
||||||
|
Version: 1.0.9
|
||||||
|
Summary: Package containing various shorthand things I use, and a few imports I almost always use
|
||||||
|
Home-page: https://github.com/F1repup650/firepup650-PYPI
|
||||||
|
Author: Firepup650
|
||||||
|
Author-email: firepyp650@gmail.com
|
||||||
|
License: UNKNOWN
|
||||||
|
Project-URL: Bug Tracker, https://github.com/F1repup650/firepup650-PYPI/issues
|
||||||
|
Project-URL: replit, https://replit.com/@Firepup650/firepup650-PYPI-Package
|
||||||
|
Description: # Firepup650
|
||||||
|
Package containing various shorthand things I use, and a few imports I almost always use
|
||||||
|
#### Change log:
|
||||||
|
###### v.1.0.9:
|
||||||
|
Small tweaks, nothing major.
|
||||||
|
###### v.1.0.8:
|
||||||
|
Can't install collections. This better fix it.
|
||||||
|
###### v.1.0.7:
|
||||||
|
Adds `console` (class), `bcolors` (class), and `Color` (function). Fixes type hinting on various things (Lots of thanks to @bigminiboss!).
|
||||||
|
###### v.1.0.6:
|
||||||
|
Hopefully, fixes an issue where the package doesn't install it's dependencies (Again. Hopefully.)
|
||||||
|
###### v.1.0.5:
|
||||||
|
Hopefully, fixes an issue where the package doesn't install it's dependencies
|
||||||
|
###### v.1.0.4:
|
||||||
|
Subscript errors
|
||||||
|
###### v.1.0.3:
|
||||||
|
Dependant errors
|
||||||
|
###### v.1.0.2:
|
||||||
|
Random shorthand (litterally)
|
||||||
|
###### v.1.0.1:
|
||||||
|
Added animated typing function, sleep shorthand
|
||||||
|
###### v.1.0.0:
|
||||||
|
Initial Release!
|
||||||
|
Platform: UNKNOWN
|
||||||
|
Classifier: Programming Language :: Python :: 3
|
||||||
|
Classifier: License :: OSI Approved :: MIT License
|
||||||
|
Classifier: Operating System :: OS Independent
|
||||||
|
Classifier: Development Status :: 5 - Production/Stable
|
||||||
|
Classifier: Environment :: Console
|
||||||
|
Classifier: Intended Audience :: Developers
|
||||||
|
Classifier: Natural Language :: English
|
||||||
|
Requires-Python: >=3.8
|
||||||
|
Description-Content-Type: text/markdown
|
11
package/src/firepup650.egg-info/SOURCES.txt
Normal file
11
package/src/firepup650.egg-info/SOURCES.txt
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
LICENSE
|
||||||
|
README.md
|
||||||
|
pyproject.toml
|
||||||
|
setup.cfg
|
||||||
|
setup.py
|
||||||
|
src/firepup650/__init__.py
|
||||||
|
src/firepup650.egg-info/PKG-INFO
|
||||||
|
src/firepup650.egg-info/SOURCES.txt
|
||||||
|
src/firepup650.egg-info/dependency_links.txt
|
||||||
|
src/firepup650.egg-info/requires.txt
|
||||||
|
src/firepup650.egg-info/top_level.txt
|
1
package/src/firepup650.egg-info/dependency_links.txt
Normal file
1
package/src/firepup650.egg-info/dependency_links.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
|
1
package/src/firepup650.egg-info/requires.txt
Normal file
1
package/src/firepup650.egg-info/requires.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
fkeycapture
|
1
package/src/firepup650.egg-info/top_level.txt
Normal file
1
package/src/firepup650.egg-info/top_level.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
firepup650
|
881
package/src/firepup650/__init__.py
Normal file
881
package/src/firepup650/__init__.py
Normal file
|
@ -0,0 +1,881 @@
|
||||||
|
"""Firepup650's PYPI Package"""
|
||||||
|
import os, sys, termios, tty, time, sqlite3, ast, pydoc # type: ignore[import]
|
||||||
|
import random as r
|
||||||
|
import fkeycapture as fkey
|
||||||
|
import fpsql as fql
|
||||||
|
from warnings import warn as ww
|
||||||
|
from typing import NoReturn, TypeVar, Type, Optional, List, Any, Union
|
||||||
|
from collections.abc import Iterable
|
||||||
|
|
||||||
|
|
||||||
|
def alias(func):
|
||||||
|
"""# Function: alias
|
||||||
|
!Wrapper
|
||||||
|
Overwrites the docstring for a function to the specified function
|
||||||
|
# Inputs:
|
||||||
|
func
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
None
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
|
||||||
|
def decorator(f):
|
||||||
|
f.__doc__ = (
|
||||||
|
"This method is an alias of the following method:\n\n"
|
||||||
|
+ pydoc.text.document(func)
|
||||||
|
)
|
||||||
|
return f
|
||||||
|
|
||||||
|
return decorator
|
||||||
|
|
||||||
|
|
||||||
|
__VERSION__ = "1.0.34"
|
||||||
|
__NEW__ = "Adds methods to hide/show the cursor and a menu system"
|
||||||
|
__LICENSE__ = "MIT"
|
||||||
|
|
||||||
|
|
||||||
|
def flushPrint(*args) -> None:
|
||||||
|
"""# Function: flushPrint
|
||||||
|
Prints and flushes the provided args.
|
||||||
|
# Inputs:
|
||||||
|
*args - The args to print
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
None
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
print(*args, end="", flush=True)
|
||||||
|
|
||||||
|
|
||||||
|
flush_print = flushPrint
|
||||||
|
|
||||||
|
|
||||||
|
def clear(ascii: bool = True) -> None:
|
||||||
|
"""# Function: clear
|
||||||
|
Clears the screen
|
||||||
|
# Inputs:
|
||||||
|
ascii: bool - Controls whether or not we clear with ascii, defaults to True
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
None
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
if not ascii:
|
||||||
|
os.system("clear||cls")
|
||||||
|
else:
|
||||||
|
flushPrint("\033[H\033[2J")
|
||||||
|
|
||||||
|
|
||||||
|
@alias(os.system)
|
||||||
|
def cmd(command: str) -> int:
|
||||||
|
"""# Function: cmd
|
||||||
|
Runs bash commands
|
||||||
|
# Inputs:
|
||||||
|
command: str - The command to run
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
int - Status code returned by the command
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
status = os.system(command)
|
||||||
|
return status
|
||||||
|
|
||||||
|
|
||||||
|
def randint(low: int = 0, high: int = 10) -> int:
|
||||||
|
"""# Funcion: randint
|
||||||
|
A safe randint function
|
||||||
|
# Inputs:
|
||||||
|
low: int - The bottom number, defaults to 0
|
||||||
|
high: int - The top number, defaults to 10
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
int - A number between high and low
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
return r.randint(min(low, high), max(low, high))
|
||||||
|
|
||||||
|
|
||||||
|
@alias(sys.exit)
|
||||||
|
def e(code: Union[str, int, None] = None) -> NoReturn:
|
||||||
|
"""# Function: e
|
||||||
|
Exits with the provided code
|
||||||
|
# Inputs:
|
||||||
|
code: Union[str, int, None] - The status code to exit with, defaults to None
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
None
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
sys.exit(code)
|
||||||
|
|
||||||
|
|
||||||
|
def gp(
|
||||||
|
keycount: int = 1, chars: list = ["1", "2"], bytes: bool = False
|
||||||
|
) -> Union[str, bytes]:
|
||||||
|
"""# Function: gp
|
||||||
|
Get keys and print them.
|
||||||
|
# Inputs:
|
||||||
|
keycount: int - Number of keys to get, defaults to 1
|
||||||
|
chars: list - List of keys to accept, defaults to ["1", "2"]
|
||||||
|
bytes: bool - Wether to return the kyes as bytes, defaults to False
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
Union[str, bytes] - Keys pressed
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
got = 0
|
||||||
|
keys = ""
|
||||||
|
while got < keycount:
|
||||||
|
key = fkey.getchars(1, chars) # type: str #type: ignore
|
||||||
|
keys = f"{keys}{key}"
|
||||||
|
flushPrint(key)
|
||||||
|
got += 1
|
||||||
|
print()
|
||||||
|
if not bytes:
|
||||||
|
return keys
|
||||||
|
else:
|
||||||
|
return keys.encode()
|
||||||
|
|
||||||
|
|
||||||
|
def gh(
|
||||||
|
keycount: int = 1, chars: list = ["1", "2"], char: str = "*", bytes: bool = False
|
||||||
|
) -> Union[str, bytes]:
|
||||||
|
"""# Function: gh
|
||||||
|
Get keys and print `char` in their place.
|
||||||
|
# Inputs:
|
||||||
|
keycount: int - Number of keys to get, defaults to 1
|
||||||
|
chars: list - List of keys to accept, defaults to ["1", "2"]
|
||||||
|
char: str - Character to use to obfuscate the keys, defaults to *
|
||||||
|
bytes: bool - Wether to return the kyes as bytes, defaults to False
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
Union[str, bytes] - Keys pressed
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
got = 0
|
||||||
|
keys = ""
|
||||||
|
while got < keycount:
|
||||||
|
key = fkey.getchars(1, chars) # type: str#type: ignore
|
||||||
|
keys = f"{keys}{key}"
|
||||||
|
flushPrint("*")
|
||||||
|
got += 1
|
||||||
|
print()
|
||||||
|
if not bytes:
|
||||||
|
return keys
|
||||||
|
else:
|
||||||
|
return keys.encode()
|
||||||
|
|
||||||
|
|
||||||
|
def printt(text: str, delay: float = 0.1, newline: bool = True) -> None:
|
||||||
|
"""# Function: printt
|
||||||
|
Print out animated text!
|
||||||
|
# Inputs:
|
||||||
|
text: str - Text to print (could technicaly be a list)
|
||||||
|
delay: float - How long to delay between characters, defaults to 0.1
|
||||||
|
newline: bool - Wether or not to add a newline at the end of the text, defaults to True
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
None
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
# Store the current terminal settings
|
||||||
|
original_terminal_settings = termios.tcgetattr(sys.stdin)
|
||||||
|
# Change terminal settings to prevent any interruptions
|
||||||
|
tty.setcbreak(sys.stdin)
|
||||||
|
for char in text:
|
||||||
|
flushPrint(char)
|
||||||
|
time.sleep(delay)
|
||||||
|
if newline:
|
||||||
|
print()
|
||||||
|
# Restore the original terminal settings
|
||||||
|
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, original_terminal_settings)
|
||||||
|
|
||||||
|
|
||||||
|
@alias(time.sleep)
|
||||||
|
def sleep(seconds: float = 0.5) -> None:
|
||||||
|
"""# Function: sleep
|
||||||
|
Calls `time.sleep(seconds)`
|
||||||
|
# Inputs:
|
||||||
|
seconds: float - How long to sleep for, defaults to 0.5
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
None
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
time.sleep(seconds)
|
||||||
|
|
||||||
|
|
||||||
|
@alias(r.seed)
|
||||||
|
def rseed(seed: Any = None, version: int = 2) -> None:
|
||||||
|
"""# Function: rseed
|
||||||
|
reseed the random number generator
|
||||||
|
# Inputs:
|
||||||
|
seed: Any - The seed, defaults to None
|
||||||
|
version: int - Version of the seed (1 or 2), defaults to 2
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
None
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
r.seed(seed, version)
|
||||||
|
|
||||||
|
|
||||||
|
setattr(Iterable, "__class_getitem__", lambda x: None)
|
||||||
|
T = TypeVar("T")
|
||||||
|
|
||||||
|
|
||||||
|
def robj(iterable: Iterable[T]) -> T:
|
||||||
|
"""# Function: robj
|
||||||
|
Returns a random object from the provided iterable
|
||||||
|
# Input:
|
||||||
|
iterable: Iterable[T] - Any valid Iterable
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
T - A random object of type `T` from the provided iterable
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
return r.choice(iterable) # type: ignore[arg-type]
|
||||||
|
|
||||||
|
|
||||||
|
def Color(
|
||||||
|
r: int = 0, g: int = 0, b: int = 0, bcolor: bool = False, flush: bool = True
|
||||||
|
) -> Union[None, str]:
|
||||||
|
"""# Function: Color
|
||||||
|
Set the text to a specific color.
|
||||||
|
# Inputs:
|
||||||
|
r: int - The red value, range of 0-255, defaults to 0
|
||||||
|
g: int - The green value, range of 0-255, defaults to 0
|
||||||
|
b: int - The blue value, range of 0-255, defaults to 0
|
||||||
|
bcolor: bool - Wether to return the color as a str, defaults to False
|
||||||
|
fulsh: bool - Wether to flushPrint the color, defaults to True
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
Union[None, str] - The color code if `bcolor` is True. Otherwise, returns nothing
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
if r < 0:
|
||||||
|
r = 0
|
||||||
|
if r > 255:
|
||||||
|
r = 255
|
||||||
|
if g < 0:
|
||||||
|
g = 0
|
||||||
|
if g > 255:
|
||||||
|
g = 255
|
||||||
|
if b < 0:
|
||||||
|
b = 0
|
||||||
|
if b > 255:
|
||||||
|
b = 255
|
||||||
|
if bcolor:
|
||||||
|
return f"\033[38;2;{r};{g};{b}m"
|
||||||
|
elif flush:
|
||||||
|
flushPrint("\003[0m")
|
||||||
|
flushPrint(f"\033[38;2;{r};{g};{b}m")
|
||||||
|
else:
|
||||||
|
print("\003[0m")
|
||||||
|
print(f"\033[38;2;{r};{g};{b}m")
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
class bcolors:
|
||||||
|
"""
|
||||||
|
This class contains various pre-defined color codes.
|
||||||
|
"""
|
||||||
|
|
||||||
|
INVERSE = "\033[8m"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fINVERSE() -> None:
|
||||||
|
"""INVERTs foreground and background colors"""
|
||||||
|
print("\033[8m", end="")
|
||||||
|
|
||||||
|
RESET = "\033[0m"
|
||||||
|
RWHITE: str = f"\033[0m{Color(255,255,255,bcolor=True)}"
|
||||||
|
WHITE: str = f"{Color(255,255,255,bcolor=True)}"
|
||||||
|
FAILINVERSE: str = f"{Color(255,bcolor=True)}\033[49m\033[7m"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fWHITE() -> None:
|
||||||
|
"""Sets the text color to WHITE"""
|
||||||
|
print(f"{Color(255,255,255,bcolor=True)}", end="")
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fRWHITE() -> None:
|
||||||
|
"""RESETs the text color, then sets it to WHITE"""
|
||||||
|
print(f"\033[0m{Color(255,255,255,bcolor=True)}", end="")
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fFAILINVERSE() -> None:
|
||||||
|
"""Sets the text color RED, then inverses it."""
|
||||||
|
print(f"{Color(255,bcolor=True)}\033[49m\033[7m", end="")
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fRESET() -> None:
|
||||||
|
"""RESETs the formatting"""
|
||||||
|
print("\033[0m", end="")
|
||||||
|
|
||||||
|
BROWN: str = f"{Color(205,127,50,bcolor=True)}"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fBROWN() -> None:
|
||||||
|
"""Sets the text color to BROWN"""
|
||||||
|
print(f"{Color(205,127,50,bcolor=True)}", end="")
|
||||||
|
|
||||||
|
WARNING: str = f"{Color(236,232,26,bcolor=True)}"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fWARNING() -> None:
|
||||||
|
"""Sets the text color to YELLOW"""
|
||||||
|
print(f"{Color(236,232,26,bcolor=True)}", end="")
|
||||||
|
|
||||||
|
FAIL: str = f"{Color(255,bcolor=True)}"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fFAIL() -> None:
|
||||||
|
"""Sets the text color to RED"""
|
||||||
|
print(f"{Color(255,bcolor=True)}", end="")
|
||||||
|
|
||||||
|
OK: str = f"{Color(g=255,bcolor=True)}"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fOK() -> None:
|
||||||
|
"""Sets the text color to GREEN"""
|
||||||
|
print(f"{Color(g=255,bcolor=True)}", end="")
|
||||||
|
|
||||||
|
CYAN: str = f"{Color(g=255,b=255,bcolor=True)}"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fCYAN() -> None:
|
||||||
|
"""Sets the text color to CYAN"""
|
||||||
|
print(f"{Color(g=255,b=255,bcolor=True)}", end="")
|
||||||
|
|
||||||
|
WOOD: str = f"{Color(120,81,45,bcolor=True)}\033[46m\033[7m"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fWOOD() -> None:
|
||||||
|
"""Sets the text color to CYAN, and the background to a WOODen color"""
|
||||||
|
print(f"{Color(120,81,45,bcolor=True)}\033[46m\033[7m", end="")
|
||||||
|
|
||||||
|
REPLIT: str = f"{Color(161, 138, 26, True)}"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fREPLIT() -> None:
|
||||||
|
"""Sets the text color to 161,138,26 in RGB"""
|
||||||
|
print(f"{Color(162, 138, 26, True)}")
|
||||||
|
|
||||||
|
GREEN = OK
|
||||||
|
fGREEN = fOK
|
||||||
|
YELLOW = WARNING
|
||||||
|
fYELLOW = fWARNING
|
||||||
|
RED = FAIL
|
||||||
|
fRED = fFAIL
|
||||||
|
|
||||||
|
class bold:
|
||||||
|
"""
|
||||||
|
Contains bold versions of the other color codes
|
||||||
|
"""
|
||||||
|
|
||||||
|
BROWN: str = f"\033[1m{Color(205,127,50,bcolor=True)}"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fBROWN() -> None:
|
||||||
|
"""Sets the text color to BROWN"""
|
||||||
|
print(f"\033[1m{Color(205,127,50,bcolor=True)}", end="")
|
||||||
|
|
||||||
|
WARNING: str = f"\033[1m{Color(236,232,26,bcolor=True)}"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fWARNING() -> None:
|
||||||
|
"""Sets the text color to YELLOW"""
|
||||||
|
print(f"\033[1m{Color(236,232,26,bcolor=True)}", end="")
|
||||||
|
|
||||||
|
FAIL: str = f"\033[1m{Color(255,bcolor=True)}"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fFAIL() -> None:
|
||||||
|
"""Sets the text color to RED"""
|
||||||
|
print(f"\033[1m{Color(255,bcolor=True)}", end="")
|
||||||
|
|
||||||
|
OK: str = f"\033[1m{Color(g=255,bcolor=True)}"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fOK() -> None:
|
||||||
|
"""Sets the text color to GREEN"""
|
||||||
|
print(f"\033[1m{Color(g=255,bcolor=True)}", end="")
|
||||||
|
|
||||||
|
CYAN: str = f"\033[1m{Color(g=255,b=255,bcolor=True)}"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fCYAN() -> None:
|
||||||
|
"""Sets the text color to CYAN"""
|
||||||
|
print(f"\033[1m{Color(g=255,b=255,bcolor=True)}", end="")
|
||||||
|
|
||||||
|
WOOD: str = f"\033[1m{Color(120,81,45,bcolor=True)}\033[46m\033[7m"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fWOOD() -> None:
|
||||||
|
"""Sets the text color to CYAN, and the background to a WOODen color"""
|
||||||
|
print(f"\033[1m{Color(120,81,45,bcolor=True)}\033[46m\033[7m", end="")
|
||||||
|
|
||||||
|
WHITE: str = f"\033[1m{Color(255,255,255,bcolor=True)}"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fWHITE() -> None:
|
||||||
|
"""Sets the text color to WHITE"""
|
||||||
|
print(f"\033[1m{Color(255,255,255,bcolor=True)}", end="")
|
||||||
|
|
||||||
|
RWHITE: str = f"\033[0m\033[1m{Color(255,255,255,bcolor=True)}"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fRWHITE() -> None:
|
||||||
|
"""RESETs the text color, then sets it to WHITE"""
|
||||||
|
print(f"\033[0m\033[1m{Color(255,255,255,bcolor=True)}", end="")
|
||||||
|
|
||||||
|
REPLIT: str = f"\033[1m{Color(161, 138, 26, True)}"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fREPLIT() -> None:
|
||||||
|
"""Sets the text color to 161,138,26 in RGB"""
|
||||||
|
print(f"\033[1m{Color(162, 138, 26, True)}")
|
||||||
|
|
||||||
|
GREEN = OK
|
||||||
|
fGREEN = fOK
|
||||||
|
YELLOW = WARNING
|
||||||
|
fYELLOW = fWARNING
|
||||||
|
RED = FAIL
|
||||||
|
fRED = fFAIL
|
||||||
|
|
||||||
|
|
||||||
|
replitCursor: str = f"{bcolors.REPLIT}{bcolors.RESET}"
|
||||||
|
replit_cursor = replitCursor
|
||||||
|
|
||||||
|
cast = TypeVar("cast")
|
||||||
|
|
||||||
|
|
||||||
|
def inputCast(prompt: str = "", cast: Type = str, badCastMessage: str = "") -> cast: # type: ignore[type-var]
|
||||||
|
"""# Function: input
|
||||||
|
Displays your `prompt`, supports casting by default, with handling!
|
||||||
|
# Inputs:
|
||||||
|
prompt: str - The prompt, defaults to ""
|
||||||
|
cast: Type - The Type to cast the input to, defaults to str
|
||||||
|
badCastMessage: str - The message to dispaly upon reciving input that can't be casted to `cast`, can be set to `"None"` to not have one, defaults to f"That is not a vaild {cast.__name__}, please try again."
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
cast - The user's input, casted to `cast`
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
if not badCastMessage:
|
||||||
|
badCastMessage = f"That is not a vaild {cast.__name__}, please try again."
|
||||||
|
ret = ""
|
||||||
|
abc = ""
|
||||||
|
while ret == "":
|
||||||
|
try:
|
||||||
|
abc = input(prompt)
|
||||||
|
cast(abc)
|
||||||
|
ret = abc
|
||||||
|
break
|
||||||
|
except ValueError:
|
||||||
|
if badCastMessage != "None":
|
||||||
|
print(badCastMessage)
|
||||||
|
return cast(ret)
|
||||||
|
|
||||||
|
|
||||||
|
def replitInput(prompt: str = "", cast: Type = str, badCastMessage: str = "") -> cast: # type: ignore[type-var]
|
||||||
|
"""# Function: replitInput
|
||||||
|
Displays your `prompt` with the replit cursor on the next line, supports casting by default, with handling!
|
||||||
|
# Inputs:
|
||||||
|
prompt: str - The prompt, defaults to ""
|
||||||
|
cast: Type - The Type to cast the input to, defaults to str
|
||||||
|
badCastMessage: str - The message to dispaly upon reciving input that can't be casted to `cast`, can be set to "No message" to not have one, defaults to f"That is not a vaild {cast.__name__}, please try again."
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
cast - The user's input, casted to `cast`
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
if prompt:
|
||||||
|
print(prompt)
|
||||||
|
return inputCast(f"{replitCursor} ", cast, badCastMessage)
|
||||||
|
|
||||||
|
|
||||||
|
replit_input = replitInput
|
||||||
|
|
||||||
|
|
||||||
|
def cprint(text: str = "") -> None:
|
||||||
|
"""# Function: cprint
|
||||||
|
Displays your `text` in a random color (from bcolors).
|
||||||
|
# Inputs:
|
||||||
|
text: str - The text to color, defaults to ""
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
None
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
colordict = {
|
||||||
|
"GREEN": bcolors.GREEN,
|
||||||
|
"RED": bcolors.RED,
|
||||||
|
"YELLOW": bcolors.YELLOW,
|
||||||
|
"CYAN": bcolors.CYAN,
|
||||||
|
"REPLIT": bcolors.REPLIT,
|
||||||
|
"BROWN": bcolors.BROWN,
|
||||||
|
"WHITE": bcolors.WHITE,
|
||||||
|
}
|
||||||
|
colornames = ["GREEN", "RED", "YELLOW", "CYAN", "REPLIT", "BROWN", "WHITE"]
|
||||||
|
color = colordict[robj(colornames)]
|
||||||
|
print(f"{color}{text}")
|
||||||
|
|
||||||
|
|
||||||
|
class ProgramWarnings(UserWarning):
|
||||||
|
"""Warnings Raised for user defined Warnings in `console.warn` by default."""
|
||||||
|
|
||||||
|
|
||||||
|
class AssertationWarning(UserWarning):
|
||||||
|
"""Warnings Raised for assertion errors in `console.assert_()`."""
|
||||||
|
|
||||||
|
|
||||||
|
class console:
|
||||||
|
"""Limited Functionality version of JavaScript's console functions"""
|
||||||
|
|
||||||
|
__counters__: dict = {"default": 0}
|
||||||
|
__warnings__: List[str] = []
|
||||||
|
|
||||||
|
@alias(print)
|
||||||
|
@staticmethod
|
||||||
|
def log(*args, **kwargs) -> None:
|
||||||
|
"""print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
|
||||||
|
|
||||||
|
Prints the values to a stream, or to sys.stdout by default.
|
||||||
|
Optional keyword arguments:
|
||||||
|
file: a file-like object (stream); defaults to the current sys.stdout.
|
||||||
|
sep: string inserted between values, default a space.
|
||||||
|
end: string appended after the last value, default a newline.
|
||||||
|
flush: whether to forcibly flush the stream."""
|
||||||
|
print(*args, **kwargs)
|
||||||
|
|
||||||
|
@alias(print)
|
||||||
|
@staticmethod
|
||||||
|
def info(*args, **kwargs) -> None:
|
||||||
|
"""print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
|
||||||
|
|
||||||
|
Prints the values to a stream, or to sys.stdout by default.
|
||||||
|
Optional keyword arguments:
|
||||||
|
file: a file-like object (stream); defaults to the current sys.stdout.
|
||||||
|
sep: string inserted between values, default a space.
|
||||||
|
end: string appended after the last value, default a newline.
|
||||||
|
flush: whether to forcibly flush the stream."""
|
||||||
|
print(*args, **kwargs)
|
||||||
|
|
||||||
|
@alias(print)
|
||||||
|
@staticmethod
|
||||||
|
def debug(*args, **kwargs) -> None:
|
||||||
|
"""print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
|
||||||
|
|
||||||
|
Prints the values to a stream, or to sys.stdout by default.
|
||||||
|
Optional keyword arguments:
|
||||||
|
file: a file-like object (stream); defaults to the current sys.stdout.
|
||||||
|
sep: string inserted between values, default a space.
|
||||||
|
end: string appended after the last value, default a newline.
|
||||||
|
flush: whether to forcibly flush the stream."""
|
||||||
|
print(*args, **kwargs)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def warn(warning: Any, class_: Optional[Type[Warning]] = ProgramWarnings) -> None:
|
||||||
|
"""# Function: console.warn
|
||||||
|
Issue a warning
|
||||||
|
# Inputs:
|
||||||
|
warning: Any - The variable to use as a warning
|
||||||
|
class_: class - The class to raise the warning from, defaults to ProgramWarnings
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
None
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
ind = 1
|
||||||
|
while warning in console.__warnings__:
|
||||||
|
warning = f"{warning}({ind})"
|
||||||
|
ind += 1
|
||||||
|
console.__warnings__.append(warning)
|
||||||
|
ww(warning, class_, 2)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def error(*args, **kwargs) -> None:
|
||||||
|
"""print(value, ..., sep=' ', end='\n', file=sys.stderr, flush=False)
|
||||||
|
|
||||||
|
Prints the values to sys.stderr.
|
||||||
|
Optional keyword arguments:
|
||||||
|
sep: string inserted between values, default a space.
|
||||||
|
end: string appended after the last value, default a newline.
|
||||||
|
flush: whether to forcibly flush the stream."""
|
||||||
|
print(bcolors.FAIL, *args, bcolors.RESET, file=sys.stderr, **kwargs)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def assert_(condition: bool, message: str = "Assertion Failed") -> None:
|
||||||
|
"""# Function: console.assert_
|
||||||
|
Makes an assertion check
|
||||||
|
# Inputs:
|
||||||
|
condition: bool - The condition to run an assert check on
|
||||||
|
message: str - The message to raise if the assertion is False, defaults to "Assertion Failed"
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
None
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
if not condition:
|
||||||
|
console.warn(message, AssertationWarning)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def count(label: str = "default") -> None:
|
||||||
|
"""# Function: console.count
|
||||||
|
Increment a counter by one
|
||||||
|
# Inputs:
|
||||||
|
label: str - The counter to increment, defaults to "default"
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
None
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
if console.__counters__[label]:
|
||||||
|
console.__counters__[label] += 1
|
||||||
|
else:
|
||||||
|
console.__counters__[label] = 1
|
||||||
|
print(f"{label}: {console.__counters__[label]}")
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def countReset(label: str = "default") -> None:
|
||||||
|
"""# Function: console.countReset
|
||||||
|
Reset a counter to 0
|
||||||
|
# Inputs:
|
||||||
|
label: str - The counter to reset, defaults to "default"
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
None
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
console.__counters__[label] = 0
|
||||||
|
|
||||||
|
@alias(clear)
|
||||||
|
@staticmethod
|
||||||
|
def clear(ascii: bool = False) -> None:
|
||||||
|
"""# Function: console.clear
|
||||||
|
Clears the screen
|
||||||
|
# Inputs:
|
||||||
|
ascii: bool - Wether to use ASCII to clear the screen, defaults to False
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
None
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
clear(ascii)
|
||||||
|
|
||||||
|
|
||||||
|
sql: Type = fql.sql
|
||||||
|
|
||||||
|
|
||||||
|
def removePrefix(text: str, prefix: str) -> str:
|
||||||
|
"""# Function: removePrefix
|
||||||
|
If `prefix` is at the beginning of `text`, return `text` without `prefix`, otherwise return `text`
|
||||||
|
# Inputs:
|
||||||
|
text: str - The text to remove the prefix from
|
||||||
|
prefix: str - The prefix to remove from the text
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
str - `text` without `prefix`
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
if text.startswith(prefix):
|
||||||
|
return text[len(prefix) :]
|
||||||
|
return text
|
||||||
|
|
||||||
|
|
||||||
|
remove_prefix = removePrefix
|
||||||
|
|
||||||
|
|
||||||
|
def removeSuffix(text: str, suffix: str) -> str:
|
||||||
|
"""# Function: removeSuffix
|
||||||
|
If `suffix` is at the end of `text`, return `text` without `suffix`, otherwise return `text`
|
||||||
|
# Inputs:
|
||||||
|
text: str - The text to remove the suffix from
|
||||||
|
suffix: str - The suffix to remove from the text
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
str - `text` without `suffix`
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
if text.endswith(suffix):
|
||||||
|
return text[: -len(suffix)]
|
||||||
|
return text
|
||||||
|
|
||||||
|
|
||||||
|
remove_suffix = removeSuffix
|
||||||
|
|
||||||
|
|
||||||
|
def isMath(equation: str) -> bool:
|
||||||
|
"""# Function: isMath
|
||||||
|
Checks whether a given `equation` is actually an equation or not
|
||||||
|
Function provided by @python660 on Replit Ask
|
||||||
|
# Inputs:
|
||||||
|
equation: str - The string to check to see if it is an equation
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
bool - Whether the given equation is a math problem
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
return all([True if char in "1234567890*/+-.^%!" else False for char in equation])
|
||||||
|
|
||||||
|
|
||||||
|
def makeError(
|
||||||
|
name: str, message: object, module: str = "builtins", raise_: bool = True
|
||||||
|
) -> Union[NoReturn, object]:
|
||||||
|
"""# Function: isMath
|
||||||
|
Makes a custom error using the provided parts
|
||||||
|
# Inputs:
|
||||||
|
name: str - The name of the error
|
||||||
|
message: object - The error content
|
||||||
|
module: str - The module to say the error came from, defaults to "builtins"
|
||||||
|
raise_: bool - Wether to raise the error or return it, defaults to rasing
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
Union[NoReturn, object] - Raises an error (NoReturn) or returns the error
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
If raises_, then User Provided Error, else None"""
|
||||||
|
if raise_:
|
||||||
|
raise type(name, (Exception,), {"__module__": module, "__name__": name})(
|
||||||
|
message
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
return type(name, (Exception,), {"__module__": module, "__name__": name})(
|
||||||
|
message
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class cur:
|
||||||
|
"""Contains functions to hide and show the cursor"""
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def hide() -> None:
|
||||||
|
"""# Function: cur.hide
|
||||||
|
Hides the cursor
|
||||||
|
# Inputs:
|
||||||
|
None
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
None
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
flushPrint("\033[?25l")
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def show() -> None:
|
||||||
|
"""# Function: cur.show
|
||||||
|
Shows the cursor
|
||||||
|
# Inputs:
|
||||||
|
None
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
None
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
flushPrint("\033[?25h")
|
||||||
|
|
||||||
|
|
||||||
|
def hidden(func):
|
||||||
|
"""# Function: hidden
|
||||||
|
A wrapper that hides the cursor
|
||||||
|
# Inputs:
|
||||||
|
function
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
wrapper
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
|
||||||
|
def wrapper(*args, **kwargs):
|
||||||
|
cur.hide()
|
||||||
|
try:
|
||||||
|
out = func(*args, **kwargs) # type: ignore
|
||||||
|
except Exception as E:
|
||||||
|
cur.show()
|
||||||
|
raise E
|
||||||
|
cur.show()
|
||||||
|
return out
|
||||||
|
|
||||||
|
return wrapper
|
||||||
|
|
||||||
|
|
||||||
|
@hidden
|
||||||
|
def menu(options: dict, title: str = "") -> object:
|
||||||
|
"""# Function: menu
|
||||||
|
Uses a nice interactive for the provided options
|
||||||
|
# Inputs:
|
||||||
|
options: dict - A dictionary of options and their return values
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
object - The user's selected option
|
||||||
|
|
||||||
|
# Raises:
|
||||||
|
None"""
|
||||||
|
if type(options) != dict:
|
||||||
|
raise ValueError(f"options must be a dictionary (passed a {type(options)})")
|
||||||
|
if len(options) <= 1:
|
||||||
|
raise ValueError(
|
||||||
|
f"options must contain at least two choices (passed {len(options)})"
|
||||||
|
)
|
||||||
|
choices = list(options)
|
||||||
|
limit = len(choices)
|
||||||
|
current = 0
|
||||||
|
selected = False
|
||||||
|
UP = [fkey.KEYS["UP"], b"w", b"a", fkey.KEYS["LEFT"]]
|
||||||
|
DOWN = [fkey.KEYS["DOWN"], b"s", b"d", fkey.KEYS["RIGHT"]]
|
||||||
|
indicatorSize = len(str(limit)) * 2 + 1
|
||||||
|
menuWidth = max(
|
||||||
|
[max([len(choice) for choice in choices]) + 4, indicatorSize * 2 + 7]
|
||||||
|
)
|
||||||
|
while not selected:
|
||||||
|
clear()
|
||||||
|
flushPrint(
|
||||||
|
(title + "\n" if title else "")
|
||||||
|
+ f"╔{'═'*menuWidth}╗\n"
|
||||||
|
+ f"║ {f'{current+1}'}{' '*(len(str(limit))-len(str(current+1)))}/{limit}{' '*int(menuWidth/2-indicatorSize-2.5)}↑{' '*int((menuWidth-indicatorSize)/2-(0 if indicatorSize!=3 else 1))} ║\n"
|
||||||
|
+ f"║←{' '*int(((menuWidth-len(choices[current]))/2)-1)}{choices[current]}{' '*int((menuWidth-len(choices[current]))/2-.5)}→║\n"
|
||||||
|
+ f"║{' '*int((menuWidth-1)/2)}↓{' '*int((menuWidth-1)/2+.5)}║\n"
|
||||||
|
+ f"╚{'═'*menuWidth}╝\n"
|
||||||
|
)
|
||||||
|
key = fkey.get(bytes=True, osReader=True)
|
||||||
|
if key in UP:
|
||||||
|
current -= 1
|
||||||
|
elif key in DOWN:
|
||||||
|
current += 1
|
||||||
|
elif key in [fkey.KEYS["ENTER"]]:
|
||||||
|
break
|
||||||
|
if current > limit - 1:
|
||||||
|
current = 0
|
||||||
|
if current < 0:
|
||||||
|
current = limit - 1
|
||||||
|
return options[choices[current]]
|
176
package/src/firepup650/__init__.pyi
Normal file
176
package/src/firepup650/__init__.pyi
Normal file
|
@ -0,0 +1,176 @@
|
||||||
|
from collections.abc import Iterable
|
||||||
|
from typing import Any, List, NoReturn, Optional, Type, TypeVar, Union
|
||||||
|
|
||||||
|
def alias(Function): ...
|
||||||
|
|
||||||
|
__VERSION__: str
|
||||||
|
__NEW__: str
|
||||||
|
__LICENSE__: str
|
||||||
|
|
||||||
|
def flushPrint(*args) -> None: ...
|
||||||
|
|
||||||
|
flush_print = flushPrint
|
||||||
|
|
||||||
|
def clear(ascii: bool = ...) -> None: ...
|
||||||
|
def cmd(command: str) -> int: ...
|
||||||
|
def randint(low: int = ..., high: int = ...) -> int: ...
|
||||||
|
def e(code: Union[str, int, None] = ...) -> NoReturn: ...
|
||||||
|
def gp(
|
||||||
|
keycount: int = ..., chars: list = ..., bytes: bool = ...
|
||||||
|
) -> Union[str, bytes]: ...
|
||||||
|
def gh(
|
||||||
|
keycount: int = ..., chars: list = ..., char: str = ..., bytes: bool = ...
|
||||||
|
) -> Union[str, bytes]: ...
|
||||||
|
def printt(text: str, delay: float = ..., newline: bool = ...) -> None: ...
|
||||||
|
def sleep(seconds: float = ...) -> None: ...
|
||||||
|
def rseed(seed: Any = ..., version: int = ...) -> None: ...
|
||||||
|
|
||||||
|
T = TypeVar("T")
|
||||||
|
|
||||||
|
def robj(iterable: Iterable[T]) -> T: ...
|
||||||
|
def Color(
|
||||||
|
r: int = ..., g: int = ..., b: int = ..., bcolor: bool = ..., flush: bool = ...
|
||||||
|
) -> Union[None, str]: ...
|
||||||
|
|
||||||
|
class bcolors:
|
||||||
|
INVERSE: str
|
||||||
|
@staticmethod
|
||||||
|
def fINVERSE() -> None: ...
|
||||||
|
RESET: str
|
||||||
|
RWHITE: str
|
||||||
|
WHITE: str
|
||||||
|
FAILINVERSE: str
|
||||||
|
@staticmethod
|
||||||
|
def fWHITE() -> None: ...
|
||||||
|
@staticmethod
|
||||||
|
def fRWHITE() -> None: ...
|
||||||
|
@staticmethod
|
||||||
|
def fFAILINVERSE() -> None: ...
|
||||||
|
@staticmethod
|
||||||
|
def fRESET() -> None: ...
|
||||||
|
BROWN: str
|
||||||
|
@staticmethod
|
||||||
|
def fBROWN() -> None: ...
|
||||||
|
WARNING: str
|
||||||
|
@staticmethod
|
||||||
|
def fWARNING() -> None: ...
|
||||||
|
FAIL: str
|
||||||
|
@staticmethod
|
||||||
|
def fFAIL() -> None: ...
|
||||||
|
OK: str
|
||||||
|
@staticmethod
|
||||||
|
def fOK() -> None: ...
|
||||||
|
CYAN: str
|
||||||
|
@staticmethod
|
||||||
|
def fCYAN() -> None: ...
|
||||||
|
WOOD: str
|
||||||
|
@staticmethod
|
||||||
|
def fWOOD() -> None: ...
|
||||||
|
REPLIT: str
|
||||||
|
@staticmethod
|
||||||
|
def fREPLIT() -> None: ...
|
||||||
|
GREEN = OK
|
||||||
|
fGREEN = fOK
|
||||||
|
YELLOW = WARNING
|
||||||
|
fYELLOW = fWARNING
|
||||||
|
RED = FAIL
|
||||||
|
fRED = fFAIL
|
||||||
|
|
||||||
|
class bold:
|
||||||
|
BROWN: str
|
||||||
|
@staticmethod
|
||||||
|
def fBROWN() -> None: ...
|
||||||
|
WARNING: str
|
||||||
|
@staticmethod
|
||||||
|
def fWARNING() -> None: ...
|
||||||
|
FAIL: str
|
||||||
|
@staticmethod
|
||||||
|
def fFAIL() -> None: ...
|
||||||
|
OK: str
|
||||||
|
@staticmethod
|
||||||
|
def fOK() -> None: ...
|
||||||
|
CYAN: str
|
||||||
|
@staticmethod
|
||||||
|
def fCYAN() -> None: ...
|
||||||
|
WOOD: str
|
||||||
|
@staticmethod
|
||||||
|
def fWOOD() -> None: ...
|
||||||
|
WHITE: str
|
||||||
|
@staticmethod
|
||||||
|
def fWHITE() -> None: ...
|
||||||
|
RWHITE: str
|
||||||
|
@staticmethod
|
||||||
|
def fRWHITE() -> None: ...
|
||||||
|
REPLIT: str
|
||||||
|
@staticmethod
|
||||||
|
def fREPLIT() -> None: ...
|
||||||
|
GREEN = OK
|
||||||
|
fGREEN = fOK
|
||||||
|
YELLOW = WARNING
|
||||||
|
fYELLOW = fWARNING
|
||||||
|
RED = FAIL
|
||||||
|
fRED = fFAIL
|
||||||
|
|
||||||
|
replitCursor: str
|
||||||
|
replit_cursor = replitCursor
|
||||||
|
cast = TypeVar("cast")
|
||||||
|
|
||||||
|
def inputCast(
|
||||||
|
prompt: str = ..., cast: Type = ..., badCastMessage: str = ...
|
||||||
|
) -> cast: ...
|
||||||
|
def replitInput(
|
||||||
|
prompt: str = ..., cast: Type = ..., badCastMessage: str = ...
|
||||||
|
) -> cast: ...
|
||||||
|
|
||||||
|
replit_input = replitInput
|
||||||
|
|
||||||
|
def cprint(text: str = ...) -> None: ...
|
||||||
|
|
||||||
|
class ProgramWarnings(UserWarning): ...
|
||||||
|
class AssertationWarning(UserWarning): ...
|
||||||
|
|
||||||
|
class console:
|
||||||
|
__counters__: dict
|
||||||
|
__warnings__: List[str]
|
||||||
|
@staticmethod
|
||||||
|
def log(*args, **kwargs) -> None: ...
|
||||||
|
@staticmethod
|
||||||
|
def info(*args, **kwargs) -> None: ...
|
||||||
|
@staticmethod
|
||||||
|
def debug(*args, **kwargs) -> None: ...
|
||||||
|
@staticmethod
|
||||||
|
def warn(warning: Any, class_: Optional[Type[Warning]] = ...) -> None: ...
|
||||||
|
@staticmethod
|
||||||
|
def error(*args, **kwargs) -> None: ...
|
||||||
|
@staticmethod
|
||||||
|
def assert_(condition: bool, message: str = ...) -> None: ...
|
||||||
|
@staticmethod
|
||||||
|
def count(label: str = ...) -> None: ...
|
||||||
|
@staticmethod
|
||||||
|
def countReset(label: str = ...) -> None: ...
|
||||||
|
@staticmethod
|
||||||
|
def clear(ascii: bool = ...) -> None: ...
|
||||||
|
|
||||||
|
sql: Type
|
||||||
|
|
||||||
|
def removePrefix(text: str, prefix: str) -> str: ...
|
||||||
|
|
||||||
|
remove_prefix = removePrefix
|
||||||
|
|
||||||
|
def removeSuffix(text: str, suffix: str) -> str: ...
|
||||||
|
|
||||||
|
remove_suffix = removeSuffix
|
||||||
|
|
||||||
|
def isMath(equation: str) -> bool: ...
|
||||||
|
def makeError(
|
||||||
|
name: str, message: object, module: str = ..., raise_: bool = ...
|
||||||
|
) -> Union[None, object]: ...
|
||||||
|
|
||||||
|
class cur:
|
||||||
|
@staticmethod
|
||||||
|
def hide() -> None: ...
|
||||||
|
@staticmethod
|
||||||
|
def show() -> None: ...
|
||||||
|
|
||||||
|
def hidden(func): ...
|
||||||
|
def menu(options: dict) -> object: ...
|
0
package/src/firepup650/py.typed
Normal file
0
package/src/firepup650/py.typed
Normal file
11
package/upload.sh
Executable file
11
package/upload.sh
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
echo "🧽 Pruging old package files... 🧽"
|
||||||
|
rm -rf dist
|
||||||
|
mkdir dist
|
||||||
|
echo "🧹 Formatting... 🧹"
|
||||||
|
black . > /dev/null
|
||||||
|
echo "🛠 Building... 🛠"
|
||||||
|
poetry build > /dev/null
|
||||||
|
echo -n "☁️ Uploading... ☁️"
|
||||||
|
poetry publish -u __token__ -p $TOKEN
|
||||||
|
#python3 -m twine upload -r pypi dist/*
|
||||||
|
echo "✨ All done! ✨"
|
822
poetry.lock
generated
Normal file
822
poetry.lock
generated
Normal file
|
@ -0,0 +1,822 @@
|
||||||
|
# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand.
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "black"
|
||||||
|
version = "23.9.1"
|
||||||
|
description = "The uncompromising code formatter."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "black-23.9.1-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:d6bc09188020c9ac2555a498949401ab35bb6bf76d4e0f8ee251694664df6301"},
|
||||||
|
{file = "black-23.9.1-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:13ef033794029b85dfea8032c9d3b92b42b526f1ff4bf13b2182ce4e917f5100"},
|
||||||
|
{file = "black-23.9.1-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:75a2dc41b183d4872d3a500d2b9c9016e67ed95738a3624f4751a0cb4818fe71"},
|
||||||
|
{file = "black-23.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13a2e4a93bb8ca74a749b6974925c27219bb3df4d42fc45e948a5d9feb5122b7"},
|
||||||
|
{file = "black-23.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:adc3e4442eef57f99b5590b245a328aad19c99552e0bdc7f0b04db6656debd80"},
|
||||||
|
{file = "black-23.9.1-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:8431445bf62d2a914b541da7ab3e2b4f3bc052d2ccbf157ebad18ea126efb91f"},
|
||||||
|
{file = "black-23.9.1-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:8fc1ddcf83f996247505db6b715294eba56ea9372e107fd54963c7553f2b6dfe"},
|
||||||
|
{file = "black-23.9.1-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:7d30ec46de88091e4316b17ae58bbbfc12b2de05e069030f6b747dfc649ad186"},
|
||||||
|
{file = "black-23.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:031e8c69f3d3b09e1aa471a926a1eeb0b9071f80b17689a655f7885ac9325a6f"},
|
||||||
|
{file = "black-23.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:538efb451cd50f43aba394e9ec7ad55a37598faae3348d723b59ea8e91616300"},
|
||||||
|
{file = "black-23.9.1-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:638619a559280de0c2aa4d76f504891c9860bb8fa214267358f0a20f27c12948"},
|
||||||
|
{file = "black-23.9.1-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:a732b82747235e0542c03bf352c126052c0fbc458d8a239a94701175b17d4855"},
|
||||||
|
{file = "black-23.9.1-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:cf3a4d00e4cdb6734b64bf23cd4341421e8953615cba6b3670453737a72ec204"},
|
||||||
|
{file = "black-23.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf99f3de8b3273a8317681d8194ea222f10e0133a24a7548c73ce44ea1679377"},
|
||||||
|
{file = "black-23.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:14f04c990259576acd093871e7e9b14918eb28f1866f91968ff5524293f9c573"},
|
||||||
|
{file = "black-23.9.1-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:c619f063c2d68f19b2d7270f4cf3192cb81c9ec5bc5ba02df91471d0b88c4c5c"},
|
||||||
|
{file = "black-23.9.1-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:6a3b50e4b93f43b34a9d3ef00d9b6728b4a722c997c99ab09102fd5efdb88325"},
|
||||||
|
{file = "black-23.9.1-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:c46767e8df1b7beefb0899c4a95fb43058fa8500b6db144f4ff3ca38eb2f6393"},
|
||||||
|
{file = "black-23.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50254ebfa56aa46a9fdd5d651f9637485068a1adf42270148cd101cdf56e0ad9"},
|
||||||
|
{file = "black-23.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:403397c033adbc45c2bd41747da1f7fc7eaa44efbee256b53842470d4ac5a70f"},
|
||||||
|
{file = "black-23.9.1-py3-none-any.whl", hash = "sha256:6ccd59584cc834b6d127628713e4b6b968e5f79572da66284532525a042549f9"},
|
||||||
|
{file = "black-23.9.1.tar.gz", hash = "sha256:24b6b3ff5c6d9ea08a8888f6977eae858e1f340d7260cf56d70a49823236b62d"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
click = ">=8.0.0"
|
||||||
|
mypy-extensions = ">=0.4.3"
|
||||||
|
packaging = ">=22.0"
|
||||||
|
pathspec = ">=0.9.0"
|
||||||
|
platformdirs = ">=2"
|
||||||
|
tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""}
|
||||||
|
typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""}
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
colorama = ["colorama (>=0.4.3)"]
|
||||||
|
d = ["aiohttp (>=3.7.4)"]
|
||||||
|
jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
|
||||||
|
uvloop = ["uvloop (>=0.15.2)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "certifi"
|
||||||
|
version = "2023.7.22"
|
||||||
|
description = "Python package for providing Mozilla's CA Bundle."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
files = [
|
||||||
|
{file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"},
|
||||||
|
{file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cffi"
|
||||||
|
version = "1.15.1"
|
||||||
|
description = "Foreign Function Interface for Python calling C code."
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
files = [
|
||||||
|
{file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"},
|
||||||
|
{file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"},
|
||||||
|
{file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"},
|
||||||
|
{file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"},
|
||||||
|
{file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"},
|
||||||
|
{file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"},
|
||||||
|
{file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"},
|
||||||
|
{file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"},
|
||||||
|
{file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"},
|
||||||
|
{file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"},
|
||||||
|
{file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"},
|
||||||
|
{file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"},
|
||||||
|
{file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"},
|
||||||
|
{file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"},
|
||||||
|
{file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"},
|
||||||
|
{file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"},
|
||||||
|
{file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"},
|
||||||
|
{file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"},
|
||||||
|
{file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"},
|
||||||
|
{file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"},
|
||||||
|
{file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"},
|
||||||
|
{file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"},
|
||||||
|
{file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"},
|
||||||
|
{file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"},
|
||||||
|
{file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"},
|
||||||
|
{file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"},
|
||||||
|
{file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"},
|
||||||
|
{file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"},
|
||||||
|
{file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"},
|
||||||
|
{file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"},
|
||||||
|
{file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"},
|
||||||
|
{file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"},
|
||||||
|
{file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"},
|
||||||
|
{file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"},
|
||||||
|
{file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"},
|
||||||
|
{file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"},
|
||||||
|
{file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"},
|
||||||
|
{file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"},
|
||||||
|
{file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"},
|
||||||
|
{file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"},
|
||||||
|
{file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"},
|
||||||
|
{file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"},
|
||||||
|
{file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"},
|
||||||
|
{file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"},
|
||||||
|
{file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"},
|
||||||
|
{file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"},
|
||||||
|
{file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"},
|
||||||
|
{file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"},
|
||||||
|
{file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"},
|
||||||
|
{file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"},
|
||||||
|
{file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"},
|
||||||
|
{file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"},
|
||||||
|
{file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"},
|
||||||
|
{file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"},
|
||||||
|
{file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"},
|
||||||
|
{file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"},
|
||||||
|
{file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"},
|
||||||
|
{file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"},
|
||||||
|
{file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"},
|
||||||
|
{file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"},
|
||||||
|
{file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"},
|
||||||
|
{file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"},
|
||||||
|
{file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"},
|
||||||
|
{file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
pycparser = "*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "charset-normalizer"
|
||||||
|
version = "3.2.0"
|
||||||
|
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.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp310-cp310-win32.whl", hash = "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp311-cp311-win32.whl", hash = "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp37-cp37m-win32.whl", hash = "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp38-cp38-win32.whl", hash = "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp39-cp39-win32.whl", hash = "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9"},
|
||||||
|
{file = "charset_normalizer-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80"},
|
||||||
|
{file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[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 = "cryptography"
|
||||||
|
version = "41.0.4"
|
||||||
|
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "cryptography-41.0.4-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:80907d3faa55dc5434a16579952ac6da800935cd98d14dbd62f6f042c7f5e839"},
|
||||||
|
{file = "cryptography-41.0.4-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:35c00f637cd0b9d5b6c6bd11b6c3359194a8eba9c46d4e875a3660e3b400005f"},
|
||||||
|
{file = "cryptography-41.0.4-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cecfefa17042941f94ab54f769c8ce0fe14beff2694e9ac684176a2535bf9714"},
|
||||||
|
{file = "cryptography-41.0.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e40211b4923ba5a6dc9769eab704bdb3fbb58d56c5b336d30996c24fcf12aadb"},
|
||||||
|
{file = "cryptography-41.0.4-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:23a25c09dfd0d9f28da2352503b23e086f8e78096b9fd585d1d14eca01613e13"},
|
||||||
|
{file = "cryptography-41.0.4-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:2ed09183922d66c4ec5fdaa59b4d14e105c084dd0febd27452de8f6f74704143"},
|
||||||
|
{file = "cryptography-41.0.4-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5a0f09cefded00e648a127048119f77bc2b2ec61e736660b5789e638f43cc397"},
|
||||||
|
{file = "cryptography-41.0.4-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:9eeb77214afae972a00dee47382d2591abe77bdae166bda672fb1e24702a3860"},
|
||||||
|
{file = "cryptography-41.0.4-cp37-abi3-win32.whl", hash = "sha256:3b224890962a2d7b57cf5eeb16ccaafba6083f7b811829f00476309bce2fe0fd"},
|
||||||
|
{file = "cryptography-41.0.4-cp37-abi3-win_amd64.whl", hash = "sha256:c880eba5175f4307129784eca96f4e70b88e57aa3f680aeba3bab0e980b0f37d"},
|
||||||
|
{file = "cryptography-41.0.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:004b6ccc95943f6a9ad3142cfabcc769d7ee38a3f60fb0dddbfb431f818c3a67"},
|
||||||
|
{file = "cryptography-41.0.4-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:86defa8d248c3fa029da68ce61fe735432b047e32179883bdb1e79ed9bb8195e"},
|
||||||
|
{file = "cryptography-41.0.4-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:37480760ae08065437e6573d14be973112c9e6dcaf5f11d00147ee74f37a3829"},
|
||||||
|
{file = "cryptography-41.0.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:b5f4dfe950ff0479f1f00eda09c18798d4f49b98f4e2006d644b3301682ebdca"},
|
||||||
|
{file = "cryptography-41.0.4-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7e53db173370dea832190870e975a1e09c86a879b613948f09eb49324218c14d"},
|
||||||
|
{file = "cryptography-41.0.4-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5b72205a360f3b6176485a333256b9bcd48700fc755fef51c8e7e67c4b63e3ac"},
|
||||||
|
{file = "cryptography-41.0.4-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:93530900d14c37a46ce3d6c9e6fd35dbe5f5601bf6b3a5c325c7bffc030344d9"},
|
||||||
|
{file = "cryptography-41.0.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:efc8ad4e6fc4f1752ebfb58aefece8b4e3c4cae940b0994d43649bdfce8d0d4f"},
|
||||||
|
{file = "cryptography-41.0.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c3391bd8e6de35f6f1140e50aaeb3e2b3d6a9012536ca23ab0d9c35ec18c8a91"},
|
||||||
|
{file = "cryptography-41.0.4-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:0d9409894f495d465fe6fda92cb70e8323e9648af912d5b9141d616df40a87b8"},
|
||||||
|
{file = "cryptography-41.0.4-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:8ac4f9ead4bbd0bc8ab2d318f97d85147167a488be0e08814a37eb2f439d5cf6"},
|
||||||
|
{file = "cryptography-41.0.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:047c4603aeb4bbd8db2756e38f5b8bd7e94318c047cfe4efeb5d715e08b49311"},
|
||||||
|
{file = "cryptography-41.0.4.tar.gz", hash = "sha256:7febc3094125fc126a7f6fb1f420d0da639f3f32cb15c8ff0dc3997c4549f51a"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
cffi = ">=1.12"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"]
|
||||||
|
docstest = ["pyenchant (>=1.6.11)", "sphinxcontrib-spelling (>=4.0.1)", "twine (>=1.12.0)"]
|
||||||
|
nox = ["nox"]
|
||||||
|
pep8test = ["black", "check-sdist", "mypy", "ruff"]
|
||||||
|
sdist = ["build"]
|
||||||
|
ssh = ["bcrypt (>=3.1.5)"]
|
||||||
|
test = ["pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"]
|
||||||
|
test-randomorder = ["pytest-randomly"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "docutils"
|
||||||
|
version = "0.20.1"
|
||||||
|
description = "Docutils -- Python Documentation Utilities"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6"},
|
||||||
|
{file = "docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "fkeycapture"
|
||||||
|
version = "1.2.7"
|
||||||
|
description = "A way to capture keystrokes"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8,<4.0"
|
||||||
|
files = [
|
||||||
|
{file = "fkeycapture-1.2.7-py3-none-any.whl", hash = "sha256:c09cb715ccf2b9dfc25ecd39bffaf8fa794bc07410f666ac2ec15ebebebaabef"},
|
||||||
|
{file = "fkeycapture-1.2.7.tar.gz", hash = "sha256:5ef9c90aec0420a2e462420a2bc8076a50ffd8566a9a022ac171c0e508f1d58d"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "fpsql"
|
||||||
|
version = "1.0.5"
|
||||||
|
description = "An easy to use SQLite package"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8,<4.0"
|
||||||
|
files = [
|
||||||
|
{file = "fpsql-1.0.5-py3-none-any.whl", hash = "sha256:a31f4bf99d44c0095a8246bfd78bd39cf96d9b3591363a3f6538ca40914679a4"},
|
||||||
|
{file = "fpsql-1.0.5.tar.gz", hash = "sha256:647d148c5a17bca3a147a3bb281cc12dfc36f6f3f3652f22a1b2a1a3b7367c93"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "idna"
|
||||||
|
version = "3.4"
|
||||||
|
description = "Internationalized Domain Names in Applications (IDNA)"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.5"
|
||||||
|
files = [
|
||||||
|
{file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"},
|
||||||
|
{file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "importlib-metadata"
|
||||||
|
version = "6.8.0"
|
||||||
|
description = "Read metadata from Python packages"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "importlib_metadata-6.8.0-py3-none-any.whl", hash = "sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb"},
|
||||||
|
{file = "importlib_metadata-6.8.0.tar.gz", hash = "sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
zipp = ">=0.5"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
|
||||||
|
perf = ["ipython"]
|
||||||
|
testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "jaraco-classes"
|
||||||
|
version = "3.3.0"
|
||||||
|
description = "Utility functions for Python class constructs"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "jaraco.classes-3.3.0-py3-none-any.whl", hash = "sha256:10afa92b6743f25c0cf5f37c6bb6e18e2c5bb84a16527ccfc0040ea377e7aaeb"},
|
||||||
|
{file = "jaraco.classes-3.3.0.tar.gz", hash = "sha256:c063dd08e89217cee02c8d5e5ec560f2c8ce6cdc2fcdc2e68f7b2e5547ed3621"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
more-itertools = "*"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
|
||||||
|
testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "jeepney"
|
||||||
|
version = "0.8.0"
|
||||||
|
description = "Low-level, pure Python DBus protocol wrapper."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "jeepney-0.8.0-py3-none-any.whl", hash = "sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755"},
|
||||||
|
{file = "jeepney-0.8.0.tar.gz", hash = "sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
test = ["async-timeout", "pytest", "pytest-asyncio (>=0.17)", "pytest-trio", "testpath", "trio"]
|
||||||
|
trio = ["async_generator", "trio"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "keyring"
|
||||||
|
version = "24.2.0"
|
||||||
|
description = "Store and access your passwords safely."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "keyring-24.2.0-py3-none-any.whl", hash = "sha256:4901caaf597bfd3bbd78c9a0c7c4c29fcd8310dab2cffefe749e916b6527acd6"},
|
||||||
|
{file = "keyring-24.2.0.tar.gz", hash = "sha256:ca0746a19ec421219f4d713f848fa297a661a8a8c1504867e55bfb5e09091509"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
importlib-metadata = {version = ">=4.11.4", markers = "python_version < \"3.12\""}
|
||||||
|
"jaraco.classes" = "*"
|
||||||
|
jeepney = {version = ">=0.4.2", markers = "sys_platform == \"linux\""}
|
||||||
|
pywin32-ctypes = {version = ">=0.2.0", markers = "sys_platform == \"win32\""}
|
||||||
|
SecretStorage = {version = ">=3.2", markers = "sys_platform == \"linux\""}
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
completion = ["shtab"]
|
||||||
|
docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
|
||||||
|
testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1)", "pytest-ruff"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "keyrings-alt"
|
||||||
|
version = "4.2.0"
|
||||||
|
description = "Alternate keyring implementations"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "keyrings.alt-4.2.0-py3-none-any.whl", hash = "sha256:3d25912ed71d6deec85d7e6e867963e1357cd56186a41c9295b86939a5ebf85c"},
|
||||||
|
{file = "keyrings.alt-4.2.0.tar.gz", hash = "sha256:2ba3d56441ba0637f5f9c096068f67010ac0453f9d0b626de2aa3019353b6431"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
"jaraco.classes" = "*"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx"]
|
||||||
|
testing = ["backports.unittest-mock", "flake8 (<5)", "fs (>=0.5,<3)", "gdata", "keyring (>=20)", "pycryptodome", "pycryptodomex", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "python-keyczar"]
|
||||||
|
|
||||||
|
[[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 = "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 = "more-itertools"
|
||||||
|
version = "10.1.0"
|
||||||
|
description = "More routines for operating on iterables, beyond itertools"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "more-itertools-10.1.0.tar.gz", hash = "sha256:626c369fa0eb37bac0291bce8259b332fd59ac792fa5497b59837309cd5b114a"},
|
||||||
|
{file = "more_itertools-10.1.0-py3-none-any.whl", hash = "sha256:64e0735fcfdc6f3464ea133afe8ea4483b1c5fe3a3d69852e6503b43a0b222e6"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "mypy"
|
||||||
|
version = "1.5.1"
|
||||||
|
description = "Optional static typing for Python"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "mypy-1.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f33592ddf9655a4894aef22d134de7393e95fcbdc2d15c1ab65828eee5c66c70"},
|
||||||
|
{file = "mypy-1.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:258b22210a4a258ccd077426c7a181d789d1121aca6db73a83f79372f5569ae0"},
|
||||||
|
{file = "mypy-1.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9ec1f695f0c25986e6f7f8778e5ce61659063268836a38c951200c57479cc12"},
|
||||||
|
{file = "mypy-1.5.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:abed92d9c8f08643c7d831300b739562b0a6c9fcb028d211134fc9ab20ccad5d"},
|
||||||
|
{file = "mypy-1.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:a156e6390944c265eb56afa67c74c0636f10283429171018446b732f1a05af25"},
|
||||||
|
{file = "mypy-1.5.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6ac9c21bfe7bc9f7f1b6fae441746e6a106e48fc9de530dea29e8cd37a2c0cc4"},
|
||||||
|
{file = "mypy-1.5.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:51cb1323064b1099e177098cb939eab2da42fea5d818d40113957ec954fc85f4"},
|
||||||
|
{file = "mypy-1.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:596fae69f2bfcb7305808c75c00f81fe2829b6236eadda536f00610ac5ec2243"},
|
||||||
|
{file = "mypy-1.5.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:32cb59609b0534f0bd67faebb6e022fe534bdb0e2ecab4290d683d248be1b275"},
|
||||||
|
{file = "mypy-1.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:159aa9acb16086b79bbb0016145034a1a05360626046a929f84579ce1666b315"},
|
||||||
|
{file = "mypy-1.5.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f6b0e77db9ff4fda74de7df13f30016a0a663928d669c9f2c057048ba44f09bb"},
|
||||||
|
{file = "mypy-1.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:26f71b535dfc158a71264e6dc805a9f8d2e60b67215ca0bfa26e2e1aa4d4d373"},
|
||||||
|
{file = "mypy-1.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fc3a600f749b1008cc75e02b6fb3d4db8dbcca2d733030fe7a3b3502902f161"},
|
||||||
|
{file = "mypy-1.5.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:26fb32e4d4afa205b24bf645eddfbb36a1e17e995c5c99d6d00edb24b693406a"},
|
||||||
|
{file = "mypy-1.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:82cb6193de9bbb3844bab4c7cf80e6227d5225cc7625b068a06d005d861ad5f1"},
|
||||||
|
{file = "mypy-1.5.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4a465ea2ca12804d5b34bb056be3a29dc47aea5973b892d0417c6a10a40b2d65"},
|
||||||
|
{file = "mypy-1.5.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9fece120dbb041771a63eb95e4896791386fe287fefb2837258925b8326d6160"},
|
||||||
|
{file = "mypy-1.5.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d28ddc3e3dfeab553e743e532fb95b4e6afad51d4706dd22f28e1e5e664828d2"},
|
||||||
|
{file = "mypy-1.5.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:57b10c56016adce71fba6bc6e9fd45d8083f74361f629390c556738565af8eeb"},
|
||||||
|
{file = "mypy-1.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:ff0cedc84184115202475bbb46dd99f8dcb87fe24d5d0ddfc0fe6b8575c88d2f"},
|
||||||
|
{file = "mypy-1.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8f772942d372c8cbac575be99f9cc9d9fb3bd95c8bc2de6c01411e2c84ebca8a"},
|
||||||
|
{file = "mypy-1.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5d627124700b92b6bbaa99f27cbe615c8ea7b3402960f6372ea7d65faf376c14"},
|
||||||
|
{file = "mypy-1.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:361da43c4f5a96173220eb53340ace68cda81845cd88218f8862dfb0adc8cddb"},
|
||||||
|
{file = "mypy-1.5.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:330857f9507c24de5c5724235e66858f8364a0693894342485e543f5b07c8693"},
|
||||||
|
{file = "mypy-1.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:c543214ffdd422623e9fedd0869166c2f16affe4ba37463975043ef7d2ea8770"},
|
||||||
|
{file = "mypy-1.5.1-py3-none-any.whl", hash = "sha256:f757063a83970d67c444f6e01d9550a7402322af3557ce7630d3c957386fa8f5"},
|
||||||
|
{file = "mypy-1.5.1.tar.gz", hash = "sha256:b031b9601f1060bf1281feab89697324726ba0c0bae9d7cd7ab4b690940f0b92"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
mypy-extensions = ">=1.0.0"
|
||||||
|
tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""}
|
||||||
|
typing-extensions = ">=4.1.0"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
dmypy = ["psutil (>=4.0)"]
|
||||||
|
install-types = ["pip"]
|
||||||
|
reports = ["lxml"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "mypy-extensions"
|
||||||
|
version = "1.0.0"
|
||||||
|
description = "Type system extensions for programs checked with the mypy type checker."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.5"
|
||||||
|
files = [
|
||||||
|
{file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"},
|
||||||
|
{file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "nh3"
|
||||||
|
version = "0.2.14"
|
||||||
|
description = "Ammonia HTML sanitizer Python binding"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
files = [
|
||||||
|
{file = "nh3-0.2.14-cp37-abi3-macosx_10_7_x86_64.whl", hash = "sha256:9be2f68fb9a40d8440cbf34cbf40758aa7f6093160bfc7fb018cce8e424f0c3a"},
|
||||||
|
{file = "nh3-0.2.14-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:f99212a81c62b5f22f9e7c3e347aa00491114a5647e1f13bbebd79c3e5f08d75"},
|
||||||
|
{file = "nh3-0.2.14-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7771d43222b639a4cd9e341f870cee336b9d886de1ad9bec8dddab22fe1de450"},
|
||||||
|
{file = "nh3-0.2.14-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:525846c56c2bcd376f5eaee76063ebf33cf1e620c1498b2a40107f60cfc6054e"},
|
||||||
|
{file = "nh3-0.2.14-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:e8986f1dd3221d1e741fda0a12eaa4a273f1d80a35e31a1ffe579e7c621d069e"},
|
||||||
|
{file = "nh3-0.2.14-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:18415df36db9b001f71a42a3a5395db79cf23d556996090d293764436e98e8ad"},
|
||||||
|
{file = "nh3-0.2.14-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:377aaf6a9e7c63962f367158d808c6a1344e2b4f83d071c43fbd631b75c4f0b2"},
|
||||||
|
{file = "nh3-0.2.14-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b0be5c792bd43d0abef8ca39dd8acb3c0611052ce466d0401d51ea0d9aa7525"},
|
||||||
|
{file = "nh3-0.2.14-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:93a943cfd3e33bd03f77b97baa11990148687877b74193bf777956b67054dcc6"},
|
||||||
|
{file = "nh3-0.2.14-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ac8056e937f264995a82bf0053ca898a1cb1c9efc7cd68fa07fe0060734df7e4"},
|
||||||
|
{file = "nh3-0.2.14-cp37-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:203cac86e313cf6486704d0ec620a992c8bc164c86d3a4fd3d761dd552d839b5"},
|
||||||
|
{file = "nh3-0.2.14-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:5529a3bf99402c34056576d80ae5547123f1078da76aa99e8ed79e44fa67282d"},
|
||||||
|
{file = "nh3-0.2.14-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:aed56a86daa43966dd790ba86d4b810b219f75b4bb737461b6886ce2bde38fd6"},
|
||||||
|
{file = "nh3-0.2.14-cp37-abi3-win32.whl", hash = "sha256:116c9515937f94f0057ef50ebcbcc10600860065953ba56f14473ff706371873"},
|
||||||
|
{file = "nh3-0.2.14-cp37-abi3-win_amd64.whl", hash = "sha256:88c753efbcdfc2644a5012938c6b9753f1c64a5723a67f0301ca43e7b85dcf0e"},
|
||||||
|
{file = "nh3-0.2.14.tar.gz", hash = "sha256:a0c509894fd4dccdff557068e5074999ae3b75f4c5a2d6fb5415e782e25679c4"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "packaging"
|
||||||
|
version = "23.1"
|
||||||
|
description = "Core utilities for Python packages"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"},
|
||||||
|
{file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pathspec"
|
||||||
|
version = "0.11.2"
|
||||||
|
description = "Utility library for gitignore style pattern matching of file paths."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"},
|
||||||
|
{file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pkginfo"
|
||||||
|
version = "1.9.6"
|
||||||
|
description = "Query metadata from sdists / bdists / installed packages."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
files = [
|
||||||
|
{file = "pkginfo-1.9.6-py3-none-any.whl", hash = "sha256:4b7a555a6d5a22169fcc9cf7bfd78d296b0361adad412a346c1226849af5e546"},
|
||||||
|
{file = "pkginfo-1.9.6.tar.gz", hash = "sha256:8fd5896e8718a4372f0ea9cc9d96f6417c9b986e23a4d116dda26b62cc29d046"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
testing = ["pytest", "pytest-cov"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "platformdirs"
|
||||||
|
version = "3.10.0"
|
||||||
|
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "platformdirs-3.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"},
|
||||||
|
{file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"]
|
||||||
|
test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pycparser"
|
||||||
|
version = "2.21"
|
||||||
|
description = "C parser in Python"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
files = [
|
||||||
|
{file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"},
|
||||||
|
{file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pygments"
|
||||||
|
version = "2.16.1"
|
||||||
|
description = "Pygments is a syntax highlighting package written in Python."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"},
|
||||||
|
{file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
plugins = ["importlib-metadata"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pywin32-ctypes"
|
||||||
|
version = "0.2.2"
|
||||||
|
description = "A (partial) reimplementation of pywin32 using ctypes/cffi"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
files = [
|
||||||
|
{file = "pywin32-ctypes-0.2.2.tar.gz", hash = "sha256:3426e063bdd5fd4df74a14fa3cf80a0b42845a87e1d1e81f6549f9daec593a60"},
|
||||||
|
{file = "pywin32_ctypes-0.2.2-py3-none-any.whl", hash = "sha256:bf490a1a709baf35d688fe0ecf980ed4de11d2b3e37b51e5442587a75d9957e7"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "readme-renderer"
|
||||||
|
version = "42.0"
|
||||||
|
description = "readme_renderer is a library for rendering readme descriptions for Warehouse"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "readme_renderer-42.0-py3-none-any.whl", hash = "sha256:13d039515c1f24de668e2c93f2e877b9dbe6c6c32328b90a40a49d8b2b85f36d"},
|
||||||
|
{file = "readme_renderer-42.0.tar.gz", hash = "sha256:2d55489f83be4992fe4454939d1a051c33edbab778e82761d060c9fc6b308cd1"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
docutils = ">=0.13.1"
|
||||||
|
nh3 = ">=0.2.14"
|
||||||
|
Pygments = ">=2.5.1"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
md = ["cmarkgfm (>=0.8.0)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "requests"
|
||||||
|
version = "2.31.0"
|
||||||
|
description = "Python HTTP for Humans."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"},
|
||||||
|
{file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[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 = "requests-toolbelt"
|
||||||
|
version = "1.0.0"
|
||||||
|
description = "A utility belt for advanced users of python-requests"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
files = [
|
||||||
|
{file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"},
|
||||||
|
{file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
requests = ">=2.0.1,<3.0.0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rfc3986"
|
||||||
|
version = "2.0.0"
|
||||||
|
description = "Validating URI References per RFC 3986"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "rfc3986-2.0.0-py2.py3-none-any.whl", hash = "sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd"},
|
||||||
|
{file = "rfc3986-2.0.0.tar.gz", hash = "sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
idna2008 = ["idna"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rich"
|
||||||
|
version = "13.5.3"
|
||||||
|
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.5.3-py3-none-any.whl", hash = "sha256:9257b468badc3d347e146a4faa268ff229039d4c2d176ab0cffb4c4fbc73d5d9"},
|
||||||
|
{file = "rich-13.5.3.tar.gz", hash = "sha256:87b43e0543149efa1253f485cd845bb7ee54df16c9617b8a893650ab84b4acb6"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
markdown-it-py = ">=2.2.0"
|
||||||
|
pygments = ">=2.13.0,<3.0.0"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
jupyter = ["ipywidgets (>=7.5.1,<9)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "secretstorage"
|
||||||
|
version = "3.3.3"
|
||||||
|
description = "Python bindings to FreeDesktop.org Secret Service API"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
files = [
|
||||||
|
{file = "SecretStorage-3.3.3-py3-none-any.whl", hash = "sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99"},
|
||||||
|
{file = "SecretStorage-3.3.3.tar.gz", hash = "sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
cryptography = ">=2.0"
|
||||||
|
jeepney = ">=0.6"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tomli"
|
||||||
|
version = "2.0.1"
|
||||||
|
description = "A lil' TOML parser"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
|
||||||
|
{file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "twine"
|
||||||
|
version = "4.0.2"
|
||||||
|
description = "Collection of utilities for publishing packages on PyPI"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "twine-4.0.2-py3-none-any.whl", hash = "sha256:929bc3c280033347a00f847236564d1c52a3e61b1ac2516c97c48f3ceab756d8"},
|
||||||
|
{file = "twine-4.0.2.tar.gz", hash = "sha256:9e102ef5fdd5a20661eb88fad46338806c3bd32cf1db729603fe3697b1bc83c8"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
importlib-metadata = ">=3.6"
|
||||||
|
keyring = ">=15.1"
|
||||||
|
pkginfo = ">=1.8.1"
|
||||||
|
readme-renderer = ">=35.0"
|
||||||
|
requests = ">=2.20"
|
||||||
|
requests-toolbelt = ">=0.8.0,<0.9.0 || >0.9.0"
|
||||||
|
rfc3986 = ">=1.4.0"
|
||||||
|
rich = ">=12.0.0"
|
||||||
|
urllib3 = ">=1.26.0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "typing-extensions"
|
||||||
|
version = "4.8.0"
|
||||||
|
description = "Backported and Experimental Type Hints for Python 3.8+"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0"},
|
||||||
|
{file = "typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "urllib3"
|
||||||
|
version = "2.0.5"
|
||||||
|
description = "HTTP library with thread-safe connection pooling, file post, and more."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "urllib3-2.0.5-py3-none-any.whl", hash = "sha256:ef16afa8ba34a1f989db38e1dbbe0c302e4289a47856990d0682e374563ce35e"},
|
||||||
|
{file = "urllib3-2.0.5.tar.gz", hash = "sha256:13abf37382ea2ce6fb744d4dad67838eec857c9f4f57009891805e0b5e123594"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"]
|
||||||
|
secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"]
|
||||||
|
socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
|
||||||
|
zstd = ["zstandard (>=0.18.0)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "zipp"
|
||||||
|
version = "3.17.0"
|
||||||
|
description = "Backport of pathlib-compatible object wrapper for zip files"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"},
|
||||||
|
{file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"]
|
||||||
|
testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"]
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
lock-version = "2.0"
|
||||||
|
python-versions = "^3.10.11"
|
||||||
|
content-hash = "44854c629aee93ba89245e9a94a20e3065bd22fb6a16e4cac3b52a93c1a4c2de"
|
23
pyproject.toml
Normal file
23
pyproject.toml
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
[tool.poetry]
|
||||||
|
name = "firepup650-source"
|
||||||
|
version = "1.0.2"
|
||||||
|
description = "Replit source"
|
||||||
|
authors = ["Firepup650"]
|
||||||
|
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = "^3.10.11"
|
||||||
|
fkeycapture = "^1.2.3"
|
||||||
|
black = "^23.3.0"
|
||||||
|
keyrings-alt = "^4.2.0"
|
||||||
|
fpsql = "^1.0.1"
|
||||||
|
mypy = "^1.3.0"
|
||||||
|
twine = "^4.0.2"
|
||||||
|
|
||||||
|
[tool.poetry.dev-dependencies]
|
||||||
|
|
||||||
|
[tool.black]
|
||||||
|
exclude = ".pythonlibs"
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["poetry-core>=1.0.0"]
|
||||||
|
build-backend = "poetry.core.masonry.api"
|
4
replit.nix
Normal file
4
replit.nix
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{ pkgs }: {
|
||||||
|
deps = [
|
||||||
|
];
|
||||||
|
}
|
Loading…
Reference in a new issue