Commit 565e11e2 authored by Alexandre Delanoë's avatar Alexandre Delanoë

[FIX] hpack-convert for automatic gargantext.cabal updates (thx yann).

parent f12df281
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Data.ByteString.Extended ( module Data.ByteString
, replace
) where
import Data.ByteString
replace :: ByteString -> ByteString -> ByteString -> ByteString
replace = undefined
-- instance (Binary k, Binary v) => Binary (HaskMap k v) where
-- ...
module Paths_hastext (
version,
getBinDir, getLibDir, getDataDir, getLibexecDir,
getDataFileName, getSysconfDir
) where
import qualified Control.Exception as Exception
import Data.Version (Version(..))
import System.Environment (getEnv)
import Prelude
catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a
catchIO = Exception.catch
version :: Version
version = Version [0,1,0,0] []
bindir, libdir, datadir, libexecdir, sysconfdir :: FilePath
bindir = "/home/alexandre/.cabal/bin"
libdir = "/home/alexandre/.cabal/lib/x86_64-linux-ghc-7.8.3/hastext-0.1.0.0"
datadir = "/home/alexandre/.cabal/share/x86_64-linux-ghc-7.8.3/hastext-0.1.0.0"
libexecdir = "/home/alexandre/.cabal/libexec"
sysconfdir = "/home/alexandre/.cabal/etc"
getBinDir, getLibDir, getDataDir, getLibexecDir, getSysconfDir :: IO FilePath
getBinDir = catchIO (getEnv "hastext_bindir") (\_ -> return bindir)
getLibDir = catchIO (getEnv "hastext_libdir") (\_ -> return libdir)
getDataDir = catchIO (getEnv "hastext_datadir") (\_ -> return datadir)
getLibexecDir = catchIO (getEnv "hastext_libexecdir") (\_ -> return libexecdir)
getSysconfDir = catchIO (getEnv "hastext_sysconfdir") (\_ -> return sysconfdir)
getDataFileName :: FilePath -> IO FilePath
getDataFileName name = do
dir <- getDataDir
return (dir ++ "/" ++ name)
/* DO NOT EDIT: This file is automatically generated by Cabal */
/* package base-4.7.0.1 */
#define VERSION_base "4.7.0.1"
#define MIN_VERSION_base(major1,major2,minor) (\
(major1) < 4 || \
(major1) == 4 && (major2) < 7 || \
(major1) == 4 && (major2) == 7 && (minor) <= 0)
/* tool alex-3.1.3 */
#define TOOL_VERSION_alex "3.1.3"
#define MIN_TOOL_VERSION_alex(major1,major2,minor) (\
(major1) < 3 || \
(major1) == 3 && (major2) < 1 || \
(major1) == 3 && (major2) == 1 && (minor) <= 3)
/* tool c2hs-0.17.2 */
#define TOOL_VERSION_c2hs "0.17.2"
#define MIN_TOOL_VERSION_c2hs(major1,major2,minor) (\
(major1) < 0 || \
(major1) == 0 && (major2) < 17 || \
(major1) == 0 && (major2) == 17 && (minor) <= 2)
/* tool cpphs-1.19.3 */
#define TOOL_VERSION_cpphs "1.19.3"
#define MIN_TOOL_VERSION_cpphs(major1,major2,minor) (\
(major1) < 1 || \
(major1) == 1 && (major2) < 19 || \
(major1) == 1 && (major2) == 19 && (minor) <= 3)
/* tool gcc-4.9.2 */
#define TOOL_VERSION_gcc "4.9.2"
#define MIN_TOOL_VERSION_gcc(major1,major2,minor) (\
(major1) < 4 || \
(major1) == 4 && (major2) < 9 || \
(major1) == 4 && (major2) == 9 && (minor) <= 2)
/* tool ghc-7.8.3 */
#define TOOL_VERSION_ghc "7.8.3"
#define MIN_TOOL_VERSION_ghc(major1,major2,minor) (\
(major1) < 7 || \
(major1) == 7 && (major2) < 8 || \
(major1) == 7 && (major2) == 8 && (minor) <= 3)
/* tool ghc-pkg-7.8.3 */
#define TOOL_VERSION_ghc_pkg "7.8.3"
#define MIN_TOOL_VERSION_ghc_pkg(major1,major2,minor) (\
(major1) < 7 || \
(major1) == 7 && (major2) < 8 || \
(major1) == 7 && (major2) == 8 && (minor) <= 3)
/* tool haddock-2.15.0.2 */
#define TOOL_VERSION_haddock "2.15.0.2"
#define MIN_TOOL_VERSION_haddock(major1,major2,minor) (\
(major1) < 2 || \
(major1) == 2 && (major2) < 15 || \
(major1) == 2 && (major2) == 15 && (minor) <= 0)
/* tool happy-1.19.4 */
#define TOOL_VERSION_happy "1.19.4"
#define MIN_TOOL_VERSION_happy(major1,major2,minor) (\
(major1) < 1 || \
(major1) == 1 && (major2) < 19 || \
(major1) == 1 && (major2) == 19 && (minor) <= 4)
/* tool hpc-0.67 */
#define TOOL_VERSION_hpc "0.67"
#define MIN_TOOL_VERSION_hpc(major1,major2,minor) (\
(major1) < 0 || \
(major1) == 0 && (major2) < 67 || \
(major1) == 0 && (major2) == 67 && (minor) <= 0)
/* tool hsc2hs-0.67 */
#define TOOL_VERSION_hsc2hs "0.67"
#define MIN_TOOL_VERSION_hsc2hs(major1,major2,minor) (\
(major1) < 0 || \
(major1) == 0 && (major2) < 67 || \
(major1) == 0 && (major2) == 67 && (minor) <= 0)
/* tool pkg-config-0.28 */
#define TOOL_VERSION_pkg_config "0.28"
#define MIN_TOOL_VERSION_pkg_config(major1,major2,minor) (\
(major1) < 0 || \
(major1) == 0 && (major2) < 28 || \
(major1) == 0 && (major2) == 28 && (minor) <= 0)
/* tool strip-2.25 */
#define TOOL_VERSION_strip "2.25"
#define MIN_TOOL_VERSION_strip(major1,major2,minor) (\
(major1) < 2 || \
(major1) == 2 && (major2) < 25 || \
(major1) == 2 && (major2) == 25 && (minor) <= 0)
[InstalledPackageInfo {installedPackageId = InstalledPackageId "hastext-0.1.0.0-inplace", sourcePackageId = PackageIdentifier {pkgName = PackageName "hastext", pkgVersion = Version {versionBranch = [0,1,0,0], versionTags = []}}, license = BSD3, copyright = "Copyright: (c) 2016 Alexandre Delano\235", maintainer = "alexandre+dev@delanoe.org", author = "Alexandre Delano\235", stability = "", homepage = "http://github.com/adelanoe/hastext#readme", pkgUrl = "", synopsis = "Text mining project", description = "Please see README.md", category = "Data", exposed = True, exposedModules = ["Hastext","Hastext.Db"], hiddenModules = [], trusted = False, importDirs = ["/home/alexandre/projets/hastext/dist/build"], libraryDirs = ["/home/alexandre/projets/hastext/dist/build"], hsLibraries = ["HShastext-0.1.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.7.0.1-1a55ebc8256b39ccbff004d48b3eb834"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/alexandre/projets/hastext/dist/doc/html/hastext/hastext.haddock"], haddockHTMLs = ["/home/alexandre/projets/hastext/dist/doc/html/hastext"]}
]
\ No newline at end of file
import Distribution.Simple; main = defaultMain
Version {versionBranch = [1,22,6,0], versionTags = []}
-- This file has been generated from package.yaml by hpack version 0.18.1.
--
-- see: https://github.com/sol/hpack
name: gargantext
version: 0.1.0.0
synopsis: Deep (Collaborative) Text mining project
......@@ -7,127 +11,124 @@ license: BSD3
license-file: LICENSE
author: Alexandre Delanoë
maintainer: gargantext@iscpif.fr
copyright: Copyright: (c) 2016,2017 CNRS Alexandre Delanoë
copyright: Copyright: (c) 2016,
2017 CNRS Alexandre Delanoë
category: Data
build-type: Simple
-- extra-source-files:
cabal-version: >=1.10
cabal-version: >= 1.10
library
hs-source-dirs: src
build-depends: base >= 4.7 && < 5
, aeson
, attoparsec
, async
, base16-bytestring
, bytestring
, case-insensitive
, containers
, contravariant
, conduit
, conduit-extra
, directory
, duckling
, extra
, filepath
, http-conduit
, lens
, logging-effect
, opaleye
, path
, parsec
, postgresql-simple
, pretty
, product-profunctors
, profunctors
, protolude
, pureMD5
, regex-compat
, semigroups
, servant
, servant-client
, servant-multipart
, servant-server
, split
, tagsoup
, text
, text-metrics
, time
, timezone-series
, time-locale-compat
, transformers
, unordered-containers
, uuid
, vector
, wai
, warp
, yaml
, zlib
, zip
, path-io
--, LibZip
-- , stemmer
--, utc
exposed-modules: Data.Gargantext
, Data.Gargantext.Analysis
, Data.Gargantext.DSL
, Data.Gargantext.Database
, Data.Gargantext.Database.Instances
, Data.Gargantext.Database.Ngram
, Data.Gargantext.Database.Node
, Data.Gargantext.Database.NodeNgram
, Data.Gargantext.Database.NodeNgramNgram
, Data.Gargantext.Database.NodeNode
, Data.Gargantext.Database.NodeNodeNgram
, Data.Gargantext.Database.Private
, Data.Gargantext.Database.User
, Data.Gargantext.Ngrams
, Data.Gargantext.Ngrams.Count
, Data.Gargantext.Ngrams.CoreNLP
, Data.Gargantext.Ngrams.Parser
, Data.Gargantext.Ngrams.Lang.En
, Data.Gargantext.Ngrams.Lang.Fr
, Data.Gargantext.Ngrams.Metrics
, Data.Gargantext.Ngrams.TextMining
, Data.Gargantext.Ngrams.Occurrences
, Data.Gargantext.Parsers
, Data.Gargantext.Parsers.WOS
, Data.Gargantext.Parsers.Date
, Data.Gargantext.Prelude
, Data.Gargantext.Server
, Data.Gargantext.Types
, Data.Gargantext.Types.Main
, Data.Gargantext.Types.Node
, Data.Gargantext.Utils.DateUtils
, Data.Gargantext.Utils.Prefix
default-language: Haskell2010
ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates -Werror
-- -Werror
--executable gargantext-exe
-- hs-source-dirs: app
-- main-is: Main.hs
-- ghc-options: -threaded -rtsopts -with-rtsopts=-N
-- build-depends: base
-- , hastext
-- default-language: Haskell2010
hs-source-dirs:
src
build-depends:
extra
, text
, base >=4.7 && <5
, aeson
, attoparsec
, async
, base16-bytestring
, bytestring
, case-insensitive
, containers
, contravariant
, conduit
, conduit-extra
, directory
, duckling
, filepath
, http-conduit
, lens
, logging-effect
, opaleye
, path
, parsec
, postgresql-simple
, pretty
, product-profunctors
, profunctors
, protolude
, pureMD5
, regex-compat
, semigroups
, servant
, servant-client
, servant-multipart
, servant-server
, split
, tagsoup
, text-metrics
, time
, timezone-series
, time-locale-compat
, transformers
, unordered-containers
, uuid
, vector
, wai
, warp
, yaml
, zlib
, zip
, path-io
exposed-modules:
Data.Gargantext
Data.Gargantext.Analysis
Data.Gargantext.DSL
Data.Gargantext.Database
Data.Gargantext.Database.Instances
Data.Gargantext.Database.Ngram
Data.Gargantext.Database.Node
Data.Gargantext.Database.NodeNgram
Data.Gargantext.Database.NodeNgramNgram
Data.Gargantext.Database.NodeNode
Data.Gargantext.Database.NodeNodeNgram
Data.Gargantext.Database.Private
Data.Gargantext.Database.User
Data.Gargantext.Ngrams
Data.Gargantext.Ngrams.Count
Data.Gargantext.Ngrams.CoreNLP
Data.Gargantext.Ngrams.Parser
Data.Gargantext.Ngrams.Lang.En
Data.Gargantext.Ngrams.Lang.Fr
Data.Gargantext.Ngrams.Metrics
Data.Gargantext.Ngrams.TextMining
Data.Gargantext.Ngrams.Occurrences
Data.Gargantext.Parsers
Data.Gargantext.Parsers.WOS
Data.Gargantext.Parsers.Date
Data.Gargantext.Prelude
Data.Gargantext.RCT
Data.Gargantext.Server
Data.Gargantext.Types
Data.Gargantext.Types.Main
Data.Gargantext.Types.Node
Data.Gargantext.Utils.DateUtils
Data.Gargantext.Utils.Prefix
other-modules:
Data.Gargantext.Utils
Paths_gargantext
default-language: Haskell2010
ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates -Werror
test-suite garg-test-ngrams
type: exitcode-stdio-1.0
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
default-language: Haskell2010
hs-source-dirs: test
main-is: Main.hs
other-modules:
type: exitcode-stdio-1.0
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
default-language: Haskell2010
hs-source-dirs:
test
main-is: Main.hs
other-modules:
Ngrams.Lang
Ngrams.Lang.Fr
Ngrams.Lang.En
Ngrams.Lang.Fr
Ngrams.Lang.Occurrences
Ngrams.Metrics
build-depends: base
, extra
, text
, gargantext
, hspec
, QuickCheck
Parsers.WOS
build-depends:
extra
, text
, base
, gargantext
, hspec
, QuickCheck
name: gargantext
version: '0.1.0.0'
synopsis: Deep (Collaborative) Text mining project
description: Please see README.md
category: Data
author: Alexandre Delanoë
maintainer: gargantext@iscpif.fr
copyright:
- ! 'Copyright: (c) 2016'
- 2017 CNRS Alexandre Delanoë
license: BSD3
homepage: http://gargantext.org
ghc-options: -Wall
dependencies:
- extra
- text
library:
source-dirs: src
ghc-options:
- -Wincomplete-uni-patterns
- -Wincomplete-record-updates
- -Werror
exposed-modules:
- Data.Gargantext
- Data.Gargantext.Analysis
- Data.Gargantext.DSL
- Data.Gargantext.Database
- Data.Gargantext.Database.Instances
- Data.Gargantext.Database.Ngram
- Data.Gargantext.Database.Node
- Data.Gargantext.Database.NodeNgram
- Data.Gargantext.Database.NodeNgramNgram
- Data.Gargantext.Database.NodeNode
- Data.Gargantext.Database.NodeNodeNgram
- Data.Gargantext.Database.Private
- Data.Gargantext.Database.User
- Data.Gargantext.Ngrams
- Data.Gargantext.Ngrams.Count
- Data.Gargantext.Ngrams.CoreNLP
- Data.Gargantext.Ngrams.Parser
- Data.Gargantext.Ngrams.Lang.En
- Data.Gargantext.Ngrams.Lang.Fr
- Data.Gargantext.Ngrams.Metrics
- Data.Gargantext.Ngrams.TextMining
- Data.Gargantext.Ngrams.Occurrences
- Data.Gargantext.Parsers
- Data.Gargantext.Parsers.WOS
- Data.Gargantext.Parsers.Date
- Data.Gargantext.Prelude
- Data.Gargantext.RCT
- Data.Gargantext.Server
- Data.Gargantext.Types
- Data.Gargantext.Types.Main
- Data.Gargantext.Types.Node
- Data.Gargantext.Utils.DateUtils
- Data.Gargantext.Utils.Prefix
dependencies:
- base >=4.7 && <5
- aeson
- attoparsec
- async
- base16-bytestring
- bytestring
- case-insensitive
- containers
- contravariant
- conduit
- conduit-extra
- directory
- duckling
- filepath
- http-conduit
- lens
- logging-effect
- opaleye
- path
- parsec
- postgresql-simple
- pretty
- product-profunctors
- profunctors
- protolude
- pureMD5
- regex-compat
- semigroups
- servant
- servant-client
- servant-multipart
- servant-server
- split
- tagsoup
- text-metrics
- time
- timezone-series
- time-locale-compat
- transformers
- unordered-containers
- uuid
- vector
- wai
- warp
- yaml
- zlib
- zip
- path-io
tests:
garg-test-ngrams:
main: Main.hs
source-dirs: test
ghc-options:
- -threaded
- -rtsopts
- -with-rtsopts=-N
dependencies:
- base
- gargantext
- hspec
- QuickCheck
module Data.Gargantext.Error where
import Control.Exception (Exception)
import Data.Typeable (Typeable)
import GHC.Generics (Generic)
import Network.HTTP.Client (HttpException)
import System.Exit (ExitCode (..), exitWith)
import System.IO (stderr)
--import Text.Parsec.Error
--import Text.Parsec.Pos hiding (Line)
data GargError = GargIOError String IOError
| GargHttpError String HttpException
| GargParseError String
| GargNgramsError String
| GargDatabaseError String
deriving (Show, Typeable, Generic)
instance Exception PandocError
-- | Handle GargError by exiting with an error message.
handleError :: Either GargError a -> IO a
handleError (Right r) = pure r
handleError (Left e) =
case e of
GargIOError _ err' -> ioError err'
GargHttpError u err' -> err 61 $
"Could not fetch " ++ u ++ "\n" ++ show err'
GargParseError s -> err 64 s
_ s -> err 0 s
err :: Int -> String -> IO a
err exitCode msg = do
UTF8.hPutStrLn stderr msg
exitWith $ ExitFailure exitCode
return undefined
garg
garg CorpusWith
makeAListOf Corpus ListType
-- module Data.Gargantext.Ngrams.Utils where
-- calculate levenshtein distance between two strings
levenshtein::[Char] -> [Char] -> Int
levenshtein "" "" = 0
levenshtein "" s2 = length s2
levenshtein s1 "" = length s1
levenshtein s1 s2
| last s1 == last s2 = levenshtein (init s1) (init s2)
| otherwise = minimum [
1 + levenshtein (init s1) s2,
1 + levenshtein s1 (init s2),
1 + levenshtein (init s1) (init s2)
]
-- calculate levenshtein distance between two strings
levenshtein::[Char] -> [Char] -> Int
-- this part is mostly a speed optimiziation
levenshtein' s1 s2
| length s1 > length s2 = levenshtein s2 s1
| length s1 < length s2 =
let d = length s2 - length s1
in d + levenshtein s1 (take (length s2 - d) s2)
-- the meat of the algorithm
levenshtein' "" "" = 0
levenshtein' s1 s2
| last s1 == last s2 = levenshtein (init s1) (init s2)
| otherwise = minimum [1 + levenshtein (init s1) s2,
1 + levenshtein s1 (init s2),
1 + levenshtein (init s1) (init s2)]
-- Word2Vec
-- Word Vector in a Field
module Data.Gargantext.Ngrams.Words where
import Data.List (partition)
import Data.Set (fromList, notMember, member)
......
module Data.Gargantext.Parsers.Date where
import Data.Time.Clock (UTCTime, getCurrentTime)
import Data.Time.LocalTime.TimeZone.Series (zonedTimeToZoneSeriesTime)
import Data.Time.LocalTime (utc)
import Duckling.Resolve (fromUTC, Context(Context, referenceTime, locale)
, DucklingTime(DucklingTime)
)
--import Duckling.Core (makeLocale, Lang(FR,EN), Some(This), Dimension(Time))
import Duckling.Core (makeLocale, Lang(), Some(This), Dimension(Time))
import Duckling.Api (analyze)
import qualified Data.HashSet as HashSet
import Data.Text (Text)
-- import Duckling.Engine (parseAndResolve)
-- import Duckling.Rules (rulesFor)
-- import Duckling.Debug as DB
import Duckling.Types (ResolvedToken)
-- TODO add Paris at Duckling.Locale Region datatype
utcToDucklingTime :: UTCTime -> DucklingTime
utcToDucklingTime time = DucklingTime . zonedTimeToZoneSeriesTime $ fromUTC time utc
localContext :: Lang -> DucklingTime -> Context
localContext lang dt = Context {referenceTime = dt, locale = makeLocale lang Nothing}
parseDate :: Lang -> Text -> IO [ResolvedToken]
parseDate lang input = do
ctx <- localContext lang <$> utcToDucklingTime <$> getCurrentTime
--pure $ parseAndResolve (rulesFor (locale ctx) (HashSet.fromList [(This Time)])) input ctx
pure $ analyze input ctx $ HashSet.fromList [(This Time)]
module Data.Gargantext.RCT where
foo :: Int
foo = undefined
--import Data.Text (Text, words)
--import Data.Attoparsec.Text (anyChar, isEndOfLine, Parser, takeTill, many1, endOfLine, space, manyTill)
--import Control.Applicative (many)
-- RCT is the acronym for Referential ConText (of Text)
-- at the begin there was a byte
-- then a char
-- Char -> RCT [Char]
-- then a list of chars called a string, we call it a Form
-- (removing all weird charachters which are not alphanumeric)
-- Form -> RCT Sentence
-- These forms compose the RCT Sentence
-- an ngrams is composed with multiple forms
-- Paragraph = [Sentence]
-- type Title = Paragraph
-- data Block = [Paragraph]
-- Block is taken form Pandoc
-- data Document = [Block]
-- Set of databases
-- Database
-- Set of Articles
-- Article
-- Paragraph (abstract + title)
-- Sentence - Ngrams - Forms
--separateurs :: Parser Text
--separateurs = dropWhile isEndOfLine
--paragraphs :: Parser [Text]
--paragraphs = many paragraph
--
--paragraph :: Parser Text
--paragraph = takeTill isEndOfLine <* many1 endOfLine
--
-- forms :: Text -> [Text]
-- forms = words
module Data.Gargantext.Utils ( module Data.Gargantext.Utils.Chronos
, module Data.Gargantext.Utils.Prefix
module Data.Gargantext.Utils (
-- module Data.Gargantext.Utils.Chronos
module Data.Gargantext.Utils.Prefix
) where
import Data.Gargantext.Utils.Chronos
module Data.Gargantext.Utils.Prefix
-- import Data.Gargantext.Utils.Chronos
import Data.Gargantext.Utils.Prefix
module Data.Gargantext.Utils.SaveGetHash where
import System.FilePath (addExtension, joinPath)
......
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