From 51c9c1ace75c73d1a2074f317bcd0558e325b981 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Sep 2026 20:24:10 +0000 Subject: [PATCH 1/2] Bump https://github.com/astral-sh/ruff-pre-commit from v0.16.4 to 0.16.6 Bumps [https://github.com/astral-sh/ruff-pre-commit](https://github.com/astral-sh/ruff-pre-commit) from v0.16.4 to 0.16.6. - [Release notes](https://github.com/astral-sh/ruff-pre-commit/releases) - [Commits](https://github.com/astral-sh/ruff-pre-commit/compare/v0.16.4...v0.16.6) --- updated-dependencies: - dependency-name: https://github.com/astral-sh/ruff-pre-commit dependency-version: 0.16.6 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 91eecae..b391f7b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,7 +14,7 @@ repos: ##### # Python - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.16.4 + rev: v0.16.6 hooks: # Sort imports - id: ruff-check From ffb1cd536728f9659a8410b728594cecf4dc6955 Mon Sep 17 00:00:00 2001 From: Ryan Raasch <150935395+ryanraaschCDC@users.noreply.github.com> Date: Wed, 16 Sep 2026 20:00:28 +0000 Subject: [PATCH 2/2] pre-commit fixes --- README.md | 1 + docs/data_developer_guide.md | 56 +++++++++++++++---------------- docs/data_user_guide.md | 13 +++---- docs/managing_catalogs.md | 5 ++- docs/release_notes/v2025.12.10.md | 5 ++- 5 files changed, 42 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 5c90821..550c85f 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ This project provides data tools and low friction access to versioned datasets w 3. See which datasets are available: ```python from cfa.dataops import datacat + print(datacat.__namespace_list__) ``` 4. Resolve a dataset reference from a full path or unique suffix: diff --git a/docs/data_developer_guide.md b/docs/data_developer_guide.md index e15dee8..171687b 100644 --- a/docs/data_developer_guide.md +++ b/docs/data_developer_guide.md @@ -81,15 +81,13 @@ prefix = "path/to/transformed/data" ```python title="cfa/dataops/datasets/{team_dir}/schemas/{dataset_name}.py" import pandera.pandas as pa -extract_schema = pa.DataFrameSchema({ - "column1": pa.Column(str), - "column2": pa.Column(float) -}) - -load_schema = pa.DataFrameSchema({ - "transformed_col1": pa.Column(str), - "transformed_col2": pa.Column(float) -}) +extract_schema = pa.DataFrameSchema( + {"column1": pa.Column(str), "column2": pa.Column(float)} +) + +load_schema = pa.DataFrameSchema( + {"transformed_col1": pa.Column(str), "transformed_col2": pa.Column(float)} +) ``` ### ETL script @@ -156,33 +154,35 @@ import pandas as pd import pandera.pandas as pa # Define the schemas for validation -extract_schema = pa.DataFrameSchema({ - "date": pa.Column(pd.DatetimeTZDtype(tz='UTC')), - "value": pa.Column(float, checks=pa.Check.greater_than(0)), - "category": pa.Column(str, checks=pa.Check.isin(['A', 'B', 'C'])) -}) - -load_schema = pa.DataFrameSchema({ - "date": pa.Column(pd.DatetimeTZDtype(tz='UTC')), - "normalized_value": pa.Column(float), - "category": pa.Column(str) -}) +extract_schema = pa.DataFrameSchema( + { + "date": pa.Column(pd.DatetimeTZDtype(tz="UTC")), + "value": pa.Column(float, checks=pa.Check.greater_than(0)), + "category": pa.Column(str, checks=pa.Check.isin(["A", "B", "C"])), + } +) + +load_schema = pa.DataFrameSchema( + { + "date": pa.Column(pd.DatetimeTZDtype(tz="UTC")), + "normalized_value": pa.Column(float), + "category": pa.Column(str), + } +) + # Add mock data generation for testing # prefix with 'extract' or 'load' -def extract_mock_data(output="pandas", size=10) -> pd.DataFrame|pl.DataFrame: +def extract_mock_data(output="pandas", size=10) -> pd.DataFrame | pl.DataFrame: data = { - "date": pd.date_range( - start="2023-01-01", - periods=size, - tz='UTC' - ), - "value": np.random.uniform(1, 100, size), - "category": np.random.choice(['A', 'B', 'C'], size) + "date": pd.date_range(start="2023-01-01", periods=size, tz="UTC"), + "value": np.random.uniform(1, 100, size), + "category": np.random.choice(["A", "B", "C"], size), } df = pd.DataFrame(data) return df if output == "pandas" or output == "pd" else pl.from_pandas(df) + # Validate synthetic data matches schema if __name__ == "__main__": test_df = extract_mock_data() diff --git a/docs/data_user_guide.md b/docs/data_user_guide.md index ff7e417..15dcbd4 100644 --- a/docs/data_user_guide.md +++ b/docs/data_user_guide.md @@ -53,12 +53,14 @@ Use `datacat.get_ref(...)` when you want to resolve a dataset first and then reu The typical way to create a reference is as follows: ```python from cfa.dataops import datacat + ref = datacat.public.team.data_trends ``` This can be done much simpler using `get_ref`: ```python from cfa.dataops import datacat + data_ref = datacat.get_ref("data_trends") ``` @@ -85,8 +87,8 @@ If you want to see which version will be returned before loading the dataframe, from cfa.dataops import datacat resolved = datacat.private.scenarios.covid19vax_trends.load.resolve_version( - version_spec=">=2025-05-01,<2025-06-01", - selection="newest", + version_spec=">=2025-05-01,<2025-06-01", + selection="newest", ) print(resolved.version) @@ -153,7 +155,7 @@ from cfa.dataops import datacat # newest match in the range (single version) df = datacat.private.scenarios.covid19vax_trends.load.get_dataframe( - version_spec=">=2025-05-01,<2025-06-01" + version_spec=">=2025-05-01,<2025-06-01" ) ``` @@ -165,7 +167,7 @@ Used version: '2025-05-30T19-55-51' ```python # oldest match in the same range (selection=oldest) df_old = datacat.private.scenarios.covid19vax_trends.load.get_dataframe( - version_spec=">=2025-05-01,<2025-06-01", selection = "oldest" + version_spec=">=2025-05-01,<2025-06-01", selection="oldest" ) ``` @@ -177,8 +179,7 @@ Used version: '2025-05-30T14-50-36' ```python # Preview the exact version that would be loaded for the same range resolved = datacat.private.scenarios.covid19vax_trends.load.resolve_version( - version_spec=">=2025-05-01,<2025-06-01", - selection="newest" + version_spec=">=2025-05-01,<2025-06-01", selection="newest" ) resolved.version diff --git a/docs/managing_catalogs.md b/docs/managing_catalogs.md index 200cf39..598af27 100644 --- a/docs/managing_catalogs.md +++ b/docs/managing_catalogs.md @@ -58,11 +58,10 @@ datacat.private.my_project.custom_dataset.load.get_dataframe() # Preview the version that will be loaded df_meta = datacat.private.scenarios.covid19vax_trends.load.resolve_version( - version_spec=">=2025-05-01,<2025-06-01", - selection="newest", + version_spec=">=2025-05-01,<2025-06-01", + selection="newest", ) print(df_meta.version) - ``` ### Listing Available Resources diff --git a/docs/release_notes/v2025.12.10.md b/docs/release_notes/v2025.12.10.md index 0ce240c..bd79eb3 100644 --- a/docs/release_notes/v2025.12.10.md +++ b/docs/release_notes/v2025.12.10.md @@ -63,19 +63,22 @@ We're thrilled to announce the first official release of the **CFA DataOps** pro **List Available Datasets:** ```python from cfa.dataops import datacat + print(datacat.__namespace_list__) ``` **Load a Dataframe with Version Filtering:** ```python from cfa.dataops import datacat + df = datacat.public.my_dataset.load.get_dataframe(version=">2024.12.01,<2025.08") ``` **Generate a Report** *(removed in a later release)*: ```python from cfa.dataops import reportcat # removed in a later release -reportcat.examples.dataset_report_ipynb.nb_to_html_file('report.html') + +reportcat.examples.dataset_report_ipynb.nb_to_html_file("report.html") ``` ## 📚 Documentation