kpubdata 0.3.0__tar.gz → 0.3.1__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.3.0 → kpubdata-0.3.1}/CHANGELOG.md +30 -3
- {kpubdata-0.3.0 → kpubdata-0.3.1}/PKG-INFO +1 -1
- {kpubdata-0.3.0 → kpubdata-0.3.1}/SUPPORTED_DATA.md +1 -1
- {kpubdata-0.3.0 → kpubdata-0.3.1}/docs/providers/datago.md +15 -9
- {kpubdata-0.3.0 → kpubdata-0.3.1}/docs/quickstart.md +8 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/pyproject.toml +1 -1
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/__init__.py +3 -1
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/datago/adapter.py +31 -7
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/integration/test_datago_live.py +14 -3
- kpubdata-0.3.1/tests/unit/core/test_version.py +10 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/providers/datago/test_adapter.py +32 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/uv.lock +1 -1
- {kpubdata-0.3.0 → kpubdata-0.3.1}/.github/ISSUE_TEMPLATE/new-provider-adapter.yml +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/.github/workflows/ci.yml +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/.github/workflows/integration.yml +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/.github/workflows/publish-pypi.yml +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/.gitignore +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/AGENTS.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/API_SPEC.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/ARCHITECTURE.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/CANONICAL_MODEL.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/CONTRIBUTING.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/LICENSE +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/PACKAGING.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/PRD.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/PROVIDER_ADAPTER_CONTRACT.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/README.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/ROADMAP.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/VALIDATION.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/docs/adrs/0001-dialect-inspired-architecture.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/docs/adrs/0002-standardize-ux-not-native-shape.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/docs/architecture-diagrams.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/docs/caching.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/docs/cli.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/docs/datago-api-reference.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/docs/logging.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/docs/product-family-architecture.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/docs/providers/bok.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/docs/providers/kosis.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/docs/providers/seoul.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/docs/tutorial-ai-agent-workflow.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/plans/sgis-provider-issue-150.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/catalog.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/cli.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/client.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/config.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/core/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/core/capability.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/core/dataset.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/core/models.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/core/protocol.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/core/representation.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/exceptions.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/_common.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/bok/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/bok/adapter.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/bok/catalogue.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/datago/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/datago/catalogue.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/kosis/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/kosis/adapter.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/kosis/catalogue.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/localdata/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/localdata/adapter.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/localdata/catalogue.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/lofin/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/lofin/adapter.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/lofin/catalogue.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/seoul/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/seoul/adapter.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/seoul/catalogue.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/sgis/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/sgis/adapter.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/sgis/auth.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/providers/sgis/catalogue.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/py.typed +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/registry.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/transport/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/transport/cache.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/transport/decode.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/transport/http.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/src/kpubdata/transport/retry.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/contract/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/contract/provider_adapter.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/contract/test_bok.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/contract/test_datago.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/contract/test_kosis.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/contract/test_localdata.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/contract/test_lofin.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/contract/test_seoul.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/contract/test_sgis_contract.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/bok/error_auth.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/bok/success_empty.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/bok/success_single_page.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/bus_arrival_v2.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/error_auth_30.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/error_invalid_request_10.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/error_rate_limit_22.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/error_service_unavailable_01.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/error_xml_auth_30.xml +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_apt_rent.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_apt_trade.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_empty.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_metro_fare.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_metro_path.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_multi_page_1.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_multi_page_2.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_offi_rent.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_offi_trade.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_rh_rent.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_rh_trade.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_sh_rent.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_sh_trade.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_single_item.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_single_page.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_string_numerics.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_tour_kor_area.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_tour_kor_festival.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_tour_kor_keyword.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_tour_kor_location.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_xml.xml +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/datago/success_xml_single_item.xml +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/kosis/error_auth.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/kosis/success_empty.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/kosis/success_single_page.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/affiliated_medical_institution_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/air_pollution_prevention_facility_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/amusement_facility_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/animal_breeding_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/animal_care_service_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/animal_crematorium_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/animal_exhibition_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/animal_funeral_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/animal_hospital_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/animal_import_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/animal_sales_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/animal_training_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/animal_transport_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/bakery_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/barber_shop_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/beauty_salon_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/billiard_hall_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/boxing_gym_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/breeding_stock_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/building_sanitation_management_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/caregiver_training_institution_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/city_gas_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/civil_defense_water_supply_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/clinic_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/companion_animal_related_business_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/composite_game_provider_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/comprehensive_amusement_facility_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/comprehensive_resort_business_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/comprehensive_sports_facility_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/comprehensive_travel_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/container_packaging_manufacturing_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/contract_foodservice_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/culture_industry_company_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/dance_academy_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/dance_hall_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/dental_lab_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/disinfection_business_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/distribution_specialized_sales_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/domestic_international_travel_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/domestic_travel_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/door_to_door_sales_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/ecommerce_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/edible_ice_sales_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/electrical_construction_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/electrical_safety_management_agency_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/electricity_sales_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/electronic_distribution_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/elevator_maintenance_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/elevator_manufacturing_import_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/emergency_patient_transport_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/empty_response.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/energy_saving_company_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/entertainment_bar_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/environmental_consulting_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/environmental_impact_assessment_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/environmental_measurement_agency_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/error_auth.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/feed_manufacturing_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/fitness_center_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/food_additive_manufacturing_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/food_cold_storage_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/food_manufacturing_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/food_repackaging_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/food_transportation_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/food_vending_machine_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/foreign_tourist_city_homestay_lodging_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/foreign_tourist_city_homestay_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/foreigner_exclusive_entertainment_restaurant_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/free_job_placement_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/funeral_director_training_institution_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/funeral_service_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/game_distribution_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/game_manufacturing_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/game_provider_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/gas_appliance_manufacturing_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/general_amusement_facility_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/general_lodging_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/general_restaurant_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/golf_course_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/golf_practice_range_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/groundwater_construction_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/groundwater_impact_assessment_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/groundwater_purification_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/group_cafeteria_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/hanok_experience_lodging_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/hanok_experience_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/hatchery_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/health_functional_food_distributor_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/health_functional_food_retail_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/health_functional_food_specialty_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/high_pressure_gas_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/horse_riding_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/hospital_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/ice_rink_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/imported_food_sales_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/imported_livestock_sales_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/instant_food_manufacturing_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/international_conference_facility_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/international_conference_planning_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/international_freight_forwarding_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/internet_computer_game_facility_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/karaoke_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/large_store_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/laundry_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/livestock_artificial_insemination_center_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/livestock_farming_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/livestock_processing_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/livestock_sales_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/livestock_storage_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/livestock_transportation_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/log_production_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/logistics_warehouse_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/lpg_charging_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/lpg_collective_supply_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/lpg_sales_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/mail_order_sales_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/marine_environment_management_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/martial_arts_gym_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/medical_device_repair_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/medical_device_sales_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/medical_foundation_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/medical_linen_processing_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/medical_waste_treatment_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/meter_repair_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/milk_collection_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/motor_racing_course_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/movie_distribution_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/movie_import_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/movie_production_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/movie_screening_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/movie_theater_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/multilevel_sales_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/music_video_distribution_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/music_video_production_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/night_soil_collection_transportation_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/noise_vibration_prevention_facility_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/onggi_manufacturing_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/online_music_service_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/optical_shop_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/other_food_sales_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/outdoor_advertising_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/paid_job_placement_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/performance_hall_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/pet_grooming_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/petroleum_import_export_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/petroleum_sales_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/pharmacy_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/popular_culture_arts_planning_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/postpartum_care_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/prepaid_installment_trade_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/printing_house_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/public_bath_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/publisher_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/quasi_medical_business_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/record_distribution_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/record_production_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/residential_accommodation_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/rest_cafe_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/rural_guesthouse_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/safe_over_the_counter_drug_store_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/sanitary_product_manufacturing_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/sanitation_treatment_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/sawmill_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/singing_bar_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/ski_resort_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/slaughterhouse_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/small_hotel_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/soil_remediation_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/specialized_resort_business_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/swimming_pool_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/timber_import_distribution_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/tobacco_import_sales_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/tobacco_retail_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/tobacco_wholesale_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/tourism_business_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/tourism_convenience_facility_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/tourism_duty_free_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/tourist_accommodation_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/tourist_entertainment_restaurant_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/tourist_excursion_boat_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/tourist_pension_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/tourist_performance_hall_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/tourist_restaurant_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/tourist_theater_entertainment_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/tourist_track_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/video_distribution_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/video_production_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/video_small_theater_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/video_viewing_room_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/video_viewing_service_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/waste_collection_transportation_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/waste_recycling_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/waste_treatment_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/water_pollution_prevention_facility_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/water_tank_cleaning_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/yacht_marina_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/localdata/youth_game_provider_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/lofin/error_auth.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/lofin/success_fiacrv.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/lofin/success_single_page.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/seoul/bike_rent_month_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/seoul/empty_response.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/seoul/error_auth.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/seoul/subway_realtime_arrival_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/sgis/auth_success.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/sgis/error_invalid_token.json +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/sgis/sido_boundary.geojson +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/fixtures/sgis/sigungu_boundary.geojson +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/integration/README.md +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/integration/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/integration/conftest.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/integration/test_bok_live.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/integration/test_client_flow.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/integration/test_exception_propagation.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/integration/test_kosis_live.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/integration/test_localdata_live.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/integration/test_lofin_live.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/integration/test_seoul_live.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/integration/test_transport_http.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/core/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/core/test_dataset.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/core/test_dataset_coverage.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/core/test_exceptions.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/core/test_exceptions_coverage.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/core/test_models.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/core/test_models_fixtures.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/core/test_to_pandas.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/providers/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/providers/bok/test_bok_adapter.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/providers/datago/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/providers/datago/conftest.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/providers/datago/test_adapter_coverage.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/providers/datago/test_fixtures.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/providers/datago/test_generic.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/providers/kosis/test_adapter.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/providers/localdata/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/providers/localdata/test_adapter.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/providers/lofin/test_lofin_adapter.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/providers/seoul/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/providers/seoul/test_adapter.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/providers/sgis/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/providers/sgis/test_adapter.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/providers/sgis/test_auth.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/test_catalog.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/test_catalog_coverage.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/test_catalogue_validation.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/test_cli.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/test_client_coverage.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/test_client_transport_requirements.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/test_config.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/test_config_coverage.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/test_failure_path_logging.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/test_logging.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/test_registry.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/test_registry_coverage.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/transport/__init__.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/transport/test_cache.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/transport/test_decode.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/transport/test_decode_coverage.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/transport/test_http_coverage.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/transport/test_http_coverage_extra.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/transport/test_logging.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/transport/test_retry.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/transport/test_retry_after.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/transport/test_retry_coverage.py +0 -0
- {kpubdata-0.3.0 → kpubdata-0.3.1}/tests/unit/transport/test_transport_requirements.py +0 -0
|
@@ -7,7 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
## [0.3.
|
|
10
|
+
## [0.3.1] - 2026-04-23
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- Source `__version__` from `importlib.metadata` instead of hardcoded string (#127)
|
|
14
|
+
- Add 활용신청 (activation request) hint to datago 403 `AuthError` and document API key activation requirement (#128)
|
|
15
|
+
- Add required parameters to metro integration tests (#140)
|
|
16
|
+
|
|
17
|
+
## [0.3.0] - 2026-04-22
|
|
11
18
|
|
|
12
19
|
### Added
|
|
13
20
|
- `localdata` provider: expand permit datasets from 26 to **195**, covering all official KSIC categories — health (13), animal (18), culture (53), living (26), food (32), resources & environment (37), other (16)
|
|
@@ -19,7 +26,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
19
26
|
- Unit and contract tests plus SGIS fixture responses for boundary and auth/error scenarios
|
|
20
27
|
- Full fixture, unit test, and contract test coverage for all 195 localdata datasets
|
|
21
28
|
|
|
22
|
-
## [0.2.
|
|
29
|
+
## [0.2.3] - 2026-04-19
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
- `LofinAdapter` SSL context ignored when `Client` passes shared transport
|
|
33
|
+
|
|
34
|
+
### Added
|
|
35
|
+
- 7 real estate transaction datasets to datago provider (`apt_rent`, `offi_trade`, `offi_rent`, `rh_trade`, `rh_rent`, `sh_trade`, `sh_rent`)
|
|
36
|
+
- Treat `resultCode` `'000'` as success for RTMS endpoints
|
|
37
|
+
|
|
38
|
+
## [0.2.2] - 2026-04-17
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
- Cursor pagination support and pagination documentation
|
|
42
|
+
|
|
43
|
+
## [0.2.1] - 2026-04-17
|
|
44
|
+
|
|
45
|
+
### Added
|
|
46
|
+
- `SUPPORTED_DATA.md` 실API 최종 검증일 컬럼 추가
|
|
47
|
+
- Single-page pagination contract and `list_all()` implementation
|
|
48
|
+
|
|
49
|
+
## [0.2.0] - 2026-04-17
|
|
23
50
|
|
|
24
51
|
### Added
|
|
25
52
|
- Single-page pagination contract for all adapters (datago, bok, lofin, kosis)
|
|
@@ -35,7 +62,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
35
62
|
- Unreachable single-record adapter stubs
|
|
36
63
|
- Single-record access from the provider and dataset public APIs
|
|
37
64
|
|
|
38
|
-
## [0.1.0] -
|
|
65
|
+
## [0.1.0] - 2026-04-10
|
|
39
66
|
|
|
40
67
|
### Added
|
|
41
68
|
|
|
@@ -235,7 +235,7 @@
|
|
|
235
235
|
| 지원 | 테스트 검증 | - | 지방행정인허가 (`localdata`) | `caregiver_training_institution` | 요양보호사교육기관 인허가 | [공공데이터포털](https://www.data.go.kr) 서비스키 | [data.go.kr](https://www.data.go.kr) | 행정안전부 제공, 기타/전문교육기관 |
|
|
236
236
|
| 지원 | 테스트 검증 | - | 지방행정인허가 (`localdata`) | `funeral_director_training_institution` | 장례지도사교육기관 인허가 | [공공데이터포털](https://www.data.go.kr) 서비스키 | [data.go.kr](https://www.data.go.kr) | 행정안전부 제공, 기타/전문교육기관 |
|
|
237
237
|
| 지원 | 테스트 검증 | - | 지방행정인허가 (`localdata`) | `free_job_placement` | 무료직업소개소 인허가 | [공공데이터포털](https://www.data.go.kr) 서비스키 | [data.go.kr](https://www.data.go.kr) | 행정안전부 제공, 기타/사무지원 |
|
|
238
|
-
| 지원 | 테스트 검증 | - | 지방행정인허가 (`localdata`) | `paid_job_placement` | 유료직업소개소 인허가 | [공공데이터포털](https://www.data.go.kr) 서비스키 | [data.go.kr](https://www.data.go.kr) | 행정안전부 제공, 기타/사무지원 |
|
|
238
|
+
| 지원 | 테스트 검증 | - | 지방행정인허가 (`localdata`) | `paid_job_placement` | 유료직업소개소 인허가 | [공공데이터포털](https://www.data.go.kr) 서비스키 | [data.go.kr](https://www.data.go.kr) | 행정안전부 제공, 기타/사무지원 |
|
|
239
239
|
| 지원 | 테스트 검증 | - | 통계청 통계지리정보서비스 (`sgis`) | `boundary.sido` | 시도 행정구역 경계 | SGIS `consumer_key` + `consumer_secret` | [sgis.kostat.go.kr](https://sgis.kostat.go.kr/developer/html/main.html) | GeoJSON FeatureCollection 응답을 레코드 단위(`items`)로 정규화 |
|
|
240
240
|
| 지원 | 테스트 검증 | - | 통계청 통계지리정보서비스 (`sgis`) | `boundary.sigungu` | 시군구 행정구역 경계 | SGIS `consumer_key` + `consumer_secret` | [sgis.kostat.go.kr](https://sgis.kostat.go.kr/developer/html/main.html) | `boundary/hadmarea.geojson` + `low_search` 기반 조회 |
|
|
241
241
|
| 지원 | 테스트 검증 | - | 통계청 통계지리정보서비스 (`sgis`) | `boundary.emd` | 읍면동 행정구역 경계 | SGIS `consumer_key` + `consumer_secret` | [sgis.kostat.go.kr](https://sgis.kostat.go.kr/developer/html/main.html) | fixture/contract 검증 완료, 실API 검증은 후속 |
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
|
|
36
36
|
### 3단계: 승인 대기
|
|
37
37
|
|
|
38
|
-
- **자동 승인**:
|
|
38
|
+
- **자동 승인**: 대부분의 API는 활용신청 후 약 1~5분 안에 자동 승인됩니다.
|
|
39
39
|
- **심의 승인**: 국토교통부 아파트매매 실거래가 등 일부 API는 담당 기관의 심의 후 승인까지 1~2일이 소요될 수 있습니다.
|
|
40
40
|
|
|
41
41
|
### 4단계: 인증키 확인
|
|
@@ -52,16 +52,22 @@
|
|
|
52
52
|
export KPUBDATA_DATAGO_API_KEY="발급받은-일반-인증키"
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
## API별 활용신청(활성화) requirement
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
data.go.kr은 **계정용 공통 인증키 1개만 있으면 끝나는 구조가 아닙니다.** 호출하려는 Open API마다 상세 페이지에서 별도로 **활용신청**을 해야 합니다.
|
|
58
58
|
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
59
|
+
- 같은 `KPUBDATA_DATAGO_API_KEY`를 쓰더라도 API별 활성화 상태는 서로 다를 수 있습니다.
|
|
60
|
+
- 활용신청 후 대부분의 API는 약 **1~5분 안에 자동 승인/활성화**됩니다.
|
|
61
|
+
- 활성화 전에는 KPubData 호출이 **HTTP 403**으로 실패할 수 있습니다.
|
|
62
|
+
- 이 경우 해당 데이터셋의 data.go.kr 상세 페이지로 가서 **"활용신청"** 버튼을 눌렀는지 먼저 확인하세요.
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
예시:
|
|
65
|
+
|
|
66
|
+
- `datago.village_fcst`를 쓰려면 단기예보 API 페이지에서 활용신청 필요
|
|
67
|
+
- `datago.air_quality`를 쓰려면 대기오염정보 API 페이지에서 활용신청 필요
|
|
68
|
+
- 둘은 같은 포털/같은 키를 써도 **각각 따로** 활성화해야 함
|
|
69
|
+
|
|
70
|
+
### 6단계: 활성화 확인
|
|
65
71
|
|
|
66
72
|
키가 활성화되었는지 확인하려면 다음과 같이 테스트합니다:
|
|
67
73
|
|
|
@@ -70,7 +76,7 @@ export KPUBDATA_DATAGO_API_KEY="발급받은-일반-인증키"
|
|
|
70
76
|
curl "http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst?serviceKey=YOUR_KEY&dataType=json&numOfRows=1&pageNo=1&base_date=20250401&base_time=0500&nx=55&ny=127"
|
|
71
77
|
```
|
|
72
78
|
|
|
73
|
-
정상 응답이 오면 활성화가 완료된 것입니다. `SERVICE_KEY_IS_NOT_REGISTERED_ERROR
|
|
79
|
+
정상 응답이 오면 활성화가 완료된 것입니다. `403 Forbidden`, `SERVICE_KEY_IS_NOT_REGISTERED_ERROR`, 또는 인증 관련 오류가 나오면 활용신청 여부와 승인 대기 시간을 다시 확인하세요.
|
|
74
80
|
|
|
75
81
|
## KPubData에서 신청해야 할 API 목록
|
|
76
82
|
|
|
@@ -117,6 +117,12 @@ ProviderResponseError: BOK ECOS returned error
|
|
|
117
117
|
```
|
|
118
118
|
→ 날짜를 `"20240101"` 대신 `"202401"` (YYYYMM) 형식으로 입력했는지 확인하세요.
|
|
119
119
|
|
|
120
|
+
### "data.go.kr에서 403이 나옵니다"
|
|
121
|
+
```
|
|
122
|
+
AuthError: data.go.kr returned 403...
|
|
123
|
+
```
|
|
124
|
+
→ data.go.kr은 공통 인증키만으로는 부족하고 **API별 활용신청**이 필요합니다. 사용하려는 API 상세 페이지에서 "활용신청"을 눌렀는지 확인하세요. 대부분 1~5분 안에 자동 승인되지만 일부 API는 더 오래 걸릴 수 있습니다.
|
|
125
|
+
|
|
120
126
|
## Step 7: 다른 데이터도 조회해보기
|
|
121
127
|
|
|
122
128
|
### 사용 가능한 전체 데이터셋 목록 보기
|
|
@@ -146,6 +152,8 @@ kosis.population_migration — 시도별 이동자수 (Population Migration)
|
|
|
146
152
|
- 공공데이터포털(datago): [datago API 키 발급 가이드](./providers/datago.md)
|
|
147
153
|
- 통계청 KOSIS: [KOSIS API 키 발급 가이드](./providers/kosis.md)
|
|
148
154
|
|
|
155
|
+
> 참고: `datago`는 인증키 발급 후에도 **데이터셋별 활용신청**이 필요합니다. 활용신청 전에는 403이 발생할 수 있습니다.
|
|
156
|
+
|
|
149
157
|
## Step 8: 전체 페이지 자동 조회
|
|
150
158
|
|
|
151
159
|
데이터가 많을 때 `list_all()`을 사용하면 모든 페이지를 자동으로 순회합니다.
|
|
@@ -7,6 +7,8 @@ from collections.abc import Mapping, Sequence
|
|
|
7
7
|
from typing import NoReturn, cast
|
|
8
8
|
from urllib.parse import urlparse
|
|
9
9
|
|
|
10
|
+
import httpx
|
|
11
|
+
|
|
10
12
|
from kpubdata.config import KPubDataConfig
|
|
11
13
|
from kpubdata.core.models import (
|
|
12
14
|
DatasetRef,
|
|
@@ -22,6 +24,7 @@ from kpubdata.exceptions import (
|
|
|
22
24
|
ProviderResponseError,
|
|
23
25
|
RateLimitError,
|
|
24
26
|
ServiceUnavailableError,
|
|
27
|
+
TransportError,
|
|
25
28
|
)
|
|
26
29
|
from kpubdata.providers._common import build_schema_from_metadata, coerce_int, load_catalogue
|
|
27
30
|
from kpubdata.transport.decode import decode_json, decode_xml, detect_content_type
|
|
@@ -29,6 +32,12 @@ from kpubdata.transport.http import HttpTransport, TransportConfig
|
|
|
29
32
|
|
|
30
33
|
logger = logging.getLogger("kpubdata.provider.datago")
|
|
31
34
|
|
|
35
|
+
_DATAGO_403_HINT = (
|
|
36
|
+
"data.go.kr returned 403. This usually means the specific API has not been activated "
|
|
37
|
+
"(활용신청) for your key. Visit the dataset's page on https://www.data.go.kr and "
|
|
38
|
+
"click '활용신청'. Approval is usually automatic and becomes active within a few minutes."
|
|
39
|
+
)
|
|
40
|
+
|
|
32
41
|
|
|
33
42
|
def _is_success_code(code: str) -> bool:
|
|
34
43
|
"""Return True for any data.go.kr resultCode that signals success.
|
|
@@ -362,13 +371,23 @@ class DataGoAdapter:
|
|
|
362
371
|
self, url: str, params: Mapping[str, object], dataset_id: str = ""
|
|
363
372
|
) -> dict[str, object]:
|
|
364
373
|
string_params = {key: str(value) for key, value in params.items()}
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
374
|
+
try:
|
|
375
|
+
response = self._transport.request(
|
|
376
|
+
"GET",
|
|
377
|
+
url,
|
|
378
|
+
params=string_params,
|
|
379
|
+
dataset_id=dataset_id,
|
|
380
|
+
provider="datago",
|
|
381
|
+
)
|
|
382
|
+
except TransportError as exc:
|
|
383
|
+
if self._is_http_403(exc):
|
|
384
|
+
raise AuthError(
|
|
385
|
+
_DATAGO_403_HINT,
|
|
386
|
+
provider="datago",
|
|
387
|
+
dataset_id=dataset_id or None,
|
|
388
|
+
status_code=403,
|
|
389
|
+
) from exc
|
|
390
|
+
raise
|
|
372
391
|
|
|
373
392
|
try:
|
|
374
393
|
content_type = detect_content_type(response)
|
|
@@ -394,6 +413,11 @@ class DataGoAdapter:
|
|
|
394
413
|
)
|
|
395
414
|
raise ParseError("Decoded payload is not an object", provider="datago")
|
|
396
415
|
|
|
416
|
+
@staticmethod
|
|
417
|
+
def _is_http_403(exc: TransportError) -> bool:
|
|
418
|
+
cause = exc.__cause__
|
|
419
|
+
return isinstance(cause, httpx.HTTPStatusError) and cause.response.status_code == 403
|
|
420
|
+
|
|
397
421
|
def _validate_envelope(
|
|
398
422
|
self, payload: dict[str, object], dataset: DatasetRef | None = None
|
|
399
423
|
) -> tuple[dict[str, object], list[dict[str, object]]]:
|
|
@@ -280,7 +280,13 @@ def test_datago_metro_fare(require_datago_key: None, live_client: Client) -> Non
|
|
|
280
280
|
_ = require_datago_key
|
|
281
281
|
ds = live_client.dataset("datago.metro_fare")
|
|
282
282
|
|
|
283
|
-
result = ds.call_raw(
|
|
283
|
+
result = ds.call_raw(
|
|
284
|
+
"getRltmFare2",
|
|
285
|
+
numOfRows="5",
|
|
286
|
+
pageNo="1",
|
|
287
|
+
dptreStnNm="서울역",
|
|
288
|
+
avrlStnNm="시청",
|
|
289
|
+
)
|
|
284
290
|
|
|
285
291
|
assert isinstance(result, dict)
|
|
286
292
|
assert "response" in result
|
|
@@ -288,13 +294,18 @@ def test_datago_metro_fare(require_datago_key: None, live_client: Client) -> Non
|
|
|
288
294
|
|
|
289
295
|
@pytest.mark.integration
|
|
290
296
|
@pytest.mark.skip(
|
|
291
|
-
reason="
|
|
297
|
+
reason="Blocked by metro_fare upstream SSL issue (#139); params confirmed per #140"
|
|
292
298
|
)
|
|
293
299
|
def test_datago_metro_path(require_datago_key: None, live_client: Client) -> None:
|
|
294
300
|
_ = require_datago_key
|
|
295
301
|
ds = live_client.dataset("datago.metro_path")
|
|
296
302
|
|
|
297
|
-
result = ds.call_raw(
|
|
303
|
+
result = ds.call_raw(
|
|
304
|
+
"getShtrmPath",
|
|
305
|
+
dptreStnNm="신도림",
|
|
306
|
+
arvlStnNm="서울역",
|
|
307
|
+
searchDt="2026-04-22 13:00:00",
|
|
308
|
+
)
|
|
298
309
|
|
|
299
310
|
assert isinstance(result, dict)
|
|
300
311
|
assert "response" in result
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"""Regression test: kpubdata.__version__ must track package metadata."""
|
|
2
|
+
|
|
3
|
+
from importlib.metadata import version
|
|
4
|
+
|
|
5
|
+
import kpubdata
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def test_version_matches_metadata() -> None:
|
|
9
|
+
"""Ensure __version__ equals importlib.metadata version (issue #127)."""
|
|
10
|
+
assert kpubdata.__version__ == version("kpubdata")
|
|
@@ -5,6 +5,7 @@ import logging
|
|
|
5
5
|
from types import MappingProxyType
|
|
6
6
|
from typing import Protocol, cast
|
|
7
7
|
|
|
8
|
+
import httpx
|
|
8
9
|
import pytest
|
|
9
10
|
|
|
10
11
|
from kpubdata.config import KPubDataConfig
|
|
@@ -17,6 +18,7 @@ from kpubdata.exceptions import (
|
|
|
17
18
|
InvalidRequestError,
|
|
18
19
|
RateLimitError,
|
|
19
20
|
ServiceUnavailableError,
|
|
21
|
+
TransportError,
|
|
20
22
|
)
|
|
21
23
|
from kpubdata.providers.datago.adapter import DataGoAdapter
|
|
22
24
|
from kpubdata.transport.http import HttpTransport
|
|
@@ -353,6 +355,36 @@ class TestDataGoAdapterQueryRecords:
|
|
|
353
355
|
with pytest.raises(ServiceUnavailableError):
|
|
354
356
|
_ = adapter.query_records(dataset, Query())
|
|
355
357
|
|
|
358
|
+
def test_query_records_http_403_wraps_with_activation_hint(self) -> None:
|
|
359
|
+
request = httpx.Request("GET", "https://apis.data.go.kr/test")
|
|
360
|
+
response = httpx.Response(403, request=request)
|
|
361
|
+
status_error = httpx.HTTPStatusError(
|
|
362
|
+
"Client error '403 Forbidden' for url 'https://apis.data.go.kr/test'",
|
|
363
|
+
request=request,
|
|
364
|
+
response=response,
|
|
365
|
+
)
|
|
366
|
+
|
|
367
|
+
class ForbiddenTransport:
|
|
368
|
+
def request(self, method: str, url: str, **kwargs: object) -> FakeResponse:
|
|
369
|
+
del method, url, kwargs
|
|
370
|
+
raise TransportError(
|
|
371
|
+
"HTTP status error 403 for GET https://apis.data.go.kr/test"
|
|
372
|
+
) from status_error
|
|
373
|
+
|
|
374
|
+
adapter = DataGoAdapter(
|
|
375
|
+
config=KPubDataConfig(provider_keys={"datago": "test-key"}),
|
|
376
|
+
transport=cast(HttpTransport, cast(object, ForbiddenTransport())),
|
|
377
|
+
)
|
|
378
|
+
dataset = adapter.get_dataset("village_fcst")
|
|
379
|
+
|
|
380
|
+
with pytest.raises(AuthError) as excinfo:
|
|
381
|
+
_ = adapter.query_records(dataset, Query())
|
|
382
|
+
|
|
383
|
+
assert "활용신청" in str(excinfo.value)
|
|
384
|
+
assert "https://www.data.go.kr" in str(excinfo.value)
|
|
385
|
+
assert excinfo.value.status_code == 403
|
|
386
|
+
assert excinfo.value.dataset_id == dataset.id
|
|
387
|
+
|
|
356
388
|
def test_query_records_accepts_three_digit_success_code_000(self) -> None:
|
|
357
389
|
payload = {
|
|
358
390
|
"response": {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|