python-twitchchat 1.0.1__tar.gz → 1.1.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.
- {python_twitchchat-1.0.1 → python_twitchchat-1.1.0}/PKG-INFO +6 -5
- {python_twitchchat-1.0.1 → python_twitchchat-1.1.0}/README.md +3 -3
- {python_twitchchat-1.0.1 → python_twitchchat-1.1.0}/pyproject.toml +4 -3
- {python_twitchchat-1.0.1 → python_twitchchat-1.1.0}/src/twitchchat/client.py +4 -2
- {python_twitchchat-1.0.1 → python_twitchchat-1.1.0}/src/twitchchat/events.py +3 -1
- {python_twitchchat-1.0.1 → python_twitchchat-1.1.0}/tests/test_client.py +4 -1
- {python_twitchchat-1.0.1 → python_twitchchat-1.1.0}/.gitignore +0 -0
- {python_twitchchat-1.0.1 → python_twitchchat-1.1.0}/LICENSE +0 -0
- {python_twitchchat-1.0.1 → python_twitchchat-1.1.0}/examples/watch_chat.py +0 -0
- {python_twitchchat-1.0.1 → python_twitchchat-1.1.0}/src/twitchchat/__init__.py +0 -0
- {python_twitchchat-1.0.1 → python_twitchchat-1.1.0}/src/twitchchat/irc.py +0 -0
- {python_twitchchat-1.0.1 → python_twitchchat-1.1.0}/src/twitchchat/py.typed +0 -0
- {python_twitchchat-1.0.1 → python_twitchchat-1.1.0}/tests/test_events.py +0 -0
- {python_twitchchat-1.0.1 → python_twitchchat-1.1.0}/tests/test_irc.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: python-twitchchat
|
|
3
|
-
Version: 1.0
|
|
3
|
+
Version: 1.1.0
|
|
4
4
|
Summary: Asyncio client for Twitch chat (IRC): typed events, callbacks and async iteration.
|
|
5
5
|
Project-URL: Homepage, https://github.com/shughes-uk/python-twitchchat
|
|
6
6
|
Author: shughes-uk
|
|
@@ -12,10 +12,11 @@ Classifier: Framework :: AsyncIO
|
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
13
13
|
Classifier: Programming Language :: Python :: 3
|
|
14
14
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
15
16
|
Classifier: Programming Language :: Python :: 3.15
|
|
16
17
|
Classifier: Topic :: Communications :: Chat :: Internet Relay Chat
|
|
17
18
|
Classifier: Typing :: Typed
|
|
18
|
-
Requires-Python: >=3.
|
|
19
|
+
Requires-Python: >=3.14
|
|
19
20
|
Description-Content-Type: text/markdown
|
|
20
21
|
|
|
21
22
|
# python-twitchchat
|
|
@@ -25,7 +26,7 @@ It has no runtime dependencies and gives you typed events, an async iterator,
|
|
|
25
26
|
callback registration, rate-limited sending, automatic PING/PONG and automatic
|
|
26
27
|
reconnects.
|
|
27
28
|
|
|
28
|
-
- **Requirements:** Python 3.
|
|
29
|
+
- **Requirements:** Python 3.14 or newer, standard library only.
|
|
29
30
|
- **Install:** `pip install python-twitchchat` or `uv add python-twitchchat`. The import name is `twitchchat`.
|
|
30
31
|
- Connects to `irc.chat.twitch.tv:6697` over TLS.
|
|
31
32
|
|
|
@@ -170,8 +171,8 @@ uv run examples/watch_chat.py --seconds 60 somebigchannel anotherone
|
|
|
170
171
|
|
|
171
172
|
## Development
|
|
172
173
|
|
|
173
|
-
The project uses [uv](https://docs.astral.sh/uv/).
|
|
174
|
-
|
|
174
|
+
The project uses [uv](https://docs.astral.sh/uv/). It supports Python 3.14 and 3.15;
|
|
175
|
+
`.python-version` pins 3.15 for development, which uv downloads automatically.
|
|
175
176
|
|
|
176
177
|
```sh
|
|
177
178
|
uv sync # create .venv with dev tools (ruff, ty, pytest, pytest-asyncio)
|
|
@@ -5,7 +5,7 @@ It has no runtime dependencies and gives you typed events, an async iterator,
|
|
|
5
5
|
callback registration, rate-limited sending, automatic PING/PONG and automatic
|
|
6
6
|
reconnects.
|
|
7
7
|
|
|
8
|
-
- **Requirements:** Python 3.
|
|
8
|
+
- **Requirements:** Python 3.14 or newer, standard library only.
|
|
9
9
|
- **Install:** `pip install python-twitchchat` or `uv add python-twitchchat`. The import name is `twitchchat`.
|
|
10
10
|
- Connects to `irc.chat.twitch.tv:6697` over TLS.
|
|
11
11
|
|
|
@@ -150,8 +150,8 @@ uv run examples/watch_chat.py --seconds 60 somebigchannel anotherone
|
|
|
150
150
|
|
|
151
151
|
## Development
|
|
152
152
|
|
|
153
|
-
The project uses [uv](https://docs.astral.sh/uv/).
|
|
154
|
-
|
|
153
|
+
The project uses [uv](https://docs.astral.sh/uv/). It supports Python 3.14 and 3.15;
|
|
154
|
+
`.python-version` pins 3.15 for development, which uv downloads automatically.
|
|
155
155
|
|
|
156
156
|
```sh
|
|
157
157
|
uv sync # create .venv with dev tools (ruff, ty, pytest, pytest-asyncio)
|
|
@@ -4,7 +4,7 @@ dynamic = ["version"]
|
|
|
4
4
|
description = "Asyncio client for Twitch chat (IRC): typed events, callbacks and async iteration."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [{ name = "shughes-uk" }]
|
|
7
|
-
requires-python = ">=3.
|
|
7
|
+
requires-python = ">=3.14"
|
|
8
8
|
license = "MIT"
|
|
9
9
|
license-files = ["LICENSE"]
|
|
10
10
|
dependencies = []
|
|
@@ -15,6 +15,7 @@ classifiers = [
|
|
|
15
15
|
"Intended Audience :: Developers",
|
|
16
16
|
"Programming Language :: Python :: 3",
|
|
17
17
|
"Programming Language :: Python :: 3 :: Only",
|
|
18
|
+
"Programming Language :: Python :: 3.14",
|
|
18
19
|
"Programming Language :: Python :: 3.15",
|
|
19
20
|
"Topic :: Communications :: Chat :: Internet Relay Chat",
|
|
20
21
|
"Typing :: Typed",
|
|
@@ -56,7 +57,7 @@ filterwarnings = ["error"]
|
|
|
56
57
|
|
|
57
58
|
[tool.ruff]
|
|
58
59
|
line-length = 100
|
|
59
|
-
target-version = "
|
|
60
|
+
target-version = "py314"
|
|
60
61
|
src = ["src", "tests", "examples"]
|
|
61
62
|
|
|
62
63
|
[tool.ruff.lint]
|
|
@@ -82,7 +83,7 @@ convention = "google"
|
|
|
82
83
|
docstring-code-format = true
|
|
83
84
|
|
|
84
85
|
[tool.ty.environment]
|
|
85
|
-
python-version = "3.
|
|
86
|
+
python-version = "3.14"
|
|
86
87
|
|
|
87
88
|
[tool.ty.src]
|
|
88
89
|
include = ["src", "tests", "examples"]
|
|
@@ -8,12 +8,14 @@ import secrets
|
|
|
8
8
|
import weakref
|
|
9
9
|
from collections import deque
|
|
10
10
|
from collections.abc import AsyncIterator, Awaitable, Callable, Iterable
|
|
11
|
-
from typing import Protocol, Self, overload
|
|
12
|
-
lazy import ssl
|
|
11
|
+
from typing import TYPE_CHECKING, Protocol, Self, overload
|
|
13
12
|
|
|
14
13
|
from .events import ChatMessage, Connected, Event, Notice, Reconnect, event_from_irc
|
|
15
14
|
from .irc import format_line, parse_line
|
|
16
15
|
|
|
16
|
+
if TYPE_CHECKING:
|
|
17
|
+
import ssl
|
|
18
|
+
|
|
17
19
|
__all__ = [
|
|
18
20
|
"DEFAULT_HOST",
|
|
19
21
|
"DEFAULT_PORT",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import asyncio
|
|
4
4
|
import gc
|
|
5
5
|
import logging
|
|
6
|
-
|
|
6
|
+
from typing import TYPE_CHECKING
|
|
7
7
|
|
|
8
8
|
import pytest
|
|
9
9
|
|
|
@@ -20,6 +20,9 @@ from twitchchat import (
|
|
|
20
20
|
UserNotice,
|
|
21
21
|
)
|
|
22
22
|
|
|
23
|
+
if TYPE_CHECKING:
|
|
24
|
+
from collections.abc import AsyncIterator
|
|
25
|
+
|
|
23
26
|
PRIVMSG = (
|
|
24
27
|
"@badges=subscriber/1;display-name=Foo;id=m1;tmi-sent-ts=1700000000000"
|
|
25
28
|
" :foo!foo@foo.tmi.twitch.tv PRIVMSG #{chan} :{text}"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|