projects
/
weather.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Refresh correlation data
[weather.git]
/
weather.py
diff --git
a/weather.py
b/weather.py
index
1c969d3
..
493be0a
100644
(file)
--- a/
weather.py
+++ b/
weather.py
@@
-1,12
+1,12
@@
"""Contains various object definitions needed by the weather utility."""
weather_copyright = """\
"""Contains various object definitions needed by the weather utility."""
weather_copyright = """\
-# Copyright (c) 2006-202
0
Jeremy Stanley <fungi@yuggoth.org>. Permission to
+# Copyright (c) 2006-202
4
Jeremy Stanley <fungi@yuggoth.org>. Permission to
# use, copy, modify, and distribute this software is granted under terms
# provided in the LICENSE file distributed with this software.
#"""
# use, copy, modify, and distribute this software is granted under terms
# provided in the LICENSE file distributed with this software.
#"""
-weather_version = "2.4.
1
"
+weather_version = "2.4.
4
"
radian_to_km = 6372.795484
radian_to_mi = 3959.871528
radian_to_km = 6372.795484
radian_to_mi = 3959.871528
@@
-130,7
+130,7
@@
def filter_units(line, units="imperial"):
# filter lines with both pressures in the form of "X inches (Y hPa)" or
# "X in. Hg (Y hPa)"
dual_p = re.match(
# filter lines with both pressures in the form of "X inches (Y hPa)" or
# "X in. Hg (Y hPa)"
dual_p = re.match(
- "(.* )(\d*(\.\d+)? (inches|in\. Hg)) \((\d*(\.\d+)? hPa)\)(.*)",
+
r
"(.* )(\d*(\.\d+)? (inches|in\. Hg)) \((\d*(\.\d+)? hPa)\)(.*)",
line
)
if dual_p:
line
)
if dual_p:
@@
-139,7
+139,7
@@
def filter_units(line, units="imperial"):
elif units == "metric": line = preamble + hpa + trailer
# filter lines with both temperatures in the form of "X F (Y C)"
dual_t = re.match(
elif units == "metric": line = preamble + hpa + trailer
# filter lines with both temperatures in the form of "X F (Y C)"
dual_t = re.match(
- "(.* )(-?\d*(\.\d+)? F) \((-?\d*(\.\d+)? C)\)(.*)",
+
r
"(.* )(-?\d*(\.\d+)? F) \((-?\d*(\.\d+)? C)\)(.*)",
line
)
if dual_t:
line
)
if dual_t:
@@
-150,7
+150,7
@@
def filter_units(line, units="imperial"):
# "Y kilometer(s)"
if units == "metric":
imperial_d = re.match(
# "Y kilometer(s)"
if units == "metric":
imperial_d = re.match(
- "(.* )(\d+)( mile\(s\))(.*)",
+
r
"(.* )(\d+)( mile\(s\))(.*)",
line
)
if imperial_d:
line
)
if imperial_d:
@@
-160,7
+160,7
@@
def filter_units(line, units="imperial"):
# filter speeds in the form of "X MPH (Y KT)" to just "X MPH"; if metric is
# desired, convert to "Z KPH"
imperial_s = re.match(
# filter speeds in the form of "X MPH (Y KT)" to just "X MPH"; if metric is
# desired, convert to "Z KPH"
imperial_s = re.match(
- "(.* )(\d+)( MPH)( \(\d+ KT\))(.*)",
+
r
"(.* )(\d+)( MPH)( \(\d+ KT\))(.*)",
line
)
if imperial_s:
line
)
if imperial_s:
@@
-170,7
+170,7
@@
def filter_units(line, units="imperial"):
line = preamble + str(int(round(int(mph)*1.609344))) + " KPH" + \
trailer
imperial_s = re.match(
line = preamble + str(int(round(int(mph)*1.609344))) + " KPH" + \
trailer
imperial_s = re.match(
- "(.* )(\d+)( MPH)( \(\d+ KT\))(.*)",
+
r
"(.* )(\d+)( MPH)( \(\d+ KT\))(.*)",
line
)
if imperial_s:
line
)
if imperial_s:
@@
-182,7
+182,7
@@
def filter_units(line, units="imperial"):
# if imperial is desired, qualify given forcast temperatures like "X F"; if
# metric is desired, convert to "Y C"
imperial_t = re.match(
# if imperial is desired, qualify given forcast temperatures like "X F"; if
# metric is desired, convert to "Y C"
imperial_t = re.match(
- "(.* )(High |high |Low |low )(\d+)(\.|,)(.*)",
+
r
"(.* )(High |high |Low |low )(\d+)(\.|,)(.*)",
line
)
if imperial_t:
line
)
if imperial_t:
@@
-608,7
+608,11
@@
def get_config():
"weatherrc"
]
for rcfile in rcfiles:
"weatherrc"
]
for rcfile in rcfiles:
- if os.access(rcfile, os.R_OK): config.read(rcfile)
+ if os.access(rcfile, os.R_OK):
+ if pyversion("3"):
+ config.read(rcfile, encoding="utf-8")
+ else:
+ config.read(rcfile)
for section in config.sections():
if section != section.lower():
if config.has_section(section.lower()):
for section in config.sections():
if section != section.lower():
if config.has_section(section.lower()):
@@
-644,7
+648,10
@@
def integrate_search_cache(config, cachedir, setpath):
pass
return config
scache = configparser.ConfigParser()
pass
return config
scache = configparser.ConfigParser()
- scache.read(scache_fn)
+ if pyversion("3"):
+ scache.read(scache_fn, encoding="utf-8")
+ else:
+ scache.read(scache_fn)
for section in scache.sections():
if not config.has_section(section):
config.add_section(section)
for section in scache.sections():
if not config.has_section(section):
config.add_section(section)
@@
-740,9
+747,12
@@
def guess(
if pyversion("3"):
stations.read_string(
gzip.open(datafile).read().decode("utf-8") )
if pyversion("3"):
stations.read_string(
gzip.open(datafile).read().decode("utf-8") )
- else: stations.read
fp
( gzip.open(datafile) )
+ else: stations.read
_file
( gzip.open(datafile) )
else:
else:
- stations.read(datafile)
+ if pyversion("3"):
+ stations.read(datafile, encoding="utf-8")
+ else:
+ stations.read(datafile)
else:
message = "%s error: can't find \"%s\" data file\n" % (
os.path.basename( sys.argv[0] ),
else:
message = "%s error: can't find \"%s\" data file\n" % (
os.path.basename( sys.argv[0] ),
@@
-758,9
+768,12
@@
def guess(
import gzip
if pyversion("3"):
zones.read_string( gzip.open(datafile).read().decode("utf-8") )
import gzip
if pyversion("3"):
zones.read_string( gzip.open(datafile).read().decode("utf-8") )
- else: zones.read
fp
( gzip.open(datafile) )
+ else: zones.read
_file
( gzip.open(datafile) )
else:
else:
- zones.read(datafile)
+ if pyversion("3"):
+ zones.read(datafile, encoding="utf-8")
+ else:
+ zones.read(datafile)
else:
message = "%s error: can't find \"%s\" data file\n" % (
os.path.basename( sys.argv[0] ),
else:
message = "%s error: can't find \"%s\" data file\n" % (
os.path.basename( sys.argv[0] ),
@@
-785,9
+798,12
@@
def guess(
if pyversion("3"):
airports.read_string(
gzip.open(datafile).read().decode("utf-8") )
if pyversion("3"):
airports.read_string(
gzip.open(datafile).read().decode("utf-8") )
- else: airports.read
fp
( gzip.open(datafile) )
+ else: airports.read
_file
( gzip.open(datafile) )
else:
else:
- airports.read(datafile)
+ if pyversion("3"):
+ airports.read(datafile, encoding="utf-8")
+ else:
+ airports.read(datafile)
else:
message = "%s error: can't find \"%s\" data file\n" % (
os.path.basename( sys.argv[0] ),
else:
message = "%s error: can't find \"%s\" data file\n" % (
os.path.basename( sys.argv[0] ),
@@
-874,9
+890,12
@@
def guess(
if pyversion("3"):
zctas.read_string(
gzip.open(datafile).read().decode("utf-8") )
if pyversion("3"):
zctas.read_string(
gzip.open(datafile).read().decode("utf-8") )
- else: zctas.read
fp
( gzip.open(datafile) )
+ else: zctas.read
_file
( gzip.open(datafile) )
else:
else:
- zctas.read(datafile)
+ if pyversion("3"):
+ zctas.read(datafile, encoding="utf-8")
+ else:
+ zctas.read(datafile)
else:
message = "%s error: can't find \"%s\" data file\n" % (
os.path.basename( sys.argv[0] ),
else:
message = "%s error: can't find \"%s\" data file\n" % (
os.path.basename( sys.argv[0] ),
@@
-932,9
+951,12
@@
def guess(
if pyversion("3"):
places.read_string(
gzip.open(datafile).read().decode("utf-8") )
if pyversion("3"):
places.read_string(
gzip.open(datafile).read().decode("utf-8") )
- else: places.read
fp
( gzip.open(datafile) )
+ else: places.read
_file
( gzip.open(datafile) )
else:
else:
- places.read(datafile)
+ if pyversion("3"):
+ places.read(datafile, encoding="utf-8")
+ else:
+ places.read(datafile)
else:
message = "%s error: can't find \"%s\" data file\n" % (
os.path.basename( sys.argv[0] ),
else:
message = "%s error: can't find \"%s\" data file\n" % (
os.path.basename( sys.argv[0] ),
@@
-1151,7
+1173,10
@@
def guess(
)
try:
scache_existing = configparser.ConfigParser()
)
try:
scache_existing = configparser.ConfigParser()
- scache_existing.read(scache_fn)
+ if pyversion("3"):
+ scache_existing.read(scache_fn, encoding="utf-8")
+ else:
+ scache_existing.read(scache_fn)
if not scache_existing.has_section(search[0]):
scache_fd = codecs.open(scache_fn, "a", "utf-8")
scache_fd.writelines(search_cache)
if not scache_existing.has_section(search[0]):
scache_fd = codecs.open(scache_fn, "a", "utf-8")
scache_fd.writelines(search_cache)
@@
-1202,7
+1227,7
@@
def gecos(formatted):
return tuple(coordinates)
def correlate():
return tuple(coordinates)
def correlate():
- import codecs, csv, datetime, hashlib, os, re, sys, t
arfile, t
ime, zipfile
+ import codecs, csv, datetime, hashlib, os, re, sys, time, zipfile
if pyversion("3"): import configparser
else: import ConfigParser as configparser
for filename in os.listdir("."):
if pyversion("3"): import configparser
else: import ConfigParser as configparser
for filename in os.listdir("."):
@@
-1390,7
+1415,7
@@
def correlate():
sys.stdout.write(message)
sys.stdout.flush()
count = 0
sys.stdout.write(message)
sys.stdout.flush()
count = 0
- slist = codecs.open(slist_fn, "r
U
", "utf-8")
+ slist = codecs.open(slist_fn, "r", "utf-8")
for line in slist:
icao = line.split("#")[0].strip()
if icao:
for line in slist:
icao = line.split("#")[0].strip()
if icao:
@@
-1405,7
+1430,7
@@
def correlate():
sys.stdout.write(message)
sys.stdout.flush()
count = 0
sys.stdout.write(message)
sys.stdout.flush()
count = 0
- nsdcccc = codecs.open(nsdcccc_fn, "r
U
", "utf-8")
+ nsdcccc = codecs.open(nsdcccc_fn, "r", "utf-8")
for line in nsdcccc:
line = str(line)
fields = line.split(";")
for line in nsdcccc:
line = str(line)
fields = line.split(";")
@@
-1434,7
+1459,7
@@
def correlate():
sys.stdout.write(message)
sys.stdout.flush()
count = 0
sys.stdout.write(message)
sys.stdout.flush()
count = 0
- ourairports = open(ourairports_fn, "r
U
")
+ ourairports = open(ourairports_fn, "r")
for row in csv.reader(ourairports):
icao = row[12].lower()
if icao in stations:
for row in csv.reader(ourairports):
icao = row[12].lower()
if icao in stations:
@@
-1472,7
+1497,7
@@
def correlate():
sys.stdout.write(message)
sys.stdout.flush()
count = 0
sys.stdout.write(message)
sys.stdout.flush()
count = 0
- zlist = codecs.open(zlist_fn, "r
U
", "utf-8")
+ zlist = codecs.open(zlist_fn, "r", "utf-8")
for line in zlist:
line = line.split("#")[0].strip()
if line:
for line in zlist:
line = line.split("#")[0].strip()
if line:
@@
-1485,7
+1510,7
@@
def correlate():
sys.stdout.flush()
count = 0
cpfz = {}
sys.stdout.flush()
count = 0
cpfz = {}
- cpfzcf = codecs.open(cpfzcf_fn, "r
U
", "utf-8")
+ cpfzcf = codecs.open(cpfzcf_fn, "r", "utf-8")
for line in cpfzcf:
fields = line.strip().split("|")
if len(fields) == 11 \
for line in cpfzcf:
fields = line.strip().split("|")
if len(fields) == 11 \
@@
-1580,7
+1605,7
@@
def correlate():
removed = 0
changed = 0
overrides = configparser.ConfigParser()
removed = 0
changed = 0
overrides = configparser.ConfigParser()
- overrides.read
fp
( codecs.open(overrides_fn, "r", "utf8") )
+ overrides.read
_file
( codecs.open(overrides_fn, "r", "utf8") )
overrideslog = []
for section in overrides.sections():
addopt = 0
overrideslog = []
for section in overrides.sections():
addopt = 0
@@
-2003,15
+2028,30
@@
def correlate():
sys.stdout.write(message)
sys.stdout.flush()
airports = configparser.ConfigParser()
sys.stdout.write(message)
sys.stdout.flush()
airports = configparser.ConfigParser()
- airports.read(airports_fn)
+ if pyversion("3"):
+ airports.read(airports_fn, encoding="utf-8")
+ else:
+ airports.read(airports_fn)
places = configparser.ConfigParser()
places = configparser.ConfigParser()
- places.read(places_fn)
+ if pyversion("3"):
+ places.read(places_fn, encoding="utf-8")
+ else:
+ places.read(places_fn)
stations = configparser.ConfigParser()
stations = configparser.ConfigParser()
- stations.read(stations_fn)
+ if pyversion("3"):
+ stations.read(stations_fn, encoding="utf-8")
+ else:
+ stations.read(stations_fn)
zctas = configparser.ConfigParser()
zctas = configparser.ConfigParser()
- zctas.read(zctas_fn)
+ if pyversion("3"):
+ zctas.read(zctas_fn, encoding="utf-8")
+ else:
+ zctas.read(zctas_fn)
zones = configparser.ConfigParser()
zones = configparser.ConfigParser()
- zones.read(zones_fn)
+ if pyversion("3"):
+ zones.read(zones_fn, encoding="utf-8")
+ else:
+ zones.read(zones_fn)
qalog = []
places_nocentroid = 0
places_nodescription = 0
qalog = []
places_nocentroid = 0
places_nodescription = 0