anysite-cli 0.1.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.

Potentially problematic release.


This version of anysite-cli might be problematic. Click here for more details.

Files changed (64) hide show
  1. anysite/__init__.py +4 -0
  2. anysite/__main__.py +6 -0
  3. anysite/api/__init__.py +21 -0
  4. anysite/api/client.py +271 -0
  5. anysite/api/errors.py +137 -0
  6. anysite/api/schemas.py +333 -0
  7. anysite/batch/__init__.py +1 -0
  8. anysite/batch/executor.py +176 -0
  9. anysite/batch/input.py +160 -0
  10. anysite/batch/rate_limiter.py +98 -0
  11. anysite/cli/__init__.py +1 -0
  12. anysite/cli/config.py +176 -0
  13. anysite/cli/executor.py +388 -0
  14. anysite/cli/options.py +249 -0
  15. anysite/config/__init__.py +11 -0
  16. anysite/config/paths.py +46 -0
  17. anysite/config/settings.py +187 -0
  18. anysite/dataset/__init__.py +37 -0
  19. anysite/dataset/analyzer.py +268 -0
  20. anysite/dataset/cli.py +644 -0
  21. anysite/dataset/collector.py +686 -0
  22. anysite/dataset/db_loader.py +248 -0
  23. anysite/dataset/errors.py +30 -0
  24. anysite/dataset/exporters.py +121 -0
  25. anysite/dataset/history.py +153 -0
  26. anysite/dataset/models.py +245 -0
  27. anysite/dataset/notifications.py +87 -0
  28. anysite/dataset/scheduler.py +107 -0
  29. anysite/dataset/storage.py +171 -0
  30. anysite/dataset/transformer.py +213 -0
  31. anysite/db/__init__.py +38 -0
  32. anysite/db/adapters/__init__.py +1 -0
  33. anysite/db/adapters/base.py +158 -0
  34. anysite/db/adapters/postgres.py +201 -0
  35. anysite/db/adapters/sqlite.py +183 -0
  36. anysite/db/cli.py +709 -0
  37. anysite/db/config.py +92 -0
  38. anysite/db/manager.py +166 -0
  39. anysite/db/operations/__init__.py +1 -0
  40. anysite/db/operations/insert.py +199 -0
  41. anysite/db/operations/query.py +43 -0
  42. anysite/db/schema/__init__.py +1 -0
  43. anysite/db/schema/inference.py +213 -0
  44. anysite/db/schema/types.py +71 -0
  45. anysite/db/utils/__init__.py +1 -0
  46. anysite/db/utils/sanitize.py +99 -0
  47. anysite/main.py +498 -0
  48. anysite/models/__init__.py +1 -0
  49. anysite/output/__init__.py +11 -0
  50. anysite/output/console.py +45 -0
  51. anysite/output/formatters.py +301 -0
  52. anysite/output/templates.py +76 -0
  53. anysite/py.typed +0 -0
  54. anysite/streaming/__init__.py +1 -0
  55. anysite/streaming/progress.py +121 -0
  56. anysite/streaming/writer.py +130 -0
  57. anysite/utils/__init__.py +1 -0
  58. anysite/utils/fields.py +242 -0
  59. anysite/utils/retry.py +109 -0
  60. anysite_cli-0.1.2.dist-info/METADATA +455 -0
  61. anysite_cli-0.1.2.dist-info/RECORD +64 -0
  62. anysite_cli-0.1.2.dist-info/WHEEL +4 -0
  63. anysite_cli-0.1.2.dist-info/entry_points.txt +2 -0
  64. anysite_cli-0.1.2.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,455 @@
1
+ Metadata-Version: 2.4
2
+ Name: anysite-cli
3
+ Version: 0.1.2
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: all
37
+ Requires-Dist: duckdb>=1.0.0; extra == 'all'
38
+ Requires-Dist: httpx>=0.25.0; extra == 'all'
39
+ Requires-Dist: psycopg[binary]>=3.1.0; extra == 'all'
40
+ Requires-Dist: pyarrow>=15.0.0; extra == 'all'
41
+ Requires-Dist: pymysql>=1.1.0; extra == 'all'
42
+ Provides-Extra: data
43
+ Requires-Dist: duckdb>=1.0.0; extra == 'data'
44
+ Requires-Dist: httpx>=0.25.0; extra == 'data'
45
+ Requires-Dist: pyarrow>=15.0.0; extra == 'data'
46
+ Provides-Extra: db
47
+ Requires-Dist: psycopg[binary]>=3.1.0; extra == 'db'
48
+ Requires-Dist: pymysql>=1.1.0; extra == 'db'
49
+ Provides-Extra: dev
50
+ Requires-Dist: mypy>=1.5.0; extra == 'dev'
51
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
52
+ Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
53
+ Requires-Dist: pytest>=7.4.0; extra == 'dev'
54
+ Requires-Dist: respx>=0.20.0; extra == 'dev'
55
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
56
+ Requires-Dist: types-pyyaml>=6.0.0; extra == 'dev'
57
+ Requires-Dist: types-tabulate>=0.9.0; extra == 'dev'
58
+ Provides-Extra: mysql
59
+ Requires-Dist: pymysql>=1.1.0; extra == 'mysql'
60
+ Provides-Extra: postgres
61
+ Requires-Dist: psycopg[binary]>=3.1.0; extra == 'postgres'
62
+ Description-Content-Type: text/markdown
63
+
64
+ # Anysite CLI
65
+
66
+ Web data extraction for humans and AI agents.
67
+
68
+ ## Installation
69
+
70
+ ```bash
71
+ pip install anysite-cli
72
+ ```
73
+
74
+ Optional extras:
75
+
76
+ ```bash
77
+ pip install "anysite-cli[data]" # DuckDB + PyArrow for dataset pipelines
78
+ pip install "anysite-cli[postgres]" # PostgreSQL support
79
+ pip install "anysite-cli[all]" # All optional dependencies
80
+ ```
81
+
82
+ Or install from source:
83
+
84
+ ```bash
85
+ git clone https://github.com/anysiteio/anysite-cli.git
86
+ cd anysite-cli
87
+ python -m venv .venv
88
+ source .venv/bin/activate
89
+ pip install -e .
90
+ ```
91
+
92
+ ## Quick Start
93
+
94
+ ### 1. Configure your API key
95
+
96
+ ```bash
97
+ anysite config set api_key sk-xxxxx
98
+ ```
99
+
100
+ Or set environment variable:
101
+
102
+ ```bash
103
+ export ANYSITE_API_KEY=sk-xxxxx
104
+ ```
105
+
106
+ ### 2. Update the schema cache
107
+
108
+ ```bash
109
+ anysite schema update
110
+ ```
111
+
112
+ ### 3. Make your first request
113
+
114
+ ```bash
115
+ anysite api /api/linkedin/user user=satyanadella
116
+ ```
117
+
118
+ ## The `api` Command
119
+
120
+ A single universal command for calling any API endpoint:
121
+
122
+ ```bash
123
+ anysite api <endpoint> [key=value ...] [OPTIONS]
124
+ ```
125
+
126
+ Parameters are passed as `key=value` pairs. Types are auto-converted using the schema cache.
127
+
128
+ ```bash
129
+ # LinkedIn
130
+ anysite api /api/linkedin/user user=satyanadella
131
+ anysite api /api/linkedin/company company=anthropic
132
+ anysite api /api/linkedin/search/users title=CTO count=50 --format csv
133
+
134
+ # Instagram
135
+ anysite api /api/instagram/user user=cristiano
136
+ anysite api /api/instagram/user/posts user=nike count=20
137
+
138
+ # Twitter/X
139
+ anysite api /api/twitter/user user=elonmusk --format table
140
+
141
+ # Web parsing
142
+ anysite api /api/web/parse url=https://example.com
143
+
144
+ # Y Combinator
145
+ anysite api /api/yc/company company=anthropic
146
+ ```
147
+
148
+ ## Endpoint Discovery
149
+
150
+ Browse and search all available API endpoints:
151
+
152
+ ```bash
153
+ # List all endpoints
154
+ anysite describe
155
+
156
+ # Describe a specific endpoint (input params + output fields)
157
+ anysite describe /api/linkedin/company
158
+ anysite describe linkedin.user
159
+
160
+ # Search by keyword
161
+ anysite describe --search "company"
162
+
163
+ # JSON output for scripts/agents
164
+ anysite describe --json -q
165
+ ```
166
+
167
+ ## Output Formats
168
+
169
+ ```bash
170
+ --format json # Default: Pretty JSON
171
+ --format jsonl # Newline-delimited JSON (for streaming)
172
+ --format csv # CSV with headers
173
+ --format table # Rich table for terminal
174
+ ```
175
+
176
+ ## Field Selection
177
+
178
+ ```bash
179
+ # Include specific fields (dot notation and wildcards supported)
180
+ anysite api /api/linkedin/user user=satyanadella --fields "name,headline,follower_count"
181
+
182
+ # Exclude fields
183
+ anysite api /api/linkedin/user user=satyanadella --exclude "certifications,recommendations"
184
+
185
+ # Compact JSON
186
+ anysite api /api/linkedin/user user=satyanadella --compact
187
+ ```
188
+
189
+ Built-in field presets: `minimal`, `contact`, `recruiting`.
190
+
191
+ ## Save to File
192
+
193
+ ```bash
194
+ anysite api /api/linkedin/search/users title=CTO count=100 --output ctos.json
195
+ anysite api /api/linkedin/search/users title=CTO count=100 --output ctos.csv --format csv
196
+ ```
197
+
198
+ ## Pipe to jq
199
+
200
+ ```bash
201
+ anysite api /api/linkedin/user user=satyanadella -q | jq '.follower_count'
202
+ ```
203
+
204
+ ## Batch Processing
205
+
206
+ Process multiple inputs from a file or stdin:
207
+
208
+ ```bash
209
+ # From a text file (one value per line)
210
+ anysite api /api/linkedin/user --from-file users.txt --input-key user
211
+
212
+ # From JSONL (one JSON object per line)
213
+ anysite api /api/linkedin/user --from-file users.jsonl
214
+
215
+ # From stdin
216
+ cat users.txt | anysite api /api/linkedin/user --stdin --input-key user
217
+
218
+ # Parallel execution
219
+ anysite api /api/linkedin/user --from-file users.txt --input-key user --parallel 5
220
+
221
+ # Rate limiting
222
+ anysite api /api/linkedin/user --from-file users.txt --input-key user --rate-limit "10/s"
223
+
224
+ # Error handling
225
+ anysite api /api/linkedin/user --from-file users.txt --input-key user --on-error skip
226
+
227
+ # Progress bar and stats
228
+ anysite api /api/linkedin/user --from-file users.txt --input-key user --progress --stats
229
+ ```
230
+
231
+ Input file formats: plain text (one value per line), JSONL, CSV.
232
+
233
+ ## Dataset Pipelines
234
+
235
+ 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.
236
+
237
+ ### Create a dataset
238
+
239
+ ```bash
240
+ anysite dataset init my-dataset
241
+ ```
242
+
243
+ Edit `my-dataset/dataset.yaml` to define sources:
244
+
245
+ ```yaml
246
+ name: my-dataset
247
+ sources:
248
+ - id: companies
249
+ endpoint: /api/linkedin/company
250
+ from_file: companies.txt
251
+ input_key: company
252
+ transform: # Post-collection transform (for exports)
253
+ filter: '.employee_count > 10'
254
+ fields: [name, url, employee_count]
255
+ add_columns:
256
+ batch: "q1-2026"
257
+ export: # Export to file/webhook after Parquet write
258
+ - type: file
259
+ path: ./output/companies-{{date}}.csv
260
+ format: csv
261
+ db_load:
262
+ fields: [name, url, employee_count]
263
+
264
+ - id: employees
265
+ endpoint: /api/linkedin/company/employees
266
+ dependency:
267
+ from_source: companies
268
+ field: urn.value
269
+ input_key: companies
270
+ input_template:
271
+ companies:
272
+ - type: company
273
+ value: "{value}"
274
+ count: 5
275
+ db_load:
276
+ fields: [name, url, headline]
277
+
278
+ storage:
279
+ format: parquet
280
+ path: ./data/
281
+
282
+ schedule:
283
+ cron: "0 9 * * *" # Daily at 9 AM
284
+
285
+ notifications:
286
+ on_complete:
287
+ - url: "https://hooks.slack.com/xxx"
288
+ on_failure:
289
+ - url: "https://alerts.example.com/fail"
290
+ ```
291
+
292
+ ### Collect, query, and load
293
+
294
+ ```bash
295
+ # Preview collection plan
296
+ anysite dataset collect dataset.yaml --dry-run
297
+
298
+ # Collect data (supports --incremental to skip already-collected inputs)
299
+ anysite dataset collect dataset.yaml
300
+
301
+ # Collect and auto-load into PostgreSQL
302
+ anysite dataset collect dataset.yaml --load-db pg
303
+
304
+ # Check status
305
+ anysite dataset status dataset.yaml
306
+
307
+ # Query with SQL (DuckDB)
308
+ anysite dataset query dataset.yaml --sql "SELECT * FROM companies LIMIT 10"
309
+
310
+ # Query with dot-notation field extraction
311
+ anysite dataset query dataset.yaml --source profiles --fields "name, urn.value AS urn_id"
312
+
313
+ # Interactive SQL shell
314
+ anysite dataset query dataset.yaml --interactive
315
+
316
+ # Column stats and data profiling
317
+ anysite dataset stats dataset.yaml --source companies
318
+ anysite dataset profile dataset.yaml
319
+
320
+ # Load into PostgreSQL with automatic FK linking
321
+ anysite dataset load-db dataset.yaml -c pg --drop-existing
322
+
323
+ # Run history and logs
324
+ anysite dataset history my-dataset
325
+ anysite dataset logs my-dataset --run 42
326
+
327
+ # Generate cron/systemd schedule
328
+ anysite dataset schedule dataset.yaml --incremental --load-db pg
329
+
330
+ # Reset incremental state
331
+ anysite dataset reset-cursor dataset.yaml
332
+ ```
333
+
334
+ ## Database
335
+
336
+ Manage database connections and run queries.
337
+
338
+ ```bash
339
+ # Add a connection (--password auto-stores via env var reference)
340
+ anysite db add pg --type postgres --host localhost --database mydb --user app --password secret
341
+ # Or reference an existing env var
342
+ anysite db add pg --type postgres --host localhost --database mydb --user app --password-env PGPASS
343
+
344
+ # List and test connections
345
+ anysite db list
346
+ anysite db test pg
347
+
348
+ # Query
349
+ anysite db query pg --sql "SELECT * FROM companies" --format table
350
+
351
+ # Insert data (auto-create table from schema inference)
352
+ cat data.jsonl | anysite db insert pg --table users --stdin --auto-create
353
+
354
+ # Upsert with conflict handling
355
+ cat updates.jsonl | anysite db upsert pg --table users --conflict-columns id --stdin
356
+
357
+ # Inspect schema
358
+ anysite db schema pg --table users
359
+ ```
360
+
361
+ Supports SQLite and PostgreSQL. Passwords stored as env var references.
362
+
363
+ ## Configuration
364
+
365
+ Configuration is stored in `~/.anysite/config.yaml`.
366
+
367
+ ```bash
368
+ # Set a value
369
+ anysite config set api_key sk-xxxxx
370
+ anysite config set defaults.format table
371
+
372
+ # Get a value
373
+ anysite config get api_key
374
+
375
+ # List all settings
376
+ anysite config list
377
+
378
+ # Show config file path
379
+ anysite config path
380
+
381
+ # Initialize interactively
382
+ anysite config init
383
+
384
+ # Reset to defaults
385
+ anysite config reset --force
386
+ ```
387
+
388
+ ### Configuration Priority
389
+
390
+ 1. CLI arguments (`--api-key`)
391
+ 2. Environment variables (`ANYSITE_API_KEY`)
392
+ 3. Config file (`~/.anysite/config.yaml`)
393
+ 4. Defaults
394
+
395
+ ## Global Options
396
+
397
+ ```bash
398
+ anysite [OPTIONS] COMMAND
399
+
400
+ Options:
401
+ --api-key TEXT API key (or set ANYSITE_API_KEY)
402
+ --base-url TEXT API base URL
403
+ --debug Enable debug output
404
+ --no-color Disable colored output
405
+ --version, -v Show version
406
+ --help Show help
407
+ ```
408
+
409
+ ## Claude Code Skill
410
+
411
+ Install the anysite-cli skill for Claude Code to get AI-assisted data collection:
412
+
413
+ ```bash
414
+ # Add marketplace
415
+ /plugin marketplace add https://github.com/anysiteio/agent-skills
416
+
417
+ # Install skill
418
+ /plugin install anysite-cli@anysite-skills
419
+ ```
420
+
421
+ The skill gives Claude Code knowledge of all anysite commands, dataset pipeline configuration, and database operations.
422
+
423
+ ## Development
424
+
425
+ ### Setup
426
+
427
+ ```bash
428
+ git clone https://github.com/anysiteio/anysite-cli.git
429
+ cd anysite-cli
430
+ python -m venv .venv
431
+ source .venv/bin/activate
432
+ pip install -e ".[dev]"
433
+
434
+ # With dataset + database support
435
+ pip install -e ".[dev,data]"
436
+ ```
437
+
438
+ ### Run Tests
439
+
440
+ ```bash
441
+ pytest
442
+ pytest --cov=anysite --cov-report=term-missing
443
+ ```
444
+
445
+ ### Linting
446
+
447
+ ```bash
448
+ ruff check src/
449
+ ruff format src/
450
+ mypy src/
451
+ ```
452
+
453
+ ## License
454
+
455
+ MIT
@@ -0,0 +1,64 @@
1
+ anysite/__init__.py,sha256=6jyGFhTBVzqP2BEQkOZ8t1aGQIlv5mfTYjIoVYhnohs,114
2
+ anysite/__main__.py,sha256=bV_uwkbsAqegw5OcaKtqhGlQtbbrLqtQhPZRkwAe5TI,138
3
+ anysite/main.py,sha256=wdQCQsplLU3UDV8KbTEg-1DZjpBlCRApKajr5EqF7QE,15364
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=fYuIKWq7eF5mAfZWnXNbtlpITnbYbOFMm2TqU54xIl4,22118
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.2.dist-info/METADATA,sha256=ucMaKonPqQeg6HsoPfVCbmjiVyIZxW5Pb2HElHiAtHo,11576
61
+ anysite_cli-0.1.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
62
+ anysite_cli-0.1.2.dist-info/entry_points.txt,sha256=FDPxNasy0fRRcOgJdZRVP7Qw01C3TwRa1OwPJiskNyg,45
63
+ anysite_cli-0.1.2.dist-info/licenses/LICENSE,sha256=gVAxkI23CFm4x4HV_fkQYw_bGq93mQmVZEwxNs-YTa4,1069
64
+ anysite_cli-0.1.2.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.28.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ anysite = anysite.main:app
@@ -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.