recurvedata-lib 0.1.487__tar.gz → 0.1.488__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.
Potentially problematic release.
This version of recurvedata-lib might be problematic. Click here for more details.
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/PKG-INFO +2 -2
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/README.md +1 -1
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/pyproject.toml +0 -3
- recurvedata_lib-0.1.488/recurvedata/__version__.py +1 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/client/client.py +94 -7
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/core/config.py +1 -1
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/task.py +1 -1
- recurvedata_lib-0.1.487/recurvedata/__version__.py +0 -1
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/.gitignore +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/client/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/client/server_client.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/config.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/_register.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/base.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/config_schema.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/aliyun_access_key.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/auth.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/azure_blob.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/azure_synapse.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/bigquery.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/clickhouse.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/dingtalk.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/doris.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/es.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/feishu.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/ftp.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/generic.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/google_cloud_storage.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/google_service_account.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/hive.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/impala.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/jenkins.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/mail.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/microsoft_fabric.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/mongo.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/mssql.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/mysql.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/n8n.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/oss.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/owncloud.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/phoenix.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/postgres.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/python.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/redshift.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/s3.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/sftp.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/slack.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/spark.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/starrocks.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/tencent_cos.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/tidb.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/const.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/datasource.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/dbapi.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/fs.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/ftp.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/object_store.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/pigeon.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/proxy.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/service.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/utils.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/consts.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/core/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/core/configurable.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/core/consts.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/core/templating.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/core/tracing.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/core/transformer.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/core/translation.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/dbt/client.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/dbt/consts.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/dbt/cosmos_utils.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/dbt/error_codes.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/dbt/schemas.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/dbt/service.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/dbt/utils.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/error_codes.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/exceptions.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/executors/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/executors/cli/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/executors/cli/connector.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/executors/cli/dbt.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/executors/cli/main.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/executors/cli/parameters.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/executors/client.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/executors/consts.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/executors/debug_executor.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/executors/executor.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/executors/link_executor.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/executors/models.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/executors/schemas.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/executors/service/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/executors/service/connector.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/executors/utils.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/filestorage/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/filestorage/_factory.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/filestorage/backends/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/filestorage/backends/fsspec.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/filestorage/backends/local.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/filestorage/backends/oss.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/filestorage/interface.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/base.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/config.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/context.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/dbt_operator/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/dbt_operator/model_pipeline_link_operator.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/dbt_operator/operator.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/link_operator/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/link_operator/operator.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/models.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/notify_operator/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/notify_operator/operator.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/operator.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/python_operator/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/python_operator/operator.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/sensor_operator/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/sensor_operator/airflow_utils.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/sensor_operator/operator.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/spark_operator/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/spark_operator/operator.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/spark_operator/spark_sample.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/sql_operator/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/sql_operator/operator.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/const.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/dump_aliyun_sls.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/dump_sheet_task_base.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/dump_task_cass.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/dump_task_dbapi.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/dump_task_es.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/dump_task_feishu_sheet.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/dump_task_ftp.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/dump_task_google_sheet.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/dump_task_mongodb.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/dump_task_oss.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/dump_task_python.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/dump_task_s3.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/dump_task_sftp.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_aliyun_oss.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_azure_blob.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_azure_synapse.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_clickhouse.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_doris.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_email.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_es.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_filebrowser.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_ftp.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_google_bigquery.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_google_cloud_storage.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_google_sheet.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_hive.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_microsoft_fabric.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_mssql.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_mysql.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_owncloud.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_postgresql.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_qcloud_cos.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_recurve_data_prep.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_redshift.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_s3.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_sftp.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_starrocks.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/load_task_yicrowds.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/mixin.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/operator.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/task.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/utils.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/ui.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/utils/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/utils/file_factory.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/utils/fs.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/utils/lineage.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/web_init.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/_registry.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/aliyun_oss.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/awss3.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/azure_blob.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/azure_synapse.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/cass.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/clickhouse.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/clickhouse_native.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/dbapi.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/doris.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/es.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/feishu.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/ftp.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/google_bigquery.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/google_cloud_storage.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/hbase_phoenix.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/hdfs.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/hive_impala.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/microsoft_fabric.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/mongodb.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/mssql.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/mysql.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/owncloud.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/postgresql.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/power_bi.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/qcloud_cos.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/redshift.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/sftp.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/sqlite.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/starrocks.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/connector/tableau.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/const.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/csv.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/docs/datasources-example.json +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/docs/images/pigeon_design.png +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/docs/lightweight-data-sync-solution.md +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/dumper/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/dumper/aliyun_sls.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/dumper/base.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/dumper/cass.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/dumper/dbapi.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/dumper/es.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/dumper/ftp.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/dumper/mongodb.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/handler/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/handler/base.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/handler/csv_handler.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/loader/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/loader/base.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/loader/csv_to_azure_synapse.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/loader/csv_to_clickhouse.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/loader/csv_to_doris.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/loader/csv_to_es.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/loader/csv_to_google_bigquery.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/loader/csv_to_hive.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/loader/csv_to_microsoft_fabric.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/loader/csv_to_mssql.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/loader/csv_to_mysql.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/loader/csv_to_postgresql.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/loader/csv_to_redshift.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/loader/csv_to_starrocks.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/meta.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/row_factory.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/schema/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/schema/types.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/sync.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/transformer.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/utils/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/utils/bloomfilter.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/utils/date_time.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/utils/escape.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/utils/fs.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/utils/json.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/utils/keyed_tuple.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/utils/mp.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/utils/sql.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/pigeon/utils/timing.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/provider_manager.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/providers/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/providers/dbapi/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/providers/flywheel/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/providers/mysql/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schedulers/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schedulers/airflow.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schedulers/airflow_db_process.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schedulers/airflow_operators.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schedulers/airflow_plugin.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schedulers/airflow_trigger_dag_patch.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schedulers/base.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schedulers/cli.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schedulers/client.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schedulers/consts.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schedulers/debug_celery.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schedulers/model.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schedulers/schemas.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schedulers/service.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schedulers/system_dags.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schedulers/task_status.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schedulers/utils.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schema/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schema/field.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schema/schema.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schema/types.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/schema.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/app.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/connector/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/connector/api.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/connector/schemas.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/data_service/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/data_service/api.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/data_service/client.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/data_service/consts.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/data_service/schemas.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/data_service/service.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/dbt/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/dbt/api.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/error_code.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/exceptions.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/executor/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/executor/api.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/executor/schemas.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/executor/service.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/main.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/schedulers/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/schedulers/api.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/schedulers/schemas.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/server/schemas.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/__init__.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/_typer.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/attrdict.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/command_helper.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/compat.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/compression.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/crontab.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/crypto_util.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/dataclass.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/date_time.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/dispatch.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/email_util.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/files.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/helpers.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/httputil.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/imports.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/json.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/log.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/log_capture.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/mp.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/normalizer.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/redis_lock.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/registry.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/shell.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/singleton.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/sql.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/timeout.py +0 -0
- {recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/utils/tracing.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: recurvedata-lib
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.488
|
|
4
4
|
Summary: Common Library for ReOrc Data Platform
|
|
5
5
|
Author-email: Reorc Team <contact@recurvedata.com>
|
|
6
6
|
Requires-Dist: croniter
|
|
@@ -475,7 +475,7 @@ Description-Content-Type: text/markdown
|
|
|
475
475
|
# Recurve Libraries
|
|
476
476
|
|
|
477
477
|
For the unified maintenance of public components of the Recurve platform,
|
|
478
|
-
these codes may be used in both Server and Executor (Worker) environments.
|
|
478
|
+
these codes may be used in both Server and Executor (Worker) environments.
|
|
479
479
|
|
|
480
480
|
Only Python 3.11+ are supported.
|
|
481
481
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Recurve Libraries
|
|
2
2
|
|
|
3
3
|
For the unified maintenance of public components of the Recurve platform,
|
|
4
|
-
these codes may be used in both Server and Executor (Worker) environments.
|
|
4
|
+
these codes may be used in both Server and Executor (Worker) environments.
|
|
5
5
|
|
|
6
6
|
Only Python 3.11+ are supported.
|
|
7
7
|
|
|
@@ -61,9 +61,6 @@ asyncio_mode = "auto"
|
|
|
61
61
|
[tool.hatch.version]
|
|
62
62
|
path = "recurvedata/__version__.py"
|
|
63
63
|
|
|
64
|
-
[tool.hatch.publish.index]
|
|
65
|
-
recurve-pypi = "https://repo.tool.reorc.cloud/repository/recurve_pypi_internal/"
|
|
66
|
-
|
|
67
64
|
[tool.hatch.build.targets.sdist]
|
|
68
65
|
include = ["/recurvedata"]
|
|
69
66
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.488"
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import logging
|
|
3
|
+
import os
|
|
3
4
|
import time
|
|
5
|
+
from pathlib import Path
|
|
4
6
|
from typing import Any, TypeVar, overload
|
|
5
7
|
|
|
6
8
|
import httpx
|
|
@@ -24,13 +26,90 @@ class Client:
|
|
|
24
26
|
config = AgentConfig.load()
|
|
25
27
|
self.set_config(config)
|
|
26
28
|
|
|
29
|
+
@property
|
|
30
|
+
def is_offline_mode(self) -> bool:
|
|
31
|
+
"""Check if offline mode is enabled via environment variable"""
|
|
32
|
+
return os.environ.get("RECURVE_OFFLINE_MODE", "").lower() in ("true", "1")
|
|
33
|
+
|
|
34
|
+
@property
|
|
35
|
+
def offline_data_path(self) -> Path:
|
|
36
|
+
"""Get the offline data directory path"""
|
|
37
|
+
offline_path = os.environ.get("RECURVE_OFFLINE_DATA_PATH", "offline_data")
|
|
38
|
+
return Path(offline_path)
|
|
39
|
+
|
|
27
40
|
def set_config(self, config: AgentConfig):
|
|
28
41
|
self._config = config
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
42
|
+
# Only create HTTP client if not in offline mode
|
|
43
|
+
if not self.is_offline_mode:
|
|
44
|
+
self._client = httpx.Client(
|
|
45
|
+
base_url=config.server_url,
|
|
46
|
+
timeout=config.request_timeout,
|
|
47
|
+
headers={"User-Agent": f"RecurveLib/{__version__}"},
|
|
48
|
+
)
|
|
49
|
+
else:
|
|
50
|
+
self._client = None
|
|
51
|
+
|
|
52
|
+
def _resolve_offline_file_path(self, path: str, **kwargs) -> Path:
|
|
53
|
+
"""Convert API path to local file path with parameterized support"""
|
|
54
|
+
# Remove leading /api/ prefix: /api/executor/connection -> executor/connection
|
|
55
|
+
if path.startswith("/api/"):
|
|
56
|
+
clean_path = path[5:] # Remove "/api/" prefix
|
|
57
|
+
else:
|
|
58
|
+
clean_path = path.lstrip("/")
|
|
59
|
+
|
|
60
|
+
# Extract parameters from kwargs
|
|
61
|
+
params = kwargs.get("params", {})
|
|
62
|
+
|
|
63
|
+
# CORE OPERATOR APIs with parameter-based file structure:
|
|
64
|
+
|
|
65
|
+
# 1. get_connection() API - parameterized by project_id + connection_name
|
|
66
|
+
if clean_path == "executor/connection":
|
|
67
|
+
project_id = params.get("project_id", "0")
|
|
68
|
+
connection_name = params.get("name", "default")
|
|
69
|
+
return self.offline_data_path / "executor/connection" / str(project_id) / f"{connection_name}.json"
|
|
70
|
+
|
|
71
|
+
# 2. get_py_conn_configs() API - parameterized by project_id + project_connection_name
|
|
72
|
+
elif clean_path == "executor/python-conn-configs":
|
|
73
|
+
project_id = params.get("project_id", "0")
|
|
74
|
+
# Python configs use project_connection_name as the key (fallback to other param names for compatibility)
|
|
75
|
+
# Handle empty strings properly - treat them as None/missing
|
|
76
|
+
project_connection_name = (params.get("project_connection_name") or
|
|
77
|
+
params.get("project_conn_name") or
|
|
78
|
+
params.get("pyenv_name") or
|
|
79
|
+
"default")
|
|
80
|
+
return self.offline_data_path / "executor/python-conn-configs" / str(project_id) / f"{project_connection_name}.json"
|
|
81
|
+
|
|
82
|
+
# For any other APIs, raise error do not support offline mode
|
|
83
|
+
raise APIError(f"Offline mode: {path} is not supported")
|
|
84
|
+
|
|
85
|
+
def _read_offline_data(self, method: str, path: str, response_model_class: type[ResponseModelType] | None = None, **kwargs) -> Any:
|
|
86
|
+
"""Read API response from local JSON file"""
|
|
87
|
+
file_path = self._resolve_offline_file_path(path, **kwargs)
|
|
88
|
+
|
|
89
|
+
logger.info(f"🔌 Offline mode: Reading from {file_path}")
|
|
90
|
+
|
|
91
|
+
try:
|
|
92
|
+
if not file_path.exists():
|
|
93
|
+
logger.error(f"Offline data file not found: {file_path}")
|
|
94
|
+
raise APIError(f"Offline mode: Required data file not found: {file_path}")
|
|
95
|
+
|
|
96
|
+
with open(file_path, 'r') as f:
|
|
97
|
+
resp_content = json.load(f)
|
|
98
|
+
|
|
99
|
+
# Handle response model validation (same logic as online mode)
|
|
100
|
+
if response_model_class is not None:
|
|
101
|
+
if "code" in resp_content:
|
|
102
|
+
return response_model_class.model_validate(resp_content["data"])
|
|
103
|
+
return response_model_class.model_validate(resp_content)
|
|
104
|
+
|
|
105
|
+
return resp_content.get("data", resp_content)
|
|
106
|
+
|
|
107
|
+
except APIError:
|
|
108
|
+
raise # Re-raise APIError as-is
|
|
109
|
+
except Exception as e:
|
|
110
|
+
logger.error(f"Error reading offline data from {file_path}: {e}")
|
|
111
|
+
raise APIError(f"Offline mode: Failed to read data file {file_path}: {e}")
|
|
112
|
+
|
|
34
113
|
|
|
35
114
|
@overload
|
|
36
115
|
def request(self, method: str, path: str, response_model_class: None = None, retries: int = 3, **kwargs) -> Any:
|
|
@@ -56,6 +135,11 @@ class Client:
|
|
|
56
135
|
retries: int = 1,
|
|
57
136
|
**kwargs,
|
|
58
137
|
) -> Any:
|
|
138
|
+
# Route to offline mode if enabled
|
|
139
|
+
if self.is_offline_mode:
|
|
140
|
+
return self._read_offline_data(method, path, response_model_class, **kwargs)
|
|
141
|
+
|
|
142
|
+
# Original online mode logic
|
|
59
143
|
self.prepare_header(kwargs)
|
|
60
144
|
pre_err: httpx.HTTPStatusError | None = None
|
|
61
145
|
for attempt in range(retries):
|
|
@@ -143,8 +227,11 @@ class Client:
|
|
|
143
227
|
)
|
|
144
228
|
|
|
145
229
|
def close(self):
|
|
146
|
-
self._client
|
|
230
|
+
if self._client:
|
|
231
|
+
self._client.close()
|
|
147
232
|
|
|
148
233
|
@property
|
|
149
234
|
def base_url(self) -> str:
|
|
150
|
-
|
|
235
|
+
if self.is_offline_mode:
|
|
236
|
+
return "offline://localhost"
|
|
237
|
+
return str(self._client.base_url) if self._client else ""
|
|
@@ -26,7 +26,7 @@ class Config:
|
|
|
26
26
|
"""load default config from env file or environment variables
|
|
27
27
|
|
|
28
28
|
file format:
|
|
29
|
-
RECURVE_HOST = https://
|
|
29
|
+
RECURVE_HOST = https://abc.test.domain.com
|
|
30
30
|
RECURVE_USERNAME = foo
|
|
31
31
|
RECURVE_PASSWORD = pwd123
|
|
32
32
|
"""
|
|
@@ -181,7 +181,7 @@ class BaseTask(Configurable, LineageTaskMixin):
|
|
|
181
181
|
|
|
182
182
|
@property
|
|
183
183
|
def node_url(self) -> str:
|
|
184
|
-
# https://
|
|
184
|
+
# https://abc.env.name.domain.com/datawork/workflow?p_id=257942399102349312&wf_id=258282502478635008&open_drawer=true&node_key=D2f0I
|
|
185
185
|
host = context.client.base_url # todo: correct it
|
|
186
186
|
query_string = urllib.parse.urlencode(
|
|
187
187
|
{"p_id": self.dag.project_id, "job_id": self.dag.id, "node_key": self.node.node_key, "open_drawer": "true"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.1.487"
|
|
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
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/auth.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/azure_blob.py
RENAMED
|
File without changes
|
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/bigquery.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/clickhouse.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/dingtalk.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/doris.py
RENAMED
|
File without changes
|
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/feishu.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/ftp.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/generic.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/hive.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/impala.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/jenkins.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/mail.py
RENAMED
|
File without changes
|
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/mongo.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/mssql.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/mysql.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/n8n.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/oss.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/owncloud.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/phoenix.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/postgres.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/python.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/redshift.py
RENAMED
|
File without changes
|
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/sftp.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/slack.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/spark.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/starrocks.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/tencent_cos.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/connectors/connectors/tidb.py
RENAMED
|
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
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/executors/service/__init__.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/executors/service/connector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/filestorage/backends/__init__.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/filestorage/backends/fsspec.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/filestorage/backends/local.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/dbt_operator/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/dbt_operator/operator.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/link_operator/__init__.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/link_operator/operator.py
RENAMED
|
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
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/spark_operator/__init__.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/spark_operator/operator.py
RENAMED
|
File without changes
|
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/sql_operator/__init__.py
RENAMED
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/sql_operator/operator.py
RENAMED
|
File without changes
|
|
File without changes
|
{recurvedata_lib-0.1.487 → recurvedata_lib-0.1.488}/recurvedata/operators/transfer_operator/const.py
RENAMED
|
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
|