]> gitweb.michael.orlitzky.com - dead/htsn-import.git/blob - htsn-import.cabal
Add stub for TSN.XML.MLBBoxScore.
[dead/htsn-import.git] / htsn-import.cabal
1 name: htsn-import
2 version: 0.2.0
3 cabal-version: >= 1.8
4 author: Michael Orlitzky
5 maintainer: Michael Orlitzky <michael@orlitzky.com>
6 category: Utils
7 license: GPL-3
8 license-file: doc/LICENSE
9 build-type: Simple
10 extra-source-files:
11 doc/dbschema/*.png
12 doc/htsn-importrc.example
13 doc/man1/htsn-import.1
14 doc/CHANGES.database
15 doc/README.development
16 doc/TODO
17 makefile
18 schema/*.dtd
19 schemagen/AutoRacingResultsXML/*.xml
20 schemagen/Auto_Racing_Schedule_XML/*.xml
21 schemagen/CBASK_3PPctXML/*.xml
22 schemagen/Cbask_All_Tourn_Teams_XML/*.xml
23 schemagen/CBASK_AssistsXML/*.xml
24 schemagen/Cbask_Awards_XML/*.xml
25 schemagen/CBASK_BlocksXML/*.xml
26 schemagen/Cbask_Conf_Standings_XML/*.xml
27 schemagen/Cbask_DivII_III_Indv_Stats_XML/*.xml
28 schemagen/Cbask_DivIII_Team_Stats_XML/*.xml
29 schemagen/Cbask_DivII_Team_Stats_XML/*.xml
30 schemagen/CBASK_FGPctXML/*.xml
31 schemagen/CBASK_FoulsXML/*.xml
32 schemagen/CBASK_FTPctXML/*.xml
33 schemagen/Cbask_Indv_Scoring_XML/*.xml
34 schemagen/CBASK_Lineup_XML/*.xml
35 schemagen/CBASK_MinutesXML/*.xml
36 schemagen/Cbask_Polls_XML/*.xml
37 schemagen/cbaskpreviewxml/*.xml
38 schemagen/CBASK_ReboundsXML/*.xml
39 schemagen/CBASK_ScoringLeadersXML/*.xml
40 schemagen/Cbask_Team_ThreePT_Made_XML/*.xml
41 schemagen/Cbask_Team_ThreePT_PCT_XML/*.xml
42 schemagen/Cbask_Team_Win_Pct_XML/*.xml
43 schemagen/CBASK_TopTwentyFiveResult_XML/*.xml
44 schemagen/Cbask_Top_Twenty_Five_XML/*.xml
45 schemagen/Cbask_Tourn_Awards_XML/*.xml
46 schemagen/Cbask_Tourn_Champs_XML/*.xml
47 schemagen/Cbask_Tourn_Indiv_XML/*.xml
48 schemagen/Cbask_Tourn_Leaders_XML/*.xml
49 schemagen/Cbask_Tourn_MVP_XML/*.xml
50 schemagen/Cbask_Tourn_Records_XML/*.xml
51 schemagen/cflpreviewxml/*.xml
52 schemagen/earlylineXML/*.xml
53 schemagen/Heartbeat/*.xml
54 schemagen/Injuries_Detail_XML/*.xml
55 schemagen/injuriesxml/*.xml
56 schemagen/jfilexml/*.xml
57 schemagen/LeagueScheduleXML/*.xml
58 schemagen/Matchup_NBA_NHL_XML/*.xml
59 schemagen/Minor_Baseball_League_Leaders_XML/*.xml
60 schemagen/Minor_Baseball_Standings_XML/*.xml
61 schemagen/Minor_Baseball_Transactions_XML/*.xml
62 schemagen/minorscoresxml/*.xml
63 schemagen/mlbbattingavgxml/*.xml
64 schemagen/mlbdoublesleadersxml/*.xml
65 schemagen/MLB_ERA_Leaders/*.xml
66 schemagen/MLB_Fielding_XML/*.xml
67 schemagen/MLBGamesPlayedXML/*.xml
68 schemagen/MLB_Gaming_Matchup_XML/*.xml
69 schemagen/MLBGIDPXML/*.xml
70 schemagen/MLBHitByPitchXML/*.xml
71 schemagen/mlbhitsleadersxml/*.xml
72 schemagen/mlbhomerunsxml/*.xml
73 schemagen/MLBHRFreqXML/*.xml
74 schemagen/MLBIntWalksXML/*.xml
75 schemagen/MLBKORateXML/*.xml
76 schemagen/MLB_Lineup_XML/*.xml
77 schemagen/MLB_Matchup_XML/*.xml
78 schemagen/mlbonbasepctxml/*.xml
79 schemagen/MLBOPSXML/*.xml
80 schemagen/MLB_earlylineXML/*.xml
81 schemagen/MLB_Pitching_Appearances_Leaders/*.xml
82 schemagen/MLB_Pitching_Balks_Leaders/*.xml
83 schemagen/MLB_Pitching_CG_Leaders/*.xml
84 schemagen/MLB_Pitching_ER_Allowed_Leaders/*.xml
85 schemagen/MLB_Pitching_Hit_Batters_Leaders/*.xml
86 schemagen/MLB_Pitching_Hits_Allowed_Leaders/*.xml
87 schemagen/MLB_Pitching_HR_Allowed_Leaders/*.xml
88 schemagen/MLB_Pitching_IP_Leaders/*.xml
89 schemagen/MLB_Pitching_Runs_Allowed_Leaders/*.xml
90 schemagen/MLB_Pitching_Saves_Leaders/*.xml
91 schemagen/MLB_Pitching_Shut_Outs_Leaders/*.xml
92 schemagen/MLB_Pitching_Starts_Leaders/*.xml
93 schemagen/MLB_Pitching_Strike_Outs_Leaders/*.xml
94 schemagen/MLB_Pitching_Walks_Leaders/*.xml
95 schemagen/MLB_Pitching_WHIP_Leaders/*.xml
96 schemagen/MLB_Pitching_Wild_Pitches_Leaders/*.xml
97 schemagen/MLB_Pitching_Win_Percentage_Leaders/*.xml
98 schemagen/MLB_Pitching_WL_Leaders/*.xml
99 schemagen/MLBPlateAppsXML/*.xml
100 schemagen/mlbpreviewxml/*.xml
101 schemagen/mlbrbisxml/*.xml
102 schemagen/mlbrunsleadersxml/*.xml
103 schemagen/MLBSacFliesXML/*.xml
104 schemagen/MLBSacrificesXML/*.xml
105 schemagen/MLBSBSuccessXML/*.xml
106 schemagen/mlbsluggingpctxml/*.xml
107 schemagen/mlbstandxml/*.xml
108 schemagen/mlbstandxml_preseason/*.xml
109 schemagen/mlbstolenbasexml/*.xml
110 schemagen/mlbtotalbasesleadersxml/*.xml
111 schemagen/mlbtriplesleadersxml/*.xml
112 schemagen/MLBWalkRateXML/*.xml
113 schemagen/mlbwalksleadersxml/*.xml
114 schemagen/MLBXtraBaseHitsXML/*.xml
115 schemagen/MLS_Preview_XML/*.xml
116 schemagen/NBA3PPctXML/*.xml
117 schemagen/NBAAssistsXML/*.xml
118 schemagen/NBABlocksXML/*.xml
119 schemagen/nbaconfrecxml/*.xml
120 schemagen/nbadaysxml/*.xml
121 schemagen/nbadivisionsxml/*.xml
122 schemagen/NBAFGPctXML/*.xml
123 schemagen/NBAFoulsXML/*.xml
124 schemagen/NBAFTPctXML/*.xml
125 schemagen/NBA_Gaming_Matchup_XML/*.xml
126 schemagen/NBALineupXML/*.xml
127 schemagen/NBAMinutesXML/*.xml
128 schemagen/NBA_Playoff_Matchup_XML/*.xml
129 schemagen/nbapreviewxml/*.xml
130 schemagen/NBAReboundsXML/*.xml
131 schemagen/NBAScorersXML/*.xml
132 schemagen/nbastandxml/*.xml
133 schemagen/NBAStealsXML/*.xml
134 schemagen/nbateamleadersxml/*.xml
135 schemagen/NBA_Team_Stats_XML/*.xml
136 schemagen/nbatripledoublexml/*.xml
137 schemagen/NBATurnoversXML/*.xml
138 schemagen/NCAA_Conference_Schedule_XML/*.xml
139 schemagen/NCAA_FB_Preview_XML/*.xml
140 schemagen/newsxml/*.xml
141 schemagen/nflfirstdownxml/*.xml
142 schemagen/NFLFumbleLeaderXML/*.xml
143 schemagen/NFLGiveTakeXML/*.xml
144 schemagen/NFLGrassTurfDomeOutsideXML/*.xml
145 schemagen/NFLInside20XML/*.xml
146 schemagen/NFLInterceptionLeadersXML/*.xml
147 schemagen/NFL_KickingLeaders_XML/*.xml
148 schemagen/NFLKickoffsXML/*.xml
149 schemagen/NFLMondayNightXML/*.xml
150 schemagen/NFL_NBA_Draft_XML/*.xml
151 schemagen/NFL_NCAA_FB_Matchup_XML/*.xml
152 schemagen/NFLPassingLeadersXML/*.xml
153 schemagen/NFLPassLeadXML/*.xml
154 schemagen/nflpreviewxml/*.xml
155 schemagen/NFL_PuntingLeaders_XML/*.xml
156 schemagen/NFLQBStartsXML/*.xml
157 schemagen/NFLReceivingLeadersXML/*.xml
158 schemagen/NFL_Roster_XML/*.xml
159 schemagen/NFLRushingLeadersXML/*.xml
160 schemagen/NFLSackLeadersXML/*.xml
161 schemagen/nflstandxml/*.xml
162 schemagen/NFLTackleFFLeadersXML/*.xml
163 schemagen/NFLTeamRankingsXML/*.xml
164 schemagen/NFL_Team_Stats_XML/*.xml
165 schemagen/NFLTopKickoffReturnXML/*.xml
166 schemagen/NFLTopPerformanceXML/*.xml
167 schemagen/NFLTopPuntReturnXML/*.xml
168 schemagen/NFLTotalYardageXML/*.xml
169 schemagen/NFLYardsXML/*.xml
170 schemagen/nhlpreviewxml/*.xml
171 schemagen/Odds_XML/*.xml
172 schemagen/recapxml/*.xml
173 schemagen/Schedule_Changes_XML/*.xml
174 schemagen/scoresxml/*.xml
175 schemagen/Transactions_XML/*.xml
176 schemagen/weatherxml/*.xml
177 schemagen/Weekly_Sched_XML/*.xml
178 schemagen/WNBA3PPctXML/*.xml
179 schemagen/WNBAAssistsXML/*.xml
180 schemagen/WNBABlocksXML/*.xml
181 schemagen/WNBAFGPctXML/*.xml
182 schemagen/WNBAFoulsXML/*.xml
183 schemagen/WNBAFTPctXML/*.xml
184 schemagen/WNBAMinutesXML/*.xml
185 schemagen/WNBAReboundsXML/*.xml
186 schemagen/WNBAScorersXML/*.xml
187 schemagen/wnbastandxml/*.xml
188 schemagen/WNBAStealsXML/*.xml
189 schemagen/WNBA_Team_Leaders_XML/*.xml
190 schemagen/WNBATurnoversXML/*.xml
191 schemagen/WorldBaseballPreviewXML/*.xml
192 test/shell/*.test
193 test/xml/*.xml
194 test/xml/*.dtd
195 test/xml/gameinfo/*.xml
196 test/xml/gameinfo/*.dtd
197 test/xml/sportinfo/*.xml
198 test/xml/sportinfo/*.dtd
199 synopsis:
200 Import XML files from The Sports Network into an RDBMS.
201 description:
202 /Usage/:
203 .
204 @
205 htsn-import [OPTIONS] [FILES]
206 @
207 .
208 The Sports Network <http://www.sportsnetwork.com/> offers an XML feed
209 containing various sports news and statistics. Our sister program
210 /htsn/ is capable of retrieving the feed and saving the individual
211 XML documents contained therein. But what to do with them?
212 .
213 The purpose of /htsn-import/ is to take these XML documents and
214 get them into something we can use, a relational database management
215 system (RDBMS), i.e. \"a SQL database\". The structure of
216 relational database, is, well, relational, and the feed XML is not. So
217 there is some work to do before the data can be inserted.
218 .
219 First, we must parse the XML. Each supported document type (see below)
220 has a full pickle/unpickle implementation (\"pickle\" is simply a
221 synonym for serialize here). That means that we parse the entire
222 document into a data structure, and if we pickle (serialize) that data
223 structure, we get the exact same XML document tha we started with.
224 .
225 This is important for two reasons. First, it serves as a second level
226 of validation. The first validation is performed by the XML parser,
227 but if that succeeds and unpicking fails, we know that something is
228 fishy. Second, we don't ever want to be surprised by some new element
229 or attribute showing up in the XML. The fact that we can unpickle the
230 whole thing now means that we won't be surprised in the future.
231 .
232 The aforementioned feature is especially important because we
233 automatically migrate the database schema every time we import a
234 document. If you attempt to import a \"newsxml.dtd\" document, all
235 database objects relating to the news will be created if they do not
236 exist. We don't want the schema to change out from under us without
237 warning, so it's important that no XML be parsed that would result in
238 a different schema than we had previously. Since we can
239 pickle/unpickle everything already, this should be impossible.
240 .
241 Examples and usage documentation are available in the man page.
242
243 executable htsn-import
244 build-depends:
245 base >= 4.6 && < 5,
246 cmdargs >= 0.10.6,
247 configurator >= 0.2,
248 directory >= 1.2,
249 filepath >= 1.3,
250 hslogger >= 1.2,
251 htsn-common >= 0.0.1,
252 hxt >= 9.3,
253 groundhog >= 0.5,
254 groundhog-postgresql >= 0.5,
255 groundhog-sqlite >= 0.5,
256 groundhog-th >= 0.5,
257 MissingH >= 1.2,
258 old-locale >= 1,
259 split >= 0.2,
260 tasty >= 0.8,
261 tasty-hunit >= 0.8,
262 time >= 1.4,
263 transformers >= 0.3,
264 tuple >= 0.2
265
266 main-is:
267 Main.hs
268
269 hs-source-dirs:
270 src/
271
272 other-modules:
273 Backend
274 CommandLine
275 Configuration
276 ConnectionString
277 ExitCodes
278 OptionalConfiguration
279 TSN.Codegen
280 TSN.Database
281 TSN.DbImport
282 TSN.Location
283 TSN.Parse
284 TSN.Picklers
285 TSN.Team
286 TSN.XmlImport
287 TSN.XML.AutoRacingDriverList
288 TSN.XML.AutoRacingResults
289 TSN.XML.AutoRacingSchedule
290 TSN.XML.EarlyLine
291 TSN.XML.GameInfo
292 TSN.XML.Heartbeat
293 TSN.XML.Injuries
294 TSN.XML.InjuriesDetail
295 TSN.XML.JFile
296 TSN.XML.MLBBoxScore
297 TSN.XML.MLBEarlyLine
298 TSN.XML.News
299 TSN.XML.Odds
300 TSN.XML.ScheduleChanges
301 TSN.XML.Scores
302 TSN.XML.SportInfo
303 TSN.XML.Weather
304 Xml
305
306 ghc-options:
307 -Wall
308 -fwarn-hi-shadowing
309 -fwarn-missing-signatures
310 -fwarn-name-shadowing
311 -fwarn-orphans
312 -fwarn-type-defaults
313 -fwarn-tabs
314 -fwarn-incomplete-record-updates
315 -fwarn-monomorphism-restriction
316 -fwarn-unused-do-bind
317 -O2
318
319 ghc-prof-options:
320 -prof
321 -fprof-auto
322 -fprof-cafs
323 -- The following unbreak profiling with template haskell. We have
324 -- to build the program twice; once without profile and again with
325 -- these flags.
326 -hisuf hi_p
327 -osuf o_p
328
329
330 test-suite testsuite
331 type: exitcode-stdio-1.0
332 hs-source-dirs: src test
333 main-is: TestSuite.hs
334 build-depends:
335 base >= 4.6 && < 5,
336 cmdargs >= 0.10.6,
337 configurator >= 0.2,
338 directory >= 1.2,
339 filepath >= 1.3,
340 hslogger >= 1.2,
341 htsn-common >= 0.0.1,
342 hxt >= 9.3,
343 groundhog >= 0.5,
344 groundhog-postgresql >= 0.5,
345 groundhog-sqlite >= 0.5,
346 groundhog-th >= 0.5,
347 MissingH >= 1.2,
348 old-locale >= 1,
349 split >= 0.2,
350 tasty >= 0.8,
351 tasty-hunit >= 0.8,
352 time >= 1.4,
353 transformers >= 0.3,
354 tuple >= 0.2
355
356 -- It's not entirely clear to me why I have to reproduce all of this.
357 ghc-options:
358 -Wall
359 -fwarn-hi-shadowing
360 -fwarn-missing-signatures
361 -fwarn-name-shadowing
362 -fwarn-orphans
363 -fwarn-type-defaults
364 -fwarn-tabs
365 -fwarn-incomplete-record-updates
366 -fwarn-monomorphism-restriction
367 -fwarn-unused-do-bind
368 -O2
369
370
371 test-suite doctests
372 type: exitcode-stdio-1.0
373 hs-source-dirs: test
374 main-is: Doctests.hs
375 build-depends:
376 base >= 4.6 && < 5,
377 -- Additional test dependencies.
378 doctest >= 0.9
379
380 -- It's not entirely clear to me why I have to reproduce all of this.
381 ghc-options:
382 -Wall
383 -fwarn-hi-shadowing
384 -fwarn-missing-signatures
385 -fwarn-name-shadowing
386 -fwarn-orphans
387 -fwarn-type-defaults
388 -fwarn-tabs
389 -fwarn-incomplete-record-updates
390 -fwarn-monomorphism-restriction
391 -fwarn-unused-do-bind
392 -rtsopts
393 -threaded
394 -optc-O3
395 -optc-march=native
396 -O2
397
398
399 -- These won't work without shelltestrunner installed in your
400 -- $PATH. Maybe there is some way to tell Cabal that.
401 test-suite shelltests
402 type: exitcode-stdio-1.0
403 hs-source-dirs: test
404 main-is: ShellTests.hs
405
406 build-depends:
407 base >= 4.6 && < 5,
408 cmdargs >= 0.10.6,
409 configurator >= 0.2,
410 directory >= 1.2,
411 filepath >= 1.3,
412 hslogger >= 1.2,
413 htsn-common >= 0.0.1,
414 hxt >= 9.3,
415 groundhog >= 0.5,
416 groundhog-postgresql >= 0.5,
417 groundhog-sqlite >= 0.5,
418 groundhog-th >= 0.5,
419 MissingH >= 1.2,
420 old-locale >= 1,
421 split >= 0.2,
422 process >= 1.1,
423 tasty >= 0.8,
424 tasty-hunit >= 0.8,
425 time >= 1.4,
426 transformers >= 0.3,
427 tuple >= 0.2
428
429
430
431 source-repository head
432 type: git
433 location: http://michael.orlitzky.com/git/htsn-import.git
434 branch: master