1from __future__ import absolute_import
2from __future__ import unicode_literals
3
4import sys
5
6from .version import ComposeVersion
7
8DEFAULT_TIMEOUT = 10
9HTTP_TIMEOUT = 60
10IS_WINDOWS_PLATFORM = (sys.platform == "win32")
11LABEL_CONTAINER_NUMBER = 'com.docker.compose.container-number'
12LABEL_ONE_OFF = 'com.docker.compose.oneoff'
13LABEL_PROJECT = 'com.docker.compose.project'
14LABEL_SERVICE = 'com.docker.compose.service'
15LABEL_NETWORK = 'com.docker.compose.network'
16LABEL_VERSION = 'com.docker.compose.version'
17LABEL_SLUG = 'com.docker.compose.slug'
18LABEL_VOLUME = 'com.docker.compose.volume'
19LABEL_CONFIG_HASH = 'com.docker.compose.config-hash'
20NANOCPUS_SCALE = 1000000000
21PARALLEL_LIMIT = 64
22
23SECRETS_PATH = '/run/secrets'
24WINDOWS_LONGPATH_PREFIX = '\\\\?\\'
25
26COMPOSEFILE_V1 = ComposeVersion('1')
27COMPOSEFILE_V2_0 = ComposeVersion('2.0')
28COMPOSEFILE_V2_1 = ComposeVersion('2.1')
29COMPOSEFILE_V2_2 = ComposeVersion('2.2')
30COMPOSEFILE_V2_3 = ComposeVersion('2.3')
31COMPOSEFILE_V2_4 = ComposeVersion('2.4')
32
33COMPOSEFILE_V3_0 = ComposeVersion('3.0')
34COMPOSEFILE_V3_1 = ComposeVersion('3.1')
35COMPOSEFILE_V3_2 = ComposeVersion('3.2')
36COMPOSEFILE_V3_3 = ComposeVersion('3.3')
37COMPOSEFILE_V3_4 = ComposeVersion('3.4')
38COMPOSEFILE_V3_5 = ComposeVersion('3.5')
39COMPOSEFILE_V3_6 = ComposeVersion('3.6')
40COMPOSEFILE_V3_7 = ComposeVersion('3.7')
41
42API_VERSIONS = {
43    COMPOSEFILE_V1: '1.21',
44    COMPOSEFILE_V2_0: '1.22',
45    COMPOSEFILE_V2_1: '1.24',
46    COMPOSEFILE_V2_2: '1.25',
47    COMPOSEFILE_V2_3: '1.30',
48    COMPOSEFILE_V2_4: '1.35',
49    COMPOSEFILE_V3_0: '1.25',
50    COMPOSEFILE_V3_1: '1.25',
51    COMPOSEFILE_V3_2: '1.25',
52    COMPOSEFILE_V3_3: '1.30',
53    COMPOSEFILE_V3_4: '1.30',
54    COMPOSEFILE_V3_5: '1.30',
55    COMPOSEFILE_V3_6: '1.36',
56    COMPOSEFILE_V3_7: '1.38',
57}
58
59API_VERSION_TO_ENGINE_VERSION = {
60    API_VERSIONS[COMPOSEFILE_V1]: '1.9.0',
61    API_VERSIONS[COMPOSEFILE_V2_0]: '1.10.0',
62    API_VERSIONS[COMPOSEFILE_V2_1]: '1.12.0',
63    API_VERSIONS[COMPOSEFILE_V2_2]: '1.13.0',
64    API_VERSIONS[COMPOSEFILE_V2_3]: '17.06.0',
65    API_VERSIONS[COMPOSEFILE_V2_4]: '17.12.0',
66    API_VERSIONS[COMPOSEFILE_V3_0]: '1.13.0',
67    API_VERSIONS[COMPOSEFILE_V3_1]: '1.13.0',
68    API_VERSIONS[COMPOSEFILE_V3_2]: '1.13.0',
69    API_VERSIONS[COMPOSEFILE_V3_3]: '17.06.0',
70    API_VERSIONS[COMPOSEFILE_V3_4]: '17.06.0',
71    API_VERSIONS[COMPOSEFILE_V3_5]: '17.06.0',
72    API_VERSIONS[COMPOSEFILE_V3_6]: '18.02.0',
73    API_VERSIONS[COMPOSEFILE_V3_7]: '18.06.0',
74}
75