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.
- jiro_sdk-0.2.15/PKG-INFO +185 -0
- jiro_sdk-0.2.15/README.md +138 -0
- jiro_sdk-0.2.15/jiro_sdk.egg-info/PKG-INFO +185 -0
- jiro_sdk-0.2.15/jiro_sdk.egg-info/SOURCES.txt +7 -0
- jiro_sdk-0.2.15/jiro_sdk.egg-info/dependency_links.txt +1 -0
- jiro_sdk-0.2.15/jiro_sdk.egg-info/requires.txt +14 -0
- jiro_sdk-0.2.15/jiro_sdk.egg-info/top_level.txt +1 -0
- jiro_sdk-0.2.15/setup.cfg +4 -0
- jiro_sdk-0.2.15/setup.py +44 -0
jiro_sdk-0.2.15/PKG-INFO
ADDED
|
@@ -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 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
jiro_sdk-0.2.15/setup.py
ADDED
|
@@ -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
|
+
)
|