retab 0.1.0 → 0.1.2
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.
- checksums.yaml +4 -4
- data/lib/retab/base_client.rb +168 -33
- data/lib/retab/classifications/category.rb +3 -1
- data/lib/retab/classifications/classification.rb +3 -1
- data/lib/retab/classifications/classification_consensus.rb +3 -1
- data/lib/retab/classifications/classification_decision.rb +3 -1
- data/lib/retab/classifications/classification_request.rb +3 -1
- data/lib/retab/classifications.rb +40 -25
- data/lib/retab/client.rb +0 -68
- data/lib/retab/configuration.rb +8 -6
- data/lib/retab/edit_templates/create_edit_template_request.rb +3 -1
- data/lib/retab/edit_templates/edit_template.rb +3 -1
- data/lib/retab/edit_templates/update_edit_template_request.rb +3 -1
- data/lib/retab/edit_templates.rb +36 -24
- data/lib/retab/edits/edit.rb +6 -1
- data/lib/retab/edits/edit_request.rb +3 -1
- data/lib/retab/edits.rb +45 -25
- data/lib/retab/errors.rb +21 -4
- data/lib/retab/experiment_run_metrics/experiment_by_document_metrics_response.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_by_document_target_metric.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_by_target_document_metric.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_by_target_metrics_response.rb +6 -2
- data/lib/retab/experiment_run_metrics/experiment_confusion_flow_metric.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_confusion_summary_aggregate.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_extract_summary_aggregate.rb +1 -0
- data/lib/retab/experiment_run_metrics/experiment_metric_document_ref.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_metrics_missing_error.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_metrics_stale_error.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_summary_metric_document.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_summary_metrics_response.rb +6 -2
- data/lib/retab/experiment_run_metrics/experiment_target_confusion_metric.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_vote_row.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_votes_metrics_response.rb +3 -1
- data/lib/retab/experiment_run_metrics/metrics_stale_error_last_run.rb +3 -1
- data/lib/retab/experiment_run_metrics.rb +9 -9
- data/lib/retab/experiment_run_results/error_workflow_experiment_result.rb +3 -1
- data/lib/retab/experiment_run_results/experiment_result.rb +21 -2
- data/lib/retab/experiment_run_results/experiment_result_timing.rb +3 -1
- data/lib/retab/experiment_run_results.rb +32 -8
- data/lib/retab/experiment_runs/cancel_workflow_experiment_run_response.rb +21 -2
- data/lib/retab/experiment_runs/create_experiment_run_request.rb +3 -1
- data/lib/retab/experiment_runs/experiment_run.rb +21 -2
- data/lib/retab/experiment_runs/experiment_run_timing.rb +3 -1
- data/lib/retab/experiment_runs/experiment_run_trigger.rb +1 -0
- data/lib/retab/experiment_runs.rb +56 -33
- data/lib/retab/extractions/extraction.rb +3 -1
- data/lib/retab/extractions/extraction_consensus.rb +3 -1
- data/lib/retab/extractions/extraction_request.rb +8 -3
- data/lib/retab/extractions/file_ref.rb +3 -1
- data/lib/retab/extractions/retab_usage.rb +1 -0
- data/lib/retab/extractions/sources_response.rb +3 -1
- data/lib/retab/extractions.rb +59 -33
- data/lib/retab/files/complete_file_upload_request.rb +1 -0
- data/lib/retab/files/create_upload_response.rb +3 -1
- data/lib/retab/files/file.rb +6 -1
- data/lib/retab/files/file_link.rb +3 -1
- data/lib/retab/files/upload_file_request.rb +3 -1
- data/lib/retab/files.rb +55 -29
- data/lib/retab/jobs/create_job_request.rb +3 -1
- data/lib/retab/jobs/job.rb +3 -1
- data/lib/retab/jobs/job_error.rb +3 -1
- data/lib/retab/jobs/job_response.rb +3 -1
- data/lib/retab/jobs.rb +73 -37
- data/lib/retab/mime.rb +69 -38
- data/lib/retab/paginated_list.rb +86 -0
- data/lib/retab/parses/parse.rb +3 -1
- data/lib/retab/parses/parse_output.rb +3 -1
- data/lib/retab/parses/parse_request.rb +3 -1
- data/lib/retab/parses.rb +39 -24
- data/lib/retab/partitions/partition.rb +3 -1
- data/lib/retab/partitions/partition_chunk.rb +3 -1
- data/lib/retab/partitions/partition_chunk_likelihood.rb +3 -1
- data/lib/retab/partitions/partition_consensus.rb +6 -2
- data/lib/retab/partitions/partition_request.rb +3 -1
- data/lib/retab/partitions.rb +40 -25
- data/lib/retab/schemas/generate_schema_request.rb +3 -1
- data/lib/retab/schemas/partial_schema.rb +3 -1
- data/lib/retab/schemas.rb +13 -9
- data/lib/retab/shared/http_validation_error.rb +1 -0
- data/lib/retab/shared/validation_error.rb +3 -1
- data/lib/retab/splits/split.rb +3 -1
- data/lib/retab/splits/split_consensus.rb +6 -2
- data/lib/retab/splits/split_request.rb +3 -1
- data/lib/retab/splits/split_result.rb +3 -1
- data/lib/retab/splits/split_subdocument_likelihood.rb +3 -1
- data/lib/retab/splits/subdocument.rb +3 -1
- data/lib/retab/splits.rb +39 -24
- data/lib/retab/types/actor_kind.rb +3 -3
- data/lib/retab/types/api_response.rb +2 -0
- data/lib/retab/types/assertion_drift_status.rb +3 -3
- data/lib/retab/types/assertion_outcome.rb +3 -3
- data/lib/retab/types/base_model.rb +34 -9
- data/lib/retab/types/cancel_workflow_response_cancellation_status.rb +3 -3
- data/lib/retab/types/classifications_order.rb +2 -2
- data/lib/retab/types/condition_evaluation_details_logical_operator.rb +2 -2
- data/lib/retab/types/create_experiment_request_n_consensus.rb +3 -3
- data/lib/retab/types/create_job_request_endpoint.rb +24 -12
- data/lib/retab/types/declarative_apply_response_action.rb +3 -3
- data/lib/retab/types/declarative_plan_field_change_action.rb +3 -3
- data/lib/retab/types/declarative_plan_resource_change_target.rb +3 -3
- data/lib/retab/types/declarative_plan_resource_change_type.rb +44 -22
- data/lib/retab/types/error_step_lifecycle_category.rb +3 -3
- data/lib/retab/types/error_step_lifecycle_stage.rb +7 -7
- data/lib/retab/types/experiment_block_type.rb +4 -4
- data/lib/retab/types/experiment_public_status.rb +5 -5
- data/lib/retab/types/experiment_run_metrics_view.rb +4 -4
- data/lib/retab/types/experiment_run_results_order.rb +9 -0
- data/lib/retab/types/experiment_schema_drift_status.rb +4 -4
- data/lib/retab/types/field_type.rb +2 -2
- data/lib/retab/types/generate_schema_request_reasoning_effort.rb +6 -6
- data/lib/retab/types/handle_payload_type.rb +3 -3
- data/lib/retab/types/job_status.rb +7 -7
- data/lib/retab/types/jobs_source.rb +3 -3
- data/lib/retab/types/latest_block_test_run_summary_status.rb +6 -6
- data/lib/retab/types/length_compare_condition_op.rb +6 -6
- data/lib/retab/types/list_struct.rb +13 -50
- data/lib/retab/types/parse_request_table_parsing_format.rb +4 -4
- data/lib/retab/types/request_options.rb +2 -0
- data/lib/retab/types/resume_status.rb +5 -4
- data/lib/retab/types/review_decision_status.rb +5 -5
- data/lib/retab/types/review_evaluation_review_decision.rb +2 -2
- data/lib/retab/types/similarity_gte_condition_method.rb +2 -2
- data/lib/retab/types/sources_response_document_type.rb +6 -6
- data/lib/retab/types/step_artifact_ref_operation.rb +24 -12
- data/lib/retab/types/submission_status.rb +3 -3
- data/lib/retab/types/update_workflow_block_request_config_mode.rb +2 -2
- data/lib/retab/types/while_loop_termination_termination_reason.rb +3 -3
- data/lib/retab/types/workflow_block_create_request_type.rb +30 -15
- data/lib/retab/types/workflow_block_executions_order.rb +9 -0
- data/lib/retab/types/workflow_block_type.rb +40 -20
- data/lib/retab/types/workflow_experiments_order.rb +9 -0
- data/lib/retab/types/workflow_export_payload_request_exclude_status.rb +8 -8
- data/lib/retab/types/workflow_export_payload_request_export_source.rb +2 -2
- data/lib/retab/types/workflow_export_payload_request_trigger_types.rb +6 -6
- data/lib/retab/types/workflow_test_run_results_order.rb +9 -0
- data/lib/retab/types/{workflow_config_block_type.rb → workflow_tests_order.rb} +1 -1
- data/lib/retab/util.rb +4 -2
- data/lib/retab/version.rb +3 -1
- data/lib/retab/workflow_artifacts/api_call_attempt.rb +3 -1
- data/lib/retab/workflow_artifacts/api_call_invocation.rb +3 -1
- data/lib/retab/workflow_artifacts/b_box.rb +3 -1
- data/lib/retab/workflow_artifacts/classification_workflow_artifact.rb +3 -1
- data/lib/retab/workflow_artifacts/condition_evaluation_details.rb +6 -2
- data/lib/retab/workflow_artifacts/condition_evaluation_per_item.rb +3 -1
- data/lib/retab/workflow_artifacts/condition_evaluation_result.rb +6 -2
- data/lib/retab/workflow_artifacts/condition_evaluation_sub_condition.rb +3 -1
- data/lib/retab/workflow_artifacts/conditional_evaluation.rb +3 -1
- data/lib/retab/workflow_artifacts/edit_config.rb +1 -0
- data/lib/retab/workflow_artifacts/edit_result.rb +3 -1
- data/lib/retab/workflow_artifacts/edit_workflow_artifact.rb +6 -1
- data/lib/retab/workflow_artifacts/extraction_workflow_artifact.rb +3 -1
- data/lib/retab/workflow_artifacts/form_field.rb +3 -1
- data/lib/retab/workflow_artifacts/function_invocation.rb +3 -1
- data/lib/retab/workflow_artifacts/parse_workflow_artifact.rb +3 -1
- data/lib/retab/workflow_artifacts/partition_workflow_artifact.rb +3 -1
- data/lib/retab/workflow_artifacts/review_evaluation.rb +3 -1
- data/lib/retab/workflow_artifacts/split_workflow_artifact.rb +3 -1
- data/lib/retab/workflow_artifacts/while_loop_termination.rb +3 -1
- data/lib/retab/workflow_artifacts/workflow_artifact.rb +3 -1
- data/lib/retab/workflow_artifacts.rb +20 -13
- data/lib/retab/workflow_block_executions/completed_block_execution_lifecycle.rb +1 -0
- data/lib/retab/workflow_block_executions/create_block_execution_request.rb +3 -1
- data/lib/retab/workflow_block_executions/error_block_execution_lifecycle.rb +3 -1
- data/lib/retab/workflow_block_executions/skipped_block_execution_lifecycle.rb +3 -1
- data/lib/retab/workflow_block_executions/stored_block_execution.rb +15 -2
- data/lib/retab/workflow_block_executions.rb +40 -15
- data/lib/retab/workflow_blocks/update_workflow_block_request.rb +3 -1
- data/lib/retab/workflow_blocks/workflow_block.rb +3 -1
- data/lib/retab/workflow_blocks/workflow_block_create_request.rb +3 -1
- data/lib/retab/workflow_blocks.rb +52 -36
- data/lib/retab/workflow_edges/workflow_edge_create_request.rb +3 -1
- data/lib/retab/workflow_edges/workflow_edge_doc.rb +3 -1
- data/lib/retab/workflow_edges.rb +36 -22
- data/lib/retab/workflow_experiments/create_experiment_request.rb +9 -3
- data/lib/retab/workflow_experiments/experiment_document_capture_request.rb +3 -1
- data/lib/retab/workflow_experiments/experiment_document_provenance.rb +3 -1
- data/lib/retab/workflow_experiments/explicit_experiment_document_request.rb +3 -1
- data/lib/retab/workflow_experiments/update_experiment_request.rb +9 -3
- data/lib/retab/workflow_experiments/workflow_experiment.rb +3 -1
- data/lib/retab/workflow_experiments.rb +70 -23
- data/lib/retab/workflow_review_versions/create_review_version_request.rb +3 -1
- data/lib/retab/workflow_review_versions/review_version.rb +3 -1
- data/lib/retab/workflow_review_versions.rb +25 -17
- data/lib/retab/workflow_reviews/actor.rb +3 -1
- data/lib/retab/workflow_reviews/approve_review_request.rb +1 -0
- data/lib/retab/workflow_reviews/reject_review_request.rb +3 -1
- data/lib/retab/workflow_reviews/review.rb +37 -2
- data/lib/retab/workflow_reviews/review_all_of.rb +39 -2
- data/lib/retab/workflow_reviews/review_always.rb +1 -0
- data/lib/retab/workflow_reviews/review_any_of.rb +39 -2
- data/lib/retab/workflow_reviews/review_any_required_field_null.rb +1 -0
- data/lib/retab/workflow_reviews/review_any_split_pages_lt.rb +3 -1
- data/lib/retab/workflow_reviews/review_boundary_confidence_lt.rb +3 -1
- data/lib/retab/workflow_reviews/review_branch_in.rb +3 -1
- data/lib/retab/workflow_reviews/review_category_in.rb +3 -1
- data/lib/retab/workflow_reviews/review_confidence_lt.rb +3 -1
- data/lib/retab/workflow_reviews/review_decision.rb +3 -1
- data/lib/retab/workflow_reviews/review_field_confidence_lt.rb +3 -1
- data/lib/retab/workflow_reviews/review_json_condition.rb +3 -1
- data/lib/retab/workflow_reviews/review_split_count_neq.rb +3 -1
- data/lib/retab/workflow_reviews/review_top_margin_lt.rb +3 -1
- data/lib/retab/workflow_reviews/review_validation_failed.rb +1 -0
- data/lib/retab/workflow_reviews/submit_decision_response.rb +3 -1
- data/lib/retab/workflow_reviews.rb +47 -22
- data/lib/retab/workflow_runs/api_trigger.rb +3 -1
- data/lib/retab/workflow_runs/awaiting_review_run.rb +3 -1
- data/lib/retab/workflow_runs/cancel_workflow_request.rb +1 -0
- data/lib/retab/workflow_runs/cancel_workflow_response.rb +3 -1
- data/lib/retab/workflow_runs/cancelled_terminal.rb +3 -1
- data/lib/retab/workflow_runs/create_workflow_run_request.rb +16 -0
- data/lib/retab/workflow_runs/email_trigger.rb +3 -1
- data/lib/retab/workflow_runs/error_details.rb +3 -1
- data/lib/retab/workflow_runs/error_terminal.rb +3 -1
- data/lib/retab/workflow_runs/manual_trigger.rb +3 -1
- data/lib/retab/workflow_runs/pending_run.rb +1 -0
- data/lib/retab/workflow_runs/restart_trigger.rb +3 -1
- data/lib/retab/workflow_runs/run_inputs.rb +3 -1
- data/lib/retab/workflow_runs/run_timing.rb +3 -1
- data/lib/retab/workflow_runs/running_run.rb +1 -0
- data/lib/retab/workflow_runs/schedule_trigger.rb +3 -1
- data/lib/retab/workflow_runs/webhook_trigger.rb +3 -1
- data/lib/retab/workflow_runs/workflow_export_payload_request.rb +3 -1
- data/lib/retab/workflow_runs/workflow_export_payload_response.rb +3 -1
- data/lib/retab/workflow_runs/workflow_run.rb +39 -3
- data/lib/retab/workflow_runs/workflow_snapshot_ref.rb +3 -1
- data/lib/retab/workflow_runs.rb +97 -47
- data/lib/retab/{workflow_specs → workflow_spec}/declarative_apply_response.rb +6 -2
- data/lib/retab/{workflow_specs → workflow_spec}/declarative_export_response.rb +3 -1
- data/lib/retab/{workflow_specs → workflow_spec}/declarative_plan_change.rb +6 -2
- data/lib/retab/{workflow_specs → workflow_spec}/declarative_plan_field_change.rb +3 -1
- data/lib/retab/{workflow_specs → workflow_spec}/declarative_plan_resource_change.rb +3 -1
- data/lib/retab/{workflow_specs → workflow_spec}/declarative_plan_response.rb +6 -2
- data/lib/retab/{workflow_specs → workflow_spec}/declarative_plan_summary.rb +3 -1
- data/lib/retab/{workflow_specs → workflow_spec}/declarative_validation_response.rb +3 -1
- data/lib/retab/{workflow_specs → workflow_spec}/declarative_workflow_request.rb +1 -0
- data/lib/retab/{workflow_specs.rb → workflow_spec.rb} +29 -13
- data/lib/retab/workflow_steps/awaiting_review_step_lifecycle.rb +1 -0
- data/lib/retab/workflow_steps/cancelled_step_lifecycle.rb +3 -1
- data/lib/retab/workflow_steps/container_context_data.rb +3 -1
- data/lib/retab/workflow_steps/error_step_lifecycle.rb +3 -1
- data/lib/retab/workflow_steps/handle_payload.rb +3 -1
- data/lib/retab/workflow_steps/queued_step_lifecycle.rb +1 -0
- data/lib/retab/workflow_steps/step_artifact_ref.rb +3 -1
- data/lib/retab/workflow_steps/workflow_run_step.rb +28 -3
- data/lib/retab/workflow_steps.rb +34 -17
- data/lib/retab/workflow_test_run_results/assertion_failure.rb +3 -1
- data/lib/retab/workflow_test_run_results/assertion_result.rb +3 -1
- data/lib/retab/workflow_test_run_results/file_handle_input.rb +3 -1
- data/lib/retab/workflow_test_run_results/json_handle_input.rb +3 -1
- data/lib/retab/workflow_test_run_results/manual_workflow_test_source.rb +3 -1
- data/lib/retab/workflow_test_run_results/materialized_document.rb +3 -1
- data/lib/retab/workflow_test_run_results/run_step_workflow_test_source.rb +3 -1
- data/lib/retab/workflow_test_run_results/verdict_summary.rb +3 -1
- data/lib/retab/workflow_test_run_results/workflow_test_result.rb +31 -3
- data/lib/retab/workflow_test_run_results.rb +35 -8
- data/lib/retab/workflow_test_runs/block_test_batch_execution_counts.rb +3 -1
- data/lib/retab/workflow_test_runs/block_test_lifecycle_counts.rb +3 -1
- data/lib/retab/workflow_test_runs/block_test_outcome_counts.rb +3 -1
- data/lib/retab/workflow_test_runs/create_workflow_test_run_request.rb +30 -1
- data/lib/retab/workflow_test_runs/workflow_test_block_target.rb +3 -1
- data/lib/retab/workflow_test_runs/workflow_test_run.rb +39 -3
- data/lib/retab/{workflows/workflow_diagnosis_issue.rb → workflow_test_runs/workflow_test_run_block_scope.rb} +7 -11
- data/lib/retab/workflow_test_runs/workflow_test_run_single_scope.rb +25 -0
- data/lib/retab/workflow_test_runs/workflow_test_run_timing.rb +3 -1
- data/lib/retab/{workflows/workflow_block_position.rb → workflow_test_runs/workflow_test_run_workflow_scope.rb} +5 -8
- data/lib/retab/workflow_test_runs.rb +66 -32
- data/lib/retab/workflow_tests/all_items_match_condition.rb +39 -2
- data/lib/retab/workflow_tests/any_item_matches_condition.rb +39 -2
- data/lib/retab/workflow_tests/array_contains_condition.rb +3 -1
- data/lib/retab/workflow_tests/assertion_schema_dep.rb +3 -1
- data/lib/retab/workflow_tests/assertion_spec.rb +39 -2
- data/lib/retab/workflow_tests/between_condition.rb +3 -1
- data/lib/retab/workflow_tests/contain_condition.rb +3 -1
- data/lib/retab/workflow_tests/create_workflow_test_request.rb +13 -2
- data/lib/retab/workflow_tests/ends_with_condition.rb +3 -1
- data/lib/retab/workflow_tests/equal_condition.rb +3 -1
- data/lib/retab/workflow_tests/exist_condition.rb +1 -0
- data/lib/retab/workflow_tests/json_schema_valid_condition.rb +3 -1
- data/lib/retab/workflow_tests/latest_block_test_run_summary.rb +3 -1
- data/lib/retab/workflow_tests/length_compare_condition.rb +3 -1
- data/lib/retab/workflow_tests/llm_judged_as_condition.rb +3 -1
- data/lib/retab/workflow_tests/llm_not_judged_as_condition.rb +3 -1
- data/lib/retab/workflow_tests/matche_regex_condition.rb +3 -1
- data/lib/retab/workflow_tests/not_contains_condition.rb +3 -1
- data/lib/retab/workflow_tests/not_equals_condition.rb +3 -1
- data/lib/retab/workflow_tests/not_exists_condition.rb +1 -0
- data/lib/retab/workflow_tests/number_compare_condition.rb +3 -1
- data/lib/retab/workflow_tests/object_contains_condition.rb +3 -1
- data/lib/retab/workflow_tests/output_target.rb +3 -1
- data/lib/retab/workflow_tests/similarity_gte_condition.rb +3 -1
- data/lib/retab/workflow_tests/split_iou_condition.rb +3 -1
- data/lib/retab/workflow_tests/start_with_condition.rb +3 -1
- data/lib/retab/workflow_tests/update_workflow_test_request.rb +13 -2
- data/lib/retab/workflow_tests/workflow_test.rb +19 -4
- data/lib/retab/workflow_tests.rb +68 -21
- data/lib/retab/workflows/create_workflow_request.rb +3 -1
- data/lib/retab/workflows/publish_workflow_request.rb +1 -0
- data/lib/retab/workflows/update_workflow_request.rb +3 -1
- data/lib/retab/workflows/workflow.rb +3 -4
- data/lib/retab/workflows/workflow_published.rb +3 -1
- data/lib/retab/workflows.rb +76 -55
- data/lib/retab.rb +6 -6
- data/rbi/retab/classifications.rbi +1 -1
- data/rbi/retab/client.rbi +0 -51
- data/rbi/retab/create_workflow_run_request.rbi +24 -0
- data/rbi/retab/create_workflow_test_run_request.rbi +12 -0
- data/rbi/retab/edit.rbi +6 -0
- data/rbi/retab/edit_template.rbi +4 -4
- data/rbi/retab/edit_templates.rbi +1 -1
- data/rbi/retab/edit_workflow_artifact.rbi +6 -0
- data/rbi/retab/edits.rbi +4 -1
- data/rbi/retab/email_trigger.rbi +2 -2
- data/rbi/retab/experiment_run_results.rbi +5 -2
- data/rbi/retab/experiment_runs.rbi +2 -3
- data/rbi/retab/extraction_request.rbi +6 -0
- data/rbi/retab/extractions.rbi +3 -2
- data/rbi/retab/file.rbi +10 -4
- data/rbi/retab/files.rbi +2 -2
- data/rbi/retab/jobs.rbi +1 -1
- data/rbi/retab/parses.rbi +1 -1
- data/rbi/retab/partitions.rbi +1 -1
- data/rbi/retab/splits.rbi +1 -1
- data/rbi/retab/workflow.rbi +0 -6
- data/rbi/retab/workflow_artifacts.rbi +1 -1
- data/rbi/retab/workflow_block_executions.rbi +5 -2
- data/rbi/retab/workflow_blocks.rbi +4 -1
- data/rbi/retab/workflow_edges.rbi +1 -1
- data/rbi/retab/workflow_experiments.rbi +15 -2
- data/rbi/retab/workflow_review_versions.rbi +1 -1
- data/rbi/retab/workflow_reviews.rbi +4 -1
- data/rbi/retab/workflow_runs.rbi +6 -2
- data/rbi/retab/{workflow_specs.rbi → workflow_spec.rbi} +1 -1
- data/rbi/retab/workflow_steps.rbi +3 -2
- data/rbi/retab/{workflow_diagnosis_issue.rbi → workflow_test_run_block_scope.rbi} +4 -16
- data/rbi/retab/workflow_test_run_results.rbi +6 -2
- data/rbi/retab/workflow_test_run_single_scope.rbi +30 -0
- data/rbi/retab/{workflow_block_position.rbi → workflow_test_run_workflow_scope.rbi} +5 -11
- data/rbi/retab/workflow_test_runs.rbi +5 -4
- data/rbi/retab/workflow_tests.rbi +11 -2
- data/rbi/retab/workflows.rbi +28 -12
- metadata +25 -31
- data/lib/retab/types/workflow_diagnosis_issue_severity.rb +0 -14
- data/lib/retab/workflows/workflow_config_block.rb +0 -44
- data/lib/retab/workflows/workflow_config_edge.rb +0 -35
- data/lib/retab/workflows/workflow_diagnosis_response.rb +0 -29
- data/lib/retab/workflows/workflow_diagnosis_stats.rb +0 -29
- data/lib/retab/workflows/workflow_email_trigger.rb +0 -23
- data/lib/retab/workflows/workflow_graph_diagnosis_request.rb +0 -26
- data/rbi/retab/workflow_config_block.rbi +0 -72
- data/rbi/retab/workflow_config_edge.rbi +0 -54
- data/rbi/retab/workflow_diagnosis_response.rbi +0 -42
- data/rbi/retab/workflow_diagnosis_stats.rbi +0 -42
- data/rbi/retab/workflow_email_trigger.rbi +0 -30
- data/rbi/retab/workflow_graph_diagnosis_request.rbi +0 -36
data/lib/retab/jobs.rb
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# This file is auto-generated by oagen. Do not edit.
|
|
4
4
|
|
|
5
|
-
require
|
|
5
|
+
require "json"
|
|
6
6
|
|
|
7
7
|
module Retab
|
|
8
8
|
class Jobs
|
|
@@ -32,12 +32,12 @@ module Retab
|
|
|
32
32
|
# @param include_request [Boolean, nil] Whether to include the full original request body in each listed job.
|
|
33
33
|
# @param include_response [Boolean, nil] Whether to include full response payloads in each listed job.
|
|
34
34
|
# @param request_options [Hash] (see Retab::Types::RequestOptions)
|
|
35
|
-
# @return [Retab::
|
|
35
|
+
# @return [Retab::PaginatedList<Retab::Job>]
|
|
36
36
|
def list(
|
|
37
37
|
before: nil,
|
|
38
38
|
after: nil,
|
|
39
39
|
limit: 20,
|
|
40
|
-
order:
|
|
40
|
+
order: "desc",
|
|
41
41
|
job_id: nil,
|
|
42
42
|
status: nil,
|
|
43
43
|
endpoint: nil,
|
|
@@ -57,35 +57,35 @@ module Retab
|
|
|
57
57
|
request_options: {}
|
|
58
58
|
)
|
|
59
59
|
params = {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
60
|
+
"before" => before,
|
|
61
|
+
"after" => after,
|
|
62
|
+
"limit" => limit,
|
|
63
|
+
"order" => order,
|
|
64
|
+
"job_id" => job_id,
|
|
65
|
+
"status" => status,
|
|
66
|
+
"endpoint" => endpoint,
|
|
67
|
+
"source" => source,
|
|
68
|
+
"project_id" => project_id,
|
|
69
|
+
"workflow_id" => workflow_id,
|
|
70
|
+
"workflow_block_id" => workflow_block_id,
|
|
71
|
+
"model" => model,
|
|
72
|
+
"filename_regex" => filename_regex,
|
|
73
|
+
"filename_contains" => filename_contains,
|
|
74
|
+
"document_type" => document_type,
|
|
75
|
+
"from_date" => from_date,
|
|
76
|
+
"to_date" => to_date,
|
|
77
|
+
"metadata" => metadata,
|
|
78
|
+
"include_request" => include_request,
|
|
79
|
+
"include_response" => include_response
|
|
80
80
|
}.compact
|
|
81
81
|
response = @client.request(
|
|
82
82
|
method: :get,
|
|
83
|
-
path:
|
|
83
|
+
path: "/v1/jobs",
|
|
84
84
|
auth: true,
|
|
85
85
|
params: params,
|
|
86
86
|
request_options: request_options
|
|
87
87
|
)
|
|
88
|
-
fetch_next = ->(cursor) {
|
|
88
|
+
fetch_next = -> (cursor) {
|
|
89
89
|
list(
|
|
90
90
|
before: before,
|
|
91
91
|
after: cursor,
|
|
@@ -110,10 +110,30 @@ module Retab
|
|
|
110
110
|
request_options: request_options
|
|
111
111
|
)
|
|
112
112
|
}
|
|
113
|
-
Retab::
|
|
113
|
+
Retab::PaginatedList.from_response(
|
|
114
114
|
response,
|
|
115
115
|
model: Retab::Job,
|
|
116
|
-
filters: {
|
|
116
|
+
filters: {
|
|
117
|
+
before: before,
|
|
118
|
+
limit: limit,
|
|
119
|
+
order: order,
|
|
120
|
+
job_id: job_id,
|
|
121
|
+
status: status,
|
|
122
|
+
endpoint: endpoint,
|
|
123
|
+
source: source,
|
|
124
|
+
project_id: project_id,
|
|
125
|
+
workflow_id: workflow_id,
|
|
126
|
+
workflow_block_id: workflow_block_id,
|
|
127
|
+
model: model,
|
|
128
|
+
filename_regex: filename_regex,
|
|
129
|
+
filename_contains: filename_contains,
|
|
130
|
+
document_type: document_type,
|
|
131
|
+
from_date: from_date,
|
|
132
|
+
to_date: to_date,
|
|
133
|
+
metadata: metadata,
|
|
134
|
+
include_request: include_request,
|
|
135
|
+
include_response: include_response
|
|
136
|
+
},
|
|
117
137
|
fetch_next: fetch_next
|
|
118
138
|
)
|
|
119
139
|
end
|
|
@@ -131,19 +151,23 @@ module Retab
|
|
|
131
151
|
request_options: {}
|
|
132
152
|
)
|
|
133
153
|
body = {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
154
|
+
"endpoint" => endpoint,
|
|
155
|
+
"request" => request,
|
|
156
|
+
"metadata" => metadata
|
|
137
157
|
}.compact
|
|
138
158
|
response = @client.request(
|
|
139
159
|
method: :post,
|
|
140
|
-
path:
|
|
160
|
+
path: "/v1/jobs",
|
|
141
161
|
auth: true,
|
|
142
162
|
body: body,
|
|
143
163
|
request_options: request_options
|
|
144
164
|
)
|
|
145
165
|
result = Retab::Job.new(response.body)
|
|
146
|
-
result.last_response = Retab::Types::ApiResponse.new(
|
|
166
|
+
result.last_response = Retab::Types::ApiResponse.new(
|
|
167
|
+
http_status: response.code.to_i,
|
|
168
|
+
http_headers: response.each_header.to_h,
|
|
169
|
+
request_id: response["x-request-id"]
|
|
170
|
+
)
|
|
147
171
|
result
|
|
148
172
|
end
|
|
149
173
|
|
|
@@ -160,8 +184,8 @@ module Retab
|
|
|
160
184
|
request_options: {}
|
|
161
185
|
)
|
|
162
186
|
params = {
|
|
163
|
-
|
|
164
|
-
|
|
187
|
+
"include_request" => include_request,
|
|
188
|
+
"include_response" => include_response
|
|
165
189
|
}.compact
|
|
166
190
|
response = @client.request(
|
|
167
191
|
method: :get,
|
|
@@ -171,7 +195,11 @@ module Retab
|
|
|
171
195
|
request_options: request_options
|
|
172
196
|
)
|
|
173
197
|
result = Retab::Job.new(response.body)
|
|
174
|
-
result.last_response = Retab::Types::ApiResponse.new(
|
|
198
|
+
result.last_response = Retab::Types::ApiResponse.new(
|
|
199
|
+
http_status: response.code.to_i,
|
|
200
|
+
http_headers: response.each_header.to_h,
|
|
201
|
+
request_id: response["x-request-id"]
|
|
202
|
+
)
|
|
175
203
|
result
|
|
176
204
|
end
|
|
177
205
|
|
|
@@ -190,7 +218,11 @@ module Retab
|
|
|
190
218
|
request_options: request_options
|
|
191
219
|
)
|
|
192
220
|
result = Retab::Job.new(response.body)
|
|
193
|
-
result.last_response = Retab::Types::ApiResponse.new(
|
|
221
|
+
result.last_response = Retab::Types::ApiResponse.new(
|
|
222
|
+
http_status: response.code.to_i,
|
|
223
|
+
http_headers: response.each_header.to_h,
|
|
224
|
+
request_id: response["x-request-id"]
|
|
225
|
+
)
|
|
194
226
|
result
|
|
195
227
|
end
|
|
196
228
|
|
|
@@ -209,7 +241,11 @@ module Retab
|
|
|
209
241
|
request_options: request_options
|
|
210
242
|
)
|
|
211
243
|
result = Retab::Job.new(response.body)
|
|
212
|
-
result.last_response = Retab::Types::ApiResponse.new(
|
|
244
|
+
result.last_response = Retab::Types::ApiResponse.new(
|
|
245
|
+
http_status: response.code.to_i,
|
|
246
|
+
http_headers: response.each_header.to_h,
|
|
247
|
+
request_id: response["x-request-id"]
|
|
248
|
+
)
|
|
213
249
|
result
|
|
214
250
|
end
|
|
215
251
|
end
|
data/lib/retab/mime.rb
CHANGED
|
@@ -9,9 +9,10 @@
|
|
|
9
9
|
# MimeData input handling from the Python (`prepare_mime_document`), Node
|
|
10
10
|
# (`coerceMimeData`), Go (`InferMIMEData`), and Rust (`From<T>` impls) SDKs.
|
|
11
11
|
|
|
12
|
-
require
|
|
13
|
-
require
|
|
14
|
-
require
|
|
12
|
+
require "base64"
|
|
13
|
+
require "pathname"
|
|
14
|
+
require "stringio"
|
|
15
|
+
require "uri"
|
|
15
16
|
|
|
16
17
|
module Retab
|
|
17
18
|
# Wire-shape MimeData. Mirrors the spec's `MIMEData` component schema.
|
|
@@ -29,7 +30,7 @@ module Retab
|
|
|
29
30
|
# - `String` containing a path on disk (falls back to file-read)
|
|
30
31
|
# - `Hash` with `:filename` + `:url` keys (already-built wire shape)
|
|
31
32
|
class MimeData
|
|
32
|
-
attr_accessor :filename, :url
|
|
33
|
+
attr_accessor :filename, :url, :mime_type
|
|
33
34
|
|
|
34
35
|
# Set by resource methods when MimeData is returned from the API (see
|
|
35
36
|
# `Files#complete_upload`). Mirrors the spec-derived models' BaseModel
|
|
@@ -44,20 +45,24 @@ module Retab
|
|
|
44
45
|
# `MIMEData` field via `Retab::MimeData.new(hash[:document])`):
|
|
45
46
|
# Retab::MimeData.new({ filename: 'x.pdf', url: 'data:...' })
|
|
46
47
|
# Retab::MimeData.new('{"filename": "x.pdf", "url": "data:..."}')
|
|
47
|
-
def initialize(arg = nil, filename: nil, url: nil)
|
|
48
|
+
def initialize(arg = nil, filename: nil, url: nil, mime_type: nil)
|
|
48
49
|
case arg
|
|
49
50
|
when nil
|
|
50
51
|
@filename = filename
|
|
51
52
|
@url = url
|
|
53
|
+
@mime_type = mime_type
|
|
52
54
|
when Hash
|
|
53
55
|
sym = arg.transform_keys(&:to_sym)
|
|
54
56
|
@filename = sym[:filename]
|
|
55
57
|
@url = sym[:url]
|
|
58
|
+
@mime_type = sym[:mime_type] || sym[:mimeType]
|
|
56
59
|
when String
|
|
57
|
-
require
|
|
60
|
+
require "json"
|
|
61
|
+
|
|
58
62
|
parsed = JSON.parse(arg, symbolize_names: true)
|
|
59
63
|
@filename = parsed[:filename]
|
|
60
64
|
@url = parsed[:url]
|
|
65
|
+
@mime_type = parsed[:mime_type] || parsed[:mimeType]
|
|
61
66
|
else
|
|
62
67
|
raise ArgumentError, "cannot initialize Retab::MimeData from #{arg.class}"
|
|
63
68
|
end
|
|
@@ -77,20 +82,33 @@ module Retab
|
|
|
77
82
|
when String
|
|
78
83
|
from_string(input)
|
|
79
84
|
else
|
|
80
|
-
raise
|
|
85
|
+
raise(
|
|
86
|
+
ArgumentError,
|
|
81
87
|
"cannot coerce #{input.class} to Retab::MimeData; supply a Pathname, IO, String (URL or path), Hash, or MimeData"
|
|
88
|
+
)
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def self.coerce_document_map(input)
|
|
93
|
+
unless input.respond_to?(:transform_values)
|
|
94
|
+
raise ArgumentError, "cannot coerce #{input.class} to a Retab::MimeData document map"
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
input.transform_values do |document|
|
|
98
|
+
file_ref_like?(document) ? document : coerce(document)
|
|
82
99
|
end
|
|
83
100
|
end
|
|
84
101
|
|
|
85
102
|
def to_h
|
|
86
|
-
{
|
|
103
|
+
{filename: filename, url: url, mime_type: mime_type}
|
|
87
104
|
end
|
|
88
105
|
|
|
89
106
|
# JSON serialization. Body construction in resource methods passes the
|
|
90
107
|
# MimeData object straight into `JSON.generate`; without `to_json` it
|
|
91
108
|
# would fall back to `to_s` and ship the inspect string.
|
|
92
109
|
def to_json(*args)
|
|
93
|
-
require
|
|
110
|
+
require "json"
|
|
111
|
+
|
|
94
112
|
to_h.to_json(*args)
|
|
95
113
|
end
|
|
96
114
|
|
|
@@ -101,61 +119,74 @@ module Retab
|
|
|
101
119
|
private_class_method def self.from_pathname(path)
|
|
102
120
|
bytes = path.binread
|
|
103
121
|
filename = path.basename.to_s
|
|
104
|
-
|
|
122
|
+
mime_type = guess_mime_type(filename) || "application/octet-stream"
|
|
123
|
+
new(filename: filename, url: bytes_to_data_url(bytes, filename, mime: mime_type), mime_type: mime_type)
|
|
105
124
|
end
|
|
106
125
|
|
|
107
126
|
private_class_method def self.from_io(io)
|
|
108
127
|
io.binmode if io.respond_to?(:binmode)
|
|
109
128
|
bytes = io.read
|
|
110
|
-
filename = io.respond_to?(:path) && io.path ? ::File.basename(io.path) :
|
|
111
|
-
|
|
129
|
+
filename = io.respond_to?(:path) && io.path ? ::File.basename(io.path) : "document"
|
|
130
|
+
mime_type = guess_mime_type(filename) || "application/octet-stream"
|
|
131
|
+
new(filename: filename, url: bytes_to_data_url(bytes, filename, mime: mime_type), mime_type: mime_type)
|
|
112
132
|
end
|
|
113
133
|
|
|
114
134
|
private_class_method def self.from_hash(hash)
|
|
115
135
|
sym = hash.transform_keys(&:to_sym)
|
|
116
|
-
new(
|
|
136
|
+
new(
|
|
137
|
+
filename: sym.fetch(:filename, "document"),
|
|
138
|
+
url: sym.fetch(:url),
|
|
139
|
+
mime_type: sym[:mime_type] || sym[:mimeType]
|
|
140
|
+
)
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
private_class_method def self.file_ref_like?(input)
|
|
144
|
+
return true if defined?(Retab::FileRef) && input.is_a?(Retab::FileRef)
|
|
145
|
+
return false unless input.is_a?(Hash)
|
|
146
|
+
|
|
147
|
+
input.key?(:id) || input.key?("id")
|
|
117
148
|
end
|
|
118
149
|
|
|
119
150
|
private_class_method def self.from_string(str)
|
|
120
151
|
if str.match?(%r{\A(https?|gs|data):}i)
|
|
121
152
|
# It's a URL.
|
|
122
|
-
filename =
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
new(filename: filename, url: str)
|
|
153
|
+
filename = begin
|
|
154
|
+
uri = URI.parse(str)
|
|
155
|
+
::File.basename(uri.path.to_s.empty? ? "document" : uri.path)
|
|
156
|
+
rescue URI::InvalidURIError
|
|
157
|
+
"document"
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
new(filename: filename, url: str, mime_type: guess_mime_type(filename))
|
|
130
161
|
elsif ::File.exist?(str)
|
|
131
162
|
from_pathname(Pathname.new(str))
|
|
132
163
|
else
|
|
133
164
|
# Treat as raw text payload — base64-encode as a data URL.
|
|
134
|
-
new(filename:
|
|
165
|
+
new(filename: "document", url: bytes_to_data_url(str, "document", mime: "text/plain"), mime_type: "text/plain")
|
|
135
166
|
end
|
|
136
167
|
end
|
|
137
168
|
|
|
138
169
|
private_class_method def self.bytes_to_data_url(bytes, filename, mime: nil)
|
|
139
|
-
mime ||= guess_mime_type(filename) ||
|
|
170
|
+
mime ||= guess_mime_type(filename) || "application/octet-stream"
|
|
140
171
|
"data:#{mime};base64,#{Base64.strict_encode64(bytes)}"
|
|
141
172
|
end
|
|
142
173
|
|
|
143
174
|
EXTENSION_MIME_MAP = {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
175
|
+
".pdf" => "application/pdf",
|
|
176
|
+
".png" => "image/png",
|
|
177
|
+
".jpg" => "image/jpeg",
|
|
178
|
+
".jpeg" => "image/jpeg",
|
|
179
|
+
".gif" => "image/gif",
|
|
180
|
+
".webp" => "image/webp",
|
|
181
|
+
".txt" => "text/plain",
|
|
182
|
+
".csv" => "text/csv",
|
|
183
|
+
".json" => "application/json",
|
|
184
|
+
".xml" => "application/xml",
|
|
185
|
+
".html" => "text/html",
|
|
186
|
+
".md" => "text/markdown",
|
|
187
|
+
".docx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
188
|
+
".xlsx" => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
189
|
+
".pptx" => "application/vnd.openxmlformats-officedocument.presentationml.presentation"
|
|
159
190
|
}.freeze
|
|
160
191
|
|
|
161
192
|
private_class_method def self.guess_mime_type(filename)
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This file is auto-generated by oagen. Do not edit.
|
|
4
|
+
|
|
5
|
+
# @oagen-ignore-file
|
|
6
|
+
#
|
|
7
|
+
# Cross-language paginated-list wrapper. See
|
|
8
|
+
# .notes/blueprints/sdk-pagination-contract.md for the full contract.
|
|
9
|
+
#
|
|
10
|
+
# Every `def list` method on a Retab service returns one of these. The
|
|
11
|
+
# class includes `Enumerable`, so callers can iterate every page
|
|
12
|
+
# transparently with `#each`, `#map`, `#select`, etc. — the closure
|
|
13
|
+
# captured at construction time fetches each subsequent page lazily.
|
|
14
|
+
#
|
|
15
|
+
# Pages built from JSON without a closure (e.g. fixtures rehydrated from
|
|
16
|
+
# disk) iterate just the current `data` and stop, mirroring the WorkOS
|
|
17
|
+
# AutoPaginatable behaviour from the upstream emitter family.
|
|
18
|
+
|
|
19
|
+
require "json"
|
|
20
|
+
|
|
21
|
+
module Retab
|
|
22
|
+
class PaginatedList
|
|
23
|
+
include Enumerable
|
|
24
|
+
|
|
25
|
+
attr_reader :data, :list_metadata, :last_response
|
|
26
|
+
|
|
27
|
+
# @param data [Array]
|
|
28
|
+
# @param list_metadata [Hash] envelope with `before` / `after` cursors
|
|
29
|
+
# @param last_response [Retab::Types::ApiResponse, nil]
|
|
30
|
+
# @param fetch_next [#call, nil] closure that takes the next cursor and
|
|
31
|
+
# returns the next page; `nil` for terminal pages or rehydrated fixtures
|
|
32
|
+
def initialize(data: [], list_metadata: {}, last_response: nil, fetch_next: nil)
|
|
33
|
+
@data = data || []
|
|
34
|
+
@list_metadata = list_metadata || {}
|
|
35
|
+
@last_response = last_response
|
|
36
|
+
@fetch_next = fetch_next
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Iterate every page lazily. Each page's `data` is yielded item-by-item;
|
|
40
|
+
# when the cursor advances, the captured closure is invoked to fetch the
|
|
41
|
+
# next page and iteration continues. Terminal pages stop after the last
|
|
42
|
+
# in-memory item.
|
|
43
|
+
def each
|
|
44
|
+
return enum_for(:each) unless block_given?
|
|
45
|
+
page = self
|
|
46
|
+
loop do
|
|
47
|
+
page.data.each { |item| yield item }
|
|
48
|
+
break unless page.has_next? && @fetch_next
|
|
49
|
+
cursor = page.list_metadata[:after] || page.list_metadata["after"]
|
|
50
|
+
page = @fetch_next.call(cursor)
|
|
51
|
+
break unless page
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def has_next?
|
|
56
|
+
cursor = @list_metadata.is_a?(Hash) ? (@list_metadata[:after] || @list_metadata["after"]) : nil
|
|
57
|
+
!cursor.nil? && !cursor.to_s.empty?
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def next_page
|
|
61
|
+
return nil unless has_next? && @fetch_next
|
|
62
|
+
cursor = @list_metadata[:after] || @list_metadata["after"]
|
|
63
|
+
@fetch_next.call(cursor)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Construct a PaginatedList from an HTTP response with
|
|
67
|
+
# `{data: [...], list_metadata: {...}}`.
|
|
68
|
+
def self.from_response(response, model: nil, filters: {}, fetch_next: nil)
|
|
69
|
+
_ = filters
|
|
70
|
+
body = response.respond_to?(:body) ? response.body : response
|
|
71
|
+
parsed = body.is_a?(String) ? JSON.parse(body) : (body || {})
|
|
72
|
+
raw_items = parsed["data"] || parsed[:data] || []
|
|
73
|
+
items = raw_items.map { |item| model ? model.new(item) : item }
|
|
74
|
+
meta = parsed["list_metadata"] || parsed[:list_metadata] || {}
|
|
75
|
+
api_response = if response.respond_to?(:code)
|
|
76
|
+
Types::ApiResponse.new(
|
|
77
|
+
http_status: response.code.to_i,
|
|
78
|
+
http_headers: response.respond_to?(:each_header) ? response.each_header.to_h : {},
|
|
79
|
+
request_id: response.respond_to?(:[]) ? response["x-request-id"] : nil
|
|
80
|
+
)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
new(data: items, list_metadata: meta, last_response: api_response, fetch_next: fetch_next)
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
data/lib/retab/parses/parse.rb
CHANGED
|
@@ -17,7 +17,7 @@ module Retab
|
|
|
17
17
|
created_at: :created_at
|
|
18
18
|
}.freeze
|
|
19
19
|
|
|
20
|
-
attr_accessor
|
|
20
|
+
attr_accessor(
|
|
21
21
|
:id,
|
|
22
22
|
:file,
|
|
23
23
|
:model,
|
|
@@ -27,8 +27,10 @@ module Retab
|
|
|
27
27
|
:output,
|
|
28
28
|
:usage,
|
|
29
29
|
:created_at
|
|
30
|
+
)
|
|
30
31
|
|
|
31
32
|
def initialize(json)
|
|
33
|
+
super()
|
|
32
34
|
hash = self.class.normalize(json)
|
|
33
35
|
@id = hash[:id]
|
|
34
36
|
@file = hash[:file] ? Retab::FileRef.new(hash[:file]) : nil
|
|
@@ -14,15 +14,17 @@ module Retab
|
|
|
14
14
|
bust_cache: :bust_cache
|
|
15
15
|
}.freeze
|
|
16
16
|
|
|
17
|
-
attr_accessor
|
|
17
|
+
attr_accessor(
|
|
18
18
|
:document,
|
|
19
19
|
:model,
|
|
20
20
|
:table_parsing_format,
|
|
21
21
|
:image_resolution_dpi,
|
|
22
22
|
:instructions,
|
|
23
23
|
:bust_cache
|
|
24
|
+
)
|
|
24
25
|
|
|
25
26
|
def initialize(json)
|
|
27
|
+
super()
|
|
26
28
|
hash = self.class.normalize(json)
|
|
27
29
|
@document = hash[:document] ? Retab::MimeData.new(hash[:document]) : nil
|
|
28
30
|
@model = hash[:model]
|
data/lib/retab/parses.rb
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# This file is auto-generated by oagen. Do not edit.
|
|
4
4
|
|
|
5
|
-
require
|
|
5
|
+
require "json"
|
|
6
6
|
|
|
7
7
|
module Retab
|
|
8
8
|
class Parses
|
|
@@ -19,34 +19,34 @@ module Retab
|
|
|
19
19
|
# @param from_date [String, nil]
|
|
20
20
|
# @param to_date [String, nil]
|
|
21
21
|
# @param request_options [Hash] (see Retab::Types::RequestOptions)
|
|
22
|
-
# @return [Retab::
|
|
22
|
+
# @return [Retab::PaginatedList<Retab::Parse>]
|
|
23
23
|
def list(
|
|
24
24
|
before: nil,
|
|
25
25
|
after: nil,
|
|
26
26
|
limit: 10,
|
|
27
|
-
order:
|
|
27
|
+
order: "desc",
|
|
28
28
|
filename: nil,
|
|
29
29
|
from_date: nil,
|
|
30
30
|
to_date: nil,
|
|
31
31
|
request_options: {}
|
|
32
32
|
)
|
|
33
33
|
params = {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
"before" => before,
|
|
35
|
+
"after" => after,
|
|
36
|
+
"limit" => limit,
|
|
37
|
+
"order" => order,
|
|
38
|
+
"filename" => filename,
|
|
39
|
+
"from_date" => from_date,
|
|
40
|
+
"to_date" => to_date
|
|
41
41
|
}.compact
|
|
42
42
|
response = @client.request(
|
|
43
43
|
method: :get,
|
|
44
|
-
path:
|
|
44
|
+
path: "/v1/parses",
|
|
45
45
|
auth: true,
|
|
46
46
|
params: params,
|
|
47
47
|
request_options: request_options
|
|
48
48
|
)
|
|
49
|
-
fetch_next = ->(cursor) {
|
|
49
|
+
fetch_next = -> (cursor) {
|
|
50
50
|
list(
|
|
51
51
|
before: before,
|
|
52
52
|
after: cursor,
|
|
@@ -58,10 +58,17 @@ module Retab
|
|
|
58
58
|
request_options: request_options
|
|
59
59
|
)
|
|
60
60
|
}
|
|
61
|
-
Retab::
|
|
61
|
+
Retab::PaginatedList.from_response(
|
|
62
62
|
response,
|
|
63
63
|
model: Retab::Parse,
|
|
64
|
-
filters: {
|
|
64
|
+
filters: {
|
|
65
|
+
before: before,
|
|
66
|
+
limit: limit,
|
|
67
|
+
order: order,
|
|
68
|
+
filename: filename,
|
|
69
|
+
from_date: from_date,
|
|
70
|
+
to_date: to_date
|
|
71
|
+
},
|
|
65
72
|
fetch_next: fetch_next
|
|
66
73
|
)
|
|
67
74
|
end
|
|
@@ -86,22 +93,26 @@ module Retab
|
|
|
86
93
|
)
|
|
87
94
|
document = Retab::MimeData.coerce(document) unless document.nil?
|
|
88
95
|
body = {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
96
|
+
"document" => document,
|
|
97
|
+
"model" => model,
|
|
98
|
+
"table_parsing_format" => table_parsing_format,
|
|
99
|
+
"image_resolution_dpi" => image_resolution_dpi,
|
|
100
|
+
"instructions" => instructions,
|
|
101
|
+
"bust_cache" => bust_cache
|
|
95
102
|
}.compact
|
|
96
103
|
response = @client.request(
|
|
97
104
|
method: :post,
|
|
98
|
-
path:
|
|
105
|
+
path: "/v1/parses",
|
|
99
106
|
auth: true,
|
|
100
107
|
body: body,
|
|
101
108
|
request_options: request_options
|
|
102
109
|
)
|
|
103
110
|
result = Retab::Parse.new(response.body)
|
|
104
|
-
result.last_response = Retab::Types::ApiResponse.new(
|
|
111
|
+
result.last_response = Retab::Types::ApiResponse.new(
|
|
112
|
+
http_status: response.code.to_i,
|
|
113
|
+
http_headers: response.each_header.to_h,
|
|
114
|
+
request_id: response["x-request-id"]
|
|
115
|
+
)
|
|
105
116
|
result
|
|
106
117
|
end
|
|
107
118
|
|
|
@@ -120,7 +131,11 @@ module Retab
|
|
|
120
131
|
request_options: request_options
|
|
121
132
|
)
|
|
122
133
|
result = Retab::Parse.new(response.body)
|
|
123
|
-
result.last_response = Retab::Types::ApiResponse.new(
|
|
134
|
+
result.last_response = Retab::Types::ApiResponse.new(
|
|
135
|
+
http_status: response.code.to_i,
|
|
136
|
+
http_headers: response.each_header.to_h,
|
|
137
|
+
request_id: response["x-request-id"]
|
|
138
|
+
)
|
|
124
139
|
result
|
|
125
140
|
end
|
|
126
141
|
|
|
@@ -132,7 +147,7 @@ module Retab
|
|
|
132
147
|
parse_id:,
|
|
133
148
|
request_options: {}
|
|
134
149
|
)
|
|
135
|
-
|
|
150
|
+
@client.request(
|
|
136
151
|
method: :delete,
|
|
137
152
|
path: "/v1/parses/#{Retab::Util.encode_path(parse_id)}",
|
|
138
153
|
auth: true,
|
|
@@ -19,7 +19,7 @@ module Retab
|
|
|
19
19
|
created_at: :created_at
|
|
20
20
|
}.freeze
|
|
21
21
|
|
|
22
|
-
attr_accessor
|
|
22
|
+
attr_accessor(
|
|
23
23
|
:id,
|
|
24
24
|
:file,
|
|
25
25
|
:model,
|
|
@@ -31,8 +31,10 @@ module Retab
|
|
|
31
31
|
:consensus,
|
|
32
32
|
:usage,
|
|
33
33
|
:created_at
|
|
34
|
+
)
|
|
34
35
|
|
|
35
36
|
def initialize(json)
|
|
37
|
+
super()
|
|
36
38
|
hash = self.class.normalize(json)
|
|
37
39
|
@id = hash[:id]
|
|
38
40
|
@file = hash[:file] ? Retab::FileRef.new(hash[:file]) : nil
|