def __init__(
     self,
     table_name,
     geometry_type,
     geometry_column="geometry",
     postgres_conn_id="postgres_default",
     task_id="check_geo",
     **kwargs,
 ):
     check_safe_name(table_name)
     check_safe_name(geometry_column)
     super().__init__(
         # using GeometryType() returns "POINT", ST_GeometryType() returns 'ST_Point'
         sql=("SELECT 1 WHERE NOT EXISTS ("
              f'SELECT FROM "{table_name}" WHERE'
              f' "{geometry_column}" IS null '
              f' OR NOT ST_IsValid("{geometry_column}") '
              f' OR GeometryType("{geometry_column}") != %s'
              ")"),
         parameters=(geometry_type.upper(),
                     ),  # params is jinja, parameters == sql!
         conn_id=postgres_conn_id,
         task_id=task_id,
         **kwargs,
     )
 def __init__(
     self,
     table_name: str,
     postgres_conn_id="postgres_default",
     task_id="table_init",
     drop_table=False,
     **kwargs,
 ):
     check_safe_name(table_name)
     super().__init__(
         task_id=task_id, sql=[], postgres_conn_id=postgres_conn_id, **kwargs
     )
     self.table_name = table_name
     self.drop_table = drop_table
 def __init__(
     self,
     old_table_name: str,
     new_table_name: str,
     postgres_conn_id="postgres_default",
     task_id="rename_table",
     **kwargs,
 ):
     check_safe_name(old_table_name)
     check_safe_name(new_table_name)
     super().__init__(task_id=task_id,
                      sql=[],
                      postgres_conn_id=postgres_conn_id,
                      **kwargs)
     self.old_table_name = old_table_name
     self.new_table_name = new_table_name
 def __init__(
     self,
     table_name,
     min_count,
     postgres_conn_id="postgres_default",
     task_id="check_count",
     **kwargs,
 ):
     check_safe_name(table_name)
     super().__init__(
         sql=f'SELECT COUNT(*) >= %s FROM "{table_name}"',
         parameters=(min_count, ),  # params is jinja, parameters == sql!
         conn_id=postgres_conn_id,
         task_id=task_id,
         **kwargs,
     )
 def __init__(
     self,
     table_name,
     column_names,
     conn_id="postgres_default",
     task_id="check_column_names",
     **kwargs,
 ):
     check_safe_name(table_name)
     super().__init__(
         sql=("SELECT column_name FROM information_schema.columns"
              " WHERE table_schema = 'public' AND table_name = %s"
              " ORDER BY column_name"),
         parameters=(table_name, ),  # params is jinja, parameters == sql!
         pass_value=[[col] for col in sorted(column_names)
                     ],  # each col is in a separate row
         conn_id=conn_id,
         task_id=task_id,
         **kwargs,
     )
 def __init__(
     self,
     source_table_name: str,
     target_table_name: str,
     postgres_conn_id="postgres_default",
     task_id="copy_table",
     ind_drop=True,
     **kwargs,
 ):
     check_safe_name(source_table_name)
     check_safe_name(target_table_name)
     super().__init__(
         task_id=task_id,
         sql=[],
         postgres_conn_id=postgres_conn_id,
         **kwargs,
     )
     self.source_table_name = source_table_name
     self.target_table_name = target_table_name
     self.ind_drop = ind_drop