]> gitweb.michael.orlitzky.com - dead/htsn-import.git/blob - htsn-import.cabal
Bump version to 0.1.3 in the cabal file.
[dead/htsn-import.git] / htsn-import.cabal
1 name: htsn-import
2 version: 0.1.3
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.development
15 doc/TODO
16 makefile
17 schema/*.dtd
18 schemagen/AutoRacingResultsXML/*.xml
19 schemagen/Auto_Racing_Schedule_XML/*.xml
20 schemagen/CBASK_3PPctXML/*.xml
21 schemagen/Cbask_All_Tourn_Teams_XML/*.xml
22 schemagen/CBASK_AssistsXML/*.xml
23 schemagen/Cbask_Awards_XML/*.xml
24 schemagen/CBASK_BlocksXML/*.xml
25 schemagen/Cbask_Conf_Standings_XML/*.xml
26 schemagen/Cbask_DivII_III_Indv_Stats_XML/*.xml
27 schemagen/Cbask_DivIII_Team_Stats_XML/*.xml
28 schemagen/Cbask_DivII_Team_Stats_XML/*.xml
29 schemagen/CBASK_FGPctXML/*.xml
30 schemagen/CBASK_FoulsXML/*.xml
31 schemagen/CBASK_FTPctXML/*.xml
32 schemagen/Cbask_Indv_Scoring_XML/*.xml
33 schemagen/CBASK_Lineup_XML/*.xml
34 schemagen/CBASK_MinutesXML/*.xml
35 schemagen/Cbask_Polls_XML/*.xml
36 schemagen/cbaskpreviewxml/*.xml
37 schemagen/CBASK_ReboundsXML/*.xml
38 schemagen/CBASK_ScoringLeadersXML/*.xml
39 schemagen/Cbask_Team_ThreePT_Made_XML/*.xml
40 schemagen/Cbask_Team_ThreePT_PCT_XML/*.xml
41 schemagen/Cbask_Team_Win_Pct_XML/*.xml
42 schemagen/CBASK_TopTwentyFiveResult_XML/*.xml
43 schemagen/Cbask_Top_Twenty_Five_XML/*.xml
44 schemagen/Cbask_Tourn_Awards_XML/*.xml
45 schemagen/Cbask_Tourn_Champs_XML/*.xml
46 schemagen/Cbask_Tourn_Indiv_XML/*.xml
47 schemagen/Cbask_Tourn_Leaders_XML/*.xml
48 schemagen/Cbask_Tourn_MVP_XML/*.xml
49 schemagen/Cbask_Tourn_Records_XML/*.xml
50 schemagen/cflpreviewxml/*.xml
51 schemagen/earlylineXML/*.xml
52 schemagen/Heartbeat/*.xml
53 schemagen/Injuries_Detail_XML/*.xml
54 schemagen/injuriesxml/*.xml
55 schemagen/jfilexml/*.xml
56 schemagen/LeagueScheduleXML/*.xml
57 schemagen/Matchup_NBA_NHL_XML/*.xml
58 schemagen/Minor_Baseball_League_Leaders_XML/*.xml
59 schemagen/Minor_Baseball_Standings_XML/*.xml
60 schemagen/Minor_Baseball_Transactions_XML/*.xml
61 schemagen/minorscoresxml/*.xml
62 schemagen/mlbbattingavgxml/*.xml
63 schemagen/mlbdoublesleadersxml/*.xml
64 schemagen/MLB_ERA_Leaders/*.xml
65 schemagen/MLB_Fielding_XML/*.xml
66 schemagen/MLBGamesPlayedXML/*.xml
67 schemagen/MLB_Gaming_Matchup_XML/*.xml
68 schemagen/MLBGIDPXML/*.xml
69 schemagen/MLBHitByPitchXML/*.xml
70 schemagen/mlbhitsleadersxml/*.xml
71 schemagen/mlbhomerunsxml/*.xml
72 schemagen/MLBHRFreqXML/*.xml
73 schemagen/MLBIntWalksXML/*.xml
74 schemagen/MLBKORateXML/*.xml
75 schemagen/MLB_Lineup_XML/*.xml
76 schemagen/MLB_Matchup_XML/*.xml
77 schemagen/mlbonbasepctxml/*.xml
78 schemagen/MLBOPSXML/*.xml
79 schemagen/MLB_earlylineXML/*.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/Schedule_Changes_XML/*.xml
163 schemagen/scoresxml/*.xml
164 schemagen/Transactions_XML/*.xml
165 schemagen/weatherxml/*.xml
166 schemagen/Weekly_Sched_XML/*.xml
167 schemagen/WNBA3PPctXML/*.xml
168 schemagen/WNBAAssistsXML/*.xml
169 schemagen/WNBABlocksXML/*.xml
170 schemagen/WNBAFGPctXML/*.xml
171 schemagen/WNBAFoulsXML/*.xml
172 schemagen/WNBAFTPctXML/*.xml
173 schemagen/WNBAMinutesXML/*.xml
174 schemagen/WNBAReboundsXML/*.xml
175 schemagen/WNBAScorersXML/*.xml
176 schemagen/wnbastandxml/*.xml
177 schemagen/WNBAStealsXML/*.xml
178 schemagen/WNBA_Team_Leaders_XML/*.xml
179 schemagen/WNBATurnoversXML/*.xml
180 schemagen/WorldBaseballPreviewXML/*.xml
181 test/shell/*.test
182 test/xml/*.xml
183 test/xml/*.dtd
184 test/xml/gameinfo/*.xml
185 test/xml/gameinfo/*.dtd
186 test/xml/sportinfo/*.xml
187 test/xml/sportinfo/*.dtd
188 synopsis:
189 Import XML files from The Sports Network into an RDBMS.
190 description:
191 /Usage/:
192 .
193 @
194 htsn-import [OPTIONS] [FILES]
195 @
196 .
197 The Sports Network <http://www.sportsnetwork.com/> offers an XML feed
198 containing various sports news and statistics. Our sister program
199 /htsn/ is capable of retrieving the feed and saving the individual
200 XML documents contained therein. But what to do with them?
201 .
202 The purpose of /htsn-import/ is to take these XML documents and
203 get them into something we can use, a relational database management
204 system (RDBMS), i.e. \"a SQL database\". The structure of
205 relational database, is, well, relational, and the feed XML is not. So
206 there is some work to do before the data can be inserted.
207 .
208 First, we must parse the XML. Each supported document type (see below)
209 has a full pickle/unpickle implementation (\"pickle\" is simply a
210 synonym for serialize here). That means that we parse the entire
211 document into a data structure, and if we pickle (serialize) that data
212 structure, we get the exact same XML document tha we started with.
213 .
214 This is important for two reasons. First, it serves as a second level
215 of validation. The first validation is performed by the XML parser,
216 but if that succeeds and unpicking fails, we know that something is
217 fishy. Second, we don't ever want to be surprised by some new element
218 or attribute showing up in the XML. The fact that we can unpickle the
219 whole thing now means that we won't be surprised in the future.
220 .
221 The aforementioned feature is especially important because we
222 automatically migrate the database schema every time we import a
223 document. If you attempt to import a \"newsxml.dtd\" document, all
224 database objects relating to the news will be created if they do not
225 exist. We don't want the schema to change out from under us without
226 warning, so it's important that no XML be parsed that would result in
227 a different schema than we had previously. Since we can
228 pickle/unpickle everything already, this should be impossible.
229 .
230 Examples and usage documentation are available in the man page.
231
232 executable htsn-import
233 build-depends:
234 base >= 4.6 && < 5,
235 cmdargs >= 0.10.6,
236 configurator >= 0.2,
237 directory >= 1.2,
238 filepath >= 1.3,
239 hslogger >= 1.2,
240 htsn-common >= 0.0.1,
241 hxt >= 9.3,
242 groundhog >= 0.5,
243 groundhog-postgresql >= 0.5,
244 groundhog-sqlite >= 0.5,
245 groundhog-th >= 0.5,
246 MissingH >= 1.2,
247 old-locale >= 1,
248 split >= 0.2,
249 tasty >= 0.8,
250 tasty-hunit >= 0.8,
251 time >= 1.4,
252 transformers >= 0.3,
253 tuple >= 0.2
254
255 main-is:
256 Main.hs
257
258 hs-source-dirs:
259 src/
260
261 other-modules:
262 Backend
263 CommandLine
264 Configuration
265 ConnectionString
266 ExitCodes
267 OptionalConfiguration
268 TSN.Codegen
269 TSN.Database
270 TSN.DbImport
271 TSN.Location
272 TSN.Parse
273 TSN.Picklers
274 TSN.Team
275 TSN.XmlImport
276 TSN.XML.AutoRacingResults
277 TSN.XML.AutoRacingSchedule
278 TSN.XML.EarlyLine
279 TSN.XML.GameInfo
280 TSN.XML.Heartbeat
281 TSN.XML.Injuries
282 TSN.XML.InjuriesDetail
283 TSN.XML.JFile
284 TSN.XML.MLBEarlyLine
285 TSN.XML.News
286 TSN.XML.Odds
287 TSN.XML.ScheduleChanges
288 TSN.XML.Scores
289 TSN.XML.SportInfo
290 TSN.XML.Weather
291 Xml
292
293 ghc-options:
294 -Wall
295 -fwarn-hi-shadowing
296 -fwarn-missing-signatures
297 -fwarn-name-shadowing
298 -fwarn-orphans
299 -fwarn-type-defaults
300 -fwarn-tabs
301 -fwarn-incomplete-record-updates
302 -fwarn-monomorphism-restriction
303 -fwarn-unused-do-bind
304 -O2
305
306 ghc-prof-options:
307 -prof
308 -fprof-auto
309 -fprof-cafs
310 -- The following unbreak profiling with template haskell. We have
311 -- to build the program twice; once without profile and again with
312 -- these flags.
313 -hisuf hi_p
314 -osuf o_p
315
316
317 test-suite testsuite
318 type: exitcode-stdio-1.0
319 hs-source-dirs: src test
320 main-is: TestSuite.hs
321 build-depends:
322 base >= 4.6 && < 5,
323 cmdargs >= 0.10.6,
324 configurator >= 0.2,
325 directory >= 1.2,
326 filepath >= 1.3,
327 hslogger >= 1.2,
328 htsn-common >= 0.0.1,
329 hxt >= 9.3,
330 groundhog >= 0.5,
331 groundhog-postgresql >= 0.5,
332 groundhog-sqlite >= 0.5,
333 groundhog-th >= 0.5,
334 MissingH >= 1.2,
335 old-locale >= 1,
336 split >= 0.2,
337 tasty >= 0.8,
338 tasty-hunit >= 0.8,
339 time >= 1.4,
340 transformers >= 0.3,
341 tuple >= 0.2
342
343 -- It's not entirely clear to me why I have to reproduce all of this.
344 ghc-options:
345 -Wall
346 -fwarn-hi-shadowing
347 -fwarn-missing-signatures
348 -fwarn-name-shadowing
349 -fwarn-orphans
350 -fwarn-type-defaults
351 -fwarn-tabs
352 -fwarn-incomplete-record-updates
353 -fwarn-monomorphism-restriction
354 -fwarn-unused-do-bind
355 -O2
356
357
358 test-suite doctests
359 type: exitcode-stdio-1.0
360 hs-source-dirs: test
361 main-is: Doctests.hs
362 build-depends:
363 base >= 4.6 && < 5,
364 -- Additional test dependencies.
365 doctest >= 0.9
366
367 -- It's not entirely clear to me why I have to reproduce all of this.
368 ghc-options:
369 -Wall
370 -fwarn-hi-shadowing
371 -fwarn-missing-signatures
372 -fwarn-name-shadowing
373 -fwarn-orphans
374 -fwarn-type-defaults
375 -fwarn-tabs
376 -fwarn-incomplete-record-updates
377 -fwarn-monomorphism-restriction
378 -fwarn-unused-do-bind
379 -rtsopts
380 -threaded
381 -optc-O3
382 -optc-march=native
383 -O2
384
385
386 -- These won't work without shelltestrunner installed in your
387 -- $PATH. Maybe there is some way to tell Cabal that.
388 test-suite shelltests
389 type: exitcode-stdio-1.0
390 hs-source-dirs: test
391 main-is: ShellTests.hs
392
393 build-depends:
394 base >= 4.6 && < 5,
395 cmdargs >= 0.10.6,
396 configurator >= 0.2,
397 directory >= 1.2,
398 filepath >= 1.3,
399 hslogger >= 1.2,
400 htsn-common >= 0.0.1,
401 hxt >= 9.3,
402 groundhog >= 0.5,
403 groundhog-postgresql >= 0.5,
404 groundhog-sqlite >= 0.5,
405 groundhog-th >= 0.5,
406 MissingH >= 1.2,
407 old-locale >= 1,
408 split >= 0.2,
409 process >= 1.1,
410 tasty >= 0.8,
411 tasty-hunit >= 0.8,
412 time >= 1.4,
413 transformers >= 0.3,
414 tuple >= 0.2
415
416
417
418 source-repository head
419 type: git
420 location: http://michael.orlitzky.com/git/htsn-import.git
421 branch: master