geonature.core.imports.models

Attributes

Classes

ImportModule

The base class of the SQLAlchemy.Model declarative model class.

ImportUserErrorType

The base class of the SQLAlchemy.Model declarative model class.

ImportUserError

The base class of the SQLAlchemy.Model declarative model class.

Destination

The base class of the SQLAlchemy.Model declarative model class.

BibThemes

The base class of the SQLAlchemy.Model declarative model class.

EntityField

The base class of the SQLAlchemy.Model declarative model class.

Entity

The base class of the SQLAlchemy.Model declarative model class.

InstancePermissionMixin

TImports

The base class of the SQLAlchemy.Model declarative model class.

CorImportDataset

The base class of the SQLAlchemy.Model declarative model class.

BibFields

The base class of the SQLAlchemy.Model declarative model class.

MappingTemplate

The base class of the SQLAlchemy.Model declarative model class.

FieldMapping

The base class of the SQLAlchemy.Model declarative model class.

ContentMapping

The base class of the SQLAlchemy.Model declarative model class.

ObserverMapping

The base class of the SQLAlchemy.Model declarative model class.

Functions

optional_conditions_to_jsonschema(→ dict)

Convert optional conditions into a JSON schema.

get_fields_of_an_entity(→ List[BibFields])

Get all BibFields associated with a given entity.

Module Contents

class geonature.core.imports.models.ImportModule[source]

Bases: geonature.core.gn_commons.models.TModules

The base class of the SQLAlchemy.Model declarative model class.

To define models, subclass db.Model, not this. To customize db.Model, subclass this and pass it as model_class to SQLAlchemy. To customize db.Model at the metaclass level, pass an already created declarative model class as model_class.

__mapper_args__[source]
generate_module_url_for_source(source)[source]
class geonature.core.imports.models.ImportUserErrorType[source]

Bases: geonature.utils.env.db.Model

The base class of the SQLAlchemy.Model declarative model class.

To define models, subclass db.Model, not this. To customize db.Model, subclass this and pass it as model_class to SQLAlchemy. To customize db.Model at the metaclass level, pass an already created declarative model class as model_class.

__tablename__ = 'bib_errors_types'[source]
__table_args__[source]
pk[source]
category[source]
name[source]
description[source]
level[source]
__str__()[source]
class geonature.core.imports.models.ImportUserError[source]

Bases: geonature.utils.env.db.Model

The base class of the SQLAlchemy.Model declarative model class.

To define models, subclass db.Model, not this. To customize db.Model, subclass this and pass it as model_class to SQLAlchemy. To customize db.Model at the metaclass level, pass an already created declarative model class as model_class.

__tablename__ = 't_user_errors'[source]
__table_args__[source]
pk[source]
id_import[source]
imprt[source]
id_type[source]
type[source]
column[source]
rows[source]
comment[source]
id_entity[source]
entity[source]
__str__()[source]
class geonature.core.imports.models.Destination[source]

Bases: geonature.utils.env.db.Model

The base class of the SQLAlchemy.Model declarative model class.

To define models, subclass db.Model, not this. To customize db.Model, subclass this and pass it as model_class to SQLAlchemy. To customize db.Model at the metaclass level, pass an already created declarative model class as model_class.

__tablename__ = 'bib_destinations'[source]
__table_args__[source]
id_destination[source]
id_module[source]
code[source]
label[source]
table_name[source]
active[source]
module[source]
entities[source]
get_transient_table()[source]
property validity_columns[source]
property statistics_labels[source]
property actions[source]
static allowed_destinations(user: pypnusershub.db.models.User | None = None, action_code: str = 'C') List[Destination][source]

Return a list of allowed destinations for a given user and an action.

Parameters

userUser, optional

The user to filter destinations for. If not provided, the current_user is used.

actionstr

The action to filter destinations for. Possible values are “C”, “R”, “U”, “V”, “E”, “D”.

Returns

allowed_destinationList of Destination

List of allowed destinations for the given user.

classmethod filter_by_role(user: pypnusershub.db.models.User | None = None, action_code: str = 'C', **kwargs)[source]

Filter Destination by role.

Parameters

userUser, optional

The user to filter destinations for. If not provided, the current_user is used.

Returns

sqlalchemy.sql.elements.BinaryExpression

A filter criterion for the id_destination column of the Destination table.

has_instance_permission(user: pypnusershub.db.models.User | None = None, action_code: str = 'C')[source]

Check if a user has the permissions to do an action on this destination.

Parameters

userUser, optional

The user to check the permission for. If not provided, the current_user is used.

action_codestr

The action to check the permission for. Possible values are “C”, “R”, “U”, “V”, “E”, “D”.

Returns

bool

True if the user has the right to do the action on this destination, False otherwise.

__repr__()[source]
class geonature.core.imports.models.BibThemes[source]

Bases: geonature.utils.env.db.Model

The base class of the SQLAlchemy.Model declarative model class.

To define models, subclass db.Model, not this. To customize db.Model, subclass this and pass it as model_class to SQLAlchemy. To customize db.Model at the metaclass level, pass an already created declarative model class as model_class.

__tablename__ = 'bib_themes'[source]
__table_args__[source]
id_theme[source]
name_theme[source]
fr_label_theme[source]
eng_label_theme[source]
desc_theme[source]
order_theme[source]
class geonature.core.imports.models.EntityField[source]

Bases: geonature.utils.env.db.Model

The base class of the SQLAlchemy.Model declarative model class.

To define models, subclass db.Model, not this. To customize db.Model, subclass this and pass it as model_class to SQLAlchemy. To customize db.Model at the metaclass level, pass an already created declarative model class as model_class.

__tablename__ = 'cor_entity_field'[source]
__table_args__[source]
id_entity[source]
entity[source]
id_field[source]
field[source]
desc_field[source]
id_theme[source]
theme[source]
order_field[source]
comment[source]
class geonature.core.imports.models.Entity[source]

Bases: geonature.utils.env.db.Model

The base class of the SQLAlchemy.Model declarative model class.

To define models, subclass db.Model, not this. To customize db.Model, subclass this and pass it as model_class to SQLAlchemy. To customize db.Model at the metaclass level, pass an already created declarative model class as model_class.

__tablename__ = 'bib_entities'[source]
__table_args__[source]
id_entity[source]
id_destination[source]
destination[source]
code[source]
label[source]
order[source]
validity_column[source]
destination_table_schema[source]
destination_table_name[source]
id_unique_column[source]
id_uuid_column[source]
id_parent[source]
parent[source]
childs[source]
fields[source]
unique_column[source]
uuid_column[source]
id_object[source]
object[source]
get_destination_table()[source]
__repr__()[source]
class geonature.core.imports.models.InstancePermissionMixin[source]
get_instance_permissions(scopes, user=None)[source]
geonature.core.imports.models.cor_role_import[source]
class geonature.core.imports.models.TImports[source]

Bases: InstancePermissionMixin, geonature.utils.env.db.Model

The base class of the SQLAlchemy.Model declarative model class.

To define models, subclass db.Model, not this. To customize db.Model, subclass this and pass it as model_class to SQLAlchemy. To customize db.Model at the metaclass level, pass an already created declarative model class as model_class.

__tablename__ = 't_imports'[source]
__table_args__[source]
AVAILABLE_ENCODINGS[source]
AVAILABLE_FORMATS = ['csv', 'geojson'][source]
AVAILABLE_SEPARATORS = [',', ';'][source]
id_import[source]
id_destination[source]
destination[source]
format_source_file[source]
srid[source]
separator[source]
detected_separator[source]
encoding[source]
detected_encoding[source]
full_file_name[source]
date_create_import[source]
date_update_import[source]
date_end_import[source]
source_count[source]
erroneous_rows[source]
statistics[source]
date_min_data[source]
date_max_data[source]
uuid_autogenerated[source]
altitude_autogenerated[source]
authors[source]
loaded[source]
processed[source]
source_file[source]
columns[source]
fieldmapping[source]
contentmapping[source]
observermapping[source]
task_id[source]
errors[source]
datasets[source]
property cruved[source]
errors_count[source]
property task_progress[source]
property has_closed_af[source]

Check if one AF of the import has been closed. Returns ——-

raise_on_closed_af()[source]
has_instance_permission(scope, user=None, action_code='C')[source]
static filter_by_scope(scope, user=None, **kwargs)[source]
as_dict(import_as_dict)[source]
class geonature.core.imports.models.CorImportDataset[source]

Bases: geonature.utils.env.db.Model

The base class of the SQLAlchemy.Model declarative model class.

To define models, subclass db.Model, not this. To customize db.Model, subclass this and pass it as model_class to SQLAlchemy. To customize db.Model at the metaclass level, pass an already created declarative model class as model_class.

__tablename__ = 'cor_import_datasets'[source]
__table_args__[source]
id_import[source]
id_dataset[source]
imprt[source]
dataset[source]
class geonature.core.imports.models.BibFields[source]

Bases: geonature.utils.env.db.Model

The base class of the SQLAlchemy.Model declarative model class.

To define models, subclass db.Model, not this. To customize db.Model, subclass this and pass it as model_class to SQLAlchemy. To customize db.Model at the metaclass level, pass an already created declarative model class as model_class.

__tablename__ = 'bib_fields'[source]
__table_args__[source]
id_field[source]
id_destination[source]
destination[source]
name_field[source]
source_field[source]
dest_field[source]
fr_label[source]
eng_label[source]
type_field[source]
type_field_params[source]
mandatory[source]
autogenerated[source]
mnemonique[source]
nomenclature_type[source]
display[source]
multi[source]
optional_conditions[source]
mandatory_conditions[source]
entities[source]
property source_column[source]
property dest_column[source]
__repr__()[source]
geonature.core.imports.models.cor_role_mapping[source]
class geonature.core.imports.models.MappingTemplate[source]

Bases: geonature.utils.env.db.Model

The base class of the SQLAlchemy.Model declarative model class.

To define models, subclass db.Model, not this. To customize db.Model, subclass this and pass it as model_class to SQLAlchemy. To customize db.Model at the metaclass level, pass an already created declarative model class as model_class.

__tablename__ = 't_mappings'[source]
__table_args__[source]
id[source]
id_destination[source]
destination[source]
label[source]
type[source]
active[source]
public[source]
property cruved[source]
__mapper_args__[source]
owners[source]
has_instance_permission(scope: int, user=None)[source]
static filter_by_scope(scope, user=None)[source]
geonature.core.imports.models.optional_conditions_to_jsonschema(name_field: str, optional_conditions: Iterable[str]) dict[source]

Convert optional conditions into a JSON schema.

Parameters

name_fieldstr

The name of the field.

optional_conditionsIterable[str]

The optional conditions.

Returns

dict

The JSON schema.

Notes

The JSON schema is created to ensure that if any of the optional conditions is not provided, the name_field is required.

geonature.core.imports.models.get_fields_of_an_entity(entity: Entity, columns: List[str] | None = None, optional_where_clause: Any | None = None) List[BibFields][source]

Get all BibFields associated with a given entity.

Parameters

entityEntity

The entity to get the fields for.

columnsOptional[List[str]], optional

The columns to retrieve. If None, all columns are retrieved.

optional_where_clauseOptional[Any], optional

An optional where clause to apply to the query.

Returns

List[BibFields]

The BibFields associated with the given entity.

class geonature.core.imports.models.FieldMapping[source]

Bases: MappingTemplate

The base class of the SQLAlchemy.Model declarative model class.

To define models, subclass db.Model, not this. To customize db.Model, subclass this and pass it as model_class to SQLAlchemy. To customize db.Model at the metaclass level, pass an already created declarative model class as model_class.

__tablename__ = 't_fieldmappings'[source]
__table_args__[source]
id[source]
values[source]
__mapper_args__[source]
static validate_values(field_mapping_json, destination=None)[source]

Validate the field mapping values returned by the client form.

Parameters

field_mapping_jsondict

The field mapping values.

Raises

ValueError

If the field mapping values are invalid.

class geonature.core.imports.models.ContentMapping[source]

Bases: MappingTemplate

The base class of the SQLAlchemy.Model declarative model class.

To define models, subclass db.Model, not this. To customize db.Model, subclass this and pass it as model_class to SQLAlchemy. To customize db.Model at the metaclass level, pass an already created declarative model class as model_class.

__tablename__ = 't_contentmappings'[source]
__table_args__[source]
id[source]
values[source]
__mapper_args__[source]
static validate_values(values, destination=None)[source]
class geonature.core.imports.models.ObserverMapping[source]

Bases: MappingTemplate

The base class of the SQLAlchemy.Model declarative model class.

To define models, subclass db.Model, not this. To customize db.Model, subclass this and pass it as model_class to SQLAlchemy. To customize db.Model at the metaclass level, pass an already created declarative model class as model_class.

__tablename__ = 't_observermappings'[source]
__table_args__[source]
id[source]
values[source]
__mapper_args__[source]
static validate_values(values, destination=None)[source]