From ec6c17e6ab6887532ca5dc333f7d064dac8ef9d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Lie=20Rapp?= <90246213+Bjoern-Rapp@users.noreply.github.com> Date: Wed, 11 Mar 2026 14:22:33 +0100 Subject: [PATCH 1/4] Reduced the number of print statements. --- demo/classification.py | 20 +++++---- demo/config.py | 7 +++- demo/correspondence.py | 8 ++-- demo/family.py | 12 +++--- demo/gui_ipywidgets.py | 21 +++++----- demo/join_kommune_fylke.py | 3 +- demo/quarter_seb.py | 12 +++--- demo/requestfunctions.py | 62 ++++++++++++++++------------ demo/search.py | 14 ++++--- demo/variant.py | 10 +++-- demo/version.py | 14 ++++--- demo/widget.py | 9 ++-- src/klass/__init__.py | 5 ++- src/klass/requests/klass_requests.py | 5 ++- src/klass/requests/validate.py | 5 ++- src/klass/utility/filters.py | 6 ++- src/klass/utility/naming.py | 1 - tests/test_classification_search.py | 2 - tests/test_classifications.py | 2 - tests/test_codes.py | 2 - tests/test_corresponds.py | 2 - tests/test_family.py | 2 - tests/test_variant.py | 2 - tests/test_variant_search.py | 2 - tests/test_version.py | 2 - 25 files changed, 124 insertions(+), 106 deletions(-) diff --git a/demo/classification.py b/demo/classification.py index a0bcb94..85942b7 100644 --- a/demo/classification.py +++ b/demo/classification.py @@ -13,38 +13,40 @@ # --- # %% +from IPython.display import display + from klass import KlassClassification # %% # ID found from website: https://www.ssb.no/klass/ nus = KlassClassification(36, language="en", include_future=True) -print(nus) +display(nus) # %% -repr(nus) +display(repr(nus)) # %% # Reformatting for fun -nus.versions_dict() +display(nus.versions_dict()) # %% nuskoder = nus.get_codes("2023-01-01") -print(nuskoder) +display(nuskoder) # %% -nuskoder.pivot_level() +display(nuskoder.pivot_level()) # %% -nuskoder.data +display(nuskoder.data) # %% # The actual data is under the .data attribute -nuskoder.data +display(nuskoder.data) # %% # Pivots levels into seperate columns -nuskoder.pivot_level() +display(nuskoder.pivot_level()) # %% # You can filter to a level when getting codes, and then make dict from that level -nus.get_codes("2023-01-01", select_level=5).to_dict() +display(nus.get_codes("2023-01-01", select_level=5).to_dict()) diff --git a/demo/config.py b/demo/config.py index 5afbeda..ee0ea00 100644 --- a/demo/config.py +++ b/demo/config.py @@ -13,18 +13,21 @@ # --- # %% +from IPython.display import display + import klass +import klass.config # %% [x for x in dir(klass.config) if not x.startswith("_")] # %% -klass.config.TESTING +display(klass.config.TESTING) # %% klass.config.TESTING = True # %% -klass.classification_by_id(36) +display(klass.classification_by_id(36)) # %% diff --git a/demo/correspondence.py b/demo/correspondence.py index f6a0481..f62ea44 100644 --- a/demo/correspondence.py +++ b/demo/correspondence.py @@ -13,6 +13,8 @@ # --- # %% +from IPython.display import display + from klass import KlassCorrespondence # %% @@ -28,10 +30,10 @@ ) # %% -print(fylke_komm) +display(fylke_komm) # %% -fylke_komm.data +display(fylke_komm.data) # %% -fylke_komm.to_dict("sourceName", "targetName") +display(fylke_komm.to_dict("sourceName", "targetName")) diff --git a/demo/family.py b/demo/family.py index f0d70d4..7b9f225 100644 --- a/demo/family.py +++ b/demo/family.py @@ -13,25 +13,27 @@ # --- # %% +from IPython.display import display + from klass import KlassSearchFamilies # %% search = KlassSearchFamilies("360") -print(search) +display(search) # %% utdanning = search.get_family(20) -print(utdanning) +display(utdanning) # %% nus = utdanning.get_classification(36) -print(nus) +display(nus) # %% nus_codes = nus.get_codes("2023-01-01") -print(nus_codes) +display(nus_codes) # %% -nus_codes.data +display(nus_codes.data) # %% diff --git a/demo/gui_ipywidgets.py b/demo/gui_ipywidgets.py index 4ec9ef2..10547d3 100644 --- a/demo/gui_ipywidgets.py +++ b/demo/gui_ipywidgets.py @@ -12,21 +12,21 @@ # name: ssb-klass-python # --- -# %% -import klass - -klass.search_classification() - # %% from datetime import date -import IPython.display.display import ipywidgets as widgets from IPython.display import HTML +from IPython.display import display +import klass from klass.classes.search import KlassSearchClassifications from klass.requests.sections import sections_dict +# %% +display(klass.search_classification()) + +# %% DEFAULT_CHOICE = "Choose..." @@ -61,7 +61,7 @@ def do_search(btn: widgets.Button) -> None: with search_result: search_result.clear_output() - IPython.display.display("Searching...") # type: ignore + display("Searching...") # type: ignore # Add loading-gif? try: @@ -82,7 +82,7 @@ def do_search(btn: widgets.Button) -> None: with search_result: search_result.clear_output() - IPython.display.display(HTML(search_content)) # type: ignore + display(HTML(search_content)) # type: ignore sections = [DEFAULT_CHOICE, *list(sections_dict().keys())] section_dropdown = widgets.Dropdown( @@ -137,9 +137,10 @@ def format_classification_text(search_class: KlassSearchClassifications) -> str: return search_content -search_classification() +# %% +display(search_classification()) # %% -KlassSearchClassifications("Utdanning", include_codelists=True, no_dupes=True) +display(KlassSearchClassifications("Utdanning", include_codelists=True, no_dupes=True)) # %% diff --git a/demo/join_kommune_fylke.py b/demo/join_kommune_fylke.py index 6484152..c071bcd 100644 --- a/demo/join_kommune_fylke.py +++ b/demo/join_kommune_fylke.py @@ -14,6 +14,7 @@ # %% import pandas as pd +from IPython.display import display from klass import KlassClassification @@ -34,6 +35,6 @@ # %% kom["fylkesnummer"] = kom["kommunenummer"].str[:2] komfyl = pd.merge(kom, fyl, how="left", on="fylkesnummer") -komfyl +display(komfyl) # %% diff --git a/demo/quarter_seb.py b/demo/quarter_seb.py index 1de2b35..f745cb0 100644 --- a/demo/quarter_seb.py +++ b/demo/quarter_seb.py @@ -13,6 +13,8 @@ # --- # %% +from IPython.display import display + from klass import KlassCorrespondence # %% @@ -24,19 +26,19 @@ ) # %% -bydel.from_date +display(bydel.from_date) # %% # Reset by parameter "contain_quarter" during initialization -bydel.to_date +display(bydel.to_date) # %% -bydel.data +display(bydel.data) # %% -bydel.data["validFrom"].min() +display(bydel.data["validFrom"].min()) # %% -bydel.data["validTo"].max() +display(bydel.data["validTo"].max()) # %% diff --git a/demo/requestfunctions.py b/demo/requestfunctions.py index 3a155e4..f5a1511 100644 --- a/demo/requestfunctions.py +++ b/demo/requestfunctions.py @@ -13,6 +13,8 @@ # --- # %% +from IPython.display import display + import klass # %% @@ -20,64 +22,70 @@ include_codelists=True, changed_since="2022-01-01" ) -# %% +# %% [markdown] # klassifikasjoner # %% -klass.classification_by_id("36").keys() +display(klass.classification_by_id("36").keys()) # %% -klass.codes(classification_id="36", from_date="2020-01-01", to_date="2023-01-02") +display(klass.codes(classification_id="36", from_date="2020-01-01", to_date="2023-01-02")) # %% [raw] # # %% -klass.version_by_id("1954")["classificationVariants"] +display(klass.version_by_id("1954")["classificationVariants"]) # %% # SELECT_LEVEL DOESNT WORK IN API? -klass.variant( - "36", - "Studiepoeng ved fagskole", - "2023-01-01", - # select_level=2, - # return_type="json" +display( + klass.variant( + "36", + "Studiepoeng ved fagskole", + "2023-01-01", + # select_level=2, + # return_type="json" + ) ) # %% -klass.variant_at("36", "Studiepoeng ved fagskole", date="2022-01-01") +display(klass.variant_at("36", "Studiepoeng ved fagskole", date="2022-01-01")) # %% -klass.codes_at(classification_id="36", date="2023-01-01", language="en") +display(klass.codes_at(classification_id="36", date="2023-01-01", language="en")) # %% -klass.corresponds( - source_classification_id=104, - target_classification_id=131, - from_date="2023-01-01", - to_date="2024-01-01", - language="en", - include_future=True, +display( + klass.corresponds( + source_classification_id=104, + target_classification_id=131, + from_date="2023-01-01", + to_date="2024-01-01", + language="en", + include_future=True, + ) ) # %% -klass.corresponds_at( - source_classification_id=104, - target_classification_id=131, - date="2023-01-01", +display( + klass.corresponds_at( + source_classification_id=104, + target_classification_id=131, + date="2023-01-01", + ) ) # %% -klass.correspondence_table_by_id("1111", language="en")["name"] +display(klass.correspondence_table_by_id("1111", language="en")["name"]) # %% -klass.changes("36", "2020-01-01", "2023-01-01") +display(klass.changes("36", "2020-01-01", "2023-01-01")) # %% -klass.classificationfamilies("360") +display(klass.classificationfamilies("360")) # %% -klass.classificationfamilies_by_id(20) +display(klass.classificationfamilies_by_id(20)) # %% diff --git a/demo/search.py b/demo/search.py index 73bddc9..7195f29 100644 --- a/demo/search.py +++ b/demo/search.py @@ -13,33 +13,35 @@ # --- # %% +from IPython.display import display + from klass import KlassSearchClassifications from klass import KlassSearchFamilies # %% search = KlassSearchClassifications("land", no_dupes=True) -print(search) +display(search) # %% -print(search.get_classification(106)) +display(search.get_classification(106)) # %% ours = KlassSearchFamilies(360) -print(ours) +display(ours) # %% -ours.families +display(ours.families) # %% utdanning = ours.get_family(20) # %% -print(utdanning) +display(utdanning) # %% isced = utdanning.get_classification(66) # %% -print(isced) +display(isced) # %% diff --git a/demo/variant.py b/demo/variant.py index 0441e3d..52ef5cc 100644 --- a/demo/variant.py +++ b/demo/variant.py @@ -13,6 +13,8 @@ # --- # %% +from IPython.display import display + from klass import KlassVariant from klass import KlassVariantSearchByName @@ -20,14 +22,14 @@ studpoeng = KlassVariantSearchByName(36, "Studiepoeng ved fagskole", "2023-01-01") # %% -print(studpoeng) +display(studpoeng) # %% -studpoeng.get_variant() +display(studpoeng.get_variant()) # %% studpoeng2 = KlassVariant(1959) -print(studpoeng2) +display(studpoeng2) # %% -studpoeng2.data +display(studpoeng2.data) diff --git a/demo/version.py b/demo/version.py index c7807ba..da6bc36 100644 --- a/demo/version.py +++ b/demo/version.py @@ -13,25 +13,27 @@ # --- # %% +from IPython.display import display + from klass import KlassVersion # %% nus2023 = KlassVersion("1954") -print(nus2023) +display(nus2023) # %% nus2023.variants_simple() # %% studiepoeng = nus2023.get_variant(1959) -print(studiepoeng) +display(studiepoeng) # %% {k: v["name"] for k, v in nus2023.correspondences_simple().items()} # %% nus_isced = nus2023.get_correspondence(1112) -print(nus_isced) +display(nus_isced) # %% # Map directly from nus-code to isced-label using a dict, when specifying "other" you get a default-dict @@ -40,16 +42,16 @@ ) # %% -nus_isced_map["899903"] +display(nus_isced_map["899903"]) # %% -nus_isced_map["0"] +display(nus_isced_map["0"]) # %% import pandas as pd df = pd.DataFrame({"nus2000": ["099999", "899903"]}) df["isced_label"] = df["nus2000"].map(nus_isced_map) -df +display(df) # %% diff --git a/demo/widget.py b/demo/widget.py index d7d26b6..6f771c8 100644 --- a/demo/widget.py +++ b/demo/widget.py @@ -13,6 +13,8 @@ # --- # %% +from IPython.display import display + import klass klass.__version__ @@ -31,15 +33,12 @@ # %% nus_codes = nus.get_codes("2023-01-01") -print(nus_codes) +display(nus_codes) # %% nus_codes.data.columns # %% -# nus_codes.to_dict("code", "parentCode") - -# %% -nus_codes.pivot_level() +display(nus_codes.pivot_level()) # %% diff --git a/src/klass/__init__.py b/src/klass/__init__.py index 8f607ec..d1c885a 100644 --- a/src/klass/__init__.py +++ b/src/klass/__init__.py @@ -7,9 +7,12 @@ import importlib import importlib.metadata +import logging import toml +logger = logging.getLogger(__name__) + def _try_getting_pyproject_toml(e: Exception | None = None) -> str: if e is None: @@ -21,7 +24,7 @@ def _try_getting_pyproject_toml(e: Exception | None = None) -> str: return version except Exception as e: version_missing: str = "0.0.0" - print( + logger.error( f"Error from ssb-klass-pythons __init__, not able to get version-number, setting it to {version_missing}: {passed_excep}" ) return version_missing diff --git a/src/klass/requests/klass_requests.py b/src/klass/requests/klass_requests.py index 950e9f8..a6fcca9 100644 --- a/src/klass/requests/klass_requests.py +++ b/src/klass/requests/klass_requests.py @@ -1,3 +1,4 @@ +import logging from datetime import datetime from datetime import timedelta from datetime import timezone @@ -30,6 +31,7 @@ # ########## URL_PART_CLASS = "classifications/" +logger = logging.getLogger(__name__) def get_json(url: str, params: ParamsAfterType) -> Any: @@ -45,8 +47,7 @@ def get_json(url: str, params: ParamsAfterType) -> Any: Any: The JSON response from the endpoint, hard to type because all endpoints have differently structured responses. """ req = requests.Request("GET", url=url, headers=config.HEADERS, params=params) - if config.TESTING: - print("Full URL, check during testing:", req.prepare().url) + logger.debug("Full URL, check during testing:", req.prepare().url) response = requests.Session().send(req.prepare()) response.raise_for_status() result: Any = response.json() diff --git a/src/klass/requests/validate.py b/src/klass/requests/validate.py index b1347ac..f5bc20b 100644 --- a/src/klass/requests/validate.py +++ b/src/klass/requests/validate.py @@ -1,4 +1,5 @@ import datetime +import logging from typing import cast import dateutil @@ -9,6 +10,8 @@ from ..requests.klass_types import ParamsBeforeType from ..requests.sections import sections_dict +logger = logging.getLogger(__name__) + def validate_params(params: ParamsBeforeType) -> ParamsAfterType: """Links parameters to their validate-functions.""" @@ -130,7 +133,7 @@ def validate_time_iso8601(datestring: str) -> str: try: datetime.datetime.strptime(datestring[:-5] + "000", "%Y-%m-%dT%H:%M:%S.%f%z") except Exception as e: - print(e) + logger.warning(e) if ( datestring[-5:] diff --git a/src/klass/utility/filters.py b/src/klass/utility/filters.py index 06a6082..f21d5e3 100644 --- a/src/klass/utility/filters.py +++ b/src/klass/utility/filters.py @@ -1,3 +1,4 @@ +import logging from typing import Final from typing import Literal from typing import cast @@ -5,6 +6,7 @@ import pandas as pd STRING_DTYPE: Final[Literal["string[pyarrow]"]] = "string[pyarrow]" +logger = logging.getLogger(__name__) def limit_na_level( @@ -39,13 +41,13 @@ def limit_na_level( """ limit_data = df.copy() if remove_na: - print(key, value) + logger.debug(f"Columns used in NA filtering: {key}, {value}") non_empty = ( limit_data[[key, value]].astype(STRING_DTYPE).fillna("") != "" ).all(axis=1) mask = cast(pd.Series, limit_data[[key, value]].notna().all(axis=1) & non_empty) limit_data = limit_data.loc[mask] - print(limit_data) + logger.debug(f"Filtered DataFrame: \n {limit_data}") if select_level: level_mask = cast( pd.Series, diff --git a/src/klass/utility/naming.py b/src/klass/utility/naming.py index 0f65763..853e1c7 100644 --- a/src/klass/utility/naming.py +++ b/src/klass/utility/naming.py @@ -20,7 +20,6 @@ def create_shortname(elem: Any, shortname_len: int = 3) -> str: raise ValueError("Object is missing valid target/name attribute.") else: name = elem.name - print(name) name = name.lower() replace = { k: "" diff --git a/tests/test_classification_search.py b/tests/test_classification_search.py index a264a4b..5e026bc 100644 --- a/tests/test_classification_search.py +++ b/tests/test_classification_search.py @@ -14,8 +14,6 @@ def test_classification_search_has_str_repr(klass_classification_search_success) assert klass_classification_search_success.__repr__() assert len(klass_classification_search_success.__str__()) assert len(klass_classification_search_success.__repr__()) - print(klass_classification_search_success) - repr(klass_classification_search_success) def test_simple_search_result(klass_classification_search_success): diff --git a/tests/test_classifications.py b/tests/test_classifications.py index ffee7f9..72f11ef 100644 --- a/tests/test_classifications.py +++ b/tests/test_classifications.py @@ -24,8 +24,6 @@ def test_classification_has_str_repr(klass_classification_success): assert klass_classification_success.__repr__() assert len(klass_classification_success.__str__()) assert len(klass_classification_success.__repr__()) - print(klass_classification_success) - repr(klass_classification_success) def test_version_dict(klass_classification_success): diff --git a/tests/test_codes.py b/tests/test_codes.py index 3cb8d88..eb4b3cd 100644 --- a/tests/test_codes.py +++ b/tests/test_codes.py @@ -83,5 +83,3 @@ def test_codes_has_str_repr(klass_codes_at_success): assert klass_codes_at_success.__repr__() assert len(klass_codes_at_success.__str__()) assert len(klass_codes_at_success.__repr__()) - print(klass_codes_at_success) - repr(klass_codes_at_success) diff --git a/tests/test_corresponds.py b/tests/test_corresponds.py index c92c476..ab9cbe6 100644 --- a/tests/test_corresponds.py +++ b/tests/test_corresponds.py @@ -20,8 +20,6 @@ def test_correspondence_has_str_repr(klass_correspondence_from_id_success): assert klass_correspondence_from_id_success.__repr__() assert len(klass_correspondence_from_id_success.__str__()) assert len(klass_correspondence_from_id_success.__repr__()) - print(klass_correspondence_from_id_success) - repr(klass_correspondence_from_id_success) def test_correspondence_can_contain_quarter( diff --git a/tests/test_family.py b/tests/test_family.py index f3ad82f..6a02865 100644 --- a/tests/test_family.py +++ b/tests/test_family.py @@ -10,8 +10,6 @@ def test_search_families_by_id_has_str_repr(klass_search_families_by_id_success) assert klass_search_families_by_id_success.__repr__() assert len(klass_search_families_by_id_success.__str__()) assert len(klass_search_families_by_id_success.__repr__()) - print(klass_search_families_by_id_success) - repr(klass_search_families_by_id_success) def test_search_families_simple_search_result(klass_search_families_by_id_success): diff --git a/tests/test_variant.py b/tests/test_variant.py index b4b9ff6..5b826f1 100644 --- a/tests/test_variant.py +++ b/tests/test_variant.py @@ -19,8 +19,6 @@ def test_variant_has_str_repr(klass_variant_success): assert klass_variant_success.__repr__() assert len(klass_variant_success.__str__()) assert len(klass_variant_success.__repr__()) - print(klass_variant_success) - repr(klass_variant_success) def test_variant_to_dict(klass_variant_success): diff --git a/tests/test_variant_search.py b/tests/test_variant_search.py index 739fef1..b8b0587 100644 --- a/tests/test_variant_search.py +++ b/tests/test_variant_search.py @@ -14,8 +14,6 @@ def test_variant_has_str_repr(klass_variant_search_success): assert klass_variant_search_success.__repr__() assert len(klass_variant_search_success.__str__()) assert len(klass_variant_search_success.__repr__()) - print(klass_variant_search_success) - repr(klass_variant_search_success) def test_variant_to_dict(klass_variant_search_success): diff --git a/tests/test_version.py b/tests/test_version.py index b17640c..2d2e0ac 100644 --- a/tests/test_version.py +++ b/tests/test_version.py @@ -19,8 +19,6 @@ def test_version_has_str_repr(klass_version_success): assert klass_version_success.__repr__() assert len(klass_version_success.__str__()) assert len(klass_version_success.__repr__()) - print(klass_version_success) - repr(klass_version_success) def test_version_simple_correspondences(klass_version_success): From 1c7e0d722e50a7f8bf3d7974c1a1db098f453554 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Lie=20Rapp?= <90246213+Bjoern-Rapp@users.noreply.github.com> Date: Wed, 11 Mar 2026 15:33:36 +0100 Subject: [PATCH 2/4] Formatting --- demo/requestfunctions.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/demo/requestfunctions.py b/demo/requestfunctions.py index f5a1511..a20e00a 100644 --- a/demo/requestfunctions.py +++ b/demo/requestfunctions.py @@ -29,7 +29,9 @@ display(klass.classification_by_id("36").keys()) # %% -display(klass.codes(classification_id="36", from_date="2020-01-01", to_date="2023-01-02")) +display( + klass.codes(classification_id="36", from_date="2020-01-01", to_date="2023-01-02") +) # %% [raw] # From 0d525fe0ac7b81b2417fb88df206e54c24c30e4d Mon Sep 17 00:00:00 2001 From: "Carl F. Corneil" Date: Thu, 12 Mar 2026 13:03:27 +0100 Subject: [PATCH 3/4] remove TESTING attribute from config --- demo/config.py | 6 ------ pyproject.toml | 2 +- src/klass/config.py | 3 +-- src/klass/requests/klass_requests.py | 2 +- tests/test_request_functions.py | 8 -------- 5 files changed, 3 insertions(+), 18 deletions(-) diff --git a/demo/config.py b/demo/config.py index ee0ea00..4c8b995 100644 --- a/demo/config.py +++ b/demo/config.py @@ -21,12 +21,6 @@ # %% [x for x in dir(klass.config) if not x.startswith("_")] -# %% -display(klass.config.TESTING) - -# %% -klass.config.TESTING = True - # %% display(klass.classification_by_id(36)) diff --git a/pyproject.toml b/pyproject.toml index 6d3f193..9d66a93 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "ssb-klass-python" -version = "1.0.7" +version = "1.0.8" description = "A Python package built on top of KLASS's API for retrieving classifications, codes, correspondences etc." authors = [{name="Carl Corneil", email="ssb-pythonistas "}, {name = "Statistics Norway" }] license = "MIT" diff --git a/src/klass/config.py b/src/klass/config.py index 2979259..6ec8cd5 100644 --- a/src/klass/config.py +++ b/src/klass/config.py @@ -2,5 +2,4 @@ BASE_URL: str = "https://data.ssb.no/api/klass/v1/" HEADERS: dict[str, str] = { "Accept": "application/json", -} -TESTING: bool = False +} \ No newline at end of file diff --git a/src/klass/requests/klass_requests.py b/src/klass/requests/klass_requests.py index a6fcca9..127f957 100644 --- a/src/klass/requests/klass_requests.py +++ b/src/klass/requests/klass_requests.py @@ -47,7 +47,7 @@ def get_json(url: str, params: ParamsAfterType) -> Any: Any: The JSON response from the endpoint, hard to type because all endpoints have differently structured responses. """ req = requests.Request("GET", url=url, headers=config.HEADERS, params=params) - logger.debug("Full URL, check during testing:", req.prepare().url) + logger.debug("Full URL: %s", req.prepare().url) response = requests.Session().send(req.prepare()) response.raise_for_status() result: Any = response.json() diff --git a/tests/test_request_functions.py b/tests/test_request_functions.py index b1143e2..156f065 100644 --- a/tests/test_request_functions.py +++ b/tests/test_request_functions.py @@ -15,14 +15,6 @@ def test_convert_datestring(): assert len(date_str) -@mock.patch.object(requests.Session, "send") -def test_get_json_testing(mock_response): - klass.config.TESTING = True - mock_response.return_value = tests.mock_response_data.classifications_fake_content() - classification = klass.requests.klass_requests.classifications() - assert len(classification["_embedded"]) - - @mock.patch.object(requests.Session, "send") def test_classification_changed_since(mock_response): mock_response.return_value = tests.mock_response_data.classifications_fake_content() From 321143a1cb86d7167cd91732eeeb3126ad2e1d23 Mon Sep 17 00:00:00 2001 From: "Carl F. Corneil" Date: Thu, 12 Mar 2026 13:09:03 +0100 Subject: [PATCH 4/4] ran pre-commit --- src/klass/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/klass/config.py b/src/klass/config.py index 6ec8cd5..65712b9 100644 --- a/src/klass/config.py +++ b/src/klass/config.py @@ -2,4 +2,4 @@ BASE_URL: str = "https://data.ssb.no/api/klass/v1/" HEADERS: dict[str, str] = { "Accept": "application/json", -} \ No newline at end of file +}