Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ repos:
hooks:
- id: yamllint
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.14.10
rev: v0.14.11
hooks:
- id: ruff-check
types_or:
Expand All @@ -54,7 +54,6 @@ repos:
- jupyter
args:
- --fix
# - --unsafe-fixes
- id: ruff-format
types_or:
- python
Expand Down
3 changes: 3 additions & 0 deletions .yamllint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ yaml-files:
- '*.yaml'
- '*.yml'
- .yamllint
ignore:
- src/skillmodels/test_data/simplest_augmented_model.yaml
rules:
braces: enable
brackets: enable
Expand Down Expand Up @@ -34,3 +36,4 @@ rules:
trailing-spaces: enable
truthy:
level: warning
check-keys: false
4 changes: 3 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,10 +86,12 @@ The main package exports three functions:

## Code Style

- Uses Ruff for linting (target: Python 3.13, line length: 88)
- Require Python 3.14
- Uses Ruff for linting (target: Python 3.14, line length: 88)
- Google-style docstrings
- Pre-commit hooks enforce formatting and linting
- Type checking via `ty` with strict rules
- Do not use `from __future__ import annotations`

## Testing

Expand Down
10 changes: 6 additions & 4 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
"""Sphinx configuration file for skillmodels documentation."""

#
# Documentation build configuration file, created by sphinx-quickstart
#
Expand All @@ -8,13 +10,13 @@
#
# All configuration values have a default; values that are commented out
# serve to show the default.
import os
import sys
from pathlib import Path

# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
sys.path.insert(0, os.path.abspath("../.."))
# documentation root, use Path.resolve() to make it absolute, like shown here.
sys.path.insert(0, str(Path("../..").resolve()))


# -- General configuration ----------------------------------------------------
Expand Down Expand Up @@ -61,7 +63,7 @@

# General information about the project.
project = "skillmodels"
copyright = "2016-2021, Janos Gabler"
copyright = "2016-, Janos Gabler" # noqa: A001

# The version info for the project you"re documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
Expand Down
11 changes: 4 additions & 7 deletions docs/source/getting_started/tutorial.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"import pandas as pd\n",
"import yaml\n",
"\n",
"from skillmodels.config import TEST_DIR\n",
"from skillmodels.config import REGRESSION_VAULT, TEST_DATA_DIR\n",
"from skillmodels.maximization_inputs import get_maximization_inputs"
]
},
Expand All @@ -41,7 +41,7 @@
"metadata": {},
"outputs": [],
"source": [
"with open(TEST_DIR / \"model2.yaml\") as y:\n",
"with (TEST_DATA_DIR / \"model2.yaml\").open() as y:\n",
" model_dict = yaml.load(y, Loader=yaml.SafeLoader)"
]
},
Expand All @@ -51,7 +51,7 @@
"metadata": {},
"outputs": [],
"source": [
"data = pd.read_stata(TEST_DIR / \"model2_simulated_data.dta\")\n",
"data = pd.read_stata(TEST_DATA_DIR / \"model2_simulated_data.dta\")\n",
"data = data.set_index([\"caseid\", \"period\"])"
]
},
Expand Down Expand Up @@ -110,7 +110,7 @@
"outputs": [],
"source": [
"index_cols = [\"category\", \"period\", \"name1\", \"name2\"]\n",
"chs_path = TEST_DIR / \"regression_vault\" / \"chs_results.csv\"\n",
"chs_path = REGRESSION_VAULT / \"chs_results.csv\"\n",
"chs_values = pd.read_csv(chs_path)\n",
"chs_values = chs_values.set_index(index_cols)\n",
"chs_values = chs_values[[\"chs_value\", \"good_start_value\", \"bad_start_value\"]]\n",
Expand Down Expand Up @@ -289,7 +289,6 @@
"metadata": {},
"outputs": [],
"source": [
"pc, pp = om.process_constraints(constraints, params)\n",
"params[\"group\"] = params.index.get_level_values(\"category\")\n",
"params.loc[\"controls\", \"group\"] = params.loc[\"controls\"].index.get_level_values(\"name2\")\n",
"\n",
Expand All @@ -299,8 +298,6 @@
" + params.index.get_level_values(\"period\").astype(str)\n",
")\n",
"params[\"group\"] = params[\"group\"].str.replace(\"_\", \"-\")\n",
"params[\"group\"] = params[\"group\"].astype(\"O\")\n",
"params.loc[~pp[\"_internal_free\"], \"group\"] = None\n",
"params"
]
},
Expand Down
10 changes: 5 additions & 5 deletions docs/source/how_to_guides/how_to_simulate_dataset.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"import pandas as pd\n",
"import yaml\n",
"\n",
"from skillmodels.config import TEST_DIR\n",
"from skillmodels.config import REGRESSION_VAULT, TEST_DATA_DIR\n",
"from skillmodels.simulate_data import simulate_dataset"
]
},
Expand All @@ -34,13 +34,13 @@
"metadata": {},
"outputs": [],
"source": [
"with open(TEST_DIR / \"model2.yaml\") as y:\n",
" model_dict = yaml.load(y, Loader=yaml.FullLoader)\n",
"with (TEST_DATA_DIR / \"model2.yaml\").open() as y:\n",
" model_dict = yaml.load(y, Loader=yaml.SafeLoader)\n",
"\n",
"data = pd.read_stata(TEST_DIR / \"model2_simulated_data.dta\")\n",
"data = pd.read_stata(TEST_DATA_DIR / \"model2_simulated_data.dta\")\n",
"data = data.set_index([\"caseid\", \"period\"])\n",
"\n",
"params = pd.read_csv(TEST_DIR / \"regression_vault\" / \"one_stage_anchoring.csv\")\n",
"params = pd.read_csv(REGRESSION_VAULT / \"one_stage_anchoring.csv\")\n",
"params = params.set_index([\"category\", \"period\", \"name1\", \"name2\"])"
]
},
Expand Down
19 changes: 11 additions & 8 deletions docs/source/how_to_guides/how_to_visualize_correlations.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"import pandas as pd\n",
"import yaml\n",
"\n",
"from skillmodels.config import TEST_DIR\n",
"from skillmodels.config import REGRESSION_VAULT, TEST_DATA_DIR\n",
"from skillmodels.correlation_heatmap import (\n",
" get_measurements_corr,\n",
" get_quasi_scores_corr,\n",
Expand All @@ -40,8 +40,8 @@
"metadata": {},
"outputs": [],
"source": [
"with open(TEST_DIR / \"model2.yaml\") as y:\n",
" model_dict = yaml.load(y, Loader=yaml.FullLoader)"
"with (TEST_DATA_DIR / \"model2.yaml\").open() as y:\n",
" model_dict = yaml.load(y, Loader=yaml.SafeLoader)"
]
},
{
Expand All @@ -50,10 +50,10 @@
"metadata": {},
"outputs": [],
"source": [
"params = pd.read_csv(TEST_DIR / \"regression_vault\" / \"one_stage_anchoring.csv\")\n",
"params = pd.read_csv(REGRESSION_VAULT / \"one_stage_anchoring.csv\")\n",
"params = params.set_index([\"category\", \"period\", \"name1\", \"name2\"])\n",
"\n",
"data = pd.read_stata(TEST_DIR / \"model2_simulated_data.dta\")\n",
"data = pd.read_stata(TEST_DATA_DIR / \"model2_simulated_data.dta\")\n",
"data = data.set_index([\"caseid\", \"period\"])"
]
},
Expand Down Expand Up @@ -170,7 +170,10 @@
"metadata": {},
"outputs": [],
"source": [
"from skillmodels.visualize_transition_equations import _get_pardict, _set_index_params"
"from skillmodels.visualize_transition_equations import (\n",
" _get_parsed_params,\n",
" _set_index_params,\n",
")"
]
},
{
Expand All @@ -188,10 +191,10 @@
"metadata": {},
"outputs": [],
"source": [
"_get_pardict(\n",
"_get_parsed_params(\n",
" params=_set_index_params(process_model(model_dict), params),\n",
" model=process_model(model_dict),\n",
")[\"loadings\"]"
").loadings"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
"import pandas as pd\n",
"import yaml\n",
"\n",
"from skillmodels.config import TEST_DIR\n",
"from skillmodels.config import REGRESSION_VAULT, TEST_DATA_DIR\n",
"from skillmodels.maximization_inputs import get_maximization_inputs\n",
"from skillmodels.simulate_data import simulate_dataset\n",
"from skillmodels.visualize_factor_distributions import (\n",
Expand Down Expand Up @@ -57,12 +57,12 @@
"metadata": {},
"outputs": [],
"source": [
"with open(TEST_DIR / \"model2.yaml\") as y:\n",
" model_dict = yaml.load(y, Loader=yaml.FullLoader)\n",
"params = pd.read_csv(TEST_DIR / \"regression_vault\" / \"one_stage_anchoring.csv\")\n",
"with (TEST_DATA_DIR / \"model2.yaml\").open() as y:\n",
" model_dict = yaml.load(y, Loader=yaml.SafeLoader)\n",
"params = pd.read_csv(REGRESSION_VAULT / \"one_stage_anchoring.csv\")\n",
"params = params.set_index([\"category\", \"period\", \"name1\", \"name2\"])\n",
"\n",
"data = pd.read_stata(TEST_DIR / \"model2_simulated_data.dta\")\n",
"data = pd.read_stata(TEST_DATA_DIR / \"model2_simulated_data.dta\")\n",
"data = data.set_index([\"caseid\", \"period\"])"
]
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"import pandas as pd\n",
"import yaml\n",
"\n",
"from skillmodels.config import TEST_DIR\n",
"from skillmodels.config import REGRESSION_VAULT, TEST_DATA_DIR\n",
"from skillmodels.visualize_transition_equations import (\n",
" combine_transition_plots,\n",
" get_transition_plots,\n",
Expand Down Expand Up @@ -47,13 +47,13 @@
"metadata": {},
"outputs": [],
"source": [
"with open(TEST_DIR / \"model2.yaml\") as y:\n",
" model_dict = yaml.load(y, Loader=yaml.FullLoader)\n",
"with (TEST_DATA_DIR / \"model2.yaml\").open() as y:\n",
" model_dict = yaml.load(y, Loader=yaml.SafeLoader)\n",
"\n",
"params = pd.read_csv(TEST_DIR / \"regression_vault\" / \"one_stage_anchoring.csv\")\n",
"params = pd.read_csv(REGRESSION_VAULT / \"one_stage_anchoring.csv\")\n",
"params = params.set_index([\"category\", \"period\", \"name1\", \"name2\"])\n",
"\n",
"data = pd.read_stata(TEST_DIR / \"model2_simulated_data.dta\")\n",
"data = pd.read_stata(TEST_DATA_DIR / \"model2_simulated_data.dta\")\n",
"data = data.set_index([\"caseid\", \"period\"])"
]
},
Expand Down
Loading