Skip to content

Commit 7353639

Browse files
committed
Adding a header parameters to the client constructor
1 parent afe0dcf commit 7353639

File tree

4 files changed

+14
-5
lines changed

4 files changed

+14
-5
lines changed

meilisearch/_httprequests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def __init__(self, config: Config) -> None:
1919
self.config = config
2020
self.headers = {
2121
"Authorization": f"Bearer {self.config.api_key}",
22-
"User-Agent": qualified_version(),
22+
"User-Agent": qualified_version() + (";" + ";".join(config.client_agents) if config.client_agents else ""),
2323
}
2424

2525
def send_request(

meilisearch/client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class Client:
2929
"""
3030

3131
def __init__(
32-
self, url: str, api_key: Optional[str] = None, timeout: Optional[int] = None
32+
self, url: str, api_key: Optional[str] = None, timeout: Optional[int] = None, client_agents: Optional[List[str]] = None
3333
) -> None:
3434
"""
3535
Parameters
@@ -39,7 +39,7 @@ def __init__(
3939
api_key:
4040
The optional API key for Meilisearch
4141
"""
42-
self.config = Config(url, api_key, timeout=timeout)
42+
self.config = Config(url, api_key, timeout=timeout, client_agents=client_agents)
4343

4444
self.http = HttpRequests(self.config)
4545

meilisearch/config.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from __future__ import annotations
22

3-
from typing import Optional
3+
from typing import Optional, List
44

55

66
class Config:
@@ -35,7 +35,7 @@ class Paths:
3535
swap = "swap-indexes"
3636

3737
def __init__(
38-
self, url: str, api_key: Optional[str] = None, timeout: Optional[int] = None
38+
self, url: str, api_key: Optional[str] = None, timeout: Optional[int] = None, client_agents: Optional[List[str]] = None
3939
) -> None:
4040
"""
4141
Parameters
@@ -49,4 +49,5 @@ def __init__(
4949
self.url = url
5050
self.api_key = api_key
5151
self.timeout = timeout
52+
self.client_agents = client_agents
5253
self.paths = self.Paths()

tests/client/test_http_requests.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,11 @@ def test_get_headers_from_http_requests_instance():
1111

1212
assert http.headers["Authorization"] == f"Bearer {MASTER_KEY}"
1313
assert http.headers["User-Agent"] == qualified_version()
14+
15+
def test_get_headers_with_multiple_user_agent():
16+
"""Tests getting defined headers from instance in HttpRequests."""
17+
config = Config(BASE_URL, MASTER_KEY, timeout=None, client_agents=["Meilisearch Package1 (v1.1.1)", "Meilisearch Package2 (v2.2.2)"])
18+
http = HttpRequests(config=config)
19+
20+
assert http.headers["Authorization"] == f"Bearer {MASTER_KEY}"
21+
assert http.headers["User-Agent"] == qualified_version() + ";Meilisearch Package1 (v1.1.1);Meilisearch Package2 (v2.2.2)"

0 commit comments

Comments
 (0)