jiro-sdk 0.2.15__tar.gz

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.
@@ -0,0 +1,185 @@
1
+ Metadata-Version: 2.4
2
+ Name: jiro-sdk
3
+ Version: 0.2.15
4
+ Summary: Official Python SDK for Jiro Search API
5
+ Home-page: https://github.com/DevAnimecx/jiro
6
+ Author: Jiro Team
7
+ Author-email: webcrafterreal@gmail.com
8
+ License: MIT
9
+ Keywords: jiro search api web scraping sdk
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.8
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Programming Language :: Python :: 3.14
21
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
+ Requires-Python: >=3.8
23
+ Description-Content-Type: text/markdown
24
+ Requires-Dist: httpx>=0.24.0
25
+ Provides-Extra: websocket
26
+ Requires-Dist: websocket-client>=1.6.0; extra == "websocket"
27
+ Provides-Extra: async
28
+ Requires-Dist: httpx[http2]>=0.24.0; extra == "async"
29
+ Provides-Extra: dev
30
+ Requires-Dist: pytest>=7.0; extra == "dev"
31
+ Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
32
+ Requires-Dist: pytest-cov>=4.0; extra == "dev"
33
+ Requires-Dist: mypy>=1.0; extra == "dev"
34
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
35
+ Dynamic: author
36
+ Dynamic: author-email
37
+ Dynamic: classifier
38
+ Dynamic: description
39
+ Dynamic: description-content-type
40
+ Dynamic: home-page
41
+ Dynamic: keywords
42
+ Dynamic: license
43
+ Dynamic: provides-extra
44
+ Dynamic: requires-dist
45
+ Dynamic: requires-python
46
+ Dynamic: summary
47
+
48
+ # Jiro Python SDK
49
+
50
+ Official Python SDK for [Jiro Search API](https://github.com/DevAnimecx/jiro).
51
+
52
+ ## Installation
53
+
54
+ ```bash
55
+ pip install jiro-sdk
56
+ ```
57
+
58
+ With WebSocket support:
59
+ ```bash
60
+ pip install jiro-sdk[websocket]
61
+ ```
62
+
63
+ ## Quick Start
64
+
65
+ ```python
66
+ from jiro_sdk import JiroClient
67
+
68
+ # Initialize client
69
+ client = JiroClient(
70
+ api_key="your-api-key",
71
+ base_url="http://127.0.0.1:8000"
72
+ )
73
+
74
+ # Search the web
75
+ results = client.search("python web scraping")
76
+ print(results["organic_results"])
77
+
78
+ # Scrape a URL
79
+ content = client.scrape("https://example.com")
80
+ print(content["content"])
81
+
82
+ # AI-powered research with citations
83
+ answer = client.ai_ask("What is Python?")
84
+ print(answer["answer"])
85
+
86
+ # Parallel search across multiple engines
87
+ results = client.search_parallel("AI news", num_engines=3)
88
+
89
+ # Search for images
90
+ images = client.search_images("cats")
91
+
92
+ # Search for news
93
+ news = client.search_news("technology")
94
+ ```
95
+
96
+ ## Async Usage
97
+
98
+ ```python
99
+ import asyncio
100
+ from jiro_sdk import AsyncJiroClient
101
+
102
+ async def main():
103
+ async with AsyncJiroClient(api_key="your-key") as client:
104
+ results = await client.search("python web scraping")
105
+ content = await client.scrape("https://example.com")
106
+ answer = await client.ai_ask("What is Python?")
107
+
108
+ asyncio.run(main())
109
+ ```
110
+
111
+ ## Social Media Scraping
112
+
113
+ ```python
114
+ # Scrape social media
115
+ result = client.social_scrape("https://reddit.com/r/python/comments/123")
116
+
117
+ # Search social platforms
118
+ results = client.social_search("python", platform="reddit")
119
+ ```
120
+
121
+ ## Batch Operations
122
+
123
+ ```python
124
+ # Batch search
125
+ job = client.batch_search(
126
+ queries=["python", "javascript", "go"],
127
+ engine="google",
128
+ num_results=5
129
+ )
130
+ print(f"Progress: {job.progress}%")
131
+
132
+ # Batch scrape
133
+ job = client.scrape_batch([
134
+ "https://example.com",
135
+ "https://httpbin.org/html"
136
+ ])
137
+ ```
138
+
139
+ ## Error Handling
140
+
141
+ ```python
142
+ from jiro_sdk import JiroClient, JiroError, AuthenticationError, RateLimitError
143
+
144
+ client = JiroClient(api_key="your-key")
145
+
146
+ try:
147
+ results = client.search("test")
148
+ except AuthenticationError:
149
+ print("Invalid API key")
150
+ except RateLimitError:
151
+ print("Rate limit exceeded, please wait")
152
+ except JiroError as e:
153
+ print(f"Error: {e}")
154
+ ```
155
+
156
+ ## Configuration
157
+
158
+ ```python
159
+ client = JiroClient(
160
+ api_key="your-api-key", # Optional: API key
161
+ base_url="http://localhost:8000", # Server URL
162
+ timeout=30.0 # Request timeout
163
+ )
164
+
165
+ # Get system status
166
+ status = client.status()
167
+
168
+ # Get usage statistics
169
+ usage = client.usage(days=30)
170
+
171
+ # List plugins
172
+ plugins = client.plugins()
173
+ ```
174
+
175
+ ## Context Manager
176
+
177
+ ```python
178
+ with JiroClient(api_key="your-key") as client:
179
+ results = client.search("test")
180
+ # Client is automatically closed
181
+ ```
182
+
183
+ ## License
184
+
185
+ MIT License
@@ -0,0 +1,138 @@
1
+ # Jiro Python SDK
2
+
3
+ Official Python SDK for [Jiro Search API](https://github.com/DevAnimecx/jiro).
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pip install jiro-sdk
9
+ ```
10
+
11
+ With WebSocket support:
12
+ ```bash
13
+ pip install jiro-sdk[websocket]
14
+ ```
15
+
16
+ ## Quick Start
17
+
18
+ ```python
19
+ from jiro_sdk import JiroClient
20
+
21
+ # Initialize client
22
+ client = JiroClient(
23
+ api_key="your-api-key",
24
+ base_url="http://127.0.0.1:8000"
25
+ )
26
+
27
+ # Search the web
28
+ results = client.search("python web scraping")
29
+ print(results["organic_results"])
30
+
31
+ # Scrape a URL
32
+ content = client.scrape("https://example.com")
33
+ print(content["content"])
34
+
35
+ # AI-powered research with citations
36
+ answer = client.ai_ask("What is Python?")
37
+ print(answer["answer"])
38
+
39
+ # Parallel search across multiple engines
40
+ results = client.search_parallel("AI news", num_engines=3)
41
+
42
+ # Search for images
43
+ images = client.search_images("cats")
44
+
45
+ # Search for news
46
+ news = client.search_news("technology")
47
+ ```
48
+
49
+ ## Async Usage
50
+
51
+ ```python
52
+ import asyncio
53
+ from jiro_sdk import AsyncJiroClient
54
+
55
+ async def main():
56
+ async with AsyncJiroClient(api_key="your-key") as client:
57
+ results = await client.search("python web scraping")
58
+ content = await client.scrape("https://example.com")
59
+ answer = await client.ai_ask("What is Python?")
60
+
61
+ asyncio.run(main())
62
+ ```
63
+
64
+ ## Social Media Scraping
65
+
66
+ ```python
67
+ # Scrape social media
68
+ result = client.social_scrape("https://reddit.com/r/python/comments/123")
69
+
70
+ # Search social platforms
71
+ results = client.social_search("python", platform="reddit")
72
+ ```
73
+
74
+ ## Batch Operations
75
+
76
+ ```python
77
+ # Batch search
78
+ job = client.batch_search(
79
+ queries=["python", "javascript", "go"],
80
+ engine="google",
81
+ num_results=5
82
+ )
83
+ print(f"Progress: {job.progress}%")
84
+
85
+ # Batch scrape
86
+ job = client.scrape_batch([
87
+ "https://example.com",
88
+ "https://httpbin.org/html"
89
+ ])
90
+ ```
91
+
92
+ ## Error Handling
93
+
94
+ ```python
95
+ from jiro_sdk import JiroClient, JiroError, AuthenticationError, RateLimitError
96
+
97
+ client = JiroClient(api_key="your-key")
98
+
99
+ try:
100
+ results = client.search("test")
101
+ except AuthenticationError:
102
+ print("Invalid API key")
103
+ except RateLimitError:
104
+ print("Rate limit exceeded, please wait")
105
+ except JiroError as e:
106
+ print(f"Error: {e}")
107
+ ```
108
+
109
+ ## Configuration
110
+
111
+ ```python
112
+ client = JiroClient(
113
+ api_key="your-api-key", # Optional: API key
114
+ base_url="http://localhost:8000", # Server URL
115
+ timeout=30.0 # Request timeout
116
+ )
117
+
118
+ # Get system status
119
+ status = client.status()
120
+
121
+ # Get usage statistics
122
+ usage = client.usage(days=30)
123
+
124
+ # List plugins
125
+ plugins = client.plugins()
126
+ ```
127
+
128
+ ## Context Manager
129
+
130
+ ```python
131
+ with JiroClient(api_key="your-key") as client:
132
+ results = client.search("test")
133
+ # Client is automatically closed
134
+ ```
135
+
136
+ ## License
137
+
138
+ MIT License
@@ -0,0 +1,185 @@
1
+ Metadata-Version: 2.4
2
+ Name: jiro-sdk
3
+ Version: 0.2.15
4
+ Summary: Official Python SDK for Jiro Search API
5
+ Home-page: https://github.com/DevAnimecx/jiro
6
+ Author: Jiro Team
7
+ Author-email: webcrafterreal@gmail.com
8
+ License: MIT
9
+ Keywords: jiro search api web scraping sdk
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.8
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Programming Language :: Python :: 3.14
21
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
+ Requires-Python: >=3.8
23
+ Description-Content-Type: text/markdown
24
+ Requires-Dist: httpx>=0.24.0
25
+ Provides-Extra: websocket
26
+ Requires-Dist: websocket-client>=1.6.0; extra == "websocket"
27
+ Provides-Extra: async
28
+ Requires-Dist: httpx[http2]>=0.24.0; extra == "async"
29
+ Provides-Extra: dev
30
+ Requires-Dist: pytest>=7.0; extra == "dev"
31
+ Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
32
+ Requires-Dist: pytest-cov>=4.0; extra == "dev"
33
+ Requires-Dist: mypy>=1.0; extra == "dev"
34
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
35
+ Dynamic: author
36
+ Dynamic: author-email
37
+ Dynamic: classifier
38
+ Dynamic: description
39
+ Dynamic: description-content-type
40
+ Dynamic: home-page
41
+ Dynamic: keywords
42
+ Dynamic: license
43
+ Dynamic: provides-extra
44
+ Dynamic: requires-dist
45
+ Dynamic: requires-python
46
+ Dynamic: summary
47
+
48
+ # Jiro Python SDK
49
+
50
+ Official Python SDK for [Jiro Search API](https://github.com/DevAnimecx/jiro).
51
+
52
+ ## Installation
53
+
54
+ ```bash
55
+ pip install jiro-sdk
56
+ ```
57
+
58
+ With WebSocket support:
59
+ ```bash
60
+ pip install jiro-sdk[websocket]
61
+ ```
62
+
63
+ ## Quick Start
64
+
65
+ ```python
66
+ from jiro_sdk import JiroClient
67
+
68
+ # Initialize client
69
+ client = JiroClient(
70
+ api_key="your-api-key",
71
+ base_url="http://127.0.0.1:8000"
72
+ )
73
+
74
+ # Search the web
75
+ results = client.search("python web scraping")
76
+ print(results["organic_results"])
77
+
78
+ # Scrape a URL
79
+ content = client.scrape("https://example.com")
80
+ print(content["content"])
81
+
82
+ # AI-powered research with citations
83
+ answer = client.ai_ask("What is Python?")
84
+ print(answer["answer"])
85
+
86
+ # Parallel search across multiple engines
87
+ results = client.search_parallel("AI news", num_engines=3)
88
+
89
+ # Search for images
90
+ images = client.search_images("cats")
91
+
92
+ # Search for news
93
+ news = client.search_news("technology")
94
+ ```
95
+
96
+ ## Async Usage
97
+
98
+ ```python
99
+ import asyncio
100
+ from jiro_sdk import AsyncJiroClient
101
+
102
+ async def main():
103
+ async with AsyncJiroClient(api_key="your-key") as client:
104
+ results = await client.search("python web scraping")
105
+ content = await client.scrape("https://example.com")
106
+ answer = await client.ai_ask("What is Python?")
107
+
108
+ asyncio.run(main())
109
+ ```
110
+
111
+ ## Social Media Scraping
112
+
113
+ ```python
114
+ # Scrape social media
115
+ result = client.social_scrape("https://reddit.com/r/python/comments/123")
116
+
117
+ # Search social platforms
118
+ results = client.social_search("python", platform="reddit")
119
+ ```
120
+
121
+ ## Batch Operations
122
+
123
+ ```python
124
+ # Batch search
125
+ job = client.batch_search(
126
+ queries=["python", "javascript", "go"],
127
+ engine="google",
128
+ num_results=5
129
+ )
130
+ print(f"Progress: {job.progress}%")
131
+
132
+ # Batch scrape
133
+ job = client.scrape_batch([
134
+ "https://example.com",
135
+ "https://httpbin.org/html"
136
+ ])
137
+ ```
138
+
139
+ ## Error Handling
140
+
141
+ ```python
142
+ from jiro_sdk import JiroClient, JiroError, AuthenticationError, RateLimitError
143
+
144
+ client = JiroClient(api_key="your-key")
145
+
146
+ try:
147
+ results = client.search("test")
148
+ except AuthenticationError:
149
+ print("Invalid API key")
150
+ except RateLimitError:
151
+ print("Rate limit exceeded, please wait")
152
+ except JiroError as e:
153
+ print(f"Error: {e}")
154
+ ```
155
+
156
+ ## Configuration
157
+
158
+ ```python
159
+ client = JiroClient(
160
+ api_key="your-api-key", # Optional: API key
161
+ base_url="http://localhost:8000", # Server URL
162
+ timeout=30.0 # Request timeout
163
+ )
164
+
165
+ # Get system status
166
+ status = client.status()
167
+
168
+ # Get usage statistics
169
+ usage = client.usage(days=30)
170
+
171
+ # List plugins
172
+ plugins = client.plugins()
173
+ ```
174
+
175
+ ## Context Manager
176
+
177
+ ```python
178
+ with JiroClient(api_key="your-key") as client:
179
+ results = client.search("test")
180
+ # Client is automatically closed
181
+ ```
182
+
183
+ ## License
184
+
185
+ MIT License
@@ -0,0 +1,7 @@
1
+ README.md
2
+ setup.py
3
+ jiro_sdk.egg-info/PKG-INFO
4
+ jiro_sdk.egg-info/SOURCES.txt
5
+ jiro_sdk.egg-info/dependency_links.txt
6
+ jiro_sdk.egg-info/requires.txt
7
+ jiro_sdk.egg-info/top_level.txt
@@ -0,0 +1,14 @@
1
+ httpx>=0.24.0
2
+
3
+ [async]
4
+ httpx[http2]>=0.24.0
5
+
6
+ [dev]
7
+ pytest>=7.0
8
+ pytest-asyncio>=0.21
9
+ pytest-cov>=4.0
10
+ mypy>=1.0
11
+ ruff>=0.1.0
12
+
13
+ [websocket]
14
+ websocket-client>=1.6.0
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,44 @@
1
+ from setuptools import setup, find_packages
2
+
3
+ setup(
4
+ name="jiro-sdk",
5
+ version="0.2.15",
6
+ description="Official Python SDK for Jiro Search API",
7
+ long_description=open("README.md").read(),
8
+ long_description_content_type="text/markdown",
9
+ author="Jiro Team",
10
+ author_email="webcrafterreal@gmail.com",
11
+ url="https://github.com/DevAnimecx/jiro",
12
+ packages=find_packages(),
13
+ python_requires=">=3.8",
14
+ install_requires=[
15
+ "httpx>=0.24.0",
16
+ ],
17
+ extras_require={
18
+ "websocket": ["websocket-client>=1.6.0"],
19
+ "async": ["httpx[http2]>=0.24.0"],
20
+ "dev": [
21
+ "pytest>=7.0",
22
+ "pytest-asyncio>=0.21",
23
+ "pytest-cov>=4.0",
24
+ "mypy>=1.0",
25
+ "ruff>=0.1.0",
26
+ ],
27
+ },
28
+ classifiers=[
29
+ "Development Status :: 5 - Production/Stable",
30
+ "Intended Audience :: Developers",
31
+ "License :: OSI Approved :: MIT License",
32
+ "Programming Language :: Python :: 3",
33
+ "Programming Language :: Python :: 3.8",
34
+ "Programming Language :: Python :: 3.9",
35
+ "Programming Language :: Python :: 3.10",
36
+ "Programming Language :: Python :: 3.11",
37
+ "Programming Language :: Python :: 3.12",
38
+ "Programming Language :: Python :: 3.13",
39
+ "Programming Language :: Python :: 3.14",
40
+ "Topic :: Software Development :: Libraries :: Python Modules",
41
+ ],
42
+ keywords="jiro search api web scraping sdk",
43
+ license="MIT",
44
+ )