verify_config_reference.py 988 B

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