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