app-python-azdoworkitemcsv/README.md

39 lines
1.5 KiB
Markdown
Raw Permalink Normal View History

# Python Azure DevOps Work Item CSV
## Run Example
```bash
# 1 Create and activate an isolated Python environment
python3 -m venv .venv
source .venv/bin/activate
# 2 Install runtime dependencies
python -m pip install --upgrade pip
python -m pip install -r requirements.pip
# 3 Convert the CSV
python reorder_requirements.py "input.csv" "output.csv"
python reorder_requirements.py -v "/Users/jj/Downloads/input.csv" "/Users/jj/Downloads/output.csv"
```
## Execution Logic Summary
1. **build\_level\_map** walks up the `Parent` chain to assign every row its depth (1, 2, 3, …).
1. **depth\_first\_order** produces a depth-first sequence of IDs so that each parent is immediately followed by its children (and grandchildren).
1. **restructure** creates the empty `ID` column plus the mutually-exclusive `Title 1 3` columns and appends every *other* original column (except the old `ID`, `Parent`, and `Title`).
1. The script writes the new CSV; nothing is printed except a final “Wrote … rows” confirmation.
Youll get a file whose first four columns are:
| ID | Title 1 | Title 2 | Title 3 | …other original fields… |
| -- | ------- | ------- | ------- | ----------------------- |
where:
* Top-level items fill **Title 1**.
* Second-level items fill **Title 2**.
* Third-level (and deeper) items fill **Title 3**.
All hierarchy constraints you specified are enforced automatically. Feel free to adapt the column names or add CLI switches if you ever need variations (e.g., different max depth).