random sync

This commit is contained in:
Thomas (Tom) C. Gorordo 2025-05-07 11:08:19 -07:00
parent 7b53685b00
commit 6cdc579270
Signed by: tgorordo
GPG key ID: 0CBED22BB0D94490
6 changed files with 933 additions and 144 deletions

View file

@ -1,3 +1,6 @@
list:
just --list
run:
uv run carousel
@ -20,7 +23,7 @@ compile:
clean:
uv run pyclean src test
uv run ruff clean
rm -rf main.spec cli.spec gui.spec build dist .pytest_cache .hypothesis .benchmarks
rm -rf main.spec cli.spec gui.spec build dist .pytest_cache .hypothesis .benchmarks __marimo__
wipe:
just clean

View file

@ -22,13 +22,16 @@ build-backend = "hatchling.build"
[dependency-groups]
dev = [
"faker>=37.1.0",
"hypothesis>=6.130.8",
"marimo[recommended]>=0.13.6",
"pyclean>=3.1.0",
"pyinstaller>=6.12.0",
"pyright>=1.1.398",
"pytest>=8.3.5",
"pytest-benchmark>=5.1.0",
"ruff>=0.11.2",
"ty>=0.0.0a5",
]
srv = [
"legacy-cgi>=2.6.3",

View file

@ -28,10 +28,16 @@ def deferred_acceptance(applicant_rankings, reviewer_rankings):
# while check_unstable(match, applicant_rankings, reviewer_rankings):
while match.select(pl.any_horizontal(pl.all().has_nulls())).item():
# TODO null applicant preferences that rejected
rejected_applicants = offers.select(
pl.col("applicant").is_in(match.row(0)).alias("matched")
# null applicant preferences that rejected
offers = offers.with_columns(
pl.when(
pl.col("applicant").is_in(match.row(0)).not_(),
pl.col(c).is_null().not_(),
)
.then(pl.lit(None))
.otherwise(c)
.alias(c)
for c in offers.select(pl.col("pref*")).columns
)
return match

View file

@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env -S uv run python
import os
from dotenv import load_dotenv

55
test/nbs/hovses.py Normal file
View file

@ -0,0 +1,55 @@
import marimo
__generated_with = "0.13.6"
app = marimo.App(width="medium")
@app.cell(hide_code=True)
def _(mo):
mo.md(r"""# Caltech Hovse Rotation Example""")
return
@app.cell(hide_code=True)
def _(mo):
mo.md(r"""## Imports""")
return
@app.cell
def _():
import marimo as mo
import polars as pl, polars.selectors as pls
import numpy as np, faker as fk
import carousel as crsl
return crsl, mo, pl
@app.cell(hide_code=True)
def _(mo):
mo.md(r"""## Generating Rotation Rankings""")
return
@app.cell
def _(crsl, pl):
ar = pl.DataFrame({ "": ["A", "B", "C", "D"], "a": [1, 2, 3, 4], "b": [1, 4, 3, 2], "c": [2, 1, 3, 4], "d": [4, 2, 3, 1]})
rr = pl.DataFrame({ "": ["a", "b", "c", "d"], "A": [3, 4, 2, 1], "B": [3, 1, 4, 2], "C": [2, 3, 4, 1], "D": [3, 2, 1, 4]})
m = pl.DataFrame({"A": ["c"], "B": ["d"], "C": ["a"], "D": ["b"]})
crsl.check_stable(m, ar, rr)
return
@app.cell
def _():
hovses = ["Blacker", "Dabney", "Ricketts", "Fleming", "Page", "Lloyd", "Venerable", "Avery"]
return
@app.cell
def _():
return
if __name__ == "__main__":
app.run()

998
uv.lock generated

File diff suppressed because it is too large Load diff