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