#!/usr/bin/env python
+# distributions may wish to edit the above to refer to a specific interpreter
+# path, such as #!/usr/bin/python
-# weather version 1.4, http://fungi.yuggoth.org/weather/
-# Copyright (c) 2006-2008 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.
+# Copyright (c) 2006-2010 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.
"""Wrapper utility using the weather.py module."""
# normal operation
else:
+ output = ""
for argument in selections.arguments:
- if get_bool("conditions", argument):
- print weather.get_metar(
+ if get_bool("conditions", argument) or not (
+ get_bool("alert", argument) or get_bool("forecast", argument)
+ ):
+ partial = weather.get_metar(
id=get("id", argument),
verbose=get_bool("verbose", argument),
quiet=get_bool("quiet", argument),
headers=get("headers", argument),
- murl=get("murl", argument)
- )
- if not get_bool("conditions", argument) \
- or get_bool("forecast", argument):
- print weather.get_forecast(
+ murl=get("murl", argument),
+ imperial=get_bool("imperial", argument),
+ metric=get_bool("metric", argument)
+ )
+ if partial: output += partial + "\n"
+ if get_bool("forecast", argument) or not (
+ get_bool("alert", argument) or get_bool("conditions", argument)
+ ):
+ partial = weather.get_forecast(
city=get("city", argument),
st=get("st", argument),
verbose=get_bool("verbose", argument),
quiet=get_bool("quiet", argument),
flines=get("flines", argument),
- furl=get("furl", argument)
- )
+ furl=get("furl", argument),
+ imperial=get_bool("imperial", argument),
+ metric=get_bool("metric", argument)
+ )
+ if partial: output += partial + "\n"
+ if get_bool("alert", argument) or not (
+ get_bool("conditions", argument) or get_bool("forecast", argument)
+ ):
+ alert_text = ""
+ for atype in get("atypes", argument).split(","):
+ for zone in get("zones", argument).split(","):
+ partial = weather.get_alert(
+ zone=zone,
+ verbose=get_bool("verbose", argument),
+ quiet=get_bool("quiet", argument),
+ atype=atype,
+ aurl=get("aurl", argument),
+ imperial=get_bool("imperial", argument),
+ metric=get_bool("metric", argument)
+ )
+ if partial: alert_text += partial + "\n"
+ if not alert_text: alert_text = "(no current alerts for your zones)\n"
+ output += alert_text
+ output = output.strip()
+ if output: print( output )