devalerts 0.2.2__tar.gz → 0.2.3__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.
- {devalerts-0.2.2 → devalerts-0.2.3}/PKG-INFO +3 -1
- {devalerts-0.2.2 → devalerts-0.2.3}/README.md +2 -0
- {devalerts-0.2.2 → devalerts-0.2.3}/pyproject.toml +1 -1
- {devalerts-0.2.2 → devalerts-0.2.3}/src/devalerts/cli.py +5 -2
- {devalerts-0.2.2 → devalerts-0.2.3}/LICENSE +0 -0
- {devalerts-0.2.2 → devalerts-0.2.3}/src/devalerts/__init__.py +0 -0
- {devalerts-0.2.2 → devalerts-0.2.3}/src/devalerts/_alert.py +0 -0
- {devalerts-0.2.2 → devalerts-0.2.3}/src/devalerts/_celery.py +0 -0
- {devalerts-0.2.2 → devalerts-0.2.3}/src/devalerts/_store.py +0 -0
- {devalerts-0.2.2 → devalerts-0.2.3}/src/devalerts/_telegram.py +0 -0
- {devalerts-0.2.2 → devalerts-0.2.3}/src/devalerts/py.typed +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devalerts
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
4
4
|
Summary: Send unhandled Python exceptions straight to a Telegram chat. No backend, no account, no database — just your own bot token.
|
|
5
5
|
Keywords: telegram,error-tracking,exception-monitoring,alerts,logging,monitoring,asgi
|
|
6
6
|
Author: sslinNn
|
|
@@ -51,6 +51,8 @@ That's the whole setup. Two minutes with [@BotFather](https://t.me/BotFather)
|
|
|
51
51
|
and every unhandled crash — including ones raised in threads — lands in your
|
|
52
52
|
chat instead of a log file nobody's watching.
|
|
53
53
|
|
|
54
|
+

|
|
55
|
+
|
|
54
56
|
## Why devalerts
|
|
55
57
|
|
|
56
58
|
- **Zero infrastructure.** No SaaS signup, no ingestion server, no API key
|
|
@@ -24,6 +24,8 @@ That's the whole setup. Two minutes with [@BotFather](https://t.me/BotFather)
|
|
|
24
24
|
and every unhandled crash — including ones raised in threads — lands in your
|
|
25
25
|
chat instead of a log file nobody's watching.
|
|
26
26
|
|
|
27
|
+

|
|
28
|
+
|
|
27
29
|
## Why devalerts
|
|
28
30
|
|
|
29
31
|
- **Zero infrastructure.** No SaaS signup, no ingestion server, no API key
|
|
@@ -27,7 +27,7 @@ _LOCATION_WIDTH = 34
|
|
|
27
27
|
def _supports_unicode() -> bool:
|
|
28
28
|
encoding = getattr(sys.stdout, "encoding", None) or ""
|
|
29
29
|
try:
|
|
30
|
-
"
|
|
30
|
+
"─●…×".encode(encoding)
|
|
31
31
|
return True
|
|
32
32
|
except (LookupError, UnicodeEncodeError, TypeError):
|
|
33
33
|
return False
|
|
@@ -153,6 +153,7 @@ def _dashboard(as_json: bool = False) -> int:
|
|
|
153
153
|
sep_char = "─" if unicode_ok else "-"
|
|
154
154
|
dot_char = "●" if unicode_ok else "*"
|
|
155
155
|
ellipsis = "…" if unicode_ok else "..."
|
|
156
|
+
times_char = "×" if unicode_ok else "x"
|
|
156
157
|
|
|
157
158
|
style = _Style(_color_enabled())
|
|
158
159
|
type_width = max(len("TYPE"), *(len(r[1]) for r in rows))
|
|
@@ -178,7 +179,9 @@ def _dashboard(as_json: bool = False) -> int:
|
|
|
178
179
|
muted,
|
|
179
180
|
backoff_multiplier,
|
|
180
181
|
) in rows:
|
|
181
|
-
backoff_suffix =
|
|
182
|
+
backoff_suffix = (
|
|
183
|
+
f" {times_char}{backoff_multiplier}" if backoff_multiplier > 1 else ""
|
|
184
|
+
)
|
|
182
185
|
if muted:
|
|
183
186
|
muted_count += 1
|
|
184
187
|
status = style.dim(f"{dot_char} muted")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|