|
1 | 1 | #r "nuget: FSharp.Data" |
2 | | -#r "nuget: Luna.ConsoleProgressBar" |
3 | 2 |
|
4 | 3 | open System |
5 | 4 | open System.IO |
6 | 5 | open System.Net |
7 | 6 | open System.IO.Compression |
8 | 7 | open FSharp.Data |
9 | 8 | open FSharp.Data.CsvExtensions |
10 | | -open Luna.ConsoleProgressBar |
11 | 9 |
|
12 | | -let downloadGraphs graphName archiveType url (outputDir: string) = |
| 10 | +let downloadAndUnzip graphName archiveType url outputDir = |
13 | 11 | use client = new WebClient() |
14 | | - // use bar = new ConsoleProgressBar() |
15 | | - // client.DownloadProgressChanged.Add (fun e -> |
16 | | - // bar.Report (float e.ProgressPercentage / 100.) |
17 | | - // ) |
18 | 12 | match archiveType with |
19 | 13 | | "zip" -> |
20 | 14 | let archive = Path.Combine [| outputDir; Path.ChangeExtension(graphName, ".zip") |] |
21 | 15 | client.AsyncDownloadFile(Uri url, archive) |> Async.RunSynchronously |
22 | 16 | ZipFile.ExtractToDirectory(archive, outputDir) |
23 | 17 | | _ -> () |
24 | 18 |
|
| 19 | +(* |
| 20 | + Get all "graphs.csv" flies |
| 21 | + -> load all rows from all csv files |
| 22 | + -> download and unzip graph archives |
| 23 | +*) |
25 | 24 | seq { |
26 | 25 | for dir in fsi.CommandLineArgs.[1..] do |
27 | 26 | yield! Directory.EnumerateFiles(dir, "graphs.csv", SearchOption.AllDirectories) |
|
31 | 30 | CsvFile.Load(pathToCsv, separators=",", hasHeaders=true).Rows |> Seq.allPairs <| Seq.singleton pathToCsv) |
32 | 31 | |> Seq.iter (fun (row, pathToCsv) -> |
33 | 32 | let datasetRootPath = Path.GetDirectoryName pathToCsv |
34 | | - downloadGraphs row?GraphName row?ArchiveType row?Url datasetRootPath) |
| 33 | + downloadAndUnzip row?GraphName row?ArchiveType row?Url datasetRootPath) |
35 | 34 |
|
0 commit comments