PyReverseETL 3.1.4__tar.gz → 3.1.5__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.
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/Cargo.lock +2 -2
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/Cargo.toml +1 -1
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/PKG-INFO +2 -2
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/README.md +1 -1
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/pyproject.toml +1 -1
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/python/src/lib.rs +24 -3
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/LICENSE +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/Cargo.toml +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/benches/load_test.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/bin/pyreverseetl_dashboard.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/activation.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/adapters/alert_compat.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/adapters/error.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/adapters/http_client.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/adapters/hubspot.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/adapters/mapping.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/adapters/marketo.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/adapters/mod.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/adapters/oauth_manager.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/adapters/retry_policy.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/adapters/salesforce.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/adapters/schema_detect.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/adapters/webhook.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/cdc/change_detector.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/cdc/changelog.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/cdc/checkpoint.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/cdc/mod.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/connectors/config.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/connectors/connectors_db.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/connectors/database_advanced.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/connectors/destination.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/connectors/error.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/connectors/hdfs.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/connectors/mod.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/connectors/mysql.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/connectors/object_storage.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/connectors/postgres.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/connectors/rate_limiting.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/connectors/registry.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/connectors/saas.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/connectors/source.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/connectors/web.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/destination.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/entity.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/error.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/executor.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/governance/cached_gate.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/governance/compliance_rules.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/governance/credentials.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/governance/mod.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/governance/quality_gate.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/governance/retry_policy.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/governance/schema_evolution.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/governance/statguardian_client.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/idempotency.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/lib.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/lineage.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/observability/dashboard_launcher.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/observability/logs.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/observability/metrics.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/observability/metrics_server.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/observability/mod.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/observability/traces.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/pipeline/activation_pipeline.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/pipeline/backpressure.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/pipeline/latency_tracker.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/pipeline/mod.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/sources/kafka.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/sources/mod.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/sources/polling.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/sources/sync_config.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/statguardian.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/storage/mod.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/storage/repository.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/storage/schema.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/streaming/event_processor.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/streaming/event_schema.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/streaming/mod.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/streampdf.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/streamxl.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/sync.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/testing/connector_test.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/testing/harness.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/testing/metrics.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/testing/mock_http.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/testing/mod.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/testing/test_data.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/transformers/mod.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/transformers/spark.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/core/src/workflow.rs +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/python/Cargo.toml +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/python/pyreverseetl/__init__.py +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/python/pyreverseetl/cli.py +0 -0
- {pyreverseetl-3.1.4 → pyreverseetl-3.1.5}/python/pyreverseetl/server.py +0 -0
|
@@ -3199,7 +3199,7 @@ dependencies = [
|
|
|
3199
3199
|
|
|
3200
3200
|
[[package]]
|
|
3201
3201
|
name = "pyreverseetl"
|
|
3202
|
-
version = "3.1.
|
|
3202
|
+
version = "3.1.5"
|
|
3203
3203
|
dependencies = [
|
|
3204
3204
|
"chrono",
|
|
3205
3205
|
"pyo3",
|
|
@@ -3210,7 +3210,7 @@ dependencies = [
|
|
|
3210
3210
|
|
|
3211
3211
|
[[package]]
|
|
3212
3212
|
name = "pyreverseetl-core"
|
|
3213
|
-
version = "3.1.
|
|
3213
|
+
version = "3.1.5"
|
|
3214
3214
|
dependencies = [
|
|
3215
3215
|
"async-trait",
|
|
3216
3216
|
"aws-config",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyReverseETL
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.5
|
|
4
4
|
Classifier: Development Status :: 4 - Beta
|
|
5
5
|
Classifier: Intended Audience :: Developers
|
|
6
6
|
Classifier: Programming Language :: Python :: 3
|
|
@@ -103,7 +103,7 @@ repeated here to avoid implying vendor endorsement.
|
|
|
103
103
|
|
|
104
104
|
## Project status
|
|
105
105
|
|
|
106
|
-
**Beta.** Version 3.1.
|
|
106
|
+
**Beta.** Version 3.1.5. The Postgres/MySQL/S3/webhook paths are real and verified against
|
|
107
107
|
real services; the `web` source connector (MudFish-backed site crawling) is implemented
|
|
108
108
|
and unit-tested but not yet exercised end-to-end against a live site; the CRM/marketing
|
|
109
109
|
adapters are real but mock-verified only; several
|
|
@@ -80,7 +80,7 @@ repeated here to avoid implying vendor endorsement.
|
|
|
80
80
|
|
|
81
81
|
## Project status
|
|
82
82
|
|
|
83
|
-
**Beta.** Version 3.1.
|
|
83
|
+
**Beta.** Version 3.1.5. The Postgres/MySQL/S3/webhook paths are real and verified against
|
|
84
84
|
real services; the `web` source connector (MudFish-backed site crawling) is implemented
|
|
85
85
|
and unit-tested but not yet exercised end-to-end against a live site; the CRM/marketing
|
|
86
86
|
adapters are real but mock-verified only; several
|
|
@@ -2,7 +2,7 @@ use pyo3::exceptions::PyValueError;
|
|
|
2
2
|
use pyo3::prelude::*;
|
|
3
3
|
use pyreverseetl_core::adapters::AuthMethod as AdapterAuth;
|
|
4
4
|
use pyreverseetl_core::connectors::{
|
|
5
|
-
MySQLConfig, ObjectStorageConfig, PostgreSQLConfig, TableFormat,
|
|
5
|
+
MySQLConfig, ObjectStorageConfig, PostgreSQLConfig, TableFormat, WebConfig,
|
|
6
6
|
};
|
|
7
7
|
use pyreverseetl_core::destination::DestinationType;
|
|
8
8
|
use pyreverseetl_core::entity::EntityType;
|
|
@@ -301,8 +301,27 @@ fn build_source_spec(source_type: &str, config: &Value) -> PyResult<SourceSpec>
|
|
|
301
301
|
Ok(SourceSpec::MySQL(cfg))
|
|
302
302
|
}
|
|
303
303
|
"s3" => Ok(SourceSpec::S3(build_object_storage_config(config)?)),
|
|
304
|
+
"web" => {
|
|
305
|
+
let mut cfg = WebConfig {
|
|
306
|
+
seed_url: get_str(config, "seed_url")?.to_string(),
|
|
307
|
+
..Default::default()
|
|
308
|
+
};
|
|
309
|
+
if let Some(v) = config.get("max_depth").and_then(|v| v.as_u64()) {
|
|
310
|
+
cfg.max_depth = v as usize;
|
|
311
|
+
}
|
|
312
|
+
if let Some(v) = config.get("max_urls").and_then(|v| v.as_u64()) {
|
|
313
|
+
cfg.max_urls = v as usize;
|
|
314
|
+
}
|
|
315
|
+
if let Some(v) = config.get("same_domain").and_then(|v| v.as_bool()) {
|
|
316
|
+
cfg.same_domain = v;
|
|
317
|
+
}
|
|
318
|
+
if let Some(v) = config.get("render_js").and_then(|v| v.as_bool()) {
|
|
319
|
+
cfg.render_js = v;
|
|
320
|
+
}
|
|
321
|
+
Ok(SourceSpec::Web(cfg))
|
|
322
|
+
}
|
|
304
323
|
other => Err(py_err(format!(
|
|
305
|
-
"unsupported source_type '{other}' (supported: postgres, mysql, s3)"
|
|
324
|
+
"unsupported source_type '{other}' (supported: postgres, mysql, s3, web)"
|
|
306
325
|
))),
|
|
307
326
|
}
|
|
308
327
|
}
|
|
@@ -489,7 +508,9 @@ pub struct PySyncResult {
|
|
|
489
508
|
/// Run a real sync: read from `source_type`/`source_config` (JSON string),
|
|
490
509
|
/// apply `compliance_rules` (JSON string, optional), write to
|
|
491
510
|
/// `destination_type`/`destination_config` (JSON string), and record a real
|
|
492
|
-
/// lineage edge. Supported `source_type`: `postgres`, `mysql`, `s3
|
|
511
|
+
/// lineage edge. Supported `source_type`: `postgres`, `mysql`, `s3`, `web`
|
|
512
|
+
/// (MudFish-backed site crawl; `source_config` takes `seed_url` plus optional
|
|
513
|
+
/// `max_depth`, `max_urls`, `same_domain`, `render_js`).
|
|
493
514
|
/// Supported `destination_type`: all of those plus `webhook`, `salesforce`,
|
|
494
515
|
/// `hubspot`, `marketo`. With `dry_run=True`, records are still read and run
|
|
495
516
|
/// through the real compliance engine, but the destination is never
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|