Skip to content

Commit f5f9b89

Browse files
committed
chore: switched model to dataclasses
1 parent 3772711 commit f5f9b89

File tree

1 file changed

+12
-34
lines changed

1 file changed

+12
-34
lines changed

superstac/models.py

Lines changed: 12 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,23 @@
1-
"""SuperSTAC Models."""
1+
from dataclasses import dataclass, field, asdict
2+
from typing import Optional, List
23

3-
from __future__ import annotations
44

5-
from typing import Optional
6-
from urllib.parse import urlparse
7-
8-
import attr
9-
10-
from superstac.enums import AuthType
11-
12-
13-
@attr.s(auto_attribs=True, kw_only=True)
5+
@dataclass
146
class AuthInfo:
15-
type: AuthType
16-
token: Optional[str] | None = None
7+
type: str
8+
token: Optional[str] = None
179
username: Optional[str] = None
18-
password: Optional[str] | None = None
19-
header_key: Optional[str] | None = None
10+
password: Optional[str] = None
11+
header_key: Optional[str] = None
2012

2113

22-
@attr.s(auto_attribs=True, kw_only=True)
14+
@dataclass
2315
class CatalogEntry:
24-
"""_summary_.
25-
26-
Raises:
27-
ValueError: _description_
28-
29-
"""
30-
3116
name: str
32-
url: str = attr.ib(validator=attr.validators.instance_of(str))
17+
url: str
3318
auth: Optional[AuthInfo] = None
3419
is_available: bool = False
3520
latency_ms: Optional[float] = None
36-
conforms_to: Optional[list[str]] = None
37-
collections: Optional[list[str]] = None
38-
extensions: Optional[list[str]] = None
39-
40-
@url.validator
41-
def _validate_url(self, _, value) -> None:
42-
result = urlparse(value)
43-
if not result.scheme.startswith("http"):
44-
msg = "Invalid URL: must start with http or https"
45-
raise ValueError(msg)
21+
conforms_to: Optional[List[str]] = field(default_factory=list)
22+
collections: Optional[List[str]] = field(default_factory=list)
23+
extensions: Optional[List[str]] = field(default_factory=list)

0 commit comments

Comments
 (0)