icat.entities — Provide classes corresponding to the ICAT schema

Provide the classes corresponding to the entities in the ICAT schema.

Entity classes defined in this module are derived from the abstract base class icat.entity.Entity. They override the class attributes icat.entity.Entity.BeanName, icat.entity.Entity.Constraint, icat.entity.Entity.InstAttr, icat.entity.Entity.InstRel, icat.entity.Entity.InstMRel, icat.entity.Entity.AttrAlias, and icat.entity.Entity.SortAttrs as appropriate.

class icat.entities.Parameter(client, instance, **kwargs)

Bases: icat.entity.Entity

Abstract base class for icat.entities.DatafileParameter, icat.entities.DatasetParameter, icat.entities.InvestigationParameter, icat.entities.SampleParameter, and icat.entities.DataCollectionParameter.

InstAttr = frozenset(['numericValue', 'rangeBottom', 'rangeTop', 'dateTimeValue', 'error', 'stringValue', 'id'])
InstRel = frozenset(['type'])
class icat.entities.Application(client, instance, **kwargs)

Bases: icat.entity.Entity

Some piece of software.

BeanName = 'Application'
Constraint = ('name', 'version')
InstAttr = frozenset(['version', 'id', 'name'])
InstMRel = frozenset(['jobs'])
class icat.entities.Application43(client, instance, **kwargs)

Bases: icat.entities.Application

Some piece of software.

Constraint = ('facility', 'name', 'version')
InstRel = frozenset(['facility'])
class icat.entities.DataCollection(client, instance, **kwargs)

Bases: icat.entity.Entity

A set of Datafiles and Datasets which can span investigations and facilities. Note that it has no constraint fields. It is expected that a DataCollection would be identified by its DataCollectionParameters or its relationship to a Job.

BeanName = 'DataCollection'
InstMRel = frozenset(['dataCollectionParameters', 'dataCollectionDatasets', 'jobsAsOutput', 'dataCollectionDatafiles', 'jobsAsInput'])
AttrAlias = {'parameters': 'dataCollectionParameters'}
SortAttrs = ['dataCollectionDatasets', 'dataCollectionDatafiles']
class icat.entities.DataCollection431(client, instance, **kwargs)

Bases: icat.entities.DataCollection

A set of Datafiles and Datasets which can span investigations and facilities. Note that it has no constraint fields. It is expected that a DataCollection would be identified by its parameters or its relationship to a Job.

InstMRel = frozenset(['dataCollectionDatasets', 'jobsAsOutput', 'parameters', 'dataCollectionDatafiles', 'jobsAsInput'])
AttrAlias = {'dataCollectionParameters': 'parameters'}
class icat.entities.DataCollectionDatafile(client, instance, **kwargs)

Bases: icat.entity.Entity

Represents a many-to-many relationship between a DataCollection and its Datafiles.

BeanName = 'DataCollectionDatafile'
Constraint = ('dataCollection', 'datafile')
InstRel = frozenset(['dataCollection', 'datafile'])
SortAttrs = ['datafile']
class icat.entities.DataCollectionDataset(client, instance, **kwargs)

Bases: icat.entity.Entity

Represents a many-to-many relationship between a DataCollection and its datasets.

BeanName = 'DataCollectionDataset'
Constraint = ('dataCollection', 'dataset')
InstRel = frozenset(['dataCollection', 'dataset'])
SortAttrs = ['dataset']
class icat.entities.DataCollectionParameter(client, instance, **kwargs)

Bases: icat.entities.Parameter

A parameter associated with a DataCollection.

BeanName = 'DataCollectionParameter'
Constraint = ('dataCollection', 'type')
InstRel = frozenset(['dataCollection', 'type'])
class icat.entities.Datafile(client, instance, **kwargs)

Bases: icat.entity.Entity

A data file.

BeanName = 'Datafile'
Constraint = ('name', 'location', 'dataset')
InstAttr = frozenset(['doi', 'description', 'checksum', 'name', 'location', 'datafileCreateTime', 'id', 'datafileModTime', 'fileSize'])
InstRel = frozenset(['datafileFormat', 'dataset'])
InstMRel = frozenset(['outputDatafiles', 'destDatafiles', 'sourceDatafiles', 'parameters', 'inputDatafiles'])
class icat.entities.Datafile43(client, instance, **kwargs)

Bases: icat.entities.Datafile

A data file.

Constraint = ('dataset', 'name')
InstMRel = frozenset(['destDatafiles', 'dataCollectionDatafiles', 'parameters', 'sourceDatafiles'])
class icat.entities.DatafileFormat(client, instance, **kwargs)

Bases: icat.entity.Entity

A data file format.

BeanName = 'DatafileFormat'
Constraint = ('facility', 'name', 'version')
InstAttr = frozenset(['description', 'version', 'type', 'id', 'name'])
InstRel = frozenset(['facility'])
InstMRel = frozenset(['datafiles'])
class icat.entities.DatafileParameter(client, instance, **kwargs)

Bases: icat.entities.Parameter

A parameter associated with a data file.

BeanName = 'DatafileParameter'
Constraint = ('datafile', 'type')
InstRel = frozenset(['datafile', 'type'])
class icat.entities.Dataset(client, instance, **kwargs)

Bases: icat.entity.Entity

A collection of data files and part of an investigation.

BeanName = 'Dataset'
Constraint = ('sample', 'investigation', 'name', 'type')
InstAttr = frozenset(['startDate', 'doi', 'endDate', 'description', 'location', 'complete', 'id', 'name'])
InstRel = frozenset(['sample', 'investigation', 'type'])
InstMRel = frozenset(['inputDatasets', 'datafiles', 'outputDatasets', 'parameters'])
class icat.entities.Dataset43(client, instance, **kwargs)

Bases: icat.entities.Dataset

A collection of data files and part of an investigation.

Constraint = ('investigation', 'name')
InstMRel = frozenset(['dataCollectionDatasets', 'datafiles', 'parameters'])
class icat.entities.DatasetParameter(client, instance, **kwargs)

Bases: icat.entities.Parameter

A parameter associated with a data set.

BeanName = 'DatasetParameter'
Constraint = ('dataset', 'type')
InstRel = frozenset(['type', 'dataset'])
class icat.entities.DatasetType(client, instance, **kwargs)

Bases: icat.entity.Entity

A type of data set.

BeanName = 'DatasetType'
Constraint = ('facility', 'name')
InstAttr = frozenset(['description', 'id', 'name'])
InstRel = frozenset(['facility'])
InstMRel = frozenset(['datasets'])
class icat.entities.Facility(client, instance, **kwargs)

Bases: icat.entity.Entity

An experimental facility.

BeanName = 'Facility'
Constraint = ('name',)
InstAttr = frozenset(['daysUntilRelease', 'description', 'url', 'fullName', 'id', 'name'])
InstMRel = frozenset(['investigations', 'instruments', 'sampleTypes', 'datasetTypes', 'datafileFormats', 'facilityCycles', 'parameterTypes', 'investigationTypes'])
class icat.entities.Facility43(client, instance, **kwargs)

Bases: icat.entities.Facility

An experimental facility.

InstMRel = frozenset(['investigations', 'instruments', 'sampleTypes', 'datasetTypes', 'datafileFormats', 'applications', 'facilityCycles', 'parameterTypes', 'investigationTypes'])
class icat.entities.FacilityCycle(client, instance, **kwargs)

Bases: icat.entity.Entity

An operating cycle within a facility

BeanName = 'FacilityCycle'
Constraint = ('facility', 'name')
InstAttr = frozenset(['startDate', 'description', 'endDate', 'id', 'name'])
InstRel = frozenset(['facility'])
InstMRel = frozenset(['investigations'])
class icat.entities.FacilityCycle43(client, instance, **kwargs)

Bases: icat.entities.FacilityCycle

An operating cycle within a facility.

InstMRel = frozenset([])
class icat.entities.Group(client, instance, **kwargs)

Bases: icat.entity.Entity

A group of users.

BeanName = 'Group'
Constraint = ('name',)
InstAttr = frozenset(['id', 'name'])
InstMRel = frozenset(['rules', 'userGroups'])
addUsers(users)
getUsers(attribute=None)
class icat.entities.Group43(client, instance, **kwargs)

Bases: icat.entities.Group

A group of users.

BeanName = 'Grouping'
class icat.entities.Group44(client, instance, **kwargs)

Bases: icat.entities.Group43

A group of users.

InstMRel = frozenset(['rules', 'userGroups', 'investigationGroups'])
class icat.entities.InputDatafile(client, instance, **kwargs)

Bases: icat.entity.Entity

Many to many relationship between data file as input and a job.

BeanName = 'InputDatafile'
InstRel = frozenset(['job', 'datafile'])
SortAttrs = ['job', 'datafile']
class icat.entities.InputDataset(client, instance, **kwargs)

Bases: icat.entity.Entity

Many to many relationship between data set as input and a job.

BeanName = 'InputDataset'
InstRel = frozenset(['job', 'dataset'])
SortAttrs = ['job', 'dataset']
class icat.entities.Instrument(client, instance, **kwargs)

Bases: icat.entity.Entity

Used by a user within an investigation.

BeanName = 'Instrument'
Constraint = ('facility', 'name')
InstAttr = frozenset(['fullName', 'description', 'type', 'id', 'name'])
InstRel = frozenset(['facility'])
InstMRel = frozenset(['instrumentScientists', 'investigations'])
addInstrumentScientists(users)
getInstrumentScientists(attribute=None)
class icat.entities.Instrument43(client, instance, **kwargs)

Bases: icat.entities.Instrument

Used by a user within an investigation.

InstAttr = frozenset(['description', 'url', 'fullName', 'type', 'id', 'name'])
InstMRel = frozenset(['investigationInstruments', 'instrumentScientists'])
class icat.entities.InstrumentScientist(client, instance, **kwargs)

Bases: icat.entity.Entity

Relationship between an ICAT user as an instrument scientist and the instrument.

BeanName = 'InstrumentScientist'
Constraint = ('user', 'instrument')
InstRel = frozenset(['instrument', 'user'])
class icat.entities.Investigation(client, instance, **kwargs)

Bases: icat.entity.Entity

An investigation or experiment.

BeanName = 'Investigation'
Constraint = ('name', 'visitId', 'facilityCycle', 'instrument')
InstAttr = frozenset(['startDate', 'doi', 'endDate', 'name', 'title', 'summary', 'releaseDate', 'visitId', 'id'])
InstRel = frozenset(['instrument', 'type', 'facilityCycle', 'facility'])
InstMRel = frozenset(['datasets', 'parameters', 'studyInvestigations', 'investigationUsers', 'shifts', 'publications', 'samples', 'keywords'])
addInstrument(instrument)
addKeywords(keywords)
addInvestigationUsers(users, role='Investigator')
class icat.entities.Investigation43(client, instance, **kwargs)

Bases: icat.entities.Investigation

An investigation or experiment.

Constraint = ('facility', 'name', 'visitId')
InstRel = frozenset(['type', 'facility'])
InstMRel = frozenset(['datasets', 'parameters', 'studyInvestigations', 'investigationInstruments', 'investigationUsers', 'shifts', 'publications', 'samples', 'keywords'])
addInstrument(instrument)
class icat.entities.Investigation44(client, instance, **kwargs)

Bases: icat.entities.Investigation43

An investigation or experiment.

InstMRel = frozenset(['datasets', 'parameters', 'studyInvestigations', 'investigationInstruments', 'investigationUsers', 'investigationGroups', 'shifts', 'publications', 'samples', 'keywords'])
addInvestigationGroup(group, role=None)
class icat.entities.InvestigationGroup(client, instance, **kwargs)

Bases: icat.entity.Entity

Many to many relationship between investigation and group.

BeanName = 'InvestigationGroup'
Constraint = ('grouping', 'investigation', 'role')
InstAttr = frozenset(['role', 'id'])
InstRel = frozenset(['investigation', 'grouping'])
class icat.entities.InvestigationInstrument(client, instance, **kwargs)

Bases: icat.entity.Entity

Represents a many-to-many relationship between an investigation and the instruments assigned.

BeanName = 'InvestigationInstrument'
Constraint = ('investigation', 'instrument')
InstRel = frozenset(['instrument', 'investigation'])
class icat.entities.InvestigationParameter(client, instance, **kwargs)

Bases: icat.entities.Parameter

A parameter associated with an investigation.

BeanName = 'InvestigationParameter'
Constraint = ('investigation', 'type')
InstRel = frozenset(['investigation', 'type'])
class icat.entities.InvestigationType(client, instance, **kwargs)

Bases: icat.entity.Entity

A type of investigation.

BeanName = 'InvestigationType'
Constraint = ('name', 'facility')
SortAttrs = ['facility', 'name']
InstAttr = frozenset(['description', 'id', 'name'])
InstRel = frozenset(['facility'])
InstMRel = frozenset(['investigations'])
class icat.entities.InvestigationUser(client, instance, **kwargs)

Bases: icat.entity.Entity

Many to many relationship between investigation and user.

BeanName = 'InvestigationUser'
Constraint = ('user', 'investigation')
InstAttr = frozenset(['role', 'id'])
InstRel = frozenset(['investigation', 'user'])
class icat.entities.InvestigationUser44(client, instance, **kwargs)

Bases: icat.entities.InvestigationUser

Many to many relationship between investigation and user.

Constraint = ('user', 'investigation', 'role')
class icat.entities.Job(client, instance, **kwargs)

Bases: icat.entity.Entity

A run of an application with its related inputs and outputs.

BeanName = 'Job'
InstRel = frozenset(['application'])
InstMRel = frozenset(['inputDatasets', 'outputDatafiles', 'outputDatasets', 'inputDatafiles'])
SortAttrs = ['application', 'inputDatasets', 'inputDatafiles', 'outputDatasets', 'outputDatafiles']
class icat.entities.Job43(client, instance, **kwargs)

Bases: icat.entities.Job

A run of an application with its related inputs and outputs.

InstAttr = frozenset(['id', 'arguments'])
InstRel = frozenset(['application', 'inputDataCollection', 'outputDataCollection'])
InstMRel = frozenset([])
SortAttrs = ['application', 'arguments', 'inputDataCollection', 'outputDataCollection']
class icat.entities.Keyword(client, instance, **kwargs)

Bases: icat.entity.Entity

A Keyword related to an investigation.

BeanName = 'Keyword'
Constraint = ('name', 'investigation')
InstAttr = frozenset(['id', 'name'])
InstRel = frozenset(['investigation'])
class icat.entities.NotificationRequest(client, instance, **kwargs)

Bases: icat.entity.Entity

Registers a request for a JMS notification to be sent out.

BeanName = 'NotificationRequest'
Constraint = ('name',)
InstAttr = frozenset(['what', 'name', 'jmsOptions', 'destType', 'crudFlags', 'datatypes', 'id'])
class icat.entities.Log(client, instance, **kwargs)

Bases: icat.entity.Entity

To store call logs if configured in icat.properties.

BeanName = 'Log'
InstAttr = frozenset(['entityName', 'id', 'duration', 'query', 'entityId', 'operation'])
SortAttrs = ['operation', 'entityName']
class icat.entities.OutputDatafile(client, instance, **kwargs)

Bases: icat.entity.Entity

Many to many relationship between data file as output and a job.

BeanName = 'OutputDatafile'
InstRel = frozenset(['job', 'datafile'])
SortAttrs = ['job', 'datafile']
class icat.entities.OutputDataset(client, instance, **kwargs)

Bases: icat.entity.Entity

Many to many relationship between data set as output and a job.

BeanName = 'OutputDataset'
InstRel = frozenset(['job', 'dataset'])
SortAttrs = ['job', 'dataset']
class icat.entities.ParameterType(client, instance, **kwargs)

Bases: icat.entity.Entity

A parameter type with unique name and units.

BeanName = 'ParameterType'
Constraint = ('facility', 'name', 'units')
InstAttr = frozenset(['enforced', 'verified', 'description', 'applicableToSample', 'maximumNumericValue', 'valueType', 'applicableToInvestigation', 'unitsFullName', 'minimumNumericValue', 'units', 'applicableToDataset', 'applicableToDatafile', 'id', 'name'])
InstRel = frozenset(['facility'])
InstMRel = frozenset(['datafileParameters', 'investigationParameters', 'datasetParameters', 'sampleParameters', 'permissibleStringValues'])
class icat.entities.ParameterType43(client, instance, **kwargs)

Bases: icat.entities.ParameterType

A parameter type with unique name and units.

InstAttr = frozenset(['enforced', 'verified', 'description', 'applicableToSample', 'maximumNumericValue', 'valueType', 'applicableToInvestigation', 'unitsFullName', 'minimumNumericValue', 'units', 'applicableToDataCollection', 'applicableToDataset', 'applicableToDatafile', 'id', 'name'])
InstMRel = frozenset(['dataCollectionParameters', 'sampleParameters', 'datafileParameters', 'datasetParameters', 'investigationParameters', 'permissibleStringValues'])
class icat.entities.PermissibleStringValue(client, instance, **kwargs)

Bases: icat.entity.Entity

Permissible value for string parameter types.

BeanName = 'PermissibleStringValue'
Constraint = ('value', 'type')
InstAttr = frozenset(['id', 'value'])
InstRel = frozenset(['type'])
class icat.entities.PublicStep(client, instance, **kwargs)

Bases: icat.entity.Entity

An allowed step for an INCLUDE identifed by the origin entity and the field name for navigation. Including an entry here is much more efficient than having to use the authorization rules.

BeanName = 'PublicStep'
Constraint = ('origin', 'field')
InstAttr = frozenset(['origin', 'field', 'id'])
class icat.entities.Publication(client, instance, **kwargs)

Bases: icat.entity.Entity

A publication.

BeanName = 'Publication'
InstAttr = frozenset(['fullReference', 'repository', 'url', 'repositoryId', 'doi', 'id'])
InstRel = frozenset(['investigation'])
SortAttrs = ['investigation', 'fullReference']
class icat.entities.RelatedDatafile(client, instance, **kwargs)

Bases: icat.entity.Entity

Used to represent an arbitrary relationship between data files.

BeanName = 'RelatedDatafile'
Constraint = ('sourceDatafile', 'destDatafile')
InstAttr = frozenset(['relation', 'id'])
InstRel = frozenset(['destDatafile', 'sourceDatafile'])
class icat.entities.Rule(client, instance, **kwargs)

Bases: icat.entity.Entity

An authorization rule.

BeanName = 'Rule'
InstAttr = frozenset(['crudFlags', 'what', 'id'])
InstRel = frozenset(['group'])
AttrAlias = {'grouping': 'group'}
SortAttrs = ['group', 'what']
class icat.entities.Rule43(client, instance, **kwargs)

Bases: icat.entities.Rule

An authorization rule.

InstRel = frozenset(['grouping'])
AttrAlias = {'group': 'grouping'}
SortAttrs = ['grouping', 'what']
class icat.entities.Sample(client, instance, **kwargs)

Bases: icat.entity.Entity

A sample to be used in an investigation.

BeanName = 'Sample'
Constraint = ('name', 'type', 'investigation')
InstAttr = frozenset(['id', 'name'])
InstRel = frozenset(['investigation', 'type'])
InstMRel = frozenset(['datasets', 'parameters'])
class icat.entities.Sample43(client, instance, **kwargs)

Bases: icat.entities.Sample

A sample to be used in an investigation.

Constraint = ('investigation', 'name')
class icat.entities.SampleParameter(client, instance, **kwargs)

Bases: icat.entities.Parameter

A parameter associated with a sample.

BeanName = 'SampleParameter'
Constraint = ('sample', 'type')
InstRel = frozenset(['sample', 'type'])
class icat.entities.SampleType(client, instance, **kwargs)

Bases: icat.entity.Entity

A sample to be used in an investigation.

BeanName = 'SampleType'
Constraint = ('name', 'facility')
InstAttr = frozenset(['molecularFormula', 'safetyInformation', 'id', 'name'])
InstRel = frozenset(['facility'])
InstMRel = frozenset(['samples'])
class icat.entities.SampleType43(client, instance, **kwargs)

Bases: icat.entities.SampleType

A sample to be used in an investigation.

Constraint = ('facility', 'name', 'molecularFormula')
class icat.entities.Shift(client, instance, **kwargs)

Bases: icat.entity.Entity

A period of time related to an investigation.

BeanName = 'Shift'
Constraint = ('investigation', 'startDate', 'endDate')
InstAttr = frozenset(['comment', 'startDate', 'endDate', 'id'])
InstRel = frozenset(['investigation'])
class icat.entities.Study(client, instance, **kwargs)

Bases: icat.entity.Entity

A study which may be related to an investigation.

BeanName = 'Study'
InstAttr = frozenset(['status', 'startDate', 'description', 'id', 'name'])
InstRel = frozenset(['user'])
InstMRel = frozenset(['studyInvestigations'])
SortAttrs = ['name']
class icat.entities.StudyInvestigation(client, instance, **kwargs)

Bases: icat.entity.Entity

Many to many relationship between study and investigation.

BeanName = 'StudyInvestigation'
Constraint = ('study', 'investigation')
InstRel = frozenset(['study', 'investigation'])
class icat.entities.User(client, instance, **kwargs)

Bases: icat.entity.Entity

A user of the facility.

BeanName = 'User'
Constraint = ('name',)
InstAttr = frozenset(['fullName', 'id', 'name'])
InstMRel = frozenset(['studies', 'instrumentScientists', 'userGroups', 'investigationUsers'])
class icat.entities.UserGroup(client, instance, **kwargs)

Bases: icat.entity.Entity

Many to many relationship between user and group.

BeanName = 'UserGroup'
Constraint = ('user', 'group')
InstRel = frozenset(['group', 'user'])
AttrAlias = {'grouping': 'group'}
class icat.entities.UserGroup43(client, instance, **kwargs)

Bases: icat.entities.UserGroup

Many to many relationship between user and group.

Constraint = ('user', 'grouping')
InstRel = frozenset(['user', 'grouping'])
AttrAlias = {'group': 'grouping'}

Previous topic

icat.dumpfile_yaml — YAML data file backend

Next topic

icat.entity — Provide the Entity class