def make_model_name(self, table, snake_case=True): if snake_case: table = make_snake_case(table) model = re.sub('[^\w]+', '', table) model_name = ''.join(sub.title() for sub in model.split('_')) if not model_name[0].isalpha(): model_name = 'T' + model_name return model_name
def make_model_name(self, table, snake_case=True): if snake_case: table = make_snake_case(table) model = re.sub('[^\w]+', '', table) model_name = ''.join(sub.title() for sub in model.split('_')) if not model_name[0].isalpha(): model_name = 'T' + model_name return model_name
def make_column_name(self, column, is_foreign_key=False, snake_case=True): column = column.strip() if snake_case: column = make_snake_case(column) column = column.lower() if is_foreign_key: # Strip "_id" from foreign keys, unless the foreign-key happens to # be named "_id", in which case the name is retained. column = re.sub('_id$', '', column) or column # Remove characters that are invalid for Python identifiers. column = re.sub('[^\w]+', '_', column) if column in RESERVED_WORDS: column += '_' if len(column) and column[0].isdigit(): column = '_' + column return column
def make_column_name(self, column, is_foreign_key=False, snake_case=True): column = column.strip() if snake_case: column = make_snake_case(column) column = column.lower() if is_foreign_key: # Strip "_id" from foreign keys, unless the foreign-key happens to # be named "_id", in which case the name is retained. column = re.sub('_id$', '', column) or column # Remove characters that are invalid for Python identifiers. column = re.sub('[^\w]+', '_', column) if column in RESERVED_WORDS: column += '_' if len(column) and column[0].isdigit(): column = '_' + column return column
def table_function(model_class: peewee.Model) -> str: """Generate table name dynamically. The function strips ``Model`` from the class name and calls :func:`peewee.make_snake_case` to generate a proper table name. Args: model_class: Data model class. Returns: Generated table name. """ name: str = model_class.__name__ if name.endswith('Model'): name = name[:-5] # strip ``Model`` suffix return peewee.make_snake_case(name)
def prefixed_snake_case(prefix, cls): return prefix + peewee.make_snake_case(cls.__name__)
def create_table_name(model): snake = make_snake_case(model.__name__) pluralized = snake + "s" return pluralized