mixpeek 0.7.0__py3-none-any.whl → 0.7.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,31 +5,29 @@ class Index:
5
5
  self.base_url = base_url
6
6
  self.headers = headers
7
7
 
8
- def upload(self, file, collection_id, metadata=None, settings=None):
9
- try:
10
- url = f"{self.base_url}index/upload"
11
- files = {"file": file}
12
- data = {
13
- "collection_id": collection_id,
14
- "metadata": metadata,
15
- "settings": settings
16
- }
17
- response = requests.post(url, files=files, data=data, headers=self.headers)
18
- response.raise_for_status()
19
- return response.json()
20
- except requests.RequestException as e:
21
- return {"error": str(e)}
8
+ def _prepare_data(self, base_data, metadata=None, settings=None):
9
+ if metadata is not None:
10
+ base_data["metadata"] = metadata
11
+ if settings is not None:
12
+ base_data["settings"] = settings
13
+ return base_data
14
+
15
+ # def upload(self, file, collection_id, metadata=None, settings=None):
16
+ # try:
17
+ # api_url = f"{self.base_url}index/upload"
18
+ # files = {"file": file}
19
+ # data = self._prepare_data({"collection_id": collection_id}, metadata, settings)
20
+ # response = requests.post(api_url, files=files, data=data, headers=self.headers)
21
+ # response.raise_for_status()
22
+ # return response.json()
23
+ # except requests.RequestException as e:
24
+ # return {"error": str(e)}
22
25
 
23
- def url(self, url, collection_id, metadata=None, settings=None):
26
+ def url(self, target_url, collection_id, metadata=None, settings=None):
24
27
  try:
25
- url = f"{self.base_url}index/url"
26
- data = {
27
- "url": url,
28
- "collection_id": collection_id,
29
- "metadata": metadata,
30
- "settings": settings
31
- }
32
- response = requests.post(url, json=data, headers=self.headers)
28
+ endpoint = f"{self.base_url}index/url"
29
+ data = self._prepare_data({"url": target_url, "collection_id": collection_id}, metadata, settings)
30
+ response = requests.post(endpoint, json=data, headers=self.headers)
33
31
  response.raise_for_status()
34
32
  return response.json()
35
33
  except requests.RequestException as e:
@@ -37,14 +35,9 @@ class Index:
37
35
 
38
36
  def youtube(self, youtube_video_id, collection_id, metadata=None, settings=None):
39
37
  try:
40
- url = f"{self.base_url}index/youtube"
41
- data = {
42
- "youtube_video_id": youtube_video_id,
43
- "collection_id": collection_id,
44
- "metadata": metadata,
45
- "settings": settings
46
- }
47
- response = requests.post(url, json=data, headers=self.headers)
38
+ api_url = f"{self.base_url}index/youtube"
39
+ data = self._prepare_data({"youtube_video_id": youtube_video_id, "collection_id": collection_id}, metadata, settings)
40
+ response = requests.post(api_url, json=data, headers=self.headers)
48
41
  response.raise_for_status()
49
42
  return response.json()
50
43
  except requests.RequestException as e:
@@ -1,4 +1,6 @@
1
1
  import requests
2
+ import os
3
+ import json
2
4
 
3
5
  class Search:
4
6
  def __init__(self, base_url, headers):
@@ -25,27 +27,32 @@ class Search:
25
27
  except requests.RequestException as e:
26
28
  return {"error": str(e)}
27
29
 
28
- def upload(self, file, filters=None, page=1, page_size=10):
29
- try:
30
- url = f"{self.base_url}search/upload"
31
- files = {"file": file}
32
- data = {
33
- "filters": filters or "{}",
34
- "page": page,
35
- "page_size": page_size
36
- }
37
- response = requests.post(url, files=files, data=data, headers=self.headers)
38
- response.raise_for_status()
39
- return response.json()
40
- except requests.RequestException as e:
41
- return {"error": str(e)}
30
+ # def upload(self, file_path, filters=None, page=1, page_size=10):
31
+ # try:
32
+ # url = f"{self.base_url}search/upload"
33
+
34
+ # filename = os.path.basename(file_path)
35
+ # files = {
36
+ # 'file': (filename, open(file_path, 'rb'), 'application/octet-stream')
37
+ # }
38
+
39
+ # payload = {
40
+ # 'filters': json.dumps(filters or {}),
41
+ # 'page': str(page),
42
+ # 'page_size': str(page_size)
43
+ # }
44
+
45
+ # response = requests.post(url, headers=self.headers, data=payload, files=files)
46
+ # response.raise_for_status()
47
+ # return response.json()
48
+ # except requests.RequestException as e:
49
+ # return {"error": str(e)}
42
50
 
43
- def url(self, url, input_type="file", filters=None, modality="text", page=1, page_size=10):
51
+ def url(self, target_url, filters=None, modality="text", page=1, page_size=10):
44
52
  try:
45
53
  url = f"{self.base_url}search/url"
46
54
  data = {
47
- "url": url,
48
- "input_type": input_type,
55
+ "url": target_url,
49
56
  "filters": filters or {},
50
57
  "modality": modality,
51
58
  "pagination": {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mixpeek
3
- Version: 0.7.0
3
+ Version: 0.7.2
4
4
  Summary: Mixpeek Python SDK
5
5
  Home-page: https://github.com/mixpeek/mixpeek-python
6
6
  Author: Ethan Steininger
@@ -233,8 +233,6 @@ response = client.collections.delete_collection(collection_id="collection_id")
233
233
 
234
234
  - `collection_id` (str): The ID of the collection to delete.
235
235
 
236
- Certainly! I'll update the README to include information about the `tools` service, specifically the video processing functionality. Here's the addition to the README:
237
-
238
236
  ### Tools
239
237
 
240
238
  The `tools` module provides utility functions for processing various types of data before embedding or indexing.
@@ -4,10 +4,10 @@ mixpeek/exceptions.py,sha256=Orhdo5UFLn3fcWVJtlgkznW8Iy5ndL96h0qTY8zOlDA,235
4
4
  mixpeek/endpoints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  mixpeek/endpoints/collections.py,sha256=ffOBenNHG-mVpjT7kQcOfn78-wjgjdQTVyrloyeAy90,2890
6
6
  mixpeek/endpoints/embed.py,sha256=ybDqyIt0oJiwIdH1QSwuV-CPeJgd-zW0etNAcBdgZYE,2290
7
- mixpeek/endpoints/index.py,sha256=2WcjrRHCMqqj0ddWEkl1f5U81Ni9xKySC1_sdkrhnhM,1857
8
- mixpeek/endpoints/search.py,sha256=fp78miF5bSWTiQn32NMoth9mlLBsj7NfjNzS6HrEz3Q,2170
7
+ mixpeek/endpoints/index.py,sha256=QgMgys1CCukepCpK351aVXRxEsxBfI2YriX7aaH1NrU,1939
8
+ mixpeek/endpoints/search.py,sha256=u3onbss7Llx0AgcTSRtel6bGO5Ly3jvraXPcA26GzsY,2387
9
9
  mixpeek/endpoints/tools.py,sha256=QH3X0tYKr-W_9ApENgP7PeuLJi7Qr9W2jrrgQFH4F2A,3567
10
- mixpeek-0.7.0.dist-info/METADATA,sha256=kmaWlwIRerVhl4H_6cZHyvE8Kek6S4uNy5V8YDkDqhk,10754
11
- mixpeek-0.7.0.dist-info/WHEEL,sha256=Mdi9PDNwEZptOjTlUcAth7XJDFtKrHYaQMPulZeBCiQ,91
12
- mixpeek-0.7.0.dist-info/top_level.txt,sha256=EJ8Jc4IhqyUwnUlBwKbs498Ju4O9a-IDh2kXc_lo6Vg,8
13
- mixpeek-0.7.0.dist-info/RECORD,,
10
+ mixpeek-0.7.2.dist-info/METADATA,sha256=d_YN-IkRgs4iNHw6v7dN9qXg1jT46NvpjI74VqPqwKM,10585
11
+ mixpeek-0.7.2.dist-info/WHEEL,sha256=Mdi9PDNwEZptOjTlUcAth7XJDFtKrHYaQMPulZeBCiQ,91
12
+ mixpeek-0.7.2.dist-info/top_level.txt,sha256=EJ8Jc4IhqyUwnUlBwKbs498Ju4O9a-IDh2kXc_lo6Vg,8
13
+ mixpeek-0.7.2.dist-info/RECORD,,