diff --git a/.github/workflows/stefflow.yml b/.github/workflows/stefflow.yml index 6b180d50..4606b914 100644 --- a/.github/workflows/stefflow.yml +++ b/.github/workflows/stefflow.yml @@ -83,7 +83,7 @@ jobs: pytest --verbose --cov=. --cov-report=html - name: "⬆️ Upload coverage" - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: "code-coverage-report" path: htmlcov @@ -110,13 +110,13 @@ jobs: run: poetry build --no-interaction - name: "⬆️ Upload code package as artifact" - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: "package.tar.gz" path: dist/*.tar.gz - name: "⬆️ Upload wheel package as artifact" - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: "package.whl" path: dist/*.whl @@ -153,7 +153,7 @@ jobs: make html - name: "⬆️ Upload docs artifact" - uses: actions/upload-artifact@v2.3.1 + uses: actions/upload-artifact@v3 with: name: "documentation" path: "docs/build/html/" diff --git a/poetry.lock b/poetry.lock index ac6233c8..498373d7 100644 --- a/poetry.lock +++ b/poetry.lock @@ -17,6 +17,14 @@ yarl = ">=1.0,<2.0" [package.extras] speedups = ["aiodns", "brotlipy", "cchardet"] +[[package]] +name = "alabaster" +version = "0.7.12" +description = "A configurable sidebar-enabled Sphinx theme" +category = "dev" +optional = false +python-versions = "*" + [[package]] name = "alembic" version = "1.7.7" @@ -61,6 +69,14 @@ category = "main" optional = false python-versions = ">=3.5.3" +[[package]] +name = "atomicwrites" +version = "1.4.0" +description = "Atomic file writes." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + [[package]] name = "attrs" version = "21.4.0" @@ -75,6 +91,17 @@ docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"] +[[package]] +name = "babel" +version = "2.9.1" +description = "Internationalization utilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.dependencies] +pytz = ">=2015.7" + [[package]] name = "cachetools" version = "5.0.0" @@ -166,6 +193,14 @@ aiohttp = ">=3.6.0,<3.8.0" docs = ["sphinx (==3.0.3)", "sphinxcontrib-trio (==1.1.2)", "sphinxcontrib-websupport"] voice = ["PyNaCl (>=1.3.0,<1.5)"] +[[package]] +name = "docutils" +version = "0.16" +description = "Docutils -- Python Documentation Utilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + [[package]] name = "greenlet" version = "1.1.2" @@ -196,6 +231,14 @@ category = "main" optional = false python-versions = ">=3.5" +[[package]] +name = "imagesize" +version = "1.3.0" +description = "Getting image size from png/jpeg/jpeg2000/gif file" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + [[package]] name = "importlib-metadata" version = "4.11.3" @@ -227,6 +270,28 @@ zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-black (>=0.3.7)", "pytest-mypy"] +[[package]] +name = "iniconfig" +version = "1.1.1" +description = "iniconfig: brain-dead simple config-ini parsing" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "jinja2" +version = "3.1.1" +description = "A very fast and expressive template engine." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + [[package]] name = "mako" version = "1.2.0" @@ -259,6 +324,29 @@ category = "main" optional = false python-versions = ">=3.7" +[[package]] +name = "packaging" +version = "21.3" +description = "Core utilities for Python packages" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" + +[[package]] +name = "pluggy" +version = "1.0.0" +description = "plugin and hook calling mechanisms for python" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + [[package]] name = "psutil" version = "5.9.0" @@ -278,6 +366,14 @@ category = "main" optional = false python-versions = ">=3.6" +[[package]] +name = "py" +version = "1.11.0" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + [[package]] name = "pyaes" version = "1.6.1" @@ -317,6 +413,25 @@ typing-extensions = ">=3.7.4.3" dotenv = ["python-dotenv (>=0.10.4)"] email = ["email-validator (>=1.0.3)"] +[[package]] +name = "pygments" +version = "2.11.2" +description = "Pygments is a syntax highlighting package written in Python." +category = "dev" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "pyparsing" +version = "3.0.8" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" +category = "dev" +optional = false +python-versions = ">=3.6.8" + +[package.extras] +diagrams = ["railroad-diagrams", "jinja2"] + [[package]] name = "pyreadline3" version = "3.4.1" @@ -325,6 +440,41 @@ category = "main" optional = false python-versions = "*" +[[package]] +name = "pytest" +version = "6.2.5" +description = "pytest: simple powerful testing with Python" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} +attrs = ">=19.2.0" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +py = ">=1.8.2" +toml = "*" + +[package.extras] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] + +[[package]] +name = "pytest-asyncio" +version = "0.15.1" +description = "Pytest support for asyncio." +category = "dev" +optional = false +python-versions = ">= 3.6" + +[package.dependencies] +pytest = ">=5.4.0" + +[package.extras] +testing = ["coverage", "hypothesis (>=5.7.1)"] + [[package]] name = "python-dateutil" version = "2.8.2" @@ -336,6 +486,14 @@ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" [package.dependencies] six = ">=1.5" +[[package]] +name = "pytz" +version = "2022.1" +description = "World timezone definitions, modern and historical" +category = "dev" +optional = false +python-versions = "*" + [[package]] name = "requests" version = "2.27.1" @@ -429,7 +587,7 @@ pyasn1 = ">=0.1.3" [[package]] name = "sentry-sdk" -version = "1.5.8" +version = "1.5.10" description = "Python client for Sentry (https://sentry.io)" category = "main" optional = false @@ -465,6 +623,131 @@ category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +[[package]] +name = "snowballstemmer" +version = "2.2.0" +description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "sphinx" +version = "3.5.4" +description = "Python documentation generator" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.dependencies] +alabaster = ">=0.7,<0.8" +babel = ">=1.3" +colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""} +docutils = ">=0.12,<0.17" +imagesize = "*" +Jinja2 = ">=2.3" +packaging = "*" +Pygments = ">=2.0" +requests = ">=2.5.0" +snowballstemmer = ">=1.1" +sphinxcontrib-applehelp = "*" +sphinxcontrib-devhelp = "*" +sphinxcontrib-htmlhelp = "*" +sphinxcontrib-jsmath = "*" +sphinxcontrib-qthelp = "*" +sphinxcontrib-serializinghtml = "*" + +[package.extras] +docs = ["sphinxcontrib-websupport"] +lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.800)", "docutils-stubs"] +test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"] + +[[package]] +name = "sphinx-rtd-theme" +version = "0.5.2" +description = "Read the Docs theme for Sphinx" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +docutils = "<0.17" +sphinx = "*" + +[package.extras] +dev = ["transifex-client", "sphinxcontrib-httpdomain", "bump2version"] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "1.0.2" +description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "1.0.2" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.0.0" +description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest", "html5lib"] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +description = "A sphinx extension which renders display math in HTML via JavaScript" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +test = ["pytest", "flake8", "mypy"] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "1.0.3" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "1.1.5" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + [[package]] name = "sqlalchemy" version = "1.4.32" @@ -620,7 +903,7 @@ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest- [metadata] lock-version = "1.1" python-versions = "^3.8" -content-hash = "0f8e73bb9ad43960078fda727727c09ef27260434de62e935a0745f891b405df" +content-hash = "c90c103650d05c85866baf8a0c5a4ee3366e64fe8e822315f85065119b79c87e" [metadata.files] aiohttp = [ @@ -662,6 +945,10 @@ aiohttp = [ {file = "aiohttp-3.7.4.post0-cp39-cp39-win_amd64.whl", hash = "sha256:02f46fc0e3c5ac58b80d4d56eb0a7c7d97fcef69ace9326289fb9f1955e65cfe"}, {file = "aiohttp-3.7.4.post0.tar.gz", hash = "sha256:493d3299ebe5f5a7c66b9819eacdcfbbaaf1a8e84911ddffcdc48888497afecf"}, ] +alabaster = [ + {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, + {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, +] alembic = [ {file = "alembic-1.7.7-py3-none-any.whl", hash = "sha256:29be0856ec7591c39f4e1cb10f198045d890e6e2274cf8da80cb5e721a09642b"}, {file = "alembic-1.7.7.tar.gz", hash = "sha256:4961248173ead7ce8a21efb3de378f13b8398e6630fab0eb258dc74a8af24c58"}, @@ -678,10 +965,18 @@ async-timeout = [ {file = "async-timeout-3.0.1.tar.gz", hash = "sha256:0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f"}, {file = "async_timeout-3.0.1-py3-none-any.whl", hash = "sha256:4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3"}, ] +atomicwrites = [ + {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, + {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, +] attrs = [ {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, ] +babel = [ + {file = "Babel-2.9.1-py2.py3-none-any.whl", hash = "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9"}, + {file = "Babel-2.9.1.tar.gz", hash = "sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0"}, +] cachetools = [ {file = "cachetools-5.0.0-py3-none-any.whl", hash = "sha256:8fecd4203a38af17928be7b90689d8083603073622229ca7077b72d8e5a976e4"}, {file = "cachetools-5.0.0.tar.gz", hash = "sha256:486471dfa8799eb7ec503a8059e263db000cdda20075ce5e48903087f79d5fd6"}, @@ -718,6 +1013,10 @@ colour = [ {file = "discord.py-1.7.3-py3-none-any.whl", hash = "sha256:c6f64db136de0e18e090f6752ea68bdd4ab0a61b82dfe7acecefa22d6477bb0c"}, {file = "discord.py-1.7.3.tar.gz", hash = "sha256:462cd0fe307aef8b29cbfa8dd613e548ae4b2cb581d46da9ac0d46fb6ea19408"}, ] +docutils = [ + {file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"}, + {file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"}, +] greenlet = [ {file = "greenlet-1.1.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:58df5c2a0e293bf665a51f8a100d3e9956febfbf1d9aaf8c0677cf70218910c6"}, {file = "greenlet-1.1.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:aec52725173bd3a7b56fe91bc56eccb26fbdff1386ef123abb63c84c5b43b63a"}, @@ -783,6 +1082,10 @@ idna = [ {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, ] +imagesize = [ + {file = "imagesize-1.3.0-py2.py3-none-any.whl", hash = "sha256:1db2f82529e53c3e929e8926a1fa9235aa82d0bd0c580359c67ec31b2fddaa8c"}, + {file = "imagesize-1.3.0.tar.gz", hash = "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"}, +] importlib-metadata = [ {file = "importlib_metadata-4.11.3-py3-none-any.whl", hash = "sha256:1208431ca90a8cca1a6b8af391bb53c1a2db74e5d1cef6ddced95d4b2062edc6"}, {file = "importlib_metadata-4.11.3.tar.gz", hash = "sha256:ea4c597ebf37142f827b8f39299579e31685c31d3a438b59f469406afd0f2539"}, @@ -791,6 +1094,14 @@ importlib-resources = [ {file = "importlib_resources-5.4.0-py3-none-any.whl", hash = "sha256:33a95faed5fc19b4bc16b29a6eeae248a3fe69dd55d4d229d2b480e23eeaad45"}, {file = "importlib_resources-5.4.0.tar.gz", hash = "sha256:d756e2f85dd4de2ba89be0b21dba2a3bbec2e871a42a3a16719258a11f87506b"}, ] +iniconfig = [ + {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, + {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, +] +jinja2 = [ + {file = "Jinja2-3.1.1-py3-none-any.whl", hash = "sha256:539835f51a74a69f41b848a9645dbdc35b4f20a3b601e2d9a7e22947b15ff119"}, + {file = "Jinja2-3.1.1.tar.gz", hash = "sha256:640bed4bb501cbd17194b3cace1dc2126f5b619cf068a726b98192a0fde74ae9"}, +] mako = [ {file = "Mako-1.2.0-py3-none-any.whl", hash = "sha256:23aab11fdbbb0f1051b93793a58323ff937e98e34aece1c4219675122e57e4ba"}, {file = "Mako-1.2.0.tar.gz", hash = "sha256:9a7c7e922b87db3686210cf49d5d767033a41d4010b284e747682c92bddd8b39"}, @@ -898,6 +1209,14 @@ multidict = [ {file = "multidict-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:4bae31803d708f6f15fd98be6a6ac0b6958fcf68fda3c77a048a4f9073704aae"}, {file = "multidict-6.0.2.tar.gz", hash = "sha256:5ff3bd75f38e4c43f1f470f2df7a4d430b821c4ce22be384e1459cb57d6bb013"}, ] +packaging = [ + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, +] +pluggy = [ + {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, + {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, +] psutil = [ {file = "psutil-5.9.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:55ce319452e3d139e25d6c3f85a1acf12d1607ddedea5e35fb47a552c051161b"}, {file = "psutil-5.9.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:7336292a13a80eb93c21f36bde4328aa748a04b68c13d01dfddd67fc13fd0618"}, @@ -945,6 +1264,10 @@ psycopg2 = [ {file = "psycopg2-2.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:06f32425949bd5fe8f625c49f17ebb9784e1e4fe928b7cce72edc36fb68e4c0c"}, {file = "psycopg2-2.9.3.tar.gz", hash = "sha256:8e841d1bf3434da985cc5ef13e6f75c8981ced601fd70cc6bf33351b91562981"}, ] +py = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] pyaes = [ {file = "pyaes-1.6.1.tar.gz", hash = "sha256:02c1b1405c38d3c370b085fb952dd8bea3fadcee6411ad99f312cc129c536d8f"}, ] @@ -1029,14 +1352,34 @@ pydantic = [ {file = "pydantic-1.9.0-py3-none-any.whl", hash = "sha256:085ca1de245782e9b46cefcf99deecc67d418737a1fd3f6a4f511344b613a5b3"}, {file = "pydantic-1.9.0.tar.gz", hash = "sha256:742645059757a56ecd886faf4ed2441b9c0cd406079c2b4bee51bcc3fbcd510a"}, ] +pygments = [ + {file = "Pygments-2.11.2-py3-none-any.whl", hash = "sha256:44238f1b60a76d78fc8ca0528ee429702aae011c265fe6a8dd8b63049ae41c65"}, + {file = "Pygments-2.11.2.tar.gz", hash = "sha256:4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a"}, +] +pyparsing = [ + {file = "pyparsing-3.0.8-py3-none-any.whl", hash = "sha256:ef7b523f6356f763771559412c0d7134753f037822dad1b16945b7b846f7ad06"}, + {file = "pyparsing-3.0.8.tar.gz", hash = "sha256:7bf433498c016c4314268d95df76c81b842a4cb2b276fa3312cfb1e1d85f6954"}, +] pyreadline3 = [ {file = "pyreadline3-3.4.1-py3-none-any.whl", hash = "sha256:b0efb6516fd4fb07b45949053826a62fa4cb353db5be2bbb4a7aa1fdd1e345fb"}, {file = "pyreadline3-3.4.1.tar.gz", hash = "sha256:6f3d1f7b8a31ba32b73917cefc1f28cc660562f39aea8646d30bd6eff21f7bae"}, ] +pytest = [ + {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, + {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, +] +pytest-asyncio = [ + {file = "pytest-asyncio-0.15.1.tar.gz", hash = "sha256:2564ceb9612bbd560d19ca4b41347b54e7835c2f792c504f698e05395ed63f6f"}, + {file = "pytest_asyncio-0.15.1-py3-none-any.whl", hash = "sha256:3042bcdf1c5d978f6b74d96a151c4cfb9dcece65006198389ccd7e6c60eb1eea"}, +] python-dateutil = [ {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, ] +pytz = [ + {file = "pytz-2022.1-py2.py3-none-any.whl", hash = "sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c"}, + {file = "pytz-2022.1.tar.gz", hash = "sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7"}, +] requests = [ {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"}, {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"}, @@ -1065,13 +1408,49 @@ rsa = [ {file = "rsa-4.8.tar.gz", hash = "sha256:5c6bd9dc7a543b7fe4304a631f8a8a3b674e2bbfc49c2ae96200cdbe55df6b17"}, ] sentry-sdk = [ - {file = "sentry-sdk-1.5.8.tar.gz", hash = "sha256:38fd16a92b5ef94203db3ece10e03bdaa291481dd7e00e77a148aa0302267d47"}, - {file = "sentry_sdk-1.5.8-py2.py3-none-any.whl", hash = "sha256:32af1a57954576709242beb8c373b3dbde346ac6bd616921def29d68846fb8c3"}, + {file = "sentry-sdk-1.5.10.tar.gz", hash = "sha256:0a9eb20a84f4c17c08c57488d59fdad18669db71ebecb28fb0721423a33535f9"}, + {file = "sentry_sdk-1.5.10-py2.py3-none-any.whl", hash = "sha256:972c8fe9318a415b5cf35f687f568321472ef94b36806407c370ce9c88a67f2e"}, ] six = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] +snowballstemmer = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] +sphinx = [ + {file = "Sphinx-3.5.4-py3-none-any.whl", hash = "sha256:2320d4e994a191f4b4be27da514e46b3d6b420f2ff895d064f52415d342461e8"}, + {file = "Sphinx-3.5.4.tar.gz", hash = "sha256:19010b7b9fa0dc7756a6e105b2aacd3a80f798af3c25c273be64d7beeb482cb1"}, +] +sphinx-rtd-theme = [ + {file = "sphinx_rtd_theme-0.5.2-py2.py3-none-any.whl", hash = "sha256:4a05bdbe8b1446d77a01e20a23ebc6777c74f43237035e76be89699308987d6f"}, + {file = "sphinx_rtd_theme-0.5.2.tar.gz", hash = "sha256:32bd3b5d13dc8186d7a42fc816a23d32e83a4827d7d9882948e7b837c232da5a"}, +] +sphinxcontrib-applehelp = [ + {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, + {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, +] +sphinxcontrib-devhelp = [ + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, +] +sphinxcontrib-htmlhelp = [ + {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, + {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, +] +sphinxcontrib-jsmath = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] +sphinxcontrib-qthelp = [ + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, +] +sphinxcontrib-serializinghtml = [ + {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, + {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, +] sqlalchemy = [ {file = "SQLAlchemy-1.4.32-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:4b2bcab3a914715d332ca783e9bda13bc570d8b9ef087563210ba63082c18c16"}, {file = "SQLAlchemy-1.4.32-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:159c2f69dd6efd28e894f261ffca1100690f28210f34cfcd70b895e0ea7a64f3"}, diff --git a/royalpack/commands/diobot.py b/royalpack/commands/diobot.py index c8619400..762ad2cd 100644 --- a/royalpack/commands/diobot.py +++ b/royalpack/commands/diobot.py @@ -4,119 +4,147 @@ import royalnet.engineer as engi import royalpack.bolts as rb -WHO = [ - # A chi sarà diretto l'insulto - ["Dio", "o"], - ["Zio", "o"], - ["Gesù", "o"], - ["Cristo", "o"], - ["Maria", "a"], - ["Madonna", "a"], - ["Eva", "a"], - ["Adamo", "o"], - ["Rettore", "o"], - ["Steffo", "o"], - ["Bot", "o"], - ["Telegram", "o"], - ["Discord", "o"], -] -WHAT = [ - # l'aggettivo per descrivere il soggetto - # Non deve essere per forza un insulto, anche qualche neutro è bene accetto e dà quel po' di random in più +from collections import namedtuple - "aguzzin+", - "alcolizzat+", - "antic+", - "aggressiv+", - "bestia", - "boia", - "bischer+", - "briccone", - "brutt+", - "buon+", - "buzzurr+", - "canaglia", - "cane", - "canguro nella landa dei soffitti bassi", - "capra", - "ciambelliforme", - "citrull+", - "codard+", - "complottista", - "creazionista", - "dannunzian+", - "disonest+", - "disordinat+", - "egocentric+", - "esattore delle tasse", - "fannullon+", - "farabutt+", - "gaglioff+", - "galleggiante", - "gaymer", - "grandissim+", - "grass+", - "gross+", - "ignobile", - "ignorante", - "imbroglion+", - "impertinente", - "incapace", - "incivile", - "infame (per te solo le lame)", - "infett+", - "insensat+", - "internet explorer", - "intollerante al lattosio", - "lavativ+", - "lazzaron+", - "lestofante", - "lunatic+", - "maiale", - "mangiapane a tradimento", - "manigold+", - "marran+", - "marzian+", - "mentecatt+", - "mascalzone", - "meschin+", - "nanerottol+", - "nichilista", - "novax", - "opulent+", - "palindrom+", - "pantagruelic+", - "pigr+", - "pivell+", - "poliedric+", - "porc+", - "pusillanime", - "puzzolente", - "puzzon+", - "rygat+", - "rygaton+", - "rozz+", - "saccente", - "sant+", - "satur+", - "scalz+ nella valle dei chiodi", - "sciachimista", - "screanzat+", - "sferic+", - "sfigmomanometro", - "sgarbat+", - "stupid+", - "stellare", - "tamarr+", - "terrapiattista", - "tirchi+", - "troglodita", - "tuamammic+", - "vecchi+", - "vile", - "villan+", - "viscid+", - "zotic+", + +# A chi sarà diretto l'insulto +Who = namedtuple('Who', ['name', 'gender']) + +# Gender: +# SM Singolare Maschile +# SF Singolare Femminile +# PM Plurale Maschile +# PF Plurale Femminile + + +# l'aggettivo per descrivere il soggetto +# Non deve essere per forza un insulto, anche qualche neutro è bene accetto e dà quel po' di random in più +What = namedtuple('What', ['radix', 'sm', 'sf', 'pm', 'pf']) + +who_array = [ + Who("Dio", "sm"), + Who("Zio", "sm"), + Who("Gesù", "sm"), + Who("Cristo", "sm"), + Who("Maria", "sf"), + Who("Madonna", "sf"), + Who("Eva", "sf"), + Who("Adamo", "sm"), + Who("Rettore", "sm"), + Who("Steffo", "sm"), + Who("Bot", "sm"), + Who("Telegram", "sm"), + Who("Discord", "sm"), + Who("Rygatoni", "pm"), + Who("Moderatori", "pm"), +] + +what_array = [ + What("aguzzin+", "o", "a", "i", "e"), + What("alcolizzat+", "o", "a", "i", "e"), + What("alt+", "o", "a", "i", "e"), + What("antic+", "o", "a", "hi", "he"), + What("aggressiv+", "o", "a", "i", "e"), + What("bass+", "o", "a", "i", "e"), + What("besti+", "a", "a", "e", "e"), + What("boia", "", "", "", ""), + What("bischer+", "o", "a", "i", "e"), + What("briccon+", "e", "a", "i", "e"), + What("brontolon+", "e", "a", "i", "e"), + What("brutt+", "o", "a", "i", "e"), + What("buggat+", "o", "a", "i", "e"), + What("buon+", "o", "a", "i", "e"), + What("buzzurr+", "o", "a", "i", "e"), + What("canagli+", "a", "a", "e", "e"), + What("ca+", "ne", "gna", "ni", "gne"), + What("cangur+ nella landa dei soffitti bassi", "o", "a", "i", "e"), + What("capr+", "a", "a", "e", "e"), + What("carnivor+", "o", "a", "i", "e"), + What("ciambelliform+", "e", "e", "i", "i"), + What("citrull+", "o", "a", "i", "e"), + What("codard+", "o", "a", "i", "e"), + What("complottist+", "a", "a", "i", "e"), + What("creazionist+", "a", "a", "i", "e"), + What("dalle ossa grosse", "", "", "", ""), + What("dannunzian+", "o", "a", "i", "e"), + What("disonest+", "o", "a", "i", "e"), + What("disordinat+", "o", "a", "i", "e"), + What("egocentric+", "o", "a", "i", "e"), + What("esatt+ delle tasse", "ore", "rice", "ori", "rici"), + What("espans+", "o", "a", "i", "e"), + What("fannullon+", "e", "a", "i", "e"), + What("farabutt+", "o", "a", "i", "e"), + What("gaglioff+", "o", "a", "i", "e"), + What("galleggiant+", "e", "e", "i", "i"), + What("gaymer", "", "", "", ""), + What("grandissim+", "o", "a", "i", "e"), + What("grass+", "o", "a", "i", "e"), + What("gross+", "o", "a", "i", "e"), + What("ignobil+", "e", "e", "i", "i"), + What("ignorant+", "e", "e", "i", "i"), + What("imbroglion+", "e", "a", "i", "e"), + What("impertinent+", "e", "e", "i", "i"), + What("incapac+", "e", "e", "i", "i"), + What("incivil+", "e", "e", "i", "i"), + What("infam+ (per te solo le lame)","e", "e", "i", "i"), + What("infett+", "o", "a", "i", "e"), + What("insensat+", "o", "a", "i", "e"), + What("internet explorer", "", "", "", ""), + What("intollerant+ al lattosio", "e", "e", "i", "i"), + What("lavativ+", "o", "a", "i", "e"), + What("lazzaron+", "e", "a", "i", "e"), + What("lent+", "o", "a", "i", "e"), + What("lestofant+", "e", "e", "i", "i"), + What("lunatic+", "o", "a", "i", "he"), + What("maial+", "e", "a", "i", "e"), + What("mangiapane a tradimento", "", "", "", ""), + What("manigold+", "o", "a", "i", "e"), + What("marran+", "o", "a", "i", "e"), + What("marzian+", "o", "a", "i", "e"), + What("mascalzon+", "e", "a", "i", "e"), + What("mentecatt+", "o", "a", "i", "e"), + What("meschin+", "o", "a", "i", "e"), + What("nanerottol+", "o", "a", "i", "e"), + What("nichilist+", "a", "a", "i", "e"), + What("noios+", "o", "a", "i", "e"), + What("novax", "", "", "", ""), + What("opulent+", "o", "a", "i", "e"), + What("palindrom+", "o", "a", "i", "e"), + What("pantagruelic+", "o", "a", "i", "he"), + What("pigr+", "o", "a", "i", "e"), + What("pivell+", "o", "a", "i", "e"), + What("poliedric+", "o", "a", "i", "he"), + What("porc+", "o", "a", "i", "he"), + What("pusillanim+", "e", "e", "i", "i"), + What("puzzolent+", "e", "e", "i", "i"), + What("puzzon+", "e", "a", "i", "e"), + What("quadrat+", "o", "a", "i", "e"), + What("rygat+", "o", "a", "i", "e"), + What("rygaton+", "e", "a", "i", "e"), + What("rozz+", "o", "a", "i", "e"), + What("saccent+", "e", "e", "i", "i"), + What("sant+", "o", "a", "i", "e"), + What("satur+", "o", "a", "i", "e"), + What("scalz+ nella valle dei chiodi","o", "a", "i", "e"), + What("sciachimist+", "a", "a", "i", "e"), + What("screanzat+", "o", "a", "i", "e"), + What("sferic+", "o", "a", "i", "e"), + What("sgarbat+", "o", "a", "i", "e"), + What("stupid+", "o", "a", "i", "e"), + What("stellar+", "e", "e", "i", "i"), + What("tamarr+", "o", "a", "i", "e"), + What("tard+", "o", "a", "i", "e"), + What("terrapiattist+", "a", "a", "i", "e"), + What("tirchi+", "o", "a", "i", "e"), + What("troglodit+", "a", "a", "i", "e"), + What("tuamammic+", "o", "a", "i", "he"), + What("vecch+", "io", "ia", "i", "ie"), + What("vegan+", "o", "a", "i", "e"), + What("vegetarian+", "o", "a", "i", "e"), + What("vil+", "e", "e", "i", "i"), + What("villan+", "o", "a", "i", "e"), + What("viscid+", "o", "a", "i", "e"), + What("zotic+", "o", "a", "i", "he"), ] @@ -126,11 +154,13 @@ async def diobot(*, _msg: engi.Message, **__): """ Il bot è molto arrabbiato e vuole creare insulti coloriti! """ - who = random.sample(WHO, 1)[0] - message = "🤬 " + who[0] + who = random.sample(who_array, 1)[0] + message = "🤬 " + who.name for i in range(random.randint(1, 5)): + what = random.sample(what_array, 1)[0] + what = what.radix.replace("+", getattr(what, who.gender)) message += " " - message += random.sample(WHAT, 1)[0].replace("+", who[1]) + message += what message += "!" await _msg.reply(text=message) @@ -140,3 +170,4 @@ async def diobot(*, _msg: engi.Message, **__): __all__ = ( "diobot", ) +