diff --git a/nmb2b.py b/_DUMP/nmb2b.py similarity index 100% rename from nmb2b.py rename to _DUMP/nmb2b.py diff --git a/data/sqlite.db b/data/sqlite.db index c64a7cf..651a21a 100644 Binary files a/data/sqlite.db and b/data/sqlite.db differ diff --git a/demo.py b/demo.py index 439f357..d8f8ee6 100644 --- a/demo.py +++ b/demo.py @@ -1,15 +1,23 @@ from manager import Manager +import json +import utils test_manager = Manager() -test_manager.show_available_services() -test_manager.show_operations_of_service(service_name='FlightManagementService') +#test_manager.show_available_services() +#test_manager.show_operations_of_service(service_name='FlightManagementService') -test = test_manager.queryFlightsByAirspace( - airspace="LFFFUZ", +requestedFlightFields = ['aircraftOperator'] +# TODO : renseigner plusieurs airspace ? +fpl_data = test_manager.queryFlightsByAirspace( + airspace="LFFFTH", dataset='OPERATIONAL', - includeProposalFlights=False, + includeProposalFlights=True, includeForecastFlights=True, trafficType='LOAD', - trafficWindow={'wef': "2019-07-11 06:30", 'unt': "2019-07-11 07:00"} + trafficWindow={'wef': "2019-07-11 12:00", 'unt': "2019-07-11 14:00"}, + requestedFlightFields=requestedFlightFields, + py_output=False ) -print(test) + +print(fpl_data) +#utils.write_content_to_file(filename="fpl_data.json", content=json.dumps(fpl_data)) \ No newline at end of file diff --git a/manager.py b/manager.py index ba21aa4..ca5c6bb 100644 --- a/manager.py +++ b/manager.py @@ -5,6 +5,8 @@ from zeep import Client, Settings from zeep.cache import SqliteCache from zeep.transports import Transport +from zeep.helpers import serialize_object +import json from shared_vars import (B2B_PROXY, DEFAULT_B2B_VERSION, DEFAULT_DATASET, WSDL_PROXY, get_dataset) @@ -30,6 +32,7 @@ def __init__( 'wsdl': self.wsdl, 'transport': self.transport } + self.tmp_data = None # ----------------------------------------------------------------------------------------- def set_available_services(self): @@ -65,10 +68,28 @@ def show_operations_of_service(self, service_name): # ----------------------------------------------------------------------------------------- def queryFlightsByAirspace( self, airspace, dataset, trafficType, - includeProposalFlights, includeForecastFlights, - trafficWindow, sendTime=utils.sendTime()): + includeProposalFlights, includeForecastFlights, + trafficWindow, requestedFlightFields=[], sendTime=utils.sendTime(), + py_output=True): client = Client(**self.conf, service_name='FlightManagementService') - return client.service.queryFlightsByAirspace( - airspace=airspace, sendTime=sendTime, dataset=self.dataset, trafficType=trafficType, + self.tmp_data = client.service.queryFlightsByAirspace( + airspace=airspace, dataset=self.dataset, trafficType=trafficType, includeProposalFlights=includeProposalFlights, includeForecastFlights=includeForecastFlights, - trafficWindow=trafficWindow) + trafficWindow=trafficWindow, requestedFlightFields=requestedFlightFields, sendTime=sendTime) + if py_output: + return serialize_object(self.tmp_data) + return self.tmp_data + + # def queryFlightsByAerodrome( + # self, aerodrome, dataset, trafficType, + # includeProposalFlights, includeForecastFlights, + # trafficWindow, sendTime=utils.sendTime(), + # py_output=True): + # client = Client(**self.conf, service_name='FlightManagementService') + # self.tmp_data = client.service.queryFlightsByAirspace( + # aerodrome=aerodrome, aerodromeRole=aerodromeRole, sendTime=sendTime, dataset=self.dataset, trafficType=trafficType, + # includeProposalFlights=includeProposalFlights, includeForecastFlights=includeForecastFlights, + # trafficWindow=trafficWindow) + # if py_output: + # return serialize_object(self.tmp_data) + # return self.tmp_data \ No newline at end of file diff --git a/nm_docs/dpi-impl-guide.pdf b/nm_docs/dpi-impl-guide.pdf new file mode 100644 index 0000000..d90d21f Binary files /dev/null and b/nm_docs/dpi-impl-guide.pdf differ diff --git a/shared_vars.py b/shared_vars.py index ae19d21..e8ccfed 100644 --- a/shared_vars.py +++ b/shared_vars.py @@ -23,4 +23,7 @@ DEFAULT_DATASET = "OPERATIONAL" def get_dataset(wanted_dataset): if wanted_dataset in ALLOWED_DATASET: return wanted_dataset - return "OPERATIONAL" \ No newline at end of file + return "OPERATIONAL" + +ROOT_PATH = os.path.dirname(os.path.abspath(__file__)) +DATA_PATH = os.path.join(ROOT_PATH, "data") \ No newline at end of file diff --git a/utils.py b/utils.py index 6e80f09..d4f6749 100644 --- a/utils.py +++ b/utils.py @@ -14,14 +14,16 @@ #from decolog import * #from dsnaproxies import dsnaproxies +from shared_vars import DATA_PATH # ------------------------------------------------------------------- # ------------------------------------------------------------------- # Nouveaux utilitaires par Maxence -def write_content_to_file(filename, content): - os.makedirs(os.path.dirname(filename), exist_ok=True) - with open(filename, 'w') as file_to_be_written: +def write_content_to_file(filename, content, rep=DATA_PATH): + os.makedirs(os.path.dirname(rep+filename), exist_ok=True) + full_path = os.path.join(rep, filename) + with open(full_path, 'w') as file_to_be_written: file_to_be_written.write(content) def get_datetime(nbr_days=0):