argumento posicional sigue argumento de palabra clave

Soy una llamada a una función como esta en Python.

order_id = kite.order_place(self, exchange, tradingsymbol, transaction_type, quantity, price, product, order_type, validity, disclosed_quantity=None, trigger_price=None, squareoff_value, stoploss_value, trailing_stoploss, variety, tag='') 

Aquí está el código de la documentación de la función.

 def order_place(self, exchange, tradingsymbol, transaction_type, quantity, price=None, product=None, order_type=None, validity=None, disclosed_quantity=None, trigger_price=None, squareoff_value=None, stoploss_value=None, trailing_stoploss=None, variety='regular', tag='') 

Se está dando un error como este ..

introduzca la descripción de la imagen aquí

¿Cómo resolver este error? Gracias !

La gramática del lenguaje especifica que los argumentos posicionales aparecen antes de la palabra clave o los argumentos destacados en las llamadas:

 argument_list ::= positional_arguments ["," starred_and_keywords] ["," keywords_arguments] | starred_and_keywords ["," keywords_arguments] | keywords_arguments 

Específicamente, un argumento de palabra clave se ve así: tag='insider trading!' mientras que un argumento posicional se ve así: ..., exchange, ... El problema radica en que parece haber copiado / pegado la lista de parámetros, y dejó algunos de los valores predeterminados en su lugar, lo que los hace parecer argumentos de palabras clave en lugar de posicionales. Esto está bien, excepto que luego vuelve a usar los argumentos posicionales, que es un error de syntax.

Además, cuando un argumento tiene un valor predeterminado , como price=None , eso significa que no tiene que proporcionarlo. Si no lo proporciona, en su lugar usará el valor predeterminado.

Para resolver este error, convierta sus argumentos posicionales posteriores en argumentos de palabras clave o, si tienen valores predeterminados y no necesita usarlos, simplemente no los especifique:

 order_id = kite.order_place(self, exchange, tradingsymbol, transaction_type, quantity) # Fully positional: order_id = kite.order_place(self, exchange, tradingsymbol, transaction_type, quantity, price, product, order_type, validity, disclosed_quantity, trigger_price, squareoff_value, stoploss_value, trailing_stoploss, variety, tag) # Some positional, some keyword (all keywords at end): order_id = kite.order_place(self, exchange, tradingsymbol, transaction_type, quantity, tag='insider trading!')