mirror of
https://github.com/RYGhub/royalnet.git
synced 2024-11-27 13:34:28 +00:00
🔧 Use click.echo/click.prompt instead of print/input
This commit is contained in:
parent
0c16785d02
commit
2574651d6e
4 changed files with 36 additions and 13 deletions
17
poetry.lock
generated
17
poetry.lock
generated
|
@ -56,14 +56,21 @@ category = "dev"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "click"
|
||||||
|
version = "7.1.2"
|
||||||
|
description = "Composable command line interface toolkit"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "colorama"
|
name = "colorama"
|
||||||
version = "0.4.4"
|
version = "0.4.4"
|
||||||
description = "Cross-platform colored terminal text."
|
description = "Cross-platform colored terminal text."
|
||||||
category = "dev"
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
marker = "sys_platform == \"win32\""
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "docutils"
|
name = "docutils"
|
||||||
|
@ -432,7 +439,7 @@ socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"]
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "1.0"
|
lock-version = "1.0"
|
||||||
python-versions = "^3.9"
|
python-versions = "^3.9"
|
||||||
content-hash = "e5ce7e56ddb284da6206a9dab891023b5a8b057efd8b683e9b0c1dfb6d55131f"
|
content-hash = "b205a562d986cf6f37d26656d253e542a637727073f7d16e83ceb10029762d7e"
|
||||||
|
|
||||||
[metadata.files]
|
[metadata.files]
|
||||||
alabaster = [
|
alabaster = [
|
||||||
|
@ -459,6 +466,10 @@ chardet = [
|
||||||
{file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"},
|
{file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"},
|
||||||
{file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"},
|
{file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"},
|
||||||
]
|
]
|
||||||
|
click = [
|
||||||
|
{file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"},
|
||||||
|
{file = "click-7.1.2.tar.gz", hash = "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"},
|
||||||
|
]
|
||||||
colorama = [
|
colorama = [
|
||||||
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
|
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
|
||||||
{file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
|
{file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
|
||||||
|
|
|
@ -9,6 +9,8 @@ license = "AGPL-3.0-or-later"
|
||||||
python = "^3.9"
|
python = "^3.9"
|
||||||
royalnet = "^6.0.0a37"
|
royalnet = "^6.0.0a37"
|
||||||
psutil = "^5.8.0"
|
psutil = "^5.8.0"
|
||||||
|
click = "^7.1.2"
|
||||||
|
colorama = "^0.4.4"
|
||||||
|
|
||||||
[tool.poetry.dev-dependencies]
|
[tool.poetry.dev-dependencies]
|
||||||
pytest = "^6.1.1"
|
pytest = "^6.1.1"
|
||||||
|
|
|
@ -11,6 +11,7 @@ import royalnet.royaltyping as t
|
||||||
import logging
|
import logging
|
||||||
import asyncio
|
import asyncio
|
||||||
import royalnet.engineer as engi
|
import royalnet.engineer as engi
|
||||||
|
import click
|
||||||
|
|
||||||
# Internal imports
|
# Internal imports
|
||||||
from . import magazine
|
from . import magazine
|
||||||
|
@ -22,7 +23,7 @@ log = logging.getLogger(__name__)
|
||||||
# Code
|
# Code
|
||||||
class ConsolePDA:
|
class ConsolePDA:
|
||||||
"""
|
"""
|
||||||
.. todo:: Document the :class:`.ConsolePDA` class.
|
A PDA which handles :mod:`royalnet` input and output using a terminal as source.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -30,10 +31,13 @@ class ConsolePDA:
|
||||||
|
|
||||||
log.debug(f"Creating new magazine...")
|
log.debug(f"Creating new magazine...")
|
||||||
self.mag = magazine.ConsoleMagazine()
|
self.mag = magazine.ConsoleMagazine()
|
||||||
|
"""
|
||||||
|
The
|
||||||
|
"""
|
||||||
|
|
||||||
self.dispenser: t.Optional[engi.Dispenser] = None
|
self.dispenser: t.Optional[engi.Dispenser] = None
|
||||||
"""
|
"""
|
||||||
The dispenser for this PDA.
|
The :class:`royalnet.engineer.dispenser.Dispenser` of this PDA.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.conversations: t.List[engi.Conversation] = []
|
self.conversations: t.List[engi.Conversation] = []
|
||||||
|
@ -42,9 +46,13 @@ class ConsolePDA:
|
||||||
:class:`~royalnet.engineer.dispenser.Dispenser`.
|
:class:`~royalnet.engineer.dispenser.Dispenser`.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
async def run(self):
|
async def run(self) -> t.NoReturn:
|
||||||
|
"""
|
||||||
|
Run the main loop of the :class:`.ConsolePDA`.
|
||||||
|
"""
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
message = input()
|
message = click.prompt("", type=str, prompt_suffix=">>> ", show_default=False)
|
||||||
log.debug(f"Received a new message: {message!r}")
|
log.debug(f"Received a new message: {message!r}")
|
||||||
|
|
||||||
log.debug(f"Creating ConsoleMessage from: {message!r}")
|
log.debug(f"Creating ConsoleMessage from: {message!r}")
|
||||||
|
@ -73,11 +81,12 @@ class ConsolePDA:
|
||||||
|
|
||||||
def register_partial(self, part: engi.PartialCommand, names: t.List[str]) -> engi.Command:
|
def register_partial(self, part: engi.PartialCommand, names: t.List[str]) -> engi.Command:
|
||||||
"""
|
"""
|
||||||
Register a new :class:`PartialCommand` in the PDA, converting it to a :class:`Command` in the process.
|
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:`PartialCommand` to register.
|
:param part: The :class:`~royalnet.engineer.command.PartialCommand` to register.
|
||||||
:param names: The :attr:`~royalnet.engineer.Command.names` to register the command as.
|
:param names: The :attr:`~royalnet.engineer.command.Command.names` to register the command with.
|
||||||
:return: The resulting :class:`Command`.
|
:return: The resulting :class:`~royalnet.engineer.command.Command`.
|
||||||
"""
|
"""
|
||||||
log.debug(f"Completing partial: {part!r}")
|
log.debug(f"Completing partial: {part!r}")
|
||||||
if part.syntax:
|
if part.syntax:
|
||||||
|
@ -110,7 +119,7 @@ class ConsolePDA:
|
||||||
log.debug(f"Putting bullet {bullet!r} in dispenser {self.dispenser!r}...")
|
log.debug(f"Putting bullet {bullet!r} in dispenser {self.dispenser!r}...")
|
||||||
await self.dispenser.put(bullet)
|
await self.dispenser.put(bullet)
|
||||||
|
|
||||||
log.debug("Awaiting another loop cycle")
|
log.debug("Awaiting another event loop cycle...")
|
||||||
await asyncio.sleep(0)
|
await asyncio.sleep(0)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ import royalnet.royaltyping as t
|
||||||
# External imports
|
# External imports
|
||||||
import logging
|
import logging
|
||||||
import royalnet.engineer as engi
|
import royalnet.engineer as engi
|
||||||
|
import click
|
||||||
|
|
||||||
# Internal imports
|
# Internal imports
|
||||||
# from . import something
|
# from . import something
|
||||||
|
@ -38,7 +39,7 @@ async def console_message(*,
|
||||||
raise engi.exc.NotSupportedError("Console does not allow sending files.")
|
raise engi.exc.NotSupportedError("Console does not allow sending files.")
|
||||||
|
|
||||||
log.debug("Sending message...")
|
log.debug("Sending message...")
|
||||||
print(text)
|
click.echo(text)
|
||||||
|
|
||||||
log.debug("Creating bullet...")
|
log.debug("Creating bullet...")
|
||||||
return mag.Message(_text=text)
|
return mag.Message(_text=text)
|
||||||
|
|
Loading…
Reference in a new issue