-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.py
More file actions
63 lines (57 loc) · 1.71 KB
/
setup.py
File metadata and controls
63 lines (57 loc) · 1.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
"""
py2app build configuration for Shutter.app
Build:
python setup.py py2app # standalone .app bundle
python setup.py py2app -A # alias mode (fast, for development)
"""
from setuptools import setup
APP = ["app.py"]
DATA_FILES = [
("resources", [
"resources/menubar_icon.png",
"resources/menubar_icon@2x.png",
]),
]
OPTIONS = {
"argv_emulation": False,
"emulate_shell_environment": True,
"plist": {
"CFBundleName": "Shutter",
"CFBundleDisplayName": "Shutter",
"CFBundleIdentifier": "com.superlowburn.shutter",
"CFBundleVersion": "0.1.0",
"CFBundleShortVersionString": "0.1.0",
"LSUIElement": True,
"NSScreenCaptureUsageDescription": (
"Shutter needs Screen Recording permission to capture your "
"screen and provide AI tools with sanitized screen context. "
"Screenshots are processed locally and never leave your machine."
),
"LSMinimumSystemVersion": "13.0",
"NSHighResolutionCapable": True,
},
"packages": [
"rumps",
"mlx", "mlx_vlm",
"torch", "torchvision",
"fastapi", "uvicorn", "fastmcp",
"psutil",
"PIL",
"transformers", "huggingface_hub", "tokenizers", "safetensors",
"starlette", "anyio", "httptools",
"mcp",
],
"includes": [
"core", "api", "mcp_server", "redact",
"Quartz", "Vision", "Foundation", "CoreML",
],
"resources": ["core.py", "api.py", "mcp_server.py", "redact.py"],
"iconfile": "resources/icon.icns",
}
setup(
app=APP,
name="Shutter",
data_files=DATA_FILES,
options={"py2app": OPTIONS},
setup_requires=["py2app"],
)