plain.dev 0.14.2__tar.gz → 0.16.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {plain_dev-0.14.2 → plain_dev-0.16.0}/PKG-INFO +2 -1
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/cli.py +41 -11
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/contribute/cli.py +5 -2
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/poncho/printer.py +7 -33
- {plain_dev-0.14.2 → plain_dev-0.16.0}/pyproject.toml +2 -1
- {plain_dev-0.14.2 → plain_dev-0.16.0}/uv.lock +91 -52
- {plain_dev-0.14.2 → plain_dev-0.16.0}/.gitignore +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/LICENSE +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/README.md +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/README.md +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/__init__.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/contribute/__init__.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/db/__init__.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/db/cli.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/db/container.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/debug.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/default_settings.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/entrypoints.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/gunicorn_logging.json +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/mkcert.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/pid.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/poncho/__init__.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/poncho/color.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/poncho/compat.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/poncho/manager.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/poncho/process.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/precommit/__init__.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/precommit/cli.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/requests.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/services.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/templates/dev/requests.html +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/urls.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/utils.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/plain/dev/views.py +0 -0
- {plain_dev-0.14.2 → plain_dev-0.16.0}/tests/settings.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: plain.dev
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.16.0
|
4
4
|
Summary: Local development tools for Plain.
|
5
5
|
Author-email: Dave Gaeddert <dave.gaeddert@dropseed.dev>
|
6
6
|
License-Expression: BSD-3-Clause
|
@@ -13,6 +13,7 @@ Requires-Dist: plain<1.0.0
|
|
13
13
|
Requires-Dist: psycopg[binary]~=3.2.2
|
14
14
|
Requires-Dist: python-dotenv~=1.0.0
|
15
15
|
Requires-Dist: requests>=2.0.0
|
16
|
+
Requires-Dist: rich
|
16
17
|
Description-Content-Type: text/markdown
|
17
18
|
|
18
19
|
<!-- This file is compiled from plain-dev/plain/dev/README.md. Do not edit this file directly. -->
|
@@ -10,6 +10,9 @@ from importlib.util import find_spec
|
|
10
10
|
from pathlib import Path
|
11
11
|
|
12
12
|
import click
|
13
|
+
from rich.columns import Columns
|
14
|
+
from rich.console import Console
|
15
|
+
from rich.text import Text
|
13
16
|
|
14
17
|
from plain.runtime import APP_PATH, settings
|
15
18
|
|
@@ -17,6 +20,7 @@ from .db import cli as db_cli
|
|
17
20
|
from .mkcert import MkcertManager
|
18
21
|
from .pid import Pid
|
19
22
|
from .poncho.manager import Manager as PonchoManager
|
23
|
+
from .poncho.printer import Printer
|
20
24
|
from .services import Services
|
21
25
|
from .utils import has_pyproject_toml
|
22
26
|
|
@@ -73,7 +77,7 @@ def services():
|
|
73
77
|
)
|
74
78
|
@click.argument("entrypoint", required=False)
|
75
79
|
def entrypoint(show_list, entrypoint):
|
76
|
-
|
80
|
+
"""Entrypoints registered under plain.dev"""
|
77
81
|
if not show_list and not entrypoint:
|
78
82
|
click.secho("Please provide an entrypoint name or use --list", fg="red")
|
79
83
|
sys.exit(1)
|
@@ -91,12 +95,11 @@ class Dev:
|
|
91
95
|
self.hostname = hostname
|
92
96
|
self.log_level = log_level
|
93
97
|
|
94
|
-
self.poncho = PonchoManager()
|
95
|
-
|
96
98
|
self.ssl_key_path = None
|
97
99
|
self.ssl_cert_path = None
|
98
100
|
|
99
101
|
self.url = f"https://{self.hostname}:{self.port}"
|
102
|
+
self.tunnel_url = os.environ.get("PLAIN_DEV_TUNNEL_URL", "")
|
100
103
|
|
101
104
|
self.plain_env = {
|
102
105
|
"PYTHONUNBUFFERED": "true",
|
@@ -110,6 +113,9 @@ class Dev:
|
|
110
113
|
"PLAIN_DEV_URL": self.url,
|
111
114
|
}
|
112
115
|
|
116
|
+
self.console = Console(markup=False, highlight=False)
|
117
|
+
self.poncho = PonchoManager(printer=Printer(lambda s: self.console.out(s)))
|
118
|
+
|
113
119
|
def run(self):
|
114
120
|
pid = Pid()
|
115
121
|
pid.write()
|
@@ -133,15 +139,39 @@ class Dev:
|
|
133
139
|
self.add_pyproject_run()
|
134
140
|
self.add_services()
|
135
141
|
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
142
|
+
click.secho("\nStarting dev...", italic=True, dim=True)
|
143
|
+
|
144
|
+
if self.tunnel_url:
|
145
|
+
status_bar = Columns(
|
146
|
+
[
|
147
|
+
Text.from_markup(
|
148
|
+
f"[bold]Tunnel URL[/bold] [underline][link={self.tunnel_url}]{self.tunnel_url}[/link][/underline]"
|
149
|
+
),
|
150
|
+
Text.from_markup(
|
151
|
+
f"[dim][bold]Localhost URL[/bold] [link={self.url}]{self.url}[/link][/dim]"
|
152
|
+
),
|
153
|
+
Text.from_markup(
|
154
|
+
"[dim]Press [bold]Ctrl+C[/bold] to stop[/dim]",
|
155
|
+
justify="right",
|
156
|
+
),
|
157
|
+
],
|
158
|
+
expand=True,
|
159
|
+
)
|
160
|
+
else:
|
161
|
+
status_bar = Columns(
|
162
|
+
[
|
163
|
+
Text.from_markup(
|
164
|
+
f"[bold]Localhost URL[/bold] [underline][link={self.url}]{self.url}[/link][/underline]"
|
165
|
+
),
|
166
|
+
Text.from_markup(
|
167
|
+
"[dim][bold]Ctrl+C[/bold] to stop[/dim]", justify="right"
|
168
|
+
),
|
169
|
+
],
|
170
|
+
expand=True,
|
171
|
+
)
|
143
172
|
|
144
|
-
self.
|
173
|
+
with self.console.status(status_bar):
|
174
|
+
self.poncho.loop()
|
145
175
|
|
146
176
|
return self.poncho.returncode
|
147
177
|
finally:
|
@@ -7,11 +7,14 @@ import click
|
|
7
7
|
|
8
8
|
@click.command("contribute")
|
9
9
|
@click.option("--repo", default="../plain", help="Path to the plain repo")
|
10
|
+
@click.option(
|
11
|
+
"--reset", is_flag=True, help="Undo any changes to pyproject.toml and uv.lock"
|
12
|
+
)
|
10
13
|
@click.argument("packages", nargs=-1)
|
11
|
-
def cli(packages, repo):
|
14
|
+
def cli(packages, repo, reset):
|
12
15
|
"""Contribute to plain by linking packages locally."""
|
13
16
|
|
14
|
-
if
|
17
|
+
if reset:
|
15
18
|
click.secho("Undoing any changes to pyproject.toml and uv.lock", bold=True)
|
16
19
|
result = subprocess.run(["git", "checkout", "pyproject.toml", "uv.lock"])
|
17
20
|
if result.returncode:
|
@@ -1,8 +1,5 @@
|
|
1
|
-
import sys
|
2
1
|
from collections import namedtuple
|
3
2
|
|
4
|
-
from .compat import ON_WINDOWS
|
5
|
-
|
6
3
|
Message = namedtuple("Message", "type data time name color")
|
7
4
|
|
8
5
|
|
@@ -15,27 +12,18 @@ class Printer:
|
|
15
12
|
|
16
13
|
def __init__(
|
17
14
|
self,
|
18
|
-
|
15
|
+
print_func,
|
19
16
|
time_format="%H:%M:%S",
|
20
17
|
width=0,
|
21
18
|
color=True,
|
22
19
|
prefix=True,
|
23
20
|
):
|
24
|
-
self.
|
21
|
+
self.print_func = print_func
|
25
22
|
self.time_format = time_format
|
26
23
|
self.width = width
|
27
24
|
self.color = color
|
28
25
|
self.prefix = prefix
|
29
26
|
|
30
|
-
try:
|
31
|
-
# We only want to print colored messages if the given output supports
|
32
|
-
# ANSI escape sequences. Usually, testing if it is a TTY is safe enough.
|
33
|
-
self._colors_supported = self.output.isatty()
|
34
|
-
except AttributeError:
|
35
|
-
# If the given output does not implement isatty(), we assume that it
|
36
|
-
# is not able to handle ANSI escape sequences.
|
37
|
-
self._colors_supported = False
|
38
|
-
|
39
27
|
def write(self, message):
|
40
28
|
if message.type != "line":
|
41
29
|
raise RuntimeError('Printer can only process messages of type "line"')
|
@@ -58,28 +46,14 @@ class Printer:
|
|
58
46
|
if self.prefix:
|
59
47
|
time_formatted = message.time.strftime(self.time_format)
|
60
48
|
prefix = f"{time_formatted} {name}| "
|
61
|
-
if self.color and
|
49
|
+
if self.color and message.color:
|
62
50
|
prefix = _color_string(message.color, prefix)
|
63
|
-
print(prefix + line, file=self.output, flush=True)
|
64
51
|
|
65
|
-
|
66
|
-
def _ansi(code):
|
67
|
-
return f"\033[{code}m"
|
52
|
+
self.print_func(prefix + line)
|
68
53
|
|
69
54
|
|
70
55
|
def _color_string(color, s):
|
71
|
-
|
56
|
+
def _ansi(code):
|
57
|
+
return f"\033[{code}m"
|
72
58
|
|
73
|
-
|
74
|
-
if ON_WINDOWS:
|
75
|
-
# The colorama package provides transparent support for ANSI color codes
|
76
|
-
# on Win32 platforms. We try and import and configure that, but fall back
|
77
|
-
# to no color if we fail.
|
78
|
-
try:
|
79
|
-
import colorama
|
80
|
-
except ImportError:
|
81
|
-
|
82
|
-
def _color_string(color, s):
|
83
|
-
return s
|
84
|
-
else:
|
85
|
-
colorama.init()
|
59
|
+
return f"{_ansi(0)}{_ansi(color)}{s}{_ansi(0)}"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "plain.dev"
|
3
|
-
version = "0.
|
3
|
+
version = "0.16.0"
|
4
4
|
description = "Local development tools for Plain."
|
5
5
|
authors = [{name = "Dave Gaeddert", email = "dave.gaeddert@dropseed.dev"}]
|
6
6
|
license = "BSD-3-Clause"
|
@@ -14,6 +14,7 @@ dependencies = [
|
|
14
14
|
"gunicorn>20",
|
15
15
|
"requests>=2.0.0",
|
16
16
|
"psycopg[binary]~=3.2.2",
|
17
|
+
"rich",
|
17
18
|
]
|
18
19
|
|
19
20
|
# Make the CLI available without adding to INSTALLED_APPS
|
@@ -12,56 +12,50 @@ wheels = [
|
|
12
12
|
|
13
13
|
[[package]]
|
14
14
|
name = "charset-normalizer"
|
15
|
-
version = "3.4.
|
15
|
+
version = "3.4.1"
|
16
16
|
source = { registry = "https://pypi.org/simple" }
|
17
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
17
|
+
sdist = { url = "https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3", size = 123188 }
|
18
18
|
wheels = [
|
19
|
-
{ url = "https://files.pythonhosted.org/packages/
|
20
|
-
{ url = "https://files.pythonhosted.org/packages/
|
21
|
-
{ url = "https://files.pythonhosted.org/packages/
|
22
|
-
{ url = "https://files.pythonhosted.org/packages/
|
23
|
-
{ url = "https://files.pythonhosted.org/packages/
|
24
|
-
{ url = "https://files.pythonhosted.org/packages/
|
25
|
-
{ url = "https://files.pythonhosted.org/packages/
|
26
|
-
{ url = "https://files.pythonhosted.org/packages/
|
27
|
-
{ url = "https://files.pythonhosted.org/packages/
|
28
|
-
{ url = "https://files.pythonhosted.org/packages/
|
29
|
-
{ url = "https://files.pythonhosted.org/packages/
|
30
|
-
{ url = "https://files.pythonhosted.org/packages/
|
31
|
-
{ url = "https://files.pythonhosted.org/packages/
|
32
|
-
{ url = "https://files.pythonhosted.org/packages/
|
33
|
-
{ url = "https://files.pythonhosted.org/packages/
|
34
|
-
{ url = "https://files.pythonhosted.org/packages/
|
35
|
-
{ url = "https://files.pythonhosted.org/packages/
|
36
|
-
{ url = "https://files.pythonhosted.org/packages/
|
37
|
-
{ url = "https://files.pythonhosted.org/packages/
|
38
|
-
{ url = "https://files.pythonhosted.org/packages/
|
39
|
-
{ url = "https://files.pythonhosted.org/packages/
|
40
|
-
{ url = "https://files.pythonhosted.org/packages/
|
41
|
-
{ url = "https://files.pythonhosted.org/packages/
|
42
|
-
{ url = "https://files.pythonhosted.org/packages/
|
43
|
-
{ url = "https://files.pythonhosted.org/packages/
|
44
|
-
{ url = "https://files.pythonhosted.org/packages/
|
45
|
-
{ url = "https://files.pythonhosted.org/packages/
|
46
|
-
{ url = "https://files.pythonhosted.org/packages/
|
47
|
-
{ url = "https://files.pythonhosted.org/packages/
|
48
|
-
{ url = "https://files.pythonhosted.org/packages/
|
49
|
-
{ url = "https://files.pythonhosted.org/packages/
|
50
|
-
{ url = "https://files.pythonhosted.org/packages/
|
51
|
-
{ url = "https://files.pythonhosted.org/packages/
|
52
|
-
{ url = "https://files.pythonhosted.org/packages/
|
53
|
-
{ url = "https://files.pythonhosted.org/packages/
|
54
|
-
{ url = "https://files.pythonhosted.org/packages/
|
55
|
-
{ url = "https://files.pythonhosted.org/packages/
|
56
|
-
{ url = "https://files.pythonhosted.org/packages/
|
57
|
-
{ url = "https://files.pythonhosted.org/packages/
|
58
|
-
{ url = "https://files.pythonhosted.org/packages/
|
59
|
-
{ url = "https://files.pythonhosted.org/packages/ac/a0/c1b5298de4670d997101fef95b97ac440e8c8d8b4efa5a4d1ef44af82f0d/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b", size = 151849 },
|
60
|
-
{ url = "https://files.pythonhosted.org/packages/04/4f/b3961ba0c664989ba63e30595a3ed0875d6790ff26671e2aae2fdc28a399/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d", size = 149781 },
|
61
|
-
{ url = "https://files.pythonhosted.org/packages/d8/90/6af4cd042066a4adad58ae25648a12c09c879efa4849c705719ba1b23d8c/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482", size = 144970 },
|
62
|
-
{ url = "https://files.pythonhosted.org/packages/cc/67/e5e7e0cbfefc4ca79025238b43cdf8a2037854195b37d6417f3d0895c4c2/charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67", size = 94973 },
|
63
|
-
{ url = "https://files.pythonhosted.org/packages/65/97/fc9bbc54ee13d33dc54a7fcf17b26368b18505500fc01e228c27b5222d80/charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b", size = 102308 },
|
64
|
-
{ url = "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", size = 49446 },
|
19
|
+
{ url = "https://files.pythonhosted.org/packages/72/80/41ef5d5a7935d2d3a773e3eaebf0a9350542f2cab4eac59a7a4741fbbbbe/charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125", size = 194995 },
|
20
|
+
{ url = "https://files.pythonhosted.org/packages/7a/28/0b9fefa7b8b080ec492110af6d88aa3dea91c464b17d53474b6e9ba5d2c5/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1", size = 139471 },
|
21
|
+
{ url = "https://files.pythonhosted.org/packages/71/64/d24ab1a997efb06402e3fc07317e94da358e2585165930d9d59ad45fcae2/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3", size = 149831 },
|
22
|
+
{ url = "https://files.pythonhosted.org/packages/37/ed/be39e5258e198655240db5e19e0b11379163ad7070962d6b0c87ed2c4d39/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd", size = 142335 },
|
23
|
+
{ url = "https://files.pythonhosted.org/packages/88/83/489e9504711fa05d8dde1574996408026bdbdbd938f23be67deebb5eca92/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00", size = 143862 },
|
24
|
+
{ url = "https://files.pythonhosted.org/packages/c6/c7/32da20821cf387b759ad24627a9aca289d2822de929b8a41b6241767b461/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12", size = 145673 },
|
25
|
+
{ url = "https://files.pythonhosted.org/packages/68/85/f4288e96039abdd5aeb5c546fa20a37b50da71b5cf01e75e87f16cd43304/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77", size = 140211 },
|
26
|
+
{ url = "https://files.pythonhosted.org/packages/28/a3/a42e70d03cbdabc18997baf4f0227c73591a08041c149e710045c281f97b/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146", size = 148039 },
|
27
|
+
{ url = "https://files.pythonhosted.org/packages/85/e4/65699e8ab3014ecbe6f5c71d1a55d810fb716bbfd74f6283d5c2aa87febf/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd", size = 151939 },
|
28
|
+
{ url = "https://files.pythonhosted.org/packages/b1/82/8e9fe624cc5374193de6860aba3ea8070f584c8565ee77c168ec13274bd2/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6", size = 149075 },
|
29
|
+
{ url = "https://files.pythonhosted.org/packages/3d/7b/82865ba54c765560c8433f65e8acb9217cb839a9e32b42af4aa8e945870f/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8", size = 144340 },
|
30
|
+
{ url = "https://files.pythonhosted.org/packages/b5/b6/9674a4b7d4d99a0d2df9b215da766ee682718f88055751e1e5e753c82db0/charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b", size = 95205 },
|
31
|
+
{ url = "https://files.pythonhosted.org/packages/1e/ab/45b180e175de4402dcf7547e4fb617283bae54ce35c27930a6f35b6bef15/charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76", size = 102441 },
|
32
|
+
{ url = "https://files.pythonhosted.org/packages/0a/9a/dd1e1cdceb841925b7798369a09279bd1cf183cef0f9ddf15a3a6502ee45/charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545", size = 196105 },
|
33
|
+
{ url = "https://files.pythonhosted.org/packages/d3/8c/90bfabf8c4809ecb648f39794cf2a84ff2e7d2a6cf159fe68d9a26160467/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7", size = 140404 },
|
34
|
+
{ url = "https://files.pythonhosted.org/packages/ad/8f/e410d57c721945ea3b4f1a04b74f70ce8fa800d393d72899f0a40526401f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757", size = 150423 },
|
35
|
+
{ url = "https://files.pythonhosted.org/packages/f0/b8/e6825e25deb691ff98cf5c9072ee0605dc2acfca98af70c2d1b1bc75190d/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa", size = 143184 },
|
36
|
+
{ url = "https://files.pythonhosted.org/packages/3e/a2/513f6cbe752421f16d969e32f3583762bfd583848b763913ddab8d9bfd4f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d", size = 145268 },
|
37
|
+
{ url = "https://files.pythonhosted.org/packages/74/94/8a5277664f27c3c438546f3eb53b33f5b19568eb7424736bdc440a88a31f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616", size = 147601 },
|
38
|
+
{ url = "https://files.pythonhosted.org/packages/7c/5f/6d352c51ee763623a98e31194823518e09bfa48be2a7e8383cf691bbb3d0/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b", size = 141098 },
|
39
|
+
{ url = "https://files.pythonhosted.org/packages/78/d4/f5704cb629ba5ab16d1d3d741396aec6dc3ca2b67757c45b0599bb010478/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d", size = 149520 },
|
40
|
+
{ url = "https://files.pythonhosted.org/packages/c5/96/64120b1d02b81785f222b976c0fb79a35875457fa9bb40827678e54d1bc8/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a", size = 152852 },
|
41
|
+
{ url = "https://files.pythonhosted.org/packages/84/c9/98e3732278a99f47d487fd3468bc60b882920cef29d1fa6ca460a1fdf4e6/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9", size = 150488 },
|
42
|
+
{ url = "https://files.pythonhosted.org/packages/13/0e/9c8d4cb99c98c1007cc11eda969ebfe837bbbd0acdb4736d228ccaabcd22/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1", size = 146192 },
|
43
|
+
{ url = "https://files.pythonhosted.org/packages/b2/21/2b6b5b860781a0b49427309cb8670785aa543fb2178de875b87b9cc97746/charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35", size = 95550 },
|
44
|
+
{ url = "https://files.pythonhosted.org/packages/21/5b/1b390b03b1d16c7e382b561c5329f83cc06623916aab983e8ab9239c7d5c/charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f", size = 102785 },
|
45
|
+
{ url = "https://files.pythonhosted.org/packages/38/94/ce8e6f63d18049672c76d07d119304e1e2d7c6098f0841b51c666e9f44a0/charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda", size = 195698 },
|
46
|
+
{ url = "https://files.pythonhosted.org/packages/24/2e/dfdd9770664aae179a96561cc6952ff08f9a8cd09a908f259a9dfa063568/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313", size = 140162 },
|
47
|
+
{ url = "https://files.pythonhosted.org/packages/24/4e/f646b9093cff8fc86f2d60af2de4dc17c759de9d554f130b140ea4738ca6/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9", size = 150263 },
|
48
|
+
{ url = "https://files.pythonhosted.org/packages/5e/67/2937f8d548c3ef6e2f9aab0f6e21001056f692d43282b165e7c56023e6dd/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b", size = 142966 },
|
49
|
+
{ url = "https://files.pythonhosted.org/packages/52/ed/b7f4f07de100bdb95c1756d3a4d17b90c1a3c53715c1a476f8738058e0fa/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11", size = 144992 },
|
50
|
+
{ url = "https://files.pythonhosted.org/packages/96/2c/d49710a6dbcd3776265f4c923bb73ebe83933dfbaa841c5da850fe0fd20b/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f", size = 147162 },
|
51
|
+
{ url = "https://files.pythonhosted.org/packages/b4/41/35ff1f9a6bd380303dea55e44c4933b4cc3c4850988927d4082ada230273/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd", size = 140972 },
|
52
|
+
{ url = "https://files.pythonhosted.org/packages/fb/43/c6a0b685fe6910d08ba971f62cd9c3e862a85770395ba5d9cad4fede33ab/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2", size = 149095 },
|
53
|
+
{ url = "https://files.pythonhosted.org/packages/4c/ff/a9a504662452e2d2878512115638966e75633519ec11f25fca3d2049a94a/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886", size = 152668 },
|
54
|
+
{ url = "https://files.pythonhosted.org/packages/6c/71/189996b6d9a4b932564701628af5cee6716733e9165af1d5e1b285c530ed/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601", size = 150073 },
|
55
|
+
{ url = "https://files.pythonhosted.org/packages/e4/93/946a86ce20790e11312c87c75ba68d5f6ad2208cfb52b2d6a2c32840d922/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd", size = 145732 },
|
56
|
+
{ url = "https://files.pythonhosted.org/packages/cd/e5/131d2fb1b0dddafc37be4f3a2fa79aa4c037368be9423061dccadfd90091/charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407", size = 95391 },
|
57
|
+
{ url = "https://files.pythonhosted.org/packages/27/f2/4f9a69cc7712b9b5ad8fdb87039fd89abba997ad5cbe690d1835d40405b0/charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971", size = 102702 },
|
58
|
+
{ url = "https://files.pythonhosted.org/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85", size = 49767 },
|
65
59
|
]
|
66
60
|
|
67
61
|
[[package]]
|
@@ -127,6 +121,18 @@ wheels = [
|
|
127
121
|
{ url = "https://files.pythonhosted.org/packages/bd/0f/2ba5fbcd631e3e88689309dbe978c5769e883e4b84ebfe7da30b43275c5a/jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb", size = 134596 },
|
128
122
|
]
|
129
123
|
|
124
|
+
[[package]]
|
125
|
+
name = "markdown-it-py"
|
126
|
+
version = "3.0.0"
|
127
|
+
source = { registry = "https://pypi.org/simple" }
|
128
|
+
dependencies = [
|
129
|
+
{ name = "mdurl" },
|
130
|
+
]
|
131
|
+
sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596 }
|
132
|
+
wheels = [
|
133
|
+
{ url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528 },
|
134
|
+
]
|
135
|
+
|
130
136
|
[[package]]
|
131
137
|
name = "markupsafe"
|
132
138
|
version = "3.0.2"
|
@@ -175,6 +181,15 @@ wheels = [
|
|
175
181
|
{ url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739 },
|
176
182
|
]
|
177
183
|
|
184
|
+
[[package]]
|
185
|
+
name = "mdurl"
|
186
|
+
version = "0.1.2"
|
187
|
+
source = { registry = "https://pypi.org/simple" }
|
188
|
+
sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729 }
|
189
|
+
wheels = [
|
190
|
+
{ url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 },
|
191
|
+
]
|
192
|
+
|
178
193
|
[[package]]
|
179
194
|
name = "packaging"
|
180
195
|
version = "24.2"
|
@@ -186,20 +201,20 @@ wheels = [
|
|
186
201
|
|
187
202
|
[[package]]
|
188
203
|
name = "plain"
|
189
|
-
version = "0.13.
|
204
|
+
version = "0.13.2"
|
190
205
|
source = { registry = "https://pypi.org/simple" }
|
191
206
|
dependencies = [
|
192
207
|
{ name = "click" },
|
193
208
|
{ name = "jinja2" },
|
194
209
|
]
|
195
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
210
|
+
sdist = { url = "https://files.pythonhosted.org/packages/77/21/7747694df03b0579021b476f44542849931ce22a188f9f21df23bc7e83e8/plain-0.13.2.tar.gz", hash = "sha256:08b58585990cc6f0c3adf5915d2a5e52e18e6818a3b35b6131cad06247ec67e7", size = 181899 }
|
196
211
|
wheels = [
|
197
|
-
{ url = "https://files.pythonhosted.org/packages/
|
212
|
+
{ url = "https://files.pythonhosted.org/packages/f5/be/5b49d8a6e90e77367e493e687b9cdddd18604395b11d26e55361e96820cb/plain-0.13.2-py3-none-any.whl", hash = "sha256:51c623d96a926749952271c1897ca6597ac1aa1f0756fd6bc7e5fa79a372a969", size = 221813 },
|
198
213
|
]
|
199
214
|
|
200
215
|
[[package]]
|
201
216
|
name = "plain-dev"
|
202
|
-
version = "0.
|
217
|
+
version = "0.16.0"
|
203
218
|
source = { editable = "." }
|
204
219
|
dependencies = [
|
205
220
|
{ name = "click" },
|
@@ -209,6 +224,7 @@ dependencies = [
|
|
209
224
|
{ name = "psycopg", extra = ["binary"] },
|
210
225
|
{ name = "python-dotenv" },
|
211
226
|
{ name = "requests" },
|
227
|
+
{ name = "rich" },
|
212
228
|
]
|
213
229
|
|
214
230
|
[package.metadata]
|
@@ -220,6 +236,7 @@ requires-dist = [
|
|
220
236
|
{ name = "psycopg", extras = ["binary"], specifier = "~=3.2.2" },
|
221
237
|
{ name = "python-dotenv", specifier = "~=1.0.0" },
|
222
238
|
{ name = "requests", specifier = ">=2.0.0" },
|
239
|
+
{ name = "rich" },
|
223
240
|
]
|
224
241
|
|
225
242
|
[[package]]
|
@@ -280,6 +297,15 @@ wheels = [
|
|
280
297
|
{ url = "https://files.pythonhosted.org/packages/03/20/b675af723b9a61d48abd6a3d64cbb9797697d330255d1f8105713d54ed8e/psycopg_binary-3.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:e90352d7b610b4693fad0feea48549d4315d10f1eba5605421c92bb834e90170", size = 2913413 },
|
281
298
|
]
|
282
299
|
|
300
|
+
[[package]]
|
301
|
+
name = "pygments"
|
302
|
+
version = "2.18.0"
|
303
|
+
source = { registry = "https://pypi.org/simple" }
|
304
|
+
sdist = { url = "https://files.pythonhosted.org/packages/8e/62/8336eff65bcbc8e4cb5d05b55faf041285951b6e80f33e2bff2024788f31/pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199", size = 4891905 }
|
305
|
+
wheels = [
|
306
|
+
{ url = "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", size = 1205513 },
|
307
|
+
]
|
308
|
+
|
283
309
|
[[package]]
|
284
310
|
name = "python-dotenv"
|
285
311
|
version = "1.0.1"
|
@@ -304,6 +330,19 @@ wheels = [
|
|
304
330
|
{ url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 },
|
305
331
|
]
|
306
332
|
|
333
|
+
[[package]]
|
334
|
+
name = "rich"
|
335
|
+
version = "13.9.4"
|
336
|
+
source = { registry = "https://pypi.org/simple" }
|
337
|
+
dependencies = [
|
338
|
+
{ name = "markdown-it-py" },
|
339
|
+
{ name = "pygments" },
|
340
|
+
]
|
341
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", size = 223149 }
|
342
|
+
wheels = [
|
343
|
+
{ url = "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", size = 242424 },
|
344
|
+
]
|
345
|
+
|
307
346
|
[[package]]
|
308
347
|
name = "typing-extensions"
|
309
348
|
version = "4.12.2"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|