Skip to content

Commit 122d482

Browse files
committed
giving up on the impossible and adjusting to have multiple targets
1 parent 6947050 commit 122d482

File tree

1 file changed

+25
-51
lines changed

1 file changed

+25
-51
lines changed

setup.py

Lines changed: 25 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,8 @@
1-
# Force lite installation if environment variable is set
2-
import os
3-
4-
import sys
5-
6-
if os.environ.get("NPCSH_LITE_INSTALL", "").lower() == "true":
7-
8-
sys.argv.append("--config-settings")
9-
sys.argv.append("install.lite=true")
10-
111
from setuptools import setup, find_packages
122
import site
133
import platform
144
from pathlib import Path
5+
import os
156

167

178
def package_files(directory):
@@ -58,47 +49,35 @@ def get_setup_message():
5849
To configure your API keys and preferences.
5950
==============================================
6051
"""
61-
return "" # Return empty string for non-Windows platforms
52+
return ""
6253

6354

64-
# Define core (lite) requirements
65-
core_requirements = [
66-
"redis",
67-
"flask_sse",
68-
"anthropic",
69-
"beautifulsoup4",
70-
"google-generativeai",
71-
"google-genai",
72-
"duckduckgo-search",
73-
"openai",
55+
# Base requirements (no LLM packages)
56+
base_requirements = [
7457
"jinja2",
58+
"scipy",
59+
"numpy",
7560
"requests",
7661
"markdown",
7762
"PyYAML",
78-
"langchain",
79-
"langchain_community",
8063
"pygments",
8164
"termcolor",
8265
"colorama",
8366
"python-dotenv",
84-
"pytest",
85-
"googlesearch-python",
67+
"pandas",
68+
"beautifulsoup4",
69+
"duckduckgo-search",
8670
"flask",
8771
"flask_cors",
88-
"librosa",
89-
"pandas",
90-
"matplotlib",
91-
"IPython",
92-
"pyautogui",
93-
"nltk",
94-
"thefuzz",
95-
"pypdf",
96-
"PyMuPDF",
97-
"screeninfo",
72+
"redis",
73+
"flask_sse",
9874
]
9975

100-
# Define additional requirements for full installation
101-
extra_requirements = [
76+
# API integration requirements
77+
api_requirements = ["anthropic", "openai", "google-generativeai", "google-genai"]
78+
79+
# Local ML/AI requirements
80+
local_requirements = [
10281
"sentence_transformers",
10382
"opencv-python",
10483
"ollama",
@@ -107,8 +86,8 @@ def get_setup_message():
10786
"diffusers",
10887
]
10988

110-
# Define audio requirements
111-
audio_requirements = [
89+
# Voice/Audio requirements
90+
voice_requirements = [
11291
"openai-whisper",
11392
"pyaudio",
11493
"gtts",
@@ -118,21 +97,17 @@ def get_setup_message():
11897

11998
extra_files = package_files("npcsh/npc_team/")
12099

121-
122-
def get_requirements():
123-
# Check if lite installation was requested via sys.argv
124-
if any("install.lite=true" in arg for arg in sys.argv):
125-
return core_requirements
126-
elif os.environ.get("NPCSH_AUDIO_INSTALL", "").lower() == "true":
127-
return core_requirements + extra_requirements + audio_requirements
128-
return core_requirements + extra_requirements
129-
130-
131100
setup(
132101
name="npcsh",
133102
version="0.3.27.1",
134103
packages=find_packages(exclude=["tests*"]),
135-
install_requires=get_requirements(),
104+
install_requires=base_requirements, # Only install base requirements by default
105+
extras_require={
106+
"lite": api_requirements, # Just API integrations
107+
"local": local_requirements, # Local AI/ML features
108+
"whisper": voice_requirements, # Voice/Audio features
109+
"all": api_requirements + local_requirements + voice_requirements, # Everything
110+
},
136111
entry_points={
137112
"console_scripts": [
138113
"npcsh=npcsh.shell:main",
@@ -154,6 +129,5 @@ def get_requirements():
154129
python_requires=">=3.10",
155130
)
156131

157-
# Print setup message only on Windows
158132
if platform.system() == "Windows":
159133
print(get_setup_message())

0 commit comments

Comments
 (0)