mirror of
https://github.com/RYGhub/royalnet.git
synced 2024-11-23 19:44:20 +00:00
⬆ Bump version to 6.2.1
This commit is contained in:
parent
fe59775547
commit
885f439356
5 changed files with 65 additions and 252 deletions
101
poetry.lock
generated
101
poetry.lock
generated
|
@ -218,7 +218,7 @@ python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
|
|||
|
||||
[[package]]
|
||||
name = "pytest"
|
||||
version = "6.2.2"
|
||||
version = "6.2.3"
|
||||
description = "pytest: simple powerful testing with Python"
|
||||
category = "dev"
|
||||
optional = false
|
||||
|
@ -279,7 +279,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
|
|||
|
||||
[[package]]
|
||||
name = "royalnet"
|
||||
version = "6.1.2"
|
||||
version = "6.2.1"
|
||||
description = "A multipurpose bot framework"
|
||||
category = "main"
|
||||
optional = false
|
||||
|
@ -288,7 +288,7 @@ python-versions = ">=3.8,<4.0"
|
|||
[package.dependencies]
|
||||
async-property = ">=0.2.1,<0.3.0"
|
||||
pydantic = ">=1.8.1,<2.0.0"
|
||||
sqlalchemy = ">=1.4.4,<2.0.0"
|
||||
sqlalchemy = ">=1.4.5,<2.0.0"
|
||||
toml = ">=0.10.1,<0.11.0"
|
||||
|
||||
[[package]]
|
||||
|
@ -301,7 +301,7 @@ python-versions = "*"
|
|||
|
||||
[[package]]
|
||||
name = "sphinx"
|
||||
version = "3.5.3"
|
||||
version = "3.5.4"
|
||||
description = "Python documentation generator"
|
||||
category = "dev"
|
||||
optional = false
|
||||
|
@ -311,7 +311,7 @@ python-versions = ">=3.5"
|
|||
alabaster = ">=0.7,<0.8"
|
||||
babel = ">=1.3"
|
||||
colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""}
|
||||
docutils = ">=0.12"
|
||||
docutils = ">=0.12,<0.17"
|
||||
imagesize = "*"
|
||||
Jinja2 = ">=2.3"
|
||||
packaging = "*"
|
||||
|
@ -332,13 +332,14 @@ test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"]
|
|||
|
||||
[[package]]
|
||||
name = "sphinx-rtd-theme"
|
||||
version = "0.5.1"
|
||||
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]
|
||||
|
@ -417,7 +418,7 @@ test = ["pytest"]
|
|||
|
||||
[[package]]
|
||||
name = "sqlalchemy"
|
||||
version = "1.4.4"
|
||||
version = "1.4.7"
|
||||
description = "Database Abstraction Library"
|
||||
category = "main"
|
||||
optional = false
|
||||
|
@ -478,7 +479,7 @@ brotli = ["brotlipy (>=0.6.0)"]
|
|||
[metadata]
|
||||
lock-version = "1.1"
|
||||
python-versions = "^3.8"
|
||||
content-hash = "489f33ca347cef611892ef9d1a26d00f3e96006d8f11c5bf45927631c97a8a6a"
|
||||
content-hash = "dd03dba3d8cafa05d423d919e0dbda54ac96dddab43573811d49929b468f5d1a"
|
||||
|
||||
[metadata.files]
|
||||
alabaster = [
|
||||
|
@ -711,8 +712,8 @@ pyparsing = [
|
|||
{file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"},
|
||||
]
|
||||
pytest = [
|
||||
{file = "pytest-6.2.2-py3-none-any.whl", hash = "sha256:b574b57423e818210672e07ca1fa90aaf194a4f63f3ab909a2c67ebb22913839"},
|
||||
{file = "pytest-6.2.2.tar.gz", hash = "sha256:9d1edf9e7d0b84d72ea3dbcdfd22b35fb543a5e8f2a60092dd578936bf63d7f9"},
|
||||
{file = "pytest-6.2.3-py3-none-any.whl", hash = "sha256:6ad9c7bdf517a808242b998ac20063c41532a570d088d77eec1ee12b0b5574bc"},
|
||||
{file = "pytest-6.2.3.tar.gz", hash = "sha256:671238a46e4df0f3498d1c3270e5deb9b32d25134c99b7d75370a68cfbe9b634"},
|
||||
]
|
||||
pytest-asyncio = [
|
||||
{file = "pytest-asyncio-0.14.0.tar.gz", hash = "sha256:9882c0c6b24429449f5f969a5158b528f39bde47dc32e85b9f0403965017e700"},
|
||||
|
@ -727,20 +728,20 @@ requests = [
|
|||
{file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"},
|
||||
]
|
||||
royalnet = [
|
||||
{file = "royalnet-6.1.2-py3-none-any.whl", hash = "sha256:d820e123714488066806834a7e6381279db719c275546f653f3335ecb42e3f69"},
|
||||
{file = "royalnet-6.1.2.tar.gz", hash = "sha256:e1f45a8a66c63d9a61d42b14a15b6681f99580314199c52206d3e03f80853855"},
|
||||
{file = "royalnet-6.2.1-py3-none-any.whl", hash = "sha256:e5b333fda9e5b0cf34537903e76ce9ffc3ca231df6c6ba28a9b1f9ee94efc843"},
|
||||
{file = "royalnet-6.2.1.tar.gz", hash = "sha256:a41bb353840f4b0c4f8fb40d0852d1da9f284af0f525c90f9bfb77d26ccd2c53"},
|
||||
]
|
||||
snowballstemmer = [
|
||||
{file = "snowballstemmer-2.1.0-py2.py3-none-any.whl", hash = "sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2"},
|
||||
{file = "snowballstemmer-2.1.0.tar.gz", hash = "sha256:e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914"},
|
||||
]
|
||||
sphinx = [
|
||||
{file = "Sphinx-3.5.3-py3-none-any.whl", hash = "sha256:3f01732296465648da43dec8fb40dc451ba79eb3e2cc5c6d79005fd98197107d"},
|
||||
{file = "Sphinx-3.5.3.tar.gz", hash = "sha256:ce9c228456131bab09a3d7d10ae58474de562a6f79abb3dc811ae401cf8c1abc"},
|
||||
{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.1-py2.py3-none-any.whl", hash = "sha256:fa6bebd5ab9a73da8e102509a86f3fcc36dec04a0b52ea80e5a033b2aba00113"},
|
||||
{file = "sphinx_rtd_theme-0.5.1.tar.gz", hash = "sha256:eda689eda0c7301a80cf122dad28b1861e5605cbf455558f3775e1e8200e83a5"},
|
||||
{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"},
|
||||
|
@ -767,40 +768,40 @@ sphinxcontrib-serializinghtml = [
|
|||
{file = "sphinxcontrib_serializinghtml-1.1.4-py2.py3-none-any.whl", hash = "sha256:f242a81d423f59617a8e5cf16f5d4d74e28ee9a66f9e5b637a18082991db5a9a"},
|
||||
]
|
||||
sqlalchemy = [
|
||||
{file = "SQLAlchemy-1.4.4-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:8dc25ce0be9614ea70077b3857754e685c1063cd2576845a3a2072e0f9d34854"},
|
||||
{file = "SQLAlchemy-1.4.4-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:79b9bb47e51208052e3949b3c4fae6ca32b0ed40ab498b25c2515be622509f7b"},
|
||||
{file = "SQLAlchemy-1.4.4-cp27-cp27m-win32.whl", hash = "sha256:6d9e9b686b192cd4d1df7330a790a12aecd01561ff104b9fbaed9bf11d49ea06"},
|
||||
{file = "SQLAlchemy-1.4.4-cp27-cp27m-win_amd64.whl", hash = "sha256:33da0ad3a913de9abac5a3fbac8e11993ce8c83431d123c216463239767db259"},
|
||||
{file = "SQLAlchemy-1.4.4-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:cbd3e77c9e162cf66241476128ff530bd4cc8f0f6bd5e433d320ace048491b71"},
|
||||
{file = "SQLAlchemy-1.4.4-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:a478a0debaa4d66efcffd242bbefdc7e2759d596c8f4ecf3e29a2f0922f8d2d6"},
|
||||
{file = "SQLAlchemy-1.4.4-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:88c26aca818c5f10b6dc0588aabbbd14723d39e0707e74c229e0d650eb05eddd"},
|
||||
{file = "SQLAlchemy-1.4.4-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:578bcf10223a7cda84e54a7d4e986af4a36415f644fb33e950193dac25556bbd"},
|
||||
{file = "SQLAlchemy-1.4.4-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:015c78ece6f62963dc2fb3b409cafb1e6d97040478fe0ac811ba22833489c19f"},
|
||||
{file = "SQLAlchemy-1.4.4-cp36-cp36m-manylinux2014_x86_64.whl", hash = "sha256:a50b98d83aca42475e428fb812c8417278d21d7264d24ae0a99963b3e0f0bde8"},
|
||||
{file = "SQLAlchemy-1.4.4-cp36-cp36m-win32.whl", hash = "sha256:c5408cb8543fc9a9bdd61ee07a878a655e61e4067e7065cfe3fcab1cb1a611df"},
|
||||
{file = "SQLAlchemy-1.4.4-cp36-cp36m-win_amd64.whl", hash = "sha256:7f199813d08192a03c162f819fc265df233f4076086d7e23f07d0a90a4c9d337"},
|
||||
{file = "SQLAlchemy-1.4.4-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:fc16311d5c7737842cd083bf9e02b6d7af406901abd296cae1c055b3b2281eaf"},
|
||||
{file = "SQLAlchemy-1.4.4-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:38af517c370b107372d22577e2c2495b53e2de3532d996f416dd13fda5e2a4f3"},
|
||||
{file = "SQLAlchemy-1.4.4-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:cee91fb7f22466e18370d6e181c866f3fb9379dab70048a629ceccc286594f40"},
|
||||
{file = "SQLAlchemy-1.4.4-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:742dce17585adebb197ac283c99a404c612328aa70ed8325b7b3cd4463f0b220"},
|
||||
{file = "SQLAlchemy-1.4.4-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:e65de7abf9c5bb83805d0dff7c443cac648555b445d10067fd1292a6537503ee"},
|
||||
{file = "SQLAlchemy-1.4.4-cp37-cp37m-win32.whl", hash = "sha256:6dfeb1f70cf33b8c788fa90839408f7cdae69d41b5d40a209be8b125385e71df"},
|
||||
{file = "SQLAlchemy-1.4.4-cp37-cp37m-win_amd64.whl", hash = "sha256:9619b7f9204adbbb78d10db7ef590d826a046a862aed845001ab504068646c87"},
|
||||
{file = "SQLAlchemy-1.4.4-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:b7195c168a35c80da3a2ebc242804c417ae2b9cea7eaca27c07d7f0a7fbb60df"},
|
||||
{file = "SQLAlchemy-1.4.4-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:9d4cd3568e4580c9b8dc4c14bf9a84d245d062c879f855d2cd8ea04748a02423"},
|
||||
{file = "SQLAlchemy-1.4.4-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:df0168d62569de746a0c7b663d34f0f5df578b604356385b9fbb8bdcab460276"},
|
||||
{file = "SQLAlchemy-1.4.4-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:3b79f477409ec1141f7d603361be3266a96c99e3d67357c25ea7cae2104f7a90"},
|
||||
{file = "SQLAlchemy-1.4.4-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:e6a18a08d0a32157cb5168506cd356b22caf2a380532405d4cf21963dd2efe22"},
|
||||
{file = "SQLAlchemy-1.4.4-cp38-cp38-win32.whl", hash = "sha256:de4c935ee4afeabd5204d74faee34d511444b55394874e7072f525378f870038"},
|
||||
{file = "SQLAlchemy-1.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:426660b62db4111ca6b10e05128c417fa97b4c3abce3a8952bbe691c4bc397fb"},
|
||||
{file = "SQLAlchemy-1.4.4-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:885e2dbf92c6a3b1e6b200c19eb17df12a6004cbd11149f336dc4b3a45b499a4"},
|
||||
{file = "SQLAlchemy-1.4.4-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:405f171ccdae38f64b1a43d3172a2a801b5dce4a96a60c39a5f7097e3c16d072"},
|
||||
{file = "SQLAlchemy-1.4.4-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:b85f68af8c6c1d0833b11c5534a38411cd0378059a8585731c2a9f18eb9e7d82"},
|
||||
{file = "SQLAlchemy-1.4.4-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:92c612edab94749ba8561c6c768854ef7a1dd0ef031c18a84b055a27fc505502"},
|
||||
{file = "SQLAlchemy-1.4.4-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:4aab314df0d9fa9153b9fe735b2925da45425bd510eb0371b005aeca9ff51149"},
|
||||
{file = "SQLAlchemy-1.4.4-cp39-cp39-win32.whl", hash = "sha256:e7ff3ac2e0acdf92639128ed0b38ceed370115e3bb412840fc8c9c28d0ac50b4"},
|
||||
{file = "SQLAlchemy-1.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:d0cc8dcda237d9d801bee8737a8ce5394586364740b9a8482b466fadb9ab1ff3"},
|
||||
{file = "SQLAlchemy-1.4.4.tar.gz", hash = "sha256:7ba9c00c129dbb4fd026a1f2c943188db59c802612e49bc9bded426d8eb14bc0"},
|
||||
{file = "SQLAlchemy-1.4.7-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:e9c2aaaa9738ba3334262734bd25d9b2d6ea446400f815bbdea17571b9e6d8fb"},
|
||||
{file = "SQLAlchemy-1.4.7-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:94fece3fdc777fbf37378513414bcf19ae89e1b598edf33d957a2898991d714f"},
|
||||
{file = "SQLAlchemy-1.4.7-cp27-cp27m-win32.whl", hash = "sha256:58075eab5e32daf51e637ac88c63057c3a5e84602cfeb30db4258838ef6f7a2b"},
|
||||
{file = "SQLAlchemy-1.4.7-cp27-cp27m-win_amd64.whl", hash = "sha256:8df743c79181ecc6aadaf10569d452ef3eda06764fe0adc4ea981a48c01e1ad5"},
|
||||
{file = "SQLAlchemy-1.4.7-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:bb69a2d93c1a98a8d4ca24a8012ade4b771087dddbe077ad4ef4911d7f17185d"},
|
||||
{file = "SQLAlchemy-1.4.7-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:d10117c9ce096bd6fb9a13c6fad274982f7889028e22a05719a6d219e2cf977e"},
|
||||
{file = "SQLAlchemy-1.4.7-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:abf18c62c4740d7199e443537066904789052d6d165cb279eb91bea35ea42ec4"},
|
||||
{file = "SQLAlchemy-1.4.7-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:8672ff62c9d48f62aa17bb806a591cdfed801d139eecbcf9224bffb80f6fdc30"},
|
||||
{file = "SQLAlchemy-1.4.7-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:8ecabd4cead9a582e2ffa7a3918bc31155d5c24b1fd16ed617171f913c438da1"},
|
||||
{file = "SQLAlchemy-1.4.7-cp36-cp36m-manylinux2014_x86_64.whl", hash = "sha256:e98934855337d76aa7726f444b0fa597a462271a95d01bc050644d88e1ee5aae"},
|
||||
{file = "SQLAlchemy-1.4.7-cp36-cp36m-win32.whl", hash = "sha256:6adb07e199781457b75f4773e63577a2898f95141f030b956a2a186055f24e76"},
|
||||
{file = "SQLAlchemy-1.4.7-cp36-cp36m-win_amd64.whl", hash = "sha256:d81a68df4f3eee490b66ba990648d3c77cbf2475291ef92aa4e05ef541ecfd66"},
|
||||
{file = "SQLAlchemy-1.4.7-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:ef6d98d5b51eb826516499429e059872b61e272cb44630ca8de87650242d07d8"},
|
||||
{file = "SQLAlchemy-1.4.7-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d5ef5619d421f8a86af874f867d17d823cd970ad0f2ae7c30723beb16922b4d6"},
|
||||
{file = "SQLAlchemy-1.4.7-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:c74310f13e5a113ef658345e2cedf9aa1fcb8b9a588e07d54c083c7fc71edf42"},
|
||||
{file = "SQLAlchemy-1.4.7-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:069fcda89c7d168382f674b5b566643f1420e4e7704c00cced2579675deb4eed"},
|
||||
{file = "SQLAlchemy-1.4.7-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:673cb375deb17e1561340710f428b33c27a11980d991a2ac88d7bf1c623faa0b"},
|
||||
{file = "SQLAlchemy-1.4.7-cp37-cp37m-win32.whl", hash = "sha256:aea57c7a5a4135abc10f81ce433b23325cbb9648a5dcb0ac1af1cdd413f7d0cb"},
|
||||
{file = "SQLAlchemy-1.4.7-cp37-cp37m-win_amd64.whl", hash = "sha256:6913ea108e7583f2d7ba4bc9cf4f2b1e0cdacf7e66e4cdc04192f870e64306ff"},
|
||||
{file = "SQLAlchemy-1.4.7-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:72152b64508dd807ba2a26d9dfc4da450d0ba1808c9f96ddbc397c435735fac3"},
|
||||
{file = "SQLAlchemy-1.4.7-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:9de4c84ea180c07f1d4010db2cfdbf9fe67bf7caafcfb1053644c8c03bfa3fd0"},
|
||||
{file = "SQLAlchemy-1.4.7-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:89860d594cb3256718d74ff7406a405a890eac71bcc044b3ba6868850d934a48"},
|
||||
{file = "SQLAlchemy-1.4.7-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:5d84442d85491dc473bf99f4d90ad45dd2e5539743f4d1216b15ba26575ba572"},
|
||||
{file = "SQLAlchemy-1.4.7-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:fdd1e4ed5d526aa4c7a01ed2157d01f0234eaecdb04b1c3b5084d0902986be9f"},
|
||||
{file = "SQLAlchemy-1.4.7-cp38-cp38-win32.whl", hash = "sha256:3a022a7985a49cacf21e2a73bab083e4852943466d250d932554650d705fcc62"},
|
||||
{file = "SQLAlchemy-1.4.7-cp38-cp38-win_amd64.whl", hash = "sha256:a7f450cbab9670949e7d9f0eac1dd93eaaffce319608bf4b863f0b751decef42"},
|
||||
{file = "SQLAlchemy-1.4.7-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:2bfadb3279f51252565baed9aa071c1bef875fcde60bf4a172136289ac208804"},
|
||||
{file = "SQLAlchemy-1.4.7-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:1d1172a9e5ead90d9299ccad8c5eecf40372a3721ff82fc4b4ee42835baf4659"},
|
||||
{file = "SQLAlchemy-1.4.7-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:bea07faab746743c8d82650b51129ff2705d53a0094161cfa6145e7ce77b9644"},
|
||||
{file = "SQLAlchemy-1.4.7-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:a3a40d2a0cb2ca2886f8f2fe768e83aeca489a162c8233974b9b2e429827ed85"},
|
||||
{file = "SQLAlchemy-1.4.7-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:50b1cb7c9f6f0bbc68c06453d66d4a34ca75ba60bce61d49bf007edfd2621d0a"},
|
||||
{file = "SQLAlchemy-1.4.7-cp39-cp39-win32.whl", hash = "sha256:d26d8a3865c9f33d7b3b356a577c7f26c499a9f080ae33e4282a65a8a2170cef"},
|
||||
{file = "SQLAlchemy-1.4.7-cp39-cp39-win_amd64.whl", hash = "sha256:606ac6a7640cc642fd53c5e693c560ad9fc21ef97aa7e799eb96b6d7f28ad723"},
|
||||
{file = "SQLAlchemy-1.4.7.tar.gz", hash = "sha256:84115f97d88c8ccf26db81b7997c5f5de9ae360e0785ef859d0987794495f0a9"},
|
||||
]
|
||||
toml = [
|
||||
{file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[tool.poetry]
|
||||
name = "royalnet-console"
|
||||
version = "1.0.0"
|
||||
version = "2.0.0"
|
||||
description = "A terminal-based frontend for the royalnet.engineer module."
|
||||
authors = ["Stefano Pigozzi <me@steffo.eu>"]
|
||||
license = "AGPL-3.0-or-later"
|
||||
|
@ -19,7 +19,7 @@ classifiers = [
|
|||
|
||||
[tool.poetry.dependencies]
|
||||
python = "^3.8"
|
||||
royalnet = "^6.1.4"
|
||||
royalnet = "~6.2.0"
|
||||
psutil = "^5.8.0"
|
||||
click = "^7.1.2"
|
||||
colorama = "^0.4.4"
|
||||
|
|
|
@ -1,63 +0,0 @@
|
|||
# Special imports
|
||||
from __future__ import annotations
|
||||
import royalnet.royaltyping as t
|
||||
|
||||
# External imports
|
||||
import logging
|
||||
import importlib
|
||||
import click
|
||||
import asyncio
|
||||
import royalnet.engineer as engi
|
||||
|
||||
# Internal imports
|
||||
from .pda import ConsolePDA
|
||||
|
||||
# Special global objects
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
# Code
|
||||
@click.command()
|
||||
@click.option("-p", "--pack", "packs", multiple=True)
|
||||
def main(packs: t.List[str]):
|
||||
log.debug("Creating PDA...")
|
||||
pda = ConsolePDA()
|
||||
|
||||
for pack in packs:
|
||||
log.debug(f"Importing module: {pack!r}")
|
||||
try:
|
||||
pack = importlib.import_module(pack)
|
||||
except ImportError as e:
|
||||
log.error(f"Skipping {pack!r}: {e!r}")
|
||||
continue
|
||||
|
||||
for attribute in dir(pack):
|
||||
log.debug(f"Getting attribute: {attribute!r}")
|
||||
value = pack.__getattribute__(attribute)
|
||||
log.debug(f"Attribute is: {value!r}")
|
||||
|
||||
if isinstance(value, engi.PartialCommand):
|
||||
log.debug(f"Attribute is a PartialCommand, registering it as: {value.f.__name__!r}")
|
||||
pda.register_partial(part=value, names=[value.f.__name__])
|
||||
|
||||
elif isinstance(value, engi.Conversation):
|
||||
log.debug(f"Attribute is a Conversation, registering it...")
|
||||
pda.register_conversation(conv=value)
|
||||
|
||||
log.debug("Getting event loop...")
|
||||
loop = asyncio.get_event_loop()
|
||||
log.debug(f"Event loop is: {loop!r}")
|
||||
|
||||
log.debug("Running the PDA until interrupted...")
|
||||
try:
|
||||
loop.run_until_complete(pda.run())
|
||||
except KeyboardInterrupt:
|
||||
log.debug("Got an interrupt, shutting down...")
|
||||
exit(0)
|
||||
|
||||
log.fatal("PDA stopped unexpectedly, shutting down...")
|
||||
exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
|
@ -1,45 +1,31 @@
|
|||
# Module docstring
|
||||
"""
|
||||
The PDA ("main" class) for the :mod:`royalnet_console` frontend.
|
||||
.. todo:: Document this.
|
||||
"""
|
||||
|
||||
# Special imports
|
||||
from __future__ import annotations
|
||||
import royalnet.royaltyping as t
|
||||
|
||||
# External imports
|
||||
import logging
|
||||
import asyncio
|
||||
import royalnet.engineer as engi
|
||||
import click
|
||||
import datetime
|
||||
|
||||
# Internal imports
|
||||
from . import bullets
|
||||
|
||||
# Special global objects
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
# Code
|
||||
class ConsolePDA:
|
||||
"""
|
||||
A PDA which handles :mod:`royalnet` input and output using a terminal as source.
|
||||
"""
|
||||
class ConsolePDAImplementation(engi.ConversationListImplementation):
|
||||
def _partialcommand_pattern(self, partial) -> str:
|
||||
if partial.syntax:
|
||||
return r"^{name}\s+{syntax}$"
|
||||
else:
|
||||
return r"^{name}$"
|
||||
|
||||
def __init__(self):
|
||||
log.debug(f"Creating new ConsolePDA...")
|
||||
|
||||
self.dispenser: t.Optional[engi.Dispenser] = None
|
||||
"""
|
||||
The :class:`royalnet.engineer.dispenser.Dispenser` of this PDA.
|
||||
"""
|
||||
|
||||
self.conversations: t.List[engi.Conversation] = []
|
||||
"""
|
||||
A :class:`list` of conversations to run before a new event is :meth:`.put` in a
|
||||
:class:`~royalnet.engineer.dispenser.Dispenser`.
|
||||
"""
|
||||
@property
|
||||
def namespace(self):
|
||||
return "console"
|
||||
|
||||
async def run(self, cycles: t.Union[bool, int] = True) -> t.NoReturn:
|
||||
"""
|
||||
|
@ -55,74 +41,12 @@ class ConsolePDA:
|
|||
projectile = bullets.ConsoleMessageReceived(_text=message, _timestamp=datetime.datetime.now())
|
||||
|
||||
log.debug(f"Putting projectile: {projectile!r}")
|
||||
await self.put_projectile(proj=projectile)
|
||||
await self.put_projectile(key="TERMINAL", projectile=projectile)
|
||||
|
||||
if isinstance(cycles, int):
|
||||
cycles -= 1
|
||||
|
||||
def register_conversation(self, conv: engi.Conversation) -> None:
|
||||
"""
|
||||
Register a new conversation in the PDA.
|
||||
|
||||
:param conv: The conversation to register.
|
||||
"""
|
||||
log.info(f"Registering conversation: {conv!r}")
|
||||
self.conversations.append(conv)
|
||||
|
||||
def unregister_conversation(self, conv: engi.Conversation) -> None:
|
||||
"""
|
||||
Unregister a conversation from the PDA.
|
||||
|
||||
:param conv: The conversation to unregister.
|
||||
"""
|
||||
log.info(f"Unregistering conversation: {conv!r}")
|
||||
self.conversations.remove(conv)
|
||||
|
||||
def register_partial(self, part: engi.PartialCommand, names: t.List[str]) -> engi.Command:
|
||||
"""
|
||||
Register a new :class:`~royalnet.engineer.command.PartialCommand` in the PDA, converting it to a
|
||||
:class:`royalnet.engineer.Command` in the process.
|
||||
|
||||
:param part: The :class:`~royalnet.engineer.command.PartialCommand` to register.
|
||||
:param names: The :attr:`~royalnet.engineer.command.Command.names` to register the command with.
|
||||
:return: The resulting :class:`~royalnet.engineer.command.Command`.
|
||||
"""
|
||||
log.debug(f"Completing partial: {part!r}")
|
||||
if part.syntax:
|
||||
command = part.complete(pattern=r"^{name}\s+{syntax}$", names=names)
|
||||
else:
|
||||
command = part.complete(pattern=r"^{name}$", names=names)
|
||||
self.register_conversation(command)
|
||||
return command
|
||||
|
||||
async def put_projectile(self, proj: engi.Projectile) -> None:
|
||||
"""
|
||||
Insert a new projectile into the dispenser.
|
||||
|
||||
:param proj: The projectile to put in the dispenser.
|
||||
"""
|
||||
if not self.dispenser:
|
||||
log.debug(f"Dispenser not found, creating one...")
|
||||
self.dispenser = engi.Dispenser()
|
||||
|
||||
log.debug("Getting running loop...")
|
||||
loop = asyncio.get_running_loop()
|
||||
|
||||
for conversation in self.conversations:
|
||||
log.debug(f"Creating run task for: {conversation!r}")
|
||||
loop.create_task(self.dispenser.run(conversation), name=f"{repr(conversation)}")
|
||||
|
||||
log.debug("Running a event loop cycle...")
|
||||
await asyncio.sleep(0)
|
||||
|
||||
log.debug(f"Putting projectile {proj!r} in dispenser {self.dispenser!r}...")
|
||||
await self.dispenser.put(proj)
|
||||
|
||||
log.debug("Awaiting another event loop cycle...")
|
||||
await asyncio.sleep(0)
|
||||
|
||||
|
||||
# Objects exported by this module
|
||||
__all__ = (
|
||||
"ConsolePDA",
|
||||
"ConsolePDAImplementation",
|
||||
)
|
||||
|
|
|
@ -1,49 +0,0 @@
|
|||
import pytest
|
||||
from royalnet_console.pda import ConsolePDA
|
||||
import royalnet.engineer as engi
|
||||
|
||||
|
||||
def test_construction():
|
||||
pda = ConsolePDA()
|
||||
assert pda is not None
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def pda():
|
||||
return ConsolePDA()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def command():
|
||||
@engi.PartialCommand.new(syntax="")
|
||||
async def test(*, _sentry: engi.Sentry, _msg: engi.Message, **__):
|
||||
await _msg.reply(text=r"test")
|
||||
|
||||
return test
|
||||
|
||||
|
||||
def test_registration(pda: ConsolePDA, command: engi.PartialCommand):
|
||||
pda.register_partial(command, ["test"])
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def pda_with_command(pda: ConsolePDA, command: engi.PartialCommand):
|
||||
pda.register_partial(command, ["test"])
|
||||
return pda
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_run(pda_with_command: ConsolePDA, monkeypatch):
|
||||
check = False
|
||||
|
||||
def trigger(text):
|
||||
assert text == "test"
|
||||
nonlocal check
|
||||
check = True
|
||||
|
||||
monkeypatch.setattr("click.prompt", lambda *_, **__: "test")
|
||||
monkeypatch.setattr("click.echo", trigger)
|
||||
|
||||
await pda_with_command.run(cycles=1)
|
||||
|
||||
assert check is True
|
Loading…
Reference in a new issue