Open
Conversation
…runs evething from extraction to anylysis to graphs. I also created a file that just runs the anylysis and graphing scripts given sometimes we dont need to re gather data.
… error handling in main execution flow
Refactor/documentation
…treamline pipeline execution, and improve error handling for team analysis
…raphing modules; update documentation and tests for clarity and accuracy
Add Unit Tests for process_model
Feature/adding main run it all file
Mahatav
requested changes
Feb 21, 2026
Collaborator
Mahatav
left a comment
There was a problem hiding this comment.
It looks good; however, I would pull from dev and fix the toggle thing.
| CURRENT_DIR = os.path.dirname(os.path.abspath(__file__)) | ||
| ROOT = os.path.abspath(os.path.join(CURRENT_DIR, "../")) | ||
|
|
||
| # ============================================================ |
Collaborator
There was a problem hiding this comment.
I would pull from dev and rework it so everything works without a toggle.
# Conflicts: # event_labelling/CodeStructure_Branching/main.py # event_labelling/PR/get_clean_pr_label.py
Feature/adding elbow score
Refactor: Clean Scripts into Utility
Feature/comm label
Collaborator
Author
|
@Mahatav thanks for the review Manu! I've pulled from dev now so feel free to re-review |
a8e6d00 to
d14e5b5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds an individual-level version of the transition-edges + Markov graph pipeline, while keeping the same PR-ID sessioning behavior as the team-level flow. It introduces two new scripts (
transition_edges_individual.pyandgraphing_individual.py) that generate per-person CSV outputs and graphs, with the logic split depending on the data source:data/graph_labels/*_labels_branching_and_structure.csv): the pipeline splits rows bypr_author, so each person’s transitions/graphs only use their own rows (still grouped by PR session).data/csv/pr_labels_year-long-project-team-*.csv): since the raw file has two possible “author” columns, the pipeline first derives a singleuserfield per row using: ifsourceis empty or"pr"→ usepr_author, otherwise ifsourceis"review"→ useauthor. Also, because the raw PR label CSV doesn’t have atimestampcolumn, this flow generates one using the same rules as the clean-CSV helper: defaultcreated_at, usemerged_atfor merge events (reviewed_merge/self_merge), and useupdated_atforno_merge(fallback tocreated_atif missing).To avoid copy/pasting the same Markov helpers across 4 scripts, common pieces (event parsing/explode + edge computation + graph rendering helpers) were moved into
process_model/_markov_common.py, and the team + individual scripts import the functions they need directly.Testing
Testing will be done in a separate test script PR since this change is already pretty big.
Expected Result
Here is a sample output of one student in Team 2 for the PR label (access through

data/outputs/pr_individual/users/year-long-project-team-2/indigoalex-771a/individual_avg_session/indigoalex-771a_avg_session.png)Closes: #60