lots of typing fixes
This commit is contained in:
parent
51f580a304
commit
3665c34961
43 changed files with 260 additions and 178 deletions
|
@ -4,7 +4,7 @@ from typing import Union, List, Optional, Any
|
|||
from app.extensions import db
|
||||
|
||||
|
||||
class AbstractConfiguration(db.Model):
|
||||
class AbstractConfiguration(db.Model): # type: ignore
|
||||
__abstract__ = True
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
|
@ -13,23 +13,23 @@ class AbstractConfiguration(db.Model):
|
|||
updated = db.Column(db.DateTime(), default=datetime.utcnow, nullable=False)
|
||||
destroyed = db.Column(db.DateTime(), nullable=True)
|
||||
|
||||
def destroy(self):
|
||||
def destroy(self) -> None:
|
||||
self.destroyed = datetime.utcnow()
|
||||
self.updated = datetime.utcnow()
|
||||
|
||||
@classmethod
|
||||
def csv_header(cls):
|
||||
def csv_header(cls) -> List[str]:
|
||||
return [
|
||||
"id", "description", "added", "updated", "destroyed"
|
||||
]
|
||||
|
||||
def csv_row(self):
|
||||
def csv_row(self) -> List[Any]:
|
||||
return [
|
||||
getattr(self, x) for x in self.csv_header()
|
||||
]
|
||||
|
||||
|
||||
class AbstractResource(db.Model):
|
||||
class AbstractResource(db.Model): # type: ignore
|
||||
__abstract__ = True
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
|
|
|
@ -7,7 +7,7 @@ from app.models import AbstractConfiguration
|
|||
from app.extensions import db
|
||||
|
||||
|
||||
class Activity(db.Model):
|
||||
class Activity(db.Model): # type: ignore
|
||||
id = db.Column(db.Integer(), primary_key=True)
|
||||
group_id = db.Column(db.Integer(), nullable=True)
|
||||
activity_type = db.Column(db.String(20), nullable=False)
|
||||
|
@ -49,7 +49,7 @@ class Webhook(AbstractConfiguration):
|
|||
format = db.Column(db.String(20))
|
||||
url = db.Column(db.String(255))
|
||||
|
||||
def send(self, text: str):
|
||||
def send(self, text: str) -> None:
|
||||
if self.format == "telegram":
|
||||
data = {"text": text}
|
||||
else:
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import enum
|
||||
from datetime import datetime
|
||||
from typing import List, Any
|
||||
|
||||
from app import db
|
||||
|
||||
|
@ -11,7 +12,7 @@ class AlarmState(enum.Enum):
|
|||
CRITICAL = 3
|
||||
|
||||
|
||||
class Alarm(db.Model):
|
||||
class Alarm(db.Model): # type: ignore
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
target = db.Column(db.String(60), nullable=False)
|
||||
group_id = db.Column(db.Integer, db.ForeignKey("group.id"))
|
||||
|
@ -30,18 +31,18 @@ class Alarm(db.Model):
|
|||
bridge = db.relationship("Bridge", back_populates="alarms")
|
||||
|
||||
@classmethod
|
||||
def csv_header(cls):
|
||||
def csv_header(cls) -> List[str]:
|
||||
return [
|
||||
"id", "target", "group_id", "origin_id", "proxy_id", "bridge_id", "alarm_type",
|
||||
"alarm_state", "state_changed", "last_updated", "text"
|
||||
]
|
||||
|
||||
def csv_row(self):
|
||||
def csv_row(self) -> List[Any]:
|
||||
return [
|
||||
getattr(self, x) for x in self.csv_header()
|
||||
]
|
||||
|
||||
def update_state(self, state: AlarmState, text: str):
|
||||
def update_state(self, state: AlarmState, text: str) -> None:
|
||||
if self.alarm_state != state or self.state_changed is None:
|
||||
self.state_changed = datetime.utcnow()
|
||||
self.alarm_state = state
|
||||
|
|
|
@ -21,7 +21,7 @@ class Automation(AbstractConfiguration):
|
|||
|
||||
logs = db.relationship("AutomationLogs", back_populates="automation")
|
||||
|
||||
def kick(self):
|
||||
def kick(self) -> None:
|
||||
self.enabled = True
|
||||
self.next_run = datetime.datetime.utcnow()
|
||||
self.updated = datetime.datetime.utcnow()
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from datetime import datetime
|
||||
from typing import List
|
||||
|
||||
from app import db
|
||||
from app.models import AbstractConfiguration
|
||||
|
@ -15,7 +16,7 @@ class Group(AbstractConfiguration):
|
|||
alarms = db.relationship("Alarm", back_populates="group")
|
||||
|
||||
@classmethod
|
||||
def csv_header(cls):
|
||||
def csv_header(cls) -> List[str]:
|
||||
return super().csv_header() + [
|
||||
"group_name", "eotk"
|
||||
]
|
||||
|
@ -43,21 +44,21 @@ class MirrorList(AbstractConfiguration):
|
|||
"bridgelines": "Tor Bridge Lines"
|
||||
}
|
||||
|
||||
def destroy(self):
|
||||
def destroy(self) -> None:
|
||||
self.destroyed = datetime.utcnow()
|
||||
self.updated = datetime.utcnow()
|
||||
db.session.commit()
|
||||
|
||||
def url(self):
|
||||
def url(self) -> str:
|
||||
if self.provider == "gitlab":
|
||||
return f"https://gitlab.com/{self.container}/-/raw/{self.branch}/{self.filename}"
|
||||
if self.provider == "github":
|
||||
return f"https://raw.githubusercontent.com/{self.container}/{self.branch}/{self.filename}"
|
||||
if self.provider == "s3":
|
||||
return f"s3://{self.container}/{self.filename}"
|
||||
return "Unknown provider"
|
||||
|
||||
@classmethod
|
||||
def csv_header(cls):
|
||||
def csv_header(cls) -> List[str]:
|
||||
return super().csv_header() + [
|
||||
"provider", "format", "container", "branch", "filename"
|
||||
]
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from datetime import datetime
|
||||
from typing import List
|
||||
|
||||
from app import db
|
||||
from app.models import AbstractConfiguration, AbstractResource
|
||||
|
@ -14,7 +15,7 @@ class BridgeConf(AbstractConfiguration):
|
|||
group = db.relationship("Group", back_populates="bridgeconfs")
|
||||
bridges = db.relationship("Bridge", back_populates="conf")
|
||||
|
||||
def destroy(self):
|
||||
def destroy(self) -> None:
|
||||
self.destroyed = datetime.utcnow()
|
||||
self.updated = datetime.utcnow()
|
||||
for bridge in self.bridges:
|
||||
|
@ -23,7 +24,7 @@ class BridgeConf(AbstractConfiguration):
|
|||
bridge.updated = datetime.utcnow()
|
||||
|
||||
@classmethod
|
||||
def csv_header(cls):
|
||||
def csv_header(cls) -> List[str]:
|
||||
return super().csv_header() + [
|
||||
"group_id", "provider", "method", "description", "number"
|
||||
]
|
||||
|
@ -41,7 +42,7 @@ class Bridge(AbstractResource):
|
|||
alarms = db.relationship("Alarm", back_populates="bridge")
|
||||
|
||||
@classmethod
|
||||
def csv_header(cls):
|
||||
def csv_header(cls) -> List[str]:
|
||||
return super().csv_header() + [
|
||||
"conf_id", "terraform_updated", "nickname", "fingerprint", "hashed_fingerprint", "bridgeline"
|
||||
]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
from typing import Optional
|
||||
from typing import Optional, List
|
||||
|
||||
from tldextract import extract
|
||||
|
||||
|
@ -18,12 +18,12 @@ class Origin(AbstractConfiguration):
|
|||
alarms = db.relationship("Alarm", back_populates="origin")
|
||||
|
||||
@classmethod
|
||||
def csv_header(cls):
|
||||
def csv_header(cls) -> List[str]:
|
||||
return super().csv_header() + [
|
||||
"group_id", "domain_name"
|
||||
]
|
||||
|
||||
def destroy(self):
|
||||
def destroy(self) -> None:
|
||||
super().destroy()
|
||||
for proxy in self.proxies:
|
||||
proxy.destroy()
|
||||
|
@ -33,7 +33,8 @@ class Origin(AbstractConfiguration):
|
|||
onion = Onion.query.filter(Onion.domain_name == tld).first()
|
||||
if not onion:
|
||||
return None
|
||||
return self.domain_name.replace(tld, f"{onion.onion_name}")
|
||||
domain_name: str = self.domain_name
|
||||
return domain_name.replace(tld, f"{onion.onion_name}")
|
||||
|
||||
|
||||
class Proxy(AbstractResource):
|
||||
|
@ -48,7 +49,7 @@ class Proxy(AbstractResource):
|
|||
alarms = db.relationship("Alarm", back_populates="proxy")
|
||||
|
||||
@classmethod
|
||||
def csv_header(cls):
|
||||
def csv_header(cls) -> List[str]:
|
||||
return super().csv_header() + [
|
||||
"origin_id", "provider", "psg", "slug", "terraform_updated", "url"
|
||||
]
|
||||
|
@ -61,7 +62,7 @@ class Mirror(AbstractResource):
|
|||
origin = db.relationship("Origin", back_populates="mirrors")
|
||||
|
||||
@classmethod
|
||||
def csv_header(cls):
|
||||
def csv_header(cls) -> List[str]:
|
||||
return super().csv_header() + [
|
||||
"origin_id", "url"
|
||||
]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue