module Drasil.PDController.Choices where import Data.Drasil.ExternalLibraries.ODELibraries (scipyODELSodaPkg) import Drasil.PDController.Body (pidODEInfo, fullSI) import Language.Drasil.Code (AuxFile(..), Choices(..), CodeSpec, Comments(..), ConstantRepr(..), ConstantStructure(..), ConstraintBehaviour(..), ImplementationType(..), InputModule(..), Lang(..), Modularity(..), Structure(..), Verbosity(..), Visibility(..), codeSpec, defaultChoices, makeArchit, makeData, makeConstraints, makeODE, makeDocConfig, makeLogConfig, makeOptFeats, ExtLib(..)) codeSpecs :: CodeSpec codeSpecs :: CodeSpec codeSpecs = SystemInformation -> Choices -> [Mod] -> CodeSpec codeSpec SystemInformation fullSI Choices codeChoices [] codeChoices :: Choices codeChoices :: Choices codeChoices = Choices defaultChoices{ lang :: [Lang] lang = [Lang Python], architecture :: Architecture architecture = Modularity -> ImplementationType -> Architecture makeArchit (InputModule -> Modularity Modular InputModule Combined) ImplementationType Program, dataInfo :: DataInfo dataInfo = Structure -> ConstantStructure -> ConstantRepr -> DataInfo makeData Structure Unbundled (Structure -> ConstantStructure Store Structure Bundled) ConstantRepr Const, optFeats :: OptionalFeatures optFeats = DocConfig -> LogConfig -> [AuxFile] -> OptionalFeatures makeOptFeats ([Comments] -> Verbosity -> Visibility -> DocConfig makeDocConfig [Comments CommentFunc, Comments CommentClass, Comments CommentMod] Verbosity Verbose Visibility Hide) ([Logging] -> FilePath -> LogConfig makeLogConfig [] "log.txt") [FilePath -> AuxFile SampleInput "../../datafiles/pdcontroller/sampleInput.txt", AuxFile ReadME], srsConstraints :: Constraints srsConstraints = ConstraintBehaviour -> ConstraintBehaviour -> Constraints makeConstraints ConstraintBehaviour Exception ConstraintBehaviour Exception, extLibs :: [ExtLib] extLibs = [ODE -> ExtLib Math ([ODEInfo] -> [ODELibPckg] -> ODE makeODE [ODEInfo pidODEInfo] [ODELibPckg scipyODELSodaPkg])] }