inside-cli 0.1.0__tar.gz
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.
- inside_cli-0.1.0/PKG-INFO +71 -0
- inside_cli-0.1.0/README.md +15 -0
- inside_cli-0.1.0/animations_old/colour.py +63 -0
- inside_cli-0.1.0/animations_old/ooh_yeahh.py +139 -0
- inside_cli-0.1.0/animations_old/test.py +220 -0
- inside_cli-0.1.0/inside_cli.egg-info/PKG-INFO +71 -0
- inside_cli-0.1.0/inside_cli.egg-info/SOURCES.txt +11 -0
- inside_cli-0.1.0/inside_cli.egg-info/dependency_links.txt +1 -0
- inside_cli-0.1.0/inside_cli.egg-info/entry_points.txt +2 -0
- inside_cli-0.1.0/inside_cli.egg-info/requires.txt +66 -0
- inside_cli-0.1.0/inside_cli.egg-info/top_level.txt +4 -0
- inside_cli-0.1.0/pyproject.toml +90 -0
- inside_cli-0.1.0/setup.cfg +4 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: inside-cli
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Your project description
|
|
5
|
+
Requires-Python: >=3.8
|
|
6
|
+
Requires-Dist: annotated-types==0.7.0
|
|
7
|
+
Requires-Dist: anyio==4.12.1
|
|
8
|
+
Requires-Dist: certifi==2025.7.14
|
|
9
|
+
Requires-Dist: charset-normalizer==3.4.2
|
|
10
|
+
Requires-Dist: colorama==0.4.6
|
|
11
|
+
Requires-Dist: contourpy==1.3.3
|
|
12
|
+
Requires-Dist: customtkinter==5.2.2
|
|
13
|
+
Requires-Dist: cycler==0.12.1
|
|
14
|
+
Requires-Dist: darkdetect==0.8.0
|
|
15
|
+
Requires-Dist: filelock==3.18.0
|
|
16
|
+
Requires-Dist: fonttools==4.59.0
|
|
17
|
+
Requires-Dist: fsspec==2025.7.0
|
|
18
|
+
Requires-Dist: h11==0.16.0
|
|
19
|
+
Requires-Dist: httpcore==1.0.9
|
|
20
|
+
Requires-Dist: httpx==0.28.1
|
|
21
|
+
Requires-Dist: huggingface-hub==0.34.3
|
|
22
|
+
Requires-Dist: idna==3.10
|
|
23
|
+
Requires-Dist: Jinja2==3.1.6
|
|
24
|
+
Requires-Dist: joblib==1.5.1
|
|
25
|
+
Requires-Dist: kiwisolver==1.4.8
|
|
26
|
+
Requires-Dist: markdown-it-py==3.0.0
|
|
27
|
+
Requires-Dist: MarkupSafe==3.0.2
|
|
28
|
+
Requires-Dist: matplotlib==3.10.3
|
|
29
|
+
Requires-Dist: mdurl==0.1.2
|
|
30
|
+
Requires-Dist: mpmath==1.3.0
|
|
31
|
+
Requires-Dist: networkx==3.5
|
|
32
|
+
Requires-Dist: numpy==2.3.2
|
|
33
|
+
Requires-Dist: ollama==0.6.1
|
|
34
|
+
Requires-Dist: packaging==25.0
|
|
35
|
+
Requires-Dist: pandas==2.3.1
|
|
36
|
+
Requires-Dist: patsy==1.0.1
|
|
37
|
+
Requires-Dist: pillow==11.3.0
|
|
38
|
+
Requires-Dist: psutil==7.0.0
|
|
39
|
+
Requires-Dist: pydantic==2.12.5
|
|
40
|
+
Requires-Dist: pydantic_core==2.41.5
|
|
41
|
+
Requires-Dist: Pygments==2.19.2
|
|
42
|
+
Requires-Dist: pyparsing==3.2.3
|
|
43
|
+
Requires-Dist: pyqtgraph==0.13.7
|
|
44
|
+
Requires-Dist: pyreadline3==3.5.4
|
|
45
|
+
Requires-Dist: PySide6==6.10.0
|
|
46
|
+
Requires-Dist: PySide6_Addons==6.10.0
|
|
47
|
+
Requires-Dist: PySide6_Essentials==6.10.0
|
|
48
|
+
Requires-Dist: python-dateutil==2.9.0.post0
|
|
49
|
+
Requires-Dist: pytz==2025.2
|
|
50
|
+
Requires-Dist: PyYAML==6.0.2
|
|
51
|
+
Requires-Dist: regex==2025.7.34
|
|
52
|
+
Requires-Dist: requests==2.32.4
|
|
53
|
+
Requires-Dist: rich==13.7.0
|
|
54
|
+
Requires-Dist: safetensors==0.5.3
|
|
55
|
+
Requires-Dist: scikit-learn==1.7.1
|
|
56
|
+
Requires-Dist: scipy==1.16.1
|
|
57
|
+
Requires-Dist: sentence-transformers==5.0.0
|
|
58
|
+
Requires-Dist: setuptools==80.9.0
|
|
59
|
+
Requires-Dist: shiboken6==6.10.0
|
|
60
|
+
Requires-Dist: six==1.17.0
|
|
61
|
+
Requires-Dist: statsmodels==0.14.5
|
|
62
|
+
Requires-Dist: sympy==1.14.0
|
|
63
|
+
Requires-Dist: threadpoolctl==3.6.0
|
|
64
|
+
Requires-Dist: tokenizers==0.21.4
|
|
65
|
+
Requires-Dist: torch==2.4.1
|
|
66
|
+
Requires-Dist: tqdm==4.67.1
|
|
67
|
+
Requires-Dist: transformers==4.54.1
|
|
68
|
+
Requires-Dist: typing-inspection==0.4.2
|
|
69
|
+
Requires-Dist: typing_extensions==4.14.1
|
|
70
|
+
Requires-Dist: tzdata==2025.2
|
|
71
|
+
Requires-Dist: urllib3==2.5.0
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Critique-CLI
|
|
2
|
+
- AI-Powered Shell with Natural Language Command Parsing
|
|
3
|
+
Description: Enhance your Codecrafters shell to interpret natural language commands using a lightweight NLP model, allowing users to type commands like “show me the current directory” instead of pwd. Include a customtkinter GUI to display command outputs and suggestions.
|
|
4
|
+
- AI-Powered Log Analyzer CLI
|
|
5
|
+
Description: A CLI that analyzes log files (e.g., server logs) using ML to detect anomalies, predict failures, and summarize events. The GUI displays anomaly alerts and visualized trends.
|
|
6
|
+
- Conversational CLI Assistant
|
|
7
|
+
Description: Build a CLI that acts as an AI assistant, answering questions and executing shell commands based on user prompts. Include a GUI for chat-like interaction and command output
|
|
8
|
+
- Predictive System Monitoring CLI
|
|
9
|
+
Description: Create a CLI that monitors system resources (CPU, RAM, disk) and predicts usage trends using time-series forecasting. Include a GUI to display real-time metrics and predictions.
|
|
10
|
+
- Integrate Gemini CLI
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
- To create vene -> python -m venv (venv_name)
|
|
14
|
+
- To push all the libraries in requirements.txt -> pip freeze > requirements.txt
|
|
15
|
+
- To install all the libraries from requirement.txt -> pip install -r requirements.txt
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
|
|
3
|
+
# Your original pairs
|
|
4
|
+
COLOR_PAIRS = [
|
|
5
|
+
("\033[38;5;218m", "\033[38;5;230m"),
|
|
6
|
+
("\033[38;5;238m", "\033[38;5;210m"),
|
|
7
|
+
("\033[38;5;117m", "\033[38;5;24m"),
|
|
8
|
+
("\033[38;5;155m", "\033[38;5;22m"),
|
|
9
|
+
("\033[38;5;208m", "\033[38;5;52m"),
|
|
10
|
+
("\033[38;5;141m", "\033[38;5;54m"),
|
|
11
|
+
("\033[38;5;200m", "\033[38;5;89m"),
|
|
12
|
+
("\033[38;5;51m", "\033[38;5;23m"),
|
|
13
|
+
("\033[38;5;226m", "\033[38;5;94m"),
|
|
14
|
+
("\033[38;5;220m" ,"\033[38;5;160m")
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
char_i = [" ██╗", " ██║", " ██║", " ██║", " ██║", " ╚═╝"]
|
|
18
|
+
RESET = "\033[0m"
|
|
19
|
+
|
|
20
|
+
def print_side_by_side():
|
|
21
|
+
# Optional: Print headers side-by-side to align with the blocks
|
|
22
|
+
for i in range(len(COLOR_PAIRS)):
|
|
23
|
+
# Format " V1 ", " V2 ", etc., to match the width
|
|
24
|
+
sys.stdout.write(f"V{i + 1:<4} ")
|
|
25
|
+
sys.stdout.write("\n")
|
|
26
|
+
|
|
27
|
+
# Outer loop: Iterate through each line (row) of the ASCII character
|
|
28
|
+
for line in char_i:
|
|
29
|
+
|
|
30
|
+
# Inner loop: For this specific row, draw it in every color pair
|
|
31
|
+
for text_color, shadow_color in COLOR_PAIRS:
|
|
32
|
+
styled = ""
|
|
33
|
+
for char in line:
|
|
34
|
+
# If the character is a line/corner, use shadow color
|
|
35
|
+
if char in "═╝║╗╔╚":
|
|
36
|
+
styled += f"{shadow_color}{char}{text_color}"
|
|
37
|
+
else:
|
|
38
|
+
# Otherwise, it stays in the default text_color (for the █ blocks)
|
|
39
|
+
styled += char
|
|
40
|
+
|
|
41
|
+
# Write the styled line, keeping it on the same console line, plus spacing
|
|
42
|
+
sys.stdout.write(f"{text_color}{styled}{RESET} ")
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
for shadow_color, text_color in COLOR_PAIRS:
|
|
46
|
+
styled = ""
|
|
47
|
+
for char in line:
|
|
48
|
+
# If the character is a line/corner, use shadow color
|
|
49
|
+
if char in "═╝║╗╔╚":
|
|
50
|
+
styled += f"{shadow_color}{char}{text_color}"
|
|
51
|
+
else:
|
|
52
|
+
# Otherwise, it stays in the default text_color (for the █ blocks)
|
|
53
|
+
styled += char
|
|
54
|
+
|
|
55
|
+
# Write the styled line, keeping it on the same console line, plus spacing
|
|
56
|
+
sys.stdout.write(f"{text_color}{styled}{RESET} ")
|
|
57
|
+
|
|
58
|
+
# After printing the current row for all color variants, drop down to the next line
|
|
59
|
+
sys.stdout.write("\n")
|
|
60
|
+
sys.stdout.write("\n")
|
|
61
|
+
|
|
62
|
+
if __name__ == "__main__":
|
|
63
|
+
print_side_by_side()
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import time
|
|
2
|
+
import sys
|
|
3
|
+
|
|
4
|
+
def animate_left_aligned_sequence():
|
|
5
|
+
# ==========================================
|
|
6
|
+
# COLOR PALETTE CONFIGURATION
|
|
7
|
+
# ==========================================
|
|
8
|
+
green = "\033[1m\033[38;5;46m" # Intro Text Color
|
|
9
|
+
face_color = "\033[1m\033[38;5;220m" # "Inside CLI" Royal Gold
|
|
10
|
+
shadow_color = "\033[1m\033[38;5;57m" # "Inside CLI" Deep Purple
|
|
11
|
+
|
|
12
|
+
reset = "\033[0m"
|
|
13
|
+
shadow_chars = "╗║═╝╔╚"
|
|
14
|
+
|
|
15
|
+
# ==========================================
|
|
16
|
+
# 6-LINE ASCII ART DICTIONARIES
|
|
17
|
+
# ==========================================
|
|
18
|
+
art_hello = [
|
|
19
|
+
r" ██╗ ██╗███████╗██╗ ██╗ ██████╗ ",
|
|
20
|
+
r" ██║ ██║██╔════╝██║ ██║ ██╔═══██╗",
|
|
21
|
+
r" ███████║█████╗ ██║ ██║ ██║ ██║",
|
|
22
|
+
r" ██╔══██║██╔══╝ ██║ ██║ ██║ ██║",
|
|
23
|
+
r" ██║ ██║███████╗███████╗███████╗╚██████╔╝",
|
|
24
|
+
r" ╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝ ╚═════╝ "
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
art_amp = [
|
|
28
|
+
r" ███╗ ",
|
|
29
|
+
r" ██╔═██╗ ",
|
|
30
|
+
r" ╚███╔██╗",
|
|
31
|
+
r" ██╔═╝██║",
|
|
32
|
+
r" ╚█████╔╝",
|
|
33
|
+
r" ╚════╝ "
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
art_welcome = [
|
|
37
|
+
r" ██╗ ██╗███████╗██╗ ██████╗ ██████╗ ███╗ ███╗███████╗",
|
|
38
|
+
r" ██║ ██║██╔════╝██║ ██╔════╝██╔═══██╗████╗ ████║██╔════╝",
|
|
39
|
+
r" ██║ █╗ ██║█████╗ ██║ ██║ ██║ ██║██╔████╔██║█████╗ ",
|
|
40
|
+
r" ██║███╗██║██╔══╝ ██║ ██║ ██║ ██║██║╚██╔╝██║██╔══╝ ",
|
|
41
|
+
r" ╚███╔███╔╝███████╗███████╗╚██████╗╚██████╔╝██║ ╚═╝ ██║███████╗",
|
|
42
|
+
r" ╚══╝╚══╝ ╚══════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝"
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
art_to = [
|
|
46
|
+
r" ████████╗ ██████╗ ",
|
|
47
|
+
r" ╚══██╔══╝██╔═══██╗",
|
|
48
|
+
r" ██║ ██║ ██║",
|
|
49
|
+
r" ██║ ██║ ██║",
|
|
50
|
+
r" ██║ ╚██████╔╝",
|
|
51
|
+
r" ╚═╝ ╚═════╝ "
|
|
52
|
+
]
|
|
53
|
+
|
|
54
|
+
art_inside_cli = [
|
|
55
|
+
r" ██╗███╗ ██╗███████╗██╗██████╗ ███████╗ ██████╗██╗ ██╗",
|
|
56
|
+
r" ██║████╗ ██║██╔════╝██║██╔══██╗██╔════╝ ██╔════╝██║ ██║",
|
|
57
|
+
r" ██║██╔██╗ ██║███████╗██║██║ ██║█████╗ ██║ ██║ ██║",
|
|
58
|
+
r" ██║██║╚██╗██║╚════██║██║██║ ██║██╔══╝ ██║ ██║ ██║",
|
|
59
|
+
r" ██║██║ ╚████║███████║██║██████╔╝███████╗ ╚██████╗███████╗██║",
|
|
60
|
+
r" ╚═╝╚═╝ ╚═══╝╚══════╝╚═╝╚═════╝ ╚══════╝ ╚═════╝╚══════╝╚═╝"
|
|
61
|
+
]
|
|
62
|
+
|
|
63
|
+
# ==========================================
|
|
64
|
+
# ANIMATION HELPERS (Left-Aligned)
|
|
65
|
+
# ==========================================
|
|
66
|
+
def swipe_from_top(art_lines, text_color):
|
|
67
|
+
# 1. Slide down reveal (flush left)
|
|
68
|
+
for frame in range(1, 7):
|
|
69
|
+
for i in range(frame):
|
|
70
|
+
sys.stdout.write(text_color + art_lines[i] + reset + "\033[K\n")
|
|
71
|
+
# Print empty lines for the rest of the 6-line block
|
|
72
|
+
for i in range(6 - frame):
|
|
73
|
+
sys.stdout.write("\033[K\n")
|
|
74
|
+
|
|
75
|
+
sys.stdout.flush()
|
|
76
|
+
time.sleep(0.03) # Reveal speed
|
|
77
|
+
sys.stdout.write("\033[6A") # Move cursor up 6 lines
|
|
78
|
+
|
|
79
|
+
# 2. Hold the word on screen
|
|
80
|
+
for i in range(6):
|
|
81
|
+
sys.stdout.write(text_color + art_lines[i] + reset + "\033[K\n")
|
|
82
|
+
sys.stdout.flush()
|
|
83
|
+
time.sleep(0.4) # How long the word stays on screen
|
|
84
|
+
sys.stdout.write("\033[6A")
|
|
85
|
+
|
|
86
|
+
# 3. Clear the block before the next word
|
|
87
|
+
for i in range(6):
|
|
88
|
+
sys.stdout.write("\033[K\n")
|
|
89
|
+
sys.stdout.write("\033[6A")
|
|
90
|
+
|
|
91
|
+
def swipe_from_left(art_lines):
|
|
92
|
+
banner_width = max(len(line) for line in art_lines)
|
|
93
|
+
lines = [line.ljust(banner_width) for line in art_lines]
|
|
94
|
+
|
|
95
|
+
# We only need to animate for the width of the banner now
|
|
96
|
+
total_frames = banner_width
|
|
97
|
+
|
|
98
|
+
for frame in range(1, total_frames + 1):
|
|
99
|
+
for line in lines:
|
|
100
|
+
# Slicing from the end makes it look like it's pushing out of the left wall
|
|
101
|
+
visible_text = line[-frame:]
|
|
102
|
+
|
|
103
|
+
# Apply the 2-color palette safely after string slicing
|
|
104
|
+
rendered_line = ""
|
|
105
|
+
for char in visible_text:
|
|
106
|
+
if char == '█':
|
|
107
|
+
rendered_line += face_color + char
|
|
108
|
+
elif char in shadow_chars:
|
|
109
|
+
rendered_line += shadow_color + char
|
|
110
|
+
else:
|
|
111
|
+
rendered_line += reset + char
|
|
112
|
+
|
|
113
|
+
sys.stdout.write(rendered_line + reset + "\033[K\n")
|
|
114
|
+
|
|
115
|
+
sys.stdout.flush()
|
|
116
|
+
if frame < total_frames:
|
|
117
|
+
sys.stdout.write("\033[6A")
|
|
118
|
+
time.sleep(0.008) # Slide-in speed
|
|
119
|
+
|
|
120
|
+
# ==========================================
|
|
121
|
+
# MAIN EXECUTION
|
|
122
|
+
# ==========================================
|
|
123
|
+
sys.stdout.write("\033[?25l\n") # Hide cursor & add padding
|
|
124
|
+
|
|
125
|
+
try:
|
|
126
|
+
# Phase 1: The Green Sequence
|
|
127
|
+
intro_words = [art_hello, art_amp, art_welcome, art_to]
|
|
128
|
+
for word in intro_words:
|
|
129
|
+
swipe_from_top(word, green)
|
|
130
|
+
|
|
131
|
+
# Phase 2: The Logo Slide
|
|
132
|
+
swipe_from_left(art_inside_cli)
|
|
133
|
+
|
|
134
|
+
finally:
|
|
135
|
+
sys.stdout.write("\033[?25h\n") # Restore cursor safely
|
|
136
|
+
sys.stdout.flush()
|
|
137
|
+
|
|
138
|
+
if __name__ == "__main__":
|
|
139
|
+
animate_left_aligned_sequence()
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import time
|
|
2
|
+
import sys
|
|
3
|
+
import shutil
|
|
4
|
+
|
|
5
|
+
def animate_terminal_slide():
|
|
6
|
+
ascii_art = r"""
|
|
7
|
+
██╗███╗ ██╗███████╗██╗██████╗ ███████╗ ██████╗██╗ ██╗
|
|
8
|
+
██║████╗ ██║██╔════╝██║██╔══██╗██╔════╝ ██╔════╝██║ ██║
|
|
9
|
+
██║██╔██╗ ██║███████╗██║██║ ██║█████╗ ██║ ██║ ██║
|
|
10
|
+
██║██║╚██╗██║╚════██║██║██║ ██║██╔══╝ ██║ ██║ ██║
|
|
11
|
+
██║██║ ╚████║███████║██║██████╔╝███████╗ ╚██████╗███████╗██║
|
|
12
|
+
╚═╝╚═╝ ╚═══╝╚══════╝╚═╝╚═════╝ ╚══════╝ ╚═════╝╚══════╝╚═╝
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
purple = "\033[38;5;218m"
|
|
16
|
+
gold = "\033[38;5;230m"
|
|
17
|
+
# gold = "\033[38;5;238m"
|
|
18
|
+
# purple = "\033[38;5;210m"
|
|
19
|
+
reset = "\033[0m"
|
|
20
|
+
shadow_chars = "╗║═╝╔╚"
|
|
21
|
+
|
|
22
|
+
# Clean up the raw string and split into lines
|
|
23
|
+
raw_lines = ascii_art.strip('\n').split('\n')
|
|
24
|
+
num_lines = len(raw_lines)
|
|
25
|
+
|
|
26
|
+
# Find the max width of the banner and pad all lines evenly
|
|
27
|
+
banner_width = max(len(line) for line in raw_lines)
|
|
28
|
+
lines = [line.ljust(banner_width) for line in raw_lines]
|
|
29
|
+
|
|
30
|
+
# Dynamically get the user's terminal width
|
|
31
|
+
term_width = shutil.get_terminal_size().columns
|
|
32
|
+
|
|
33
|
+
# Calculate how far right we need to slide to perfectly center the banner
|
|
34
|
+
target_indent = max(0, (term_width - banner_width) // 2)
|
|
35
|
+
|
|
36
|
+
# Total frames = Sliding out from the wall + Sliding to the center
|
|
37
|
+
total_frames = banner_width + target_indent
|
|
38
|
+
|
|
39
|
+
# Hide cursor to prevent flickering
|
|
40
|
+
sys.stdout.write("\033[?25l\n")
|
|
41
|
+
|
|
42
|
+
try:
|
|
43
|
+
for frame in range(1, total_frames + 1):
|
|
44
|
+
for line in lines:
|
|
45
|
+
# Calculate the visible text for the current frame
|
|
46
|
+
if frame <= banner_width:
|
|
47
|
+
# Slicing the string to make it slide out from the left edge
|
|
48
|
+
visible_text = line[-frame:]
|
|
49
|
+
else:
|
|
50
|
+
# Banner is fully revealed, now add spaces to push it to the center
|
|
51
|
+
indent_spaces = frame - banner_width
|
|
52
|
+
visible_text = (" " * indent_spaces) + line
|
|
53
|
+
|
|
54
|
+
# Apply colors AFTER slicing so we don't accidentally cut ANSI codes in half
|
|
55
|
+
rendered_line = ""
|
|
56
|
+
for char in visible_text:
|
|
57
|
+
if char == '█':
|
|
58
|
+
rendered_line += gold + char
|
|
59
|
+
elif char in shadow_chars:
|
|
60
|
+
rendered_line += purple + char
|
|
61
|
+
else:
|
|
62
|
+
rendered_line += reset + char
|
|
63
|
+
|
|
64
|
+
# Print the line and clear to the end of the line (\033[K) to prevent ghosting
|
|
65
|
+
sys.stdout.write(rendered_line + reset + "\033[K\n")
|
|
66
|
+
|
|
67
|
+
sys.stdout.flush()
|
|
68
|
+
|
|
69
|
+
# If not the last frame, move cursor back up to draw the next frame
|
|
70
|
+
if frame < total_frames:
|
|
71
|
+
sys.stdout.write(f"\033[{num_lines}A")
|
|
72
|
+
time.sleep(0.01) # Speed of the slide (0.01 is a smooth, fast glide)
|
|
73
|
+
|
|
74
|
+
finally:
|
|
75
|
+
# Restore the cursor!
|
|
76
|
+
sys.stdout.write("\033[?25h\n")
|
|
77
|
+
sys.stdout.flush()
|
|
78
|
+
|
|
79
|
+
# def animate_neon_power_up():
|
|
80
|
+
# ascii_art = r"""
|
|
81
|
+
# ██╗███╗ ██╗███████╗██╗██████╗ ███████╗ ██████╗██╗ ██╗
|
|
82
|
+
# ██║████╗ ██║██╔════╝██║██╔══██╗██╔════╝ ██╔════╝██║ ██║
|
|
83
|
+
# ██║██╔██╗ ██║███████╗██║██║ ██║█████╗ ██║ ██║ ██║
|
|
84
|
+
# ██║██║╚██╗██║╚════██║██║██║ ██║██╔══╝ ██║ ██║ ██║
|
|
85
|
+
# ██║██║ ╚████║███████║██║██████╔╝███████╗ ╚██████╗███████╗██║
|
|
86
|
+
# ╚═╝╚═╝ ╚═══╝╚══════╝╚═╝╚═════╝ ╚══════╝ ╚═════╝╚══════╝╚═╝
|
|
87
|
+
# """
|
|
88
|
+
|
|
89
|
+
# shadow_chars = "╗║═╝╔╚"
|
|
90
|
+
# reset = "\033[0m"
|
|
91
|
+
|
|
92
|
+
# # Define the color gradient frames from "off" to "fully ignited"
|
|
93
|
+
# # Each tuple is (Face Color, Shadow Color)
|
|
94
|
+
# animation_frames = [
|
|
95
|
+
# ("\033[38;5;235m", "\033[38;5;235m"), # Frame 1: Very dark gray (Almost off)
|
|
96
|
+
# ("\033[38;5;238m", "\033[38;5;237m"), # Frame 2: Dark gray (Warming up)
|
|
97
|
+
# ("\033[38;5;58m", "\033[38;5;17m"), # Frame 3: Dim brown/gold & Dark midnight blue
|
|
98
|
+
# ("\033[38;5;136m", "\033[38;5;54m"), # Frame 4: Medium gold & Dim purple
|
|
99
|
+
# ("\033[38;5;178m", "\033[38;5;55m"), # Frame 5: Brighter yellow & Medium purple
|
|
100
|
+
# ("\033[1m\033[38;5;220m", "\033[1m\033[38;5;57m") # Frame 6: FULL POWER (Bold Royal Gold & Purple)
|
|
101
|
+
# ]
|
|
102
|
+
|
|
103
|
+
# # Clean up the raw string and calculate lines for cursor math
|
|
104
|
+
# lines = ascii_art.strip('\n').split('\n')
|
|
105
|
+
# num_lines = len(lines)
|
|
106
|
+
|
|
107
|
+
# # Hide the terminal cursor for a clean animation
|
|
108
|
+
# sys.stdout.write("\033[?25l\n")
|
|
109
|
+
|
|
110
|
+
# try:
|
|
111
|
+
# # Loop through each color gradient frame
|
|
112
|
+
# for i, (gold_grad, purple_grad) in enumerate(animation_frames):
|
|
113
|
+
# for line in lines:
|
|
114
|
+
# rendered_line = ""
|
|
115
|
+
# for char in line:
|
|
116
|
+
# if char == '█':
|
|
117
|
+
# rendered_line += gold_grad + char
|
|
118
|
+
# elif char in shadow_chars:
|
|
119
|
+
# rendered_line += purple_grad + char
|
|
120
|
+
# else:
|
|
121
|
+
# rendered_line += reset + char
|
|
122
|
+
# sys.stdout.write(rendered_line + reset + "\n")
|
|
123
|
+
|
|
124
|
+
# sys.stdout.flush()
|
|
125
|
+
|
|
126
|
+
# # If it's not the final frame, pause and move the cursor back up to overwrite
|
|
127
|
+
# if i < len(animation_frames) - 1:
|
|
128
|
+
# time.sleep(0.12) # Delay between brightness levels (adjust for speed)
|
|
129
|
+
# sys.stdout.write(f"\033[{num_lines}A")
|
|
130
|
+
|
|
131
|
+
# finally:
|
|
132
|
+
# # ALWAYS ensure the cursor is restored, even if the user hits Ctrl+C mid-animation
|
|
133
|
+
# sys.stdout.write("\033[?25h\n")
|
|
134
|
+
# sys.stdout.flush()
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
# import time
|
|
138
|
+
# import sys
|
|
139
|
+
# import shutil
|
|
140
|
+
|
|
141
|
+
# def animate_terminal_slide11():
|
|
142
|
+
# ascii_art = r"""
|
|
143
|
+
# █████ ███ █████ █████████ █████ █████
|
|
144
|
+
# ░░███ ░░░ ░░███ ███░░░░░███░░███ ░░███
|
|
145
|
+
# ░███ ████████ █████ ████ ███████ ██████ ███ ░░░ ░███ ░███
|
|
146
|
+
# ░███ ░░███░░███ ███░░ ░░███ ███░░███ ███░░███ ░███ ░███ ░███
|
|
147
|
+
# ░███ ░███ ░███ ░░█████ ░███ ░███ ░███ ░███████ ░███ ░███ ░███
|
|
148
|
+
# ░███ ░███ ░███ ░░░░███ ░███ ░███ ░███ ░███░░░ ░░███ ███ ░███ █ ░███
|
|
149
|
+
# █████ ████ █████ ██████ █████░░████████░░██████ ░░█████████ ███████████ █████
|
|
150
|
+
# ░░░░░ ░░░░ ░░░░░ ░░░░░░ ░░░░░ ░░░░░░░░ ░░░░░░ ░░░░░░░░░ ░░░░░░░░░░░ ░░░░░
|
|
151
|
+
# """
|
|
152
|
+
|
|
153
|
+
# gold = "\033[38;5;220m"
|
|
154
|
+
# purple = "\033[38;5;160m"
|
|
155
|
+
# reset = "\033[0m"
|
|
156
|
+
# shadow_chars = "░"
|
|
157
|
+
|
|
158
|
+
# # Clean up the raw string and split into lines
|
|
159
|
+
# raw_lines = ascii_art.strip('\n').split('\n')
|
|
160
|
+
# num_lines = len(raw_lines)
|
|
161
|
+
|
|
162
|
+
# # Find the max width of the banner and pad all lines evenly
|
|
163
|
+
# banner_width = max(len(line) for line in raw_lines)
|
|
164
|
+
# lines = [line.ljust(banner_width) for line in raw_lines]
|
|
165
|
+
|
|
166
|
+
# # Dynamically get the user's terminal width
|
|
167
|
+
# term_width = shutil.get_terminal_size().columns
|
|
168
|
+
|
|
169
|
+
# # Calculate how far right we need to slide to perfectly center the banner
|
|
170
|
+
# target_indent = max(0, (term_width - banner_width) // 2)
|
|
171
|
+
|
|
172
|
+
# # Total frames = Sliding out from the wall + Sliding to the center
|
|
173
|
+
# total_frames = banner_width + target_indent
|
|
174
|
+
|
|
175
|
+
# # Hide cursor to prevent flickering
|
|
176
|
+
# sys.stdout.write("\033[?25l\n")
|
|
177
|
+
|
|
178
|
+
# try:
|
|
179
|
+
# for frame in range(1, total_frames + 1):
|
|
180
|
+
# for line in lines:
|
|
181
|
+
# # Calculate the visible text for the current frame
|
|
182
|
+
# if frame <= banner_width:
|
|
183
|
+
# # Slicing the string to make it slide out from the left edge
|
|
184
|
+
# visible_text = line[-frame:]
|
|
185
|
+
# else:
|
|
186
|
+
# # Banner is fully revealed, now add spaces to push it to the center
|
|
187
|
+
# indent_spaces = frame - banner_width
|
|
188
|
+
# visible_text = (" " * indent_spaces) + line
|
|
189
|
+
|
|
190
|
+
# # Apply colors AFTER slicing so we don't accidentally cut ANSI codes in half
|
|
191
|
+
# rendered_line = ""
|
|
192
|
+
# for char in visible_text:
|
|
193
|
+
# if char == '█':
|
|
194
|
+
# rendered_line += gold + char
|
|
195
|
+
# elif char in shadow_chars:
|
|
196
|
+
# rendered_line += purple + char
|
|
197
|
+
# else:
|
|
198
|
+
# rendered_line += reset + char
|
|
199
|
+
|
|
200
|
+
# # Print the line and clear to the end of the line (\033[K) to prevent ghosting
|
|
201
|
+
# sys.stdout.write(rendered_line + reset + "\033[K\n")
|
|
202
|
+
|
|
203
|
+
# sys.stdout.flush()
|
|
204
|
+
|
|
205
|
+
# # If not the last frame, move cursor back up to draw the next frame
|
|
206
|
+
# if frame < total_frames:
|
|
207
|
+
# sys.stdout.write(f"\033[{num_lines}A")
|
|
208
|
+
# time.sleep(0.01) # Speed of the slide (0.01 is a smooth, fast glide)
|
|
209
|
+
|
|
210
|
+
# finally:
|
|
211
|
+
# # Restore the cursor!
|
|
212
|
+
# sys.stdout.write("\033[?25h\n")
|
|
213
|
+
# sys.stdout.flush()
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
if __name__ == "__main__":
|
|
218
|
+
animate_terminal_slide()
|
|
219
|
+
animate_neon_power_up()
|
|
220
|
+
animate_terminal_slide11()
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: inside-cli
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Your project description
|
|
5
|
+
Requires-Python: >=3.8
|
|
6
|
+
Requires-Dist: annotated-types==0.7.0
|
|
7
|
+
Requires-Dist: anyio==4.12.1
|
|
8
|
+
Requires-Dist: certifi==2025.7.14
|
|
9
|
+
Requires-Dist: charset-normalizer==3.4.2
|
|
10
|
+
Requires-Dist: colorama==0.4.6
|
|
11
|
+
Requires-Dist: contourpy==1.3.3
|
|
12
|
+
Requires-Dist: customtkinter==5.2.2
|
|
13
|
+
Requires-Dist: cycler==0.12.1
|
|
14
|
+
Requires-Dist: darkdetect==0.8.0
|
|
15
|
+
Requires-Dist: filelock==3.18.0
|
|
16
|
+
Requires-Dist: fonttools==4.59.0
|
|
17
|
+
Requires-Dist: fsspec==2025.7.0
|
|
18
|
+
Requires-Dist: h11==0.16.0
|
|
19
|
+
Requires-Dist: httpcore==1.0.9
|
|
20
|
+
Requires-Dist: httpx==0.28.1
|
|
21
|
+
Requires-Dist: huggingface-hub==0.34.3
|
|
22
|
+
Requires-Dist: idna==3.10
|
|
23
|
+
Requires-Dist: Jinja2==3.1.6
|
|
24
|
+
Requires-Dist: joblib==1.5.1
|
|
25
|
+
Requires-Dist: kiwisolver==1.4.8
|
|
26
|
+
Requires-Dist: markdown-it-py==3.0.0
|
|
27
|
+
Requires-Dist: MarkupSafe==3.0.2
|
|
28
|
+
Requires-Dist: matplotlib==3.10.3
|
|
29
|
+
Requires-Dist: mdurl==0.1.2
|
|
30
|
+
Requires-Dist: mpmath==1.3.0
|
|
31
|
+
Requires-Dist: networkx==3.5
|
|
32
|
+
Requires-Dist: numpy==2.3.2
|
|
33
|
+
Requires-Dist: ollama==0.6.1
|
|
34
|
+
Requires-Dist: packaging==25.0
|
|
35
|
+
Requires-Dist: pandas==2.3.1
|
|
36
|
+
Requires-Dist: patsy==1.0.1
|
|
37
|
+
Requires-Dist: pillow==11.3.0
|
|
38
|
+
Requires-Dist: psutil==7.0.0
|
|
39
|
+
Requires-Dist: pydantic==2.12.5
|
|
40
|
+
Requires-Dist: pydantic_core==2.41.5
|
|
41
|
+
Requires-Dist: Pygments==2.19.2
|
|
42
|
+
Requires-Dist: pyparsing==3.2.3
|
|
43
|
+
Requires-Dist: pyqtgraph==0.13.7
|
|
44
|
+
Requires-Dist: pyreadline3==3.5.4
|
|
45
|
+
Requires-Dist: PySide6==6.10.0
|
|
46
|
+
Requires-Dist: PySide6_Addons==6.10.0
|
|
47
|
+
Requires-Dist: PySide6_Essentials==6.10.0
|
|
48
|
+
Requires-Dist: python-dateutil==2.9.0.post0
|
|
49
|
+
Requires-Dist: pytz==2025.2
|
|
50
|
+
Requires-Dist: PyYAML==6.0.2
|
|
51
|
+
Requires-Dist: regex==2025.7.34
|
|
52
|
+
Requires-Dist: requests==2.32.4
|
|
53
|
+
Requires-Dist: rich==13.7.0
|
|
54
|
+
Requires-Dist: safetensors==0.5.3
|
|
55
|
+
Requires-Dist: scikit-learn==1.7.1
|
|
56
|
+
Requires-Dist: scipy==1.16.1
|
|
57
|
+
Requires-Dist: sentence-transformers==5.0.0
|
|
58
|
+
Requires-Dist: setuptools==80.9.0
|
|
59
|
+
Requires-Dist: shiboken6==6.10.0
|
|
60
|
+
Requires-Dist: six==1.17.0
|
|
61
|
+
Requires-Dist: statsmodels==0.14.5
|
|
62
|
+
Requires-Dist: sympy==1.14.0
|
|
63
|
+
Requires-Dist: threadpoolctl==3.6.0
|
|
64
|
+
Requires-Dist: tokenizers==0.21.4
|
|
65
|
+
Requires-Dist: torch==2.4.1
|
|
66
|
+
Requires-Dist: tqdm==4.67.1
|
|
67
|
+
Requires-Dist: transformers==4.54.1
|
|
68
|
+
Requires-Dist: typing-inspection==0.4.2
|
|
69
|
+
Requires-Dist: typing_extensions==4.14.1
|
|
70
|
+
Requires-Dist: tzdata==2025.2
|
|
71
|
+
Requires-Dist: urllib3==2.5.0
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
pyproject.toml
|
|
3
|
+
animations_old/colour.py
|
|
4
|
+
animations_old/ooh_yeahh.py
|
|
5
|
+
animations_old/test.py
|
|
6
|
+
inside_cli.egg-info/PKG-INFO
|
|
7
|
+
inside_cli.egg-info/SOURCES.txt
|
|
8
|
+
inside_cli.egg-info/dependency_links.txt
|
|
9
|
+
inside_cli.egg-info/entry_points.txt
|
|
10
|
+
inside_cli.egg-info/requires.txt
|
|
11
|
+
inside_cli.egg-info/top_level.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
annotated-types==0.7.0
|
|
2
|
+
anyio==4.12.1
|
|
3
|
+
certifi==2025.7.14
|
|
4
|
+
charset-normalizer==3.4.2
|
|
5
|
+
colorama==0.4.6
|
|
6
|
+
contourpy==1.3.3
|
|
7
|
+
customtkinter==5.2.2
|
|
8
|
+
cycler==0.12.1
|
|
9
|
+
darkdetect==0.8.0
|
|
10
|
+
filelock==3.18.0
|
|
11
|
+
fonttools==4.59.0
|
|
12
|
+
fsspec==2025.7.0
|
|
13
|
+
h11==0.16.0
|
|
14
|
+
httpcore==1.0.9
|
|
15
|
+
httpx==0.28.1
|
|
16
|
+
huggingface-hub==0.34.3
|
|
17
|
+
idna==3.10
|
|
18
|
+
Jinja2==3.1.6
|
|
19
|
+
joblib==1.5.1
|
|
20
|
+
kiwisolver==1.4.8
|
|
21
|
+
markdown-it-py==3.0.0
|
|
22
|
+
MarkupSafe==3.0.2
|
|
23
|
+
matplotlib==3.10.3
|
|
24
|
+
mdurl==0.1.2
|
|
25
|
+
mpmath==1.3.0
|
|
26
|
+
networkx==3.5
|
|
27
|
+
numpy==2.3.2
|
|
28
|
+
ollama==0.6.1
|
|
29
|
+
packaging==25.0
|
|
30
|
+
pandas==2.3.1
|
|
31
|
+
patsy==1.0.1
|
|
32
|
+
pillow==11.3.0
|
|
33
|
+
psutil==7.0.0
|
|
34
|
+
pydantic==2.12.5
|
|
35
|
+
pydantic_core==2.41.5
|
|
36
|
+
Pygments==2.19.2
|
|
37
|
+
pyparsing==3.2.3
|
|
38
|
+
pyqtgraph==0.13.7
|
|
39
|
+
pyreadline3==3.5.4
|
|
40
|
+
PySide6==6.10.0
|
|
41
|
+
PySide6_Addons==6.10.0
|
|
42
|
+
PySide6_Essentials==6.10.0
|
|
43
|
+
python-dateutil==2.9.0.post0
|
|
44
|
+
pytz==2025.2
|
|
45
|
+
PyYAML==6.0.2
|
|
46
|
+
regex==2025.7.34
|
|
47
|
+
requests==2.32.4
|
|
48
|
+
rich==13.7.0
|
|
49
|
+
safetensors==0.5.3
|
|
50
|
+
scikit-learn==1.7.1
|
|
51
|
+
scipy==1.16.1
|
|
52
|
+
sentence-transformers==5.0.0
|
|
53
|
+
setuptools==80.9.0
|
|
54
|
+
shiboken6==6.10.0
|
|
55
|
+
six==1.17.0
|
|
56
|
+
statsmodels==0.14.5
|
|
57
|
+
sympy==1.14.0
|
|
58
|
+
threadpoolctl==3.6.0
|
|
59
|
+
tokenizers==0.21.4
|
|
60
|
+
torch==2.4.1
|
|
61
|
+
tqdm==4.67.1
|
|
62
|
+
transformers==4.54.1
|
|
63
|
+
typing-inspection==0.4.2
|
|
64
|
+
typing_extensions==4.14.1
|
|
65
|
+
tzdata==2025.2
|
|
66
|
+
urllib3==2.5.0
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "inside-cli"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Your project description"
|
|
9
|
+
requires-python = ">=3.8"
|
|
10
|
+
dependencies = [
|
|
11
|
+
"annotated-types==0.7.0",
|
|
12
|
+
"anyio==4.12.1",
|
|
13
|
+
"certifi==2025.7.14",
|
|
14
|
+
"charset-normalizer==3.4.2",
|
|
15
|
+
"colorama==0.4.6",
|
|
16
|
+
"contourpy==1.3.3",
|
|
17
|
+
"customtkinter==5.2.2",
|
|
18
|
+
"cycler==0.12.1",
|
|
19
|
+
"darkdetect==0.8.0",
|
|
20
|
+
"filelock==3.18.0",
|
|
21
|
+
"fonttools==4.59.0",
|
|
22
|
+
"fsspec==2025.7.0",
|
|
23
|
+
"h11==0.16.0",
|
|
24
|
+
"httpcore==1.0.9",
|
|
25
|
+
"httpx==0.28.1",
|
|
26
|
+
"huggingface-hub==0.34.3",
|
|
27
|
+
"idna==3.10",
|
|
28
|
+
"Jinja2==3.1.6",
|
|
29
|
+
"joblib==1.5.1",
|
|
30
|
+
"kiwisolver==1.4.8",
|
|
31
|
+
"markdown-it-py==3.0.0",
|
|
32
|
+
"MarkupSafe==3.0.2",
|
|
33
|
+
"matplotlib==3.10.3",
|
|
34
|
+
"mdurl==0.1.2",
|
|
35
|
+
"mpmath==1.3.0",
|
|
36
|
+
"networkx==3.5",
|
|
37
|
+
"numpy==2.3.2",
|
|
38
|
+
"ollama==0.6.1",
|
|
39
|
+
"packaging==25.0",
|
|
40
|
+
"pandas==2.3.1",
|
|
41
|
+
"patsy==1.0.1",
|
|
42
|
+
"pillow==11.3.0",
|
|
43
|
+
"psutil==7.0.0",
|
|
44
|
+
"pydantic==2.12.5",
|
|
45
|
+
"pydantic_core==2.41.5",
|
|
46
|
+
"Pygments==2.19.2",
|
|
47
|
+
"pyparsing==3.2.3",
|
|
48
|
+
"pyqtgraph==0.13.7",
|
|
49
|
+
"pyreadline3==3.5.4",
|
|
50
|
+
"PySide6==6.10.0",
|
|
51
|
+
"PySide6_Addons==6.10.0",
|
|
52
|
+
"PySide6_Essentials==6.10.0",
|
|
53
|
+
"python-dateutil==2.9.0.post0",
|
|
54
|
+
"pytz==2025.2",
|
|
55
|
+
"PyYAML==6.0.2",
|
|
56
|
+
"regex==2025.7.34",
|
|
57
|
+
"requests==2.32.4",
|
|
58
|
+
"rich==13.7.0",
|
|
59
|
+
"safetensors==0.5.3",
|
|
60
|
+
"scikit-learn==1.7.1",
|
|
61
|
+
"scipy==1.16.1",
|
|
62
|
+
"sentence-transformers==5.0.0",
|
|
63
|
+
"setuptools==80.9.0",
|
|
64
|
+
"shiboken6==6.10.0",
|
|
65
|
+
"six==1.17.0",
|
|
66
|
+
"statsmodels==0.14.5",
|
|
67
|
+
"sympy==1.14.0",
|
|
68
|
+
"threadpoolctl==3.6.0",
|
|
69
|
+
"tokenizers==0.21.4",
|
|
70
|
+
"torch==2.4.1",
|
|
71
|
+
"tqdm==4.67.1",
|
|
72
|
+
"transformers==4.54.1",
|
|
73
|
+
"typing-inspection==0.4.2",
|
|
74
|
+
"typing_extensions==4.14.1",
|
|
75
|
+
"tzdata==2025.2",
|
|
76
|
+
"urllib3==2.5.0",
|
|
77
|
+
]
|
|
78
|
+
|
|
79
|
+
[tool.setuptools.packages.find]
|
|
80
|
+
where = ["."]
|
|
81
|
+
# This tells Python: "Only look in the root, but ignore these specific folders"
|
|
82
|
+
include = ["*"]
|
|
83
|
+
exclude = ["enve*", "tests*", "build*", "dist*"]
|
|
84
|
+
|
|
85
|
+
[tool.setuptools.package-data]
|
|
86
|
+
# This makes sure your non-python files are bundled
|
|
87
|
+
"*" = ["Fonts/*", "macos/*", "CLI Figma/*", "animations_old/*"]
|
|
88
|
+
|
|
89
|
+
[project.scripts]
|
|
90
|
+
inside-cli = "main:main"
|