# Path: base_geoengine/geo_helper/geo_convertion_helper.py
# def value_to_shape(value, use_wkb=False):
# 
# Path: base_geoengine/geo_db.py
# def create_geo_column(
#         cr, tablename, columnname, geotype, srid, dim, comment=None):
#     """ Create a geometry column with the given type.
# 
#     :params: srid: geometry's projection srid
#     :params: dim: geometry's dimension (2D or 3D)
#     """
#     cr.execute("SELECT AddGeometryColumn( %s, %s, %s, %s, %s)",
#                (tablename,
#                 columnname,
#                 srid,
#                 geotype,
#                 dim))
#     if comment:
#         # TODO use SQL string Composition
#         # http://initd.org/psycopg/docs/sql.html
#         # pylint: disable=E8103
#         cr.execute('COMMENT ON COLUMN "{}"."{}" IS %s'.format(
#             tablename, columnname), (comment,))
#     _schema.debug(
#         "Table %r: added geometry column %r of type %s",
#         tablename, columnname, geotype)


import logging
    import geojson
from operator import attrgetter
from odoo import fields, _
from odoo.tools import sql
from .geo_helper import geo_convertion_helper as convert
from .geo_db import create_geo_column
    from shapely.geometry import asShape
    from shapely.geometry import Point
    from shapely.geometry.base import BaseGeometry
    from shapely.wkb import loads as wkbloads
                "Geo type modification is not implemented."
                " We can not change type %s to %s" % (
                    check_data[1], self.geo_type))
        elif check_data[2] != self.dim:
            raise TypeError(
                "Geo dimention modification is not implemented."
                " We can not change dimention %s to %s" % (
                    check_data[2], self.dim))
        if self.gist_index:
            cr.execute(
                "SELECT indexname FROM pg_indexes WHERE indexname = %s",
                (self._postgis_index_name(model._table, self.name),))
            index = cr.fetchone()
            if index:
                return True
            self._create_index(cr, model._table, self.name)
        return True

    def update_db_column(self, model, column):
        """ Create/update the column corresponding to ``self``.

            For creation of geo column

            :param model: an instance of the field's model
            :param column: the column's configuration (dict)
                           if it exists, or ``None``
        """
        # the column does not exist, create it

        if not column:

# Path: base_geoengine/geo_helper/geo_convertion_helper.py
# def value_to_shape(value, use_wkb=False):
# 
# Path: base_geoengine/geo_db.py
# def create_geo_column(
#         cr, tablename, columnname, geotype, srid, dim, comment=None):
#     """ Create a geometry column with the given type.
# 
#     :params: srid: geometry's projection srid
#     :params: dim: geometry's dimension (2D or 3D)
#     """
#     cr.execute("SELECT AddGeometryColumn( %s, %s, %s, %s, %s)",
#                (tablename,
#                 columnname,
#                 srid,
#                 geotype,
#                 dim))
#     if comment:
#         # TODO use SQL string Composition
#         # http://initd.org/psycopg/docs/sql.html
#         # pylint: disable=E8103
#         cr.execute('COMMENT ON COLUMN "{}"."{}" IS %s'.format(
#             tablename, columnname), (comment,))
#     _schema.debug(
#         "Table %r: added geometry column %r of type %s",
#         tablename, columnname, geotype)


# Path: base_geoengine/fields.py
import logging
    import geojson
from operator import attrgetter
from odoo import fields, _
from odoo.tools import sql
from .geo_helper import geo_convertion_helper as convert
from .geo_db import create_geo_column
    from shapely.geometry import asShape
    from shapely.geometry import Point
    from shapely.geometry.base import BaseGeometry
    from shapely.wkb import loads as wkbloads

                "Geo type modification is not implemented."
                " We can not change type %s to %s" % (
                    check_data[1], self.geo_type))
        elif check_data[2] != self.dim:
            raise TypeError(
                "Geo dimention modification is not implemented."
                " We can not change dimention %s to %s" % (
                    check_data[2], self.dim))
        if self.gist_index:
            cr.execute(
                "SELECT indexname FROM pg_indexes WHERE indexname = %s",
                (self._postgis_index_name(model._table, self.name),))
            index = cr.fetchone()
            if index:
                return True
            self._create_index(cr, model._table, self.name)
        return True

    def update_db_column(self, model, column):
        """ Create/update the column corresponding to ``self``.

            For creation of geo column

            :param model: an instance of the field's model
            :param column: the column's configuration (dict)
                           if it exists, or ``None``
        """
        # the column does not exist, create it

        if not column:

            create_geo_column(