Skip to content

Commit aa57cd2

Browse files
committed
Update l9format requirement from =1.4.0 to =2.0.0
Replace serde Model/fields usage with dataclasses and l9format.l9format.Model base class, matching l9format 2.0.0 which dropped the serde dependency.
1 parent f2d8273 commit aa57cd2

4 files changed

Lines changed: 19 additions & 11 deletions

File tree

leakix/client.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1+
import dataclasses
12
import json
23
from enum import Enum
34
from importlib.metadata import version
45
from typing import Any
56

67
import requests
78
from l9format import l9format
8-
from serde import Model, fields
9+
from l9format.l9format import Model
910

1011
from leakix.domain import L9Subdomain
1112
from leakix.plugin import APIResult
@@ -23,9 +24,10 @@ class Scope(Enum):
2324
LEAK = "leak"
2425

2526

27+
@dataclasses.dataclass
2628
class HostResult(Model):
27-
Services: fields.Optional(fields.List(fields.Nested(l9format.L9Event)))
28-
Leaks: fields.Optional(fields.List(fields.Nested(l9format.L9Event)))
29+
Services: list[l9format.L9Event] | None = None
30+
Leaks: list[l9format.L9Event] | None = None
2931

3032

3133
DEFAULT_URL = "https://leakix.net"

leakix/domain.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1-
from serde import Model, fields
1+
import dataclasses
2+
from datetime import datetime
23

4+
from l9format.l9format import Model
35

6+
7+
@dataclasses.dataclass
48
class L9Subdomain(Model):
5-
subdomain: fields.Str()
6-
distinct_ips: fields.Int()
7-
last_seen: fields.DateTime()
9+
subdomain: str = ""
10+
distinct_ips: int = 0
11+
last_seen: datetime | None = None

leakix/plugin.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1+
import dataclasses
12
from enum import Enum
23

3-
from serde import Model, fields
4+
from l9format.l9format import Model
45

56

7+
@dataclasses.dataclass
68
class APIResult(Model):
7-
name: fields.Str()
8-
description: fields.Str()
9+
name: str = ""
10+
description: str = ""
911

1012

1113
class Plugin(Enum):

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ authors = [{ name = "Danny Willems", email = "danny@leakix.net" }]
66
requires-python = ">=3.13"
77
dependencies = [
88
"requests",
9-
"l9format==1.4.0",
9+
"l9format==2.0.0",
1010
"fire>=0.5,<0.8",
1111
]
1212

0 commit comments

Comments
 (0)