Não estou familiarizado com a API do Google Apps, mas parece que
orgunits.list () é definido como:
class FactoryObject(object):
# ... Code Here ...
def list(self, **kwargs):
if 'some_parameter' not in kwargs:
raise Exception('some_parameter required argument')
# ... code that uses kwargs['some_parameter']
return True
Então, se eu executar esses comandos:
>>> orgunits.list()
Exception: some_parameter required argument
>>> orgunits.list('my_customer')
TypeError: list() takes exactly 1 argument (2 given)
>>> orgunits.list(some_parameter='my_customer')
True
Então, da próxima vez que você vir o erro, tente adicionar o nome do parâmetro à sua lista de argumentos e ver se isso resolve seu problema.
Mais Informações:
O Operador Despacado do Dicionário (**) não age como um argumento normal em uma lista de parâmetros. Se você passar em um argumento posicional, quando esse é o único argumento na lista, ele lançará um erro (como você viu) porque o código está esperando um argumento de palavra -chave.
O operador Unplack pode aceitar argumentos de palavras -chave arbitrárias e usá -los em um dicionário.