Skip to content

Commit

Permalink
misc cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
voynow committed Aug 17, 2024
1 parent cfc2a4a commit 86c6088
Showing 1 changed file with 85 additions and 33 deletions.
118 changes: 85 additions & 33 deletions test.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,25 @@
},
{
"cell_type": "code",
"execution_count": 40,
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"from typing import List\n",
"\n",
"import polars as pl\n",
"from freezegun import freeze_time\n",
"\n",
"from src.activities import (\n",
" get_activities_df,\n",
" get_day_of_week_summaries,\n",
" get_weekly_summaries,\n",
")\n",
"from src.types.training_week import TrainingWeekWithCoaching, TrainingSession\n",
"from src.auth_manager import get_strava_client\n",
"from src.email_manager import send_email, training_week_to_html\n",
"from src.supabase_client import upsert_training_week_with_coaching\n",
"from src.supabase_client import upsert_training_week_with_coaching, get_training_week_with_coaching\n",
"from src.training_week_generation.training_week import generate_training_week"
]
},
Expand Down Expand Up @@ -102,27 +105,36 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 67,
"metadata": {},
"outputs": [],
"source": [
"from src.types.training_week import TrainingWeek\n",
"from src.types.training_week import TrainingWeekWithCoaching\n",
"import polars as pl\n",
"import datetime\n",
"\n",
"@freeze_time(\"2024-08-13 20:00:00\")\n",
"def mock_get_activities_df(strava_client, num_weeks=8):\n",
" return get_activities_df(strava_client, num_weeks)\n",
"\n",
"@freeze_time(\"2024-08-13 20:00:00\")\n",
"def mock_time_now():\n",
" return datetime.datetime.now()\n",
"\n",
"def get_day_of_week():\n",
" return mock_time_now().strftime(\"%A\")\n",
"\n",
"def get_weekday_num():\n",
" return mock_time_now().weekday()\n",
"\n",
"\n",
"def get_concise_activities(strava_client, num_weeks=8) -> pl.DataFrame:\n",
" df = mock_get_activities_df(strava_client, num_weeks)\n",
" return df.with_columns(\n",
" pl.col('start_date_local').apply(lambda x: x.strftime(\"%A, %B %d, %Y %I:%M %p\")),\n",
" pl.col('distance_in_miles').apply(lambda x: round(x, 2)),\n",
" pl.col('elevation_gain_in_feet').apply(lambda x: round(x, 2)),\n",
" pl.col('pace_minutes_per_mile').apply(lambda x: round(x, 2)),\n",
" ).drop('id', 'name', 'day_of_week', 'week_of_year', 'year', 'moving_time_in_minutes')\n",
"\n",
"def calc_weekly_total_mileage(training_week: TrainingWeek) -> float:\n",
" \"\"\"\n",
" Calculates the total mileage for a given week\n",
"\n",
" :param training_week: instance of TrainingWeek\n",
" :return: The total mileage\n",
" \"\"\" \n",
" return sum(\n",
" [\n",
" getattr(training_week, attrib).distance \n",
" for attrib in training_week.__dict__\n",
" ]\n",
" )\n",
"\n",
"def get_mid_week_delta(\n",
" training_week_with_coaching: TrainingWeekWithCoaching,\n",
Expand All @@ -137,31 +149,71 @@
" :return: The mileage delta as a float\n",
" \"\"\"\n",
" actual_mileage = activities['distance_in_miles'].sum()\n",
" weekly_target = calc_weekly_total_mileage(\n",
" training_week_with_coaching.training_week\n",
" )\n",
" weekly_target = sum(sess.distance for sess in training_week_with_coaching.training_week)\n",
" mileage_delta = weekly_target - actual_mileage\n",
"\n",
" return mileage_delta"
]
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 68,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"athlete_id='98390356' token still valid until 2024-08-17 05:16:28+00:00\n"
]
}
],
"source": [
"@freeze_time(\"2024-08-08 20:00:00\")\n",
"def mock_get_activities_df(strava_client, num_weeks=8):\n",
" return get_activities_df(strava_client, num_weeks)\n",
"\n",
"athlete_id = os.environ[\"JAMIES_ATHLETE_ID\"]\n",
"strava_client = get_strava_client(athlete_id)\n",
"training_week_with_coaching = get_training_week_with_coaching(athlete_id)\n",
"activities = mock_get_activities_df(strava_client, num_weeks=1)\n",
"\n",
"mid_week_detla = get_mid_week_delta(\n",
" training_week_with_coaching=training_week_with_coaching,\n",
" activities=activities\n",
")"
"activities = get_concise_activities(strava_client, num_weeks=1)"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div><style>\n",
".dataframe > thead > tr,\n",
".dataframe > tbody > tr {\n",
" text-align: right;\n",
" white-space: pre-wrap;\n",
"}\n",
"</style>\n",
"<small>shape: (2, 4)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>start_date_local</th><th>distance_in_miles</th><th>elevation_gain_in_feet</th><th>pace_minutes_per_mile</th></tr><tr><td>str</td><td>f64</td><td>f64</td><td>f64</td></tr></thead><tbody><tr><td>&quot;Monday, August 12, 2024 06:06 …</td><td>8.01</td><td>183.73</td><td>9.43</td></tr><tr><td>&quot;Tuesday, August 13, 2024 06:15…</td><td>4.01</td><td>52.49</td><td>10.64</td></tr></tbody></table></div>"
],
"text/plain": [
"shape: (2, 4)\n",
"┌──────────────────────────┬───────────────────┬────────────────────────┬───────────────────────┐\n",
"│ start_date_local ┆ distance_in_miles ┆ elevation_gain_in_feet ┆ pace_minutes_per_mile │\n",
"│ --- ┆ --- ┆ --- ┆ --- │\n",
"│ str ┆ f64 ┆ f64 ┆ f64 │\n",
"╞══════════════════════════╪═══════════════════╪════════════════════════╪═══════════════════════╡\n",
"│ Monday, August 12, 2024 ┆ 8.01 ┆ 183.73 ┆ 9.43 │\n",
"│ 06:06 … ┆ ┆ ┆ │\n",
"│ Tuesday, August 13, 2024 ┆ 4.01 ┆ 52.49 ┆ 10.64 │\n",
"│ 06:15… ┆ ┆ ┆ │\n",
"└──────────────────────────┴───────────────────┴────────────────────────┴───────────────────────┘"
]
},
"execution_count": 69,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"activities"
]
},
{
Expand Down

0 comments on commit 86c6088

Please sign in to comment.