pull/26/head
Fabian P. Schmidt 2016-01-06 00:23:45 +01:00
rodzic d5dc94903d
commit 4baeb83516
7 zmienionych plików z 50 dodań i 60 usunięć

Wyświetl plik

@ -40,57 +40,49 @@ def show(airport_name, latitude, longitude, altitude):
# make a query with current, previous and next "takeoff_landing" event, so we can find complete flights # make a query with current, previous and next "takeoff_landing" event, so we can find complete flights
sq = session.query( sq = session.query(
TakeoffLanding.address, TakeoffLanding.address,
func.lag(TakeoffLanding.address) \ func.lag(TakeoffLanding.address)
.over( .over(
order_by=and_(func.date(TakeoffLanding.timestamp), order_by=and_(func.date(TakeoffLanding.timestamp),
TakeoffLanding.address, TakeoffLanding.address,
TakeoffLanding.timestamp)) \ TakeoffLanding.timestamp))
.label('address_prev'), .label('address_prev'),
func.lead(TakeoffLanding.address) \ func.lead(TakeoffLanding.address)
.over( .over(order_by=and_(func.date(TakeoffLanding.timestamp),
order_by=and_(func.date(TakeoffLanding.timestamp),
TakeoffLanding.address, TakeoffLanding.address,
TakeoffLanding.timestamp)) \ TakeoffLanding.timestamp))
.label('address_next'), .label('address_next'),
TakeoffLanding.timestamp, TakeoffLanding.timestamp,
func.lag( func.lag(TakeoffLanding.timestamp)
TakeoffLanding.timestamp) \
.over(
order_by=and_(func.date(TakeoffLanding.timestamp),
TakeoffLanding.address,
TakeoffLanding.timestamp)) \
.label('timestamp_prev'),
func.lead(
TakeoffLanding.timestamp) \
.over(order_by=and_(func.date(TakeoffLanding.timestamp), .over(order_by=and_(func.date(TakeoffLanding.timestamp),
TakeoffLanding.address, TakeoffLanding.address,
TakeoffLanding.timestamp)) \ TakeoffLanding.timestamp))
.label('timestamp_prev'),
func.lead(TakeoffLanding.timestamp)
.over(order_by=and_(func.date(TakeoffLanding.timestamp),
TakeoffLanding.address,
TakeoffLanding.timestamp))
.label('timestamp_next'), .label('timestamp_next'),
TakeoffLanding.track, TakeoffLanding.track,
func.lag( func.lag(TakeoffLanding.track)
TakeoffLanding.track) \
.over(order_by=and_(func.date(TakeoffLanding.timestamp), .over(order_by=and_(func.date(TakeoffLanding.timestamp),
TakeoffLanding.address, TakeoffLanding.address,
TakeoffLanding.timestamp)) \ TakeoffLanding.timestamp))
.label('track_prev'), .label('track_prev'),
func.lead( func.lead(TakeoffLanding.track)
TakeoffLanding.track) \
.over(order_by=and_(func.date(TakeoffLanding.timestamp), .over(order_by=and_(func.date(TakeoffLanding.timestamp),
TakeoffLanding.address, TakeoffLanding.address,
TakeoffLanding.timestamp)) \ TakeoffLanding.timestamp))
.label('track_next'), .label('track_next'),
TakeoffLanding.is_takeoff, TakeoffLanding.is_takeoff,
func.lag( func.lag(TakeoffLanding.is_takeoff)
TakeoffLanding.is_takeoff) \
.over(order_by=and_(func.date(TakeoffLanding.timestamp), .over(order_by=and_(func.date(TakeoffLanding.timestamp),
TakeoffLanding.address, TakeoffLanding.address,
TakeoffLanding.timestamp)) \ TakeoffLanding.timestamp))
.label('is_takeoff_prev'), .label('is_takeoff_prev'),
func.lead( func.lead(TakeoffLanding.is_takeoff)
TakeoffLanding.is_takeoff) \
.over(order_by=and_(func.date(TakeoffLanding.timestamp), .over(order_by=and_(func.date(TakeoffLanding.timestamp),
TakeoffLanding.address, TakeoffLanding.address,
TakeoffLanding.timestamp)) \ TakeoffLanding.timestamp))
.label('is_takeoff_next')) \ .label('is_takeoff_next')) \
.filter(and_(between(TakeoffLanding.latitude, latmin, latmax), .filter(and_(between(TakeoffLanding.latitude, latmin, latmax),
between(TakeoffLanding.longitude, lonmin, lonmax))) \ between(TakeoffLanding.longitude, lonmin, lonmax))) \

Wyświetl plik

@ -1,4 +1,4 @@
from ogn.commands.dbutils import engine, session from ogn.commands.dbutils import session
from ogn.model import AddressOrigin, Device from ogn.model import AddressOrigin, Device
from sqlalchemy import func, and_, true, false from sqlalchemy import func, and_, true, false

Wyświetl plik

@ -38,7 +38,7 @@ class ognGateway:
# close everything # close everything
self.sock.shutdown(0) self.sock.shutdown(0)
self.sock.close() self.sock.close()
except OSError as e: except OSError:
self.logger.error('Socket close error', exc_info=True) self.logger.error('Socket close error', exc_info=True)
def run(self, callback, autoreconnect=False): def run(self, callback, autoreconnect=False):

Wyświetl plik

@ -25,5 +25,3 @@ class GatewayTest(unittest.TestCase):
self.gw.disconnect() self.gw.disconnect()
self.gw.sock.shutdown.assert_called_once_with(0) self.gw.sock.shutdown.assert_called_once_with(0)
self.gw.sock.close.assert_called_once_with() self.gw.sock.close.assert_called_once_with()