@@ -2151,6 +2151,15 @@ <h2 id="args">Args</h2>
21512151 self.delete_where_column = None
21522152 self.delete_where_operator = None
21532153
2154+ if kwargs.get('delete_where_values'):
2155+ self.delete_where_values = kwargs['delete_where_values']
2156+
2157+ if kwargs.get('delete_where_column'):
2158+ self.delete_where_column = kwargs['delete_where_column']
2159+
2160+ if kwargs.get('delete_where_operator'):
2161+ self.delete_where_operator = kwargs['delete_where_operator']
2162+
21542163 self.set_delete_where_from_dict(delete_where)
21552164 self.write_always = write_always
21562165
@@ -2185,7 +2194,8 @@ <h2 id="args">Args</h2>
21852194 delimiter: Optional[str] = ',',
21862195 delete_where: Optional[dict] = None,
21872196 write_always: Optional[bool] = False,
2188- schema: Optional[List[ColumnDefinition]] = None,
2197+ schema: Optional[Union[TypeOrderedDict[str, ColumnDefinition], list[str]]] = None,
2198+ **kwargs
21892199 ):
21902200 """
21912201 Factory method for creating a TableDefinition instance for output tables.
@@ -2220,6 +2230,7 @@ <h2 id="args">Args</h2>
22202230 delete_where=delete_where,
22212231 write_always=write_always,
22222232 schema=schema,
2233+ **kwargs
22232234 )
22242235
22252236 @classmethod
@@ -2237,7 +2248,7 @@ <h2 id="args">Args</h2>
22372248 delete_where: Optional[dict] = None,
22382249 stage: Optional[str] = 'in',
22392250 write_always: Optional[bool] = False,
2240- schema: Optional[List[ ColumnDefinition]] = None,
2251+ schema: Optional[Union[TypeOrderedDict[str, ColumnDefinition], list[str] ]] = None,
22412252 rows_count: Optional[int] = None,
22422253 data_size_bytes: Optional[int] = None,
22432254 is_alias: Optional[bool] = False,
@@ -2247,7 +2258,9 @@ <h2 id="args">Args</h2>
22472258 id: Optional[str] = '',
22482259 created: Optional[str] = None,
22492260 last_change_date: Optional[str] = None,
2250- last_import_date: Optional[str] = None):
2261+ last_import_date: Optional[str] = None,
2262+ **kwargs
2263+ ):
22512264 """
22522265 Factory method for creating a TableDefinition instance for input tables.
22532266
@@ -2302,7 +2315,9 @@ <h2 id="args">Args</h2>
23022315 id=id,
23032316 created=created,
23042317 last_change_date=last_change_date,
2305- last_import_date=last_import_date)
2318+ last_import_date=last_import_date,
2319+ **kwargs
2320+ )
23062321
23072322 @classmethod
23082323 def convert_to_column_definition(cls, column_name, column_metadata, primary_key=False):
@@ -2390,6 +2405,9 @@ <h2 id="args">Args</h2>
23902405 else:
23912406 name = Path(manifest_file_path).stem
23922407
2408+ if manifest.get('name'):
2409+ name = manifest.get('name')
2410+
23932411 # test if the manifest is output and incompatible
23942412 force_legacy_mode = False
23952413 if not manifest.get('columns') and manifest.get('primary_key'):
@@ -2399,28 +2417,57 @@ <h2 id="args">Args</h2>
23992417
24002418 if manifest.get('id'):
24012419 stage = 'in'
2420+ table_def = cls.build_input_definition(
2421+ # helper parameters
2422+ stage=stage,
2423+ force_legacy_mode=force_legacy_mode,
2424+ is_sliced=is_sliced,
2425+ full_path=full_path,
2426+
2427+ # basic in manifest parameters
2428+ id=manifest.get('id'),
2429+ uri=manifest.get('uri'),
2430+ name=name,
2431+ primary_key=manifest.get('primary_key'),
2432+ created=manifest.get('created'),
2433+ last_change_date=manifest.get('last_change_date'),
2434+ last_import_date=manifest.get('last_import_date'),
2435+ schema=cls.return_schema_from_manifest(manifest),
2436+ table_metadata=TableMetadata(manifest),
2437+
2438+ # additional in manifest parameters
2439+ rows_count=manifest.get('rows_count'),
2440+ data_size_bytes=manifest.get('data_size_bytes'),
2441+ is_alias=manifest.get('is_alias'),
2442+ attributes=manifest.get('attributes'),
2443+ indexed_columns=manifest.get('indexed_columns'),
2444+ )
2445+
24022446 else:
24032447 stage = 'out'
2404-
2405- table_def = cls(name=name,
2406- stage=stage,
2407- full_path=full_path,
2408- is_sliced=is_sliced,
2409- id=manifest.get('id'),
2410- table_metadata=TableMetadata(manifest),
2411- primary_key=manifest.get('primary_key'),
2412- schema=cls.return_schema_from_manifest(manifest),
2413- uri=manifest.get('uri'),
2414- created=manifest.get('created'),
2415- last_change_date=manifest.get('last_change_date'),
2416- last_import_date=manifest.get('last_import_date'),
2417- rows_count=manifest.get('rows_count'),
2418- data_size_bytes=manifest.get('data_size_bytes'),
2419- is_alias=manifest.get('is_alias'),
2420- force_legacy_mode=force_legacy_mode,
2421- indexed_columns=manifest.get('indexed_columns'),
2422- attributes=manifest.get('attributes')
2423- )
2448+ table_def = cls.build_output_definition(
2449+ # helper parameters
2450+ stage=stage,
2451+ force_legacy_mode=force_legacy_mode,
2452+ is_sliced=is_sliced,
2453+ full_path=full_path,
2454+
2455+ # basic out manifest parameters
2456+ name=name,
2457+ destination=manifest.get('destination'),
2458+ schema=cls.return_schema_from_manifest(manifest),
2459+ incremental=manifest.get('incremental'),
2460+ primary_key=manifest.get('primary_key'),
2461+ write_always=manifest.get('write_always', False),
2462+ delimiter=manifest.get('delimiter', ','),
2463+ enclosure=manifest.get('enclosure', '"'),
2464+ table_metadata=TableMetadata(manifest),
2465+
2466+ # additional in manifest parameters
2467+ delete_where_values=manifest.get('delete_where_values'),
2468+ delete_where_column=manifest.get('delete_where_column'),
2469+ delete_where_operator=manifest.get('delete_where_operator')
2470+ )
24242471
24252472 return table_def
24262473
@@ -2838,7 +2885,7 @@ <h2 id="args">Args</h2>
28382885table with no input manifest.</ p > </ div >
28392886</ dd >
28402887< dt id ="keboola.component.dao.TableDefinition.build_input_definition "> < code class ="name flex ">
2841- < span > def < span class ="ident "> build_input_definition</ span > </ span > (< span > name: str, full_path: Optional[Union[str, None]] = None, is_sliced: Optional[bool] = False, destination: Optional[str] = '', primary_key: Optional[List[str]] = None, columns: Optional[List[str]] = None, incremental: Optional[bool] = None, table_metadata: Optional[< a title ="keboola.component.dao.TableMetadata " href ="#keboola.component.dao.TableMetadata "> TableMetadata</ a > ] = None, enclosure: Optional[str] = '"', delimiter: Optional[str] = ',', delete_where: Optional[dict] = None, stage: Optional[str] = 'in', write_always: Optional[bool] = False, schema: Optional[List[< a title ="keboola.component.dao.ColumnDefinition " href ="#keboola.component.dao.ColumnDefinition "> ColumnDefinition</ a > ]] = None, rows_count: Optional[int] = None, data_size_bytes: Optional[int] = None, is_alias: Optional[bool] = False, uri: Optional[str] = None, id: Optional[str] = '', created: Optional[str] = None, last_change_date: Optional[str] = None, last_import_date: Optional[str] = None)</ span >
2888+ < span > def < span class ="ident "> build_input_definition</ span > </ span > (< span > name: str, full_path: Optional[Union[str, None]] = None, is_sliced: Optional[bool] = False, destination: Optional[str] = '', primary_key: Optional[List[str]] = None, columns: Optional[List[str]] = None, incremental: Optional[bool] = None, table_metadata: Optional[< a title ="keboola.component.dao.TableMetadata " href ="#keboola.component.dao.TableMetadata "> TableMetadata</ a > ] = None, enclosure: Optional[str] = '"', delimiter: Optional[str] = ',', delete_where: Optional[dict] = None, stage: Optional[str] = 'in', write_always: Optional[bool] = False, schema: Optional[Union[TypeOrderedDict[str, < a title ="keboola.component.dao.ColumnDefinition " href ="#keboola.component.dao.ColumnDefinition "> ColumnDefinition</ a > ], list[str]]] = None, rows_count: Optional[int] = None, data_size_bytes: Optional[int] = None, is_alias: Optional[bool] = False, uri: Optional[str] = None, id: Optional[str] = '', created: Optional[str] = None, last_change_date: Optional[str] = None, last_import_date: Optional[str] = None, **kwargs)</ span >
28422889</ code > </ dt >
28432890< dd >
28442891< div class ="desc "> < p > Factory method for creating a TableDefinition instance for input tables.</ p >
@@ -2900,7 +2947,7 @@ <h2 id="returns">Returns</h2>
29002947</ dl > </ div >
29012948</ dd >
29022949< dt id ="keboola.component.dao.TableDefinition.build_output_definition "> < code class ="name flex ">
2903- < span > def < span class ="ident "> build_output_definition</ span > </ span > (< span > name: str, destination: Optional[str] = '', columns: Optional[List[str]] = None, primary_key: Optional[List[str]] = None, incremental: Optional[bool] = False, table_metadata: Optional[< a title ="keboola.component.dao.TableMetadata " href ="#keboola.component.dao.TableMetadata "> TableMetadata</ a > ] = None, enclosure: Optional[str] = '"', delimiter: Optional[str] = ',', delete_where: Optional[dict] = None, write_always: Optional[bool] = False, schema: Optional[List[ < a title ="keboola.component.dao.ColumnDefinition " href ="#keboola.component.dao.ColumnDefinition "> ColumnDefinition</ a > ]] = None)</ span >
2950+ < span > def < span class ="ident "> build_output_definition</ span > </ span > (< span > name: str, destination: Optional[str] = '', columns: Optional[List[str]] = None, primary_key: Optional[List[str]] = None, incremental: Optional[bool] = False, table_metadata: Optional[< a title ="keboola.component.dao.TableMetadata " href ="#keboola.component.dao.TableMetadata "> TableMetadata</ a > ] = None, enclosure: Optional[str] = '"', delimiter: Optional[str] = ',', delete_where: Optional[dict] = None, write_always: Optional[bool] = False, schema: Optional[Union[TypeOrderedDict[str, < a title ="keboola.component.dao.ColumnDefinition " href ="#keboola.component.dao.ColumnDefinition "> ColumnDefinition</ a > ], list[str]]] = None, **kwargs )</ span >
29042951</ code > </ dt >
29052952< dd >
29062953< div class ="desc "> < p > Factory method for creating a TableDefinition instance for output tables.</ p >
0 commit comments