No estoy familiarizado con la API de Google Apps, pero parece que
Orgunits.list () se define 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
Entonces, si ejecuto estos 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
Entonces, la próxima vez que vea el error, intente agregar el nombre del parámetro a su lista de argumentos y vea si eso resuelve su problema.
Más información:
El Operador de Desempacada del Diccionario (**) no actúa como un argumento normal en una lista de parámetros. Si pasa un argumento posicional, cuando este es el único argumento en la lista, entonces lanzará un error (como lo vio) porque el código espera un argumento de palabras clave.
El operador de desagüe puede aceptar argumentos arbitrarios de palabras clave y usarlos en un diccionario.