X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=code%2Fnetwork-generator%2Fmodel%2Fpython%2Fo_ran_object.py;h=792cc30e7b8d6885bf0f0d73ecf9f0c88b8a2c7c;hb=527f95ae29a40bfc8535d8b2177d9ca976c48b81;hp=fc112da759d8c732a5ffaebf305bbee9ba2041ce;hpb=c5e8832ff62deaddf927dbcf13237a2c2eabca5b;p=oam.git diff --git a/code/network-generator/model/python/o_ran_object.py b/code/network-generator/model/python/o_ran_object.py index fc112da..792cc30 100644 --- a/code/network-generator/model/python/o_ran_object.py +++ b/code/network-generator/model/python/o_ran_object.py @@ -17,133 +17,29 @@ """ An abstract Class for O-RAN Objects """ -from abc import ABC, abstractmethod -from typing import Dict - -import model.python.hexagon as Hexagon -from model.python.hexagon import Hex, Layout, Point -from model.python.o_ran_spiral_radius_profile import SpiralRadiusProfile +from abc import abstractmethod +from typing import Any from model.python.top import ITop, Top -from model.python.type_definitions import ( - AddressType, -) -from model.python.geo_location import GeoLocation # Define the "IORanObject" interface class IORanObject(ITop): - def __init__( - self, - address: AddressType = None, - geoLocation: GeoLocation = None, - url: str = None, - position: Hex = None, - layout: Layout = None, - spiralRadiusProfile: SpiralRadiusProfile = None, - parent = None, - **kwargs - ): + def __init__(self, **kwargs): super().__init__(**kwargs) - self.address = address - self.geoLocation = geoLocation - self.url = url - self.position = position - self.layout = layout - self.spiralRadiusProfile = spiralRadiusProfile, - self.parent = parent # Define an abstract O-RAN Object class class ORanObject(Top, IORanObject): def __init__(self, of: IORanObject = None, **kwargs): - super().__init__(**kwargs) - self.address = of["address"] if of and "address" in of else None - self.geoLocation = ( - of["geoLocation"] if of and "geoLocation" in of else GeoLocation() - ) - self.url = of["url"] if of and "url" in of else self.id - self.position = of["position"] if of and "position" in of else Hex(0,0,0) - self.layout = of["layout"] if of and "layout" in of else Layout(Hexagon.layout_flat, Point(1,1), Point(0,0)) - self.spiralRadiusProfile = of["spiralRadiusProfile"] if of and "spiralRadiusProfile" in of else SpiralRadiusProfile() - self.parent = of["parent"] if of and "parent" in of else None - - @property - def address(self): - return self._address - - @address.setter - def address(self, value): - self._address = value - - @property - def geoLocation(self): - return self._geographicalLocation - - @geoLocation.setter - def geoLocation(self, value): - self._geographicalLocation = value - - @property - def url(self): - return self._url - - @url.setter - def url(self, value): - self._url = value - - @property - def position(self): - return self._position - - @position.setter - def position(self, value): - self._position = value - - @property - def layout(self): - return self._layout + super().__init__(of, **kwargs) - @layout.setter - def layout(self, value): - self._layout = value - - @property - def spiralRadiusProfile(self): - return self._spiralRadiusProfile - - @spiralRadiusProfile.setter - def spiralRadiusProfile(self, value): - self._spiralRadiusProfile = value - - @property - def parent(self): - return self._parent - - @parent.setter - def parent(self, value): - self._parent = value - - def json(self): - result :Dict = super().json() - result['address'] = self.address - result['geoLocation'] = self.geoLocation - result['url'] = self.url - result['layout'] = self.layout - result['spiralRadiusProfile'] = self.spiralRadiusProfile - result['parent'] = self.parent + def json(self) -> dict[str, Any]: + result: dict[str, Any] = super().json() return result - def __str__(self): + def __str__(self) -> str: return str(self.json()) - - @abstractmethod - def toTopology(self): - pass - - @abstractmethod - def toKml(self): - pass @abstractmethod - def toSvg(self): + def toTopology(self) -> dict[str, Any]: pass