kpubdata 0.7.0__tar.gz → 0.9.0__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.
- kpubdata-0.9.0/.github/CODEOWNERS +29 -0
- kpubdata-0.9.0/.github/ISSUE_TEMPLATE/bug_report.yml +59 -0
- kpubdata-0.9.0/.github/ISSUE_TEMPLATE/config.yml +5 -0
- kpubdata-0.9.0/.github/ISSUE_TEMPLATE/dataset-request.yml +58 -0
- kpubdata-0.9.0/.github/ISSUE_TEMPLATE/docs.yml +19 -0
- kpubdata-0.9.0/.github/ISSUE_TEMPLATE/feature_request.yml +29 -0
- kpubdata-0.9.0/.github/ISSUE_TEMPLATE/new-provider-adapter.yml +104 -0
- kpubdata-0.9.0/.github/PULL_REQUEST_TEMPLATE.md +18 -0
- kpubdata-0.9.0/.github/actions/conventional-title/action.yml +56 -0
- kpubdata-0.9.0/.github/actions/r3-review/action.yml +58 -0
- kpubdata-0.9.0/.github/actions/release-freeze/action.yml +106 -0
- kpubdata-0.9.0/.github/actions/release-notes/action.yml +72 -0
- kpubdata-0.9.0/.github/actions/release-window/action.yml +76 -0
- kpubdata-0.9.0/.github/dependabot.yml +16 -0
- kpubdata-0.9.0/.github/workflows/build-dataset.yml +171 -0
- kpubdata-0.9.0/.github/workflows/ci.yml +390 -0
- kpubdata-0.9.0/.github/workflows/live-probe.yml +138 -0
- kpubdata-0.9.0/.github/workflows/publish-pypi.yml +129 -0
- kpubdata-0.9.0/.github/workflows/r3-review.yml +47 -0
- kpubdata-0.9.0/.github/workflows/release.yml +359 -0
- kpubdata-0.9.0/.github/workflows/required-check-refresh.yml +58 -0
- kpubdata-0.9.0/.github/workflows/security.yml +74 -0
- kpubdata-0.9.0/.github/workflows/titles.yml +163 -0
- kpubdata-0.9.0/.gitignore +52 -0
- kpubdata-0.9.0/AGENTS.md +533 -0
- kpubdata-0.9.0/API_SPEC.md +372 -0
- kpubdata-0.9.0/ARCHITECTURE.md +566 -0
- kpubdata-0.9.0/CANONICAL_MODEL.md +472 -0
- kpubdata-0.9.0/CHANGELOG.md +312 -0
- kpubdata-0.9.0/CONTRIBUTING.md +557 -0
- kpubdata-0.9.0/Makefile +88 -0
- kpubdata-0.9.0/PACKAGING.md +190 -0
- kpubdata-0.9.0/PKG-INFO +150 -0
- kpubdata-0.9.0/PRD.md +348 -0
- kpubdata-0.9.0/PROVIDER_ADAPTER_CONTRACT.md +260 -0
- kpubdata-0.9.0/README.en.md +106 -0
- kpubdata-0.9.0/README.md +100 -0
- kpubdata-0.9.0/ROADMAP.md +110 -0
- kpubdata-0.9.0/SECURITY.md +51 -0
- kpubdata-0.9.0/SUPPORTED_DATA.md +224 -0
- kpubdata-0.9.0/compatibility.json +29 -0
- kpubdata-0.9.0/docs/DATASET_STATUS.md +122 -0
- kpubdata-0.9.0/docs/LIVE_PROBE.md +190 -0
- kpubdata-0.9.0/docs/PRODUCTION_GRADE.md +60 -0
- kpubdata-0.9.0/docs/adrs/0001-dialect-inspired-architecture.md +73 -0
- kpubdata-0.9.0/docs/adrs/0002-standardize-ux-not-native-shape.md +84 -0
- kpubdata-0.9.0/docs/adrs/0004-versioning-and-release.md +238 -0
- kpubdata-0.9.0/docs/adrs/0005-dataset-status-vocabulary.md +150 -0
- kpubdata-0.9.0/docs/adrs/0006-column-metadata-contract.md +125 -0
- kpubdata-0.9.0/docs/adrs/0007-independence-rules.md +175 -0
- kpubdata-0.9.0/docs/brand/BRAND.md +143 -0
- kpubdata-0.9.0/docs/brand/TERMINOLOGY.md +82 -0
- kpubdata-0.9.0/docs/cli.md +181 -0
- kpubdata-0.9.0/docs/compatibility.md +212 -0
- kpubdata-0.9.0/docs/contributing.md +19 -0
- kpubdata-0.9.0/docs/cookbook/discovery.md +65 -0
- kpubdata-0.9.0/docs/dataset-demand-list.md +63 -0
- kpubdata-0.9.0/docs/dataset-examples.md +367 -0
- kpubdata-0.9.0/docs/governance/BACKLOG.md +231 -0
- kpubdata-0.9.0/docs/governance/POLICY.md +1063 -0
- kpubdata-0.9.0/docs/governance/RELEASE_POLICY.md +87 -0
- kpubdata-0.9.0/docs/index.md +44 -0
- kpubdata-0.9.0/docs/internal/adapter-inventory.md +110 -0
- kpubdata-0.9.0/docs/internal/coverage-assessment.md +63 -0
- kpubdata-0.9.0/docs/internal/custom-adapters.md +29 -0
- kpubdata-0.9.0/docs/logging.md +158 -0
- kpubdata-0.9.0/docs/policy/provider-enquiry-draft.md +72 -0
- kpubdata-0.9.0/docs/policy/terms-matrix.md +178 -0
- kpubdata-0.9.0/docs/product-family-architecture.md +225 -0
- kpubdata-0.9.0/docs/providers/bok.md +269 -0
- kpubdata-0.9.0/docs/providers/datago.md +897 -0
- kpubdata-0.9.0/docs/providers/kosis.md +237 -0
- kpubdata-0.9.0/docs/providers/localdata.md +26 -0
- kpubdata-0.9.0/docs/providers/lofin.md +32 -0
- kpubdata-0.9.0/docs/providers/semas.md +26 -0
- kpubdata-0.9.0/docs/providers/seoul.md +253 -0
- kpubdata-0.9.0/docs/providers/sgis.md +30 -0
- kpubdata-0.9.0/docs/quickstart.md +192 -0
- kpubdata-0.9.0/docs/status/latest.json +135 -0
- kpubdata-0.9.0/docs/status.md +39 -0
- kpubdata-0.9.0/docs/tutorial-ai-agent-workflow.md +487 -0
- kpubdata-0.9.0/examples/datago/bus_arrival.py +44 -0
- kpubdata-0.9.0/examples/datago/social_enterprise.py +39 -0
- kpubdata-0.9.0/examples/datago/ultra_srt_fcst.py +48 -0
- kpubdata-0.9.0/examples/datago/ultra_srt_ncst.py +36 -0
- kpubdata-0.9.0/mkdocs.yml +102 -0
- kpubdata-0.9.0/pyproject.toml +129 -0
- kpubdata-0.9.0/scripts/check_baseline_shrink.py +117 -0
- kpubdata-0.9.0/scripts/check_fixture_authorship.py +207 -0
- kpubdata-0.9.0/scripts/check_independence.py +148 -0
- kpubdata-0.9.0/scripts/check_production_grade.py +223 -0
- kpubdata-0.9.0/scripts/conventional_title.py +212 -0
- kpubdata-0.9.0/scripts/drift_detect.py +561 -0
- kpubdata-0.9.0/scripts/gen_dataset_status.py +91 -0
- kpubdata-0.9.0/scripts/gen_docs_examples.py +91 -0
- kpubdata-0.9.0/scripts/gen_status_page.py +176 -0
- kpubdata-0.9.0/scripts/insecure_http_baseline.txt +39 -0
- kpubdata-0.9.0/scripts/legacy_evidence_baseline.txt +32 -0
- kpubdata-0.9.0/scripts/monthly_report.py +140 -0
- kpubdata-0.9.0/scripts/r3_review.py +180 -0
- kpubdata-0.9.0/scripts/record.py +222 -0
- kpubdata-0.9.0/scripts/release_freeze.py +261 -0
- kpubdata-0.9.0/scripts/release_notes.py +222 -0
- kpubdata-0.9.0/scripts/release_window.py +202 -0
- kpubdata-0.9.0/scripts/report_drift.py +232 -0
- kpubdata-0.9.0/scripts/sync_supported_data.py +119 -0
- kpubdata-0.9.0/scripts/unconfirmed_terms_baseline.txt +28 -0
- kpubdata-0.9.0/scripts/validate_spec.py +281 -0
- kpubdata-0.9.0/scripts/verify_spec.py +826 -0
- kpubdata-0.9.0/src/kpubdata/__init__.py +75 -0
- kpubdata-0.9.0/src/kpubdata/_probe.py +545 -0
- kpubdata-0.9.0/src/kpubdata/bootstrap.py +133 -0
- kpubdata-0.9.0/src/kpubdata/cli.py +654 -0
- kpubdata-0.9.0/src/kpubdata/client.py +280 -0
- kpubdata-0.9.0/src/kpubdata/config.py +182 -0
- kpubdata-0.9.0/src/kpubdata/core/bridge.py +169 -0
- kpubdata-0.9.0/src/kpubdata/core/dataset.py +388 -0
- kpubdata-0.9.0/src/kpubdata/core/executor.py +1500 -0
- kpubdata-0.9.0/src/kpubdata/core/models.py +463 -0
- kpubdata-0.9.0/src/kpubdata/core/spec.py +890 -0
- kpubdata-0.9.0/src/kpubdata/core/status.py +250 -0
- kpubdata-0.9.0/src/kpubdata/dataset_status.json +158 -0
- kpubdata-0.9.0/src/kpubdata/exceptions.py +209 -0
- kpubdata-0.9.0/src/kpubdata/providers/_common.py +295 -0
- kpubdata-0.9.0/src/kpubdata/providers/_datago_family.py +426 -0
- kpubdata-0.9.0/src/kpubdata/providers/bok/adapter.py +630 -0
- kpubdata-0.9.0/src/kpubdata/providers/datago/adapter.py +539 -0
- kpubdata-0.9.0/src/kpubdata/providers/datago/catalogue.json +1361 -0
- kpubdata-0.9.0/src/kpubdata/providers/datago/envelope.py +304 -0
- kpubdata-0.9.0/src/kpubdata/providers/fds/adapter.py +257 -0
- kpubdata-0.9.0/src/kpubdata/providers/kipris/adapter.py +223 -0
- kpubdata-0.9.0/src/kpubdata/providers/korean/adapter.py +257 -0
- kpubdata-0.9.0/src/kpubdata/providers/kosis/adapter.py +376 -0
- kpubdata-0.9.0/src/kpubdata/providers/law/adapter.py +318 -0
- kpubdata-0.9.0/src/kpubdata/providers/localdata/adapter.py +32 -0
- kpubdata-0.9.0/src/kpubdata/providers/lofin/adapter.py +435 -0
- kpubdata-0.9.0/src/kpubdata/providers/neis/adapter.py +269 -0
- kpubdata-0.9.0/src/kpubdata/providers/sgis/adapter.py +339 -0
- kpubdata-0.9.0/src/kpubdata/providers/sgis/auth.py +190 -0
- kpubdata-0.9.0/src/kpubdata/scaffold.py +440 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/air_quality.yaml +110 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/air_station.yaml +126 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/airkorea_forecast.yaml +50 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/apt_rent.yaml +129 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/apt_trade.yaml +160 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/bus_arrival.yaml +144 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/hospital_info.yaml +116 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/metro_fare.yaml +100 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/ocean_buoy.yaml +111 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/offi_rent.yaml +109 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/offi_trade.yaml +112 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/rh_rent.yaml +109 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/sh_rent.yaml +100 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/sh_trade.yaml +108 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/social_enterprise.yaml +84 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/tour_kor_area.yaml +144 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/tour_kor_festival.yaml +152 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/tour_kor_keyword.yaml +144 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/tour_kor_location.yaml +152 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/ultra_srt_fcst.yaml +108 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/ultra_srt_ncst.yaml +92 -0
- kpubdata-0.9.0/src/kpubdata/specs/datago/village_fcst.yaml +122 -0
- kpubdata-0.9.0/src/kpubdata/specs/localdata/bakery.yaml +55 -0
- kpubdata-0.9.0/src/kpubdata/specs/localdata/general_restaurant.yaml +55 -0
- kpubdata-0.9.0/src/kpubdata/specs/localdata/rest_cafe.yaml +55 -0
- kpubdata-0.9.0/src/kpubdata/specs/schema.json +476 -0
- kpubdata-0.9.0/src/kpubdata/transport/__init__.py +21 -0
- kpubdata-0.9.0/src/kpubdata/transport/_sensitive.py +68 -0
- kpubdata-0.9.0/src/kpubdata/transport/cache.py +306 -0
- kpubdata-0.9.0/src/kpubdata/transport/http.py +900 -0
- kpubdata-0.9.0/tests/fixtures/datago/bus_arrival/station_200000078.expected.json +490 -0
- kpubdata-0.9.0/tests/fixtures/datago/bus_arrival/station_200000078.meta.json +17 -0
- kpubdata-0.9.0/tests/fixtures/datago/bus_arrival/station_200000078.raw.json +499 -0
- kpubdata-0.9.0/tests/fixtures/datago/ocean_buoy/status_history.json +9 -0
- kpubdata-0.9.0/tests/fixtures/datago/social_enterprise/first_page.expected.json +155 -0
- kpubdata-0.9.0/tests/fixtures/datago/social_enterprise/first_page.meta.json +17 -0
- kpubdata-0.9.0/tests/fixtures/datago/social_enterprise/first_page.raw.json +159 -0
- kpubdata-0.9.0/tests/fixtures/datago/ultra_srt_fcst/seoul_0600.expected.json +505 -0
- kpubdata-0.9.0/tests/fixtures/datago/ultra_srt_fcst/seoul_0600.meta.json +22 -0
- kpubdata-0.9.0/tests/fixtures/datago/ultra_srt_fcst/seoul_0600.raw.json +518 -0
- kpubdata-0.9.0/tests/fixtures/datago/ultra_srt_fcst/seoul_0600_full_page.expected.json +665 -0
- kpubdata-0.9.0/tests/fixtures/datago/ultra_srt_fcst/seoul_0600_full_page.meta.json +22 -0
- kpubdata-0.9.0/tests/fixtures/datago/ultra_srt_fcst/seoul_0600_full_page.raw.json +678 -0
- kpubdata-0.9.0/tests/fixtures/datago/ultra_srt_ncst/seoul_0600.expected.json +69 -0
- kpubdata-0.9.0/tests/fixtures/datago/ultra_srt_ncst/seoul_0600.meta.json +22 -0
- kpubdata-0.9.0/tests/fixtures/datago/ultra_srt_ncst/seoul_0600.raw.json +82 -0
- kpubdata-0.9.0/tests/integration/README.md +22 -0
- kpubdata-0.9.0/tests/integration/test_datago_live.py +739 -0
- kpubdata-0.9.0/tests/integration/test_session_features.py +159 -0
- kpubdata-0.9.0/tests/unit/core/test_dataset_ref_license.py +89 -0
- kpubdata-0.9.0/tests/unit/core/test_dataset_ref_to_dict.py +114 -0
- kpubdata-0.9.0/tests/unit/core/test_exceptions.py +287 -0
- kpubdata-0.9.0/tests/unit/core/test_executor.py +1061 -0
- kpubdata-0.9.0/tests/unit/core/test_leading_zero_codes.py +74 -0
- kpubdata-0.9.0/tests/unit/core/test_list_all_client_path.py +63 -0
- kpubdata-0.9.0/tests/unit/core/test_list_all_memory.py +205 -0
- kpubdata-0.9.0/tests/unit/core/test_list_all_spec_paging.py +176 -0
- kpubdata-0.9.0/tests/unit/core/test_pii_columns_declared.py +55 -0
- kpubdata-0.9.0/tests/unit/core/test_provenance_url_masking.py +95 -0
- kpubdata-0.9.0/tests/unit/core/test_semantic_kind.py +128 -0
- kpubdata-0.9.0/tests/unit/core/test_spec.py +373 -0
- kpubdata-0.9.0/tests/unit/core/test_spec_file_digest.py +67 -0
- kpubdata-0.9.0/tests/unit/core/test_spec_schema.py +75 -0
- kpubdata-0.9.0/tests/unit/core/test_status_transition.py +159 -0
- kpubdata-0.9.0/tests/unit/core/test_total_count_zero.py +64 -0
- kpubdata-0.9.0/tests/unit/providers/datago/test_adapter.py +1425 -0
- kpubdata-0.9.0/tests/unit/providers/datago/test_fixtures.py +1533 -0
- kpubdata-0.9.0/tests/unit/providers/localdata/test_adapter.py +654 -0
- kpubdata-0.9.0/tests/unit/providers/localdata/test_no_retirement.py +62 -0
- kpubdata-0.9.0/tests/unit/providers/semas/test_adapter.py +327 -0
- kpubdata-0.9.0/tests/unit/providers/test_every_request_passes_secret_values.py +74 -0
- kpubdata-0.9.0/tests/unit/providers/test_reported_total.py +17 -0
- kpubdata-0.9.0/tests/unit/scripts/test_check_baseline_shrink.py +206 -0
- kpubdata-0.9.0/tests/unit/scripts/test_check_fixture_authorship.py +247 -0
- kpubdata-0.9.0/tests/unit/scripts/test_check_independence.py +139 -0
- kpubdata-0.9.0/tests/unit/scripts/test_check_production_grade.py +174 -0
- kpubdata-0.9.0/tests/unit/scripts/test_conventional_title.py +243 -0
- kpubdata-0.9.0/tests/unit/scripts/test_drift_detect.py +288 -0
- kpubdata-0.9.0/tests/unit/scripts/test_gen_status_page.py +72 -0
- kpubdata-0.9.0/tests/unit/scripts/test_r3_review.py +256 -0
- kpubdata-0.9.0/tests/unit/scripts/test_release_freeze.py +202 -0
- kpubdata-0.9.0/tests/unit/scripts/test_release_notes.py +229 -0
- kpubdata-0.9.0/tests/unit/scripts/test_release_window.py +187 -0
- kpubdata-0.9.0/tests/unit/scripts/test_sync_supported_data.py +93 -0
- kpubdata-0.9.0/tests/unit/scripts/test_validate_spec.py +257 -0
- kpubdata-0.9.0/tests/unit/test_cli.py +1049 -0
- kpubdata-0.9.0/tests/unit/test_client_unknown_kwargs.py +50 -0
- kpubdata-0.9.0/tests/unit/test_codeowners.py +80 -0
- kpubdata-0.9.0/tests/unit/test_compatibility_json.py +129 -0
- kpubdata-0.9.0/tests/unit/test_dataset_ref_status.py +103 -0
- kpubdata-0.9.0/tests/unit/test_declared_terms_decision.py +136 -0
- kpubdata-0.9.0/tests/unit/test_doc_example_params.py +129 -0
- kpubdata-0.9.0/tests/unit/test_fixture_authorship.py +178 -0
- kpubdata-0.9.0/tests/unit/test_nodata_is_an_empty_result.py +127 -0
- kpubdata-0.9.0/tests/unit/test_probe.py +497 -0
- kpubdata-0.9.0/tests/unit/test_public_probe.py +264 -0
- kpubdata-0.9.0/tests/unit/test_public_sensitive_param_keys.py +54 -0
- kpubdata-0.9.0/tests/unit/test_scaffold.py +374 -0
- kpubdata-0.9.0/tests/unit/test_status_vocabulary.py +135 -0
- kpubdata-0.9.0/tests/unit/test_verify_pipeline.py +1106 -0
- kpubdata-0.9.0/tests/unit/transport/test_credentialed_redirects.py +109 -0
- kpubdata-0.9.0/tests/unit/transport/test_identity_retry.py +80 -0
- kpubdata-0.9.0/tests/unit/transport/test_logging.py +848 -0
- kpubdata-0.9.0/tests/unit/transport/test_retry_after.py +411 -0
- kpubdata-0.9.0/tests/unit/transport/test_secret_values_reach_the_transport.py +116 -0
- kpubdata-0.9.0/uv.lock +2926 -0
- kpubdata-0.7.0/.github/ISSUE_TEMPLATE/bug_report.yml +0 -60
- kpubdata-0.7.0/.github/ISSUE_TEMPLATE/config.yml +0 -5
- kpubdata-0.7.0/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -57
- kpubdata-0.7.0/.github/ISSUE_TEMPLATE/docs.yml +0 -20
- kpubdata-0.7.0/.github/ISSUE_TEMPLATE/feature_request.yml +0 -30
- kpubdata-0.7.0/.github/ISSUE_TEMPLATE/new-provider-adapter.yml +0 -105
- kpubdata-0.7.0/.github/PULL_REQUEST_TEMPLATE.md +0 -28
- kpubdata-0.7.0/.github/dependabot.yml +0 -16
- kpubdata-0.7.0/.github/workflows/build-dataset.yml +0 -136
- kpubdata-0.7.0/.github/workflows/ci.yml +0 -306
- kpubdata-0.7.0/.github/workflows/publish-pypi.yml +0 -79
- kpubdata-0.7.0/.github/workflows/release.yml +0 -242
- kpubdata-0.7.0/.gitignore +0 -48
- kpubdata-0.7.0/AGENTS.md +0 -461
- kpubdata-0.7.0/API_SPEC.md +0 -252
- kpubdata-0.7.0/ARCHITECTURE.md +0 -554
- kpubdata-0.7.0/CANONICAL_MODEL.md +0 -437
- kpubdata-0.7.0/CHANGELOG.md +0 -168
- kpubdata-0.7.0/CONTRIBUTING.md +0 -556
- kpubdata-0.7.0/Makefile +0 -86
- kpubdata-0.7.0/PACKAGING.md +0 -158
- kpubdata-0.7.0/PKG-INFO +0 -135
- kpubdata-0.7.0/PRD.md +0 -348
- kpubdata-0.7.0/PROVIDER_ADAPTER_CONTRACT.md +0 -257
- kpubdata-0.7.0/README.en.md +0 -95
- kpubdata-0.7.0/README.md +0 -90
- kpubdata-0.7.0/ROADMAP.md +0 -110
- kpubdata-0.7.0/SECURITY.md +0 -50
- kpubdata-0.7.0/SUPPORTED_DATA.md +0 -217
- kpubdata-0.7.0/compatibility.json +0 -22
- kpubdata-0.7.0/docs/PRODUCTION_GRADE.md +0 -57
- kpubdata-0.7.0/docs/adrs/0001-dialect-inspired-architecture.md +0 -73
- kpubdata-0.7.0/docs/adrs/0002-standardize-ux-not-native-shape.md +0 -84
- kpubdata-0.7.0/docs/adrs/0004-versioning-and-release.md +0 -213
- kpubdata-0.7.0/docs/brand/BRAND.md +0 -140
- kpubdata-0.7.0/docs/brand/TERMINOLOGY.md +0 -78
- kpubdata-0.7.0/docs/cli.md +0 -181
- kpubdata-0.7.0/docs/compatibility.md +0 -98
- kpubdata-0.7.0/docs/contributing.md +0 -19
- kpubdata-0.7.0/docs/cookbook/discovery.md +0 -65
- kpubdata-0.7.0/docs/dataset-examples.md +0 -268
- kpubdata-0.7.0/docs/governance/BACKLOG.md +0 -227
- kpubdata-0.7.0/docs/governance/POLICY.md +0 -911
- kpubdata-0.7.0/docs/index.md +0 -44
- kpubdata-0.7.0/docs/internal/adapter-inventory.md +0 -110
- kpubdata-0.7.0/docs/internal/coverage-assessment.md +0 -63
- kpubdata-0.7.0/docs/internal/custom-adapters.md +0 -29
- kpubdata-0.7.0/docs/logging.md +0 -136
- kpubdata-0.7.0/docs/product-family-architecture.md +0 -182
- kpubdata-0.7.0/docs/providers/bok.md +0 -269
- kpubdata-0.7.0/docs/providers/datago.md +0 -897
- kpubdata-0.7.0/docs/providers/kosis.md +0 -233
- kpubdata-0.7.0/docs/providers/localdata.md +0 -26
- kpubdata-0.7.0/docs/providers/lofin.md +0 -32
- kpubdata-0.7.0/docs/providers/semas.md +0 -26
- kpubdata-0.7.0/docs/providers/seoul.md +0 -251
- kpubdata-0.7.0/docs/providers/sgis.md +0 -30
- kpubdata-0.7.0/docs/quickstart.md +0 -192
- kpubdata-0.7.0/docs/status/latest.json +0 -123
- kpubdata-0.7.0/docs/status.md +0 -37
- kpubdata-0.7.0/docs/tutorial-ai-agent-workflow.md +0 -487
- kpubdata-0.7.0/examples/datago/ultra_srt_fcst.py +0 -48
- kpubdata-0.7.0/examples/datago/ultra_srt_ncst.py +0 -36
- kpubdata-0.7.0/mkdocs.yml +0 -89
- kpubdata-0.7.0/pyproject.toml +0 -122
- kpubdata-0.7.0/scripts/check_fixture_authorship.py +0 -109
- kpubdata-0.7.0/scripts/gen_docs_examples.py +0 -91
- kpubdata-0.7.0/scripts/gen_status_page.py +0 -165
- kpubdata-0.7.0/scripts/monthly_report.py +0 -137
- kpubdata-0.7.0/scripts/record.py +0 -201
- kpubdata-0.7.0/scripts/report_drift.py +0 -232
- kpubdata-0.7.0/scripts/validate_spec.py +0 -237
- kpubdata-0.7.0/scripts/verify_spec.py +0 -277
- kpubdata-0.7.0/src/kpubdata/__init__.py +0 -62
- kpubdata-0.7.0/src/kpubdata/_probe.py +0 -390
- kpubdata-0.7.0/src/kpubdata/bootstrap.py +0 -133
- kpubdata-0.7.0/src/kpubdata/cli.py +0 -658
- kpubdata-0.7.0/src/kpubdata/client.py +0 -246
- kpubdata-0.7.0/src/kpubdata/config.py +0 -168
- kpubdata-0.7.0/src/kpubdata/core/bridge.py +0 -137
- kpubdata-0.7.0/src/kpubdata/core/dataset.py +0 -379
- kpubdata-0.7.0/src/kpubdata/core/executor.py +0 -1155
- kpubdata-0.7.0/src/kpubdata/core/models.py +0 -336
- kpubdata-0.7.0/src/kpubdata/core/spec.py +0 -659
- kpubdata-0.7.0/src/kpubdata/exceptions.py +0 -158
- kpubdata-0.7.0/src/kpubdata/providers/_common.py +0 -275
- kpubdata-0.7.0/src/kpubdata/providers/_datago_family.py +0 -414
- kpubdata-0.7.0/src/kpubdata/providers/bok/adapter.py +0 -623
- kpubdata-0.7.0/src/kpubdata/providers/datago/adapter.py +0 -524
- kpubdata-0.7.0/src/kpubdata/providers/datago/catalogue.json +0 -1413
- kpubdata-0.7.0/src/kpubdata/providers/datago/envelope.py +0 -286
- kpubdata-0.7.0/src/kpubdata/providers/fds/adapter.py +0 -256
- kpubdata-0.7.0/src/kpubdata/providers/kipris/adapter.py +0 -220
- kpubdata-0.7.0/src/kpubdata/providers/korean/adapter.py +0 -253
- kpubdata-0.7.0/src/kpubdata/providers/kosis/adapter.py +0 -368
- kpubdata-0.7.0/src/kpubdata/providers/law/adapter.py +0 -303
- kpubdata-0.7.0/src/kpubdata/providers/localdata/adapter.py +0 -22
- kpubdata-0.7.0/src/kpubdata/providers/lofin/adapter.py +0 -420
- kpubdata-0.7.0/src/kpubdata/providers/neis/adapter.py +0 -259
- kpubdata-0.7.0/src/kpubdata/providers/sgis/adapter.py +0 -331
- kpubdata-0.7.0/src/kpubdata/providers/sgis/auth.py +0 -184
- kpubdata-0.7.0/src/kpubdata/scaffold.py +0 -440
- kpubdata-0.7.0/src/kpubdata/specs/datago/air_quality.yaml +0 -108
- kpubdata-0.7.0/src/kpubdata/specs/datago/air_station.yaml +0 -122
- kpubdata-0.7.0/src/kpubdata/specs/datago/airkorea_forecast.yaml +0 -46
- kpubdata-0.7.0/src/kpubdata/specs/datago/apt_rent.yaml +0 -125
- kpubdata-0.7.0/src/kpubdata/specs/datago/apt_trade.yaml +0 -153
- kpubdata-0.7.0/src/kpubdata/specs/datago/hospital_info.yaml +0 -110
- kpubdata-0.7.0/src/kpubdata/specs/datago/metro_fare.yaml +0 -94
- kpubdata-0.7.0/src/kpubdata/specs/datago/ocean_buoy.yaml +0 -107
- kpubdata-0.7.0/src/kpubdata/specs/datago/offi_rent.yaml +0 -105
- kpubdata-0.7.0/src/kpubdata/specs/datago/offi_trade.yaml +0 -108
- kpubdata-0.7.0/src/kpubdata/specs/datago/rh_rent.yaml +0 -105
- kpubdata-0.7.0/src/kpubdata/specs/datago/sh_rent.yaml +0 -96
- kpubdata-0.7.0/src/kpubdata/specs/datago/sh_trade.yaml +0 -104
- kpubdata-0.7.0/src/kpubdata/specs/datago/tour_kor_area.yaml +0 -139
- kpubdata-0.7.0/src/kpubdata/specs/datago/tour_kor_festival.yaml +0 -147
- kpubdata-0.7.0/src/kpubdata/specs/datago/tour_kor_keyword.yaml +0 -139
- kpubdata-0.7.0/src/kpubdata/specs/datago/tour_kor_location.yaml +0 -147
- kpubdata-0.7.0/src/kpubdata/specs/datago/ultra_srt_fcst.yaml +0 -104
- kpubdata-0.7.0/src/kpubdata/specs/datago/ultra_srt_ncst.yaml +0 -88
- kpubdata-0.7.0/src/kpubdata/specs/datago/village_fcst.yaml +0 -119
- kpubdata-0.7.0/src/kpubdata/specs/localdata/bakery.yaml +0 -53
- kpubdata-0.7.0/src/kpubdata/specs/localdata/general_restaurant.yaml +0 -53
- kpubdata-0.7.0/src/kpubdata/specs/localdata/rest_cafe.yaml +0 -53
- kpubdata-0.7.0/src/kpubdata/specs/schema.json +0 -422
- kpubdata-0.7.0/src/kpubdata/transport/__init__.py +0 -19
- kpubdata-0.7.0/src/kpubdata/transport/_sensitive.py +0 -40
- kpubdata-0.7.0/src/kpubdata/transport/cache.py +0 -268
- kpubdata-0.7.0/src/kpubdata/transport/http.py +0 -802
- kpubdata-0.7.0/tests/fixtures/datago/bus_arrival_v2.json +0 -20
- kpubdata-0.7.0/tests/fixtures/datago/success_social_enterprise.json +0 -38
- kpubdata-0.7.0/tests/fixtures/datago/ultra_srt_fcst/seoul_1530.expected.json +0 -505
- kpubdata-0.7.0/tests/fixtures/datago/ultra_srt_fcst/seoul_1530.meta.json +0 -19
- kpubdata-0.7.0/tests/fixtures/datago/ultra_srt_fcst/seoul_1530.raw.json +0 -518
- kpubdata-0.7.0/tests/fixtures/datago/ultra_srt_fcst/seoul_1530_full_page.expected.json +0 -665
- kpubdata-0.7.0/tests/fixtures/datago/ultra_srt_fcst/seoul_1530_full_page.meta.json +0 -19
- kpubdata-0.7.0/tests/fixtures/datago/ultra_srt_fcst/seoul_1530_full_page.raw.json +0 -678
- kpubdata-0.7.0/tests/fixtures/datago/ultra_srt_ncst/seoul_1500.expected.json +0 -69
- kpubdata-0.7.0/tests/fixtures/datago/ultra_srt_ncst/seoul_1500.meta.json +0 -19
- kpubdata-0.7.0/tests/fixtures/datago/ultra_srt_ncst/seoul_1500.raw.json +0 -82
- kpubdata-0.7.0/tests/integration/README.md +0 -22
- kpubdata-0.7.0/tests/integration/test_datago_live.py +0 -739
- kpubdata-0.7.0/tests/integration/test_session_features.py +0 -139
- kpubdata-0.7.0/tests/unit/core/test_exceptions.py +0 -248
- kpubdata-0.7.0/tests/unit/core/test_executor.py +0 -945
- kpubdata-0.7.0/tests/unit/core/test_spec.py +0 -289
- kpubdata-0.7.0/tests/unit/providers/datago/test_adapter.py +0 -1424
- kpubdata-0.7.0/tests/unit/providers/datago/test_fixtures.py +0 -1599
- kpubdata-0.7.0/tests/unit/providers/localdata/test_adapter.py +0 -653
- kpubdata-0.7.0/tests/unit/providers/semas/test_adapter.py +0 -326
- kpubdata-0.7.0/tests/unit/scripts/test_validate_spec.py +0 -195
- kpubdata-0.7.0/tests/unit/test_cli.py +0 -1052
- kpubdata-0.7.0/tests/unit/test_fixture_authorship.py +0 -137
- kpubdata-0.7.0/tests/unit/test_probe.py +0 -336
- kpubdata-0.7.0/tests/unit/test_scaffold.py +0 -351
- kpubdata-0.7.0/tests/unit/test_verify_pipeline.py +0 -385
- kpubdata-0.7.0/tests/unit/transport/test_identity_retry.py +0 -78
- kpubdata-0.7.0/tests/unit/transport/test_logging.py +0 -790
- kpubdata-0.7.0/tests/unit/transport/test_retry_after.py +0 -355
- kpubdata-0.7.0/uv.lock +0 -2717
- {kpubdata-0.7.0 → kpubdata-0.9.0}/.github/actions/next-version/action.yml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/.github/actions/set-version/action.yml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/.github/workflows/codex-review.yml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/.github/workflows/docs.yml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/.github/workflows/geo-check.yml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/.github/workflows/integration.yml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/.github/workflows/smoke.yml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/.opencode/agent/dataset-builder.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/.opencode/agent/dataset-verifier.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/.opencode/agent/drift-fixer.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/.opencode/agent/inventory.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/.opencode/command/add-dataset.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/.opencode/command/fix-drift.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/.opencode/command/migrate-dataset.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/LICENSE +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/VALIDATION.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/adrs/0003-language-policy.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/architecture-diagrams.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/assets/terminal/cli_datasets.gif +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/assets/terminal/error_handling.gif +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/assets/terminal/make_verify.gif +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/assets/terminal/python_usage.gif +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/assets/terminal/replay_mode.gif +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/caching.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/cookbook/getting-started.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/cookbook/raw-access.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/datago-api-reference.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/dataset-prioritization.yaml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/governance/VERIFICATION.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/governance/issue-audit-2026-09-27.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/host-allowlist.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/internal/e2e-design.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/internal/monthly-2026-09.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/internal/pilot-log.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/production_grade.yaml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/providers/fds.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/providers/kipris.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/providers/korean.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/providers/krx.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/providers/law.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/providers/neis.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/docs/terminal-captures.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/README.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/datago/air_quality.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/datago/air_station.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/datago/airkorea_forecast.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/datago/apt_rent.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/datago/apt_trade.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/datago/hospital_info.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/datago/metro_fare.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/datago/offi_rent.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/datago/offi_trade.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/datago/rh_rent.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/datago/sh_rent.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/datago/sh_trade.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/datago/tour_kor_area.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/datago/tour_kor_festival.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/datago/tour_kor_keyword.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/datago/tour_kor_location.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/datago/village_fcst.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/localdata/bakery.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/localdata/general_restaurant.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/localdata/rest_cafe.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/pandas_export.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/quickstart.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/raw_call.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/examples/search_datasets.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/plans/issue-179-building-registry.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/plans/issue-180-law-provider.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/plans/issue-229-bok-money-supply.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/plans/issue-92-datago-dur-usjnt-taboo.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/plans/issue-92-dur-age-taboo.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/plans/issue-92-dur-dosage-caution.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/plans/issue-92-dur-efficacy-duplication.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/plans/issue-92-dur-er-tablet-split-caution.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/plans/issue-92-dur-medication-period-caution.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/plans/issue-92-dur-older-adult-caution.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/plans/issue-92-dur-pregnancy-taboo.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/plans/issue-92-dur-product-info.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/plans/sgis-provider-issue-150.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/scripts/batch_record.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/scripts/changelog_datasets.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/scripts/check_english_comments.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/scripts/check_readme_parity.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/scripts/check_required_checks.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/scripts/fetch_guide.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/scripts/gen_example_scripts.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/scripts/gen_readme_datasets.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/scripts/gen_specs_from_catalogue.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/scripts/junit_summary.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/scripts/next_version.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/scripts/redact.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/scripts/set_version.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/scripts/verify_guard.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/skills/kpubdata-dataset/SKILL.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/_hosts.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/_typing.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/catalog.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/core/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/core/capability.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/core/protocol.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/core/representation.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/bok/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/bok/catalogue.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/datago/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/fds/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/fds/catalogue.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/kipris/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/kipris/catalogue.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/korean/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/korean/catalogue.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/kosis/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/kosis/catalogue.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/krx/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/krx/adapter.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/krx/catalogue.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/law/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/law/catalogue.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/localdata/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/localdata/catalogue.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/lofin/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/lofin/catalogue.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/manifest.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/neis/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/neis/catalogue.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/semas/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/semas/adapter.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/semas/catalogue.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/seoul/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/seoul/adapter.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/seoul/catalogue.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/seoul/datasets/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/seoul/datasets/citydata.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/seoul/datasets/park_info.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/seoul/datasets/park_usage.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/seoul/envelope.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/sgis/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/providers/sgis/catalogue.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/py.typed +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/registry.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/transport/_envelope.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/transport/decode.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/transport/replay.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/src/kpubdata/transport/retry.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/contract/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/contract/provider_adapter.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/contract/test_bok.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/contract/test_client_dataset_list_contract.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/contract/test_datago.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/contract/test_fds.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/contract/test_kipris.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/contract/test_korean.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/contract/test_kosis.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/contract/test_krx.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/contract/test_law.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/contract/test_localdata.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/contract/test_lofin.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/contract/test_neis.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/contract/test_semas.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/contract/test_seoul.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/contract/test_sgis_contract.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/e2e/DATASETS.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/e2e/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/e2e/test_pipeline.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/batch-reclass.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/batch-record-datago.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/batch-record-kipris.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/batch-record-localdata.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/batch-record-semas.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/bok/bond_yield_3y_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/bok/error_auth.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/bok/money_supply_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/bok/success_empty.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/bok/success_single_page.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/bok/usd_krw_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/air_quality/seoul.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/air_quality/seoul.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/air_quality/seoul.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/air_station/baengnyeong_daily.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/air_station/baengnyeong_daily.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/air_station/baengnyeong_daily.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/air_station/gangnam_full_page.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/air_station/gangnam_full_page.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/air_station/gangnam_full_page.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/airkorea_forecast/default.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/airkorea_forecast/default.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/airkorea_forecast/default.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/apt_rent/seoul_gangnam.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/apt_rent/seoul_gangnam.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/apt_rent/seoul_gangnam.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/apt_trade/seoul_gangnam_2024_01.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/apt_trade/seoul_gangnam_2024_01.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/apt_trade/seoul_gangnam_2024_01.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/apt_trade/seoul_gangnam_2024_01_full_page.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/apt_trade/seoul_gangnam_2024_01_full_page.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/apt_trade/seoul_gangnam_2024_01_full_page.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/error_auth_30.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/error_gateway_key_not_registered.xml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/error_gateway_quota_exceeded.xml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/error_gateway_unregistered_ip.xml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/error_invalid_request_10.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/error_rate_limit_22.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/error_service_unavailable_01.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/error_xml_auth_30.xml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/hospital_info/default.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/hospital_info/default.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/hospital_info/default.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/hospital_info/with_pagination.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/hospital_info/with_pagination.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/hospital_info/with_pagination.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/metro_fare/default.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/metro_fare/default.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/metro_fare/default.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/offi_rent/seoul_gangnam.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/offi_rent/seoul_gangnam.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/offi_rent/seoul_gangnam.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/offi_trade/seoul_gangnam.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/offi_trade/seoul_gangnam.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/offi_trade/seoul_gangnam.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/rh_rent/seoul_gangnam.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/rh_rent/seoul_gangnam.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/rh_rent/seoul_gangnam.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/sh_rent/seoul_gangnam.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/sh_rent/seoul_gangnam.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/sh_rent/seoul_gangnam.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/sh_trade/seoul_gangnam.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/sh_trade/seoul_gangnam.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/sh_trade/seoul_gangnam.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_agri_price.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_airkorea_forecast.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_airkorea_station_realtime.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_apt_rent.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_apt_trade.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_asos_daily.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_asos_hourly.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_bond_price.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_culture_facility.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_dur_age_taboo.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_dur_dosage_caution.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_dur_efficacy_duplication.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_dur_er_tablet_split_caution.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_dur_medication_period_caution.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_dur_older_adult_caution.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_dur_pregnancy_taboo.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_dur_product_info.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_dur_usjnt_taboo.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_empty.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_g2b_catalog.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_g2b_contract.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_metro_fare.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_mid_fcst.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_mid_land_fcst.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_mid_sea_fcst.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_mid_ta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_multi_page_1.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_multi_page_2.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_offi_rent.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_offi_trade.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_rh_rent.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_rh_trade.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_road_traffic.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_sh_rent.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_sh_trade.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_single_item.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_single_page.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_sports_facility.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_string_numerics.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_subway_passengers.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_tour_kor_area.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_tour_kor_festival.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_tour_kor_keyword.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_tour_kor_location.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_xml.xml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/success_xml_single_item.xml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/tour_kor_area/seoul_restaurants.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/tour_kor_area/seoul_restaurants.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/tour_kor_area/seoul_restaurants.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/tour_kor_festival/year_2026.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/tour_kor_festival/year_2026.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/tour_kor_festival/year_2026.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/tour_kor_keyword/gangnam_keyword.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/tour_kor_keyword/gangnam_keyword.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/tour_kor_keyword/gangnam_keyword.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/tour_kor_location/gangnam_1km.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/tour_kor_location/gangnam_1km.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/tour_kor_location/gangnam_1km.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/village_fcst/seoul_default.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/village_fcst/seoul_default.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/village_fcst/seoul_default.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/village_fcst/seoul_evening.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/village_fcst/seoul_evening.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/village_fcst/seoul_evening.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/village_fcst/xml_response.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/village_fcst/xml_response.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/datago/village_fcst/xml_response.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/fds/auth_error.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/fds/traceability_item.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/kipris/empty.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/kipris/patent_family.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/korean/auth_error.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/korean/dict_search.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/kosis/error_auth.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/kosis/industrial_production_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/kosis/success_empty.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/kosis/success_single_page.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/krx/investor_flow_5days.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/krx/kospi_index_5days.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/krx/market_valuation_5days.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/law/success_law_detail.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/law/success_law_search.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/law/success_ordin_search.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/affiliated_medical_institution_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/air_pollution_prevention_facility_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/amusement_facility_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/animal_breeding_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/animal_care_service_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/animal_crematorium_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/animal_exhibition_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/animal_funeral_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/animal_hospital_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/animal_import_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/animal_sales_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/animal_training_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/animal_transport_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/bakery/default.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/bakery/default.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/bakery/default.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/bakery_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/barber_shop_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/beauty_salon_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/billiard_hall_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/boxing_gym_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/breeding_stock_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/building_sanitation_management_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/caregiver_training_institution_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/city_gas_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/civil_defense_water_supply_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/clinic_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/companion_animal_related_business_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/composite_game_provider_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/comprehensive_amusement_facility_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/comprehensive_resort_business_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/comprehensive_sports_facility_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/comprehensive_travel_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/container_packaging_manufacturing_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/contract_foodservice_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/culture_industry_company_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/dance_academy_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/dance_hall_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/dental_lab_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/disinfection_business_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/distribution_specialized_sales_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/domestic_international_travel_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/domestic_travel_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/door_to_door_sales_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/ecommerce_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/edible_ice_sales_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/electrical_construction_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/electrical_safety_management_agency_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/electricity_sales_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/electronic_distribution_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/elevator_maintenance_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/elevator_manufacturing_import_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/emergency_patient_transport_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/empty_response.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/energy_saving_company_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/entertainment_bar_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/environmental_consulting_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/environmental_impact_assessment_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/environmental_measurement_agency_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/error_auth.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/feed_manufacturing_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/fitness_center_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/food_additive_manufacturing_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/food_cold_storage_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/food_manufacturing_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/food_repackaging_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/food_transportation_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/food_vending_machine_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/foreign_tourist_city_homestay_lodging_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/foreign_tourist_city_homestay_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/foreigner_exclusive_entertainment_restaurant_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/free_job_placement_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/funeral_director_training_institution_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/funeral_service_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/game_distribution_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/game_manufacturing_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/game_provider_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/gas_appliance_manufacturing_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/general_amusement_facility_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/general_lodging_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/general_restaurant/default.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/general_restaurant/default.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/general_restaurant/default.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/general_restaurant_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/golf_course_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/golf_practice_range_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/groundwater_construction_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/groundwater_impact_assessment_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/groundwater_purification_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/group_cafeteria_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/hanok_experience_lodging_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/hanok_experience_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/hatchery_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/health_functional_food_distributor_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/health_functional_food_retail_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/health_functional_food_specialty_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/high_pressure_gas_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/horse_riding_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/hospital_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/ice_rink_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/imported_food_sales_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/imported_livestock_sales_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/instant_food_manufacturing_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/international_conference_facility_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/international_conference_planning_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/international_freight_forwarding_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/internet_computer_game_facility_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/karaoke_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/large_store_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/laundry_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/livestock_artificial_insemination_center_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/livestock_farming_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/livestock_processing_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/livestock_sales_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/livestock_storage_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/livestock_transportation_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/log_production_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/logistics_warehouse_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/lpg_charging_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/lpg_collective_supply_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/lpg_sales_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/mail_order_sales_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/marine_environment_management_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/martial_arts_gym_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/medical_device_repair_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/medical_device_sales_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/medical_foundation_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/medical_linen_processing_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/medical_waste_treatment_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/meter_repair_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/milk_collection_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/motor_racing_course_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/movie_distribution_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/movie_import_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/movie_production_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/movie_screening_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/movie_theater_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/multilevel_sales_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/music_video_distribution_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/music_video_production_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/night_soil_collection_transportation_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/noise_vibration_prevention_facility_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/onggi_manufacturing_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/online_music_service_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/optical_shop_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/other_food_sales_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/outdoor_advertising_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/paid_job_placement_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/performance_hall_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/pet_grooming_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/petroleum_import_export_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/petroleum_sales_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/pharmacy_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/popular_culture_arts_planning_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/postpartum_care_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/prepaid_installment_trade_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/printing_house_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/public_bath_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/publisher_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/quasi_medical_business_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/record_distribution_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/record_production_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/residential_accommodation_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/rest_cafe/default.expected.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/rest_cafe/default.meta.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/rest_cafe/default.raw.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/rest_cafe_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/rural_guesthouse_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/safe_over_the_counter_drug_store_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/sanitary_product_manufacturing_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/sanitation_treatment_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/sawmill_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/singing_bar_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/ski_resort_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/slaughterhouse_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/small_hotel_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/soil_remediation_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/specialized_resort_business_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/swimming_pool_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/timber_import_distribution_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/tobacco_import_sales_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/tobacco_retail_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/tobacco_wholesale_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/tourism_business_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/tourism_convenience_facility_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/tourism_duty_free_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/tourist_accommodation_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/tourist_entertainment_restaurant_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/tourist_excursion_boat_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/tourist_pension_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/tourist_performance_hall_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/tourist_restaurant_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/tourist_theater_entertainment_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/tourist_track_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/video_distribution_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/video_production_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/video_small_theater_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/video_viewing_room_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/video_viewing_service_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/waste_collection_transportation_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/waste_recycling_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/waste_treatment_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/water_pollution_prevention_facility_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/water_tank_cleaning_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/yacht_marina_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/localdata/youth_game_provider_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/lofin/error_auth.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/lofin/success_fiacrv.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/lofin/success_single_page.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/neis/auth_error.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/neis/empty_result.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/neis/meal_diet.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/neis/school_info.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/semas/empty_response.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/semas/error_auth.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/semas/error_invalid_request.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/semas/store_one_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/semas/upjong_large_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/semas/zone_one_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/seoul/bike_realtime_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/seoul/bike_rent_month_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/seoul/bike_station_master_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/seoul/citydata.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/seoul/empty_response.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/seoul/error_auth.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/seoul/park_info.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/seoul/park_usage.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/seoul/subway_realtime_arrival_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/sgis/auth_success.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/sgis/error_invalid_token.json +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/sgis/sido_boundary.geojson +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/sgis/sigungu_boundary.geojson +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/specs/README.md +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/specs/invalid_bad_enum.yaml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/specs/invalid_bad_id.yaml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/specs/invalid_id_mismatch.yaml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/specs/invalid_missing_required.yaml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/specs/valid_full.yaml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/fixtures/specs/valid_minimal.yaml +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/integration/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/integration/conftest.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/integration/test_bok_live.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/integration/test_client_flow.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/integration/test_exception_propagation.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/integration/test_kosis_live.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/integration/test_krx_live.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/integration/test_law_live.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/integration/test_localdata_live.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/integration/test_lofin_live.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/integration/test_semas_live.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/integration/test_seoul_live.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/integration/test_sgis_live.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/integration/test_transport_http.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/core/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/core/conftest.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/core/test_bridge.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/core/test_dataset.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/core/test_dataset_coverage.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/core/test_exceptions_coverage.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/core/test_executor_single_path.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/core/test_host_allowlist.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/core/test_models.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/core/test_models_fixtures.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/core/test_to_pandas.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/core/test_version.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/bok/test_bok_adapter.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/datago/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/datago/conftest.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/datago/test_adapter_coverage.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/datago/test_generic.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/fds/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/fds/test_adapter.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/kipris/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/kipris/test_adapter.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/korean/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/korean/test_adapter.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/kosis/test_adapter.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/krx/test_krx_adapter.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/law/test_law_adapter.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/localdata/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/lofin/test_lofin_adapter.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/neis/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/neis/test_adapter.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/semas/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/seoul/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/seoul/test_adapter.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/seoul/test_envelope.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/sgis/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/sgis/test_adapter.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/sgis/test_auth.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/test_adapter_contract.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/test_datago_family_adapters.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/providers/test_datago_family_parity.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/scripts/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/scripts/test_next_version.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/scripts/test_required_checks.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/scripts/test_set_version.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/scripts/test_workflow_script_references.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/test_builtin_manifest_conformance.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/test_catalog.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/test_catalog_coverage.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/test_catalogue_validation.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/test_client_auth.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/test_client_coverage.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/test_client_transport_requirements.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/test_config.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/test_config_coverage.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/test_failure_path_logging.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/test_junit_summary.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/test_logging.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/test_optional_dependencies_are_optional.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/test_readme_parity.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/test_registry.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/test_registry_coverage.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/test_shared_datago_key.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/test_verify_guard.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/transport/__init__.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/transport/test_cache.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/transport/test_cache_edges.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/transport/test_decode.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/transport/test_decode_coverage.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/transport/test_error_envelope_caching.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/transport/test_http_coverage.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/transport/test_http_coverage_extra.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/transport/test_retry.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/transport/test_retry_coverage.py +0 -0
- {kpubdata-0.7.0 → kpubdata-0.9.0}/tests/unit/transport/test_transport_requirements.py +0 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# R3 paths — changes here require CODEOWNER review (#520)
|
|
2
|
+
/.github/ @yeongseon
|
|
3
|
+
/src/kpubdata/config.py @yeongseon
|
|
4
|
+
/src/kpubdata/transport/ @yeongseon
|
|
5
|
+
/src/kpubdata/specs/ @yeongseon
|
|
6
|
+
/docs/governance/ @yeongseon
|
|
7
|
+
# Credential host allowlist (#519, #629)
|
|
8
|
+
/src/kpubdata/_hosts.py @yeongseon
|
|
9
|
+
# Evidence creation and judgement (#714) — the recorder, the verifier, the
|
|
10
|
+
# authorship gate, and the evidence files themselves. A dataset is "verified"
|
|
11
|
+
# by these paths; whoever changes them changes what verified means.
|
|
12
|
+
/scripts/record.py @yeongseon
|
|
13
|
+
/scripts/verify_spec.py @yeongseon
|
|
14
|
+
/scripts/check_fixture_authorship.py @yeongseon
|
|
15
|
+
/scripts/*_baseline.txt @yeongseon
|
|
16
|
+
/tests/fixtures/**/*.raw.json @yeongseon
|
|
17
|
+
/tests/fixtures/**/*.meta.json @yeongseon
|
|
18
|
+
/tests/fixtures/**/*.expected.json @yeongseon
|
|
19
|
+
# Run by jobs holding `contents: write` — release notes, version, titles, window (#629, #685)
|
|
20
|
+
/scripts/release_notes.py @yeongseon
|
|
21
|
+
/scripts/set_version.py @yeongseon
|
|
22
|
+
/scripts/next_version.py @yeongseon
|
|
23
|
+
/scripts/conventional_title.py @yeongseon
|
|
24
|
+
/scripts/release_window.py @yeongseon
|
|
25
|
+
# The R3 gate (#722): whoever changes it changes what an R3 approval means
|
|
26
|
+
/scripts/r3_review.py @yeongseon
|
|
27
|
+
# Dependencies (#629)
|
|
28
|
+
/pyproject.toml @yeongseon
|
|
29
|
+
/uv.lock @yeongseon
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
name: 버그 리포트
|
|
2
|
+
description: 예상과 다르게 동작하는 문제를 신고합니다
|
|
3
|
+
title: "fix: "
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
버그를 신고해 주셔서 감사합니다. 재현에 필요한 정보를 최대한 채워주세요.
|
|
9
|
+
- type: textarea
|
|
10
|
+
id: summary
|
|
11
|
+
attributes:
|
|
12
|
+
label: 문제 요약
|
|
13
|
+
description: 무엇이 잘못되었나요?
|
|
14
|
+
validations:
|
|
15
|
+
required: true
|
|
16
|
+
- type: textarea
|
|
17
|
+
id: reproduction
|
|
18
|
+
attributes:
|
|
19
|
+
label: 재현 절차
|
|
20
|
+
description: 문제를 재현하는 최소 코드 예시 또는 단계별 절차
|
|
21
|
+
placeholder: |
|
|
22
|
+
```python
|
|
23
|
+
from kpubdata import Client
|
|
24
|
+
client = Client.from_env()
|
|
25
|
+
...
|
|
26
|
+
```
|
|
27
|
+
validations:
|
|
28
|
+
required: true
|
|
29
|
+
- type: textarea
|
|
30
|
+
id: expected
|
|
31
|
+
attributes:
|
|
32
|
+
label: 기대 동작
|
|
33
|
+
validations:
|
|
34
|
+
required: true
|
|
35
|
+
- type: textarea
|
|
36
|
+
id: actual
|
|
37
|
+
attributes:
|
|
38
|
+
label: 실제 동작 / 오류 로그(traceback)
|
|
39
|
+
render: shell
|
|
40
|
+
validations:
|
|
41
|
+
required: true
|
|
42
|
+
- type: input
|
|
43
|
+
id: provider
|
|
44
|
+
attributes:
|
|
45
|
+
label: 관련 provider (해당 시)
|
|
46
|
+
placeholder: "예) datago, kosis, seoul"
|
|
47
|
+
validations:
|
|
48
|
+
required: false
|
|
49
|
+
- type: textarea
|
|
50
|
+
id: environment
|
|
51
|
+
attributes:
|
|
52
|
+
label: 실행 환경
|
|
53
|
+
description: OS, Python 버전, kpubdata 버전
|
|
54
|
+
placeholder: |
|
|
55
|
+
- OS: Ubuntu 24.04
|
|
56
|
+
- Python: 3.12
|
|
57
|
+
- kpubdata: x.y.z
|
|
58
|
+
validations:
|
|
59
|
+
required: false
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
name: 데이터셋 추가 요청
|
|
2
|
+
description: spec 기반으로 추가할 공공데이터셋을 요청한다
|
|
3
|
+
title: "feat(datasets): "
|
|
4
|
+
labels: [dataset-request]
|
|
5
|
+
body:
|
|
6
|
+
- type: input
|
|
7
|
+
id: portal_url
|
|
8
|
+
attributes:
|
|
9
|
+
label: data.go.kr 데이터셋 URL
|
|
10
|
+
description: 활용가이드를 확인할 수 있는 공공데이터포털 페이지 URL
|
|
11
|
+
validations:
|
|
12
|
+
required: true
|
|
13
|
+
- type: input
|
|
14
|
+
id: dataset_id
|
|
15
|
+
attributes:
|
|
16
|
+
label: 제안 데이터셋 id
|
|
17
|
+
description: "{provider}.{dataset_key} 형식 (예: datago.air_quality)"
|
|
18
|
+
placeholder: datago.air_quality
|
|
19
|
+
validations:
|
|
20
|
+
required: true
|
|
21
|
+
- type: dropdown
|
|
22
|
+
id: provider
|
|
23
|
+
attributes:
|
|
24
|
+
label: Provider
|
|
25
|
+
options:
|
|
26
|
+
- datago
|
|
27
|
+
- localdata
|
|
28
|
+
- semas
|
|
29
|
+
- lofin
|
|
30
|
+
- seoul
|
|
31
|
+
- neis
|
|
32
|
+
- kipris
|
|
33
|
+
- korean
|
|
34
|
+
- fds
|
|
35
|
+
- bok
|
|
36
|
+
- kosis
|
|
37
|
+
- law
|
|
38
|
+
- sgis
|
|
39
|
+
- krx
|
|
40
|
+
validations:
|
|
41
|
+
required: true
|
|
42
|
+
- type: dropdown
|
|
43
|
+
id: priority
|
|
44
|
+
attributes:
|
|
45
|
+
label: 우선순위
|
|
46
|
+
options:
|
|
47
|
+
- p0 (지금 필요)
|
|
48
|
+
- p1 (가까운 미래)
|
|
49
|
+
- p2 (여유 있을 때)
|
|
50
|
+
validations:
|
|
51
|
+
required: true
|
|
52
|
+
- type: textarea
|
|
53
|
+
id: reason
|
|
54
|
+
attributes:
|
|
55
|
+
label: 필요한 이유
|
|
56
|
+
description: 어떤 분석/서비스에 쓰이는지 간단히
|
|
57
|
+
validations:
|
|
58
|
+
required: true
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
name: 문서 개선
|
|
2
|
+
description: 문서 오류, 누락, 개선 사항을 신고합니다
|
|
3
|
+
title: "docs: "
|
|
4
|
+
body:
|
|
5
|
+
- type: input
|
|
6
|
+
id: location
|
|
7
|
+
attributes:
|
|
8
|
+
label: 문서 위치
|
|
9
|
+
description: 파일 경로 또는 URL
|
|
10
|
+
placeholder: "예) README.md, docs/product-family-architecture.md"
|
|
11
|
+
validations:
|
|
12
|
+
required: true
|
|
13
|
+
- type: textarea
|
|
14
|
+
id: problem
|
|
15
|
+
attributes:
|
|
16
|
+
label: 문제 / 개선 제안
|
|
17
|
+
description: 무엇이 부정확하거나 부족한가요? 어떻게 바뀌면 좋을까요?
|
|
18
|
+
validations:
|
|
19
|
+
required: true
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: 기능 제안
|
|
2
|
+
description: 새로운 기능이나 개선을 제안합니다 (신규 provider는 별도 템플릿 사용)
|
|
3
|
+
title: "feat: "
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
> 새로운 공공데이터 provider adapter 제안은 **New Provider Adapter** 템플릿을 사용해주세요.
|
|
9
|
+
- type: textarea
|
|
10
|
+
id: problem
|
|
11
|
+
attributes:
|
|
12
|
+
label: 해결하려는 문제
|
|
13
|
+
description: 어떤 불편이나 한계를 해결하려는 건가요?
|
|
14
|
+
validations:
|
|
15
|
+
required: true
|
|
16
|
+
- type: textarea
|
|
17
|
+
id: proposal
|
|
18
|
+
attributes:
|
|
19
|
+
label: 제안 내용
|
|
20
|
+
description: 원하는 동작이나 API를 설명하세요.
|
|
21
|
+
validations:
|
|
22
|
+
required: true
|
|
23
|
+
- type: textarea
|
|
24
|
+
id: alternatives
|
|
25
|
+
attributes:
|
|
26
|
+
label: 대안 검토
|
|
27
|
+
description: 고려한 다른 방법이 있다면 적어주세요.
|
|
28
|
+
validations:
|
|
29
|
+
required: false
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
name: New Provider Adapter
|
|
2
|
+
description: Propose or track a new Korean public data provider adapter
|
|
3
|
+
title: "feat(providers): "
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
## New Provider Adapter Request
|
|
9
|
+
|
|
10
|
+
Use this template to propose adding a new Korean public data provider.
|
|
11
|
+
|
|
12
|
+
- type: input
|
|
13
|
+
id: provider-name
|
|
14
|
+
attributes:
|
|
15
|
+
label: Provider Name
|
|
16
|
+
description: The official name of the data provider (Korean and English)
|
|
17
|
+
placeholder: "e.g., 서울열린데이터광장 (Seoul Open Data)"
|
|
18
|
+
validations:
|
|
19
|
+
required: true
|
|
20
|
+
|
|
21
|
+
- type: input
|
|
22
|
+
id: base-url
|
|
23
|
+
attributes:
|
|
24
|
+
label: API Base URL
|
|
25
|
+
description: The base URL for the provider's API
|
|
26
|
+
placeholder: "e.g., http://openapi.seoul.go.kr:8088"
|
|
27
|
+
validations:
|
|
28
|
+
required: true
|
|
29
|
+
|
|
30
|
+
- type: dropdown
|
|
31
|
+
id: auth-type
|
|
32
|
+
attributes:
|
|
33
|
+
label: Authentication Type
|
|
34
|
+
options:
|
|
35
|
+
- API Key (query parameter)
|
|
36
|
+
- API Key (header)
|
|
37
|
+
- OAuth 2.0
|
|
38
|
+
- No auth
|
|
39
|
+
- Other (describe below)
|
|
40
|
+
validations:
|
|
41
|
+
required: true
|
|
42
|
+
|
|
43
|
+
- type: dropdown
|
|
44
|
+
id: response-format
|
|
45
|
+
attributes:
|
|
46
|
+
label: Response Format
|
|
47
|
+
multiple: true
|
|
48
|
+
options:
|
|
49
|
+
- JSON
|
|
50
|
+
- XML
|
|
51
|
+
- CSV
|
|
52
|
+
- Excel
|
|
53
|
+
- Other
|
|
54
|
+
validations:
|
|
55
|
+
required: true
|
|
56
|
+
|
|
57
|
+
- type: textarea
|
|
58
|
+
id: datasets
|
|
59
|
+
attributes:
|
|
60
|
+
label: Key Datasets
|
|
61
|
+
description: List the most important datasets this provider offers
|
|
62
|
+
placeholder: |
|
|
63
|
+
- 서울시 실시간 대기환경 (Real-time air quality)
|
|
64
|
+
- 서울시 공공자전거 대여소 (Public bike stations)
|
|
65
|
+
validations:
|
|
66
|
+
required: true
|
|
67
|
+
|
|
68
|
+
- type: textarea
|
|
69
|
+
id: api-docs
|
|
70
|
+
attributes:
|
|
71
|
+
label: API Documentation Links
|
|
72
|
+
description: Links to official API documentation
|
|
73
|
+
placeholder: "https://..."
|
|
74
|
+
validations:
|
|
75
|
+
required: true
|
|
76
|
+
|
|
77
|
+
- type: textarea
|
|
78
|
+
id: notes
|
|
79
|
+
attributes:
|
|
80
|
+
label: Additional Notes
|
|
81
|
+
description: Any quirks, rate limits, or special considerations
|
|
82
|
+
placeholder: |
|
|
83
|
+
- Rate limit: 1000 calls/day
|
|
84
|
+
- Requires registration at data.go.kr
|
|
85
|
+
- Some endpoints return EUC-KR encoding
|
|
86
|
+
validations:
|
|
87
|
+
required: false
|
|
88
|
+
|
|
89
|
+
- type: checkboxes
|
|
90
|
+
id: checklist
|
|
91
|
+
attributes:
|
|
92
|
+
label: Implementation Checklist
|
|
93
|
+
description: Track progress (maintainer use)
|
|
94
|
+
options:
|
|
95
|
+
- label: "API research and documentation"
|
|
96
|
+
- label: "Adapter class with `name` property"
|
|
97
|
+
- label: "`list_datasets()` implementation"
|
|
98
|
+
- label: "`query_records()` with pagination"
|
|
99
|
+
- label: "`get_schema()` implementation"
|
|
100
|
+
- label: "`call_raw()` escape hatch"
|
|
101
|
+
- label: "Fixture responses captured"
|
|
102
|
+
- label: "Unit tests with fixtures"
|
|
103
|
+
- label: "Contract tests passing"
|
|
104
|
+
- label: "Capabilities documented honestly"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
PR 제목은 Conventional Commits 형식이어야 합니다 — `PR title` 체크가 검사합니다(POLICY 2.1.3).
|
|
3
|
+
type: feat fix docs test perf refactor ci build chore style revert — 규칙 정본: docs/governance/POLICY.md 2.1.3
|
|
4
|
+
이슈 번호는 제목이 아니라 본문에 적습니다 (Closes #123). squash 병합이 PR 번호를 붙입니다.
|
|
5
|
+
예) feat: add KOSIS provider adapter
|
|
6
|
+
-->
|
|
7
|
+
|
|
8
|
+
Closes #<이슈 번호>
|
|
9
|
+
<!-- 이슈 없는 PR(의존성 갱신 등)은 이 줄을 지우고, 참조만 남길 땐 Refs #N. -->
|
|
10
|
+
|
|
11
|
+
## 문제
|
|
12
|
+
<!-- 무엇이 잘못됐거나 무엇이 필요한지 — 대부분의 PR은 한두 문장이면 충분하다. -->
|
|
13
|
+
|
|
14
|
+
## 변경 내용
|
|
15
|
+
<!-- 무엇을 어떻게 바꿨는지 -->
|
|
16
|
+
|
|
17
|
+
## 검증
|
|
18
|
+
<!-- 돌린 게이트·테스트와 결과. ruff·mypy·pytest·docs strict 는 CI가 같은 걸 다시 돌리므로, 여기에는 로컬에서만 볼 수 있는 것(실측·재현·스크린샷)을 적는다. -->
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
name: Conventional title
|
|
2
|
+
description: >
|
|
3
|
+
Parse an issue or pull request title as `type(scope): description` and say which
|
|
4
|
+
`type:*` label it implies (POLICY 2.1.3). Wraps scripts/conventional_title.py so the
|
|
5
|
+
three repositories use one parser. Never fails the step — callers decide what an
|
|
6
|
+
invalid title means, because a pull request should go red and an issue should not.
|
|
7
|
+
|
|
8
|
+
inputs:
|
|
9
|
+
title:
|
|
10
|
+
description: "The title to check. Pass it from the event payload, never through `run:`"
|
|
11
|
+
required: true
|
|
12
|
+
pull-request:
|
|
13
|
+
description: >
|
|
14
|
+
"true" for a pull request title: it becomes the commit title on main, so it must
|
|
15
|
+
also be English, carry no issue reference and fit in 100 characters (POLICY 2.1.3,
|
|
16
|
+
#742). Issue titles leave it "false" — they may be Korean.
|
|
17
|
+
required: false
|
|
18
|
+
default: "false"
|
|
19
|
+
|
|
20
|
+
outputs:
|
|
21
|
+
valid:
|
|
22
|
+
description: "true or false"
|
|
23
|
+
value: ${{ steps.run.outputs.valid }}
|
|
24
|
+
type:
|
|
25
|
+
description: "The Conventional Commits type, when valid"
|
|
26
|
+
value: ${{ steps.run.outputs.type }}
|
|
27
|
+
label:
|
|
28
|
+
description: "The type:* label the title implies, when valid"
|
|
29
|
+
value: ${{ steps.run.outputs.label }}
|
|
30
|
+
error:
|
|
31
|
+
description: "What is wrong with the title, when invalid"
|
|
32
|
+
value: ${{ steps.run.outputs.error }}
|
|
33
|
+
|
|
34
|
+
runs:
|
|
35
|
+
using: composite
|
|
36
|
+
steps:
|
|
37
|
+
# The title is attacker-controlled text. It reaches the script through an
|
|
38
|
+
# environment variable, not by expansion into the shell line.
|
|
39
|
+
- id: run
|
|
40
|
+
shell: bash
|
|
41
|
+
env:
|
|
42
|
+
TITLE: ${{ inputs.title }}
|
|
43
|
+
PULL_REQUEST: ${{ inputs.pull-request }}
|
|
44
|
+
run: |
|
|
45
|
+
script="${{ github.action_path }}/../../../scripts/conventional_title.py"
|
|
46
|
+
args=()
|
|
47
|
+
if [ "${PULL_REQUEST}" = "true" ]; then
|
|
48
|
+
args+=(--pull-request)
|
|
49
|
+
fi
|
|
50
|
+
if out=$(python3 "${script}" "${args[@]}" "${TITLE}" 2>/tmp/title-error); then
|
|
51
|
+
echo "valid=true" >> "$GITHUB_OUTPUT"
|
|
52
|
+
echo "${out}" >> "$GITHUB_OUTPUT"
|
|
53
|
+
else
|
|
54
|
+
echo "valid=false" >> "$GITHUB_OUTPUT"
|
|
55
|
+
echo "error=$(sed 's/^::error:://' /tmp/title-error | head -1)" >> "$GITHUB_OUTPUT"
|
|
56
|
+
fi
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
name: R3 review
|
|
2
|
+
description: >
|
|
3
|
+
Fail a pull request labelled `review:R3` until a person other than its author, with
|
|
4
|
+
write access, currently approves it (#722, kpubdata-builder#905, POLICY 14). Passes
|
|
5
|
+
every other pull request, so the check can be required without leaving any pull
|
|
6
|
+
request waiting for it. Wraps scripts/r3_review.py so the four repositories run one
|
|
7
|
+
rule. Needs only `pull-requests: read`, so it works on fork pull requests too.
|
|
8
|
+
|
|
9
|
+
inputs:
|
|
10
|
+
pr-number:
|
|
11
|
+
description: "The pull request to check; defaults to the event's"
|
|
12
|
+
required: false
|
|
13
|
+
default: ${{ github.event.pull_request.number }}
|
|
14
|
+
label:
|
|
15
|
+
description: "The label that requires a non-author approval"
|
|
16
|
+
required: false
|
|
17
|
+
default: "review:R3"
|
|
18
|
+
|
|
19
|
+
outputs:
|
|
20
|
+
passed:
|
|
21
|
+
description: "true or false"
|
|
22
|
+
value: ${{ steps.run.outputs.passed }}
|
|
23
|
+
reason:
|
|
24
|
+
description: "Why"
|
|
25
|
+
value: ${{ steps.run.outputs.reason }}
|
|
26
|
+
|
|
27
|
+
runs:
|
|
28
|
+
using: composite
|
|
29
|
+
steps:
|
|
30
|
+
# Labels and reviews are read live rather than from the event payload: a re-run
|
|
31
|
+
# replays the old payload, and a run triggered by a review must see the labels as
|
|
32
|
+
# they are now. A failed lookup fails the step — it must never read as "no label".
|
|
33
|
+
- id: run
|
|
34
|
+
shell: bash
|
|
35
|
+
env:
|
|
36
|
+
GH_TOKEN: ${{ github.token }}
|
|
37
|
+
REPO: ${{ github.repository }}
|
|
38
|
+
NUMBER: ${{ inputs.pr-number }}
|
|
39
|
+
LABEL: ${{ inputs.label }}
|
|
40
|
+
run: |
|
|
41
|
+
set -euo pipefail
|
|
42
|
+
if ! [[ "${NUMBER}" =~ ^[0-9]+$ ]]; then
|
|
43
|
+
echo "::error::no pull request number (got '${NUMBER}')"
|
|
44
|
+
exit 2
|
|
45
|
+
fi
|
|
46
|
+
dir="${RUNNER_TEMP}/r3-review"
|
|
47
|
+
mkdir -p "${dir}"
|
|
48
|
+
gh api "repos/${REPO}/pulls/${NUMBER}" > "${dir}/pull.json"
|
|
49
|
+
gh api --paginate "repos/${REPO}/pulls/${NUMBER}/reviews?per_page=100" --jq '.[]' \
|
|
50
|
+
> "${dir}/reviews.jsonl"
|
|
51
|
+
status=0
|
|
52
|
+
python3 "${{ github.action_path }}/../../../scripts/r3_review.py" \
|
|
53
|
+
--pull "${dir}/pull.json" --reviews "${dir}/reviews.jsonl" --label "${LABEL}" \
|
|
54
|
+
> "${dir}/out" || status=$?
|
|
55
|
+
cat "${dir}/out" >> "$GITHUB_OUTPUT"
|
|
56
|
+
sed -n 's/^reason=//p' "${dir}/out" >> "$GITHUB_STEP_SUMMARY"
|
|
57
|
+
sed -n 's/^reason=//p' "${dir}/out"
|
|
58
|
+
exit "${status}"
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
name: Release freeze
|
|
2
|
+
description: >
|
|
3
|
+
Refuse pull requests that are not release pull requests while Builder or Studio
|
|
4
|
+
`main` is frozen (#701, docs/compatibility.md §5.1). The freeze starts on the
|
|
5
|
+
release week's Monday and ends when Studio ships in that week; a release pull
|
|
6
|
+
request is a `release/*` branch, a pull request touching only release files
|
|
7
|
+
(version, CHANGELOG, dependency pins, compatibility documents), or a body line
|
|
8
|
+
`Critical-Patch: #N`. Not applicable — not a pull request, or not targeting
|
|
9
|
+
`main` — exits 0, so the calling job is never skipped and the CI gate that needs
|
|
10
|
+
it keeps its meaning. Wraps scripts/release_freeze.py so the two repositories run
|
|
11
|
+
one rule.
|
|
12
|
+
|
|
13
|
+
inputs:
|
|
14
|
+
github_token:
|
|
15
|
+
description: "A token with pull-request read access; the default works in the calling repository"
|
|
16
|
+
required: false
|
|
17
|
+
default: ${{ github.token }}
|
|
18
|
+
studio_repo:
|
|
19
|
+
description: "The repository whose shipping ends the freeze"
|
|
20
|
+
required: false
|
|
21
|
+
default: "kpubdata-lab/kpubdata-studio"
|
|
22
|
+
report_only:
|
|
23
|
+
description: "true to warn instead of failing — for dry runs"
|
|
24
|
+
required: false
|
|
25
|
+
default: "false"
|
|
26
|
+
|
|
27
|
+
outputs:
|
|
28
|
+
frozen:
|
|
29
|
+
description: "true or false — whether main is frozen for this pull request"
|
|
30
|
+
value: ${{ steps.run.outputs.frozen }}
|
|
31
|
+
allowed:
|
|
32
|
+
description: "true or false"
|
|
33
|
+
value: ${{ steps.run.outputs.allowed }}
|
|
34
|
+
reason:
|
|
35
|
+
description: "Why"
|
|
36
|
+
value: ${{ steps.run.outputs.reason }}
|
|
37
|
+
|
|
38
|
+
runs:
|
|
39
|
+
using: composite
|
|
40
|
+
steps:
|
|
41
|
+
# Every fact reaches the script through files or the environment, never by
|
|
42
|
+
# expansion into the shell line — a pull request body can contain anything
|
|
43
|
+
# (#628). Studio's releases are read cross-repository; both repositories are
|
|
44
|
+
# public, so the calling token can read them.
|
|
45
|
+
- id: run
|
|
46
|
+
shell: bash
|
|
47
|
+
env:
|
|
48
|
+
GH_TOKEN: ${{ inputs.github_token }}
|
|
49
|
+
PR_URL: ${{ github.event.pull_request.html_url }}
|
|
50
|
+
BASE_REF: ${{ github.event.pull_request.base.ref }}
|
|
51
|
+
STUDIO_REPO: ${{ inputs.studio_repo }}
|
|
52
|
+
REPORT_ONLY: ${{ inputs.report_only }}
|
|
53
|
+
run: |
|
|
54
|
+
not_applicable() {
|
|
55
|
+
echo "frozen=false" >> "$GITHUB_OUTPUT"
|
|
56
|
+
echo "allowed=true" >> "$GITHUB_OUTPUT"
|
|
57
|
+
echo "reason=$1" >> "$GITHUB_OUTPUT"
|
|
58
|
+
echo "::notice::$1"
|
|
59
|
+
exit 0
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if [ -z "${PR_URL}" ]; then
|
|
63
|
+
not_applicable "not a pull request event — the freeze does not apply"
|
|
64
|
+
fi
|
|
65
|
+
if [ "${BASE_REF}" != "main" ]; then
|
|
66
|
+
not_applicable "targets '${BASE_REF}', not main — the freeze does not apply"
|
|
67
|
+
fi
|
|
68
|
+
|
|
69
|
+
pr_json=$(mktemp)
|
|
70
|
+
branch_file=$(mktemp)
|
|
71
|
+
body_file=$(mktemp)
|
|
72
|
+
files_file=$(mktemp)
|
|
73
|
+
gh pr view "${PR_URL}" --json headRefName,body,files > "${pr_json}" \
|
|
74
|
+
|| { echo "::error::could not read the pull request"; exit 1; }
|
|
75
|
+
|
|
76
|
+
python3 - "${pr_json}" "${branch_file}" "${body_file}" "${files_file}" <<'PY'
|
|
77
|
+
import json
|
|
78
|
+
import sys
|
|
79
|
+
|
|
80
|
+
pr = json.load(open(sys.argv[1], encoding="utf-8"))
|
|
81
|
+
with open(sys.argv[2], "w", encoding="utf-8") as out:
|
|
82
|
+
out.write(pr["headRefName"])
|
|
83
|
+
with open(sys.argv[3], "w", encoding="utf-8") as out:
|
|
84
|
+
out.write(pr["body"] or "")
|
|
85
|
+
with open(sys.argv[4], "w", encoding="utf-8") as out:
|
|
86
|
+
out.write("\n".join(f["path"] for f in pr["files"]))
|
|
87
|
+
PY
|
|
88
|
+
head_branch=$(cat "${branch_file}")
|
|
89
|
+
|
|
90
|
+
# Studio's final releases: a publish inside this window ends the freeze.
|
|
91
|
+
studio_times=$(gh release list --repo "${STUDIO_REPO}" \
|
|
92
|
+
--exclude-drafts --exclude-pre-releases --limit 100 \
|
|
93
|
+
--json publishedAt --jq '.[].publishedAt' | tr '\n' ' ')
|
|
94
|
+
|
|
95
|
+
args=(--head-branch "${head_branch}"
|
|
96
|
+
--body-file "${body_file}"
|
|
97
|
+
--files-from "${files_file}"
|
|
98
|
+
--studio-release-times "${studio_times}")
|
|
99
|
+
if [ "${REPORT_ONLY}" = "true" ]; then args+=(--report-only); fi
|
|
100
|
+
|
|
101
|
+
python3 "${{ github.action_path }}/../../../scripts/release_freeze.py" \
|
|
102
|
+
"${args[@]}" >> "$GITHUB_OUTPUT"
|
|
103
|
+
freeze_status=$?
|
|
104
|
+
|
|
105
|
+
rm -f "${pr_json}" "${branch_file}" "${body_file}" "${files_file}"
|
|
106
|
+
exit "${freeze_status}"
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
name: Release notes
|
|
2
|
+
description: >
|
|
3
|
+
Take a release's notes from its CHANGELOG section, or put that section in place.
|
|
4
|
+
Wraps scripts/release_notes.py so the three repositories call one implementation.
|
|
5
|
+
`extract` fails when the section is missing or empty, so a release without notes
|
|
6
|
+
stops before a tag exists.
|
|
7
|
+
|
|
8
|
+
inputs:
|
|
9
|
+
command:
|
|
10
|
+
description: "promote (prepare job) or extract (release job)"
|
|
11
|
+
required: true
|
|
12
|
+
version:
|
|
13
|
+
description: "The version being released, with or without the leading v"
|
|
14
|
+
required: true
|
|
15
|
+
changelog:
|
|
16
|
+
description: "Path to the CHANGELOG"
|
|
17
|
+
required: false
|
|
18
|
+
default: CHANGELOG.md
|
|
19
|
+
output:
|
|
20
|
+
description: "Where extract writes the notes (default: the runner's temp directory)"
|
|
21
|
+
required: false
|
|
22
|
+
default: ""
|
|
23
|
+
|
|
24
|
+
outputs:
|
|
25
|
+
file:
|
|
26
|
+
description: "The notes file (extract only)"
|
|
27
|
+
value: ${{ steps.run.outputs.file }}
|
|
28
|
+
prerelease:
|
|
29
|
+
description: "true when the version is a pre-release (aN, bN, rcN) — pass --prerelease to gh release create (#622)"
|
|
30
|
+
value: ${{ steps.run.outputs.prerelease }}
|
|
31
|
+
|
|
32
|
+
runs:
|
|
33
|
+
using: composite
|
|
34
|
+
steps:
|
|
35
|
+
# The link at the bottom compares against the previous release tag. A first
|
|
36
|
+
# release has none, so it links the history up to the new tag instead — the tag
|
|
37
|
+
# does not exist yet while this runs, but will by the time anyone clicks.
|
|
38
|
+
- id: run
|
|
39
|
+
shell: bash
|
|
40
|
+
env:
|
|
41
|
+
COMMAND: ${{ inputs.command }}
|
|
42
|
+
VERSION: ${{ inputs.version }}
|
|
43
|
+
CHANGELOG: ${{ inputs.changelog }}
|
|
44
|
+
OUTPUT: ${{ inputs.output }}
|
|
45
|
+
REPO: ${{ github.repository }}
|
|
46
|
+
run: |
|
|
47
|
+
script="${{ github.action_path }}/../../../scripts/release_notes.py"
|
|
48
|
+
if [ "${COMMAND}" = "promote" ]; then
|
|
49
|
+
python3 "${script}" promote "${VERSION}" --changelog "${CHANGELOG}"
|
|
50
|
+
exit $?
|
|
51
|
+
fi
|
|
52
|
+
OUTPUT="${OUTPUT:-${RUNNER_TEMP}/release-notes.md}"
|
|
53
|
+
tag="v${VERSION#v}"
|
|
54
|
+
prerelease=$(python3 "${script}" prerelease "${VERSION}")
|
|
55
|
+
echo "prerelease=${prerelease}" >> "$GITHUB_OUTPUT"
|
|
56
|
+
# A final release's notes fold in its pre-releases (#622), so its link
|
|
57
|
+
# compares against the previous final release, not the last pre-release.
|
|
58
|
+
exclude=()
|
|
59
|
+
if [ "${prerelease}" = "false" ]; then
|
|
60
|
+
exclude=(--exclude 'v*[a-z]*')
|
|
61
|
+
fi
|
|
62
|
+
previous=$(git describe --tags --abbrev=0 --match 'v[0-9]*' "${exclude[@]}" HEAD 2>/dev/null || true)
|
|
63
|
+
if [ -n "${previous}" ] && [ "${previous}" != "${tag}" ]; then
|
|
64
|
+
compare="https://github.com/${REPO}/compare/${previous}...${tag}"
|
|
65
|
+
else
|
|
66
|
+
compare="https://github.com/${REPO}/commits/${tag}"
|
|
67
|
+
fi
|
|
68
|
+
python3 "${script}" extract "${VERSION}" --changelog "${CHANGELOG}" \
|
|
69
|
+
--compare-url "${compare}" --output "${OUTPUT}"
|
|
70
|
+
echo "file=${OUTPUT}" >> "$GITHUB_OUTPUT"
|
|
71
|
+
echo "notes for ${tag}:"
|
|
72
|
+
cat "${OUTPUT}"
|