Generic
Shared exceptions, logging and pydantic models. Not a lot to report here.
Pydantic data models may contain more classes as validator for fields; for stand-alone models, use the classes marked with Model at the end of the class name.
Pydantic models
- class StructuredDataModel(**data)
Biosamples’ structured data model
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accession': FieldInfo(annotation=str, required=True, metadata=[_PydanticGeneralMetadata(pattern='^SAME.[0-9]+$')]), 'data': FieldInfo(annotation=list[DataEntry], required=True)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class BiosampleGeneralModel(**data)
Biosamples General model
- model_config: ClassVar[ConfigDict] = {'extra': 'allow'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accession': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'characteristics': FieldInfo(annotation=Dict[str, list[CharacteristicsFields]], required=True), 'externalReferences': FieldInfo(annotation=Union[list[ExternalUrl], NoneType], required=False, default=None), 'name': FieldInfo(annotation=str, required=True, metadata=[MinLen(min_length=1)]), 'organization': FieldInfo(annotation=Union[list[Organization], NoneType], required=False, default=None), 'relationships': FieldInfo(annotation=Union[list[Relationship], NoneType], required=False, default=None), 'release': FieldInfo(annotation=str, required=True), 'structuredData': FieldInfo(annotation=Union[list[DataEntry], NoneType], required=False, default=None)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
Exceptions
- exception MandatoryFunctionNotSet(logger)
Bases:
ExceptionMandatory function has not been overriden in subclass
Logger
- set_up_logger(instance_object, verbose=False)
Set up logger for any instance of a class.
- Parameters:
instance_object (
GenericApi|GenericAuthenticator|GenericEntity|GenericInputProcessor|GenericOutputProcessor|Wrangler) – Instance of the object being initialised.verbose (
bool) – If true, set StreamHandler to INFO. If False, set to WARNING.
- Return type:
Logger- Returns:
logging.Logger instance initialised to the class.
Utilities
- slice_list(list_to_chunk, chunk_size)
Slice an iterable (List/Tuple) returning tuples of ‘chunk_sixe’ size.
- Parameters:
list_to_chunk (
list|tuple) – iterable to slicechunk_size (
int) – Size of the chunk
- Return type:
Generator- Returns:
Generator of ‘chunk_size’ sizes of the list.
- parse_pydantic_errors(pydantic_errors)
- Return type:
list