|
4 | 4 | smart-redact: |
5 | 5 | desc: "Smart redact PII from documents in a folder (e.g., task smart-redact INPUT_DIR=./documents OUTPUT_DIR=./redacted)" |
6 | 6 | cmds: |
7 | | - - python smart_redact_pii.py "{{.INPUT_DIR}}" "{{.OUTPUT_DIR}}" |
| 7 | + - uv run python smart_redact_pii.py "{{.INPUT_DIR}}" "{{.OUTPUT_DIR}}" |
8 | 8 | requires: |
9 | 9 | vars: [INPUT_DIR, OUTPUT_DIR] |
10 | 10 |
|
11 | 11 | convert: |
12 | 12 | desc: "Convert document from CLI (e.g., task convert INPUT=doc.docx OUTPUT=doc.pdf FORMAT=pdf)" |
13 | 13 | cmds: |
14 | | - - python convert_cli.py {{.INPUT}} {{.OUTPUT}} {{.FORMAT}} |
| 14 | + - uv run python convert_cli.py {{.INPUT}} {{.OUTPUT}} {{.FORMAT}} |
15 | 15 | requires: |
16 | 16 | vars: [INPUT, OUTPUT, FORMAT] |
17 | 17 |
|
18 | 18 | batch: |
19 | 19 | desc: "Batch process documents (e.g., task batch INPUT_DIR=./docs OUTPUT_DIR=./output FORMAT=pdf PATTERN='*.docx')" |
20 | 20 | cmds: |
21 | | - - python batch_process.py "{{.INPUT_DIR}}" "{{.OUTPUT_DIR}}" {{.FORMAT}} "{{.PATTERN | default "*"}}" |
| 21 | + - uv run python batch_process.py "{{.INPUT_DIR}}" "{{.OUTPUT_DIR}}" {{.FORMAT}} "{{.PATTERN | default "*"}}" |
22 | 22 | requires: |
23 | 23 | vars: [INPUT_DIR, OUTPUT_DIR, FORMAT] |
24 | 24 |
|
25 | 25 | extract: |
26 | 26 | desc: "Extract forms or tables from PDF (e.g., task extract MODE=forms INPUT=form.pdf OUTPUT=data.json)" |
27 | 27 | cmds: |
28 | | - - python extract_data.py {{.MODE}} "{{.INPUT}}" "{{.OUTPUT}}" |
| 28 | + - uv run python extract_data.py {{.MODE}} "{{.INPUT}}" "{{.OUTPUT}}" |
29 | 29 | requires: |
30 | 30 | vars: [MODE, INPUT, OUTPUT] |
31 | 31 |
|
32 | 32 | password-protect: |
33 | 33 | desc: "Bulk password protect PDFs (e.g., task password-protect INPUT_DIR=./pdfs OUTPUT_DIR=./protected PASSWORD=secret123)" |
34 | 34 | cmds: |
35 | | - - python bulk_password_protect.py "{{.INPUT_DIR}}" "{{.OUTPUT_DIR}}" "{{.PASSWORD}}" |
| 35 | + - uv run python bulk_password_protect.py "{{.INPUT_DIR}}" "{{.OUTPUT_DIR}}" "{{.PASSWORD}}" |
36 | 36 | requires: |
37 | 37 | vars: [INPUT_DIR, OUTPUT_DIR, PASSWORD] |
38 | 38 |
|
39 | 39 | redact-keyword: |
40 | 40 | desc: "Redact specific keywords from a PDF (e.g., task redact-keyword INPUT=doc.pdf OUTPUT=redacted.pdf KEYWORDS='confidential secret')" |
41 | 41 | cmds: |
42 | | - - python redact_by_keyword.py {{.INPUT}} {{.OUTPUT}} {{.KEYWORDS}} |
| 42 | + - uv run python redact_by_keyword.py {{.INPUT}} {{.OUTPUT}} {{.KEYWORDS}} |
43 | 43 | requires: |
44 | 44 | vars: [INPUT, OUTPUT, KEYWORDS] |
45 | 45 |
|
46 | 46 | install: |
47 | | - desc: "Install Python dependencies" |
| 47 | + desc: "Install Python dependencies using uv" |
48 | 48 | cmds: |
49 | | - - pip install -r requirements.txt |
| 49 | + - uv sync |
50 | 50 |
|
51 | 51 | setup: |
52 | 52 | desc: "Setup environment (copy .env.example to .env)" |
|
57 | 57 | prepare-distribution: |
58 | 58 | desc: "Prepare documents for external distribution (convert, compress, remove metadata) (e.g., task prepare-distribution INPUT_DIR=./brochures OUTPUT_DIR=./ready)" |
59 | 59 | cmds: |
60 | | - - python prepare_pdf_for_distribution.py "{{.INPUT_DIR}}" "{{.OUTPUT_DIR}}" |
| 60 | + - uv run python prepare_pdf_for_distribution.py "{{.INPUT_DIR}}" "{{.OUTPUT_DIR}}" |
61 | 61 | requires: |
62 | 62 | vars: [INPUT_DIR, OUTPUT_DIR] |
63 | 63 |
|
|
66 | 66 | onboard-employees: |
67 | 67 | desc: "Send company policies to new employees for signature (e.g., task onboard-employees POLICIES_DIR=./policies CSV=new_hires.csv)" |
68 | 68 | cmds: |
69 | | - - python employee_policy_onboarding.py "{{.POLICIES_DIR}}" "{{.CSV}}" |
| 69 | + - uv run python employee_policy_onboarding.py "{{.POLICIES_DIR}}" "{{.CSV}}" |
70 | 70 | requires: |
71 | 71 | vars: [POLICIES_DIR, CSV] |
0 commit comments