verify_config_reference.py 893 B

123456789101112131415161718192021222324252627
  1. from fileinput import input
  2. from sys import exit, stderr
  3. from celery.app.defaults import DEFAULTS
  4. ignore = frozenset(["BROKER_INSIST", "CELERYD_POOL_PUTLOCKS",
  5. "CELERY_AMQP_TASK_RESULT_CONNECTION_MAX"])
  6. def find_undocumented_settings(directive=".. setting:: "):
  7. all = set(DEFAULTS)
  8. documented = set(line.strip()[len(directive):].strip()
  9. for line in input()
  10. if line.strip().startswith(directive))
  11. return [setting for setting in all ^ documented
  12. if setting not in ignore]
  13. if __name__ == "__main__":
  14. sep = """\n * """
  15. missing = find_undocumented_settings()
  16. if missing:
  17. stderr.write("Error: found undocumented settings:%s%s\n" % (
  18. sep, sep.join(sorted(missing))))
  19. exit(1)
  20. print("OK: Configuration reference complete :-)")
  21. exit(0)