darknet-toolkit 1.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.
Files changed (108) hide show
  1. dark_net/__init__.py +1316 -0
  2. dark_net/__main__.py +8 -0
  3. dark_net/_version.py +12 -0
  4. dark_net/automation/__init__.py +105 -0
  5. dark_net/automation/clipboard.py +149 -0
  6. dark_net/automation/lockfile.py +213 -0
  7. dark_net/automation/notify.py +107 -0
  8. dark_net/automation/processes.py +442 -0
  9. dark_net/automation/schedule.py +389 -0
  10. dark_net/automation/shell.py +98 -0
  11. dark_net/automation/tasks.py +85 -0
  12. dark_net/automation/watch.py +273 -0
  13. dark_net/cli/__init__.py +8 -0
  14. dark_net/cli/__main__.py +8 -0
  15. dark_net/cli/app.py +1359 -0
  16. dark_net/cli/output.py +125 -0
  17. dark_net/concurrent/__init__.py +84 -0
  18. dark_net/concurrent/asyncio_utils.py +161 -0
  19. dark_net/concurrent/batching.py +113 -0
  20. dark_net/concurrent/parallel.py +278 -0
  21. dark_net/concurrent/pipeline.py +125 -0
  22. dark_net/concurrent/rate_limit.py +276 -0
  23. dark_net/concurrent/resilience.py +177 -0
  24. dark_net/concurrent/sync.py +398 -0
  25. dark_net/concurrent/workers.py +173 -0
  26. dark_net/core/__init__.py +107 -0
  27. dark_net/core/config.py +428 -0
  28. dark_net/core/constants.py +177 -0
  29. dark_net/core/exceptions.py +286 -0
  30. dark_net/core/validators.py +250 -0
  31. dark_net/crypto/__init__.py +148 -0
  32. dark_net/crypto/analysis.py +123 -0
  33. dark_net/crypto/cipher.py +466 -0
  34. dark_net/crypto/encoding.py +372 -0
  35. dark_net/crypto/hashing.py +233 -0
  36. dark_net/crypto/jwt.py +301 -0
  37. dark_net/crypto/kdf.py +207 -0
  38. dark_net/crypto/mac.py +137 -0
  39. dark_net/crypto/randomness.py +93 -0
  40. dark_net/data/__init__.py +79 -0
  41. dark_net/data/collections.py +433 -0
  42. dark_net/data/transform.py +310 -0
  43. dark_net/datetime_utils/__init__.py +63 -0
  44. dark_net/datetime_utils/core.py +616 -0
  45. dark_net/developer/__init__.py +90 -0
  46. dark_net/developer/async_utils.py +143 -0
  47. dark_net/developer/cache.py +350 -0
  48. dark_net/developer/debug.py +233 -0
  49. dark_net/developer/logging.py +333 -0
  50. dark_net/developer/retry.py +281 -0
  51. dark_net/developer/serialization.py +260 -0
  52. dark_net/developer/validation.py +242 -0
  53. dark_net/files/__init__.py +157 -0
  54. dark_net/files/archive.py +311 -0
  55. dark_net/files/backup.py +349 -0
  56. dark_net/files/formats.py +383 -0
  57. dark_net/files/hashing.py +410 -0
  58. dark_net/files/metadata.py +375 -0
  59. dark_net/files/operations.py +582 -0
  60. dark_net/integrations/__init__.py +38 -0
  61. dark_net/integrations/dependency_audit.py +243 -0
  62. dark_net/integrations/packages.py +101 -0
  63. dark_net/main.py +29 -0
  64. dark_net/network/__init__.py +144 -0
  65. dark_net/network/connectivity.py +321 -0
  66. dark_net/network/dns.py +287 -0
  67. dark_net/network/http.py +625 -0
  68. dark_net/network/interfaces.py +214 -0
  69. dark_net/network/ip.py +352 -0
  70. dark_net/network/public_ip.py +177 -0
  71. dark_net/network/urls.py +392 -0
  72. dark_net/py.typed +0 -0
  73. dark_net/security/__init__.py +118 -0
  74. dark_net/security/config_audit.py +366 -0
  75. dark_net/security/hashing.py +234 -0
  76. dark_net/security/integrity.py +163 -0
  77. dark_net/security/passwords.py +359 -0
  78. dark_net/security/redaction.py +255 -0
  79. dark_net/security/tokens.py +440 -0
  80. dark_net/storage/__init__.py +115 -0
  81. dark_net/storage/jsonl.py +490 -0
  82. dark_net/storage/migrations.py +207 -0
  83. dark_net/storage/query.py +498 -0
  84. dark_net/storage/sqlite.py +658 -0
  85. dark_net/storage/tabular.py +253 -0
  86. dark_net/system/__init__.py +97 -0
  87. dark_net/system/diagnostics.py +297 -0
  88. dark_net/system/environment.py +243 -0
  89. dark_net/system/info.py +503 -0
  90. dark_net/system/processes.py +265 -0
  91. dark_net/text/__init__.py +107 -0
  92. dark_net/text/regex_utils.py +201 -0
  93. dark_net/text/statistics.py +507 -0
  94. dark_net/text/transform.py +360 -0
  95. dark_net/utils/__init__.py +57 -0
  96. dark_net/utils/formatting.py +150 -0
  97. dark_net/utils/paths.py +258 -0
  98. dark_net/utils/subprocess_safe.py +176 -0
  99. dark_net/web/__init__.py +71 -0
  100. dark_net/web/client.py +332 -0
  101. dark_net/web/responses.py +323 -0
  102. dark_net/web/urls.py +327 -0
  103. darknet_toolkit-1.1.0.dist-info/METADATA +686 -0
  104. darknet_toolkit-1.1.0.dist-info/RECORD +108 -0
  105. darknet_toolkit-1.1.0.dist-info/WHEEL +5 -0
  106. darknet_toolkit-1.1.0.dist-info/entry_points.txt +2 -0
  107. darknet_toolkit-1.1.0.dist-info/licenses/LICENSE +21 -0
  108. darknet_toolkit-1.1.0.dist-info/top_level.txt +1 -0
dark_net/__init__.py ADDED
@@ -0,0 +1,1316 @@
1
+ """dark_net — an enterprise-grade Python utility framework.
2
+
3
+ ``dark_net`` bundles the utilities most projects end up re-writing into one
4
+ consistent, typed, tested package:
5
+
6
+ * **system** — platform, CPU, memory, disk, processes, environment, diagnostics
7
+ * **network** — IP/DNS/URL validation, SSRF-hardened HTTP, connectivity checks
8
+ * **files** — safe file operations, hashing, formats, archives, backups
9
+ * **security** — hashing, CSPRNG tokens, password strength, redaction, audits
10
+ * **developer** — logging, retries, timers, caching, serialisation, validation
11
+ * **text** — cleaning, slugs, case conversion, statistics, regex helpers
12
+ * **datetime_utils** — parsing, timezones, durations, date arithmetic
13
+ * **web** — URL building, response parsing, JSON API clients
14
+ * **data** — list/dict operations, filtering, grouping, aggregation
15
+ * **cli** — the ``dark-net`` command line interface
16
+ * **crypto** — authenticated encryption, HMAC/HKDF/scrypt, JWT, encodings
17
+ * **storage** — SQLite, JSONL, CSV/TSV, filters, joins, migrations
18
+ * **concurrent** — parallel/process maps, batching, rate limits, pipelines
19
+ * **automation** — processes, cron schedules, file watching, locks, clipboard
20
+
21
+ Every public name is available **flat** from the package root as well as
22
+ from its home module, so ``dark_net.decrypt(...)`` and
23
+ ``dark_net.crypto.decrypt(...)`` are the same function:
24
+
25
+ Quick start
26
+ -----------
27
+ >>> import dark_net
28
+ >>> dark_net.__version__
29
+ '1.1.0'
30
+ >>> from dark_net.network import is_unsafe_target
31
+ >>> is_unsafe_target("169.254.169.254")
32
+ True
33
+ >>> round(dark_net.shannon_entropy(b"ab"), 1)
34
+ 1.0
35
+
36
+ Every module is importable directly; nothing performs I/O at import time.
37
+ """
38
+
39
+ from __future__ import annotations
40
+
41
+ from dark_net._version import __version__, __version_info__
42
+ from dark_net.automation import (
43
+ ChangeEvent,
44
+ CronSpec,
45
+ FileLock,
46
+ FileWatcher,
47
+ ProcessHandle,
48
+ ProcessResult,
49
+ Schedule,
50
+ capture_output,
51
+ child_pids,
52
+ clipboard_available,
53
+ clipboard_backend,
54
+ command_exists,
55
+ copy_text,
56
+ diff_snapshots,
57
+ env_overlay,
58
+ exec_command,
59
+ is_locked,
60
+ is_pid_running,
61
+ lock_info,
62
+ notify,
63
+ notify_available,
64
+ parse_cron,
65
+ paste_text,
66
+ run_schedule,
67
+ shell_join,
68
+ shell_quote,
69
+ start_process,
70
+ terminate_process,
71
+ tree_snapshot,
72
+ wait_for_change,
73
+ wait_for_path,
74
+ wait_for_pid,
75
+ working_directory,
76
+ )
77
+ from dark_net.cli import (
78
+ Console,
79
+ build_parser,
80
+ emit_json,
81
+ main,
82
+ render_key_values,
83
+ render_table,
84
+ run,
85
+ )
86
+ from dark_net.concurrent import (
87
+ AtomicCounter,
88
+ BackgroundTask,
89
+ CircuitBreaker,
90
+ CircuitOpenError,
91
+ Deadline,
92
+ ObjectPool,
93
+ Once,
94
+ Pipeline,
95
+ RWLock,
96
+ SingleFlight,
97
+ SlidingWindowLimiter,
98
+ Throttle,
99
+ TokenBucket,
100
+ WorkerPool,
101
+ async_map,
102
+ batched,
103
+ gather_first,
104
+ map_chunks,
105
+ parallel_iter,
106
+ parallel_map,
107
+ parallel_starmap,
108
+ process_map,
109
+ round_robin,
110
+ run_in_background,
111
+ window,
112
+ )
113
+ from dark_net.core import (
114
+ ALLOWED_URL_SCHEMES,
115
+ APP_CONFIG,
116
+ BLOCKED_HOSTNAMES,
117
+ CHUNK_SIZE,
118
+ CONFIG_FIELDS,
119
+ DEFAULT_TIMEOUT,
120
+ ENV_PREFIX,
121
+ LICENSE_NAME,
122
+ MIN_PYTHON,
123
+ USER_AGENT,
124
+ BackupError,
125
+ CacheError,
126
+ CommandError,
127
+ Config,
128
+ ConfigError,
129
+ ConfigField,
130
+ ConsentRequiredError,
131
+ DarkNetError,
132
+ DataError,
133
+ DependencyMissingError,
134
+ ExitCode,
135
+ FileOperationError,
136
+ IntegrityError,
137
+ NetworkError,
138
+ NotFoundError,
139
+ ParseError,
140
+ PathSecurityError,
141
+ PermissionDeniedError,
142
+ ProtocolError,
143
+ RateLimitError,
144
+ SecurityError,
145
+ SerializationError,
146
+ SSRFBlockedError,
147
+ TimeoutError_,
148
+ ValidationError,
149
+ ensure_bool,
150
+ ensure_int,
151
+ ensure_iterable,
152
+ ensure_mapping,
153
+ ensure_not_empty,
154
+ ensure_number,
155
+ ensure_str,
156
+ get_config,
157
+ reset_config,
158
+ set_config,
159
+ validate_between,
160
+ validate_choice,
161
+ validate_hostname,
162
+ validate_port,
163
+ validate_regex,
164
+ )
165
+ from dark_net.crypto import (
166
+ SUPPORTED_JWT_ALGORITHMS,
167
+ adler32,
168
+ build_claims,
169
+ byte_histogram,
170
+ bytes_to_uuid,
171
+ crc16,
172
+ crc32,
173
+ decode_jwt,
174
+ decode_jwt_unverified,
175
+ decrypt,
176
+ decrypt_file,
177
+ decrypt_stream,
178
+ decrypt_text,
179
+ digest,
180
+ digest_algorithms,
181
+ encode_jwt,
182
+ encrypt,
183
+ encrypt_file,
184
+ encrypt_stream,
185
+ encrypt_text,
186
+ from_base32,
187
+ from_base58,
188
+ from_base62,
189
+ from_base64,
190
+ from_base85,
191
+ from_hex,
192
+ generate_key,
193
+ hkdf,
194
+ hkdf_expand,
195
+ hkdf_extract,
196
+ hmac_digest,
197
+ is_encrypted,
198
+ keyed_hash,
199
+ looks_random,
200
+ pem_decode,
201
+ pem_encode,
202
+ percent_decode,
203
+ percent_encode,
204
+ random_bytes,
205
+ random_choice,
206
+ random_int,
207
+ random_token,
208
+ rot13,
209
+ scrypt_derive,
210
+ secure_shuffle,
211
+ shake_digest,
212
+ shannon_entropy,
213
+ stream_digest,
214
+ to_base32,
215
+ to_base58,
216
+ to_base62,
217
+ to_base64,
218
+ to_base85,
219
+ to_hex,
220
+ uuid_to_bytes,
221
+ )
222
+ from dark_net.data import (
223
+ RecordTable,
224
+ aggregate,
225
+ apply_mapping,
226
+ chunk,
227
+ coerce_types,
228
+ dedupe,
229
+ deep_merge,
230
+ dict_get_path,
231
+ dict_set_path,
232
+ dict_without,
233
+ filter_mapping,
234
+ filter_records,
235
+ find_first,
236
+ flatten,
237
+ flatten_mapping,
238
+ group_by,
239
+ invert_mapping,
240
+ map_records,
241
+ merge_mappings,
242
+ normalize_records,
243
+ ordered,
244
+ partition,
245
+ pick,
246
+ pluck,
247
+ rename_keys,
248
+ safe_get,
249
+ select_columns,
250
+ sort_by,
251
+ summarize_records,
252
+ to_records,
253
+ transpose_records,
254
+ unique_preserve_order,
255
+ unzip,
256
+ zip_dicts,
257
+ )
258
+ from dark_net.datetime_utils import (
259
+ DEFAULT_FORMATS,
260
+ UTC,
261
+ DateDifference,
262
+ age_in_years,
263
+ as_utc,
264
+ business_days_between,
265
+ date_difference,
266
+ date_range,
267
+ days_in_month,
268
+ duration_between,
269
+ end_of_day,
270
+ format_date,
271
+ format_duration,
272
+ format_timestamp,
273
+ from_timestamp,
274
+ is_weekend,
275
+ iterate_dates,
276
+ now,
277
+ now_utc,
278
+ parse_date,
279
+ parse_duration,
280
+ start_of_day,
281
+ to_local,
282
+ to_timestamp,
283
+ to_timezone,
284
+ today,
285
+ utc_now,
286
+ )
287
+ from dark_net.developer import (
288
+ AsyncTTLCache,
289
+ DiskCache,
290
+ Field,
291
+ JSONFormatter,
292
+ LRUCache,
293
+ ProfileResult,
294
+ RedactionFilter,
295
+ RetryPolicy,
296
+ Schema,
297
+ Timer,
298
+ TTLCache,
299
+ ValidationIssue,
300
+ ValidationResult,
301
+ async_retry,
302
+ cached,
303
+ configure_logging,
304
+ debug_repr,
305
+ from_json,
306
+ gather_limited,
307
+ get_logger,
308
+ is_json_serializable,
309
+ make_cache_key,
310
+ profile,
311
+ profile_call,
312
+ reset_logging,
313
+ retry,
314
+ retry_call,
315
+ run_async,
316
+ run_in_thread,
317
+ run_with_timeout,
318
+ timed,
319
+ timed_block,
320
+ to_async,
321
+ to_json,
322
+ to_jsonable,
323
+ to_sync,
324
+ trace_memory,
325
+ )
326
+ from dark_net.files import (
327
+ ArchiveEntry,
328
+ ArchiveInfo,
329
+ BackupResult,
330
+ BackupVerification,
331
+ CopyResult,
332
+ DuplicateGroup,
333
+ FileHash,
334
+ FileMetadata,
335
+ append_text,
336
+ compare_files,
337
+ compute_hashes,
338
+ copy_file,
339
+ copy_tree,
340
+ count_lines,
341
+ create_backup,
342
+ create_directory,
343
+ create_zip,
344
+ delete_file,
345
+ delete_tree,
346
+ detect_format,
347
+ dicts_to_csv,
348
+ dump_json,
349
+ dump_manifest,
350
+ dump_yaml,
351
+ extract_zip,
352
+ file_exists,
353
+ file_integrity_manifest,
354
+ find_duplicates,
355
+ find_files,
356
+ format_file_size,
357
+ get_file_metadata,
358
+ get_file_size,
359
+ hash_bytes,
360
+ hash_file,
361
+ hash_stream,
362
+ is_zip_archive,
363
+ iter_csv_rows,
364
+ iter_directory,
365
+ list_archive,
366
+ list_backups,
367
+ list_directory,
368
+ list_files,
369
+ load_csv,
370
+ load_json,
371
+ load_manifest,
372
+ load_yaml,
373
+ move_path,
374
+ prune_backups,
375
+ read_archive_member,
376
+ read_bytes,
377
+ read_csv,
378
+ read_json,
379
+ read_lines,
380
+ read_text,
381
+ read_yaml,
382
+ rename_path,
383
+ restore_backup,
384
+ safe_join_path,
385
+ search_files,
386
+ touch_file,
387
+ verify_backup,
388
+ verify_integrity_manifest,
389
+ write_bytes,
390
+ write_csv,
391
+ write_json,
392
+ write_text,
393
+ write_yaml,
394
+ )
395
+ from dark_net.integrations import (
396
+ DependencyAuditResult,
397
+ PackageInfo,
398
+ Vulnerability,
399
+ audit_dependencies,
400
+ audit_with_pip_audit,
401
+ check_outdated,
402
+ get_package_info,
403
+ has_critical_vulnerabilities,
404
+ installed_packages,
405
+ python_environment,
406
+ requirements_snapshot,
407
+ )
408
+ from dark_net.network import (
409
+ KNOWN_PROVIDERS,
410
+ DNSResult,
411
+ DomainInfo,
412
+ HTTPClient,
413
+ HTTPResponse,
414
+ InterfaceInfo,
415
+ IPAddressInfo,
416
+ ParsedURL,
417
+ PortResult,
418
+ PublicIPResult,
419
+ assert_safe_target,
420
+ blocked_target,
421
+ check_connectivity,
422
+ check_port,
423
+ classify_address,
424
+ client_from_config,
425
+ describe_ip,
426
+ get_domain_info,
427
+ get_interface_addresses,
428
+ get_interface_info,
429
+ get_ip_info,
430
+ get_primary_ip,
431
+ get_public_ip,
432
+ get_public_ip_info,
433
+ http_get,
434
+ http_post_json,
435
+ is_always_blocked,
436
+ is_global_address,
437
+ is_ipv4,
438
+ is_ipv6,
439
+ is_loopback_address,
440
+ is_port_open,
441
+ is_private_address,
442
+ is_public_address,
443
+ is_safe_url,
444
+ is_unsafe_target,
445
+ is_valid_url,
446
+ iter_hosts,
447
+ list_interfaces,
448
+ measure_latency,
449
+ normalize_ip,
450
+ parse_ip,
451
+ parse_network,
452
+ parse_url,
453
+ ping_host,
454
+ resolve_and_validate,
455
+ resolve_host,
456
+ resolve_hostname,
457
+ resolve_ipv4,
458
+ resolve_ipv6,
459
+ reverse_lookup,
460
+ sanitize_url_for_logging,
461
+ scan_ports,
462
+ summarize_network,
463
+ tcp_connect,
464
+ validate_url,
465
+ )
466
+ from dark_net.security import (
467
+ RECOMMENDED_ALGORITHMS,
468
+ Finding,
469
+ IntegrityReport,
470
+ PasswordReport,
471
+ RedactionReport,
472
+ SecurityAuditReport,
473
+ Severity,
474
+ audit_configuration,
475
+ audit_environment,
476
+ audit_file_permissions,
477
+ audit_text,
478
+ check_world_writable,
479
+ checksum,
480
+ compare_digest,
481
+ compute_checksum,
482
+ contains_secret,
483
+ derive_key,
484
+ estimate_password_strength,
485
+ find_secrets,
486
+ generate_api_key,
487
+ generate_hex_token,
488
+ generate_numeric_code,
489
+ generate_passphrase,
490
+ generate_password,
491
+ generate_salt,
492
+ generate_token,
493
+ generate_urlsafe_token,
494
+ generate_uuid4,
495
+ hash_sha256,
496
+ hash_sha512,
497
+ hash_string,
498
+ hmac_sign,
499
+ is_common_password,
500
+ multi_hash,
501
+ password_entropy_bits,
502
+ password_score,
503
+ redact,
504
+ redact_dict,
505
+ redact_lines,
506
+ suggest_password_policy,
507
+ summarize_findings,
508
+ token_info,
509
+ verify_checksum,
510
+ verify_file_checksum,
511
+ verify_hmac,
512
+ verify_integrity,
513
+ watch_directory_integrity,
514
+ )
515
+ from dark_net.storage import (
516
+ JsonlReport,
517
+ Migration,
518
+ MigrationRunner,
519
+ SQLiteStore,
520
+ append_jsonl,
521
+ apply_filter,
522
+ clean_csv,
523
+ compile_filter,
524
+ count_jsonl,
525
+ csv_stats,
526
+ csv_to_jsonl,
527
+ csv_to_tsv,
528
+ db_info,
529
+ detect_delimiter,
530
+ distinct_values,
531
+ export_csv,
532
+ filter_jsonl,
533
+ import_csv,
534
+ inner_join,
535
+ jsonl_to_csv,
536
+ jsonl_to_json,
537
+ left_join,
538
+ list_tables,
539
+ merge_csv,
540
+ merge_jsonl,
541
+ open_db,
542
+ read_jsonl,
543
+ run_migrations,
544
+ sample_jsonl,
545
+ select,
546
+ sniff_csv,
547
+ split_jsonl,
548
+ sql_explain,
549
+ table_exists,
550
+ tail_jsonl,
551
+ top_n,
552
+ transpose_csv,
553
+ tsv_to_csv,
554
+ upsert,
555
+ validate_jsonl,
556
+ write_jsonl,
557
+ )
558
+ from dark_net.system import (
559
+ CheckResult,
560
+ CheckStatus,
561
+ CPUInfo,
562
+ DiagnosticReport,
563
+ DiskUsage,
564
+ EnvManager,
565
+ HardwareInfo,
566
+ MemoryInfo,
567
+ PlatformInfo,
568
+ ProcessInfo,
569
+ environment_snapshot,
570
+ get_cpu_info,
571
+ get_disk_usage,
572
+ get_env,
573
+ get_env_bool,
574
+ get_env_int,
575
+ get_hardware_info,
576
+ get_memory_info,
577
+ get_platform_info,
578
+ get_process,
579
+ get_system_info,
580
+ is_sensitive_key,
581
+ iter_processes,
582
+ list_env,
583
+ list_processes,
584
+ process_count,
585
+ redact_env,
586
+ require_env,
587
+ run_diagnostics,
588
+ set_env,
589
+ top_processes,
590
+ )
591
+ from dark_net.text import (
592
+ MatchInfo,
593
+ TextStats,
594
+ base64_decode,
595
+ base64_encode,
596
+ camel_case,
597
+ character_frequencies,
598
+ clean_text,
599
+ compile_pattern,
600
+ constant_case,
601
+ count_words,
602
+ detect_encoding,
603
+ dot_case,
604
+ encode_text,
605
+ estimate_reading_time,
606
+ extract_emails,
607
+ extract_hashtags,
608
+ extract_mentions,
609
+ extract_urls,
610
+ find_all,
611
+ find_all_matches,
612
+ is_match,
613
+ is_valid_utf8,
614
+ kebab_case,
615
+ pad,
616
+ pascal_case,
617
+ reading_level,
618
+ remove_accents,
619
+ replace_all,
620
+ safe_search,
621
+ slugify,
622
+ snake_case,
623
+ split_pattern,
624
+ strip_ansi,
625
+ swap_case,
626
+ template,
627
+ text_stats,
628
+ title_case,
629
+ to_ascii,
630
+ to_case,
631
+ train_case,
632
+ truncate_words,
633
+ unicode_categories,
634
+ unicode_name,
635
+ urlsafe_base64_decode,
636
+ urlsafe_base64_encode,
637
+ word_frequencies,
638
+ wrap_text,
639
+ )
640
+ from dark_net.utils import (
641
+ ALLOWED_EXECUTABLES,
642
+ CommandResult,
643
+ atomic_write_text,
644
+ ensure_directory,
645
+ ensure_file,
646
+ format_bytes,
647
+ format_key_values,
648
+ format_percent,
649
+ format_table,
650
+ is_executable_allowed,
651
+ is_relative_to,
652
+ normalize_path,
653
+ pluralize,
654
+ resolve_within,
655
+ run_command,
656
+ safe_join,
657
+ secure_temp_dir,
658
+ secure_temp_file,
659
+ truncate,
660
+ which,
661
+ )
662
+ from dark_net.web import (
663
+ APIError,
664
+ APIResponse,
665
+ AsyncHTTPClient,
666
+ JSONAPIClient,
667
+ Pagination,
668
+ ResponseData,
669
+ add_fragment,
670
+ add_path,
671
+ add_query_params,
672
+ build_url,
673
+ extract_field,
674
+ get_domain,
675
+ get_origin,
676
+ get_path,
677
+ get_query_param,
678
+ get_query_params,
679
+ has_query_param,
680
+ join_url,
681
+ normalize_url,
682
+ parse_csv_response,
683
+ parse_json_response,
684
+ parse_pagination,
685
+ parse_text_response,
686
+ redact_url,
687
+ remove_query_params,
688
+ set_query_params,
689
+ strip_fragment,
690
+ strip_query,
691
+ to_absolute_url,
692
+ unwrap_api_error,
693
+ )
694
+
695
+ __all__ = [
696
+ "ALLOWED_EXECUTABLES",
697
+ "ALLOWED_URL_SCHEMES",
698
+ "APP_CONFIG",
699
+ "BLOCKED_HOSTNAMES",
700
+ "CHUNK_SIZE",
701
+ "CONFIG_FIELDS",
702
+ "DEFAULT_FORMATS",
703
+ "DEFAULT_TIMEOUT",
704
+ "ENV_PREFIX",
705
+ "KNOWN_PROVIDERS",
706
+ "LICENSE_NAME",
707
+ "MIN_PYTHON",
708
+ "RECOMMENDED_ALGORITHMS",
709
+ "SUPPORTED_JWT_ALGORITHMS",
710
+ "USER_AGENT",
711
+ "UTC",
712
+ "APIError",
713
+ "APIResponse",
714
+ "ArchiveEntry",
715
+ "ArchiveInfo",
716
+ "AsyncHTTPClient",
717
+ "AsyncTTLCache",
718
+ "AtomicCounter",
719
+ "BackgroundTask",
720
+ "BackupError",
721
+ "BackupResult",
722
+ "BackupVerification",
723
+ "CPUInfo",
724
+ "CacheError",
725
+ "ChangeEvent",
726
+ "CheckResult",
727
+ "CheckStatus",
728
+ "CircuitBreaker",
729
+ "CircuitOpenError",
730
+ "CommandError",
731
+ "CommandResult",
732
+ "Config",
733
+ "ConfigError",
734
+ "ConfigField",
735
+ "ConsentRequiredError",
736
+ "Console",
737
+ "CopyResult",
738
+ "CronSpec",
739
+ "DNSResult",
740
+ "DarkNetError",
741
+ "DataError",
742
+ "DateDifference",
743
+ "Deadline",
744
+ "DependencyAuditResult",
745
+ "DependencyMissingError",
746
+ "DiagnosticReport",
747
+ "DiskCache",
748
+ "DiskUsage",
749
+ "DomainInfo",
750
+ "DuplicateGroup",
751
+ "EnvManager",
752
+ "ExitCode",
753
+ "Field",
754
+ "FileHash",
755
+ "FileLock",
756
+ "FileMetadata",
757
+ "FileOperationError",
758
+ "FileWatcher",
759
+ "Finding",
760
+ "HTTPClient",
761
+ "HTTPResponse",
762
+ "HardwareInfo",
763
+ "IPAddressInfo",
764
+ "IntegrityError",
765
+ "IntegrityReport",
766
+ "InterfaceInfo",
767
+ "JSONAPIClient",
768
+ "JSONFormatter",
769
+ "JsonlReport",
770
+ "LRUCache",
771
+ "MatchInfo",
772
+ "MemoryInfo",
773
+ "Migration",
774
+ "MigrationRunner",
775
+ "NetworkError",
776
+ "NotFoundError",
777
+ "ObjectPool",
778
+ "Once",
779
+ "PackageInfo",
780
+ "Pagination",
781
+ "ParseError",
782
+ "ParsedURL",
783
+ "PasswordReport",
784
+ "PathSecurityError",
785
+ "PermissionDeniedError",
786
+ "Pipeline",
787
+ "PlatformInfo",
788
+ "PortResult",
789
+ "ProcessHandle",
790
+ "ProcessInfo",
791
+ "ProcessResult",
792
+ "ProfileResult",
793
+ "ProtocolError",
794
+ "PublicIPResult",
795
+ "RWLock",
796
+ "RateLimitError",
797
+ "RecordTable",
798
+ "RedactionFilter",
799
+ "RedactionReport",
800
+ "ResponseData",
801
+ "RetryPolicy",
802
+ "SQLiteStore",
803
+ "SSRFBlockedError",
804
+ "Schedule",
805
+ "Schema",
806
+ "SecurityAuditReport",
807
+ "SecurityError",
808
+ "SerializationError",
809
+ "Severity",
810
+ "SingleFlight",
811
+ "SlidingWindowLimiter",
812
+ "TTLCache",
813
+ "TextStats",
814
+ "Throttle",
815
+ "TimeoutError_",
816
+ "Timer",
817
+ "TokenBucket",
818
+ "ValidationError",
819
+ "ValidationIssue",
820
+ "ValidationResult",
821
+ "Vulnerability",
822
+ "WorkerPool",
823
+ "__version__",
824
+ "__version_info__",
825
+ "add_fragment",
826
+ "add_path",
827
+ "add_query_params",
828
+ "adler32",
829
+ "age_in_years",
830
+ "aggregate",
831
+ "append_jsonl",
832
+ "append_text",
833
+ "apply_filter",
834
+ "apply_mapping",
835
+ "as_utc",
836
+ "assert_safe_target",
837
+ "async_map",
838
+ "async_retry",
839
+ "atomic_write_text",
840
+ "audit_configuration",
841
+ "audit_dependencies",
842
+ "audit_environment",
843
+ "audit_file_permissions",
844
+ "audit_text",
845
+ "audit_with_pip_audit",
846
+ "base64_decode",
847
+ "base64_encode",
848
+ "batched",
849
+ "blocked_target",
850
+ "build_claims",
851
+ "build_parser",
852
+ "build_url",
853
+ "business_days_between",
854
+ "byte_histogram",
855
+ "bytes_to_uuid",
856
+ "cached",
857
+ "camel_case",
858
+ "capture_output",
859
+ "character_frequencies",
860
+ "check_connectivity",
861
+ "check_outdated",
862
+ "check_port",
863
+ "check_world_writable",
864
+ "checksum",
865
+ "child_pids",
866
+ "chunk",
867
+ "classify_address",
868
+ "clean_csv",
869
+ "clean_text",
870
+ "client_from_config",
871
+ "clipboard_available",
872
+ "clipboard_backend",
873
+ "coerce_types",
874
+ "command_exists",
875
+ "compare_digest",
876
+ "compare_files",
877
+ "compile_filter",
878
+ "compile_pattern",
879
+ "compute_checksum",
880
+ "compute_hashes",
881
+ "configure_logging",
882
+ "constant_case",
883
+ "contains_secret",
884
+ "copy_file",
885
+ "copy_text",
886
+ "copy_tree",
887
+ "count_jsonl",
888
+ "count_lines",
889
+ "count_words",
890
+ "crc16",
891
+ "crc32",
892
+ "create_backup",
893
+ "create_directory",
894
+ "create_zip",
895
+ "csv_stats",
896
+ "csv_to_jsonl",
897
+ "csv_to_tsv",
898
+ "date_difference",
899
+ "date_range",
900
+ "days_in_month",
901
+ "db_info",
902
+ "debug_repr",
903
+ "decode_jwt",
904
+ "decode_jwt_unverified",
905
+ "decrypt",
906
+ "decrypt_file",
907
+ "decrypt_stream",
908
+ "decrypt_text",
909
+ "dedupe",
910
+ "deep_merge",
911
+ "delete_file",
912
+ "delete_tree",
913
+ "derive_key",
914
+ "describe_ip",
915
+ "detect_delimiter",
916
+ "detect_encoding",
917
+ "detect_format",
918
+ "dict_get_path",
919
+ "dict_set_path",
920
+ "dict_without",
921
+ "dicts_to_csv",
922
+ "diff_snapshots",
923
+ "digest",
924
+ "digest_algorithms",
925
+ "distinct_values",
926
+ "dot_case",
927
+ "dump_json",
928
+ "dump_manifest",
929
+ "dump_yaml",
930
+ "duration_between",
931
+ "emit_json",
932
+ "encode_jwt",
933
+ "encode_text",
934
+ "encrypt",
935
+ "encrypt_file",
936
+ "encrypt_stream",
937
+ "encrypt_text",
938
+ "end_of_day",
939
+ "ensure_bool",
940
+ "ensure_directory",
941
+ "ensure_file",
942
+ "ensure_int",
943
+ "ensure_iterable",
944
+ "ensure_mapping",
945
+ "ensure_not_empty",
946
+ "ensure_number",
947
+ "ensure_str",
948
+ "env_overlay",
949
+ "environment_snapshot",
950
+ "estimate_password_strength",
951
+ "estimate_reading_time",
952
+ "exec_command",
953
+ "export_csv",
954
+ "extract_emails",
955
+ "extract_field",
956
+ "extract_hashtags",
957
+ "extract_mentions",
958
+ "extract_urls",
959
+ "extract_zip",
960
+ "file_exists",
961
+ "file_integrity_manifest",
962
+ "filter_jsonl",
963
+ "filter_mapping",
964
+ "filter_records",
965
+ "find_all",
966
+ "find_all_matches",
967
+ "find_duplicates",
968
+ "find_files",
969
+ "find_first",
970
+ "find_secrets",
971
+ "flatten",
972
+ "flatten_mapping",
973
+ "format_bytes",
974
+ "format_date",
975
+ "format_duration",
976
+ "format_file_size",
977
+ "format_key_values",
978
+ "format_percent",
979
+ "format_table",
980
+ "format_timestamp",
981
+ "from_base32",
982
+ "from_base58",
983
+ "from_base62",
984
+ "from_base64",
985
+ "from_base85",
986
+ "from_hex",
987
+ "from_json",
988
+ "from_timestamp",
989
+ "gather_first",
990
+ "gather_limited",
991
+ "generate_api_key",
992
+ "generate_hex_token",
993
+ "generate_key",
994
+ "generate_numeric_code",
995
+ "generate_passphrase",
996
+ "generate_password",
997
+ "generate_salt",
998
+ "generate_token",
999
+ "generate_urlsafe_token",
1000
+ "generate_uuid4",
1001
+ "get_config",
1002
+ "get_cpu_info",
1003
+ "get_disk_usage",
1004
+ "get_domain",
1005
+ "get_domain_info",
1006
+ "get_env",
1007
+ "get_env_bool",
1008
+ "get_env_int",
1009
+ "get_file_metadata",
1010
+ "get_file_size",
1011
+ "get_hardware_info",
1012
+ "get_interface_addresses",
1013
+ "get_interface_info",
1014
+ "get_ip_info",
1015
+ "get_logger",
1016
+ "get_memory_info",
1017
+ "get_origin",
1018
+ "get_package_info",
1019
+ "get_path",
1020
+ "get_platform_info",
1021
+ "get_primary_ip",
1022
+ "get_process",
1023
+ "get_public_ip",
1024
+ "get_public_ip_info",
1025
+ "get_query_param",
1026
+ "get_query_params",
1027
+ "get_system_info",
1028
+ "group_by",
1029
+ "has_critical_vulnerabilities",
1030
+ "has_query_param",
1031
+ "hash_bytes",
1032
+ "hash_file",
1033
+ "hash_sha256",
1034
+ "hash_sha512",
1035
+ "hash_stream",
1036
+ "hash_string",
1037
+ "hkdf",
1038
+ "hkdf_expand",
1039
+ "hkdf_extract",
1040
+ "hmac_digest",
1041
+ "hmac_sign",
1042
+ "http_get",
1043
+ "http_post_json",
1044
+ "import_csv",
1045
+ "inner_join",
1046
+ "installed_packages",
1047
+ "invert_mapping",
1048
+ "is_always_blocked",
1049
+ "is_common_password",
1050
+ "is_encrypted",
1051
+ "is_executable_allowed",
1052
+ "is_global_address",
1053
+ "is_ipv4",
1054
+ "is_ipv6",
1055
+ "is_json_serializable",
1056
+ "is_locked",
1057
+ "is_loopback_address",
1058
+ "is_match",
1059
+ "is_pid_running",
1060
+ "is_port_open",
1061
+ "is_private_address",
1062
+ "is_public_address",
1063
+ "is_relative_to",
1064
+ "is_safe_url",
1065
+ "is_sensitive_key",
1066
+ "is_unsafe_target",
1067
+ "is_valid_url",
1068
+ "is_valid_utf8",
1069
+ "is_weekend",
1070
+ "is_zip_archive",
1071
+ "iter_csv_rows",
1072
+ "iter_directory",
1073
+ "iter_hosts",
1074
+ "iter_processes",
1075
+ "iterate_dates",
1076
+ "join_url",
1077
+ "jsonl_to_csv",
1078
+ "jsonl_to_json",
1079
+ "kebab_case",
1080
+ "keyed_hash",
1081
+ "left_join",
1082
+ "list_archive",
1083
+ "list_backups",
1084
+ "list_directory",
1085
+ "list_env",
1086
+ "list_files",
1087
+ "list_interfaces",
1088
+ "list_processes",
1089
+ "list_tables",
1090
+ "load_csv",
1091
+ "load_json",
1092
+ "load_manifest",
1093
+ "load_yaml",
1094
+ "lock_info",
1095
+ "looks_random",
1096
+ "main",
1097
+ "make_cache_key",
1098
+ "map_chunks",
1099
+ "map_records",
1100
+ "measure_latency",
1101
+ "merge_csv",
1102
+ "merge_jsonl",
1103
+ "merge_mappings",
1104
+ "move_path",
1105
+ "multi_hash",
1106
+ "normalize_ip",
1107
+ "normalize_path",
1108
+ "normalize_records",
1109
+ "normalize_url",
1110
+ "notify",
1111
+ "notify_available",
1112
+ "now",
1113
+ "now_utc",
1114
+ "open_db",
1115
+ "ordered",
1116
+ "pad",
1117
+ "parallel_iter",
1118
+ "parallel_map",
1119
+ "parallel_starmap",
1120
+ "parse_cron",
1121
+ "parse_csv_response",
1122
+ "parse_date",
1123
+ "parse_duration",
1124
+ "parse_ip",
1125
+ "parse_json_response",
1126
+ "parse_network",
1127
+ "parse_pagination",
1128
+ "parse_text_response",
1129
+ "parse_url",
1130
+ "partition",
1131
+ "pascal_case",
1132
+ "password_entropy_bits",
1133
+ "password_score",
1134
+ "paste_text",
1135
+ "pem_decode",
1136
+ "pem_encode",
1137
+ "percent_decode",
1138
+ "percent_encode",
1139
+ "pick",
1140
+ "ping_host",
1141
+ "pluck",
1142
+ "pluralize",
1143
+ "process_count",
1144
+ "process_map",
1145
+ "profile",
1146
+ "profile_call",
1147
+ "prune_backups",
1148
+ "python_environment",
1149
+ "random_bytes",
1150
+ "random_choice",
1151
+ "random_int",
1152
+ "random_token",
1153
+ "read_archive_member",
1154
+ "read_bytes",
1155
+ "read_csv",
1156
+ "read_json",
1157
+ "read_jsonl",
1158
+ "read_lines",
1159
+ "read_text",
1160
+ "read_yaml",
1161
+ "reading_level",
1162
+ "redact",
1163
+ "redact_dict",
1164
+ "redact_env",
1165
+ "redact_lines",
1166
+ "redact_url",
1167
+ "remove_accents",
1168
+ "remove_query_params",
1169
+ "rename_keys",
1170
+ "rename_path",
1171
+ "render_key_values",
1172
+ "render_table",
1173
+ "replace_all",
1174
+ "require_env",
1175
+ "requirements_snapshot",
1176
+ "reset_config",
1177
+ "reset_logging",
1178
+ "resolve_and_validate",
1179
+ "resolve_host",
1180
+ "resolve_hostname",
1181
+ "resolve_ipv4",
1182
+ "resolve_ipv6",
1183
+ "resolve_within",
1184
+ "restore_backup",
1185
+ "retry",
1186
+ "retry_call",
1187
+ "reverse_lookup",
1188
+ "rot13",
1189
+ "round_robin",
1190
+ "run",
1191
+ "run_async",
1192
+ "run_command",
1193
+ "run_diagnostics",
1194
+ "run_in_background",
1195
+ "run_in_thread",
1196
+ "run_migrations",
1197
+ "run_schedule",
1198
+ "run_with_timeout",
1199
+ "safe_get",
1200
+ "safe_join",
1201
+ "safe_join_path",
1202
+ "safe_search",
1203
+ "sample_jsonl",
1204
+ "sanitize_url_for_logging",
1205
+ "scan_ports",
1206
+ "scrypt_derive",
1207
+ "search_files",
1208
+ "secure_shuffle",
1209
+ "secure_temp_dir",
1210
+ "secure_temp_file",
1211
+ "select",
1212
+ "select_columns",
1213
+ "set_config",
1214
+ "set_env",
1215
+ "set_query_params",
1216
+ "shake_digest",
1217
+ "shannon_entropy",
1218
+ "shell_join",
1219
+ "shell_quote",
1220
+ "slugify",
1221
+ "snake_case",
1222
+ "sniff_csv",
1223
+ "sort_by",
1224
+ "split_jsonl",
1225
+ "split_pattern",
1226
+ "sql_explain",
1227
+ "start_of_day",
1228
+ "start_process",
1229
+ "stream_digest",
1230
+ "strip_ansi",
1231
+ "strip_fragment",
1232
+ "strip_query",
1233
+ "suggest_password_policy",
1234
+ "summarize_findings",
1235
+ "summarize_network",
1236
+ "summarize_records",
1237
+ "swap_case",
1238
+ "table_exists",
1239
+ "tail_jsonl",
1240
+ "tcp_connect",
1241
+ "template",
1242
+ "terminate_process",
1243
+ "text_stats",
1244
+ "timed",
1245
+ "timed_block",
1246
+ "title_case",
1247
+ "to_absolute_url",
1248
+ "to_ascii",
1249
+ "to_async",
1250
+ "to_base32",
1251
+ "to_base58",
1252
+ "to_base62",
1253
+ "to_base64",
1254
+ "to_base85",
1255
+ "to_case",
1256
+ "to_hex",
1257
+ "to_json",
1258
+ "to_jsonable",
1259
+ "to_local",
1260
+ "to_records",
1261
+ "to_sync",
1262
+ "to_timestamp",
1263
+ "to_timezone",
1264
+ "today",
1265
+ "token_info",
1266
+ "top_n",
1267
+ "top_processes",
1268
+ "touch_file",
1269
+ "trace_memory",
1270
+ "train_case",
1271
+ "transpose_csv",
1272
+ "transpose_records",
1273
+ "tree_snapshot",
1274
+ "truncate",
1275
+ "truncate_words",
1276
+ "tsv_to_csv",
1277
+ "unicode_categories",
1278
+ "unicode_name",
1279
+ "unique_preserve_order",
1280
+ "unwrap_api_error",
1281
+ "unzip",
1282
+ "upsert",
1283
+ "urlsafe_base64_decode",
1284
+ "urlsafe_base64_encode",
1285
+ "utc_now",
1286
+ "uuid_to_bytes",
1287
+ "validate_between",
1288
+ "validate_choice",
1289
+ "validate_hostname",
1290
+ "validate_jsonl",
1291
+ "validate_port",
1292
+ "validate_regex",
1293
+ "validate_url",
1294
+ "verify_backup",
1295
+ "verify_checksum",
1296
+ "verify_file_checksum",
1297
+ "verify_hmac",
1298
+ "verify_integrity",
1299
+ "verify_integrity_manifest",
1300
+ "wait_for_change",
1301
+ "wait_for_path",
1302
+ "wait_for_pid",
1303
+ "watch_directory_integrity",
1304
+ "which",
1305
+ "window",
1306
+ "word_frequencies",
1307
+ "working_directory",
1308
+ "wrap_text",
1309
+ "write_bytes",
1310
+ "write_csv",
1311
+ "write_json",
1312
+ "write_jsonl",
1313
+ "write_text",
1314
+ "write_yaml",
1315
+ "zip_dicts",
1316
+ ]