Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions monitoring/deployment_manager/systems/configuration.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from implicitdict import ImplicitDict
from implicitdict import ImplicitDict, Optional

from monitoring.deployment_manager.systems.dss.configuration import DSS
from monitoring.deployment_manager.systems.test.configuration import Test
Expand All @@ -14,11 +14,11 @@ class KubernetesCluster(ImplicitDict):


class DeploymentSpec(ImplicitDict):
cluster: KubernetesCluster | None
cluster: Optional[KubernetesCluster]
"""Definition of Kubernetes cluster containing this deployment."""

test: Test | None
test: Optional[Test]
"""Test systems in this deployment."""

dss: DSS | None
dss: Optional[DSS]
"""DSS instance in this deployment."""
4 changes: 2 additions & 2 deletions monitoring/deployment_manager/systems/test/configuration.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from implicitdict import ImplicitDict
from implicitdict import ImplicitDict, Optional


class TestV1(ImplicitDict):
namespace: str = "test"


class Test(ImplicitDict):
v1: TestV1 | None
v1: Optional[TestV1]
13 changes: 9 additions & 4 deletions monitoring/mock_uss/database.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
import json

from implicitdict import ImplicitDict, StringBasedDateTime, StringBasedTimeDelta
from implicitdict import (
ImplicitDict,
Optional,
StringBasedDateTime,
StringBasedTimeDelta,
)

from monitoring.monitorlib.errors import stacktrace_string
from monitoring.monitorlib.multiprocessing import SynchronizedValue


class PeriodicTaskStatus(ImplicitDict):
last_execution_time: StringBasedDateTime | None = None
period: StringBasedTimeDelta | None = None
last_execution_time: Optional[StringBasedDateTime] = None
period: Optional[StringBasedTimeDelta] = None
executing: bool = False


Expand Down Expand Up @@ -43,7 +48,7 @@ class Database(ImplicitDict):
periodic_tasks: dict[str, PeriodicTaskStatus]
"""Tasks to perform periodically, by name"""

most_recent_periodic_check: StringBasedDateTime | None
most_recent_periodic_check: Optional[StringBasedDateTime]
"""Timestamp of most recent time periodic task loop iterated"""


Expand Down
4 changes: 2 additions & 2 deletions monitoring/mock_uss/flights/database.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import json
from datetime import timedelta

from implicitdict import ImplicitDict
from implicitdict import ImplicitDict, Optional
from uas_standards.astm.f3548.v21.api import OperationalIntent

from monitoring.mock_uss.user_interactions.notifications import UserNotification
Expand All @@ -19,7 +19,7 @@ class FlightRecord(ImplicitDict):

flight_info: FlightInfo
op_intent: OperationalIntent
mod_op_sharing_behavior: MockUssFlightBehavior | None = None
mod_op_sharing_behavior: Optional[MockUssFlightBehavior] = None
locked: bool = False


Expand Down
6 changes: 3 additions & 3 deletions monitoring/mock_uss/geoawareness/database.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import json

from implicitdict import ImplicitDict
from implicitdict import ImplicitDict, Optional
from uas_standards.eurocae_ed269 import ED269Schema
from uas_standards.interuss.automated_testing.geo_awareness.v1.api import (
CreateGeozoneSourceRequest,
Expand All @@ -17,8 +17,8 @@ class ExistingRecordException(ValueError):
class SourceRecord(ImplicitDict):
definition: CreateGeozoneSourceRequest
state: GeozoneSourceResponseResult
message: str | None
geozone_ed269: ED269Schema | None
message: Optional[str]
geozone_ed269: Optional[ED269Schema]


class Database(ImplicitDict):
Expand Down
6 changes: 3 additions & 3 deletions monitoring/mock_uss/riddp/behavior.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from implicitdict import ImplicitDict
from implicitdict import ImplicitDict, Optional

ServiceProviderID = str


class DisplayProviderBehavior(ImplicitDict):
always_omit_recent_paths: bool | None = False
do_not_display_flights_from: list[ServiceProviderID] | None = []
always_omit_recent_paths: Optional[bool] = False
do_not_display_flights_from: Optional[list[ServiceProviderID]] = []
10 changes: 5 additions & 5 deletions monitoring/mock_uss/ridsp/behavior.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from implicitdict import ImplicitDict
from implicitdict import ImplicitDict, Optional
from uas_standards.astm.f3411.v19.api import RIDFlight

from monitoring.monitorlib.delay import sleep
Expand All @@ -8,10 +8,10 @@


class ServiceProviderBehavior(ImplicitDict):
switch_latitude_and_longitude_when_reporting: bool | None = False
use_agl_instead_of_wgs84_for_altitude: bool | None = False
use_feet_instead_of_meters_for_altitude: bool | None = False
delay_flight_report_s: int | None = 0
switch_latitude_and_longitude_when_reporting: Optional[bool] = False
use_agl_instead_of_wgs84_for_altitude: Optional[bool] = False
use_feet_instead_of_meters_for_altitude: Optional[bool] = False
delay_flight_report_s: Optional[int] = 0


def adjust_reported_flight(
Expand Down
4 changes: 2 additions & 2 deletions monitoring/mock_uss/ridsp/database.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import json

from implicitdict import ImplicitDict
from implicitdict import ImplicitDict, Optional

from monitoring.monitorlib.multiprocessing import SynchronizedValue
from monitoring.monitorlib.rid_automated_testing import injection_api
Expand All @@ -14,7 +14,7 @@ class TestRecord(ImplicitDict):

version: str
flights: list[injection_api.TestFlight]
isa_version: str | None = None
isa_version: Optional[str] = None

def __init__(self, **kwargs):
kwargs["flights"] = [
Expand Down
8 changes: 4 additions & 4 deletions monitoring/mock_uss/tracer/log_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import sys
from abc import abstractmethod

from implicitdict import ImplicitDict, StringBasedDateTime
from implicitdict import ImplicitDict, Optional, StringBasedDateTime

from monitoring.monitorlib.fetch import RequestDescription, summarize
from monitoring.monitorlib.fetch import rid as rid_fetch
Expand Down Expand Up @@ -124,7 +124,7 @@ def prefix_code() -> str:
existing_subscription: rid_fetch.FetchedSubscription
"""Subscription, as read from the DSS just before deletion."""

deleted_subscription: rid_mutate.ChangedSubscription | None
deleted_subscription: Optional[rid_mutate.ChangedSubscription]
"""Subscription returned from DSS upon deletion."""


Expand Down Expand Up @@ -214,7 +214,7 @@ def prefix_code() -> str:
existing_subscription: scd_fetch.FetchedSubscription
"""Subscription, as read from the DSS just before deletion."""

deleted_subscription: scd_mutate.MutatedSubscription | None
deleted_subscription: Optional[scd_mutate.MutatedSubscription]
"""Subscription returned from DSS upon deletion."""


Expand Down Expand Up @@ -270,7 +270,7 @@ class ObservationAreaImportError(TracerLogEntry):
def prefix_code() -> str:
return "import_obs_areas_error"

rid_subscriptions: rid_fetch.FetchedSubscriptions | None
rid_subscriptions: Optional[rid_fetch.FetchedSubscriptions]
"""Result of attempting to fetch RID subscriptions"""


Expand Down
22 changes: 11 additions & 11 deletions monitoring/mock_uss/tracer/observation_areas.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from implicitdict import ImplicitDict
from implicitdict import ImplicitDict, Optional

from monitoring.monitorlib.geotemporal import Volume4D
from monitoring.monitorlib.infrastructure import AuthSpec
Expand Down Expand Up @@ -45,7 +45,7 @@ class F3548ObservationArea(ImplicitDict):
poll: bool
"""This area observes by periodically polling for information."""

subscription_id: str | None = None
subscription_id: Optional[str] = None
"""The F3548 subscription ID established to provide observation via notifications."""


Expand All @@ -58,10 +58,10 @@ class ObservationArea(ImplicitDict):
area: Volume4D
"""Spatial-temporal area being observed."""

f3411: F3411ObservationArea | None = None
f3411: Optional[F3411ObservationArea] = None
"""How F3411 information is being observed (or not observed, if not specified)."""

f3548: F3548ObservationArea | None = None
f3548: Optional[F3548ObservationArea] = None
"""How F3548 information is being observed (or not observed, if not specified)."""

@property
Expand All @@ -75,12 +75,12 @@ def polls(self) -> bool:
class F3411ObservationAreaRequest(ImplicitDict):
"""How to observe F3411 activity."""

auth_spec: AuthSpec | None = None
auth_spec: Optional[AuthSpec] = None
"""If specified, use this auth spec when performing observation activities.

If not specified or blank, use auth spec provided on the command line."""

dss_base_url: str | None = None
dss_base_url: Optional[str] = None
"""If specified, use the DSS at this base URL when performing relevant observation activities.

If not specified or blank, use DSS URL provided on the command line."""
Expand All @@ -98,12 +98,12 @@ class F3411ObservationAreaRequest(ImplicitDict):
class F3548ObservationAreaRequest(ImplicitDict):
"""How to observe F3548 activity."""

auth_spec: AuthSpec | None = None
auth_spec: Optional[AuthSpec] = None
"""If specified, use this auth spec when performing observation activities.

If not specified or blank, use auth spec provided on the command line."""

dss_base_url: str | None = None
dss_base_url: Optional[str] = None
"""If specified, use the DSS at this base URL when performing relevant observation activities.

If not specified or blank, use DSS URL provided on the command line."""
Expand All @@ -127,10 +127,10 @@ class ObservationAreaRequest(ImplicitDict):
area: Volume4D
"""Spatial-temporal area that should be observed."""

f3411: F3411ObservationAreaRequest | None = None
f3411: Optional[F3411ObservationAreaRequest] = None
"""How to observe F3411 (NetRID) activity."""

f3548: F3548ObservationAreaRequest | None = None
f3548: Optional[F3548ObservationAreaRequest] = None
"""How to observe F3548 (strategic coordination, conformance monitoring, and constraints) activity."""

@property
Expand Down Expand Up @@ -168,7 +168,7 @@ class ImportObservationAreasRequest(ImplicitDict):
area: Volume4D
"""Spatial-temporal area containing subscriptions to be imported."""

f3411: RIDVersion | None = None
f3411: Optional[RIDVersion] = None
"""If specified, search for subscriptions using this F3411 version."""

f3548: bool = False
Expand Down
8 changes: 4 additions & 4 deletions monitoring/mock_uss/tracer/tracer_poll.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import sys

import arrow
from implicitdict import ImplicitDict, StringBasedDateTime
from implicitdict import ImplicitDict, Optional, StringBasedDateTime

from monitoring.mock_uss.app import webapp
from monitoring.mock_uss.tracer import context, diff, tracerlog
Expand Down Expand Up @@ -55,9 +55,9 @@ class PollingStatus(ImplicitDict):

class PollingValues(ImplicitDict):
need_line_break: bool = False
last_isa_result: FetchedISAs | None = None
last_ops_result: FetchedEntities | None = None
last_constraints_result: FetchedEntities | None = None
last_isa_result: Optional[FetchedISAs] = None
last_ops_result: Optional[FetchedEntities] = None
last_constraints_result: Optional[FetchedEntities] = None


polling_values = SynchronizedValue[PollingValues](
Expand Down
32 changes: 16 additions & 16 deletions monitoring/monitorlib/clients/flight_planning/flight_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from enum import Enum

from implicitdict import ImplicitDict
from implicitdict import ImplicitDict, Optional
from uas_standards.ansi_cta_2063_a import SerialNumber
from uas_standards.astm.f3548.v21 import api as f3548v21
from uas_standards.en4709_02 import OperatorRegistrationNumber
Expand All @@ -21,7 +21,7 @@
class ASTMF354821OpIntentInformation(ImplicitDict):
"""Information provided about a flight plan that is necessary for ASTM F3548-21."""

priority: Priority | None
priority: Optional[Priority]


# ===== U-space =====
Expand Down Expand Up @@ -76,7 +76,7 @@ class FlightAuthorisationData(ImplicitDict):
identification_technologies: list[str]
"""Technology used to identify the UAS. Required by ANNEX IV of COMMISSION IMPLEMENTING REGULATION (EU) 2021/664, paragraph 6."""

uas_type_certificate: str | None
uas_type_certificate: Optional[str]
"""Provisional field. Not applicable as of September 2021. Required only if `uas_class` is set to `other` by ANNEX IV of COMMISSION IMPLEMENTING REGULATION (EU) 2021/664, paragraph 4."""

connectivity_methods: list[str]
Expand All @@ -95,7 +95,7 @@ class FlightAuthorisationData(ImplicitDict):
Required by ANNEX IV of COMMISSION IMPLEMENTING REGULATION (EU) 2021/664, paragraph 10.
"""

uas_id: str | None
uas_id: Optional[str]
"""When applicable, the registration number of the unmanned aircraft.
This is expressed using the nationality and registration mark of the unmanned aircraft in
line with ICAO Annex 7.
Expand Down Expand Up @@ -146,28 +146,28 @@ class RPAS26FlightDetailsFlightProfile(str, Enum):
class RPAS26FlightDetails(ImplicitDict):
"""Information about a flight necessary to plan successfully using the RPAS Platform Operating Rules version 2.6."""

operator_type: RPAS26FlightDetailsOperatorType | None
operator_type: Optional[RPAS26FlightDetailsOperatorType]
"""The type of operator."""

uas_serial_numbers: list[str] | None
uas_serial_numbers: Optional[list[str]]
"""The list of UAS/drone serial numbers that will be operated during the operation."""

uas_registration_numbers: list[str] | None
uas_registration_numbers: Optional[list[str]]
"""The list of UAS/drone registration numbers that will be operated during the operation."""

aircraft_type: RPAS26FlightDetailsAircraftType | None
aircraft_type: Optional[RPAS26FlightDetailsAircraftType]
"""Type of vehicle being used as per ASTM F3411-22a."""

flight_profile: RPAS26FlightDetailsFlightProfile | None
flight_profile: Optional[RPAS26FlightDetailsFlightProfile]
"""Type of flight profile."""

pilot_license_number: str | None
pilot_license_number: Optional[str]
"""License number for the pilot."""

pilot_phone_number: str | None
pilot_phone_number: Optional[str]
"""Contact phone number for the pilot."""

operator_number: str | None
operator_number: Optional[str]
"""Operator number."""


Expand Down Expand Up @@ -255,13 +255,13 @@ class FlightInfo(ImplicitDict):

basic_information: BasicFlightPlanInformation

astm_f3548_21: ASTMF354821OpIntentInformation | None
astm_f3548_21: Optional[ASTMF354821OpIntentInformation]

uspace_flight_authorisation: FlightAuthorisationData | None
uspace_flight_authorisation: Optional[FlightAuthorisationData]

rpas_operating_rules_2_6: RPAS26FlightDetails | None
rpas_operating_rules_2_6: Optional[RPAS26FlightDetails]

additional_information: dict | None
additional_information: Optional[dict]
"""Any information relevant to a particular jurisdiction or use case not described in the standard schema. The keys and values must be agreed upon between the test designers and USSs under test."""

@staticmethod
Expand Down
Loading
Loading