Skip to content

Commit 8c449e9

Browse files
authored
Merge pull request #107 from statisticsnorway/new_get_latest_path
New get latest path
2 parents 6e301ac + 1e8331a commit 8c449e9

File tree

11 files changed

+1216
-807
lines changed

11 files changed

+1216
-807
lines changed

.gitignore

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
*.xlsx
1616
*.zip
1717

18+
# Notebooks shall be stored in .py or .R-format.
19+
# See https://adr.ssb.no/0020-lagringsformat-for-jupyter-notebooks/
20+
*.ipynb
21+
22+
1823
# The section below is from the GitHub .gitignore template for Python:
1924
# https://raw.githubusercontent.com/github/gitignore/main/Python.gitignore
2025

@@ -208,6 +213,3 @@ rsconnect/
208213
# Blaise specific ignores
209214
*.bdix
210215
*.bdbx
211-
212-
# PyCharm
213-
.idea/

demos/project_root.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# ---
2+
# jupyter:
3+
# jupytext:
4+
# formats: py:percent
5+
# text_representation:
6+
# extension: .py
7+
# format_name: percent
8+
# format_version: '1.3'
9+
# jupytext_version: 1.16.4
10+
# kernelspec:
11+
# display_name: ssb-fagfunksjoner
12+
# language: python
13+
# name: ssb-fagfunksjoner
14+
# ---
15+
16+
# %%
17+
import os
18+
19+
from fagfunksjoner import ProjectRoot
20+
21+
22+
# %%
23+
print(os.getcwd())
24+
25+
# %%
26+
proj_root = ProjectRoot()
27+
28+
# %%
29+
print(proj_root.path)
30+
31+
# %%

demos/versions_dapla.py

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# ---
2+
# jupyter:
3+
# jupytext:
4+
# text_representation:
5+
# extension: .py
6+
# format_name: percent
7+
# format_version: '1.3'
8+
# jupytext_version: 1.16.4
9+
# kernelspec:
10+
# display_name: ssb-fagfunksjoner
11+
# language: python
12+
# name: ssb-fagfunksjoner
13+
# ---
14+
15+
# %%
16+
import dapla as dp
17+
18+
19+
fs = dp.FileClient().get_gcs_file_system()
20+
21+
# %%
22+
base_path = "ssb-dapla-felles-data-produkt-prod"
23+
folder_name = "versions_paths_fagfunksjoner"
24+
25+
# %% [markdown]
26+
# # Make testfiles
27+
28+
# %%
29+
testfile_paths = [
30+
"file_v1.parquet",
31+
"file_v1__DOC.json",
32+
"file_v12__DOC.json",
33+
"file_v2.parquet",
34+
"file_v11.parquet",
35+
"otherfile_v3.parquet",
36+
"otherfile_v20.parquet",
37+
]
38+
39+
# %%
40+
for file in testfile_paths:
41+
fs.touch("/".join([base_path, folder_name, file]))
42+
43+
# %% [markdown]
44+
# # Test functions
45+
46+
# %%
47+
from fagfunksjoner.paths import versions
48+
49+
50+
# %%
51+
files = fs.glob(f"{base_path}/{folder_name}/*")
52+
files # noqa: B018
53+
54+
# %%
55+
versions.get_latest_fileversions(files)
56+
57+
# %%
58+
versions.latest_version_path(
59+
"/buckets/produkt/versions_paths_fagfunksjoner/file_v12__DOC"
60+
)
61+
62+
# %%
63+
versions.next_version_path(
64+
"/buckets/produkt/versions_paths_fagfunksjoner/file_v1.parquet"
65+
)
66+
67+
# %%
68+
versions.next_version_path(
69+
"gs://ssb-dapla-felles-data-produkt-prod/versions_paths_fagfunksjoner/otherfile_v1.parquet"
70+
)
71+
72+
# %%
73+
versions.latest_version_number(
74+
"ssb-dapla-felles-data-produkt-prod/versions_paths_fagfunksjoner/file_v1.parquet"
75+
)
76+
77+
# %%
78+
versions.next_version_path(
79+
"ssb-dapla-felles-data-produkt-prod/versions_paths_fagfunksjoner/dont_exist_v1.parquet"
80+
)
81+
82+
# %%

poetry.lock

Lines changed: 685 additions & 682 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "ssb-fagfunksjoner"
3-
version = "1.0.4"
3+
version = "1.0.5"
44
description = "Fellesfunksjoner for ssb i Python"
55
authors = ["SSB-pythonistas <ssb-pythonistas@ssb.no>"]
66
license = "MIT"

src/fagfunksjoner/fagfunksjoner_logger.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,22 @@
22

33
import logging
44
import sys
5+
from collections.abc import Callable
56
from typing import Any
67

78
from colorama import Back, Fore, Style
89

910

11+
def silence_logger(func: Callable[..., Any], *args: Any, **kwargs: Any) -> Any:
12+
"""Silences INFO and WARNING logs for the duration of the function call."""
13+
original_level = logger.level
14+
logger.setLevel(logging.ERROR) # Suppress INFO and WARNING messages
15+
try:
16+
return func(*args, **kwargs)
17+
finally:
18+
logger.setLevel(original_level) # Restore original logging level
19+
20+
1021
class ColoredFormatter(logging.Formatter):
1122
"""Colored log formatter."""
1223

0 commit comments

Comments
 (0)