anysite-cli 0.1.0__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.
Potentially problematic release.
This version of anysite-cli might be problematic. Click here for more details.
- anysite/__init__.py +4 -0
- anysite/__main__.py +6 -0
- anysite/api/__init__.py +21 -0
- anysite/api/client.py +271 -0
- anysite/api/errors.py +137 -0
- anysite/api/schemas.py +333 -0
- anysite/batch/__init__.py +1 -0
- anysite/batch/executor.py +176 -0
- anysite/batch/input.py +160 -0
- anysite/batch/rate_limiter.py +98 -0
- anysite/cli/__init__.py +1 -0
- anysite/cli/config.py +176 -0
- anysite/cli/executor.py +388 -0
- anysite/cli/options.py +249 -0
- anysite/config/__init__.py +11 -0
- anysite/config/paths.py +46 -0
- anysite/config/settings.py +187 -0
- anysite/dataset/__init__.py +37 -0
- anysite/dataset/analyzer.py +268 -0
- anysite/dataset/cli.py +644 -0
- anysite/dataset/collector.py +686 -0
- anysite/dataset/db_loader.py +248 -0
- anysite/dataset/errors.py +30 -0
- anysite/dataset/exporters.py +121 -0
- anysite/dataset/history.py +153 -0
- anysite/dataset/models.py +245 -0
- anysite/dataset/notifications.py +87 -0
- anysite/dataset/scheduler.py +107 -0
- anysite/dataset/storage.py +171 -0
- anysite/dataset/transformer.py +213 -0
- anysite/db/__init__.py +38 -0
- anysite/db/adapters/__init__.py +1 -0
- anysite/db/adapters/base.py +158 -0
- anysite/db/adapters/postgres.py +201 -0
- anysite/db/adapters/sqlite.py +183 -0
- anysite/db/cli.py +687 -0
- anysite/db/config.py +92 -0
- anysite/db/manager.py +166 -0
- anysite/db/operations/__init__.py +1 -0
- anysite/db/operations/insert.py +199 -0
- anysite/db/operations/query.py +43 -0
- anysite/db/schema/__init__.py +1 -0
- anysite/db/schema/inference.py +213 -0
- anysite/db/schema/types.py +71 -0
- anysite/db/utils/__init__.py +1 -0
- anysite/db/utils/sanitize.py +99 -0
- anysite/main.py +498 -0
- anysite/models/__init__.py +1 -0
- anysite/output/__init__.py +11 -0
- anysite/output/console.py +45 -0
- anysite/output/formatters.py +301 -0
- anysite/output/templates.py +76 -0
- anysite/py.typed +0 -0
- anysite/streaming/__init__.py +1 -0
- anysite/streaming/progress.py +121 -0
- anysite/streaming/writer.py +130 -0
- anysite/utils/__init__.py +1 -0
- anysite/utils/fields.py +242 -0
- anysite/utils/retry.py +109 -0
- anysite_cli-0.1.0.dist-info/METADATA +437 -0
- anysite_cli-0.1.0.dist-info/RECORD +64 -0
- anysite_cli-0.1.0.dist-info/WHEEL +4 -0
- anysite_cli-0.1.0.dist-info/entry_points.txt +2 -0
- anysite_cli-0.1.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: anysite-cli
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: CLI for Anysite API - web data extraction for humans and AI agents
|
|
5
|
+
Project-URL: Homepage, https://anysite.io
|
|
6
|
+
Project-URL: Documentation, https://docs.anysite.io/cli
|
|
7
|
+
Project-URL: Repository, https://github.com/anysiteio/anysite-cli
|
|
8
|
+
Project-URL: Issues, https://github.com/anysiteio/anysite-cli/issues
|
|
9
|
+
Author-email: Anysite Team <support@anysite.io>
|
|
10
|
+
License-Expression: MIT
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Keywords: api,cli,instagram,linkedin,scraping,twitter
|
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
|
14
|
+
Classifier: Environment :: Console
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
23
|
+
Classifier: Topic :: Internet :: WWW/HTTP
|
|
24
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
25
|
+
Classifier: Topic :: Utilities
|
|
26
|
+
Requires-Python: >=3.11
|
|
27
|
+
Requires-Dist: httpx>=0.25.0
|
|
28
|
+
Requires-Dist: orjson>=3.9.0
|
|
29
|
+
Requires-Dist: pydantic-settings>=2.0.0
|
|
30
|
+
Requires-Dist: pydantic>=2.0.0
|
|
31
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
32
|
+
Requires-Dist: pyyaml>=6.0.0
|
|
33
|
+
Requires-Dist: rich>=13.0.0
|
|
34
|
+
Requires-Dist: tabulate>=0.9.0
|
|
35
|
+
Requires-Dist: typer[all]>=0.9.0
|
|
36
|
+
Provides-Extra: data
|
|
37
|
+
Requires-Dist: duckdb>=1.0.0; extra == 'data'
|
|
38
|
+
Requires-Dist: httpx>=0.25.0; extra == 'data'
|
|
39
|
+
Requires-Dist: pyarrow>=15.0.0; extra == 'data'
|
|
40
|
+
Provides-Extra: db
|
|
41
|
+
Requires-Dist: psycopg[binary]>=3.1.0; extra == 'db'
|
|
42
|
+
Requires-Dist: pymysql>=1.1.0; extra == 'db'
|
|
43
|
+
Provides-Extra: dev
|
|
44
|
+
Requires-Dist: mypy>=1.5.0; extra == 'dev'
|
|
45
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
|
|
46
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
|
|
47
|
+
Requires-Dist: pytest>=7.4.0; extra == 'dev'
|
|
48
|
+
Requires-Dist: respx>=0.20.0; extra == 'dev'
|
|
49
|
+
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
50
|
+
Requires-Dist: types-pyyaml>=6.0.0; extra == 'dev'
|
|
51
|
+
Requires-Dist: types-tabulate>=0.9.0; extra == 'dev'
|
|
52
|
+
Provides-Extra: mysql
|
|
53
|
+
Requires-Dist: pymysql>=1.1.0; extra == 'mysql'
|
|
54
|
+
Provides-Extra: postgres
|
|
55
|
+
Requires-Dist: psycopg[binary]>=3.1.0; extra == 'postgres'
|
|
56
|
+
Description-Content-Type: text/markdown
|
|
57
|
+
|
|
58
|
+
# Anysite CLI
|
|
59
|
+
|
|
60
|
+
Web data extraction for humans and AI agents.
|
|
61
|
+
|
|
62
|
+
## Installation
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
pip install anysite-cli
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Or install from source:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
git clone https://github.com/anysiteio/anysite-cli.git
|
|
72
|
+
cd anysite-cli
|
|
73
|
+
pip install -e .
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Quick Start
|
|
77
|
+
|
|
78
|
+
### 1. Configure your API key
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
anysite config set api_key sk-xxxxx
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Or set environment variable:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
export ANYSITE_API_KEY=sk-xxxxx
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### 2. Update the schema cache
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
anysite schema update
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 3. Make your first request
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
anysite api /api/linkedin/user user=satyanadella
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## The `api` Command
|
|
103
|
+
|
|
104
|
+
A single universal command for calling any API endpoint:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
anysite api <endpoint> [key=value ...] [OPTIONS]
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Parameters are passed as `key=value` pairs. Types are auto-converted using the schema cache.
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# LinkedIn
|
|
114
|
+
anysite api /api/linkedin/user user=satyanadella
|
|
115
|
+
anysite api /api/linkedin/company company=anthropic
|
|
116
|
+
anysite api /api/linkedin/search/users title=CTO count=50 --format csv
|
|
117
|
+
|
|
118
|
+
# Instagram
|
|
119
|
+
anysite api /api/instagram/user user=cristiano
|
|
120
|
+
anysite api /api/instagram/user/posts user=nike count=20
|
|
121
|
+
|
|
122
|
+
# Twitter/X
|
|
123
|
+
anysite api /api/twitter/user user=elonmusk --format table
|
|
124
|
+
|
|
125
|
+
# Web parsing
|
|
126
|
+
anysite api /api/web/parse url=https://example.com
|
|
127
|
+
|
|
128
|
+
# Y Combinator
|
|
129
|
+
anysite api /api/yc/company company=anthropic
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Endpoint Discovery
|
|
133
|
+
|
|
134
|
+
Browse and search all available API endpoints:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
# List all endpoints
|
|
138
|
+
anysite describe
|
|
139
|
+
|
|
140
|
+
# Describe a specific endpoint (input params + output fields)
|
|
141
|
+
anysite describe /api/linkedin/company
|
|
142
|
+
anysite describe linkedin.user
|
|
143
|
+
|
|
144
|
+
# Search by keyword
|
|
145
|
+
anysite describe --search "company"
|
|
146
|
+
|
|
147
|
+
# JSON output for scripts/agents
|
|
148
|
+
anysite describe --json -q
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Output Formats
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
--format json # Default: Pretty JSON
|
|
155
|
+
--format jsonl # Newline-delimited JSON (for streaming)
|
|
156
|
+
--format csv # CSV with headers
|
|
157
|
+
--format table # Rich table for terminal
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Field Selection
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
# Include specific fields (dot notation and wildcards supported)
|
|
164
|
+
anysite api /api/linkedin/user user=satyanadella --fields "name,headline,follower_count"
|
|
165
|
+
|
|
166
|
+
# Exclude fields
|
|
167
|
+
anysite api /api/linkedin/user user=satyanadella --exclude "certifications,recommendations"
|
|
168
|
+
|
|
169
|
+
# Compact JSON
|
|
170
|
+
anysite api /api/linkedin/user user=satyanadella --compact
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Built-in field presets: `minimal`, `contact`, `recruiting`.
|
|
174
|
+
|
|
175
|
+
## Save to File
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
anysite api /api/linkedin/search/users title=CTO count=100 --output ctos.json
|
|
179
|
+
anysite api /api/linkedin/search/users title=CTO count=100 --output ctos.csv --format csv
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Pipe to jq
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
anysite api /api/linkedin/user user=satyanadella -q | jq '.follower_count'
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Batch Processing
|
|
189
|
+
|
|
190
|
+
Process multiple inputs from a file or stdin:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
# From a text file (one value per line)
|
|
194
|
+
anysite api /api/linkedin/user --from-file users.txt --input-key user
|
|
195
|
+
|
|
196
|
+
# From JSONL (one JSON object per line)
|
|
197
|
+
anysite api /api/linkedin/user --from-file users.jsonl
|
|
198
|
+
|
|
199
|
+
# From stdin
|
|
200
|
+
cat users.txt | anysite api /api/linkedin/user --stdin --input-key user
|
|
201
|
+
|
|
202
|
+
# Parallel execution
|
|
203
|
+
anysite api /api/linkedin/user --from-file users.txt --input-key user --parallel 5
|
|
204
|
+
|
|
205
|
+
# Rate limiting
|
|
206
|
+
anysite api /api/linkedin/user --from-file users.txt --input-key user --rate-limit "10/s"
|
|
207
|
+
|
|
208
|
+
# Error handling
|
|
209
|
+
anysite api /api/linkedin/user --from-file users.txt --input-key user --on-error skip
|
|
210
|
+
|
|
211
|
+
# Progress bar and stats
|
|
212
|
+
anysite api /api/linkedin/user --from-file users.txt --input-key user --progress --stats
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Input file formats: plain text (one value per line), JSONL, CSV.
|
|
216
|
+
|
|
217
|
+
## Dataset Pipelines
|
|
218
|
+
|
|
219
|
+
Collect multi-source datasets with dependency chains, store as Parquet, query with DuckDB, and load into a relational database. Includes per-source transforms, file/webhook exports, run history, scheduling, and webhook notifications.
|
|
220
|
+
|
|
221
|
+
### Create a dataset
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
anysite dataset init my-dataset
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
Edit `my-dataset/dataset.yaml` to define sources:
|
|
228
|
+
|
|
229
|
+
```yaml
|
|
230
|
+
name: my-dataset
|
|
231
|
+
sources:
|
|
232
|
+
- id: companies
|
|
233
|
+
endpoint: /api/linkedin/company
|
|
234
|
+
from_file: companies.txt
|
|
235
|
+
input_key: company
|
|
236
|
+
transform: # Post-collection transform (for exports)
|
|
237
|
+
filter: '.employee_count > 10'
|
|
238
|
+
fields: [name, url, employee_count]
|
|
239
|
+
add_columns:
|
|
240
|
+
batch: "q1-2026"
|
|
241
|
+
export: # Export to file/webhook after Parquet write
|
|
242
|
+
- type: file
|
|
243
|
+
path: ./output/companies-{{date}}.csv
|
|
244
|
+
format: csv
|
|
245
|
+
db_load:
|
|
246
|
+
fields: [name, url, employee_count]
|
|
247
|
+
|
|
248
|
+
- id: employees
|
|
249
|
+
endpoint: /api/linkedin/company/employees
|
|
250
|
+
dependency:
|
|
251
|
+
from_source: companies
|
|
252
|
+
field: urn.value
|
|
253
|
+
input_key: companies
|
|
254
|
+
input_template:
|
|
255
|
+
companies:
|
|
256
|
+
- type: company
|
|
257
|
+
value: "{value}"
|
|
258
|
+
count: 5
|
|
259
|
+
db_load:
|
|
260
|
+
fields: [name, url, headline]
|
|
261
|
+
|
|
262
|
+
storage:
|
|
263
|
+
format: parquet
|
|
264
|
+
path: ./data/
|
|
265
|
+
|
|
266
|
+
schedule:
|
|
267
|
+
cron: "0 9 * * *" # Daily at 9 AM
|
|
268
|
+
|
|
269
|
+
notifications:
|
|
270
|
+
on_complete:
|
|
271
|
+
- url: "https://hooks.slack.com/xxx"
|
|
272
|
+
on_failure:
|
|
273
|
+
- url: "https://alerts.example.com/fail"
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### Collect, query, and load
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
# Preview collection plan
|
|
280
|
+
anysite dataset collect dataset.yaml --dry-run
|
|
281
|
+
|
|
282
|
+
# Collect data (supports --incremental to skip already-collected inputs)
|
|
283
|
+
anysite dataset collect dataset.yaml
|
|
284
|
+
|
|
285
|
+
# Collect and auto-load into PostgreSQL
|
|
286
|
+
anysite dataset collect dataset.yaml --load-db pg
|
|
287
|
+
|
|
288
|
+
# Check status
|
|
289
|
+
anysite dataset status dataset.yaml
|
|
290
|
+
|
|
291
|
+
# Query with SQL (DuckDB)
|
|
292
|
+
anysite dataset query dataset.yaml --sql "SELECT * FROM companies LIMIT 10"
|
|
293
|
+
|
|
294
|
+
# Query with dot-notation field extraction
|
|
295
|
+
anysite dataset query dataset.yaml --source profiles --fields "name, urn.value AS urn_id"
|
|
296
|
+
|
|
297
|
+
# Interactive SQL shell
|
|
298
|
+
anysite dataset query dataset.yaml --interactive
|
|
299
|
+
|
|
300
|
+
# Column stats and data profiling
|
|
301
|
+
anysite dataset stats dataset.yaml --source companies
|
|
302
|
+
anysite dataset profile dataset.yaml
|
|
303
|
+
|
|
304
|
+
# Load into PostgreSQL with automatic FK linking
|
|
305
|
+
anysite dataset load-db dataset.yaml -c pg --drop-existing
|
|
306
|
+
|
|
307
|
+
# Run history and logs
|
|
308
|
+
anysite dataset history my-dataset
|
|
309
|
+
anysite dataset logs my-dataset --run 42
|
|
310
|
+
|
|
311
|
+
# Generate cron/systemd schedule
|
|
312
|
+
anysite dataset schedule dataset.yaml --incremental --load-db pg
|
|
313
|
+
|
|
314
|
+
# Reset incremental state
|
|
315
|
+
anysite dataset reset-cursor dataset.yaml
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
## Database
|
|
319
|
+
|
|
320
|
+
Manage database connections and run queries.
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
# Add a connection
|
|
324
|
+
anysite db add pg
|
|
325
|
+
|
|
326
|
+
# List and test connections
|
|
327
|
+
anysite db list
|
|
328
|
+
anysite db test pg
|
|
329
|
+
|
|
330
|
+
# Query
|
|
331
|
+
anysite db query pg --sql "SELECT * FROM companies" --format table
|
|
332
|
+
|
|
333
|
+
# Insert data (auto-create table from schema inference)
|
|
334
|
+
cat data.jsonl | anysite db insert pg --table users --stdin --auto-create
|
|
335
|
+
|
|
336
|
+
# Upsert with conflict handling
|
|
337
|
+
cat updates.jsonl | anysite db upsert pg --table users --conflict-columns id --stdin
|
|
338
|
+
|
|
339
|
+
# Inspect schema
|
|
340
|
+
anysite db schema pg --table users
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
Supports SQLite and PostgreSQL. Passwords stored as env var references.
|
|
344
|
+
|
|
345
|
+
## Configuration
|
|
346
|
+
|
|
347
|
+
Configuration is stored in `~/.anysite/config.yaml`.
|
|
348
|
+
|
|
349
|
+
```bash
|
|
350
|
+
# Set a value
|
|
351
|
+
anysite config set api_key sk-xxxxx
|
|
352
|
+
anysite config set defaults.format table
|
|
353
|
+
|
|
354
|
+
# Get a value
|
|
355
|
+
anysite config get api_key
|
|
356
|
+
|
|
357
|
+
# List all settings
|
|
358
|
+
anysite config list
|
|
359
|
+
|
|
360
|
+
# Show config file path
|
|
361
|
+
anysite config path
|
|
362
|
+
|
|
363
|
+
# Initialize interactively
|
|
364
|
+
anysite config init
|
|
365
|
+
|
|
366
|
+
# Reset to defaults
|
|
367
|
+
anysite config reset --force
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### Configuration Priority
|
|
371
|
+
|
|
372
|
+
1. CLI arguments (`--api-key`)
|
|
373
|
+
2. Environment variables (`ANYSITE_API_KEY`)
|
|
374
|
+
3. Config file (`~/.anysite/config.yaml`)
|
|
375
|
+
4. Defaults
|
|
376
|
+
|
|
377
|
+
## Global Options
|
|
378
|
+
|
|
379
|
+
```bash
|
|
380
|
+
anysite [OPTIONS] COMMAND
|
|
381
|
+
|
|
382
|
+
Options:
|
|
383
|
+
--api-key TEXT API key (or set ANYSITE_API_KEY)
|
|
384
|
+
--base-url TEXT API base URL
|
|
385
|
+
--debug Enable debug output
|
|
386
|
+
--no-color Disable colored output
|
|
387
|
+
--version, -v Show version
|
|
388
|
+
--help Show help
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
## Claude Code Skill
|
|
392
|
+
|
|
393
|
+
Install the anysite-cli skill for Claude Code to get AI-assisted data collection:
|
|
394
|
+
|
|
395
|
+
```bash
|
|
396
|
+
# Add marketplace
|
|
397
|
+
/plugin marketplace add https://github.com/anysiteio/agent-skills
|
|
398
|
+
|
|
399
|
+
# Install skill
|
|
400
|
+
/plugin install anysite-cli@anysite-skills
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
The skill gives Claude Code knowledge of all anysite commands, dataset pipeline configuration, and database operations.
|
|
404
|
+
|
|
405
|
+
## Development
|
|
406
|
+
|
|
407
|
+
### Setup
|
|
408
|
+
|
|
409
|
+
```bash
|
|
410
|
+
git clone https://github.com/anysiteio/anysite-cli.git
|
|
411
|
+
cd anysite-cli
|
|
412
|
+
python -m venv .venv
|
|
413
|
+
source .venv/bin/activate
|
|
414
|
+
pip install -e ".[dev]"
|
|
415
|
+
|
|
416
|
+
# With dataset + database support
|
|
417
|
+
pip install -e ".[dev,data]"
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
### Run Tests
|
|
421
|
+
|
|
422
|
+
```bash
|
|
423
|
+
pytest
|
|
424
|
+
pytest --cov=anysite --cov-report=term-missing
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
### Linting
|
|
428
|
+
|
|
429
|
+
```bash
|
|
430
|
+
ruff check src/
|
|
431
|
+
ruff format src/
|
|
432
|
+
mypy src/
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
## License
|
|
436
|
+
|
|
437
|
+
MIT
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
anysite/__init__.py,sha256=ItGZgmlGhc78lMia9zzkLrqD7q79bLQU-AbDlTh0ztY,114
|
|
2
|
+
anysite/__main__.py,sha256=bV_uwkbsAqegw5OcaKtqhGlQtbbrLqtQhPZRkwAe5TI,138
|
|
3
|
+
anysite/main.py,sha256=7-mlLVDXhZQTqEgkNGiEBecmdyqFa8ceXY-Xu3HT8Xs,15365
|
|
4
|
+
anysite/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
+
anysite/api/__init__.py,sha256=a6qGQ9tPaxFZhL2_2dls8odG7m87pOg9JoUTYUt8lyI,394
|
|
6
|
+
anysite/api/client.py,sha256=cyITTgO0rSsuRJROXQC2Q7LB8rVaLeSxGoY888BUZU0,8663
|
|
7
|
+
anysite/api/errors.py,sha256=IjVdCuW812NZ0vxFdFN0y8bDrtITU8kEvwb1fktXQIY,4382
|
|
8
|
+
anysite/api/schemas.py,sha256=4zhOkOTrvHDmYcifvNrcK3I05Dz-q_NfntGOooehVak,10135
|
|
9
|
+
anysite/batch/__init__.py,sha256=DRtia5dfYGsLPKwBUi6X_NgtJbDBKMr90qiOu3SEuSI,32
|
|
10
|
+
anysite/batch/executor.py,sha256=BbW4UWJpSefE3FcKSifsLfFflddsuq2uUj1ZxszLrHM,5891
|
|
11
|
+
anysite/batch/input.py,sha256=zvKhUAljPQzT_hRR4qChTKLER3tUfXpIiMlwrk0su-s,4751
|
|
12
|
+
anysite/batch/rate_limiter.py,sha256=hZvX8l0HD7PGJiaK2rCzXiphm9ZmVYWzkrqokNC1ua4,3008
|
|
13
|
+
anysite/cli/__init__.py,sha256=gQ6tnU0Rvm0-ESWFUBU-KDl5dpNOpUTG509hXOQQjwY,27
|
|
14
|
+
anysite/cli/config.py,sha256=AL7e_cFzzjcgm-nHA4GS4ZlDKa6LW_Qbn1cdomI5Xi0,4746
|
|
15
|
+
anysite/cli/executor.py,sha256=zA8j2-dxiSmicyINKhm5PbuAcX6q31rh8u__NqZiVBU,11892
|
|
16
|
+
anysite/cli/options.py,sha256=wZJXxfsispUR7WSSFDX3d0hRiZJbt5woAUl9U6XKxKM,4995
|
|
17
|
+
anysite/config/__init__.py,sha256=owepoMLgaR0bvfguZkwis7dEpY82XvvxciP3wWZkVfs,249
|
|
18
|
+
anysite/config/paths.py,sha256=EmHJD8wlf4Q9IUn8Gp1JQ8Z3ffrIYAt5iHRyImQOf5I,1087
|
|
19
|
+
anysite/config/settings.py,sha256=Hc0j_aCCtkJeL4nHw-EFyfJ8WEDk57G08iNUFquUhpM,5235
|
|
20
|
+
anysite/dataset/__init__.py,sha256=J0sKQkGwVOPtvp6pka7LcdeUEADvjWRs71yRuROzJxI,847
|
|
21
|
+
anysite/dataset/analyzer.py,sha256=8dsPW32SbSaUTy1F0NIed1U45wjiMgQeJ2iWX7hBxRQ,9245
|
|
22
|
+
anysite/dataset/cli.py,sha256=elBpp7XEmMcWBdyjkeDOi1730bCxVM77D0aVcmM9A0s,19423
|
|
23
|
+
anysite/dataset/collector.py,sha256=GGzkkvNETcdgeyIV_6YNthDY2SHtDhl-U8YsXeeOuFo,23350
|
|
24
|
+
anysite/dataset/db_loader.py,sha256=nlMJrDJiGBX5H1StcjsontSxLXbsFe4rwOEnDehzpk8,8443
|
|
25
|
+
anysite/dataset/errors.py,sha256=r8cZXoIzSeTGCWpeYjntnN0AduCu74YZyWs3sFu17J4,914
|
|
26
|
+
anysite/dataset/exporters.py,sha256=mA2FYbYJbHfrwkXbHDu4g5qPG_JJKnkVciXFKPkF1Vw,3708
|
|
27
|
+
anysite/dataset/history.py,sha256=avFs0ADlM7Hr-ttqC1FfjJiQxvQP20sScM7ZoY4lvU0,5471
|
|
28
|
+
anysite/dataset/models.py,sha256=YzpXmkmcyy_-BUxnYWrZMidpii75DbbZHBMTkw8Y1qo,9516
|
|
29
|
+
anysite/dataset/notifications.py,sha256=ORzo9XOgOxzLb7rk4pevlKPB_Taf-jejlrtmO4Zgl2c,2367
|
|
30
|
+
anysite/dataset/scheduler.py,sha256=zpbA5tRUQZXr-9lZnG58dvE3E7ZBlAd-U-PTXExe9f0,3339
|
|
31
|
+
anysite/dataset/storage.py,sha256=d03goKLI5NWKJowHwCgGqQkcVTO1NctPxMu-Xu-tru4,5326
|
|
32
|
+
anysite/dataset/transformer.py,sha256=XBI4MiZ_F_IZdootV0GAePaM9-pUadIte7RABbjBipc,6843
|
|
33
|
+
anysite/db/__init__.py,sha256=xGGZHlMt5FUZjI6MAmf2VfyNLypOeXwrRL-gmuTsyl4,1117
|
|
34
|
+
anysite/db/cli.py,sha256=iaDXcAsQG5ycnpzZnVIg_f4z1xR5_elylNOxqyNwEw4,21273
|
|
35
|
+
anysite/db/config.py,sha256=kNm1AZi-ixtBH6PkfeeCTmOU1z0qA0NC8XtuJepAVx4,2915
|
|
36
|
+
anysite/db/manager.py,sha256=RfUzdtvzCGOPc2XUZI0J64p-bHfnFuh69R7Rh4aspt0,4883
|
|
37
|
+
anysite/db/adapters/__init__.py,sha256=eehE1LvO89_4z1lAxSNBKfflKQyZ-ml5NQypfkylJPU,25
|
|
38
|
+
anysite/db/adapters/base.py,sha256=Scdz92jKoOMrH6gbHJlVcqvTWdZHo-qHlh0Ag-pXryw,4399
|
|
39
|
+
anysite/db/adapters/postgres.py,sha256=f90ePeu-yRTDv13XnRoB8eHVSYczPS4Xi18StnyPuK8,7370
|
|
40
|
+
anysite/db/adapters/sqlite.py,sha256=wCvT_RxNTdqbP158wlTRR09JnioBNBuFuep9KJFgu20,6504
|
|
41
|
+
anysite/db/operations/__init__.py,sha256=Egb5cdNI1EG1gSEbZoLoWyrr-hfv6OTfze6iErN1HsI,27
|
|
42
|
+
anysite/db/operations/insert.py,sha256=pvFJfg_3Jd3HfHM3yf9BUIN5aP554R-MTJzOk4p-jsI,6002
|
|
43
|
+
anysite/db/operations/query.py,sha256=fIDiMwARcqnsNals2Rx-uVlfgG7-GiBo-Z5h_s8EsQo,970
|
|
44
|
+
anysite/db/schema/__init__.py,sha256=2DWhJvBirm6Ja0fpNNJ2PgT8hPD3GiyAwh2ZSSPEjDs,44
|
|
45
|
+
anysite/db/schema/inference.py,sha256=EbMDvql1J3AEmiQ02Ggeot9u14plOaPWWyIVkPU3yQ8,5547
|
|
46
|
+
anysite/db/schema/types.py,sha256=GM6ZPwGQsIAXjJ0T58udaPpmopbBWDK9dTJqYtt_2K8,1726
|
|
47
|
+
anysite/db/utils/__init__.py,sha256=Hx37C9Fh5Ll9liyhulensC9gFCPRUtdMa10evkHDmdE,34
|
|
48
|
+
anysite/db/utils/sanitize.py,sha256=1vZotDpyHHL6QYs-j4c2EwyjxoiIW7czUR2zJ1cbJQ4,3202
|
|
49
|
+
anysite/models/__init__.py,sha256=Olg44Lfn1NJZ590xdEv7rZrS47PxSUnCXo9pOnSJm1s,41
|
|
50
|
+
anysite/output/__init__.py,sha256=jZsE3KV3ba55Px2m2RKNyla0vq0mvoOaeEi3Wf9_Mjc,249
|
|
51
|
+
anysite/output/console.py,sha256=98ngpa7Uu2Eiud7bsDwj3Jc7WcLac5ASXyPt3N7Z18Q,952
|
|
52
|
+
anysite/output/formatters.py,sha256=L-JfRghMf-fBf81dPs12xlEPMv2uiVPnSVmg0_YvCE4,9033
|
|
53
|
+
anysite/output/templates.py,sha256=1VIgrGLie7707BsbspPZPs9osgbK83V1UJsKiWe-w4w,2402
|
|
54
|
+
anysite/streaming/__init__.py,sha256=C42tKqI7rGtTMNz1qU80mlUs13vYT7uBSB_h1OS0Yhc,32
|
|
55
|
+
anysite/streaming/progress.py,sha256=ZU-G1KXU9gaIgiGIem3_m8umqc0wTok0Vyc9sit8wFI,3302
|
|
56
|
+
anysite/streaming/writer.py,sha256=HfMsC4umUdJuNIAPK57YAxEGyTwUmy-zNrqFkwY6aew,4106
|
|
57
|
+
anysite/utils/__init__.py,sha256=7SnbxpxKENK-2ecUL5NfnZ9okGI7COKYw4WF46172HM,23
|
|
58
|
+
anysite/utils/fields.py,sha256=bSrHadzNmabL4qubqhXXZoWb_P8KA-3S7_FLVT8nGBc,7410
|
|
59
|
+
anysite/utils/retry.py,sha256=89TbXvavi5t22P2mTYCLAS6SSZoW65gQ0nnYNbYAF0M,2684
|
|
60
|
+
anysite_cli-0.1.0.dist-info/METADATA,sha256=HGFzj0aEg42JXiZ3eAlPAfVjealzYekSC3rNhO3fjQ8,10777
|
|
61
|
+
anysite_cli-0.1.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
62
|
+
anysite_cli-0.1.0.dist-info/entry_points.txt,sha256=FDPxNasy0fRRcOgJdZRVP7Qw01C3TwRa1OwPJiskNyg,45
|
|
63
|
+
anysite_cli-0.1.0.dist-info/licenses/LICENSE,sha256=gVAxkI23CFm4x4HV_fkQYw_bGq93mQmVZEwxNs-YTa4,1069
|
|
64
|
+
anysite_cli-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Anysite Team
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|