Upgrade wakatime-cli to v13.0.7
This commit is contained in:
parent
c87bdd041c
commit
e1390d7647
|
@ -1,7 +1,7 @@
|
||||||
__title__ = 'wakatime'
|
__title__ = 'wakatime'
|
||||||
__description__ = 'Common interface to the WakaTime api.'
|
__description__ = 'Common interface to the WakaTime api.'
|
||||||
__url__ = 'https://github.com/wakatime/wakatime'
|
__url__ = 'https://github.com/wakatime/wakatime'
|
||||||
__version_info__ = ('13', '0', '5')
|
__version_info__ = ('13', '0', '7')
|
||||||
__version__ = '.'.join(__version_info__)
|
__version__ = '.'.join(__version_info__)
|
||||||
__author__ = 'Alan Hamlett'
|
__author__ = 'Alan Hamlett'
|
||||||
__author_email__ = 'alan@wakatime.com'
|
__author_email__ = 'alan@wakatime.com'
|
||||||
|
|
|
@ -22,6 +22,7 @@ from .offlinequeue import Queue
|
||||||
from .session_cache import SessionCache
|
from .session_cache import SessionCache
|
||||||
from .utils import get_hostname, get_user_agent
|
from .utils import get_hostname, get_user_agent
|
||||||
from .packages import tzlocal
|
from .packages import tzlocal
|
||||||
|
from .packages import certifi
|
||||||
|
|
||||||
|
|
||||||
log = logging.getLogger('WakaTime')
|
log = logging.getLogger('WakaTime')
|
||||||
|
@ -101,16 +102,12 @@ def send_heartbeats(heartbeats, args, configs, use_ntlm_proxy=False):
|
||||||
should_try_ntlm = '\\' in args.proxy
|
should_try_ntlm = '\\' in args.proxy
|
||||||
proxies['https'] = args.proxy
|
proxies['https'] = args.proxy
|
||||||
|
|
||||||
ssl_verify = not args.nosslverify
|
|
||||||
if args.ssl_certs_file and ssl_verify:
|
|
||||||
ssl_verify = args.ssl_certs_file
|
|
||||||
|
|
||||||
# send request to api
|
# send request to api
|
||||||
response, code = None, None
|
response, code = None, None
|
||||||
try:
|
try:
|
||||||
response = session.post(api_url, data=request_body, headers=headers,
|
response = session.post(api_url, data=request_body, headers=headers,
|
||||||
proxies=proxies, timeout=timeout,
|
proxies=proxies, timeout=timeout,
|
||||||
verify=ssl_verify)
|
verify=_get_verify(args))
|
||||||
except RequestException:
|
except RequestException:
|
||||||
if should_try_ntlm:
|
if should_try_ntlm:
|
||||||
return send_heartbeats(heartbeats, args, configs, use_ntlm_proxy=True)
|
return send_heartbeats(heartbeats, args, configs, use_ntlm_proxy=True)
|
||||||
|
@ -204,10 +201,6 @@ def get_time_today(args, use_ntlm_proxy=False):
|
||||||
should_try_ntlm = '\\' in args.proxy
|
should_try_ntlm = '\\' in args.proxy
|
||||||
proxies['https'] = args.proxy
|
proxies['https'] = args.proxy
|
||||||
|
|
||||||
ssl_verify = not args.nosslverify
|
|
||||||
if args.ssl_certs_file and ssl_verify:
|
|
||||||
ssl_verify = args.ssl_certs_file
|
|
||||||
|
|
||||||
params = {
|
params = {
|
||||||
'start': 'today',
|
'start': 'today',
|
||||||
'end': 'today',
|
'end': 'today',
|
||||||
|
@ -218,7 +211,7 @@ def get_time_today(args, use_ntlm_proxy=False):
|
||||||
try:
|
try:
|
||||||
response = session.get(url, params=params, headers=headers,
|
response = session.get(url, params=params, headers=headers,
|
||||||
proxies=proxies, timeout=timeout,
|
proxies=proxies, timeout=timeout,
|
||||||
verify=ssl_verify)
|
verify=_get_verify(args))
|
||||||
except RequestException:
|
except RequestException:
|
||||||
if should_try_ntlm:
|
if should_try_ntlm:
|
||||||
return get_time_today(args, use_ntlm_proxy=True)
|
return get_time_today(args, use_ntlm_proxy=True)
|
||||||
|
@ -282,6 +275,16 @@ def get_time_today(args, use_ntlm_proxy=False):
|
||||||
return None, API_ERROR
|
return None, API_ERROR
|
||||||
|
|
||||||
|
|
||||||
|
def _get_verify(args):
|
||||||
|
verify = not args.nosslverify
|
||||||
|
if verify:
|
||||||
|
if args.ssl_certs_file:
|
||||||
|
verify = args.ssl_certs_file
|
||||||
|
else:
|
||||||
|
verify = certifi.where()
|
||||||
|
return verify
|
||||||
|
|
||||||
|
|
||||||
def _process_server_results(heartbeats, code, content, results, args, configs):
|
def _process_server_results(heartbeats, code, content, results, args, configs):
|
||||||
log.debug({
|
log.debug({
|
||||||
'response_code': code,
|
'response_code': code,
|
||||||
|
|
|
@ -39,6 +39,8 @@ class JavaParser(TokenParser):
|
||||||
self._process_attribute(token, content)
|
self._process_attribute(token, content)
|
||||||
elif self.partial(token) == 'Operator':
|
elif self.partial(token) == 'Operator':
|
||||||
self._process_operator(token, content)
|
self._process_operator(token, content)
|
||||||
|
elif self.partial(token) == 'Punctuation':
|
||||||
|
self._process_operator(token, content)
|
||||||
else:
|
else:
|
||||||
self._process_other(token, content)
|
self._process_other(token, content)
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,58 @@
|
||||||
:license: BSD, see LICENSE for more details.
|
:license: BSD, see LICENSE for more details.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
"""
|
||||||
|
Token.Keyword.Namespace import None
|
||||||
|
Token.Text import
|
||||||
|
Token.Name.Namespace os import
|
||||||
|
Token.Operator , import-2
|
||||||
|
Token.Text import-2
|
||||||
|
Token.Name.Namespace sys import-2
|
||||||
|
Token.Text
|
||||||
|
import-2
|
||||||
|
Token.Keyword.Namespace import None
|
||||||
|
Token.Text import
|
||||||
|
Token.Name.Namespace django.forms.monstertruck import
|
||||||
|
Token.Text
|
||||||
|
import-2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Token.Keyword.Namespace import None
|
||||||
|
Token.Text import
|
||||||
|
Token.Name.Namespace os import
|
||||||
|
Token.Operator , import-2
|
||||||
|
Token.Text import-2
|
||||||
|
Token.Name.Namespace sys import-2
|
||||||
|
Token.Text
|
||||||
|
import-2
|
||||||
|
Token.Keyword.Namespace import None
|
||||||
|
Token.Text import
|
||||||
|
Token.Name.Namespace django import
|
||||||
|
Token.Name.Namespace . import-2
|
||||||
|
Token.Name.Namespace forms import-2
|
||||||
|
Token.Name.Namespace . import-2
|
||||||
|
Token.Name.Namespace monstertruck import-2
|
||||||
|
Token.Text
|
||||||
|
import-2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
None Token.Keyword.Namespace import
|
||||||
|
import Token.Text
|
||||||
|
import Token.Name.Namespace django
|
||||||
|
import-2 Token.Name.Namespace .
|
||||||
|
import-2 Token.Name.Namespace forms
|
||||||
|
import-2 Token.Name.Namespace .
|
||||||
|
import-2 Token.Name.Namespace monstertruck
|
||||||
|
import-2 Token.Text
|
||||||
|
|
||||||
|
None Token.Keyword.Namespace from
|
||||||
|
from Token.Text
|
||||||
|
from Token.Name.Namespace app
|
||||||
|
from-2 Token.Text
|
||||||
|
"""
|
||||||
|
|
||||||
from . import TokenParser
|
from . import TokenParser
|
||||||
|
|
||||||
|
|
||||||
|
@ -32,7 +84,7 @@ class PythonParser(TokenParser):
|
||||||
if self.partial(token) == 'Namespace':
|
if self.partial(token) == 'Namespace':
|
||||||
self._process_namespace(token, content)
|
self._process_namespace(token, content)
|
||||||
elif self.partial(token) == 'Operator':
|
elif self.partial(token) == 'Operator':
|
||||||
self._process_operator(token, content)
|
self._process_punctuation(token, content)
|
||||||
elif self.partial(token) == 'Punctuation':
|
elif self.partial(token) == 'Punctuation':
|
||||||
self._process_punctuation(token, content)
|
self._process_punctuation(token, content)
|
||||||
elif self.partial(token) == 'Text':
|
elif self.partial(token) == 'Text':
|
||||||
|
@ -43,21 +95,20 @@ class PythonParser(TokenParser):
|
||||||
def _process_namespace(self, token, content):
|
def _process_namespace(self, token, content):
|
||||||
if self.state is None:
|
if self.state is None:
|
||||||
self.state = content
|
self.state = content
|
||||||
|
elif content == 'as':
|
||||||
|
self.nonpackage = True
|
||||||
else:
|
else:
|
||||||
if content == 'as':
|
self._process_import(token, content)
|
||||||
self.nonpackage = True
|
|
||||||
else:
|
|
||||||
self._process_import(token, content)
|
|
||||||
|
|
||||||
def _process_operator(self, token, content):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def _process_punctuation(self, token, content):
|
def _process_punctuation(self, token, content):
|
||||||
if content == '(':
|
if content == '(':
|
||||||
self.parens += 1
|
self.parens += 1
|
||||||
|
self.nonpackage = False
|
||||||
elif content == ')':
|
elif content == ')':
|
||||||
self.parens -= 1
|
self.parens -= 1
|
||||||
self.nonpackage = False
|
self.nonpackage = False
|
||||||
|
elif content == ',' and self.state == 'import-2':
|
||||||
|
self.state = 'import'
|
||||||
|
|
||||||
def _process_text(self, token, content):
|
def _process_text(self, token, content):
|
||||||
if self.state is not None:
|
if self.state is not None:
|
||||||
|
@ -72,12 +123,12 @@ class PythonParser(TokenParser):
|
||||||
if not self.nonpackage:
|
if not self.nonpackage:
|
||||||
if self.state == 'from':
|
if self.state == 'from':
|
||||||
self.append(content, truncate=True, truncate_to=1)
|
self.append(content, truncate=True, truncate_to=1)
|
||||||
self.state = 'from-2'
|
self.state = None
|
||||||
elif self.state == 'import':
|
elif self.state == 'import':
|
||||||
self.append(content, truncate=True, truncate_to=1)
|
self.append(content, truncate=True, truncate_to=1)
|
||||||
self.state = 'import-2'
|
self.state = 'import-2'
|
||||||
elif self.state == 'import-2':
|
elif self.state == 'import-2':
|
||||||
self.append(content, truncate=True, truncate_to=1)
|
pass
|
||||||
else:
|
else:
|
||||||
self.state = None
|
self.state = None
|
||||||
self.nonpackage = False
|
self.nonpackage = False
|
||||||
|
|
|
@ -23,7 +23,9 @@ sys.path.insert(0, os.path.join(pwd, 'packages'))
|
||||||
|
|
||||||
from .compat import is_py26
|
from .compat import is_py26
|
||||||
|
|
||||||
if not is_py26:
|
if is_py26:
|
||||||
|
sys.path.insert(0, os.path.join(pwd, 'packages', 'py26'))
|
||||||
|
else:
|
||||||
sys.path.insert(0, os.path.join(pwd, 'packages', 'py27'))
|
sys.path.insert(0, os.path.join(pwd, 'packages', 'py27'))
|
||||||
|
|
||||||
from .__about__ import __version__
|
from .__about__ import __version__
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue