Просмотр исходного кода

Auto merge of #2575 - micbou:remove-install-aliases, r=Valloric

[READY] Do not install aliases from future

Depends on PR https://github.com/Valloric/ycmd/pull/722. This improves startup time on Python 2:

<table>
  <tr>
    <th rowspan="2">Platform</th>
    <th colspan="2">First run (ms)</th>
    <th colspan="2">Subsequent runs (ms)</th>
  </tr>
  <tr>
    <td>Before</td>
    <td>After</td>
    <td>Before</td>
    <td>After</td>
  </tr>
  <tr>
    <td>Ubuntu 16.04 64-bit</td>
    <td>245</td>
    <td>162</td>
    <td>134</td>
    <td>103</td>
  </tr>
  <tr>
    <td>macOS 10.12</td>
    <td>314</td>
    <td>202</td>
    <td>192</td>
    <td>136</td>
  </tr>
  <tr>
    <td>Windows 10 64-bit</td>
    <td>659</td>
    <td>384</td>
    <td>257</td>
    <td>154</td>
  </tr>
</table>

*Results obtained by running the `prof.py` script from [this branch](https://github.com/micbou/YouCompleteMe/tree/profiling-startup).*

Fixes #2332.
Fixes #2467.
Fixes #2568.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2575)
<!-- Reviewable:end -->
Homu 8 лет назад
Родитель
Сommit
46ee48432d
35 измененных файлов с 39 добавлено и 74 удалено
  1. 1 2
      python/ycm/base.py
  2. 4 6
      python/ycm/client/base_request.py
  3. 1 2
      python/ycm/client/command_request.py
  4. 1 2
      python/ycm/client/completer_available_request.py
  5. 1 2
      python/ycm/client/completion_request.py
  6. 1 2
      python/ycm/client/debug_info_request.py
  7. 1 2
      python/ycm/client/event_notification.py
  8. 1 2
      python/ycm/client/omni_completion_request.py
  9. 1 2
      python/ycm/client/shutdown_request.py
  10. 1 2
      python/ycm/client/ycmd_keepalive.py
  11. 1 2
      python/ycm/diagnostic_filter.py
  12. 1 2
      python/ycm/diagnostic_interface.py
  13. 1 2
      python/ycm/omni_completer.py
  14. 1 2
      python/ycm/paths.py
  15. 1 2
      python/ycm/syntax_parse.py
  16. 1 2
      python/ycm/tests/__init__.py
  17. 1 2
      python/ycm/tests/base_test.py
  18. 1 2
      python/ycm/tests/client/command_request_test.py
  19. 1 2
      python/ycm/tests/client/completion_request_test.py
  20. 1 2
      python/ycm/tests/client/debug_info_request_test.py
  21. 1 2
      python/ycm/tests/client/omni_completion_request_tests.py
  22. 1 2
      python/ycm/tests/command_test.py
  23. 1 2
      python/ycm/tests/completion_test.py
  24. 1 2
      python/ycm/tests/diagnostic_filter_test.py
  25. 1 2
      python/ycm/tests/event_notification_test.py
  26. 2 3
      python/ycm/tests/omni_completer_test.py
  27. 1 2
      python/ycm/tests/paths_test.py
  28. 1 2
      python/ycm/tests/postcomplete_test.py
  29. 1 2
      python/ycm/tests/syntax_parse_test.py
  30. 1 2
      python/ycm/tests/test_utils.py
  31. 1 2
      python/ycm/tests/vimsupport_test.py
  32. 1 2
      python/ycm/tests/youcompleteme_test.py
  33. 1 2
      python/ycm/vimsupport.py
  34. 1 2
      python/ycm/youcompleteme.py
  35. 1 1
      third_party/ycmd

+ 1 - 2
python/ycm/base.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from future.utils import iteritems
 from future.utils import iteritems

+ 4 - 6
python/ycm/client/base_request.py

@@ -19,14 +19,13 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 import contextlib
 import contextlib
 import logging
 import logging
-import urllib.parse
 import json
 import json
+from future.moves.urllib.parse import urljoin, urlparse
 from future.utils import native
 from future.utils import native
 from base64 import b64decode, b64encode
 from base64 import b64decode, b64encode
 from ycm import vimsupport
 from ycm import vimsupport
@@ -120,7 +119,7 @@ class BaseRequest( object ):
     headers = dict( _HEADERS )
     headers = dict( _HEADERS )
     headers[ _HMAC_HEADER ] = b64encode(
     headers[ _HMAC_HEADER ] = b64encode(
         CreateRequestHmac( ToBytes( method ),
         CreateRequestHmac( ToBytes( method ),
-                           ToBytes( urllib.parse.urlparse( request_uri ).path ),
+                           ToBytes( urlparse( request_uri ).path ),
                            request_body,
                            request_body,
                            BaseRequest.hmac_secret ) )
                            BaseRequest.hmac_secret ) )
     return headers
     return headers
@@ -263,8 +262,7 @@ def _ValidateResponseObject( response ):
 
 
 
 
 def _BuildUri( handler ):
 def _BuildUri( handler ):
-  return native( ToBytes( urllib.parse.urljoin( BaseRequest.server_location,
-                                                handler ) ) )
+  return native( ToBytes( urljoin( BaseRequest.server_location, handler ) ) )
 
 
 
 
 def MakeServerException( data ):
 def MakeServerException( data ):

+ 1 - 2
python/ycm/client/command_request.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from ycm.client.base_request import ( BaseRequest, BuildRequestData,
 from ycm.client.base_request import ( BaseRequest, BuildRequestData,

+ 1 - 2
python/ycm/client/completer_available_request.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from ycm.client.base_request import ( BaseRequest, BuildRequestData,
 from ycm.client.base_request import ( BaseRequest, BuildRequestData,

+ 1 - 2
python/ycm/client/completion_request.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from ycmd.utils import ToUnicode
 from ycmd.utils import ToUnicode

+ 1 - 2
python/ycm/client/debug_info_request.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from ycm.client.base_request import ( BaseRequest, BuildRequestData,
 from ycm.client.base_request import ( BaseRequest, BuildRequestData,

+ 1 - 2
python/ycm/client/event_notification.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from ycm.client.base_request import ( BaseRequest, BuildRequestData,
 from ycm.client.base_request import ( BaseRequest, BuildRequestData,

+ 1 - 2
python/ycm/client/omni_completion_request.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from ycm.client.completion_request import CompletionRequest
 from ycm.client.completion_request import CompletionRequest

+ 1 - 2
python/ycm/client/shutdown_request.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from ycm.client.base_request import BaseRequest, HandleServerException
 from ycm.client.base_request import BaseRequest, HandleServerException

+ 1 - 2
python/ycm/client/ycmd_keepalive.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 import time
 import time

+ 1 - 2
python/ycm/diagnostic_filter.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from future.utils import iterkeys, iteritems
 from future.utils import iterkeys, iteritems

+ 1 - 2
python/ycm/diagnostic_interface.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from future.utils import itervalues, iteritems
 from future.utils import itervalues, iteritems

+ 1 - 2
python/ycm/omni_completer.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 import vim
 import vim

+ 1 - 2
python/ycm/paths.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 import os
 import os

+ 1 - 2
python/ycm/syntax_parse.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from future.utils import itervalues
 from future.utils import itervalues

+ 1 - 2
python/ycm/tests/__init__.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from ycm.tests.test_utils import MockVimModule
 from ycm.tests.test_utils import MockVimModule

+ 1 - 2
python/ycm/tests/base_test.py

@@ -22,8 +22,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 import contextlib
 import contextlib

+ 1 - 2
python/ycm/tests/client/command_request_test.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from ycm.tests.test_utils import ExtendedMock, MockVimModule
 from ycm.tests.test_utils import ExtendedMock, MockVimModule

+ 1 - 2
python/ycm/tests/client/completion_request_test.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from nose.tools import eq_
 from nose.tools import eq_

+ 1 - 2
python/ycm/tests/client/debug_info_request_test.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from copy import deepcopy
 from copy import deepcopy

+ 1 - 2
python/ycm/tests/client/omni_completion_request_tests.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from mock import MagicMock
 from mock import MagicMock

+ 1 - 2
python/ycm/tests/command_test.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from ycm.tests.test_utils import ( MockVimModule, MockVimBuffers, VimBuffer )
 from ycm.tests.test_utils import ( MockVimModule, MockVimBuffers, VimBuffer )

+ 1 - 2
python/ycm/tests/completion_test.py

@@ -21,8 +21,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from ycm.tests.test_utils import ( CurrentWorkingDirectory, ExtendedMock,
 from ycm.tests.test_utils import ( CurrentWorkingDirectory, ExtendedMock,

+ 1 - 2
python/ycm/tests/diagnostic_filter_test.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from ycm.tests.test_utils import MockVimModule
 from ycm.tests.test_utils import MockVimModule

+ 1 - 2
python/ycm/tests/event_notification_test.py

@@ -21,8 +21,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from ycm.tests.test_utils import ( CurrentWorkingDirectory, ExtendedMock,
 from ycm.tests.test_utils import ( CurrentWorkingDirectory, ExtendedMock,

+ 2 - 3
python/ycm/tests/omni_completer_test.py

@@ -21,11 +21,10 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
-from future.utils import PY2
 
 
+from future.utils import PY2
 from mock import patch, call
 from mock import patch, call
 from nose.tools import eq_
 from nose.tools import eq_
 from hamcrest import contains_string
 from hamcrest import contains_string

+ 1 - 2
python/ycm/tests/paths_test.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from ycm.tests.test_utils import MockVimModule
 from ycm.tests.test_utils import MockVimModule

+ 1 - 2
python/ycm/tests/postcomplete_test.py

@@ -21,8 +21,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from ycm.tests.test_utils import MockVimModule
 from ycm.tests.test_utils import MockVimModule

+ 1 - 2
python/ycm/tests/syntax_parse_test.py

@@ -20,8 +20,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from ycm.tests.test_utils import MockVimModule
 from ycm.tests.test_utils import MockVimModule

+ 1 - 2
python/ycm/tests/test_utils.py

@@ -20,8 +20,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from mock import MagicMock, patch
 from mock import MagicMock, patch

+ 1 - 2
python/ycm/tests/vimsupport_test.py

@@ -21,8 +21,7 @@
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from ycm.tests import PathToTestFile
 from ycm.tests import PathToTestFile

+ 1 - 2
python/ycm/tests/youcompleteme_test.py

@@ -19,8 +19,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from ycm.tests.test_utils import ( ExtendedMock, MockVimBuffers, MockVimModule,
 from ycm.tests.test_utils import ( ExtendedMock, MockVimBuffers, MockVimModule,

+ 1 - 2
python/ycm/vimsupport.py

@@ -20,8 +20,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from future.utils import iterkeys
 from future.utils import iterkeys

+ 1 - 2
python/ycm/youcompleteme.py

@@ -20,8 +20,7 @@ from __future__ import unicode_literals
 from __future__ import print_function
 from __future__ import print_function
 from __future__ import division
 from __future__ import division
 from __future__ import absolute_import
 from __future__ import absolute_import
-from future import standard_library
-standard_library.install_aliases()
+# Not installing aliases from python-future; it's unreliable and slow.
 from builtins import *  # noqa
 from builtins import *  # noqa
 
 
 from future.utils import iteritems
 from future.utils import iteritems

+ 1 - 1
third_party/ycmd

@@ -1 +1 @@
-Subproject commit 60c5bba489a24148afe501216a6a37d4fa669e15
+Subproject commit e709629389e7fe524e3c18e6896026956d968d16