-
Notifications
You must be signed in to change notification settings - Fork 16
How to add a check?
Each of our checks is a file located in the /path/to/your/site-packages/django-check-seo/checks_list/ folder (see wiki - How does it work?), and need to follow some guidelines:
The launch_checks.py file tries to import the checks_list folder located in your django project (same level than manage.py).
If it does not exist, nothing happens.
If it exists, it will execute the important & run functions in each of the modules that start with checks..
To properly reference the modules, you will need to create a __init__.py file in your folder (otherwise there will be checks in sys.modules, and not checks.yourmodule).
__init__.py (raw file)
# Standard Library
import glob
from os.path import basename, dirname, isfile, join
import sys, json
from django.conf import settings
# list files
modules = glob.glob(join(dirname(__file__), "*.py"))
__all__ = []
# add them to __all__ so they can be imported
for module in modules:
if (
isfile(module)
and not module.endswith("__init__.py")
):
__all__.append(basename(module)[:-3])
Each problem/warning/success is in fact a CustomList object.
Since django-check-seo uses dashes in its name, just importing a submodule using from django-check-seo.checks import custom_list won't work.
Use importlib instead:
import importlib
custom_list = importlib.import_module("django-check-seo.checks.custom_list")
| Name | Description |
|---|---|
| name | Name of the check (str) |
| settings | Settings of the check (short str) |
| found | What was found during the check (short str) |
| searched_in | The studied data (list - warning: a string is a list of chars!) |
| description | Description of the check (long str) |
This code:

... will create this success:

Take a look at the Custom Checks page, or follow this direct link to a working gist.
If you want to know the reasons why we chose these checks in particular.
Checks that are not included inside the project