diff --git a/demo.py b/demo.py index 109f6f8..4729a28 100644 --- a/demo.py +++ b/demo.py @@ -1,5 +1,6 @@ #-*- coding: utf-8 -*- from manager import Manager +import datetime test_manager = Manager() # avec proxy test_manager = Manager(how_to_auth='cert') # avec cert @@ -11,10 +12,15 @@ ] } +# startTime et endTime peuvent être des objets datetime.datetime ou des str au format AAAA-MM-JJ HH:MM +# attention : startTime et endTime doivent être exprimées en heures UTC +startTime=datetime.datetime(year=2019, month=10, day=21, hour=14, minute=30, tzinfo=datetime.timezone.utc) +endTime= datetime.datetime(year=2019, month=10, day=21, hour=15, minute=30, tzinfo=datetime.timezone.utc) + # démo queryFlightsByAirspace flight_list = test_manager.queryFlightsByAirspace( airspace="LFFFTH", - startTime="2019-10-18 17:00", endTime="2019-10-18 18:30", + startTime=startTime, endTime=endTime, other_params=other_params) print(flight_list.data) @@ -22,13 +28,13 @@ flight_list = test_manager.queryFlightsByAerodrome( aerodrome="LFPG", aerodromeRole="DEPARTURE", - startTime="2019-10-18 17:00", endTime="2019-10-18 18:30", + startTime=startTime, endTime=endTime, other_params=other_params) print(flight_list.data) # démo queryFlightsByTrafficVolume flight_list = test_manager.queryFlightsByTrafficVolume( trafficVolume='LFFTN', - startTime="2019-10-18 17:00", endTime="2019-10-18 18:30", + startTime=startTime, endTime=endTime, other_params=other_params) print(flight_list.data) \ No newline at end of file diff --git a/manager.py b/manager.py index cad620c..ca97469 100644 --- a/manager.py +++ b/manager.py @@ -114,6 +114,12 @@ def update_params_for_queries(self, new_params): if param in self.params_for_queries: self.params_for_queries[param] = new_params[param] + def set_traffic_window(self, startTime, endTime): + return { + 'wef': utils.format_datetime_for_nm(startTime), + 'unt': utils.format_datetime_for_nm(endTime) + } + # ----------------------------------------------------------------------------------------- def queryFlightsByAirspace(self, airspace, startTime, endTime, other_params={}): """ Liste des vols par airspace @@ -132,7 +138,7 @@ def queryFlightsByAirspace(self, airspace, startTime, endTime, other_params={}): dictionnaire pour overrider les valeurs par défaut de _default_params_for_queries """ - trafficWindow = {'wef': startTime, 'unt': endTime} + trafficWindow = self.set_traffic_window(startTime, endTime) self.update_params_for_queries(other_params) client = Client(**self.conf, service_name='FlightManagementService') self.tmp_data = client.service.queryFlightsByAirspace( @@ -159,7 +165,7 @@ def queryFlightsByAerodrome(self, aerodrome, aerodromeRole, startTime, endTime, other_params dictionnaire pour overrider les valeurs par défaut de _default_params_for_queries """ - trafficWindow = {'wef': startTime, 'unt': endTime} + trafficWindow = self.set_traffic_window(startTime, endTime) self.update_params_for_queries(other_params) client = Client(**self.conf, service_name='FlightManagementService') self.tmp_data = client.service.queryFlightsByAerodrome( @@ -184,7 +190,7 @@ def queryFlightsByTrafficVolume(self, trafficVolume, startTime, endTime, other_p other_params dictionnaire pour overrider les valeurs par défaut de _default_params_for_queries """ - trafficWindow = {'wef': startTime, 'unt': endTime} + trafficWindow = self.set_traffic_window(startTime, endTime) self.update_params_for_queries(other_params) client = Client(**self.conf, service_name='FlightManagementService') self.tmp_data = client.service.queryFlightsByTrafficVolume( diff --git a/utils.py b/utils.py index fd4fe59..8ab0099 100644 --- a/utils.py +++ b/utils.py @@ -1,25 +1,12 @@ #!/usr/bin/env python #-*- coding: utf-8 -*- -import argparse import datetime -import logging import os -import re -import sys -import xml.etree.ElementTree as ET -import requests -#from elasticsearch import Elasticsearch - -#from decolog import * -#from dsnaproxies import dsnaproxies from shared_vars import DATA_PATH -# ------------------------------------------------------------------- -# ------------------------------------------------------------------- -# Nouveaux utilitaires par Maxence 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) @@ -39,4 +26,22 @@ def get_datetime(nbr_days=0): def sendTime(): sendTime = f"{datetime.datetime.utcnow().replace(microsecond=0)}" - return sendTime[:19] \ No newline at end of file + return sendTime[:19] + +def format_datetime_for_nm(datetime_to_format): + # TODO : affiner les warnings, messages d'erreurs etc + + if type(datetime_to_format) == str: + # TODO : vérifier que le format correspond bien à ce qui est attendu par NM + return datetime_to_format + + elif isinstance(datetime_to_format, datetime.datetime): + if datetime_to_format.tzinfo != datetime.timezone.utc: + print("Attention : l'objet datetime.datetime que vous avez passé en argument n'est pas formaté UTC.") + return datetime_to_format.strftime("%Y-%m-%d %H:%M") + + else: + print("La date+heure que vous avez passé en argument n'est pas un format \ + accepté par soapy (str ou objet datetime.datetime).") + # TODO rapidement : lever une exception plutôt + exit(1) \ No newline at end of file