Skip to content

Commit

Permalink
caching with atom (slow)
Browse files Browse the repository at this point in the history
  • Loading branch information
jaromil committed Jul 1, 2016
1 parent 0815c50 commit 046531a
Showing 1 changed file with 34 additions and 9 deletions.
43 changes: 34 additions & 9 deletions src/gufovolante/core.clj
Expand Up @@ -14,16 +14,39 @@
(:import (org.apache.commons.compress.compressors.xz XZCompressorInputStream))
)

;; cache dei file anagrafe aperti
(def anagrafe (atom {}))

(defn apri-csv-xz
"apri un file singolo compresso con xz, restituisce io/reader"
[filename]
(with-open [in-file (-> filename
io/file
io/input-stream
(XZCompressorInputStream. true)
io/reader)]
(doall (csv/read-csv in-file)))
)
(let [chiave (keyword filename)]

(if (nil? (chiave @anagrafe))
;; apri nuovo file non trovato in cache
(swap! anagrafe assoc chiave
(with-open [in-file (-> filename
io/file
io/input-stream
(XZCompressorInputStream. true)
io/reader)]
(doall (csv/read-csv in-file)))))
;; ritorna cache
(chiave @anagrafe)

))

(defn dammi-codice-uscita
"prende una stringa del codice uscita siope e ritorna una stringa che lo descrive"
[codice chiave]
(->> (apri-csv-xz "assets/ANAG_CODGEST_USCITE.D160624.H0102.csv.xz")
(keep #(if (string/includes? (str %) codice) %))
(into [["codice" "categoria" "descrizione" "creazione" "scadenza"]])
mappify
(keep #(if (= (:codice %) codice) %))
first
chiave
))

(defn analizza-dati [dati]
(let [colonne [:2016 :2015 :2014 :siope :desc]
Expand All @@ -33,7 +56,7 @@
:2014 [#(if (nil? %) 0 (quot (read-string %) 100)) :importo_2014]
:siope [read-string :codice_siope]
;; :uscita [#(if (nil? %) 0 (/ (read-string %) 100)) :imp_uscite_att]
:desc :descrizione_codice
:desc [#(dammi-codice-uscita % :descrizione) :codice_siope]
} dati)]
(huri/select-cols colonne rilievo))
)
Expand All @@ -43,7 +66,9 @@
:columns (some keys dati))
)

(defn leggibile [num]
(defn leggibile
"prende un numero e restituisce una stringa leggibile"
[num]
(cond
(nil? num) "zero"
(< num 1) "zero"
Expand Down

0 comments on commit 046531a

Please sign in to comment.