Coverage report

|  |  | Statements |  | Branches |  | Total
--- | --- | --- | --- | --- | --- | --- | ---
File | function |  | coverage | statements | missing | excluded |  | coverage | branches | partial |  | coverage
formkit_ninja / __init__.py | (no function) |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / __main__.py | (no function) |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / admin.py | JSONMappingMixin.get_json_fields |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / admin.py | JSONMappingMixin._extract_field_value |  | 0% | 7 | 7 | 0 |  | 0% | 4 | 0 |  | 0%
formkit_ninja / admin.py | JSONMappingMixin._populate_form_fields |  | 0% | 12 | 12 | 0 |  | 0% | 10 | 0 |  | 0%
formkit_ninja / admin.py | JSONMappingMixin._build_json_data |  | 0% | 13 | 13 | 0 |  | 0% | 8 | 0 |  | 0%
formkit_ninja / admin.py | JSONMappingMixin.save_json_fields |  | 0% | 3 | 3 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / admin.py | JSONMappingMixin.clean |  | 0% | 12 | 12 | 0 |  | 0% | 8 | 0 |  | 0%
formkit_ninja / admin.py | FormKitBaseForm.__init__ |  | 0% | 3 | 3 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / admin.py | FormKitBaseForm.save |  | 0% | 5 | 5 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / admin.py | FormKitNodeForm.get_fields |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / admin.py | FormKitNodeRepeaterForm.get_json_fields |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / admin.py | FormKitSchemaNodeAdmin.key_is_valid |  | 0% | 7 | 7 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / admin.py | FormKitSchemaNodeAdmin.formkit_or_el_type |  | 0% | 2 | 2 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / admin.py | FormKitSchemaNodeAdmin.get_inlines |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / admin.py | FormKitSchemaNodeAdmin.get_fieldsets |  | 0% | 15 | 15 | 0 |  | 0% | 8 | 0 |  | 0%
formkit_ninja / admin.py | FormKitSchemaNodeAdmin.get_form |  | 0% | 10 | 10 | 0 |  | 0% | 6 | 0 |  | 0%
formkit_ninja / admin.py | FormKitSchemaAdmin.get_inlines |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / admin.py | (no function) |  | 100% | 183 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / api.py | sentry_message |  | 0% | 2 | 2 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / api.py | node_queryset_response |  | 0% | 11 | 11 | 0 |  | 0% | 8 | 0 |  | 0%
formkit_ninja / api.py | get_list_schemas |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / api.py | get_formkit_nodes |  | 0% | 6 | 6 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / api.py | get_related_nodes |  | 0% | 3 | 3 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / api.py | get_components |  | 0% | 2 | 2 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / api.py | get_schemas |  | 0% | 3 | 3 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / api.py | get_all_schemas |  | 0% | 3 | 3 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / api.py | get_schema_by_label |  | 0% | 3 | 3 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / api.py | get_node |  | 0% | 3 | 3 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / api.py | list_options |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / api.py | delete_node |  | 0% | 5 | 5 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / api.py | FormKitNodeIn.validate_formkit_type |  | 0% | 5 | 5 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / api.py | FormKitNodeIn.parent |  | 0% | 11 | 11 | 0 |  | 0% | 6 | 0 |  | 0%
formkit_ninja / api.py | FormKitNodeIn.parent_names |  | 0% | 6 | 6 | 0 |  | 0% | 4 | 0 |  | 0%
formkit_ninja / api.py | FormKitNodeIn.child |  | 0% | 4 | 4 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / api.py | FormKitNodeIn.preferred_name |  | 0% | 5 | 5 | 0 |  | 0% | 4 | 0 |  | 0%
formkit_ninja / api.py | create_or_update_child_node |  | 0% | 23 | 23 | 0 |  | 0% | 14 | 0 |  | 0%
formkit_ninja / api.py | make_name_valid_id |  | 0% | 4 | 4 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / api.py | disambiguate_name |  | 0% | 6 | 6 | 0 |  | 0% | 4 | 0 |  | 0%
formkit_ninja / api.py | create_or_update_node |  | 0% | 10 | 10 | 0 |  | 0% | 4 | 0 |  | 0%
formkit_ninja / api.py | (no function) |  | 99% | 143 | 1 | 0 |  | 50% | 2 | 1 |  | 99%
formkit_ninja / fields.py | WhitelistedKeysDict.__init__ |  | 0% | 13 | 13 | 0 |  | 0% | 6 | 0 |  | 0%
formkit_ninja / fields.py | WhitelistedKeysDict.__setitem__ |  | 0% | 3 | 3 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / fields.py | TranslatedValues.__init__ |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / fields.py | TranslatedValues.value |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / fields.py | TranslatedValues.get_str |  | 0% | 10 | 10 | 0 |  | 0% | 10 | 0 |  | 0%
formkit_ninja / fields.py | TranslatedField.from_db_value |  | 0% | 2 | 2 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / fields.py | TranslatedField.to_python |  | 0% | 2 | 2 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / fields.py | (no function) |  | 92% | 24 | 2 | 0 |  | 50% | 2 | 1 |  | 88%
formkit_ninja / formkit_schema.py | FormKitSchemaProps.dict |  | 0% | 9 | 9 | 0 |  | 0% | 6 | 0 |  | 0%
formkit_ninja / formkit_schema.py | FormKitTagParser.__init__ |  | 0% | 6 | 6 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / formkit_schema.py | FormKitTagParser.handle_starttag |  | 0% | 10 | 10 | 0 |  | 0% | 4 | 0 |  | 0%
formkit_ninja / formkit_schema.py | FormKitTagParser.handle_endtag |  | 0% | 4 | 4 | 0 |  | 0% | 4 | 0 |  | 0%
formkit_ninja / formkit_schema.py | FormKitTagParser.handle_data |  | 0% | 3 | 3 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / formkit_schema.py | get_node_type |  | 0% | 10 | 10 | 0 |  | 0% | 10 | 0 |  | 0%
formkit_ninja / formkit_schema.py | FormKitNode.parse_obj |  | 0% | 22 | 22 | 0 |  | 0% | 12 | 0 |  | 0%
formkit_ninja / formkit_schema.py | FormKitNode.parse_obj.get_additional_props |  | 0% | 5 | 5 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / formkit_schema.py | FormKitNode.parse_obj.get_children |  | 0% | 13 | 13 | 0 |  | 0% | 8 | 0 |  | 0%
formkit_ninja / formkit_schema.py | FormKitSchema.parse_obj |  | 0% | 6 | 6 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / formkit_schema.py | (no function) |  | 100% | 191 | 0 | 0 |  | 100% | 2 | 0 |  | 100%
formkit_ninja / management / __init__.py | (no function) |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / management / commands / __init__.py | (no function) |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / management / commands / check_valid_names.py | Command.handle |  | 0% | 7 | 7 | 0 |  | 0% | 4 | 0 |  | 0%
formkit_ninja / management / commands / check_valid_names.py | (no function) |  | 0% | 6 | 6 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / management / commands / import_forms.py | Command.handle |  | 0% | 11 | 11 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / management / commands / import_forms.py | (no function) |  | 0% | 7 | 7 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / models.py | check_valid_django_id |  | 0% | 8 | 8 | 0 |  | 0% | 8 | 0 |  | 0%
formkit_ninja / models.py | OptionGroup.save |  | 0% | 8 | 8 | 0 |  | 0% | 4 | 0 |  | 0%
formkit_ninja / models.py | OptionGroup.__str__ |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / models.py | OptionGroup.copy_table |  | 0% | 7 | 7 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / models.py | OptionQuerySet.get_queryset |  | 0% | 5 | 5 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / models.py | Option.from_pydantic |  | 0% | 12 | 12 | 0 |  | 0% | 6 | 0 |  | 0%
formkit_ninja / models.py | Option.__str__ |  | 0% | 3 | 3 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / models.py | OptionLabel.save |  | 0% | 3 | 3 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / models.py | FormComponents.__str__ |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / models.py | NodeChildrenManager.aggregate_changes_table |  | 0% | 4 | 4 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / models.py | NodeQS.from_change |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / models.py | NodeQS.to_response |  | 0% | 10 | 10 | 0 |  | 0% | 6 | 0 |  | 0%
formkit_ninja / models.py | FormKitSchemaNode.__str__ |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / models.py | FormKitSchemaNode.save |  | 0% | 24 | 24 | 0 |  | 0% | 24 | 0 |  | 0%
formkit_ninja / models.py | FormKitSchemaNode.node_options |  | 0% | 6 | 6 | 0 |  | 0% | 4 | 0 |  | 0%
formkit_ninja / models.py | FormKitSchemaNode.get_node_values |  | 0% | 52 | 52 | 0 |  | 0% | 40 | 0 |  | 0%
formkit_ninja / models.py | FormKitSchemaNode.get_node |  | 0% | 11 | 11 | 0 |  | 0% | 8 | 0 |  | 0%
formkit_ninja / models.py | FormKitSchemaNode.from_pydantic |  | 0% | 78 | 78 | 0 |  | 0% | 64 | 0 |  | 0%
formkit_ninja / models.py | FormKitSchemaNode.to_pydantic |  | 0% | 3 | 3 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / models.py | SchemaManager.get_queryset |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / models.py | FormKitSchema.get_schema_values |  | 0% | 3 | 3 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / models.py | FormKitSchema.to_pydantic |  | 0% | 2 | 2 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / models.py | FormKitSchema.__str__ |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / models.py | FormKitSchema.save |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / models.py | FormKitSchema.from_pydantic |  | 0% | 8 | 8 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / models.py | FormKitSchema.from_json |  | 0% | 2 | 2 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / models.py | (no function) |  | 100% | 148 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / parser / __init__.py | (no function) |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / parser / logger.py | (no function) |  | 0% | 3 | 3 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | make_valid_identifier |  | 0% | 13 | 13 | 0 |  | 0% | 8 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.__init__ |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.from_obj |  | 0% | 2 | 2 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.__truediv__ |  | 0% | 3 | 3 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.suggest_model_name |  | 0% | 2 | 2 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.suggest_class_name |  | 0% | 2 | 2 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.suggest_field_name |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.suggest_link_class_name |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.modelname |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.classname |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.fieldname |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.linkname |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.classname_lower |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.classname_schema |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.safe_name |  | 0% | 8 | 8 | 0 |  | 0% | 6 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.safe_node_name |  | 0% | 6 | 6 | 0 |  | 0% | 4 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.is_repeater |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.is_group |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.formkits |  | 0% | 3 | 3 | 0 |  | 0% | 4 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.formkits_not_repeaters |  | 0% | 2 | 2 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.formkits_not_repeaters._get |  | 0% | 3 | 3 | 0 |  | 0% | 4 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.children |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.filter_children |  | 0% | 3 | 3 | 0 |  | 0% | 4 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.repeaters |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.groups |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.node |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.parent |  | 0% | 3 | 3 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.is_child |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.depth |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.tail |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.__str__ |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.django_attrib_name |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.pydantic_attrib_name |  | 0% | 2 | 2 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.parent_class_name |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.to_pydantic_type |  | 0% | 23 | 23 | 0 |  | 0% | 20 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.pydantic_type |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.to_postgres_type |  | 0% | 12 | 12 | 0 |  | 0% | 10 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.postgres_type |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.to_django_type |  | 0% | 20 | 20 | 0 |  | 0% | 18 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.django_type |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.to_django_args |  | 0% | 20 | 20 | 0 |  | 0% | 18 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.django_args |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.extra_attribs |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.extra_attribs_schema |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.extra_attribs_basemodel |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | NodePath.validators |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / parser / type_convert.py | (no function) |  | 100% | 84 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / samples / __init__.py | (no function) |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / schemas / __init__.py | Schemas.__init__ |  | 100% | 3 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / schemas / __init__.py | Schemas.list_schemas |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / schemas / __init__.py | Schemas.as_text |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / schemas / __init__.py | Schemas.as_json |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / schemas / __init__.py | Schemas.as_dict |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / schemas / __init__.py | Schemas.import_all |  | 0% | 5 | 5 | 0 |  | 0% | 2 | 0 |  | 0%
formkit_ninja / schemas / __init__.py | (no function) |  | 100% | 12 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / schemas / schemas.py | (no function) |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / triggers.py | create_sequence |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / triggers.py | drop_sequence |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / triggers.py | create_sequence_migration |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
formkit_ninja / triggers.py | update_group_trigger |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / triggers.py | insert_group_trigger |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / triggers.py | update_or_insert_group_trigger |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / triggers.py | bump_sequence_value |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / triggers.py | (no function) |  | 100% | 10 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
formkit_ninja / urls.py | (no function) |  | 0% | 6 | 6 | 0 |  | 100% | 0 | 0 |  | 0%
Total |  |  | 50% | 1597 | 796 | 0 |  | 1% | 462 | 2 |  | 39%

No items found using the specified filter.