updates
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
from typing import Dict, Optional
|
||||
|
||||
from pydantic.dataclasses import dataclass
|
||||
from typing_extensions import Self
|
||||
|
||||
from ..report.schemas.v3_0 import main as v3_0
|
||||
from .base import SafetyBaseModel
|
||||
|
||||
|
||||
@dataclass
|
||||
class TelemetryModel(SafetyBaseModel):
|
||||
"""
|
||||
Telemetry object generated per Safety report; this model holds data related to the
|
||||
client application running Safety CLI.
|
||||
"""
|
||||
|
||||
safety_options: Dict[str, Dict[str, int]]
|
||||
safety_version: str
|
||||
safety_source: str
|
||||
os_type: Optional[str] = None
|
||||
os_release: Optional[str] = None
|
||||
os_description: Optional[str] = None
|
||||
python_version: Optional[str] = None
|
||||
safety_command: Optional[str] = None
|
||||
|
||||
def as_v30(self) -> v3_0.Telemetry:
|
||||
return v3_0.Telemetry(
|
||||
os_type=self.os_type,
|
||||
os_release=self.os_release,
|
||||
os_description=self.os_description,
|
||||
python_version=self.python_version,
|
||||
safety_command=self.safety_command,
|
||||
safety_options=self.safety_options,
|
||||
safety_version=self.safety_version,
|
||||
safety_source=self.safety_source,
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def from_v30(cls, obj: v3_0.SchemaModelV30) -> 'TelemetryModel':
|
||||
|
||||
if not isinstance(obj, v3_0.Telemetry):
|
||||
raise TypeError('Expected instance of v3_0.Telemetry')
|
||||
|
||||
return TelemetryModel(
|
||||
os_type=obj.os_type,
|
||||
os_release=obj.os_release,
|
||||
os_description=obj.os_description,
|
||||
python_version=obj.python_version,
|
||||
safety_command=obj.safety_command,
|
||||
safety_options=obj.safety_options,
|
||||
safety_version=obj.safety_version,
|
||||
safety_source=obj.safety_source,
|
||||
)
|
||||
Reference in New Issue
Block a user