Skip to content

Commit 9496167

Browse files
committed
feat: make it better, faster, stronger
1 parent b3c1068 commit 9496167

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1086
-1122
lines changed
File renamed without changes.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
app_api_id = 23598539
2+
app_api_hash = "6d9d7305ffc6f148dab120d24541b127"
3+
bot_token = "7795216733:AAE6w9ijwsmMDEXLna7-14LkkQC_wFirnyw"

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ dev = [
3131
"dirty-equals==0.8.0",
3232
"httpx==0.27.2",
3333
"httpx-ws==0.7.2",
34+
"pytest-timeout==2.4.0",
3435
]
3536

3637
[build-system]
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
from dataclasses import dataclass
2+
3+
from tgdb.application.ports.operator_serialization import OperatorSerialization
4+
from tgdb.application.ports.queque import Queque
5+
from tgdb.entities.operator import Operator
6+
7+
8+
class InputOperatorError(Exception): ...
9+
10+
11+
@dataclass(frozen=True)
12+
class InputOperator[SerializedOperatorsT]:
13+
input_operators: Queque[Operator]
14+
operator_serialization: OperatorSerialization[SerializedOperatorsT]
15+
16+
async def __call__(
17+
self, serialized_operator: SerializedOperatorsT
18+
) -> None:
19+
"""
20+
:raises tgdb.application.input_operator.InputOperatorError:
21+
"""
22+
23+
input_operator = await self.operator_serialization.deserialized(
24+
serialized_operator
25+
)
26+
27+
if input_operator is None:
28+
raise InputOperatorError
29+
30+
await self.input_operators.push(input_operator)

src/tgdb/application/input_operators.py

Lines changed: 0 additions & 37 deletions
This file was deleted.

src/tgdb/application/output_commits.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from dataclasses import dataclass
33

44
from tgdb.application.ports.commit_serialization import CommitSerialization
5-
from tgdb.application.ports.sync_queque import SyncQueque
5+
from tgdb.application.ports.queque import Queque
66
from tgdb.entities.transaction import TransactionCommit
77

88

@@ -11,7 +11,7 @@ class InvalidOperatorError(Exception): ...
1111

1212
@dataclass(frozen=True)
1313
class OutputCommits[SerializedCommitT]:
14-
output_commits: SyncQueque[TransactionCommit]
14+
output_commits: Queque[TransactionCommit]
1515
commit_serialization: CommitSerialization[SerializedCommitT]
1616

1717
async def __call__(self) -> AsyncIterable[SerializedCommitT]:

src/tgdb/application/output_commits_to_heap.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from dataclasses import dataclass
22

33
from tgdb.application.ports.heap import Heap
4-
from tgdb.application.ports.sync_queque import SyncQueque
4+
from tgdb.application.ports.queque import Queque
55
from tgdb.entities.transaction import (
66
TransactionCommit,
77
TransactionOkCommit,
@@ -11,7 +11,7 @@
1111
@dataclass(frozen=True)
1212
class OutputCommitsToHeap:
1313
heap: Heap
14-
output_commits: SyncQueque[TransactionCommit]
14+
output_commits: Queque[TransactionCommit]
1515

1616
async def __call__(self) -> None:
1717
async for commit in self.output_commits:
Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
from dataclasses import dataclass
22

33
from tgdb.application.ports.log import Log
4-
from tgdb.application.ports.logic_clock import LogicClock
5-
from tgdb.application.ports.sync_queque import SyncQueque
6-
from tgdb.entities.operator import Operator, applied_operator
4+
from tgdb.application.ports.queque import Queque
5+
from tgdb.entities.operator import CommitOperator, StartOperator
76
from tgdb.entities.transaction import (
87
TransactionCommit,
98
TransactionOkCommit,
@@ -12,25 +11,17 @@
1211

1312
@dataclass(frozen=True)
1413
class OutputCommitsToLog:
15-
clock: LogicClock
1614
log: Log
17-
output_commits: SyncQueque[TransactionCommit]
15+
output_commits: Queque[TransactionCommit]
1816

1917
async def __call__(self) -> None:
2018
async for commit in self.output_commits:
2119
if not isinstance(commit, TransactionOkCommit):
2220
continue
2321

24-
operators = (
25-
Operator(effect, commit.transaction_id)
26-
for effect in commit.effect
22+
start_operator = StartOperator(commit.transaction_id)
23+
commit_operator = CommitOperator(
24+
commit.transaction_id, commit.effect
2725
)
2826

29-
chronology = await self.clock.chronology(len(commit.effect))
30-
31-
applied_operators = (
32-
applied_operator(operator, time)
33-
for operator, time in zip(operators, chronology, strict=True)
34-
)
35-
36-
await self.log.push(*applied_operators)
27+
await self.log.push_many((start_operator, commit_operator))

src/tgdb/application/ports/async_queque.py

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)