2016-09-13 20 views
0

I持っているサーバにXMLを介して送信するためには、指定されたプロバイダ、およびPEMキーがありますかどうかをチェックする、このコード:にSyntaxError:無効な構文 - のpython 2.7 - Odoo v9のコミュニティ

@api.multi 
def send_xml_file(self, envio_dte=None, file_name="envio",company_id=False): 
    if not company_id.dte_service_provider: 
     raise UserError(_("Not Service provider selected!")) 
    try: 
     signature_d = self.get_digital_signature_pem(
      company_id) 
     seed = self.get_seed(company_id) 
     template_string = self.create_template_seed(seed) 
     seed_firmado = self.sign_seed(
      template_string, signature_d['priv_key'], 
      signature_d['cert']) 
     token = self.get_token(seed_firmado,company_id) 
    _logger.info(_("Token is: {}").format(token)) 
    except: 
     raise Warning(connection_status[response.e]) 
     return {'sii_result': 'NoEnviado'} 

オンこの行:_logger.info(_("Token is: {}").format(token))が、これは私のトレースバックである私にSyntaxError: invalid syntaxを投げている:

Traceback (most recent call last): 
File "/home/kristian/.virtualenvs/odoov9/lib/python2.7/site-packages/werkzeug/serving.py", line 177, in run_wsgi 
execute(self.server.app) 
File "/home/kristian/.virtualenvs/odoov9/lib/python2.7/site-packages/werkzeug/serving.py", line 165, in execute 
application_iter = app(environ, start_response) 
File "/home/kristian/odoov9/odoo-9.0c-20160712/openerp/service/server.py", line 246, in app 
return self.app(e, s) 
File "/home/kristian/odoov9/odoo-9.0c-20160712/openerp/service/wsgi_server.py", line 184, in application 
return application_unproxied(environ, start_response) 
File "/home/kristian/odoov9/odoo-9.0c-20160712/openerp/service/wsgi_server.py", line 170, in application_unproxied 
result = handler(environ, start_response) 
File "/home/kristian/odoov9/odoo-9.0c-20160712/openerp/http.py", line 1492, in __call__ 
self.load_addons() 
File "/home/kristian/odoov9/odoo-9.0c-20160712/openerp/http.py", line 1513, in load_addons 
m = __import__('openerp.addons.' + module) 
File "/home/kristian/odoov9/odoo-9.0c-20160712/openerp/modules/module.py", line 61, in load_module 
mod = imp.load_module('openerp.addons.' + module_part, f, path, descr) 
File "/home/kristian/odoov9/solti/l10n_cl_dte/__init__.py", line 2, in <module> 
from . import models, controllers, wizard 
File "/home/kristian/odoov9/solti/l10n_cl_dte/models/__init__.py", line 2, in <module> 
from . import invoice, partner, company, payment_term, sii_regional_offices 
File "/home/kristian/odoov9/solti/l10n_cl_dte/models/invoice.py", line 500 
_logger.info(_("Token is: {}").format(token)) 
    ^
SyntaxError: invalid syntax 

私は不足している括弧、およびそのようなもののためにチェックしましたが、私はまだそれを把握することはできません。

これに関するご意見はありますか?

ありがとうございます!

+1

ロガーは、それが、正しくインデント 'try'ブロックは' except'ブロックせずに終了していないので、tryブロック – miah

+2

にあるように、オーバータブ付きする必要があります。 – Barmar

+1

また、私はこの 'raise Warning(connection_status [response.e])'があなたが望むことをするとは思わないと思います。 'raise'は実行を終了し、戻り値は発生しません。あなたは[warningsモジュール](https://docs.python.org/3/library/warnings.html#module-warnings)をチェックアウトする必要があります – miah

答えて

1

ロガーは、tryブロックに入るためにタブで上書きする必要があります。

@api.multi 
def send_xml_file(self, envio_dte=None, file_name="envio",company_id=False): 
    if not company_id.dte_service_provider: 
     raise UserError(_("Not Service provider selected!")) 
    try: 
     signature_d = self.get_digital_signature_pem(
      company_id) 
     seed = self.get_seed(company_id) 
     template_string = self.create_template_seed(seed) 
     seed_firmado = self.sign_seed(
      template_string, signature_d['priv_key'], 
      signature_d['cert']) 
     token = self.get_token(seed_firmado,company_id) 
     _logger.info(_("Token is: {}").format(token)) 
    except: 
     # This is probably not doing what you expect 
     # raise will stop program execution, so the 
     # return will not actually return. 
     raise Warning(connection_status[response.e]) 
     return {'sii_result': 'NoEnviado'} 
関連する問題