winebox 0.1.2__py3-none-any.whl → 0.1.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- winebox/__init__.py +1 -1
- winebox/config.py +40 -5
- winebox/main.py +48 -1
- winebox/models/user.py +2 -0
- winebox/routers/auth.py +117 -3
- winebox/routers/wines.py +227 -32
- winebox/services/image_storage.py +138 -9
- winebox/services/ocr.py +37 -0
- winebox/services/vision.py +278 -0
- winebox/static/css/style.css +545 -0
- winebox/static/favicon.svg +22 -0
- winebox/static/index.html +233 -2
- winebox/static/js/app.js +583 -8
- {winebox-0.1.2.dist-info → winebox-0.1.4.dist-info}/METADATA +37 -1
- {winebox-0.1.2.dist-info → winebox-0.1.4.dist-info}/RECORD +18 -16
- {winebox-0.1.2.dist-info → winebox-0.1.4.dist-info}/WHEEL +0 -0
- {winebox-0.1.2.dist-info → winebox-0.1.4.dist-info}/entry_points.txt +0 -0
- {winebox-0.1.2.dist-info → winebox-0.1.4.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: winebox
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
4
4
|
Summary: Wine Cellar Management Application with OCR label scanning
|
|
5
5
|
Project-URL: Homepage, https://github.com/jdrumgoole/winebox
|
|
6
6
|
Project-URL: Repository, https://github.com/jdrumgoole/winebox
|
|
@@ -22,6 +22,7 @@ Classifier: Topic :: Home Automation
|
|
|
22
22
|
Requires-Python: >=3.11
|
|
23
23
|
Requires-Dist: aiofiles>=23.0.0
|
|
24
24
|
Requires-Dist: aiosqlite>=0.19.0
|
|
25
|
+
Requires-Dist: anthropic>=0.40.0
|
|
25
26
|
Requires-Dist: bcrypt<4.1.0,>=4.0.0
|
|
26
27
|
Requires-Dist: fastapi>=0.109.0
|
|
27
28
|
Requires-Dist: jinja2>=3.1.0
|
|
@@ -32,6 +33,7 @@ Requires-Dist: pydantic>=2.0.0
|
|
|
32
33
|
Requires-Dist: pytesseract>=0.3.10
|
|
33
34
|
Requires-Dist: python-jose[cryptography]>=3.3.0
|
|
34
35
|
Requires-Dist: python-multipart>=0.0.6
|
|
36
|
+
Requires-Dist: slowapi>=0.1.9
|
|
35
37
|
Requires-Dist: sqlalchemy>=2.0.0
|
|
36
38
|
Requires-Dist: uvicorn[standard]>=0.27.0
|
|
37
39
|
Provides-Extra: dev
|
|
@@ -40,6 +42,8 @@ Requires-Dist: httpx>=0.26.0; extra == 'dev'
|
|
|
40
42
|
Requires-Dist: invoke>=2.2.0; extra == 'dev'
|
|
41
43
|
Requires-Dist: myst-parser>=2.0.0; extra == 'dev'
|
|
42
44
|
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
45
|
+
Requires-Dist: pytest-playwright>=0.4.0; extra == 'dev'
|
|
46
|
+
Requires-Dist: pytest-xdist>=3.5.0; extra == 'dev'
|
|
43
47
|
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
44
48
|
Requires-Dist: sphinx>=7.0.0; extra == 'dev'
|
|
45
49
|
Description-Content-Type: text/markdown
|
|
@@ -173,6 +177,38 @@ Images are served via the API at `/api/images/{filename}`.
|
|
|
173
177
|
|
|
174
178
|
**Note:** The `data/` directory is excluded from git (see `.gitignore`). Make sure to back up this directory to preserve your wine collection data.
|
|
175
179
|
|
|
180
|
+
## Label Scanning
|
|
181
|
+
|
|
182
|
+
WineBox uses AI-powered label scanning to extract wine information from photos.
|
|
183
|
+
|
|
184
|
+
### Claude Vision (Recommended)
|
|
185
|
+
|
|
186
|
+
For best results, configure Claude Vision by setting your Anthropic API key:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
export ANTHROPIC_API_KEY=your-api-key
|
|
190
|
+
# or
|
|
191
|
+
export WINEBOX_ANTHROPIC_API_KEY=your-api-key
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Claude Vision provides intelligent label analysis that:
|
|
195
|
+
- Handles decorative and artistic fonts
|
|
196
|
+
- Understands wine-specific terminology
|
|
197
|
+
- Extracts structured data (winery, vintage, grape variety, region, etc.)
|
|
198
|
+
- Works with curved or angled text
|
|
199
|
+
|
|
200
|
+
### Tesseract OCR (Fallback)
|
|
201
|
+
|
|
202
|
+
If no Anthropic API key is configured, WineBox falls back to Tesseract OCR. This requires Tesseract to be installed on your system:
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
# macOS
|
|
206
|
+
brew install tesseract
|
|
207
|
+
|
|
208
|
+
# Ubuntu/Debian
|
|
209
|
+
sudo apt-get install tesseract-ocr
|
|
210
|
+
```
|
|
211
|
+
|
|
176
212
|
## Authentication
|
|
177
213
|
|
|
178
214
|
WineBox requires authentication for all API endpoints (except `/health`).
|
|
@@ -1,34 +1,36 @@
|
|
|
1
|
-
winebox/__init__.py,sha256=
|
|
2
|
-
winebox/config.py,sha256=
|
|
1
|
+
winebox/__init__.py,sha256=41DDUIMoW3BxgT2x9al7rgVQXzMhaArZdUhlOKm_FOM,75
|
|
2
|
+
winebox/config.py,sha256=pfwXrKsI4KsXtA4lehEhAc9xfjBGu1OzdhiUq4mixto,2438
|
|
3
3
|
winebox/database.py,sha256=jTdf9mb48D8644THo6Mx6lHCKDFlAZ18P8Dvuk2eROI,1128
|
|
4
|
-
winebox/main.py,sha256=
|
|
4
|
+
winebox/main.py,sha256=RCB1oCxWbKXiMtQvfLabhGI_xvDjr_pGLEYeo2SSgeU,4104
|
|
5
5
|
winebox/cli/__init__.py,sha256=FOUoclklBXVfsfON3ohA8v_coJ9p5LSbVYvTucyXieg,29
|
|
6
6
|
winebox/cli/server.py,sha256=aN4znSvQRCZFZlQ1gcGag7OCFngwzUJdi084ZdNrnNI,8416
|
|
7
7
|
winebox/cli/user_admin.py,sha256=xwkd4-YN9uL6hX7-AuiDUNekG7x45l1lKor7AsOUxds,8549
|
|
8
8
|
winebox/models/__init__.py,sha256=2avQWHx53-5Z6jnzFlhh5u10Dw99w7en2nqCXEbwqRI,312
|
|
9
9
|
winebox/models/inventory.py,sha256=VLxpEIdYbD-oG9OfIGkHKDKm-cbSSo_aZGx66wRqR7Y,1324
|
|
10
10
|
winebox/models/transaction.py,sha256=9k1AAK0unYNseDubTaiFnGUGDVtuOqrjNUjIDukFDbc,1812
|
|
11
|
-
winebox/models/user.py,sha256=
|
|
11
|
+
winebox/models/user.py,sha256=Ke7DJsVtUzHlKQUiHEDHTi4Rm-tqCbrin4iZyt4SP9A,1734
|
|
12
12
|
winebox/models/wine.py,sha256=R40TTRunPcTG4_D8kEWhopM2k6ne_awET7ctY4fk-HE,2503
|
|
13
13
|
winebox/routers/__init__.py,sha256=TEjBLPCkG007ItXMONZ2TsjOxl_TvHis1v84IOkXm1A,167
|
|
14
|
-
winebox/routers/auth.py,sha256=
|
|
14
|
+
winebox/routers/auth.py,sha256=0F8tXJSo_oIYEY25dO2QZ-NtuF6-Fi4HnSLTCa6TWzs,5657
|
|
15
15
|
winebox/routers/cellar.py,sha256=QSyAnPQ2hiNaoojLk-5hJy95OnG8RMHOD0h5LV6bAWM,3404
|
|
16
16
|
winebox/routers/search.py,sha256=aIqwsjnB9e-D84VVcuye-01V_9WBUjFKzXNsX0gkRak,4971
|
|
17
17
|
winebox/routers/transactions.py,sha256=K0UDIJbVSTjV7NdI_CS0pvoTflH3Yp89DmneyFyl9ok,2055
|
|
18
|
-
winebox/routers/wines.py,sha256=
|
|
18
|
+
winebox/routers/wines.py,sha256=szr9h7W2Q-Xxn8LYd6rXtEOVWST7hthXGrZ84xSyLpY,16948
|
|
19
19
|
winebox/schemas/__init__.py,sha256=R4j1wdV1F-6kA45rHA8NUP2cqxBmLb2CMklo8tFjzGQ,357
|
|
20
20
|
winebox/schemas/transaction.py,sha256=GV_AZGeuFp_nOkg902UUhrHGwB1DxcQmGoG82m1UccI,899
|
|
21
21
|
winebox/schemas/wine.py,sha256=xHWDiV5bvEJuLPN2qWgOhqVMOTdlDSmfan5mtEy3Nvw,2301
|
|
22
22
|
winebox/services/__init__.py,sha256=rlAd5FBcqZJ7rsrFqR8MwTqGJVerlQHVUleEmoIaz1Y,277
|
|
23
23
|
winebox/services/auth.py,sha256=RDXP26hL3cGGxKcniXWMZ0sPUP6ew4LLMnfo4dv4P2E,3854
|
|
24
|
-
winebox/services/image_storage.py,sha256=
|
|
25
|
-
winebox/services/ocr.py,sha256=
|
|
24
|
+
winebox/services/image_storage.py,sha256=r1QzOFY0KzcJVdQV2fa4df9GtV3T7weQB17oEQZLTTo,6306
|
|
25
|
+
winebox/services/ocr.py,sha256=zFmQGj3a_jv21MBx8RfNkFIenAOnJ0O28JupSrsNC44,4925
|
|
26
|
+
winebox/services/vision.py,sha256=jINJ0RmmIkBhiuAyYAUCtmhxMWTz1pNcTSOUck-xjPg,10263
|
|
26
27
|
winebox/services/wine_parser.py,sha256=n5ldv2x2XsTfpK3acYDyMNyZHdJ_8WQU0keOql14MJ0,10456
|
|
27
|
-
winebox/static/
|
|
28
|
-
winebox/static/
|
|
29
|
-
winebox/static/
|
|
30
|
-
winebox
|
|
31
|
-
winebox-0.1.
|
|
32
|
-
winebox-0.1.
|
|
33
|
-
winebox-0.1.
|
|
34
|
-
winebox-0.1.
|
|
28
|
+
winebox/static/favicon.svg,sha256=jYFlQ-dEfhUoHQJepoSEMYQx0jxk8HyuX0wrd4OApzE,1061
|
|
29
|
+
winebox/static/index.html,sha256=LZKro_4jyebGXCPvP87TbBrKuVh_Nma7n9JRhUGwh2Q,27473
|
|
30
|
+
winebox/static/css/style.css,sha256=QEcmosNtf4_oH7JGYveQYRAzHdS5vh93fTVdyBA9YhM,29987
|
|
31
|
+
winebox/static/js/app.js,sha256=0TVu8WFHZhHt-jhFNFetAHCTn89xLc8exf99GjtFRD4,45251
|
|
32
|
+
winebox-0.1.4.dist-info/METADATA,sha256=uZFmCdBtirCXbMX8VcuW7xUOiWFxIYmcR_P2WsKHQOc,8138
|
|
33
|
+
winebox-0.1.4.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
34
|
+
winebox-0.1.4.dist-info/entry_points.txt,sha256=XY-GMf023m8Iof3rmokkITONECm8gCOVkTX0rCkze30,103
|
|
35
|
+
winebox-0.1.4.dist-info/licenses/LICENSE,sha256=3popbhCShFhWVwTLKeQE-JNDYuPOYfmCiz-LoQpizTA,1070
|
|
36
|
+
winebox-0.1.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|