ullr 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use 1.9.2@ullr
data/History.txt CHANGED
@@ -14,3 +14,7 @@
14
14
  == 0.1.2 / 2011-12-28
15
15
 
16
16
  * now uses proper min/max values from feed instead of regex matches in forecast text
17
+
18
+ == 0.1.4 / 2012-11-7
19
+
20
+ * fixing issue with dates in new feed format
data/lib/ullr/noaa.rb CHANGED
@@ -6,7 +6,11 @@ module Ullr
6
6
  tag 'start-valid-time'
7
7
  content :period_start
8
8
  attribute :'period-name', String
9
- set_time = lambda{|ob| ob.period_start = DateTime.parse(ob.period_start) }
9
+ set_time = lambda{|ob|
10
+ if ob.period_start =~ /[0-9]*\-[0-9]*\-[0-9]*/
11
+ ob.period_start = DateTime.parse(ob.period_start)
12
+ end
13
+ }
10
14
  after_parse(&set_time)
11
15
  end
12
16
 
@@ -0,0 +1,177 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <dwml version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd">
3
+ <head>
4
+ <product concise-name="dwmlByDay" operational-mode="developmental" srsName="WGS 1984">
5
+ <creation-date refresh-frequency='PT1H'>2012-11-06T08:31:55-08:00</creation-date>
6
+ <category>current observations and forecast</category>
7
+ </product>
8
+ <source>
9
+ <production-center>Pendleton, OR</production-center>
10
+ <credit>http://www.wrh.noaa.gov/pdt</credit>
11
+ <more-information>http://www.nws.noaa.gov/forecasts/xml/</more-information>
12
+ </source>
13
+ </head>
14
+ <data type="forecast">
15
+
16
+ <location>
17
+ <location-key>point1</location-key>
18
+ <description>Mount Bachelor, OR</description>
19
+ <point latitude="43.99" longitude="-121.68"/>
20
+ <city state="OR">Mount Bachelor</city>
21
+ <height datum="mean sea level">7636</height>
22
+ </location>
23
+ <moreWeatherInformation applicable-location="point1">http://forecast.weather.gov/MapClick.php?lat=43.99&amp;lon=-121.68</moreWeatherInformation>
24
+ <time-layout time-coordinate="local" summarization="12hourly">
25
+ <layout-key>k-p6h-n1-1</layout-key> <start-valid-time>2012-11-06T15:00:00-08:00</start-valid-time>
26
+ <end-valid-time>2012-11-12T18:00:00-08:00</end-valid-time>
27
+ </time-layout>
28
+
29
+ <time-layout time-coordinate="local" summarization="12hourly">
30
+ <layout-key>k-p12h-n13-1</layout-key>
31
+ <start-valid-time period-name="This Afternoon">2012-11-06T12:00:00-08:00</start-valid-time>
32
+ <start-valid-time period-name="Tonight">2012-11-06T18:00:00-08:00</start-valid-time>
33
+ <start-valid-time period-name="Wednesday">2012-11-07T06:00:00-08:00</start-valid-time>
34
+ <start-valid-time period-name="Wednesday Night">2012-11-07T18:00:00-08:00</start-valid-time>
35
+ <start-valid-time period-name="Thursday">2012-11-08T06:00:00-08:00</start-valid-time>
36
+ <start-valid-time period-name="Thursday Night">2012-11-08T18:00:00-08:00</start-valid-time>
37
+ <start-valid-time period-name="Friday">2012-11-09T06:00:00-08:00</start-valid-time>
38
+ <start-valid-time period-name="Friday Night">2012-11-09T18:00:00-08:00</start-valid-time>
39
+ <start-valid-time period-name="Saturday">2012-11-10T06:00:00-08:00</start-valid-time>
40
+ <start-valid-time period-name="Saturday Night">2012-11-10T18:00:00-08:00</start-valid-time>
41
+ <start-valid-time period-name="Veterans Day">2012-11-11T06:00:00-08:00</start-valid-time>
42
+ <start-valid-time period-name="Sunday Night">2012-11-11T18:00:00-08:00</start-valid-time>
43
+ <start-valid-time period-name="Monday">2012-11-12T06:00:00-08:00</start-valid-time>
44
+ </time-layout>
45
+
46
+ <time-layout time-coordinate="local" summarization="12hourly">
47
+ <layout-key>k-p24h-n7-1</layout-key>
48
+ <start-valid-time period-name="This Afternoon">2012-11-06T12:00:00-08:00</start-valid-time>
49
+ <start-valid-time period-name="Wednesday">2012-11-07T06:00:00-08:00</start-valid-time>
50
+ <start-valid-time period-name="Thursday">2012-11-08T06:00:00-08:00</start-valid-time>
51
+ <start-valid-time period-name="Friday">2012-11-09T06:00:00-08:00</start-valid-time>
52
+ <start-valid-time period-name="Saturday">2012-11-10T06:00:00-08:00</start-valid-time>
53
+ <start-valid-time period-name="Veterans Day">2012-11-11T06:00:00-08:00</start-valid-time>
54
+ <start-valid-time period-name="Monday">2012-11-12T06:00:00-08:00</start-valid-time>
55
+ </time-layout>
56
+
57
+ <time-layout time-coordinate="local" summarization="12hourly">
58
+ <layout-key>k-p24h-n6-2</layout-key>
59
+ <start-valid-time period-name="Tonight">2012-11-06T18:00:00-08:00</start-valid-time>
60
+ <start-valid-time period-name="Wednesday Night">2012-11-07T18:00:00-08:00</start-valid-time>
61
+ <start-valid-time period-name="Thursday Night">2012-11-08T18:00:00-08:00</start-valid-time>
62
+ <start-valid-time period-name="Friday Night">2012-11-09T18:00:00-08:00</start-valid-time>
63
+ <start-valid-time period-name="Saturday Night">2012-11-10T18:00:00-08:00</start-valid-time>
64
+ <start-valid-time period-name="Sunday Night">2012-11-11T18:00:00-08:00</start-valid-time>
65
+ </time-layout>
66
+
67
+
68
+ <parameters applicable-location="point1">
69
+
70
+ <temperature type="maximum" units="Fahrenheit" time-layout="k-p24h-n7-1">
71
+ <name>Daily Maximum Temperature</name>
72
+ <value>57</value>
73
+ <value>36</value>
74
+ <value>23</value>
75
+ <value>21</value>
76
+ <value>21</value>
77
+ <value>26</value>
78
+ <value>25</value>
79
+ </temperature>
80
+
81
+ <temperature type="minimum" units="Fahrenheit" time-layout="k-p24h-n6-2">
82
+ <name>Daily Minimum Temperature</name>
83
+ <value>36</value>
84
+ <value>20</value>
85
+ <value>16</value>
86
+ <value>18</value>
87
+ <value>20</value>
88
+ <value>24</value>
89
+ </temperature>
90
+
91
+ <probability-of-precipitation type="12 hour" units="percent" time-layout="k-p12h-n13-1">
92
+ <name>12 Hourly Probability of Precipitation</name>
93
+ <value xsi:nil="true"></value>
94
+ <value>30</value>
95
+ <value>30</value>
96
+ <value>30</value>
97
+ <value>60</value>
98
+ <value xsi:nil="true"></value>
99
+ <value xsi:nil="true"></value>
100
+ <value xsi:nil="true"></value>
101
+ <value xsi:nil="true"></value>
102
+ <value xsi:nil="true"></value>
103
+ <value xsi:nil="true"></value>
104
+ <value xsi:nil="true"></value>
105
+ <value xsi:nil="true"></value>
106
+ </probability-of-precipitation>
107
+
108
+ <weather time-layout="k-p12h-n13-1">
109
+ <name>Weather Type, Coverage, Intensity</name>
110
+ <weather-conditions weather-summary="Mostly Sunny"/>
111
+ <weather-conditions weather-summary="Chance Rain/Snow"/>
112
+ <weather-conditions weather-summary="Chance Snow"/>
113
+ <weather-conditions weather-summary="Chance Snow"/>
114
+ <weather-conditions weather-summary="Snow Likely"/>
115
+ <weather-conditions weather-summary="Snow Likely"/>
116
+ <weather-conditions weather-summary="Chance Snow"/>
117
+ <weather-conditions weather-summary="Chance Snow"/>
118
+ <weather-conditions weather-summary="Chance Snow"/>
119
+ <weather-conditions weather-summary="Mostly Cloudy"/>
120
+ <weather-conditions weather-summary="Chance Snow"/>
121
+ <weather-conditions weather-summary="Chance Snow"/>
122
+ <weather-conditions weather-summary="Snow Likely"/>
123
+ </weather>
124
+
125
+ <conditions-icon type="forecast-NWS" time-layout="k-p12h-n13-1">
126
+ <name>Conditions Icon</name> <icon-link>http://forecast.weather.gov/images/wtf/medium/sct.png</icon-link>
127
+ <icon-link>http://forecast.weather.gov/images/wtf/medium/nrasn30.png</icon-link>
128
+ <icon-link>http://forecast.weather.gov/images/wtf/medium/sn30.png</icon-link>
129
+ <icon-link>http://forecast.weather.gov/images/wtf/medium/nsn30.png</icon-link>
130
+ <icon-link>http://forecast.weather.gov/images/wtf/medium/sn60.png</icon-link>
131
+ <icon-link>http://forecast.weather.gov/images/wtf/medium/nsn.png</icon-link>
132
+ <icon-link>http://forecast.weather.gov/images/wtf/medium/sn.png</icon-link>
133
+ <icon-link>http://forecast.weather.gov/images/wtf/medium/nsn.png</icon-link>
134
+ <icon-link>http://forecast.weather.gov/images/wtf/medium/sn.png</icon-link>
135
+ <icon-link>http://forecast.weather.gov/images/wtf/medium/nbkn.png</icon-link>
136
+ <icon-link>http://forecast.weather.gov/images/wtf/medium/sn.png</icon-link>
137
+ <icon-link>http://forecast.weather.gov/images/wtf/medium/nsn.png</icon-link>
138
+ <icon-link>http://forecast.weather.gov/images/wtf/medium/sn.png</icon-link>
139
+ </conditions-icon>
140
+
141
+ <hazards time-layout="k-p6h-n1-1">
142
+ <name>Watches, Warnings, and Advisories</name>
143
+ <hazard-conditions>
144
+ <hazard headline="Special Weather Statement">
145
+ <hazardTextURL>http://forecast.weather.gov/showsigwx.php?warnzone=ORZ509&amp;warncounty=ORC017&amp;firewxzone=ORZ611&amp;local_place1=Mount+Bachelor+OR&amp;product1=Special+Weather+Statement</hazardTextURL>
146
+ </hazard>
147
+ </hazard-conditions>
148
+ </hazards>
149
+
150
+ <wordedForecast time-layout="k-p12h-n13-1" dataSource="pdtNetcdf" wordGenerator="markMitchell">
151
+ <name>Text Forecast</name>
152
+ <text>Mostly sunny, with a high near 57. West wind around 15 mph. </text>
153
+ <text>A chance of rain before 4am, then a chance of rain and snow showers. Partly cloudy, with a low around 36. West wind 17 to 20 mph, with gusts as high as 30 mph. Chance of precipitation is 30%.</text>
154
+ <text>A chance of snow showers before 10am, then a slight chance of snow showers after 4pm. Partly sunny, with a temperature falling to around 32 by 5pm. Southwest wind 5 to 11 mph becoming north in the afternoon. Chance of precipitation is 30%.</text>
155
+ <text>A 30 percent chance of snow showers, mainly after 10pm. Mostly cloudy, with a low around 20. Southwest wind 7 to 10 mph. </text>
156
+ <text>Snow showers likely. Cloudy, with a high near 23. Southwest wind 10 to 15 mph. Chance of precipitation is 60%. New snow accumulation of 2 to 4 inches possible. </text>
157
+ <text>Snow showers likely. Cloudy, with a low around 16.</text>
158
+ <text>A chance of snow showers. Cloudy, with a high near 21.</text>
159
+ <text>A chance of snow showers. Mostly cloudy, with a low around 18.</text>
160
+ <text>A chance of snow showers. Partly sunny, with a high near 21.</text>
161
+ <text>Mostly cloudy, with a low around 20.</text>
162
+ <text>A chance of snow. Cloudy, with a high near 26.</text>
163
+ <text>A chance of snow. Cloudy, with a low around 24.</text>
164
+ <text>Snow likely. Mostly cloudy, with a high near 25.</text>
165
+ </wordedForecast>
166
+
167
+ </parameters>
168
+ </data>
169
+ <data type="current observations">
170
+ <location>
171
+ <location-key>point1</location-key>
172
+ <point latitude="43.98314" longitude="-121.58034"/>
173
+ <area-description>Wanoga Butte (HWY 372 MP 17), OR</area-description>
174
+ <height datum="mean sea level" height-units="feet">6001</height>
175
+ </location>
176
+ <moreWeatherInformation applicable-location="point1"></moreWeatherInformation> <time-layout time-coordinate="local"> <layout-key>k-p1h-n1-1</layout-key> <start-valid-time period-name="current">NA</start-valid-time> </time-layout> <parameters applicable-location="point1"> <temperature type="apparent" units="Fahrenheit" time-layout="k-p1h-n1-1"> <value></value> </temperature> <temperature type="dew point" units="Fahrenheit" time-layout="k-p1h-n1-1"> <value>NA</value> </temperature> <humidity type="relative" time-layout="k-p1h-n1-1"> <value>NA</value> </humidity> <weather time-layout="k-p1h-n1-1"> <name>Weather Type, Coverage, Intensity</name> <weather-conditions weather-summary=""/> <weather-conditions> <value> <visibility units="statute miles">NA</visibility> </value> </weather-conditions> </weather> <conditions-icon type="forecast-NWS" time-layout="k-p1h-n1-1"> <name>Conditions Icon</name> <icon-link>http://forecast.weather.gov/images/wtf/medium/</icon-link> </conditions-icon> <direction type="wind" units="degrees true" time-layout="k-p1h-n1-1"> <value>NA</value> </direction> <wind-speed type="gust" units="knots" time-layout="k-p1h-n1-1"> <value>NA</value> </wind-speed> <wind-speed type="sustained" units="knots" time-layout="k-p1h-n1-1"> <value>NA</value> </wind-speed> <pressure type="barometer" units="inches of mercury" time-layout="k-p1h-n1-1"> <value>NA</value> </pressure> </parameters></data></dwml>
177
+
data/spec/ullr_spec.rb CHANGED
@@ -70,7 +70,7 @@ describe Ullr do
70
70
  end
71
71
 
72
72
  it "should have a value" do
73
- @text.value.should eql('A 20 percent chance of snow. Partly sunny, with a high near 39. West wind around 9 mph. ')
73
+ @text.value.should eql('Mostly sunny, with a high near 57. West wind around 15 mph. ')
74
74
  end
75
75
 
76
76
  it "should respond to has_snow?" do
@@ -78,25 +78,25 @@ describe Ullr do
78
78
  end
79
79
 
80
80
  it "should return true to has_snow? if snow exists" do
81
- @text.has_snow?.should be_true
81
+ @text.has_snow?.should be_false
82
82
  end
83
83
 
84
84
  it "should return false to has_snow? if no snow exists" do
85
- @text.value = "foo"
86
- @text.has_snow?.should be_false
85
+ @text.value = "foo snow"
86
+ @text.has_snow?.should be_true
87
87
  end
88
88
 
89
89
  it "should respond to snow_estimate" do
90
90
  @text.respond_to?(:snow_estimate).should be_true
91
91
  end
92
92
 
93
- it "should return [0,1] as the estimate when snow exists but no estimate given" do
94
- @text.snow_estimate.should eql(['0','1'])
93
+ it "should return [0,0] as the estimate when snow exists but no estimate given" do
94
+ @text.snow_estimate.should eql(['0','0'])
95
95
  end
96
96
 
97
97
  it "should return zeros when no snow exists" do
98
- @text.value = "foo"
99
- @text.snow_estimate.should eql(['0','0'])
98
+ @text.value = "foo New snow accumulation of 0 to 1"
99
+ @text.snow_estimate.should eql(['0','1'])
100
100
  end
101
101
 
102
102
  it "should return the proper snow estimate when range is given" do
@@ -191,7 +191,7 @@ describe Ullr do
191
191
  end
192
192
 
193
193
  it "should have a url" do
194
- @icon_link.url.should eql("http://forecast.weather.gov/images/wtf/sn20.jpg")
194
+ @icon_link.url.should eql("http://forecast.weather.gov/images/wtf/medium/sct.png")
195
195
  end
196
196
  end
197
197
 
@@ -224,7 +224,7 @@ describe Ullr do
224
224
  end
225
225
 
226
226
  it "should have a weather_summary" do
227
- @weather_conditions.weather_summary.should eql("Slight Chc Snow")
227
+ @weather_conditions.weather_summary.should eql("Mostly Sunny")
228
228
  end
229
229
  end
230
230
 
@@ -332,7 +332,7 @@ describe Ullr do
332
332
  end
333
333
 
334
334
  it "should have a DateTime period_start" do
335
- @start_valid_time.period_start.should eql(DateTime.parse('2011-12-18T12:00:00-08:00'))
335
+ @start_valid_time.period_start.should eql(DateTime.parse('2012-11-06T12:00:00-08:00'))
336
336
  end
337
337
  end
338
338
  end
@@ -516,15 +516,15 @@ describe Ullr do
516
516
 
517
517
  it "should decoreate an object with correct min temp data" do
518
518
  @min = @temps[:minimum].first
519
- @min.temperature.should eql('25')
520
- @min.start_time.should eql(DateTime.parse('2011-12-18T18:00:00-08:00'))
519
+ @min.temperature.should eql('36')
520
+ @min.start_time.should eql(DateTime.parse('2012-11-06T18:00:00-08:00'))
521
521
  @min.period_name.should eql('Tonight')
522
522
  end
523
523
 
524
524
  it "should decoreate an object with correct max temp data" do
525
525
  @max = @temps[:maximum].first
526
- @max.temperature.should eql('39')
527
- @max.start_time.should eql(DateTime.parse('2011-12-18T12:00:00-08:00'))
526
+ @max.temperature.should eql('57')
527
+ @max.start_time.should eql(DateTime.parse('2012-11-06T12:00:00-08:00'))
528
528
  @max.period_name.should eql('This Afternoon')
529
529
  end
530
530
  end
data/ullr-0.1.0.gem ADDED
Binary file
data/ullr-0.1.1.gem ADDED
Binary file
data/ullr-0.1.2.gem ADDED
Binary file
data/ullr-0.1.3.gem ADDED
Binary file
data/ullr.gemspec ADDED
@@ -0,0 +1,35 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{ullr}
5
+ s.version = "0.1.4"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = [%q{Timmy Crawford}]
9
+ s.date = %q{2011-12-28}
10
+ s.description = %q{ullr is a little gem that consumes NOAA weather xml for a given lat/long, and returns an array of data with 12 hour forecasts along with some sugar to let you know if any sugar will be falling from the sky.}
11
+ s.email = %q{timmydcrawford@gmail.com}
12
+ s.executables = [%q{ullr}]
13
+ s.extra_rdoc_files = [%q{History.txt}, %q{bin/ullr}]
14
+ s.files = [%q{.bnsignore}, %q{History.txt}, %q{README.md}, %q{Rakefile}, %q{bin/ullr}, %q{lib/ullr.rb}, %q{lib/ullr/noaa.rb}, %q{lib/ullr/forecast.rb}, %q{spec/spec_helper.rb}, %q{spec/ullr_spec.rb}, %q{version.txt}]
15
+ s.homepage = %q{https://github.com/timmyc/ullr}
16
+ s.rdoc_options = [%q{--main}, %q{README.md}]
17
+ s.require_paths = [%q{lib}]
18
+ s.rubyforge_project = %q{ullr}
19
+ s.rubygems_version = %q{1.8.6}
20
+ s.summary = %q{ullr consumes NOAA weather xml for a given lat/long, and returns an array of forecast data.}
21
+ s.test_files = [%q{spec/ullr_spec.rb}]
22
+ s.add_dependency(%q<happymapper>, [">=0.4.0"])
23
+
24
+ if s.respond_to? :specification_version then
25
+ s.specification_version = 3
26
+
27
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
28
+ s.add_development_dependency(%q<bones>, [">= 3.7.3"])
29
+ else
30
+ s.add_dependency(%q<bones>, [">= 3.7.3"])
31
+ end
32
+ else
33
+ s.add_dependency(%q<bones>, [">= 3.7.3"])
34
+ end
35
+ end
data/version.txt CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.1.4
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ullr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-28 00:00:00.000000000Z
12
+ date: 2012-11-06 00:00:00.000000000Z
13
13
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: happymapper
16
- requirement: &70173084964980 !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: 0.4.0
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: *70173084964980
25
14
  - !ruby/object:Gem::Dependency
26
15
  name: bones
27
- requirement: &70173084963640 !ruby/object:Gem::Requirement
16
+ requirement: &70290534088780 !ruby/object:Gem::Requirement
28
17
  none: false
29
18
  requirements:
30
19
  - - ! '>='
@@ -32,10 +21,10 @@ dependencies:
32
21
  version: 3.7.3
33
22
  type: :development
34
23
  prerelease: false
35
- version_requirements: *70173084963640
24
+ version_requirements: *70290534088780
36
25
  description: ullr is a little gem that consumes NOAA weather xml for a given lat/long,
37
- and returns an array of data with 12 hour forecasts along with some sugar to let
38
- you know if any sugar will be falling from the sky.
26
+ and returns a ruby object with 12 hour forecasts along with some sugar to let you
27
+ know if any sugar will be falling from the sky.
39
28
  email: timmydcrawford@gmail.com
40
29
  executables:
41
30
  - ullr
@@ -45,15 +34,22 @@ extra_rdoc_files:
45
34
  - bin/ullr
46
35
  files:
47
36
  - .bnsignore
37
+ - .rvmrc
48
38
  - History.txt
49
39
  - README.md
50
40
  - Rakefile
51
41
  - bin/ullr
52
42
  - lib/ullr.rb
53
- - lib/ullr/noaa.rb
54
43
  - lib/ullr/forecast.rb
44
+ - lib/ullr/noaa.rb
45
+ - spec/fixtures/noaa.xml
55
46
  - spec/spec_helper.rb
56
47
  - spec/ullr_spec.rb
48
+ - ullr-0.1.0.gem
49
+ - ullr-0.1.1.gem
50
+ - ullr-0.1.2.gem
51
+ - ullr-0.1.3.gem
52
+ - ullr.gemspec
57
53
  - version.txt
58
54
  homepage: https://github.com/timmyc/ullr
59
55
  licenses: []
@@ -80,7 +76,7 @@ rubyforge_project: ullr
80
76
  rubygems_version: 1.8.6
81
77
  signing_key:
82
78
  specification_version: 3
83
- summary: ullr consumes NOAA weather xml for a given lat/long, and returns an array
84
- of forecast data.
85
- test_files:
86
- - spec/ullr_spec.rb
79
+ summary: ullr is a little gem that consumes NOAA weather xml for a given lat/long,
80
+ and returns a ruby object with 12 hour forecasts along with some sugar to let you
81
+ know if any sugar will be falling from the sky.
82
+ test_files: []