poseidon-hs-1.5.5.0: A package with tools for working with Poseidon genotype data
Safe HaskellSafe-Inferred
LanguageHaskell2010

Poseidon.EntityTypes

Synopsis

Documentation

data IndividualInfo Source #

a minimal datatype representing an individual in a collection of packages

Constructors

IndividualInfo 

Fields

Instances

Instances details
Generic IndividualInfo Source # 
Instance details

Defined in Poseidon.EntityTypes

Associated Types

type Rep IndividualInfo :: Type -> Type #

Show IndividualInfo Source # 
Instance details

Defined in Poseidon.EntityTypes

Eq IndividualInfo Source # 
Instance details

Defined in Poseidon.EntityTypes

Ord IndividualInfo Source # 
Instance details

Defined in Poseidon.EntityTypes

HasNameAndVersion IndividualInfo Source # 
Instance details

Defined in Poseidon.EntityTypes

type Rep IndividualInfo Source # 
Instance details

Defined in Poseidon.EntityTypes

type Rep IndividualInfo = D1 ('MetaData "IndividualInfo" "Poseidon.EntityTypes" "poseidon-hs-1.5.5.0-64IxIR1JUiELWCZhD8ICmR" 'False) (C1 ('MetaCons "IndividualInfo" 'PrefixI 'True) (S1 ('MetaSel ('Just "indInfoName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Just "indInfoGroups") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [String]) :*: S1 ('MetaSel ('Just "indInfoPac") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PacNameAndVersion))))

type IndividualInfoCollection = ([IndividualInfo], [Bool]) Source #

a tuple of a collection of IndividualInfos and a list of bools indicating whether the given sample is in the latest version of packages

renderNameWithVersion :: HasNameAndVersion a => a -> String Source #

universal rendering of package names and version

class Eq a => HasNameAndVersion a where Source #

A class to represent a package-identifying property

Methods

getPacName Source #

Arguments

:: a 
-> String

a name property

getPacVersion Source #

Arguments

:: a 
-> Maybe Version

a version property

Instances

Instances details
HasNameAndVersion PackageIteration Source # 
Instance details

Defined in Poseidon.Chronicle

HasNameAndVersion IndividualInfo Source # 
Instance details

Defined in Poseidon.EntityTypes

HasNameAndVersion PacNameAndVersion Source # 
Instance details

Defined in Poseidon.EntityTypes

HasNameAndVersion PoseidonPackage Source # 
Instance details

Defined in Poseidon.Package

HasNameAndVersion PoseidonYamlStruct Source # 
Instance details

Defined in Poseidon.Package

HasNameAndVersion ExtendedIndividualInfo Source # 
Instance details

Defined in Poseidon.ServerClient

HasNameAndVersion GroupInfo Source # 
Instance details

Defined in Poseidon.ServerClient

HasNameAndVersion PackageInfo Source # 
Instance details

Defined in Poseidon.ServerClient

data PoseidonEntity Source #

A datatype to represent a requested package, group or individual

Constructors

Pac PacNameAndVersion

all individuals in a package. A version can be specified, if not implicitly request the latest

Group String

all individuals with a given group, in all of the latest packages

Ind String

all individuals with the given name, in all of the latest packages

SpecificInd String String PacNameAndVersion

the individual specified by its name, group and package. If not versioned, then take the latest version.

Instances

Instances details
FromJSON PoseidonEntity Source # 
Instance details

Defined in Poseidon.EntityTypes

Methods

parseJSON :: Value -> Parser PoseidonEntity

parseJSONList :: Value -> Parser [PoseidonEntity]

ToJSON PoseidonEntity Source # 
Instance details

Defined in Poseidon.EntityTypes

Methods

toJSON :: PoseidonEntity -> Value

toEncoding :: PoseidonEntity -> Encoding

toJSONList :: [PoseidonEntity] -> Value

toEncodingList :: [PoseidonEntity] -> Encoding

Show PoseidonEntity Source #

A show instance for rendering entities in forgescript

Instance details

Defined in Poseidon.EntityTypes

Eq PoseidonEntity Source # 
Instance details

Defined in Poseidon.EntityTypes

Ord PoseidonEntity Source # 
Instance details

Defined in Poseidon.EntityTypes

EntitySpec PoseidonEntity Source # 
Instance details

Defined in Poseidon.EntityTypes

data SignedEntity Source #

a signed entity specification, denoting inclusion or exclusion of an entity

Instances

Instances details
FromJSON SignedEntity Source # 
Instance details

Defined in Poseidon.EntityTypes

Methods

parseJSON :: Value -> Parser SignedEntity

parseJSONList :: Value -> Parser [SignedEntity]

ToJSON SignedEntity Source # 
Instance details

Defined in Poseidon.EntityTypes

Methods

toJSON :: SignedEntity -> Value

toEncoding :: SignedEntity -> Encoding

toJSONList :: [SignedEntity] -> Value

toEncodingList :: [SignedEntity] -> Encoding

Show SignedEntity Source # 
Instance details

Defined in Poseidon.EntityTypes

Eq SignedEntity Source # 
Instance details

Defined in Poseidon.EntityTypes

Ord SignedEntity Source # 
Instance details

Defined in Poseidon.EntityTypes

EntitySpec SignedEntity Source # 
Instance details

Defined in Poseidon.EntityTypes

hasVersion :: HasNameAndVersion a => a -> Bool Source #

a convenience function

makePacNameAndVersion :: HasNameAndVersion a => a -> PacNameAndVersion Source #

a function to normalise any instance of HasNameAndVersion to the minimal concrete type PacNameAndVersion

isLatestInCollection :: (MonadThrow m, HasNameAndVersion a) => [a] -> a -> m Bool Source #

a function to check whether a given package is the latest within a collection

class EntitySpec a Source #

A class to generalise signed and unsigned Entity Lists. Both have the feature that they can be used to filter individuals.

Minimal complete definition

indInfoConformsToEntitySpec, underlyingEntity, entitySpecParser

indInfoConformsToEntitySpecs :: EntitySpec a => IndividualInfo -> Bool -> [a] -> Bool Source #

this function checks whether a given individual info is selected by a given list of entities.

underlyingEntity Source #

Arguments

:: EntitySpec a 
=> a 
-> PoseidonEntity

returns the unterlying entity

entitySpecParser Source #

Arguments

:: EntitySpec a 
=> Parser a

a parser

determineNonExistentEntities :: EntitySpec a => [a] -> IndividualInfoCollection -> EntitiesList Source #

this returns a list of entities which could not be found

determineRelevantPackages :: (MonadThrow m, EntitySpec a) => [a] -> IndividualInfoCollection -> m [PacNameAndVersion] Source #

determine all packages with versions that contain individuals covered by the given entities

reportDuplicateIndividuals :: [IndividualInfo] -> [(IndividualInfo, [PoseidonEntity])] Source #

takes a list of selected individuals, checks for duplicates and reports a list of individuals with suggested Entity specifications