def is_camel_case(name): for (i,char) in enumerate(name): if (i>=1) and (name[i-1].islower()) and (char.isupper()): return True return False def is_missing_underscore(fieldName): if (fieldName == "kuser_id"): # this one is okay return False {% for model in generator.all %} pos = fieldName.find("{{ model }}") if (pos > 0) and (fieldName[pos-1] != "_"): return True {% endfor %} return False def stylecheck_model_name(name): if name.endswith("s"): print "model '%s' name ends with 's'" % name def stylecheck_field_name(modelName, fieldName): if is_camel_case(fieldName): print "field '%s.%s' has camelcase" % (modelName, fieldName) if is_missing_underscore(fieldName): print "field '%s.%s' is missing underscore" % (modelName, fieldName) def stylecheck_field_plural(modelName, fieldName): if is_camel_case(fieldName): print "m2m field '%s.%s' has camelcase" % (modelName, fieldName) if is_missing_underscore(fieldName): print "m2m field '%s.%s' is missing underscore" % (modelName, fieldName) def main(): {% for obj in generator.all %} stylecheck_model_name("{{ obj.camel }}"); {% for ref in obj.refs %} stylecheck_field_plural("{{ obj.camel }}", "{{ ref.plural }}"); {% endfor %} {% for prop in obj.props %} stylecheck_field_name("{{ obj.camel }}", "{{ prop }}"); {% endfor %} {% endfor %} main()