If you want to be able to allow people to call some methods using None you have to do use a sentinel object when you define the method.
_senti
I don't think it is possible to persuade Sphinx to be more "friendly" as long as you have a sentinel that creates an object outside the function. Sphinx' autodoc extension imports the module, which means that module-level code is executed.
Are you sure you can't use something like this?
def foo(param1=None):
if param1 == None:
param1 = whatever you want...
else:
...