MCPcopy Create free account
hub / github.com/dwavesystems/dwave-cloud-client / user_agent

Function user_agent

dwave/cloud/utils/http.py:113–163  ·  view source on GitHub ↗

Return User-Agent ~ "name/version language/version interpreter/version os/version". Args: name: Package name, primary UA component name. version: Package version, primary UA component version. include_platform_tags: Look for, query and

(name: Optional[str] = None,
               version: Optional[str] = None,
               *,
               include_platform_tags: bool = True)

Source from the content-addressed store, hash-verified

111
112
113def user_agent(name: Optional[str] = None,
114 version: Optional[str] = None,
115 *,
116 include_platform_tags: bool = True) -> str:
117 """Return User-Agent ~ "name/version language/version interpreter/version os/version".
118
119 Args:
120 name:
121 Package name, primary UA component name.
122 version:
123 Package version, primary UA component version.
124 include_platform_tags:
125 Look for, query and include externally-contributed platform tags
126 (via ``dwave.common.platform.tags`` entrypoint).
127 See :func:`dwave.cloud.utils.get_platform_tags`.
128
129 Return:
130 User-Agent string composed of "key/value" pairs (joined with a space
131 character), for following components: package, language, interpreter,
132 machine, system and platform.
133 """
134
135 def _interpreter():
136 name = platform.python_implementation()
137 version = platform.python_version()
138 if name == 'PyPy':
139 version = '.'.join(map(str, sys.pypy_version_info[:3]))
140 full_version = [version]
141 is_64bits = sys.maxsize > 2**32
142 if is_64bits:
143 full_version.append('64bit')
144 return name, "-".join(full_version)
145
146 tags = []
147
148 if name and version:
149 tags.append((name, version))
150
151 tags.extend([
152 ("python", platform.python_version()),
153 _interpreter(),
154 ("machine", platform.machine() or 'unknown'),
155 ("system", platform.system() or 'unknown'),
156 ("platform", platform.platform() or 'unknown'),
157 ])
158
159 # add platform-specific tags
160 if include_platform_tags:
161 tags.extend(platform_tags())
162
163 return ' '.join("{}/{}".format(name, version) for name, version in tags)
164
165
166# defined as a function rather than constant because env might change during runtime

Callers 5

show_platformFunction · 0.90
test_user_agentMethod · 0.90
default_user_agentFunction · 0.85

Calls 3

_interpreterFunction · 0.85
platform_tagsFunction · 0.85
formatMethod · 0.45

Tested by 3

test_user_agentMethod · 0.72