Commit ae820b8b authored by Alexandre Delanoë's avatar Alexandre Delanoë

Merge remote-tracking branch 'origin/dev-hackathon-fixes' into dev-merge

parents 59fc9cfd 5a1ba21f
...@@ -26,8 +26,8 @@ import Data.ByteString.Lazy (writeFile) ...@@ -26,8 +26,8 @@ import Data.ByteString.Lazy (writeFile)
import Data.Either (Either(..)) import Data.Either (Either(..))
import Data.List (cycle, concat, unwords) import Data.List (cycle, concat, unwords)
import Data.List.Split (chunksOf) import Data.List.Split (chunksOf)
import Data.Map (Map) import Data.Map.Strict (Map)
import qualified Data.Map as DM import qualified Data.Map.Strict as DM
import Data.Text (pack, Text) import Data.Text (pack, Text)
import qualified Data.Text as DT import qualified Data.Text as DT
import Data.Tuple.Extra (both) import Data.Tuple.Extra (both)
...@@ -142,8 +142,8 @@ terms' pats txt = pure $ concat $ extractTermsWithList pats txt ...@@ -142,8 +142,8 @@ terms' pats txt = pure $ concat $ extractTermsWithList pats txt
testCorpus :: [(Int, [Text])] testCorpus :: [(Int, [Text])]
testCorpus = [ (1998, [pack "The beees"]) testCorpus = [ (1998, [pack "The beees"])
, (1999, [ pack "The bees and the flowers" , (1999, [ pack "The bees and the flowers"
--, pack "The bees and the flowers" --, pack "The bees and the flowers"
]) ])
] ]
...@@ -151,4 +151,3 @@ testTermList :: TermList ...@@ -151,4 +151,3 @@ testTermList :: TermList
testTermList = [ ([pack "bee"], [[pack "bees"]]) testTermList = [ ([pack "bee"], [[pack "bees"]])
, ([pack "flower"], [[pack "flowers"]]) , ([pack "flower"], [[pack "flowers"]])
] ]
...@@ -344,6 +344,7 @@ library ...@@ -344,6 +344,7 @@ library
OverloadedStrings OverloadedStrings
RankNTypes RankNTypes
RecordWildCards RecordWildCards
StrictData
ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates -Wmissing-signatures -Wunused-binds -Wunused-imports -Werror -freduction-depth=300 ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates -Wmissing-signatures -Wunused-binds -Wunused-imports -Werror -freduction-depth=300
build-depends: build-depends:
HSvm HSvm
...@@ -542,6 +543,7 @@ executable gargantext-admin ...@@ -542,6 +543,7 @@ executable gargantext-admin
OverloadedStrings OverloadedStrings
RankNTypes RankNTypes
RecordWildCards RecordWildCards
StrictData
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures
build-depends: build-depends:
base base
...@@ -569,6 +571,7 @@ executable gargantext-cbor2json ...@@ -569,6 +571,7 @@ executable gargantext-cbor2json
OverloadedStrings OverloadedStrings
RankNTypes RankNTypes
RecordWildCards RecordWildCards
StrictData
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures
build-depends: build-depends:
aeson aeson
...@@ -600,6 +603,7 @@ executable gargantext-cli ...@@ -600,6 +603,7 @@ executable gargantext-cli
OverloadedStrings OverloadedStrings
RankNTypes RankNTypes
RecordWildCards RecordWildCards
StrictData
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures
build-depends: build-depends:
aeson aeson
...@@ -638,6 +642,7 @@ executable gargantext-import ...@@ -638,6 +642,7 @@ executable gargantext-import
OverloadedStrings OverloadedStrings
RankNTypes RankNTypes
RecordWildCards RecordWildCards
StrictData
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures
build-depends: build-depends:
base base
...@@ -666,6 +671,7 @@ executable gargantext-init ...@@ -666,6 +671,7 @@ executable gargantext-init
OverloadedStrings OverloadedStrings
RankNTypes RankNTypes
RecordWildCards RecordWildCards
StrictData
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures
build-depends: build-depends:
base base
...@@ -693,6 +699,7 @@ executable gargantext-invitations ...@@ -693,6 +699,7 @@ executable gargantext-invitations
OverloadedStrings OverloadedStrings
RankNTypes RankNTypes
RecordWildCards RecordWildCards
StrictData
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures
build-depends: build-depends:
base base
...@@ -720,6 +727,7 @@ executable gargantext-phylo ...@@ -720,6 +727,7 @@ executable gargantext-phylo
OverloadedStrings OverloadedStrings
RankNTypes RankNTypes
RecordWildCards RecordWildCards
StrictData
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures
build-depends: build-depends:
aeson aeson
...@@ -761,6 +769,7 @@ executable gargantext-server ...@@ -761,6 +769,7 @@ executable gargantext-server
OverloadedStrings OverloadedStrings
RankNTypes RankNTypes
RecordWildCards RecordWildCards
StrictData
ghc-options: -Wall -O2 -Wcompat -Wmissing-signatures -rtsopts -threaded -with-rtsopts=-N -with-rtsopts=-T -fprof-auto ghc-options: -Wall -O2 -Wcompat -Wmissing-signatures -rtsopts -threaded -with-rtsopts=-N -with-rtsopts=-T -fprof-auto
build-depends: build-depends:
base base
...@@ -795,6 +804,7 @@ executable gargantext-upgrade ...@@ -795,6 +804,7 @@ executable gargantext-upgrade
OverloadedStrings OverloadedStrings
RankNTypes RankNTypes
RecordWildCards RecordWildCards
StrictData
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures
build-depends: build-depends:
base base
...@@ -839,6 +849,7 @@ test-suite garg-test ...@@ -839,6 +849,7 @@ test-suite garg-test
OverloadedStrings OverloadedStrings
RankNTypes RankNTypes
RecordWildCards RecordWildCards
StrictData
DataKinds DataKinds
DeriveGeneric DeriveGeneric
FlexibleContexts FlexibleContexts
...@@ -883,6 +894,7 @@ test-suite jobqueue-test ...@@ -883,6 +894,7 @@ test-suite jobqueue-test
OverloadedStrings OverloadedStrings
RankNTypes RankNTypes
RecordWildCards RecordWildCards
StrictData
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
build-depends: build-depends:
async async
......
...@@ -32,6 +32,7 @@ default-extensions: ...@@ -32,6 +32,7 @@ default-extensions:
- OverloadedStrings - OverloadedStrings
- RankNTypes - RankNTypes
- RecordWildCards - RecordWildCards
- StrictData
data-files: data-files:
- ekg-assets/index.html - ekg-assets/index.html
- ekg-assets/monitor.js - ekg-assets/monitor.js
......
...@@ -28,7 +28,7 @@ module Core.Text.Examples ...@@ -28,7 +28,7 @@ module Core.Text.Examples
{- {-
import Data.Array.Accelerate (toList, Matrix) import Data.Array.Accelerate (toList, Matrix)
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Ord (Down(..)) import Data.Ord (Down(..))
import Data.Text (Text) import Data.Text (Text)
import Data.Tuple.Extra (both) import Data.Tuple.Extra (both)
...@@ -43,7 +43,7 @@ import Gargantext.Core.Viz.Graph.Index ...@@ -43,7 +43,7 @@ import Gargantext.Core.Viz.Graph.Index
import Gargantext.Prelude import Gargantext.Prelude
import qualified Data.Array.Accelerate as DAA import qualified Data.Array.Accelerate as DAA
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.Text as Text import qualified Data.Text as Text
-- | Sentences -- | Sentences
...@@ -100,11 +100,11 @@ ex_cooc = cooc <$> ex_terms ...@@ -100,11 +100,11 @@ ex_cooc = cooc <$> ex_terms
-- | Tests the specificity and genericity -- | Tests the specificity and genericity
-- --
-- >>> ex_cooc_mat -- >>> ex_cooc_mat
-- (fromList [(["glass"],0),(["spoon"],1),(["table"],2),(["wine"],3)],Matrix (Z :. 4 :. 4) -- (fromList [(["glass"],0),(["spoon"],1),(["table"],2),(["wine"],3)],Matrix (Z :. 4 :. 4)
-- [ 4, 0, 0, 0, -- [ 4, 0, 0, 0,
-- 1, 2, 0, 0, -- 1, 2, 0, 0,
-- 3, 2, 4, 0, -- 3, 2, 4, 0,
-- 3, 1, 2, 3],Matrix (Z :. 4 :. 4) -- 3, 1, 2, 3],Matrix (Z :. 4 :. 4)
-- [ 1.0, 0.25, 0.75, 0.75, -- [ 1.0, 0.25, 0.75, 0.75,
-- 0.0, 1.0, 1.0, 0.5, -- 0.0, 1.0, 1.0, 0.5,
-- 0.0, 0.0, 1.0, 0.5, -- 0.0, 0.0, 1.0, 0.5,
......
...@@ -11,7 +11,7 @@ module Gargantext.API.GraphQL where ...@@ -11,7 +11,7 @@ module Gargantext.API.GraphQL where
import Data.ByteString.Lazy.Char8 import Data.ByteString.Lazy.Char8
( ByteString ( ByteString
) )
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Morpheus import Data.Morpheus
( App ( App
, deriveApp ) , deriveApp )
......
...@@ -28,20 +28,20 @@ import Gargantext.Prelude ...@@ -28,20 +28,20 @@ import Gargantext.Prelude
import GHC.Generics (Generic) import GHC.Generics (Generic)
data AnnuaireContact = AnnuaireContact data AnnuaireContact = AnnuaireContact
{ ac_title :: Maybe Text { ac_title :: !(Maybe Text)
, ac_source :: Maybe Text , ac_source :: !(Maybe Text)
, ac_id :: Int , ac_id :: !Int
, ac_firstName :: Maybe Text , ac_firstName :: !(Maybe Text)
, ac_lastName :: Maybe Text , ac_lastName :: !(Maybe Text)
, ac_labTeamDepts :: [Text] , ac_labTeamDepts :: ![Text]
, ac_organization :: [Text] , ac_organization :: ![Text]
, ac_role :: Maybe Text , ac_role :: !(Maybe Text)
, ac_office :: Maybe Text , ac_office :: !(Maybe Text)
, ac_country :: Maybe Text , ac_country :: !(Maybe Text)
, ac_city :: Maybe Text , ac_city :: !(Maybe Text)
, ac_touchMail :: Maybe Text , ac_touchMail :: !(Maybe Text)
, ac_touchPhone :: Maybe Text , ac_touchPhone :: !(Maybe Text)
, ac_touchUrl :: Maybe Text , ac_touchUrl :: !(Maybe Text)
} }
deriving (Generic, GQLType, Show) deriving (Generic, GQLType, Show)
......
...@@ -6,8 +6,8 @@ module Gargantext.API.GraphQL.AsyncTask where ...@@ -6,8 +6,8 @@ module Gargantext.API.GraphQL.AsyncTask where
import Control.Concurrent.Async (poll) import Control.Concurrent.Async (poll)
import Control.Concurrent.MVar (readMVar) import Control.Concurrent.MVar (readMVar)
import Control.Lens import Control.Lens
import Data.Map (Map) import Data.Map.Strict (Map)
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import Control.Monad.Reader (ask, liftIO) import Control.Monad.Reader (ask, liftIO)
import Data.Either (Either(..)) import Data.Either (Either(..))
import qualified Data.IntMap.Strict as IntMap import qualified Data.IntMap.Strict as IntMap
......
...@@ -13,16 +13,15 @@ import Data.Morpheus.Types ...@@ -13,16 +13,15 @@ import Data.Morpheus.Types
, lift , lift
) )
import Data.Text (Text, pack) import Data.Text (Text, pack)
import Data.Time (UTCTime)
import Data.Time.Format.ISO8601 (iso8601Show) import Data.Time.Format.ISO8601 (iso8601Show)
import Gargantext.API.Admin.Types (HasSettings) import Gargantext.API.Admin.Types (HasSettings)
import Gargantext.API.Prelude (GargM, GargError) import Gargantext.API.Prelude (GargM, GargError)
import Gargantext.Core.Types.Search (HyperdataRow(..), toHyperdataRow) import Gargantext.Core.Types.Search (HyperdataRow(..), toHyperdataRow)
import Gargantext.Core.Mail.Types (HasMail) import Gargantext.Core.Mail.Types (HasMail)
import Gargantext.Database.Admin.Types.Hyperdata (HyperdataDocument) import Gargantext.Database.Admin.Types.Hyperdata (HyperdataDocument)
import Gargantext.Database.Admin.Types.Node (ContextTitle, NodeId(..), NodeTypeId, ParentId, UserId, unNodeId) import Gargantext.Database.Admin.Types.Node (ContextTitle, NodeId(..), NodeTypeId, UserId, unNodeId)
import Gargantext.Database.Prelude (HasConnectionPool, HasConfig) import Gargantext.Database.Prelude (HasConnectionPool, HasConfig)
import Gargantext.Database.Query.Table.NodeContext (getNodeContext, getContextsForNgrams) import Gargantext.Database.Query.Table.NodeContext (getNodeContext, getContextsForNgramsTerms, ContextForNgramsTerms(..))
import qualified Gargantext.Database.Query.Table.NodeContext as DNC import qualified Gargantext.Database.Query.Table.NodeContext as DNC
import Gargantext.Database.Schema.NodeContext (NodeContext, NodeContextPoly(..)) import Gargantext.Database.Schema.NodeContext (NodeContext, NodeContextPoly(..))
import Gargantext.Prelude import Gargantext.Prelude
...@@ -38,31 +37,33 @@ data ContextGQL = ContextGQL ...@@ -38,31 +37,33 @@ data ContextGQL = ContextGQL
, c_name :: ContextTitle , c_name :: ContextTitle
, c_date :: Text -- TODO UTCTime , c_date :: Text -- TODO UTCTime
, c_hyperdata :: Maybe HyperdataRowDocumentGQL , c_hyperdata :: Maybe HyperdataRowDocumentGQL
, c_score :: Maybe Double
, c_category :: Maybe Int
} deriving (Generic, GQLType, Show) } deriving (Generic, GQLType, Show)
-- We need this type instead of HyperdataRow(HyperdataRowDocument) -- We need this type instead of HyperdataRow(HyperdataRowDocument)
-- because the latter is a sum type (of doc and contact) and we return -- because the latter is a sum type (of doc and contact) and we return
-- docs here only. Without the union type, GraphQL endpoint is simpler. -- docs here only. Without the union type, GraphQL endpoint is simpler.
data HyperdataRowDocumentGQL = data HyperdataRowDocumentGQL =
HyperdataRowDocumentGQL { hrd_abstract :: !Text HyperdataRowDocumentGQL { hrd_abstract :: Text
, hrd_authors :: !Text , hrd_authors :: Text
, hrd_bdd :: !Text , hrd_bdd :: Text
, hrd_doi :: !Text , hrd_doi :: Text
, hrd_institutes :: !Text , hrd_institutes :: Text
, hrd_language_iso2 :: !Text , hrd_language_iso2 :: Text
, hrd_page :: !Int , hrd_page :: Int
, hrd_publication_date :: !Text , hrd_publication_date :: Text
, hrd_publication_day :: !Int , hrd_publication_day :: Int
, hrd_publication_hour :: !Int , hrd_publication_hour :: Int
, hrd_publication_minute :: !Int , hrd_publication_minute :: Int
, hrd_publication_month :: !Int , hrd_publication_month :: Int
, hrd_publication_second :: !Int , hrd_publication_second :: Int
, hrd_publication_year :: !Int , hrd_publication_year :: Int
, hrd_source :: !Text , hrd_source :: Text
, hrd_title :: !Text , hrd_title :: Text
, hrd_url :: !Text , hrd_url :: Text
, hrd_uniqId :: !Text , hrd_uniqId :: Text
, hrd_uniqIdBdd :: !Text , hrd_uniqIdBdd :: Text
} deriving (Generic, GQLType, Show) } deriving (Generic, GQLType, Show)
data NodeContextGQL = NodeContextGQL data NodeContextGQL = NodeContextGQL
...@@ -84,8 +85,8 @@ data NodeContextArgs ...@@ -84,8 +85,8 @@ data NodeContextArgs
data ContextsForNgramsArgs data ContextsForNgramsArgs
= ContextsForNgramsArgs = ContextsForNgramsArgs
{ corpus_id :: Int { corpus_id :: Int
, ngrams_ids :: [Int] , ngrams_terms :: [Text]
} deriving (Generic, GQLType) } deriving (Generic, GQLType)
data NodeContextCategoryMArgs = NodeContextCategoryMArgs data NodeContextCategoryMArgs = NodeContextCategoryMArgs
...@@ -109,8 +110,8 @@ resolveNodeContext NodeContextArgs { context_id, node_id } = ...@@ -109,8 +110,8 @@ resolveNodeContext NodeContextArgs { context_id, node_id } =
resolveContextsForNgrams resolveContextsForNgrams
:: (HasConnectionPool env, HasConfig env, HasMail env) :: (HasConnectionPool env, HasConfig env, HasMail env)
=> ContextsForNgramsArgs -> GqlM e env [ContextGQL] => ContextsForNgramsArgs -> GqlM e env [ContextGQL]
resolveContextsForNgrams ContextsForNgramsArgs { corpus_id, ngrams_ids } = resolveContextsForNgrams ContextsForNgramsArgs { corpus_id, ngrams_terms } =
dbContextForNgrams corpus_id ngrams_ids dbContextForNgrams corpus_id ngrams_terms
-- DB -- DB
...@@ -128,11 +129,11 @@ dbNodeContext context_id node_id = do ...@@ -128,11 +129,11 @@ dbNodeContext context_id node_id = do
dbContextForNgrams dbContextForNgrams
:: (HasConnectionPool env, HasConfig env, HasMail env) :: (HasConnectionPool env, HasConfig env, HasMail env)
=> Int -> [Int] -> GqlM e env [ContextGQL] => Int -> [Text] -> GqlM e env [ContextGQL]
dbContextForNgrams node_id ngrams_ids = do dbContextForNgrams node_id ngrams_terms = do
contextTuples <- lift $ getContextsForNgrams (NodeId node_id) ngrams_ids contextsForNgramsTerms <- lift $ getContextsForNgramsTerms (NodeId node_id) ngrams_terms
lift $ printDebug "[dbContextForNgrams] contextTuples" contextTuples --lift $ printDebug "[dbContextForNgrams] contextsForNgramsTerms" contextsForNgramsTerms
pure $ toContextGQL <$> contextTuples pure $ toContextGQL <$> contextsForNgramsTerms
-- Conversion functions -- Conversion functions
...@@ -146,19 +147,24 @@ toNodeContextGQL (NodeContext { _nc_node_id = NodeId nc_node_id ...@@ -146,19 +147,24 @@ toNodeContextGQL (NodeContext { _nc_node_id = NodeId nc_node_id
, nc_score = _nc_score , nc_score = _nc_score
, nc_category = _nc_category } , nc_category = _nc_category }
toContextGQL :: (NodeId, Maybe Hash, NodeTypeId, UserId, Maybe ParentId, ContextTitle, UTCTime, HyperdataDocument) -> ContextGQL toContextGQL :: ContextForNgramsTerms -> ContextGQL
toContextGQL ( c_id toContextGQL ContextForNgramsTerms { _cfnt_nodeId = c_id
, c_hash_id , _cfnt_hash = c_hash_id
, c_typename , _cfnt_nodeTypeId = c_typename
, c_user_id , _cfnt_userId = c_user_id
, m_c_parent_id , _cfnt_parentId = m_c_parent_id
, c_name , _cfnt_c_title = c_name
, c_date , _cfnt_date = c_date
, hyperdata ) = ContextGQL { c_id = unNodeId c_id , _cfnt_hyperdata =hyperdata
, c_parent_id = unNodeId <$> m_c_parent_id , _cfnt_score = c_score
, c_date = pack $ iso8601Show c_date , _cfnt_category = c_category } =
, c_hyperdata = toHyperdataRowDocumentGQL hyperdata ContextGQL { c_id = unNodeId c_id
, .. } , c_parent_id = unNodeId <$> m_c_parent_id
, c_date = pack $ iso8601Show c_date
, c_hyperdata = toHyperdataRowDocumentGQL hyperdata
, c_score
, c_category
, .. }
toHyperdataRowDocumentGQL :: HyperdataDocument -> Maybe HyperdataRowDocumentGQL toHyperdataRowDocumentGQL :: HyperdataDocument -> Maybe HyperdataRowDocumentGQL
toHyperdataRowDocumentGQL hyperdata = toHyperdataRowDocumentGQL hyperdata =
......
...@@ -42,7 +42,7 @@ resolveUsers UserArgs { user_id } = dbUsers user_id ...@@ -42,7 +42,7 @@ resolveUsers UserArgs { user_id } = dbUsers user_id
-- | Inner function to fetch the user from DB. -- | Inner function to fetch the user from DB.
dbUsers dbUsers
:: (HasConnectionPool env, HasConfig env, HasMail env) :: (HasConnectionPool env, HasConfig env, HasMail env)
=> Int -> GqlM e env ([User (GqlM e env)]) => Int -> GqlM e env [User (GqlM e env)]
dbUsers user_id = lift (map toUser <$> getUsersWithId user_id) dbUsers user_id = lift (map toUser <$> getUsersWithId user_id)
toUser toUser
......
...@@ -153,7 +153,7 @@ updateUserInfo (UserInfoMArgs { ui_id, .. }) = do ...@@ -153,7 +153,7 @@ updateUserInfo (UserInfoMArgs { ui_id, .. }) = do
pure 1 pure 1
where where
uh _ Nothing u_hyperdata = u_hyperdata uh _ Nothing u_hyperdata = u_hyperdata
uh lens' (Just val) u_hyperdata = u_hyperdata & lens' .~ Just val uh lens' (Just val) u_hyperdata = u_hyperdata & lens' ?~ val
uh' _ Nothing u_hyperdata = u_hyperdata uh' _ Nothing u_hyperdata = u_hyperdata
uh' lens' (Just val) u_hyperdata = u_hyperdata & lens' .~ val uh' lens' (Just val) u_hyperdata = u_hyperdata & lens' .~ val
nId Node {_node_id} = _node_id nId Node {_node_id} = _node_id
......
...@@ -38,7 +38,7 @@ authUser ui_id token = do ...@@ -38,7 +38,7 @@ authUser ui_id token = do
u <- liftBase $ getUserFromToken jwtS token' u <- liftBase $ getUserFromToken jwtS token'
case u of case u of
Nothing -> pure Invalid Nothing -> pure Invalid
Just au -> Just au ->
if nId au == ui_id if nId au == ui_id
then pure Valid then pure Valid
else pure Invalid else pure Invalid
......
...@@ -18,7 +18,7 @@ module Gargantext.API.Ngrams.List ...@@ -18,7 +18,7 @@ module Gargantext.API.Ngrams.List
import Control.Lens hiding (elements, Indexed) import Control.Lens hiding (elements, Indexed)
import Data.Either (Either(..)) import Data.Either (Either(..))
import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict (HashMap)
import Data.Map (Map, toList) import Data.Map.Strict (Map, toList)
import Data.Maybe (catMaybes, fromMaybe) import Data.Maybe (catMaybes, fromMaybe)
import Data.Set (Set) import Data.Set (Set)
import Data.Text (Text, concat, pack, splitOn) import Data.Text (Text, concat, pack, splitOn)
...@@ -54,7 +54,7 @@ import qualified Data.ByteString.Lazy as BSL ...@@ -54,7 +54,7 @@ import qualified Data.ByteString.Lazy as BSL
import qualified Data.Csv as Csv import qualified Data.Csv as Csv
import qualified Data.HashMap.Strict as HashMap import qualified Data.HashMap.Strict as HashMap
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.Set as Set import qualified Data.Set as Set
import qualified Data.Text as Text import qualified Data.Text as Text
import qualified Data.Vector as Vec import qualified Data.Vector as Vec
......
...@@ -16,7 +16,7 @@ module Gargantext.API.Ngrams.Prelude ...@@ -16,7 +16,7 @@ module Gargantext.API.Ngrams.Prelude
import Data.Maybe (catMaybes) import Data.Maybe (catMaybes)
import Control.Lens (view) import Control.Lens (view)
import Data.Map (fromList) import Data.Map.Strict (fromList)
import Data.Hashable (Hashable) import Data.Hashable (Hashable)
import Data.Validity import Data.Validity
import Gargantext.API.Ngrams.Types import Gargantext.API.Ngrams.Types
......
...@@ -16,12 +16,12 @@ Main exports of Gargantext: ...@@ -16,12 +16,12 @@ Main exports of Gargantext:
module Gargantext.API.Node.Corpus.Export module Gargantext.API.Node.Corpus.Export
where where
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Maybe (fromMaybe) import Data.Maybe (fromMaybe)
import Data.Set (Set) import Data.Set (Set)
import Data.Text (Text, pack) import Data.Text (Text, pack)
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.Set as Set import qualified Data.Set as Set
import qualified Data.HashMap.Strict as HashMap import qualified Data.HashMap.Strict as HashMap
import Servant (Headers, Header, addHeader) import Servant (Headers, Header, addHeader)
......
...@@ -28,7 +28,7 @@ import Test.QuickCheck (elements) ...@@ -28,7 +28,7 @@ import Test.QuickCheck (elements)
import Test.QuickCheck.Arbitrary import Test.QuickCheck.Arbitrary
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.Set as Set import qualified Data.Set as Set
import Gargantext.API.Prelude import Gargantext.API.Prelude
...@@ -121,8 +121,8 @@ toPublicData base (n , mn) = do ...@@ -121,8 +121,8 @@ toPublicData base (n , mn) = do
hd = head hd = head
$ filter (\(HyperdataField cd _ _) -> cd == JSON) $ filter (\(HyperdataField cd _ _) -> cd == JSON)
$ n^. (node_hyperdata . hc_fields) $ n^. (node_hyperdata . hc_fields)
url' :: [NodeId] -> Text url' :: [NodeId] -> Text
url' mn' = base url' mn' = base
<> "/public/" <> "/public/"
<> (cs $ show $ (maybe 0 unNodeId $ head mn')) <> (cs $ show $ (maybe 0 unNodeId $ head mn'))
<> "/file/download" <> "/file/download"
...@@ -149,7 +149,7 @@ instance ToJSON PublicData where ...@@ -149,7 +149,7 @@ instance ToJSON PublicData where
instance ToSchema PublicData instance ToSchema PublicData
instance Arbitrary PublicData where instance Arbitrary PublicData where
arbitrary = elements arbitrary = elements
$ replicate 6 defaultPublicData $ replicate 6 defaultPublicData
defaultPublicData :: PublicData defaultPublicData :: PublicData
defaultPublicData = defaultPublicData =
...@@ -160,7 +160,3 @@ defaultPublicData = ...@@ -160,7 +160,3 @@ defaultPublicData =
, date = "YY/MM/DD" , date = "YY/MM/DD"
, database = "database" , database = "database"
, author = "Author" } , author = "Author" }
...@@ -14,13 +14,13 @@ Portability : POSIX ...@@ -14,13 +14,13 @@ Portability : POSIX
module Gargantext.Core.Ext.IMT where module Gargantext.Core.Ext.IMT where
import Data.Either (Either(..)) import Data.Either (Either(..))
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Text (Text, splitOn) import Data.Text (Text, splitOn)
import qualified Data.Set as S import qualified Data.Set as S
import qualified Data.List as DL import qualified Data.List as DL
import qualified Data.Vector as DV import qualified Data.Vector as DV
import qualified Data.Map as M import qualified Data.Map.Strict as M
import qualified Prelude import qualified Prelude
import Data.Morpheus.Types (GQLType) import Data.Morpheus.Types (GQLType)
...@@ -127,7 +127,7 @@ toSchoolName t = case M.lookup t mapIdSchool of ...@@ -127,7 +127,7 @@ toSchoolName t = case M.lookup t mapIdSchool of
publisBySchool :: DV.Vector CsvHal -> [(Maybe Text, Int)] publisBySchool :: DV.Vector CsvHal -> [(Maybe Text, Int)]
publisBySchool hal_data' = Gargantext.Prelude.map (\(i,n) -> (M.lookup i mapIdSchool, n)) publisBySchool hal_data' = Gargantext.Prelude.map (\(i,n) -> (M.lookup i mapIdSchool, n))
$ DL.filter (\i -> S.member (fst i) names) $ DL.filter (\i -> S.member (fst i) names)
$ DL.reverse $ DL.reverse
$ DL.sortOn snd $ DL.sortOn snd
$ M.toList $ M.toList
...@@ -136,5 +136,3 @@ publisBySchool hal_data' = Gargantext.Prelude.map (\(i,n) -> (M.lookup i mapIdSc ...@@ -136,5 +136,3 @@ publisBySchool hal_data' = Gargantext.Prelude.map (\(i,n) -> (M.lookup i mapIdSc
$ DV.toList $ DV.toList
$ DV.map (\n -> splitOn ( ", ") (csvHal_instStructId_i n) ) $ DV.map (\n -> splitOn ( ", ") (csvHal_instStructId_i n) )
$ DV.filter (\n -> csvHal_publication_year n == 2017) hal_data' $ DV.filter (\n -> csvHal_publication_year n == 2017) hal_data'
...@@ -19,8 +19,8 @@ module Gargantext.Core.Methods.Graph.BAC.Proxemy ...@@ -19,8 +19,8 @@ module Gargantext.Core.Methods.Graph.BAC.Proxemy
--import Debug.SimpleReflect --import Debug.SimpleReflect
import Gargantext.Prelude import Gargantext.Prelude
import Data.Map (Map) import Data.Map.Strict (Map)
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.List as List import qualified Data.List as List
--import Gargantext.Core.Viz.Graph.IGraph --import Gargantext.Core.Viz.Graph.IGraph
import Gargantext.Core.Viz.Graph.FGL import Gargantext.Core.Viz.Graph.FGL
...@@ -196,7 +196,7 @@ test_prox 0 = [ (0,[(0,1.0000),(1,0.0000),(2,0.0000),(3,0.0000),(4,0.0000),(5,0. ...@@ -196,7 +196,7 @@ test_prox 0 = [ (0,[(0,1.0000),(1,0.0000),(2,0.0000),(3,0.0000),(4,0.0000),(5,0.
] ]
--{- --{-
--, longueur balade , 1]), --, longueur balade , 1]),
test_prox 1 = [(0,[(0,0.2000),(1,0.2000),(2,0.2000),(3,0.0000),(4,0.2000),(5,0.2000),(6,0.0000),(7,0.0000),(8,0.0000),(9,0.0000),(10,0.0000),(11,0.0000),(12,0.0000),(13,0.0000),(14,0.0000),(15,0.0000),(16,0.0000),(17,0.0000),(18,0.0000),(19,0.0000),(20,0.0000)]) test_prox 1 = [(0,[(0,0.2000),(1,0.2000),(2,0.2000),(3,0.0000),(4,0.2000),(5,0.2000),(6,0.0000),(7,0.0000),(8,0.0000),(9,0.0000),(10,0.0000),(11,0.0000),(12,0.0000),(13,0.0000),(14,0.0000),(15,0.0000),(16,0.0000),(17,0.0000),(18,0.0000),(19,0.0000),(20,0.0000)])
, (1,[(0,0.2500),(1,0.2500),(2,0.0000),(3,0.2500),(4,0.0000),(5,0.0000),(6,0.0000),(7,0.0000),(8,0.2500),(9,0.0000),(10,0.0000),(11,0.0000),(12,0.0000),(13,0.0000),(14,0.0000),(15,0.0000),(16,0.0000),(17,0.0000),(18,0.0000),(19,0.0000),(20,0.0000)]) , (1,[(0,0.2500),(1,0.2500),(2,0.0000),(3,0.2500),(4,0.0000),(5,0.0000),(6,0.0000),(7,0.0000),(8,0.2500),(9,0.0000),(10,0.0000),(11,0.0000),(12,0.0000),(13,0.0000),(14,0.0000),(15,0.0000),(16,0.0000),(17,0.0000),(18,0.0000),(19,0.0000),(20,0.0000)])
, (2,[(0,0.1429),(1,0.0000),(2,0.1429),(3,0.1429),(4,0.1429),(5,0.1429),(6,0.1429),(7,0.0000),(8,0.0000),(9,0.0000),(10,0.0000),(11,0.0000),(12,0.0000),(13,0.0000),(14,0.0000),(15,0.0000),(16,0.1429),(17,0.0000),(18,0.0000),(19,0.0000),(20,0.0000)]) , (2,[(0,0.1429),(1,0.0000),(2,0.1429),(3,0.1429),(4,0.1429),(5,0.1429),(6,0.1429),(7,0.0000),(8,0.0000),(9,0.0000),(10,0.0000),(11,0.0000),(12,0.0000),(13,0.0000),(14,0.0000),(15,0.0000),(16,0.1429),(17,0.0000),(18,0.0000),(19,0.0000),(20,0.0000)])
......
...@@ -54,8 +54,8 @@ module Gargantext.Core.Methods.Graph.MaxClique ...@@ -54,8 +54,8 @@ module Gargantext.Core.Methods.Graph.MaxClique
import Data.Maybe (catMaybes) import Data.Maybe (catMaybes)
import Gargantext.Prelude import Gargantext.Prelude
import Data.Map (Map) import Data.Map.Strict (Map)
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import Data.List (sortOn, nub, concat) import Data.List (sortOn, nub, concat)
import Data.Set (Set) import Data.Set (Set)
import Data.Set (fromList, toList, isSubsetOf) import Data.Set (fromList, toList, isSubsetOf)
...@@ -119,7 +119,7 @@ maxCliques g = map (\n -> subMaxCliques g (n:ns)) ns & concat & takeMax ...@@ -119,7 +119,7 @@ maxCliques g = map (\n -> subMaxCliques g (n:ns)) ns & concat & takeMax
. purge . purge
. map fromList . map fromList
. sortOn length . sortOn length
. nub . nub
where where
purge :: [Set Node] -> [Set Node] purge :: [Set Node] -> [Set Node]
purge [] = [] purge [] = []
......
{-| {-|
Module : Gargantext.Core.Statistics Module : Gargantext.Core.Statistics
Description : Description :
Copyright : (c) CNRS, 2017-Present Copyright : (c) CNRS, 2017-Present
License : AGPL + CECILL v3 License : AGPL + CECILL v3
Maintainer : team@gargantext.org Maintainer : team@gargantext.org
...@@ -14,13 +14,13 @@ module Gargantext.Core.Statistics ...@@ -14,13 +14,13 @@ module Gargantext.Core.Statistics
where where
import Data.Map (Map) import Data.Map.Strict (Map)
import Gargantext.Prelude import Gargantext.Prelude
import Numeric.Statistics.PCA (pcaReduceN) import Numeric.Statistics.PCA (pcaReduceN)
import Data.Array.IArray (Array, listArray, elems) import Data.Array.IArray (Array, listArray, elems)
import qualified Data.Vector.Storable as Vec import qualified Data.Vector.Storable as Vec
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
data Dimension = Dimension Int data Dimension = Dimension Int
...@@ -38,5 +38,3 @@ pcaReduceTo (Dimension d) m = Map.fromList ...@@ -38,5 +38,3 @@ pcaReduceTo (Dimension d) m = Map.fromList
m'' = listArray (1, List.length m') m' m'' = listArray (1, List.length m') m'
(txts,m') = List.unzip $ Map.toList m (txts,m') = List.unzip $ Map.toList m
...@@ -19,7 +19,7 @@ module Gargantext.Core.Text.List ...@@ -19,7 +19,7 @@ module Gargantext.Core.Text.List
import Control.Lens hiding (both) -- ((^.), view, over, set, (_1), (_2)) import Control.Lens hiding (both) -- ((^.), view, over, set, (_1), (_2))
import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict (HashMap)
import Data.HashSet (HashSet) import Data.HashSet (HashSet)
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Monoid (mempty) import Data.Monoid (mempty)
import Data.Ord (Down(..)) import Data.Ord (Down(..))
import Data.Set (Set) import Data.Set (Set)
...@@ -50,7 +50,7 @@ import Gargantext.Prelude ...@@ -50,7 +50,7 @@ import Gargantext.Prelude
import qualified Data.HashMap.Strict as HashMap import qualified Data.HashMap.Strict as HashMap
import qualified Data.HashSet as HashSet import qualified Data.HashSet as HashSet
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.Set as Set import qualified Data.Set as Set
import qualified Gargantext.Data.HashMap.Strict.Utils as HashMap import qualified Gargantext.Data.HashMap.Strict.Utils as HashMap
......
{-| {-|
Module : Gargantext.Core.Text.List.Group.WithStem Module : Gargantext.Core.Text.List.Group.WithStem
Description : Description :
Copyright : (c) CNRS, 2017-Present Copyright : (c) CNRS, 2017-Present
License : AGPL + CECILL v3 License : AGPL + CECILL v3
Maintainer : team@gargantext.org Maintainer : team@gargantext.org
...@@ -20,7 +20,7 @@ module Gargantext.Core.Text.List.Group.WithStem ...@@ -20,7 +20,7 @@ module Gargantext.Core.Text.List.Group.WithStem
import Control.Lens (makeLenses) import Control.Lens (makeLenses)
import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict (HashMap)
import Data.HashSet (HashSet) import Data.HashSet (HashSet)
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Maybe (catMaybes) import Data.Maybe (catMaybes)
import Gargantext.API.Ngrams.Types import Gargantext.API.Ngrams.Types
import Gargantext.Core (Lang(..), PosTagAlgo(..), Form, Lem) import Gargantext.Core (Lang(..), PosTagAlgo(..), Form, Lem)
...@@ -32,7 +32,7 @@ import Gargantext.Prelude ...@@ -32,7 +32,7 @@ import Gargantext.Prelude
import qualified Data.HashMap.Strict as HashMap import qualified Data.HashMap.Strict as HashMap
import qualified Data.HashSet as Set import qualified Data.HashSet as Set
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.Map.Strict.Patch as PatchMap import qualified Data.Map.Strict.Patch as PatchMap
import qualified Data.Patch.Class as Patch (Replace(..)) import qualified Data.Patch.Class as Patch (Replace(..))
import qualified Data.Text as Text import qualified Data.Text as Text
...@@ -86,7 +86,7 @@ groupWith (GroupParams { unGroupParams_lang = l }) t = ...@@ -86,7 +86,7 @@ groupWith (GroupParams { unGroupParams_lang = l }) t =
$ unNgramsTerm t $ unNgramsTerm t
-- | This lemmatization group done with CoreNLP algo (or others) -- | This lemmatization group done with CoreNLP algo (or others)
groupWith (GroupWithPosTag { _gwl_map = m }) t = groupWith (GroupWithPosTag { _gwl_map = m }) t =
case HashMap.lookup (unNgramsTerm t) m of case HashMap.lookup (unNgramsTerm t) m of
Nothing -> clean t Nothing -> clean t
Just t' -> clean $ NgramsTerm t' Just t' -> clean $ NgramsTerm t'
...@@ -121,7 +121,7 @@ patch s = case Set.size s > 1 of ...@@ -121,7 +121,7 @@ patch s = case Set.size s > 1 of
parent <- headMay ngrams parent <- headMay ngrams
let children = List.tail ngrams let children = List.tail ngrams
pure (parent, toNgramsPatch children) pure (parent, toNgramsPatch children)
toNgramsPatch :: [NgramsTerm] -> NgramsPatch toNgramsPatch :: [NgramsTerm] -> NgramsPatch
toNgramsPatch children = NgramsPatch children' Patch.Keep toNgramsPatch children = NgramsPatch children' Patch.Keep
where where
......
...@@ -19,8 +19,8 @@ module Gargantext.Core.Text.List.Learn ...@@ -19,8 +19,8 @@ module Gargantext.Core.Text.List.Learn
import qualified Data.IntMap as IntMap import qualified Data.IntMap as IntMap
import qualified Data.List as List import qualified Data.List as List
import Data.Map (Map) import Data.Map.Strict (Map)
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.SVM as SVM import qualified Data.SVM as SVM
import qualified Data.Vector as Vec import qualified Data.Vector as Vec
...@@ -114,7 +114,7 @@ grid s e tr te = do ...@@ -114,7 +114,7 @@ grid s e tr te = do
$ Map.toList t $ Map.toList t
res' <- liftBase $ predictList m toGuess res' <- liftBase $ predictList m toGuess
pure $ score'' $ score' $ List.zip res res' pure $ score'' $ score' $ List.zip res res'
score <- mapM (getScore model') te' score <- mapM (getScore model') te'
pure (mean score, model') pure (mean score, model')
......
...@@ -19,7 +19,7 @@ module Gargantext.Core.Text.List.Merge ...@@ -19,7 +19,7 @@ module Gargantext.Core.Text.List.Merge
where where
import Control.Lens (view) import Control.Lens (view)
import Data.Map (Map) import Data.Map.Strict (Map)
import Gargantext.API.Ngrams import Gargantext.API.Ngrams
import Gargantext.API.Ngrams.Types import Gargantext.API.Ngrams.Types
import Gargantext.Prelude import Gargantext.Prelude
......
...@@ -17,7 +17,7 @@ import Control.Lens (view) ...@@ -17,7 +17,7 @@ import Control.Lens (view)
import Control.Monad (mzero) import Control.Monad (mzero)
import Data.Aeson import Data.Aeson
import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict (HashMap)
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Monoid (mconcat) import Data.Monoid (mconcat)
import Data.Pool import Data.Pool
import Data.Swagger import Data.Swagger
...@@ -36,7 +36,7 @@ import Gargantext.Database.Schema.Ngrams (NgramsType) ...@@ -36,7 +36,7 @@ import Gargantext.Database.Schema.Ngrams (NgramsType)
import Gargantext.Prelude import Gargantext.Prelude
import Web.Internal.HttpApiData (ToHttpApiData, FromHttpApiData, parseUrlPiece, toUrlPiece) import Web.Internal.HttpApiData (ToHttpApiData, FromHttpApiData, parseUrlPiece, toUrlPiece)
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.Scientific as Scientific import qualified Data.Scientific as Scientific
import qualified Data.Text as T import qualified Data.Text as T
import qualified Data.Vector as V import qualified Data.Vector as V
...@@ -186,4 +186,3 @@ getHistory types listsId = do ...@@ -186,4 +186,3 @@ getHistory types listsId = do
pure $ Map.map (Map.filterWithKey (\k _ -> List.elem k types)) pure $ Map.map (Map.filterWithKey (\k _ -> List.elem k types))
$ Map.filterWithKey (\k _ -> List.elem k listsId) $ Map.filterWithKey (\k _ -> List.elem k listsId)
$ Map.fromListWith (Map.unionWith (<>)) nsp $ Map.fromListWith (Map.unionWith (<>)) nsp
...@@ -12,7 +12,7 @@ module Gargantext.Core.Text.List.Social.Patch ...@@ -12,7 +12,7 @@ module Gargantext.Core.Text.List.Social.Patch
where where
import Control.Lens hiding (cons) import Control.Lens hiding (cons)
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Hashable (Hashable) import Data.Hashable (Hashable)
import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict (HashMap)
import Data.Monoid import Data.Monoid
...@@ -23,7 +23,7 @@ import Gargantext.Core.Text.List.Social.Prelude ...@@ -23,7 +23,7 @@ import Gargantext.Core.Text.List.Social.Prelude
import Gargantext.Core.Types (ListId) import Gargantext.Core.Types (ListId)
import Gargantext.Database.Schema.Ngrams (NgramsType(..)) import Gargantext.Database.Schema.Ngrams (NgramsType(..))
import Gargantext.Prelude import Gargantext.Prelude
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.List as List import qualified Data.List as List
import qualified Data.HashMap.Strict as HashMap import qualified Data.HashMap.Strict as HashMap
import qualified Data.Patch.Class as Patch (Replace(..)) import qualified Data.Patch.Class as Patch (Replace(..))
...@@ -96,13 +96,13 @@ addScorePatch fl (p, NgramsPatch { _patch_children ...@@ -96,13 +96,13 @@ addScorePatch fl (p, NgramsPatch { _patch_children
-- | Inserting a new Ngrams -- | Inserting a new Ngrams
addScorePatch fl (t, NgramsReplace { _patch_old = Nothing addScorePatch fl (t, NgramsReplace { _patch_old = Nothing
, _patch_new = Just nre }) = , _patch_new = Just nre }) =
childrenScore 1 t (nre ^. nre_children) childrenScore 1 t (nre ^. nre_children)
$ fl & flc_scores . at t %~ (score fls_listType $ nre ^. nre_list) 1 $ fl & flc_scores . at t %~ (score fls_listType $ nre ^. nre_list) 1
& flc_cont %~ (HashMap.delete t) & flc_cont %~ (HashMap.delete t)
addScorePatch fl (t, NgramsReplace { _patch_old = Just old_nre addScorePatch fl (t, NgramsReplace { _patch_old = Just old_nre
, _patch_new = maybe_new_nre }) = , _patch_new = maybe_new_nre }) =
let fl' = childrenScore (-1) t (old_nre ^. nre_children) let fl' = childrenScore (-1) t (old_nre ^. nre_children)
$ fl & flc_scores . at t %~ (score fls_listType $ old_nre ^. nre_list) (-1) $ fl & flc_scores . at t %~ (score fls_listType $ old_nre ^. nre_list) (-1)
& flc_cont %~ (HashMap.delete t) & flc_cont %~ (HashMap.delete t)
in case maybe_new_nre of in case maybe_new_nre of
...@@ -145,4 +145,3 @@ score field list n m = (Just mempty <> m) ...@@ -145,4 +145,3 @@ score field list n m = (Just mempty <> m)
%~ (<> Just n) %~ (<> Just n)
------------------------------------------------------------------------ ------------------------------------------------------------------------
...@@ -19,7 +19,7 @@ module Gargantext.Core.Text.List.Social.Prelude ...@@ -19,7 +19,7 @@ module Gargantext.Core.Text.List.Social.Prelude
where where
import Control.Lens import Control.Lens
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict (HashMap)
import Data.Hashable (Hashable) import Data.Hashable (Hashable)
import Data.Monoid import Data.Monoid
...@@ -128,4 +128,3 @@ unPatchMapToMap = Map.fromList . PatchMap.toList ...@@ -128,4 +128,3 @@ unPatchMapToMap = Map.fromList . PatchMap.toList
unNgramsTablePatch :: NgramsTablePatch -> HashMap NgramsTerm NgramsPatch unNgramsTablePatch :: NgramsTablePatch -> HashMap NgramsTerm NgramsPatch
unNgramsTablePatch (NgramsTablePatch p) = unPatchMapToHashMap p unNgramsTablePatch (NgramsTablePatch p) = unPatchMapToHashMap p
...@@ -19,7 +19,7 @@ module Gargantext.Core.Text.Metrics ...@@ -19,7 +19,7 @@ module Gargantext.Core.Text.Metrics
--import Data.Array.Accelerate ((:.)(..), Z(..)) --import Data.Array.Accelerate ((:.)(..), Z(..))
--import Math.KMeans (kmeans, euclidSq, elements) --import Math.KMeans (kmeans, euclidSq, elements)
import Control.Lens (makeLenses) import Control.Lens (makeLenses)
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Monoid (Monoid, mempty) import Data.Monoid (Monoid, mempty)
import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict (HashMap)
import Data.Semigroup (Semigroup) import Data.Semigroup (Semigroup)
...@@ -29,7 +29,7 @@ import Gargantext.Core.Viz.Graph.Index ...@@ -29,7 +29,7 @@ import Gargantext.Core.Viz.Graph.Index
import Gargantext.Prelude import Gargantext.Prelude
import qualified Data.Array.Accelerate as DAA import qualified Data.Array.Accelerate as DAA
import qualified Data.Array.Accelerate.Interpreter as DAA import qualified Data.Array.Accelerate.Interpreter as DAA
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.Vector as V import qualified Data.Vector as V
import qualified Data.Vector.Storable as Vec import qualified Data.Vector.Storable as Vec
import qualified Data.HashMap.Strict as HashMap import qualified Data.HashMap.Strict as HashMap
......
...@@ -13,19 +13,20 @@ Portability : POSIX ...@@ -13,19 +13,20 @@ Portability : POSIX
module Gargantext.Core.Text.Metrics.Utils where module Gargantext.Core.Text.Metrics.Utils where
import Gargantext.Prelude import Gargantext.Prelude
import Data.Map (empty, Map, insertWith, toList) import Data.Map.Strict (Map, toList)
import qualified Data.List as L import qualified Data.List as L
import qualified Data.Map.Strict as DM
countElem :: (Ord k) => Data.Map.Map k Int -> k -> Data.Map.Map k Int countElem :: (Ord k) => DM.Map k Int -> k -> DM.Map k Int
countElem m e = Data.Map.insertWith (+) e 1 m countElem m e = DM.insertWith (+) e 1 m
freq :: (Ord k) => [k] -> Data.Map.Map k Int freq :: (Ord k) => [k] -> DM.Map k Int
freq = foldl countElem Data.Map.empty freq = foldl countElem DM.empty
getMaxFromMap :: Ord a => Map a1 a -> [a1] getMaxFromMap :: Ord a => Map a1 a -> [a1]
getMaxFromMap m = go [] Nothing (toList m) getMaxFromMap m = go [] Nothing (toList m)
where where
go ks _ [] = ks go ks _ [] = ks
go ks Nothing ((k,v):rest) = go (k:ks) (Just v) rest go ks Nothing ((k,v):rest) = go (k:ks) (Just v) rest
go ks (Just u) ((k,v):rest) go ks (Just u) ((k,v):rest)
| v < u = go ks (Just u) rest | v < u = go ks (Just u) rest
...@@ -39,5 +40,3 @@ average x = L.sum x / L.genericLength x ...@@ -39,5 +40,3 @@ average x = L.sum x / L.genericLength x
average' :: [Int] -> Double average' :: [Int] -> Double
average' x = (L.sum y) / (L.genericLength y) where average' x = (L.sum y) / (L.genericLength y) where
y = L.map fromIntegral x y = L.map fromIntegral x
...@@ -38,7 +38,7 @@ module Gargantext.Core.Text.Terms ...@@ -38,7 +38,7 @@ module Gargantext.Core.Text.Terms
import Control.Lens import Control.Lens
import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict (HashMap)
import Data.Hashable (Hashable) import Data.Hashable (Hashable)
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Text (Text) import Data.Text (Text)
import Data.Traversable import Data.Traversable
import GHC.Base (String) import GHC.Base (String)
......
...@@ -47,9 +47,9 @@ import qualified Data.List as L ...@@ -47,9 +47,9 @@ import qualified Data.List as L
import Data.Monoid import Data.Monoid
import Data.Text (Text) import Data.Text (Text)
import qualified Data.Text as T import qualified Data.Text as T
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Maybe (fromMaybe) import Data.Maybe (fromMaybe)
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import Gargantext.Prelude hiding (cs) import Gargantext.Prelude hiding (cs)
import qualified Data.Tree as Tree import qualified Data.Tree as Tree
import Data.Tree (Tree) import Data.Tree (Tree)
......
...@@ -21,7 +21,7 @@ import Data.Aeson (FromJSON, ToJSON) ...@@ -21,7 +21,7 @@ import Data.Aeson (FromJSON, ToJSON)
import Data.Aeson.TH (deriveJSON) import Data.Aeson.TH (deriveJSON)
import Data.Either (Either(..)) import Data.Either (Either(..))
import Data.Hashable (Hashable) import Data.Hashable (Hashable)
import Data.Map (fromList, lookup) import Data.Map.Strict (fromList, lookup)
import Data.Maybe (fromMaybe) import Data.Maybe (fromMaybe)
import Data.Semigroup (Semigroup(..)) import Data.Semigroup (Semigroup(..))
import Data.Swagger import Data.Swagger
......
...@@ -15,7 +15,7 @@ module Gargantext.Core.Viz.Chart ...@@ -15,7 +15,7 @@ module Gargantext.Core.Viz.Chart
where where
import Data.List (sortOn) import Data.List (sortOn)
import Data.Map (toList) import Data.Map.Strict (toList)
import qualified Data.List as List import qualified Data.List as List
import Data.Maybe (catMaybes) import Data.Maybe (catMaybes)
import qualified Data.Vector as V import qualified Data.Vector as V
...@@ -93,4 +93,3 @@ treeData cId nt lt = do ...@@ -93,4 +93,3 @@ treeData cId nt lt = do
m <- getListNgrams ls nt m <- getListNgrams ls nt
pure $ V.fromList $ toTree lt cs' m pure $ V.fromList $ toTree lt cs' m
...@@ -142,7 +142,7 @@ recomputeGraph _uId nId partitionMethod bridgeMethod maybeSimilarity maybeStreng ...@@ -142,7 +142,7 @@ recomputeGraph _uId nId partitionMethod bridgeMethod maybeSimilarity maybeStreng
listVersion = graph ^? _Just . graph_metadata . _Just . gm_list . lfg_version listVersion = graph ^? _Just . graph_metadata . _Just . gm_list . lfg_version
graphMetric = case maybeSimilarity of graphMetric = case maybeSimilarity of
Nothing -> graph ^? _Just . graph_metadata . _Just . gm_metric Nothing -> graph ^? _Just . graph_metadata . _Just . gm_metric
_ -> maybeSimilarity Just _ -> maybeSimilarity
similarity = case graphMetric of similarity = case graphMetric of
Nothing -> withMetric Order1 Nothing -> withMetric Order1
Just m -> withMetric m Just m -> withMetric m
...@@ -216,14 +216,12 @@ computeGraph corpusId partitionMethod bridgeMethod similarity strength (nt1,nt2) ...@@ -216,14 +216,12 @@ computeGraph corpusId partitionMethod bridgeMethod similarity strength (nt1,nt2)
$ -} getCoocByNgrams'' (Diagonal True) (identity, identity) (m1,m2) $ -} getCoocByNgrams'' (Diagonal True) (identity, identity) (m1,m2)
-- TODO MultiPartite Here -- TODO MultiPartite Here
graph <- liftBase liftBase
$ cooc2graphWith partitionMethod bridgeMethod (MultiPartite (Partite (HashMap.keysSet m1) nt1) $ cooc2graphWith partitionMethod bridgeMethod (MultiPartite (Partite (HashMap.keysSet m1) nt1)
(Partite (HashMap.keysSet m2) nt2) (Partite (HashMap.keysSet m2) nt2)
) )
similarity 0 strength myCooc similarity 0 strength myCooc
pure graph
defaultGraphMetadata :: HasNodeError err defaultGraphMetadata :: HasNodeError err
...@@ -246,7 +244,7 @@ defaultGraphMetadata cId t repo gm str = do ...@@ -246,7 +244,7 @@ defaultGraphMetadata cId t repo gm str = do
, LegendField 3 "#FFF" "Cluster3" , LegendField 3 "#FFF" "Cluster3"
, LegendField 4 "#FFF" "Cluster4" , LegendField 4 "#FFF" "Cluster4"
] ]
, _gm_list = (ListForGraph lId (repo ^. unNodeStory . at lId . _Just . a_version)) , _gm_list = ListForGraph lId (repo ^. unNodeStory . at lId . _Just . a_version)
, _gm_startForceAtlas = True , _gm_startForceAtlas = True
} }
-- (map (\n -> LegendField n "#FFFFFF" (pack $ show n)) [1..10]) -- (map (\n -> LegendField n "#FFFFFF" (pack $ show n)) [1..10])
......
...@@ -9,7 +9,7 @@ Portability : POSIX ...@@ -9,7 +9,7 @@ Portability : POSIX
Let be a graph Bridgeness filters inter-communities links in two ways. Let be a graph Bridgeness filters inter-communities links in two ways.
If the partitions are known, filtering is uniform to expose the communities clearly for the beginners. If the partitions are known, filtering is uniform to expose the communities clearly for the beginners.
But But
uniformly uniformly
...@@ -25,7 +25,7 @@ module Gargantext.Core.Viz.Graph.Bridgeness -- (bridgeness) ...@@ -25,7 +25,7 @@ module Gargantext.Core.Viz.Graph.Bridgeness -- (bridgeness)
import Gargantext.Core.Methods.Similarities (Similarity(..)) import Gargantext.Core.Methods.Similarities (Similarity(..))
-- import Data.IntMap (IntMap) -- import Data.IntMap (IntMap)
import Data.Map (Map, fromListWith, lookup, toList, mapWithKey, elems) import Data.Map.Strict (Map, fromListWith, lookup, toList, mapWithKey, elems)
import Data.Maybe (catMaybes) import Data.Maybe (catMaybes)
import Data.Ord (Down(..)) import Data.Ord (Down(..))
import Debug.Trace (trace) import Debug.Trace (trace)
...@@ -33,7 +33,7 @@ import Gargantext.Prelude ...@@ -33,7 +33,7 @@ import Gargantext.Prelude
import Graph.Types (ClusterNode(..)) import Graph.Types (ClusterNode(..))
-- import qualified Data.IntMap as IntMap -- import qualified Data.IntMap as IntMap
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
-- import qualified Data.Set as Set -- import qualified Data.Set as Set
---------------------------------------------------------------------- ----------------------------------------------------------------------
...@@ -68,7 +68,7 @@ bridgeness (Bridgeness_Advanced sim c) m = Map.fromList ...@@ -68,7 +68,7 @@ bridgeness (Bridgeness_Advanced sim c) m = Map.fromList
-- $ List.sortOn (Down . (snd . snd)) -- $ List.sortOn (Down . (snd . snd))
$ Map.toList $ Map.toList
$ trace ("bridgeness3 m c" <> show (m,c)) $ trace ("bridgeness3 m c" <> show (m,c))
$ Map.intersectionWithKey $ Map.intersectionWithKey
(\k v1 v2 -> trace ("intersectionWithKey " <> (show (k, v1, v2))) (v1, v2)) m c (\k v1 v2 -> trace ("intersectionWithKey " <> (show (k, v1, v2))) (v1, v2)) m c
{- {-
......
...@@ -25,7 +25,7 @@ module Gargantext.Core.Viz.Graph.Index ...@@ -25,7 +25,7 @@ module Gargantext.Core.Viz.Graph.Index
where where
import Data.Array.Accelerate (Matrix, Elt, Shape, (:.)(..), Z(..)) import Data.Array.Accelerate (Matrix, Elt, Shape, (:.)(..), Z(..))
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Maybe (fromMaybe, catMaybes) import Data.Maybe (fromMaybe, catMaybes)
import Data.Set (Set) import Data.Set (Set)
import Gargantext.Prelude import Gargantext.Prelude
...@@ -131,6 +131,3 @@ testIndices = myMap == ( M.filter (>0) myMap') ...@@ -131,6 +131,3 @@ testIndices = myMap == ( M.filter (>0) myMap')
(ti,it) = createIndices myMap (ti,it) = createIndices myMap
matrix = mat2map $ map2mat Square 0 (M.size ti) $ toIndex ti myMap matrix = mat2map $ map2mat Square 0 (M.size ti) $ toIndex ti myMap
myMap' = fromIndex it matrix myMap' = fromIndex it matrix
...@@ -16,8 +16,8 @@ module Gargantext.Core.Viz.Graph.Legend ...@@ -16,8 +16,8 @@ module Gargantext.Core.Viz.Graph.Legend
{- {-
import Data.Ord (Down(..)) import Data.Ord (Down(..))
import Gargantext.Prelude import Gargantext.Prelude
import Data.Map (Map, fromListWith, lookup, toList, mapWithKey, elems) import Data.Map.Strict (Map, fromListWith, lookup, toList, mapWithKey, elems)
import qualified Data.Map as DM import qualified Data.Map.Strict as DM
import Data.Maybe (catMaybes) import Data.Maybe (catMaybes)
import Data.List (concat, sortOn) import Data.List (concat, sortOn)
import Gargantext.Core.Viz.Graph.Louvain (LouvainNodeId, CommunityId, comId2nodeId) import Gargantext.Core.Viz.Graph.Louvain (LouvainNodeId, CommunityId, comId2nodeId)
...@@ -30,7 +30,7 @@ sort by length LouvainNodeIds ...@@ -30,7 +30,7 @@ sort by length LouvainNodeIds
Cooc -> DGI.Graph Cooc -> DGI.Graph
sort [LouvainNodeId] sort [LouvainNodeId]
subgraph with [LouvainNodeId] subgraph with [LouvainNodeId]
-> prendre le noeud le mieux connecté (degree to start with) -> prendre le noeud le mieux connecté (degree to start with)
...@@ -45,7 +45,3 @@ take 7 [(CommunityId, take 3 [Label])] ...@@ -45,7 +45,3 @@ take 7 [(CommunityId, take 3 [Label])]
-} -}
...@@ -16,7 +16,7 @@ module Gargantext.Core.Viz.Graph.Tools ...@@ -16,7 +16,7 @@ module Gargantext.Core.Viz.Graph.Tools
import Data.Aeson import Data.Aeson
import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict (HashMap)
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Maybe (fromMaybe) import Data.Maybe (fromMaybe)
import Data.Swagger hiding (items) import Data.Swagger hiding (items)
import GHC.Float (sin, cos) import GHC.Float (sin, cos)
...@@ -39,7 +39,7 @@ import Test.QuickCheck (elements) ...@@ -39,7 +39,7 @@ import Test.QuickCheck (elements)
import Test.QuickCheck.Arbitrary import Test.QuickCheck.Arbitrary
import qualified Data.HashMap.Strict as HashMap import qualified Data.HashMap.Strict as HashMap
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.Set as Set import qualified Data.Set as Set
import qualified Data.HashSet as HashSet import qualified Data.HashSet as HashSet
import qualified Data.Text as Text import qualified Data.Text as Text
......
...@@ -22,7 +22,7 @@ import Graph.Types (ClusterNode(..)) ...@@ -22,7 +22,7 @@ import Graph.Types (ClusterNode(..))
import IGraph hiding (mkGraph, neighbors, edges, nodes, Node, Graph) import IGraph hiding (mkGraph, neighbors, edges, nodes, Node, Graph)
import Protolude import Protolude
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified IGraph as IG import qualified IGraph as IG
import qualified IGraph.Algorithms.Clique as IG import qualified IGraph.Algorithms.Clique as IG
import qualified IGraph.Algorithms.Community as IG import qualified IGraph.Algorithms.Community as IG
......
module Gargantext.Core.Viz.Graph.Tools.Infomap where module Gargantext.Core.Viz.Graph.Tools.Infomap where
import Data.Map (Map) import Data.Map.Strict (Map)
import Graph.Types import Graph.Types
import Prelude import Prelude
......
{-| {-|
Module : Gargantext.Core.Viz.Graph.Utils Module : Gargantext.Core.Viz.Graph.Utils
Description : Description :
Copyright : (c) CNRS, 2017-Present Copyright : (c) CNRS, 2017-Present
License : AGPL + CECILL v3 License : AGPL + CECILL v3
Maintainer : team@gargantext.org Maintainer : team@gargantext.org
...@@ -18,7 +18,7 @@ module Gargantext.Core.Viz.Graph.Utils ...@@ -18,7 +18,7 @@ module Gargantext.Core.Viz.Graph.Utils
where where
import Data.List (unzip) import Data.List (unzip)
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Matrix hiding (identity) import Data.Matrix hiding (identity)
import Data.Maybe (catMaybes) import Data.Maybe (catMaybes)
import Data.Set (Set) import Data.Set (Set)
...@@ -26,7 +26,7 @@ import Data.Vector (Vector) ...@@ -26,7 +26,7 @@ import Data.Vector (Vector)
import Gargantext.Core.Text.Metrics.Count (occurrencesWith) import Gargantext.Core.Text.Metrics.Count (occurrencesWith)
import Gargantext.Prelude import Gargantext.Prelude
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.Set as Set import qualified Data.Set as Set
import qualified Data.Vector as Vector import qualified Data.Vector as Vector
...@@ -86,7 +86,7 @@ edgesFilter m = Map.fromList $ catMaybes results ...@@ -86,7 +86,7 @@ edgesFilter m = Map.fromList $ catMaybes results
(x,y) = unzip $ Map.keys m (x,y) = unzip $ Map.keys m
nodesFilter :: (Show a, Show b, Ord a, Ord b, Num b) => (b -> Bool) -> Map (a,a) b -> (Map (a,a) b, Set a) nodesFilter :: (Show a, Show b, Ord a, Ord b, Num b) => (b -> Bool) -> Map (a,a) b -> (Map (a,a) b, Set a)
nodesFilter f m = (m', toKeep) nodesFilter f m = (m', toKeep)
where where
m' = Map.filterWithKey (\(a,b) _ -> Set.member a toKeep && Set.member b toKeep) m m' = Map.filterWithKey (\(a,b) _ -> Set.member a toKeep && Set.member b toKeep) m
toKeep = Set.fromList toKeep = Set.fromList
...@@ -110,5 +110,3 @@ getMax (i,j) Nothing (Just d) = Just ((j,i), d) ...@@ -110,5 +110,3 @@ getMax (i,j) Nothing (Just d) = Just ((j,i), d)
getMax ij (Just di) (Just dj) = if di >= dj then getMax ij (Just di) Nothing getMax ij (Just di) (Just dj) = if di >= dj then getMax ij (Just di) Nothing
else getMax ij Nothing (Just dj) else getMax ij Nothing (Just dj)
getMax _ _ _ = Nothing getMax _ _ _ = Nothing
...@@ -30,7 +30,7 @@ module Gargantext.Core.Viz.LegacyPhylo where ...@@ -30,7 +30,7 @@ module Gargantext.Core.Viz.LegacyPhylo where
import Control.DeepSeq import Control.DeepSeq
import Control.Lens (makeLenses) import Control.Lens (makeLenses)
import Data.Aeson.TH (deriveJSON,defaultOptions) import Data.Aeson.TH (deriveJSON,defaultOptions)
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Set (Set) import Data.Set (Set)
import Data.Swagger import Data.Swagger
import Data.Text (Text) import Data.Text (Text)
...@@ -81,7 +81,7 @@ data Phylo = ...@@ -81,7 +81,7 @@ data Phylo =
deriving (Generic, Show, Eq) deriving (Generic, Show, Eq)
-- | The foundations of a phylomemy created from a given TermList -- | The foundations of a phylomemy created from a given TermList
data PhyloFoundations = data PhyloFoundations =
PhyloFoundations { _phylo_foundationsRoots :: !(Vector Ngrams) PhyloFoundations { _phylo_foundationsRoots :: !(Vector Ngrams)
, _phylo_foundationsTermsList :: !TermList , _phylo_foundationsTermsList :: !TermList
...@@ -567,4 +567,3 @@ instance ToSchema EdgeType ...@@ -567,4 +567,3 @@ instance ToSchema EdgeType
---------------------------- ----------------------------
-- | TODO XML instances | -- -- | TODO XML instances | --
---------------------------- ----------------------------
...@@ -30,7 +30,7 @@ import Control.DeepSeq (NFData) ...@@ -30,7 +30,7 @@ import Control.DeepSeq (NFData)
import Control.Lens (makeLenses) import Control.Lens (makeLenses)
import Data.Aeson import Data.Aeson
import Data.Aeson.TH (deriveJSON) import Data.Aeson.TH (deriveJSON)
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Set (Set) import Data.Set (Set)
import Data.Swagger import Data.Swagger
import Data.Text (Text, pack) import Data.Text (Text, pack)
...@@ -78,8 +78,8 @@ data Proximity = ...@@ -78,8 +78,8 @@ data Proximity =
| WeightedLogSim | WeightedLogSim
{ _wls_sensibility :: Double { _wls_sensibility :: Double
, _wls_minSharedNgrams :: Int } , _wls_minSharedNgrams :: Int }
| Hamming | Hamming
{ _hmg_sensibility :: Double { _hmg_sensibility :: Double
, _hmg_minSharedNgrams :: Int} , _hmg_minSharedNgrams :: Int}
deriving (Show,Generic,Eq) deriving (Show,Generic,Eq)
...@@ -205,7 +205,7 @@ data PhyloSubConfig = ...@@ -205,7 +205,7 @@ data PhyloSubConfig =
subConfig2config :: PhyloSubConfig -> PhyloConfig subConfig2config :: PhyloSubConfig -> PhyloConfig
subConfig2config subConfig = defaultConfig { phyloProximity = WeightedLogJaccard (_sc_phyloProximity subConfig) 1 subConfig2config subConfig = defaultConfig { phyloProximity = WeightedLogJaccard (_sc_phyloProximity subConfig) 1
, phyloSynchrony = ByProximityThreshold (_sc_phyloSynchrony subConfig) 0 AllBranches MergeAllGroups , phyloSynchrony = ByProximityThreshold (_sc_phyloSynchrony subConfig) 0 AllBranches MergeAllGroups
, phyloQuality = Quality (_sc_phyloQuality subConfig) 1 , phyloQuality = Quality (_sc_phyloQuality subConfig) 1
, timeUnit = _sc_timeUnit subConfig , timeUnit = _sc_timeUnit subConfig
......
...@@ -14,7 +14,7 @@ module Gargantext.Core.Viz.Phylo.API.Tools ...@@ -14,7 +14,7 @@ module Gargantext.Core.Viz.Phylo.API.Tools
import Data.Proxy import Data.Proxy
import Data.Aeson (Value, decodeFileStrict, eitherDecode, encode) import Data.Aeson (Value, decodeFileStrict, eitherDecode, encode)
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Maybe (catMaybes) import Data.Maybe (catMaybes)
import Data.Set (Set) import Data.Set (Set)
import Data.Text (Text, pack) import Data.Text (Text, pack)
...@@ -45,7 +45,7 @@ import Prelude ...@@ -45,7 +45,7 @@ import Prelude
import System.Process as Shell import System.Process as Shell
import qualified Data.ByteString.Lazy as Lazy import qualified Data.ByteString.Lazy as Lazy
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.Set as Set import qualified Data.Set as Set
......
This diff is collapsed.
...@@ -19,7 +19,7 @@ import Data.GraphViz.Attributes.Complete hiding (EdgeType, Order) ...@@ -19,7 +19,7 @@ import Data.GraphViz.Attributes.Complete hiding (EdgeType, Order)
import Data.GraphViz.Types.Generalised (DotGraph) import Data.GraphViz.Types.Generalised (DotGraph)
import Data.GraphViz.Types.Monadic import Data.GraphViz.Types.Monadic
import Data.List ((++), sort, nub, null, concat, sortOn, groupBy, union, (\\), (!!), init, partition, notElem, unwords, nubBy, inits, elemIndex) import Data.List ((++), sort, nub, null, concat, sortOn, groupBy, union, (\\), (!!), init, partition, notElem, unwords, nubBy, inits, elemIndex)
import Data.Map (Map, fromList, empty, fromListWith, insert, (!), elems, unionWith, findWithDefault, toList, member) import Data.Map.Strict (Map, fromList, empty, fromListWith, insert, (!), elems, unionWith, findWithDefault, toList, member)
import Data.Text.Lazy (fromStrict, pack, unpack) import Data.Text.Lazy (fromStrict, pack, unpack)
import Data.Vector (Vector) import Data.Vector (Vector)
import Debug.Trace (trace) import Debug.Trace (trace)
...@@ -375,7 +375,7 @@ processSort sort' elev export = case sort' of ...@@ -375,7 +375,7 @@ processSort sort' elev export = case sort' of
ByBirthDate o -> sortByBirthDate o export ByBirthDate o -> sortByBirthDate o export
ByHierarchy _ -> case elev of ByHierarchy _ -> case elev of
Constante s s' -> export & export_branches .~ (branchToIso' s s' $ sortByHierarchy 0 (export ^. export_branches)) Constante s s' -> export & export_branches .~ (branchToIso' s s' $ sortByHierarchy 0 (export ^. export_branches))
Adaptative _ -> export & export_branches .~ (branchToIso $ sortByHierarchy 0 (export ^. export_branches)) Adaptative _ -> export & export_branches .~ (branchToIso $ sortByHierarchy 0 (export ^. export_branches))
----------------- -----------------
-- | Metrics | -- -- | Metrics | --
...@@ -567,7 +567,7 @@ toDynamics n elders g m = ...@@ -567,7 +567,7 @@ toDynamics n elders g m =
isNew :: Bool isNew :: Bool
isNew = not $ elem n $ concat $ map _phylo_groupNgrams elders isNew = not $ elem n $ concat $ map _phylo_groupNgrams elders
type FdtId = Int type FdtId = Int
processDynamics :: [PhyloGroup] -> [PhyloGroup] processDynamics :: [PhyloGroup] -> [PhyloGroup]
processDynamics groups = processDynamics groups =
map (\g -> map (\g ->
...@@ -722,4 +722,3 @@ traceExportGroups groups = trace ("\n" <> "-- | Export " ...@@ -722,4 +722,3 @@ traceExportGroups groups = trace ("\n" <> "-- | Export "
<> show(length groups) <> " groups and " <> show(length groups) <> " groups and "
<> show(length $ nub $ concat $ map (\g -> g ^. phylo_groupNgrams) groups) <> " terms" <> show(length $ nub $ concat $ map (\g -> g ^. phylo_groupNgrams) groups) <> " terms"
) groups ) groups
This diff is collapsed.
...@@ -14,7 +14,7 @@ module Gargantext.Core.Viz.Phylo.PhyloTools where ...@@ -14,7 +14,7 @@ module Gargantext.Core.Viz.Phylo.PhyloTools where
import Control.Lens hiding (Level) import Control.Lens hiding (Level)
import Data.List (sort, concat, null, union, (++), tails, sortOn, nub, init, tail, partition, tails, nubBy, group, notElem) import Data.List (sort, concat, null, union, (++), tails, sortOn, nub, init, tail, partition, tails, nubBy, group, notElem)
import Data.Map (Map, elems, fromList, unionWith, keys, member, (!), filterWithKey, fromListWith, empty, restrictKeys) import Data.Map.Strict (Map, elems, fromList, unionWith, keys, member, (!), filterWithKey, fromListWith, empty, restrictKeys)
import Data.Set (Set, disjoint) import Data.Set (Set, disjoint)
import Data.String (String) import Data.String (String)
import Data.Text (Text,unpack) import Data.Text (Text,unpack)
...@@ -408,7 +408,7 @@ getPhyloSeaRiseStart phylo = case (getSeaElevation phylo) of ...@@ -408,7 +408,7 @@ getPhyloSeaRiseStart phylo = case (getSeaElevation phylo) of
getPhyloSeaRiseSteps :: Phylo -> Double getPhyloSeaRiseSteps :: Phylo -> Double
getPhyloSeaRiseSteps phylo = case (getSeaElevation phylo) of getPhyloSeaRiseSteps phylo = case (getSeaElevation phylo) of
Constante _ s -> s Constante _ s -> s
Adaptative s -> s Adaptative s -> s
getConfig :: Phylo -> PhyloConfig getConfig :: Phylo -> PhyloConfig
...@@ -496,7 +496,7 @@ updatePeriods periods' phylo = ...@@ -496,7 +496,7 @@ updatePeriods periods' phylo =
) phylo ) phylo
updateQuality :: Double -> Phylo -> Phylo updateQuality :: Double -> Phylo -> Phylo
updateQuality quality phylo = phylo { _phylo_quality = quality } updateQuality quality phylo = phylo { _phylo_quality = quality }
traceToPhylo :: Scale -> Phylo -> Phylo traceToPhylo :: Scale -> Phylo -> Phylo
...@@ -592,7 +592,7 @@ getMinSharedNgrams :: Proximity -> Int ...@@ -592,7 +592,7 @@ getMinSharedNgrams :: Proximity -> Int
getMinSharedNgrams proxi = case proxi of getMinSharedNgrams proxi = case proxi of
WeightedLogJaccard _ m -> m WeightedLogJaccard _ m -> m
WeightedLogSim _ m -> m WeightedLogSim _ m -> m
Hamming _ _ -> undefined Hamming _ _ -> undefined
---------------- ----------------
-- | Branch | -- -- | Branch | --
......
...@@ -58,7 +58,7 @@ import Data.Either ...@@ -58,7 +58,7 @@ import Data.Either
import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict (HashMap)
import Data.Hashable (Hashable) import Data.Hashable (Hashable)
import Data.List (concat) import Data.List (concat)
import Data.Map (Map, lookup) import Data.Map.Strict (Map, lookup)
import Data.Maybe (catMaybes) import Data.Maybe (catMaybes)
import Data.Monoid import Data.Monoid
import Data.Swagger import Data.Swagger
...@@ -69,7 +69,7 @@ import Servant.Client (ClientError) ...@@ -69,7 +69,7 @@ import Servant.Client (ClientError)
import System.FilePath (FilePath) import System.FilePath (FilePath)
import qualified Data.HashMap.Strict as HashMap import qualified Data.HashMap.Strict as HashMap
import qualified Gargantext.Data.HashMap.Strict.Utils as HashMap import qualified Gargantext.Data.HashMap.Strict.Utils as HashMap
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.Conduit.List as CL import qualified Data.Conduit.List as CL
import qualified Data.Conduit as C import qualified Data.Conduit as C
......
...@@ -20,7 +20,7 @@ module Gargantext.Database.Action.Flow.List ...@@ -20,7 +20,7 @@ module Gargantext.Database.Action.Flow.List
import Control.Concurrent import Control.Concurrent
import Control.Lens ((^.), (+~), (%~), at, (.~), _Just) import Control.Lens ((^.), (+~), (%~), at, (.~), _Just)
import Control.Monad.Reader import Control.Monad.Reader
import Data.Map (Map, toList) import Data.Map.Strict (Map, toList)
import Data.Text (Text) import Data.Text (Text)
import Gargantext.API.Ngrams (saveNodeStory) import Gargantext.API.Ngrams (saveNodeStory)
import Gargantext.API.Ngrams.Tools (getNodeStoryVar) import Gargantext.API.Ngrams.Tools (getNodeStoryVar)
...@@ -35,7 +35,7 @@ import Gargantext.Database.Query.Table.NodeNgrams (NodeNgramsPoly(..), NodeNgram ...@@ -35,7 +35,7 @@ import Gargantext.Database.Query.Table.NodeNgrams (NodeNgramsPoly(..), NodeNgram
import Gargantext.Database.Schema.Ngrams (NgramsType(..)) import Gargantext.Database.Schema.Ngrams (NgramsType(..))
import Gargantext.Prelude import Gargantext.Prelude
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.Map.Strict.Patch as PM import qualified Data.Map.Strict.Patch as PM
import qualified Gargantext.Database.Query.Table.Ngrams as TableNgrams import qualified Gargantext.Database.Query.Table.Ngrams as TableNgrams
......
...@@ -13,7 +13,7 @@ Portability : POSIX ...@@ -13,7 +13,7 @@ Portability : POSIX
module Gargantext.Database.Action.Flow.Utils module Gargantext.Database.Action.Flow.Utils
where where
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict (HashMap)
import Gargantext.Core.Types (TermsCount) import Gargantext.Core.Types (TermsCount)
import Gargantext.Database.Admin.Types.Node import Gargantext.Database.Admin.Types.Node
...@@ -23,7 +23,7 @@ import Gargantext.Database.Schema.Ngrams ...@@ -23,7 +23,7 @@ import Gargantext.Database.Schema.Ngrams
import Gargantext.Database.Types import Gargantext.Database.Types
import Gargantext.Prelude import Gargantext.Prelude
import Control.Lens ((^.)) import Control.Lens ((^.))
import qualified Data.Map as DM import qualified Data.Map.Strict as DM
import qualified Data.HashMap.Strict as HashMap import qualified Data.HashMap.Strict as HashMap
......
...@@ -17,7 +17,7 @@ module Gargantext.Database.Action.Metrics ...@@ -17,7 +17,7 @@ module Gargantext.Database.Action.Metrics
import Database.PostgreSQL.Simple.SqlQQ (sql) import Database.PostgreSQL.Simple.SqlQQ (sql)
import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict (HashMap)
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Set (Set) import Data.Set (Set)
import Database.PostgreSQL.Simple (Query, Only(..)) import Database.PostgreSQL.Simple (Query, Only(..))
import Database.PostgreSQL.Simple.Types (Values(..), QualifiedIdentifier(..)) import Database.PostgreSQL.Simple.Types (Values(..), QualifiedIdentifier(..))
...@@ -39,7 +39,7 @@ import Gargantext.Database.Query.Table.Node (defaultList) ...@@ -39,7 +39,7 @@ import Gargantext.Database.Query.Table.Node (defaultList)
import Gargantext.Database.Query.Table.Node.Select import Gargantext.Database.Query.Table.Node.Select
import Gargantext.Prelude import Gargantext.Prelude
import qualified Data.HashMap.Strict as HM import qualified Data.HashMap.Strict as HM
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.Set as Set import qualified Data.Set as Set
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Text as Text import qualified Data.Text as Text
......
...@@ -26,7 +26,7 @@ import Gargantext.Database.Action.Flow.Types (FlowCmdM) ...@@ -26,7 +26,7 @@ import Gargantext.Database.Action.Flow.Types (FlowCmdM)
import Gargantext.Prelude hiding (sum, head) import Gargantext.Prelude hiding (sum, head)
import Prelude hiding (null, id, map, sum) import Prelude hiding (null, id, map, sum)
import qualified Data.HashMap.Strict as HashMap import qualified Data.HashMap.Strict as HashMap
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.Vector as Vec import qualified Data.Vector as Vec
import qualified Gargantext.Database.Action.Metrics as Metrics import qualified Gargantext.Database.Action.Metrics as Metrics
{- {-
...@@ -36,7 +36,7 @@ trainModel u = do ...@@ -36,7 +36,7 @@ trainModel u = do
rootId <- _node_id <$> getRoot u rootId <- _node_id <$> getRoot u
(id:ids) <- getCorporaWithParentId rootId (id:ids) <- getCorporaWithParentId rootId
(s,_model) <- case length ids >0 of (s,_model) <- case length ids >0 of
True -> grid 100 150 (getMetrics True -> grid 100 150 (getMetrics
False -> panic "Gargantext.Database.Lists.trainModel : not enough corpora" False -> panic "Gargantext.Database.Lists.trainModel : not enough corpora"
--} --}
...@@ -51,9 +51,8 @@ getMetrics' cId maybeListId tabType maybeLimit = do ...@@ -51,9 +51,8 @@ getMetrics' cId maybeListId tabType maybeLimit = do
metrics = map (\(Scored t s1 s2) -> (listType t ngs', [Vec.fromList [s1,s2]])) scores metrics = map (\(Scored t s1 s2) -> (listType t ngs', [Vec.fromList [s1,s2]])) scores
listType t m = maybe (panic errorMsg) fst $ HashMap.lookup t m listType t m = maybe (panic errorMsg) fst $ HashMap.lookup t m
errorMsg = "API.Node.metrics: key absent" errorMsg = "API.Node.metrics: key absent"
{- {-
_ <- Learn.grid 100 110 metrics' metrics' _ <- Learn.grid 100 110 metrics' metrics'
--} --}
pure $ Map.fromListWith (<>) $ Vec.toList metrics pure $ Map.fromListWith (<>) $ Vec.toList metrics
...@@ -19,7 +19,7 @@ module Gargantext.Database.Action.Metrics.NgramsByContext ...@@ -19,7 +19,7 @@ module Gargantext.Database.Action.Metrics.NgramsByContext
-- import Debug.Trace (trace) -- import Debug.Trace (trace)
--import Data.Map.Strict.Patch (PatchMap, Replace, diff) --import Data.Map.Strict.Patch (PatchMap, Replace, diff)
import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict (HashMap)
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Set (Set) import Data.Set (Set)
import Data.Text (Text) import Data.Text (Text)
import Data.Tuple.Extra (first, second, swap) import Data.Tuple.Extra (first, second, swap)
...@@ -34,7 +34,7 @@ import Gargantext.Database.Schema.Ngrams (ngramsTypeId, NgramsType(..)) ...@@ -34,7 +34,7 @@ import Gargantext.Database.Schema.Ngrams (ngramsTypeId, NgramsType(..))
import Gargantext.Prelude import Gargantext.Prelude
import qualified Data.HashMap.Strict as HM import qualified Data.HashMap.Strict as HM
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.Set as Set import qualified Data.Set as Set
import qualified Database.PostgreSQL.Simple as DPS import qualified Database.PostgreSQL.Simple as DPS
import qualified Database.PostgreSQL.Simple.Types as DPST import qualified Database.PostgreSQL.Simple.Types as DPST
......
...@@ -15,7 +15,7 @@ module Gargantext.Database.Action.Search where ...@@ -15,7 +15,7 @@ module Gargantext.Database.Action.Search where
import Control.Arrow (returnA) import Control.Arrow (returnA)
import Control.Lens ((^.)) import Control.Lens ((^.))
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import Data.Maybe import Data.Maybe
import qualified Data.Set as Set import qualified Data.Set as Set
import Data.Text (Text, unpack, intercalate) import Data.Text (Text, unpack, intercalate)
......
...@@ -25,7 +25,7 @@ module Gargantext.Database.Query.Table.Ngrams ...@@ -25,7 +25,7 @@ module Gargantext.Database.Query.Table.Ngrams
import Control.Lens ((^.)) import Control.Lens ((^.))
import Data.ByteString.Internal (ByteString) import Data.ByteString.Internal (ByteString)
import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict (HashMap)
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Text (Text) import Data.Text (Text)
import Gargantext.Core.Types import Gargantext.Core.Types
import Gargantext.Database.Prelude (runOpaQuery, Cmd, formatPGSQuery, runPGSQuery) import Gargantext.Database.Prelude (runOpaQuery, Cmd, formatPGSQuery, runPGSQuery)
...@@ -39,7 +39,7 @@ import Gargantext.Database.Types ...@@ -39,7 +39,7 @@ import Gargantext.Database.Types
import Gargantext.Prelude import Gargantext.Prelude
import qualified Data.HashMap.Strict as HashMap import qualified Data.HashMap.Strict as HashMap
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Database.PostgreSQL.Simple as PGS import qualified Database.PostgreSQL.Simple as PGS
queryNgramsTable :: Select NgramsRead queryNgramsTable :: Select NgramsRead
......
...@@ -30,6 +30,9 @@ module Gargantext.Database.Query.Table.NodeContext ...@@ -30,6 +30,9 @@ module Gargantext.Database.Query.Table.NodeContext
, getNodeContext , getNodeContext
, updateNodeContextCategory , updateNodeContextCategory
, getContextsForNgrams , getContextsForNgrams
, ContextForNgrams(..)
, getContextsForNgramsTerms
, ContextForNgramsTerms(..)
, insertNodeContext , insertNodeContext
, deleteNodeContext , deleteNodeContext
, selectPublicContexts , selectPublicContexts
...@@ -103,8 +106,27 @@ updateNodeContextCategory cId nId cat = do ...@@ -103,8 +106,27 @@ updateNodeContextCategory cId nId cat = do
WHERE context_id = ? WHERE context_id = ?
AND node_id = ? |] AND node_id = ? |]
getContextsForNgrams :: HasNodeError err => NodeId -> [Int] -> Cmd err [(NodeId, Maybe Hash, NodeTypeId, UserId, Maybe ParentId, ContextTitle, UTCTime, HyperdataDocument)] data ContextForNgrams =
getContextsForNgrams cId ngramsIds = runPGSQuery query (cId, PGS.In ngramsIds) ContextForNgrams { _cfn_nodeId :: NodeId
, _cfn_hash :: Maybe Hash
, _cfn_userId :: UserId
, _cfn_parentId :: Maybe ParentId
, _cfn_c_title :: ContextTitle
, _cfn_date :: UTCTime
, _cfn_hyperdata :: HyperdataDocument }
getContextsForNgrams :: HasNodeError err
=> NodeId
-> [Int]
-> Cmd err [ContextForNgrams]
getContextsForNgrams cId ngramsIds = do
res <- runPGSQuery query (cId, PGS.In ngramsIds)
pure $ (\( _cfn_nodeId
, _cfn_hash
, _cfn_userId
, _cfn_parentId
, _cfn_c_title
, _cfn_date
, _cfn_hyperdata) -> ContextForNgrams { .. }) <$> res
where where
query :: PGS.Query query :: PGS.Query
query = [sql| SELECT contexts.id, hash_id, typename, user_id, parent_id, name, date, hyperdata query = [sql| SELECT contexts.id, hash_id, typename, user_id, parent_id, name, date, hyperdata
...@@ -114,6 +136,46 @@ getContextsForNgrams cId ngramsIds = runPGSQuery query (cId, PGS.In ngramsIds) ...@@ -114,6 +136,46 @@ getContextsForNgrams cId ngramsIds = runPGSQuery query (cId, PGS.In ngramsIds)
WHERE nodes_contexts.node_id = ? WHERE nodes_contexts.node_id = ?
AND context_node_ngrams.ngrams_id IN ? |] AND context_node_ngrams.ngrams_id IN ? |]
data ContextForNgramsTerms =
ContextForNgramsTerms { _cfnt_nodeId :: NodeId
, _cfnt_hash :: Maybe Hash
, _cfnt_nodeTypeId :: NodeTypeId
, _cfnt_userId :: UserId
, _cfnt_parentId :: Maybe ParentId
, _cfnt_c_title :: ContextTitle
, _cfnt_date :: UTCTime
, _cfnt_hyperdata :: HyperdataDocument
, _cfnt_score :: Maybe Double
, _cfnt_category :: Maybe Int }
getContextsForNgramsTerms :: HasNodeError err
=> NodeId
-> [Text]
-> Cmd err [ContextForNgramsTerms]
getContextsForNgramsTerms cId ngramsTerms = do
res <- runPGSQuery query (cId, PGS.In ngramsTerms)
pure $ (\( _cfnt_nodeId
, _cfnt_hash
, _cfnt_nodeTypeId
, _cfnt_userId
, _cfnt_parentId
, _cfnt_c_title
, _cfnt_date
, _cfnt_hyperdata
, _cfnt_score
, _cfnt_category) -> ContextForNgramsTerms { .. }) <$> res
where
query :: PGS.Query
query = [sql| SELECT t.id, t.hash_id, t.typename, t.user_id, t.parent_id, t.name, t.date, t.hyperdata, t.score, t.category
FROM (
SELECT DISTINCT ON (contexts.id) contexts.id AS id, hash_id, typename, user_id, parent_id, name, date, hyperdata, nodes_contexts.score AS score, nodes_contexts.category AS category,context_node_ngrams.doc_count AS doc_count
FROM contexts
JOIN context_node_ngrams ON contexts.id = context_node_ngrams.context_id
JOIN nodes_contexts ON contexts.id = nodes_contexts.context_id
JOIN ngrams ON context_node_ngrams.ngrams_id = ngrams.id
WHERE nodes_contexts.node_id = ?
AND ngrams.terms IN ?) t
ORDER BY t.doc_count DESC |]
------------------------------------------------------------------------ ------------------------------------------------------------------------
insertNodeContext :: [NodeContext] -> Cmd err Int insertNodeContext :: [NodeContext] -> Cmd err Int
insertNodeContext ns = mkCmd $ \conn -> fromIntegral <$> (runInsert_ conn insertNodeContext ns = mkCmd $ \conn -> fromIntegral <$> (runInsert_ conn
......
{-| {-|
Module : Gargantext.Database.Query.Table.NodeNgrams Module : Gargantext.Database.Query.Table.NodeNgrams
Description : Description :
Copyright : (c) CNRS, 2017-Present Copyright : (c) CNRS, 2017-Present
License : AGPL + CECILL v3 License : AGPL + CECILL v3
Maintainer : team@gargantext.org Maintainer : team@gargantext.org
...@@ -18,7 +18,7 @@ NodeNgrams register Context of Ngrams (named Cgrams then) ...@@ -18,7 +18,7 @@ NodeNgrams register Context of Ngrams (named Cgrams then)
{-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TemplateHaskell #-}
module Gargantext.Database.Query.Table.NodeNgrams module Gargantext.Database.Query.Table.NodeNgrams
( getCgramsId ( getCgramsId
, listInsertDb , listInsertDb
, module Gargantext.Database.Schema.NodeNgrams , module Gargantext.Database.Schema.NodeNgrams
...@@ -27,7 +27,7 @@ module Gargantext.Database.Query.Table.NodeNgrams ...@@ -27,7 +27,7 @@ module Gargantext.Database.Query.Table.NodeNgrams
where where
import Data.List.Extra (nubOrd) import Data.List.Extra (nubOrd)
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Maybe (fromMaybe) import Data.Maybe (fromMaybe)
import Data.Text (Text) import Data.Text (Text)
import Gargantext.Core import Gargantext.Core
...@@ -38,7 +38,7 @@ import Gargantext.Database.Schema.NodeNgrams ...@@ -38,7 +38,7 @@ import Gargantext.Database.Schema.NodeNgrams
import Gargantext.Database.Schema.Prelude (Select, FromRow, sql, fromRow, toField, field, Values(..), QualifiedIdentifier(..), selectTable) import Gargantext.Database.Schema.Prelude (Select, FromRow, sql, fromRow, toField, field, Values(..), QualifiedIdentifier(..), selectTable)
import Gargantext.Prelude import Gargantext.Prelude
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Database.PostgreSQL.Simple as PGS (Query, Only(..)) import qualified Database.PostgreSQL.Simple as PGS (Query, Only(..))
......
...@@ -43,7 +43,7 @@ import Control.Lens (view, toListOf, at, each, _Just, to, set, makeLenses) ...@@ -43,7 +43,7 @@ import Control.Lens (view, toListOf, at, each, _Just, to, set, makeLenses)
import Control.Monad.Error.Class (MonadError()) import Control.Monad.Error.Class (MonadError())
import Data.List (tail, concat, nub) import Data.List (tail, concat, nub)
import qualified Data.List as List import qualified Data.List as List
import Data.Map (Map, fromListWith, lookup) import Data.Map.Strict (Map, fromListWith, lookup)
-- import Data.Monoid (mconcat) -- import Data.Monoid (mconcat)
import Data.Proxy import Data.Proxy
-- import qualified Data.Set as Set -- import qualified Data.Set as Set
......
...@@ -27,7 +27,7 @@ import Data.Aeson ...@@ -27,7 +27,7 @@ import Data.Aeson
import Data.Aeson.Types (toJSONKeyText) import Data.Aeson.Types (toJSONKeyText)
import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict (HashMap)
import Data.Hashable (Hashable) import Data.Hashable (Hashable)
import Data.Map (fromList, lookup) import Data.Map.Strict (fromList, lookup)
import Data.Maybe (fromMaybe) import Data.Maybe (fromMaybe)
import Data.Text (Text, splitOn, pack, strip) import Data.Text (Text, splitOn, pack, strip)
import Database.PostgreSQL.Simple.FromField (returnError, ResultError(..)) import Database.PostgreSQL.Simple.FromField (returnError, ResultError(..))
......
...@@ -6,11 +6,11 @@ import Control.Concurrent.Async ...@@ -6,11 +6,11 @@ import Control.Concurrent.Async
import Control.Concurrent.STM import Control.Concurrent.STM
import Control.Exception import Control.Exception
import Control.Monad import Control.Monad
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Time.Clock import Data.Time.Clock
import Prelude import Prelude
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import Gargantext.Utils.Jobs.Settings import Gargantext.Utils.Jobs.Settings
......
...@@ -9,7 +9,7 @@ import Gargantext.Utils.Jobs.State ...@@ -9,7 +9,7 @@ import Gargantext.Utils.Jobs.State
import Control.Concurrent.STM import Control.Concurrent.STM
import Control.Exception import Control.Exception
import Control.Monad.Except import Control.Monad.Except
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Time.Clock import Data.Time.Clock
import Network.HTTP.Client (Manager) import Network.HTTP.Client (Manager)
import Prelude import Prelude
......
...@@ -8,14 +8,14 @@ import Control.Concurrent.Async ...@@ -8,14 +8,14 @@ import Control.Concurrent.Async
import Control.Concurrent.STM import Control.Concurrent.STM
import Control.Monad import Control.Monad
import Data.List import Data.List
import Data.Map (Map) import Data.Map.Strict (Map)
import Data.Maybe import Data.Maybe
import Data.Ord import Data.Ord
import Data.Proxy import Data.Proxy
import Data.Time.Clock import Data.Time.Clock
import Prelude import Prelude
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Servant.Job.Core as SJ import qualified Servant.Job.Core as SJ
import qualified Servant.Job.Types as SJ import qualified Servant.Job.Types as SJ
......
...@@ -19,8 +19,8 @@ import Data.Aeson (encode, ToJSON, toJSON, FromJSON, parseJSON, Value(..), (.:), ...@@ -19,8 +19,8 @@ import Data.Aeson (encode, ToJSON, toJSON, FromJSON, parseJSON, Value(..), (.:),
import Data.Aeson.Types (prependFailure, typeMismatch) import Data.Aeson.Types (prependFailure, typeMismatch)
import Data.Aeson.TH (deriveJSON) import Data.Aeson.TH (deriveJSON)
import qualified Data.List.Safe as LS import qualified Data.List.Safe as LS
import Data.Map (Map) import Data.Map.Strict (Map)
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import Data.Maybe (fromMaybe) import Data.Maybe (fromMaybe)
import Data.Text hiding (map, group, filter, concat, zip) import Data.Text hiding (map, group, filter, concat, zip)
import Network.HTTP.Simple (parseRequest, httpJSON, setRequestBodyLBS, getResponseBody, Response) import Network.HTTP.Simple (parseRequest, httpJSON, setRequestBodyLBS, getResponseBody, Response)
......
...@@ -2,7 +2,7 @@ module Gargantext.Utils.Servant where ...@@ -2,7 +2,7 @@ module Gargantext.Utils.Servant where
import qualified Data.ByteString.Lazy.Char8 as BSC import qualified Data.ByteString.Lazy.Char8 as BSC
import Data.Csv (defaultEncodeOptions, encodeByNameWith, encodeDefaultOrderedByName, header, namedRecord, (.=), DefaultOrdered, EncodeOptions(..), NamedRecord, Quoting(QuoteNone), ToNamedRecord) import Data.Csv (defaultEncodeOptions, encodeByNameWith, encodeDefaultOrderedByName, header, namedRecord, (.=), DefaultOrdered, EncodeOptions(..), NamedRecord, Quoting(QuoteNone), ToNamedRecord)
import qualified Data.Map as Map import qualified Data.Map.Strict as Map
import qualified Data.Text as T import qualified Data.Text as T
import Gargantext.API.Ngrams.Types (mSetToList, NgramsRepoElement(..), NgramsTableMap, NgramsTerm(..), unNgramsTerm) import Gargantext.API.Ngrams.Types (mSetToList, NgramsRepoElement(..), NgramsTableMap, NgramsTerm(..), unNgramsTerm)
import Gargantext.Core.Types.Main (ListType(..)) import Gargantext.Core.Types.Main (ListType(..))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment