Sphinx透露了我的(mailgun)密码

时间:2016-01-15 10:45:06

标签: python python-sphinx

我有一个简单的功能

import config 

def send_message(mailgunkey=config.MAILGUNKEY):
    """
    send an email
    """

它依赖于我的config.py文件中定义的变量。我从我所有机器上的本地文件中读取变量,因为我不希望在任何存储库中都有我的密钥等。但是,我最近养成了使用Sphinx的习惯。生成html文档时,将对表达式config.MAILGUNKEY进行评估,并在html文件中显示实际密钥。有没有办法阻止这种不良行为?

1 个答案:

答案 0 :(得分:2)

考虑使用这种方法:

import config 

def send_message(mailgunkey=None):
    """
    send an email
    """
    if mailgunkey is None:
        mailgunkey = config.MAILGUNKEY

一般来说,这种方法可以带来一些重要的优势:

  • 允许您的用户通过None作为默认值;
  • 即使您的模块已导入,
  • 也允许更改config.MAILGUNKEY;
  • 解决了可变默认参数的问题(不是你的情况,但仍然需要注意)。

在我看来,第二点是非常重要的一点,因为我会惊讶地发现在运行时对配置变量的更改没有任何影响。