Added import __future__.division in all python files.
authorJean-Michel Nirgal Vourgère <jmv@nirgal.com>
Thu, 11 Nov 2010 17:11:20 +0000 (17:11 +0000)
committerJean-Michel Nirgal Vourgère <jmv@nirgal.com>
Thu, 11 Nov 2010 17:11:20 +0000 (17:11 +0000)
Moved import at begining of files.

35 files changed:
bin/area.py
bin/common.py
bin/db.py
bin/dj.py
bin/djais/basicauth.py
bin/djais/models.py
bin/djais/settings.py
bin/djais/templatetags/ais_extras.py
bin/djais/urls.py
bin/djais/views.py
bin/earth3d.py
bin/extras/iccat_getrarfilename.py
bin/extras/marinetraffic.py
bin/extras/planeplotter_coaa.py
bin/extras/planeplotter_parse.py
bin/extras/shipplotter_coaa.py
bin/extras/shipplotter_parselogs.py
bin/gpsdec.py
bin/html_parser.py
bin/inputs/common.py
bin/inputs/config.py
bin/inputs/outpeer.py
bin/inputs/run.py
bin/inputs/serialin.py
bin/inputs/stats.py
bin/inputs/tcpout.py
bin/inputs/udp.py
bin/inputs/virtual.py
bin/jobrunner.py
bin/make-countries.py
bin/nmea.py
bin/ntime.py
bin/ntools.py
bin/show_targets_planes.py
bin/show_targets_ships.py

index eafd2b708b912701d312ccf5b18d05d5e6918564..c6ccf6f465d5ea61b4746603711de271998f1565 100644 (file)
@@ -7,6 +7,8 @@ Supports GoogleEarth KML polylines.
 FIXME: It should works using polar coordinated, but now works in 2D.
 """
 
+from __future__ import division
+
 __all__ = [ 'Area', 'load_area_from_kml_polygon' ]
 
 class Area:
index 3e07f4da4241a3649f1d9bd1ae202403f70f062e..fcfccddd30ffd96cda35db54fcdfd617b81b0f95 100755 (executable)
@@ -1,6 +1,20 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
+from __future__ import division
+import sys
+import os
+import struct
+import logging
+from datetime import datetime, timedelta, date, time
+from fcntl import lockf, LOCK_EX, LOCK_UN, LOCK_SH
+import csv
+
+from ais.ntools import *
+from ais.db import *
+from ais.area import load_area_from_kml_polygon
+from ais.earth3d import dist3_latlong_ais
+
 __all__ = [
     'DB_STARTDATE', 'DBPATH',
     'COUNTRIES_MID', 'STATUS_CODES', 'SHIP_TYPES',
@@ -39,20 +53,6 @@ __all__ = [
     'filter_speedcheck',
     ]
             
-
-import sys
-import os
-import struct
-import logging
-from datetime import datetime, timedelta, date, time
-from fcntl import lockf, LOCK_EX, LOCK_UN, LOCK_SH
-import csv
-
-from ais.ntools import *
-from ais.db import *
-from ais.area import load_area_from_kml_polygon
-from ais.earth3d import dist3_latlong_ais
-
 DB_STARTDATE = datetime(2008, 6, 1)
 
 # This is the location of the filesystem database
@@ -1671,9 +1671,9 @@ def nice_timedelta_str(delta):
             strdelta += ' day '
         disprank = 0
     delta_s = delta.seconds
-    delta_m = delta_s / 60
+    delta_m = delta_s // 60
     delta_s -= delta_m * 60
-    delta_h = delta_m / 60
+    delta_h = delta_m // 60
     delta_m -= delta_h * 60
 
     if delta_h:
index d5be16a49b034d4ea0660e278eb2d27fb05a86bf..400d616104e619925b4d5f528715cabe269a1bb0 100644 (file)
--- a/bin/db.py
+++ b/bin/db.py
@@ -1,6 +1,7 @@
 #!/usr/bin/env python
 # -*- encoding: utf-8 -*-
 
+from __future__ import division
 import psycopg2, psycopg2.extensions
 
 from ais.ntools import read_cfg
index 32f58831648dd2457432e0e788f2025a71d98325..671fbcb3809001a500429a6996c82338a1c1131b 100755 (executable)
--- a/bin/dj.py
+++ b/bin/dj.py
@@ -1,4 +1,5 @@
 #!/usr/bin/python
+from __future__ import division
 from django.core.management import execute_manager
 try:
     from ais.djais import settings
index 9af87a8f89d0d395f091123d64d2ce9b8c9370f2..3bc0cbd3b9e216aba0ecf6e0a401c672a7327b74 100644 (file)
@@ -9,6 +9,7 @@ def auth(username, password):
 def myview(request):
     return HttpResponse("Hello world!")
 '''
+from __future__ import division
 from django.http import HttpResponse
 import base64
 
index 92468f520892f32beeb1f9d096c028d31cea9a89..938c6fdce394f81d28de2192f4375b4e3f08d024 100644 (file)
@@ -1,5 +1,6 @@
 # -*- coding: utf-8 -*-
 
+from __future__ import division
 import os, os.path
 from datetime import datetime
 from random import SystemRandom
index 3165aa7674d3459191d0ab517e46e3077e0618da..31936d1d2dbc69b19cb91e564d6be6e5ff099c46 100644 (file)
@@ -1,5 +1,6 @@
 # Django settings for ais project.
 
+from __future__ import division
 from ais.ntools import read_cfg
 from ais.db import DATABASE_CONFIG_FILE
 
index e478e8a00068bcaeb36e0d56ffbddf84023a91f8..dc9c90a8dd70dd7c1d70c6d2fbf3668393b0e660 100644 (file)
@@ -1,4 +1,5 @@
 # -*- encofing: utf8 -*-
+from __future__ import division
 from django import template
 from django.utils.html import escape
 from ais.common import mmsi_to_strmmsi
index 2b55a94e309c88dab9e74a093347b167418bee56..24a268bf639bee0002719d56d9009ae39d52bedd 100644 (file)
@@ -1,3 +1,4 @@
+from __future__ import division
 from django.conf.urls.defaults import *
 import ais.djais
 
index 629e4580631cbc54d5c9b98b98a0f39b7dd0197f..a28bd2c7a977276f6cb1178ae5aceacbf108f84b 100644 (file)
@@ -1,7 +1,8 @@
 # -*- coding: utf-8 -*-
 
+from __future__ import division
+
 #TODO
-#from __future__ import division
 #Normalize 403 errors
 
 import os
@@ -650,6 +651,7 @@ def job_detail(request, jobid):
         response['Refresh'] = 5
     elif not job.archive_time:
         # finished but not archived:
+        # TODO: use hostname
         response['Refresh'] = '0;url=https://ais.nirgal.com/job/%s/download' % job.id
         job.archive_time = datetime.utcnow()
         job.save()
@@ -939,13 +941,12 @@ def sources_stats(request):
 
 @http_authenticate(auth, 'ais')
 def news(request, page):
-    NEWS_PER_PAGE = 10
+    NEWS_PER_PAGE = 5
     if page:
         page = int(page)
     else:
         page = 1
-    # TODO __future__
-    npages = int((News.objects.count() + NEWS_PER_PAGE - 1) / NEWS_PER_PAGE)
+    npages = int((News.objects.count() + NEWS_PER_PAGE - 1) // NEWS_PER_PAGE)
     news = News.objects.order_by('-created')[(page - 1) * NEWS_PER_PAGE : page * NEWS_PER_PAGE]
     return render_to_response('news.html', {'news':news, 'page': page, 'npages': npages}, RequestContext(request))
 
index abff3b0a598847c4a068b9d99ccef0096d4043f8..0d2b067f6d9ba9e0f2f7197ec915b6fcbe63f8ab 100755 (executable)
@@ -4,12 +4,13 @@
 Library for distances over Earth.
 """
 
+from __future__ import division
+import math
+
 __all__ = [ 'EARTH_RADIUS_NM', 'AIS_ANGLE_TO_RADIAN',
     'latlon_to_xyz_rad', 'latlon_to_xyz_deg', 'latlon_to_xyz_ais',
     'dist3_xyz', 'dist3_latlong_ais' ]
 
-import math
-
 # earth mean radius: 6371 km
 # nautical mile mean size: 1.8523 km
 EARTH_RADIUS_NM = 6371./1.8523
index 0b98e47c85072604a4cce0c14f1134460b3c7b96..28842433d69e8ebc9b4acc875c5d4bbdd0c66a4d 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python
+from __future__ import division
 from ais.html_parser import *
 
 if __name__ == '__main__':
index 3d721b7fa58ab5454c9dc73c51cba9c81b803bd7..31868456d8ba2a8ad74579319950f030cc50f2a4 100755 (executable)
@@ -1,10 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-DOWNLOAD_SLEEP_TIME = 10
-DISABLE_DOWNLOAD = False
-MARINETRAFFIC_DIR = '/var/lib/ais/marinetraffic/'
-
+from __future__ import division
 import sys, os, urllib2, time
 from pprint import pprint
 from datetime import datetime, date
@@ -16,6 +13,10 @@ from ais.ntools import clean_alnum, clean_ais_charset, open_with_mkdirs, datetim
 from ais.common import *
 from ais.html_parser import *
 
+DOWNLOAD_SLEEP_TIME = 10
+DISABLE_DOWNLOAD = False
+MARINETRAFFIC_DIR = '/var/lib/ais/marinetraffic/'
+
 
 def go_summary(reference_date, mmsi):
     def get_raw_summary(html):
index 5af73d66b8ea605d56dff991531db10415dc5707..5822ee6351243e64e772c57699a08b6d6e8514e8 100755 (executable)
@@ -1,6 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
+from __future__ import division
 import urllib2, StringIO, gzip, time, random
 from urlgrabber.keepalive import HTTPHandler
 
index 7e46bda0176034072641cb19cf56b58b1cad6ec6..7b4f191c94005cc77d7509c3a0a66cfbd10e910b 100755 (executable)
@@ -1,6 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
+from __future__ import division
 import sys
 from optparse import OptionParser
 from datetime import datetime
index 01a98abeacb1829fc4a1a11fc67b92af50184d0f..f7975de90d00eba20af03e5b35e6a5d527a4017e 100755 (executable)
@@ -1,6 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
+from __future__ import division
 import urllib2, StringIO, gzip, time, random, os
 from urlgrabber.keepalive import HTTPHandler
 from datetime import datetime
index 3d71ba331f5dd29917997ab2cef57eb7fc573061..1d5e094d51cd78158450a84efea8fdba1370ffca 100755 (executable)
@@ -1,6 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
+from __future__ import division
 import sys
 from optparse import OptionParser
 from pprint import pprint
index 0dce63c31a154e2b4ce2d95f4569b31e46de3650..7cabf2be6136489d80be3d64dbaaa66d72c66b09 100755 (executable)
@@ -1,5 +1,6 @@
 #!/usr/bin/env python
 
+from __future__ import division
 import sys
 import logging
 from time import time as get_timestamp
index 40c28755bc8502cfd63097c2f7cb5e14f582030d..7d8b094d4a3b53cc5ad90596f7e0da6af1161a5b 100755 (executable)
@@ -1,6 +1,7 @@
 #!/usr/bin/env python
 # -*- encoding: utf-8 -*-
 
+from __future__ import division
 import sys, htmlentities
 from optparse import OptionParser
 
index 2e546d6f0a2d5ee4d1d5670944c86d55ccd33c98..960542ca1651fe36dbf01568fda24d5b6bb7fe39 100644 (file)
@@ -3,14 +3,7 @@
 AIS input basic functions
 '''
 
-__all__ = [
-    'NMEA_DIR',
-    'DEFAULT_MTU',
-    'SourceLogger',
-    'Source', 
-    'get_source_by_id4', 'is_id4_active', 'refresh_all_stats',
-    ]
-
+from __future__ import division
 import os.path
 import logging
 from datetime import datetime, timedelta
@@ -19,6 +12,14 @@ from ais.inputs.stats import InStats
 from ais.inputs.config import peers_get_config
 from ais.inputs.outpeer import outpeers_from_config
 
+__all__ = [
+    'NMEA_DIR',
+    'DEFAULT_MTU',
+    'SourceLogger',
+    'Source', 
+    'get_source_by_id4', 'is_id4_active', 'refresh_all_stats',
+    ]
+
 
 NMEA_DIR = '/var/lib/ais/nmea'
 DEFAULT_MTU = 1500
index 5082ce0dbcaed353694ce6d66510404c6f0ce728..63dbb9795405710381e89c864be22750be8d4462 100644 (file)
@@ -3,14 +3,15 @@
 Peers definition
 '''
 
-__all__ = [
-    'peers_get_config',
-    'source_get_infoin']
-
+from __future__ import division
 import logging
 import pprint
 from ais.ntools import str_split_column_ipv6
 
+__all__ = [
+    'peers_get_config',
+    'source_get_infoin']
+
 CONFIG_FILENAME = '/etc/ais/config'
 
 SOURCES = {}
index 0df030af9e8f70a96b5d56bb6b3cec220fa7a8c5..7d1b673ea46c2bfe4358044ad31836fa60f01d9c 100644 (file)
@@ -3,13 +3,13 @@
 UDP out peers module
 '''
 
-__all__ = [ 'OutPeers', 'outpeers_from_config' ]
-
-
+from __future__ import division
 import logging
 from time import time as get_timestamp
 import socket
 
+__all__ = [ 'OutPeers', 'outpeers_from_config' ]
+
 class OutPeer:
     '''
     UDP output feed.
index 87dd091e0837a6b2b7228e637d794bd6d76a9aeb..c14e21e2e853be21356f2a3fdacac620dd5c5128 100644 (file)
@@ -5,6 +5,7 @@
 This is the main runner for AIS inputs.
 '''
 
+from __future__ import division
 #import os
 import sys
 import logging, logging.handlers
index b664b21a466f8b7ed9abdae59b7550bb9d09e0ef..e6574d24956ab23e73b9a344342a12bccc24ecb6 100644 (file)
@@ -5,6 +5,7 @@
 Module for receiving AIVDM data from serial port.
 '''
 
+from __future__ import division
 import serial
 import logging
 
@@ -54,7 +55,7 @@ class SerialChannel(Channel):
         stats = self.source.stats
         stats.npackets += 1
         stats.nbytes += len(data)
-        stats.nbytes_ethernet += len(data) * self.rawbytesize / 8
+        stats.nbytes_ethernet += len(data) * self.rawbytesize // 8
         logging.debug('IN %s %s', self.name, repr(data))
         self.data += data
     
index 4ca5c89ec388df0cea06e8d9a18c2eb08fe70d49..c664e3462833042a1ce3a46e1a11d3bad1855ed7 100644 (file)
@@ -3,16 +3,17 @@
 Source statistics module
 '''
 
-__all__ = [
-    'STATS_RATE', 'STATS_DIR',
-    'InStats'
-    ]
-
+from __future__ import division
 import os
 from time import time as get_timestamp
 import logging
 import rrdtool
 
+__all__ = [
+    'STATS_RATE', 'STATS_DIR',
+    'InStats'
+    ]
+
 STATS_DIR = '/var/lib/ais/stats'
 STATS_RATE = 60
 
index b62ee6709cb14aa7b1a53fc4b0878f56dc932254..77004d59159207834587654e180ec1f97153eeb9 100644 (file)
@@ -4,6 +4,7 @@
 Module for receiving AIVDM data from outbound TCP connection.
 '''
 
+from __future__ import division
 import logging
 import socket
 
index b108cf309da941c8da6bc99c64f671b06af6818a..aa59b60ff3033059f25438da6a0c0f2367a48b6e 100644 (file)
@@ -5,6 +5,7 @@
 Module for receiving AIVDM data from UDP.
 '''
 
+from __future__ import division
 import logging
 import socket
 
index de994c4a5cecc26ed6e1bd335fb19f9d7a51c0eb..f7675bd8355b91c5d0bac502547f317d79ecffb8 100644 (file)
@@ -3,16 +3,18 @@
 AIS virtual bases for Channels and Services.
 '''
 
-__all__ = [
-    'Service',
-    ]
 #
 # Un Service c'est udp ou serialin ou tcpout
 # Une source a un id4, donc des stats un et logger, mais pas de buffer
 # Un canal a un buffer, et est associé à une source
 
+from __future__ import division
 import sys
 
+__all__ = [
+    'Service',
+    ]
+
 class Service:
     '''
     A service provides data for processing.
index 0af8f90b86435fb5e0aa0e36ba71c4db6a62d726..697750a4fe651a8e2037947c6da508078cd7cd7e 100755 (executable)
@@ -1,10 +1,6 @@
 #!/usr/bin/env python
 
-__all__ = [ \
-    'wakeup_daemon',
-    'DAEMON_WAKEUP_ERROR',
-    ]
-
+from __future__ import division
 import sys
 import os
 import os.path
@@ -14,6 +10,11 @@ import subprocess
 import socket
 from ais.db import *
 
+__all__ = [ \
+    'wakeup_daemon',
+    'DAEMON_WAKEUP_ERROR',
+    ]
+
 SOCK_FILENAME = '/var/run/ais/jobrunner.wakeup'
 
 def wakeup_daemon():
index 34d181728beba8fcc43f2d174e92541286d5ca63..1436563255e129081c4964066ba45044b646a7c1 100755 (executable)
@@ -5,6 +5,9 @@
 #
 # taken from http://www.itu.int/cgi-bin/htsh/glad/cga_mids.sh?lng=E
 #
+
+from __future__ import division
+
 s = '''
 201 Albania (Republic of)
 202 Andorra (Principality of)
index 8e251e21e9d1f9f50639421f7647f3c80364cb8f..d40895f17f2ba7001ab2fca3267590597989ec3c 100644 (file)
@@ -1,5 +1,7 @@
 # -*- coding: utf-8 -*-
 #
+#from __future__ import division
+#
 #MESSAGE_TYPES = {
 #     1: 'Position Report Class A',
 #     2: 'Position Report Class A (Assigned schedule)',
index f024b200399578f9c70c8ec9211e78a03b3a5f30..27741b821717094618ded786d2e710b3120d87e2 100644 (file)
@@ -5,16 +5,17 @@
 Time functions.
 '''
 
+from __future__ import division
+from datetime import datetime, date
+import calendar
+import logging
+
 __all__ = [
     'datetime_to_timestamp_posix', 
     'datetime_to_tai',
     'datetime_to_timestamp_gps',
     'uptime' ]
 
-from datetime import datetime, date
-import calendar
-import logging
-
 # official file of leap seconds can be downloaded at:
 # ftp://hpiers.obspm.fr/iers/bul/bulc/TimeSteps.history
 #
index c8d8def6b51247387264c77e032eced78fa123da..1a672edec6f150e7888b07855ef641a4e68fde4d 100644 (file)
@@ -1,4 +1,8 @@
 # -*- coding: utf-8 -*-
+from __future__ import division
+
+import os
+import calendar
 
 __all__ = [
     'IPV4_IN_IPV6_PREFIX',
@@ -16,9 +20,6 @@ __all__ = [
     'formataddr',
     ]
 
-import os
-import calendar
-
 IPV4_IN_IPV6_PREFIX = '::ffff:'
 
 def datetime_to_timestamp(dt):
index a4368882f950af4658519682a68027c2bba6e98e..90bef53af3af8b4f374a86fd9ac054fc17eda46c 100755 (executable)
@@ -1,6 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
+from __future__ import division
 import sys
 from datetime import datetime, timedelta
 
index 8662eb75a774f18b1c3ef7636c65afd3dfe5b0fc..9d3b58325d8218779a16fbea00d30225d43517b7 100755 (executable)
@@ -1,9 +1,10 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-__all__ = [ 'format_fleet', 'format_boat_intime', 'format_boat_track', 'STYLE', 'KML_DISPLAYOPT_NONAMES', 'KML_DISPLAYOPT_HISTORICAL', 'KML_DISPLAYOPT_SOURCES', 'kml_to_kmz' ]
-
-import sys, logging, zipfile
+from __future__ import division
+import sys
+import logging
+import zipfile
 from StringIO import StringIO # TODO use python 2.6 io.BufferedWrite(sys.stdout, )
 from datetime import datetime, timedelta, time
 import copy
@@ -12,6 +13,8 @@ from ais.common import *
 from ais.area import load_area_from_kml_polygon
 from ais.ntools import datetime_to_timestamp, xml_escape
 
+__all__ = [ 'format_fleet', 'format_boat_intime', 'format_boat_track', 'STYLE', 'KML_DISPLAYOPT_NONAMES', 'KML_DISPLAYOPT_HISTORICAL', 'KML_DISPLAYOPT_SOURCES', 'kml_to_kmz' ]
+
 
 KML_DISPLAYOPT_NONAMES = 1 # don't print ship name
 KML_DISPLAYOPT_HISTORICAL = 2 # never show ship track as lost
@@ -135,10 +138,10 @@ class FishersStyle(Style):
             
             if nmea.cog != AIS_COG_NOT_AVAILABLE:
                 course = int(nmea.cog/10.) # ais format correction
-                course = (course+5)/10*10 % 360 # go to neareast 10°
+                course = (course+5)//10*10 % 360 # go to neareast 10°
                 stylename += '-%d' % course
             elif nmea.heading != AIS_NO_HEADING:
-                course = (nmea.heading+5)/10*10 % 360 # go to neareast 10°
+                course = (nmea.heading+5)//10*10 % 360 # go to neareast 10°
                 stylename += '-%d' % course
         return stylename
 
@@ -203,10 +206,10 @@ class PelagosStyle(Style):
             
             if nmea.cog != AIS_COG_NOT_AVAILABLE:
                 course = int(nmea.cog/10.) # ais format correction
-                course = (course+5)/10*10 % 360 # go to neareast 10°
+                course = (course+5)//10*10 % 360 # go to neareast 10°
                 stylename += '-%d' % course
             elif nmea.heading != AIS_NO_HEADING:
-                course = (nmea.heading+5)/10*10 % 360 # go to neareast 10°
+                course = (nmea.heading+5)//10*10 % 360 # go to neareast 10°
                 stylename += '-%d' % course
         return stylename