nvti commited on
Commit
d6a2bfd
·
1 Parent(s): e001594

ci: configure Hugging Face Space sync

Browse files
.github/workflows/sync-hf-space.yml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Sync to Hugging Face hub
2
+ on:
3
+ push:
4
+ branches: [main]
5
+ # to run this workflow manually from the Actions tab
6
+ workflow_dispatch:
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ sync-to-hub:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ with:
17
+ fetch-depth: 0
18
+ lfs: true
19
+ - name: Push to hub
20
+ env:
21
+ HF_TOKEN: ${{ secrets.HF_TOKEN }}
22
+ run: |
23
+ test -n "$HF_TOKEN"
24
+ git push "https://tiena2cva:${HF_TOKEN}@huggingface.co/spaces/build-small-hackathon/Pozify" HEAD:main
README.md CHANGED
@@ -1,3 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  # Pozify
2
 
3
  Pozify is a Gradio + uv base project for a video-based workout form review app.
 
1
+ ---
2
+ title: Pozify
3
+ emoji: 🏋️
4
+ colorFrom: green
5
+ colorTo: blue
6
+ sdk: gradio
7
+ sdk_version: "6.17.3"
8
+ python_version: "3.14.4"
9
+ app_file: app.py
10
+ fullWidth: true
11
+ short_description: Video-based workout form review app with a Gradio pipeline UI.
12
+ tags:
13
+ - gradio
14
+ - computer-vision
15
+ - pose-estimation
16
+ - fitness
17
+ - video-analysis
18
+ ---
19
+
20
  # Pozify
21
 
22
  Pozify is a Gradio + uv base project for a video-based workout form review app.
lefthook.yml CHANGED
@@ -4,6 +4,10 @@ pre-commit:
4
  lint:
5
  glob: "*"
6
  run: uv run ruff check
 
 
 
 
7
  test:
8
  glob: "*"
9
  run: uv run python -m unittest discover -s tests
@@ -14,6 +18,8 @@ pre-push:
14
  lint:
15
  glob: "*"
16
  run: uv run ruff check
 
 
17
  test:
18
  glob: "*"
19
  run: uv run python -m unittest discover -s tests
 
4
  lint:
5
  glob: "*"
6
  run: uv run ruff check
7
+ requirements:
8
+ run: uv export --format requirements.txt --no-dev --no-hashes --frozen --output-file requirements.txt
9
+ files: echo requirements.txt
10
+ stage_fixed: true
11
  test:
12
  glob: "*"
13
  run: uv run python -m unittest discover -s tests
 
18
  lint:
19
  glob: "*"
20
  run: uv run ruff check
21
+ requirements:
22
+ run: uv export --format requirements.txt --no-dev --no-hashes --frozen --output-file requirements.txt && git diff --exit-code requirements.txt
23
  test:
24
  glob: "*"
25
  run: uv run python -m unittest discover -s tests
requirements.txt ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This file was autogenerated by uv via the following command:
2
+ # uv export --format requirements.txt --no-dev --no-hashes --frozen --output-file requirements.txt
3
+ absl-py==2.4.0
4
+ # via mediapipe
5
+ annotated-doc==0.0.4
6
+ # via
7
+ # fastapi
8
+ # typer
9
+ annotated-types==0.7.0
10
+ # via pydantic
11
+ anyio==4.13.0
12
+ # via
13
+ # gradio
14
+ # httpx
15
+ # starlette
16
+ audioop-lts==0.2.2 ; python_full_version >= '3.13'
17
+ # via gradio
18
+ brotli==1.2.0
19
+ # via gradio
20
+ certifi==2026.5.20
21
+ # via
22
+ # httpcore
23
+ # httpx
24
+ # mediapipe
25
+ cffi==2.0.0
26
+ # via sounddevice
27
+ click==8.4.1
28
+ # via
29
+ # huggingface-hub
30
+ # typer
31
+ # uvicorn
32
+ colorama==0.4.6 ; sys_platform == 'win32'
33
+ # via
34
+ # click
35
+ # tqdm
36
+ contourpy==1.3.3
37
+ # via matplotlib
38
+ cycler==0.12.1
39
+ # via matplotlib
40
+ fastapi==0.136.3
41
+ # via gradio
42
+ filelock==3.29.1
43
+ # via huggingface-hub
44
+ flatbuffers==25.12.19
45
+ # via mediapipe
46
+ fonttools==4.63.0
47
+ # via matplotlib
48
+ fsspec==2026.4.0
49
+ # via
50
+ # gradio-client
51
+ # huggingface-hub
52
+ gradio==6.17.3
53
+ # via pozify
54
+ gradio-client==2.5.0
55
+ # via
56
+ # gradio
57
+ # hf-gradio
58
+ groovy==0.1.2
59
+ # via gradio
60
+ h11==0.16.0
61
+ # via
62
+ # httpcore
63
+ # uvicorn
64
+ hf-gradio==0.4.1
65
+ # via gradio
66
+ hf-xet==1.5.1 ; platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'
67
+ # via huggingface-hub
68
+ httpcore==1.0.9
69
+ # via httpx
70
+ httpx==0.28.1
71
+ # via
72
+ # gradio
73
+ # gradio-client
74
+ # huggingface-hub
75
+ # safehttpx
76
+ huggingface-hub==1.18.0
77
+ # via
78
+ # gradio
79
+ # gradio-client
80
+ idna==3.18
81
+ # via
82
+ # anyio
83
+ # httpx
84
+ jinja2==3.1.6
85
+ # via gradio
86
+ kiwisolver==1.5.0
87
+ # via matplotlib
88
+ markdown-it-py==4.2.0
89
+ # via rich
90
+ markupsafe==3.0.3
91
+ # via
92
+ # gradio
93
+ # jinja2
94
+ matplotlib==3.10.9
95
+ # via mediapipe
96
+ mdurl==0.1.2
97
+ # via markdown-it-py
98
+ mediapipe==0.10.35
99
+ # via pozify
100
+ numpy==1.26.4
101
+ # via
102
+ # contourpy
103
+ # gradio
104
+ # matplotlib
105
+ # mediapipe
106
+ # opencv-contrib-python
107
+ # opencv-python-headless
108
+ # pandas
109
+ # pozify
110
+ opencv-contrib-python==4.11.0.86
111
+ # via mediapipe
112
+ opencv-python-headless==4.11.0.86
113
+ # via pozify
114
+ orjson==3.11.9
115
+ # via gradio
116
+ packaging==26.2
117
+ # via
118
+ # gradio
119
+ # gradio-client
120
+ # huggingface-hub
121
+ # matplotlib
122
+ pandas==2.3.3 ; python_full_version >= '3.14'
123
+ # via gradio
124
+ pandas==3.0.3 ; python_full_version < '3.14'
125
+ # via gradio
126
+ pillow==12.2.0
127
+ # via
128
+ # gradio
129
+ # matplotlib
130
+ pycparser==3.0 ; implementation_name != 'PyPy'
131
+ # via cffi
132
+ pydantic==2.13.4
133
+ # via
134
+ # fastapi
135
+ # gradio
136
+ pydantic-core==2.46.4
137
+ # via pydantic
138
+ pydub==0.25.1
139
+ # via gradio
140
+ pygments==2.20.0
141
+ # via rich
142
+ pyparsing==3.3.2
143
+ # via matplotlib
144
+ python-dateutil==2.9.0.post0
145
+ # via
146
+ # matplotlib
147
+ # pandas
148
+ python-multipart==0.0.32
149
+ # via gradio
150
+ pytz==2026.2
151
+ # via
152
+ # gradio
153
+ # pandas
154
+ pyyaml==6.0.3
155
+ # via
156
+ # gradio
157
+ # huggingface-hub
158
+ rich==15.0.0
159
+ # via typer
160
+ safehttpx==0.1.7
161
+ # via gradio
162
+ semantic-version==2.10.0
163
+ # via gradio
164
+ shellingham==1.5.4
165
+ # via typer
166
+ six==1.17.0
167
+ # via python-dateutil
168
+ sounddevice==0.5.5
169
+ # via mediapipe
170
+ starlette==1.2.1
171
+ # via
172
+ # fastapi
173
+ # gradio
174
+ tomlkit==0.14.0
175
+ # via gradio
176
+ tqdm==4.68.2
177
+ # via huggingface-hub
178
+ typer==0.25.1
179
+ # via
180
+ # gradio
181
+ # hf-gradio
182
+ # huggingface-hub
183
+ typing-extensions==4.15.0
184
+ # via
185
+ # anyio
186
+ # fastapi
187
+ # gradio
188
+ # gradio-client
189
+ # huggingface-hub
190
+ # pydantic
191
+ # pydantic-core
192
+ # starlette
193
+ # typing-inspection
194
+ typing-inspection==0.4.2
195
+ # via
196
+ # fastapi
197
+ # pydantic
198
+ tzdata==2026.2 ; python_full_version >= '3.14' or sys_platform == 'emscripten' or sys_platform == 'win32'
199
+ # via pandas
200
+ uvicorn==0.49.0
201
+ # via gradio