Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
* DdlParse.NAME_CASE.original : Return to no convert
* DdlParse.NAME_CASE.lower : Return to lower
* DdlParse.NAME_CASE.upper : Return to upper
:return: BigQuery JSON fields define
"""
bq_fields = []
for col in self.values():
bq_fields.append(col.to_bigquery_field(name_case))
return "[{}]".format(",".join(bq_fields))
class DdlParseTable(DdlParseTableColumnBase):
"""Table define info"""
def __init__(self, source_database=None):
super().__init__(source_database)
self._schema = None
self._columns = DdlParseColumnDict(source_database)
@property
def source_database(self):
"""
Source database option
:param source_database: enum DdlParse.DATABASE
"""
return super().source_database
:param name_case: name case type
* DdlParse.NAME_CASE.original : Return to no convert
* DdlParse.NAME_CASE.lower : Return to lower
* DdlParse.NAME_CASE.upper : Return to upper
:return: name
"""
if name_case == self.NAME_CASE.lower:
return self._name.lower()
elif name_case == self.NAME_CASE.upper:
return self._name.upper()
else:
return self._name
class DdlParseColumn(DdlParseTableColumnBase):
"""Column define info"""
def __init__(self, name, data_type_array, array_brackets=None, constraint=None, source_database=None):
"""
:param data_type_array[]: Column data type ['data type name'] or ['data type name', '(length)'] or ['data type name', '(precision, scale)']
:param array_brackets: Column array brackets string '[]' or '[][]...'
:param constraint: Column constraint string
:param source_database: enum DdlParse.DATABASE
"""
super().__init__(source_database)
self._name = name
self._set_data_type(data_type_array)
self.constraint = constraint
self._array_dimensional = 0 if array_brackets is None else array_brackets.count('[]')