Spaces:
Running
Running
Download index.html from wako13/pybuilderx: direct link, hf CLI and curl.
- Browser
- Download file 23.1 kB
-
https://huggingface.co/spaces/wako13/pybuilderx/resolve/main/index.html
- Command line
-
hf download hf://spaces/wako13/pybuilderx/index.html
-
curl -L -o index.html https://huggingface.co/spaces/wako13/pybuilderx/resolve/main/index.html
23.1 kB
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>PyBuilderX - Python Executable Builder</title> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
| <style> | |
| .gradient-bg { | |
| background: linear-gradient(135deg, #6e8efb 0%, #a777e3 100%); | |
| } | |
| .terminal { | |
| font-family: 'Courier New', monospace; | |
| background-color: #1e293b; | |
| color: #f8fafc; | |
| border-radius: 0.5rem; | |
| height: 300px; | |
| overflow-y: auto; | |
| } | |
| .terminal-line { | |
| margin: 0; | |
| padding: 0.25rem 0.5rem; | |
| white-space: pre-wrap; | |
| font-size: 0.875rem; | |
| line-height: 1.25rem; | |
| } | |
| .terminal-line.info { | |
| color: #60a5fa; | |
| } | |
| .terminal-line.success { | |
| color: #4ade80; | |
| } | |
| .terminal-line.warning { | |
| color: #fbbf24; | |
| } | |
| .terminal-line.error { | |
| color: #f87171; | |
| } | |
| .progress-bar { | |
| height: 0.5rem; | |
| background-color: #334155; | |
| border-radius: 0.25rem; | |
| } | |
| .progress-fill { | |
| height: 100%; | |
| border-radius: 0.25rem; | |
| background: linear-gradient(90deg, #4f46e5 0%, #a855f7 50%, #ec4899 100%); | |
| transition: width 0.3s ease; | |
| } | |
| .dependency-item { | |
| transition: all 0.2s ease; | |
| } | |
| .dependency-item:hover { | |
| transform: translateY(-2px); | |
| } | |
| .floating-btn { | |
| box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); | |
| } | |
| .floating-btn:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); | |
| } | |
| </style> | |
| </head> | |
| <body class="bg-gray-50 min-h-screen"> | |
| <div class="gradient-bg text-white"> | |
| <div class="container mx-auto px-4 py-12"> | |
| <div class="flex items-center justify-between"> | |
| <div> | |
| <h1 class="text-4xl font-bold mb-2">PyBuilderX</h1> | |
| <p class="text-xl opacity-90">Advanced Python Executable Builder</p> | |
| </div> | |
| <div class="flex items-center space-x-2"> | |
| <span class="px-3 py-1 bg-white bg-opacity-20 rounded-full text-sm">v2.1.0</span> | |
| <span class="px-3 py-1 bg-emerald-500 rounded-full text-sm flex items-center"> | |
| <i class="fas fa-check-circle mr-1"></i> Stable | |
| </span> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="container mx-auto px-4 py-8 -mt-10"> | |
| <div class="bg-white rounded-xl shadow-lg overflow-hidden"> | |
| <div class="md:flex"> | |
| <!-- Left Panel --> | |
| <div class="md:w-1/3 p-6 border-r border-gray-200"> | |
| <h2 class="text-xl font-semibold mb-4">Project Configuration</h2> | |
| <div class="mb-6"> | |
| <label class="block text-sm font-medium text-gray-700 mb-1">Output Directory</label> | |
| <div class="flex"> | |
| <input type="text" id="outputDir" value="dist" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500"> | |
| <button class="px-3 py-2 bg-gray-100 border border-l-0 border-gray-300 rounded-r-md hover:bg-gray-200"> | |
| <i class="fas fa-folder-open"></i> | |
| </button> | |
| </div> | |
| </div> | |
| <div class="mb-6"> | |
| <label class="block text-sm font-medium text-gray-700 mb-1">Icon File</label> | |
| <div class="flex"> | |
| <input type="text" id="iconPath" placeholder="Leave empty for default icon" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500"> | |
| <button class="px-3 py-2 bg-gray-100 border border-l-0 border-gray-300 rounded-r-md hover:bg-gray-200"> | |
| <i class="fas fa-image"></i> | |
| </button> | |
| </div> | |
| </div> | |
| <div class="mb-6"> | |
| <label class="block text-sm font-medium text-gray-700 mb-1">Build Options</label> | |
| <div class="space-y-2"> | |
| <label class="flex items-center"> | |
| <input type="checkbox" checked class="h-4 w-4 text-indigo-600 focus:ring-indigo-500 border-gray-300 rounded"> | |
| <span class="ml-2 text-sm text-gray-700">Create ZIP Package</span> | |
| </label> | |
| <label class="flex items-center"> | |
| <input type="checkbox" checked class="h-4 w-4 text-indigo-600 focus:ring-indigo-500 border-gray-300 rounded"> | |
| <span class="ml-2 text-sm text-gray-700">One-file Executable</span> | |
| </label> | |
| <label class="flex items-center"> | |
| <input type="checkbox" class="h-4 w-4 text-indigo-600 focus:ring-indigo-500 border-gray-300 rounded"> | |
| <span class="ml-2 text-sm text-gray-700">Console Window</span> | |
| </label> | |
| </div> | |
| </div> | |
| <div class="mb-6"> | |
| <label class="block text-sm font-medium text-gray-700 mb-1">Required Dependencies</label> | |
| <div class="space-y-2 max-h-60 overflow-y-auto p-2 border border-gray-200 rounded-md"> | |
| <div class="dependency-item flex items-center justify-between p-2 bg-gray-50 rounded"> | |
| <div class="flex items-center"> | |
| <i class="fas fa-cube text-indigo-500 mr-2"></i> | |
| <span>PyInstaller</span> | |
| </div> | |
| <span class="px-2 py-1 bg-green-100 text-green-800 text-xs rounded-full">Installed</span> | |
| </div> | |
| <div class="dependency-item flex items-center justify-between p-2 bg-gray-50 rounded"> | |
| <div class="flex items-center"> | |
| <i class="fas fa-cube text-indigo-500 mr-2"></i> | |
| <span>Pillow</span> | |
| </div> | |
| <span class="px-2 py-1 bg-green-100 text-green-800 text-xs rounded-full">Installed</span> | |
| </div> | |
| <div class="dependency-item flex items-center justify-between p-2 bg-gray-50 rounded"> | |
| <div class="flex items-center"> | |
| <i class="fas fa-cube text-indigo-500 mr-2"></i> | |
| <span>Flask</span> | |
| </div> | |
| <span class="px-2 py-1 bg-green-100 text-green-800 text-xs rounded-full">Installed</span> | |
| </div> | |
| <div class="dependency-item flex items-center justify-between p-2 bg-gray-50 rounded"> | |
| <div class="flex items-center"> | |
| <i class="fas fa-cube text-indigo-500 mr-2"></i> | |
| <span>Flask-CORS</span> | |
| </div> | |
| <span class="px-2 py-1 bg-green-100 text-green-800 text-xs rounded-full">Installed</span> | |
| </div> | |
| <div class="dependency-item flex items-center justify-between p-2 bg-gray-50 rounded"> | |
| <div class="flex items-center"> | |
| <i class="fas fa-cube text-indigo-500 mr-2"></i> | |
| <span>Flask-RESTful</span> | |
| </div> | |
| <span class="px-2 py-1 bg-green-100 text-green-800 text-xs rounded-full">Installed</span> | |
| </div> | |
| <div class="dependency-item flex items-center justify-between p-2 bg-gray-50 rounded"> | |
| <div class="flex items-center"> | |
| <i class="fas fa-cube text-indigo-500 mr-2"></i> | |
| <span>NumPy</span> | |
| </div> | |
| <span class="px-2 py-1 bg-green-100 text-green-800 text-xs rounded-full">Installed</span> | |
| </div> | |
| <div class="dependency-item flex items-center justify-between p-2 bg-gray-50 rounded"> | |
| <div class="flex items-center"> | |
| <i class="fas fa-cube text-indigo-500 mr-2"></i> | |
| <span>Requests</span> | |
| </div> | |
| <span class="px-2 py-1 bg-green-100 text-green-800 text-xs rounded-full">Installed</span> | |
| </div> | |
| <div class="dependency-item flex items-center justify-between p-2 bg-gray-50 rounded"> | |
| <div class="flex items-center"> | |
| <i class="fas fa-cube text-indigo-500 mr-2"></i> | |
| <span>BeautifulSoup4</span> | |
| </div> | |
| <span class="px-2 py-1 bg-green-100 text-green-800 text-xs rounded-full">Installed</span> | |
| </div> | |
| </div> | |
| </div> | |
| <button id="buildBtn" class="w-full py-3 px-4 bg-indigo-600 hover:bg-indigo-700 text-white font-medium rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 flex items-center justify-center"> | |
| <i class="fas fa-cogs mr-2"></i> Build Executable | |
| </button> | |
| </div> | |
| <!-- Right Panel --> | |
| <div class="md:w-2/3 p-6"> | |
| <div class="flex justify-between items-center mb-4"> | |
| <h2 class="text-xl font-semibold">Build Output</h2> | |
| <div class="flex space-x-2"> | |
| <button class="px-3 py-1 bg-gray-100 hover:bg-gray-200 rounded-md text-sm"> | |
| <i class="fas fa-trash-alt mr-1"></i> Clear | |
| </button> | |
| <button class="px-3 py-1 bg-gray-100 hover:bg-gray-200 rounded-md text-sm"> | |
| <i class="fas fa-save mr-1"></i> Save Log | |
| </button> | |
| </div> | |
| </div> | |
| <div class="terminal mb-4 p-3"> | |
| <div id="terminalContent"> | |
| <p class="terminal-line info">PyBuilderX v2.1.0 initialized</p> | |
| <p class="terminal-line info">Python version: 3.9.7</p> | |
| <p class="terminal-line info">System: Windows 10 (64-bit)</p> | |
| <p class="terminal-line">Ready to build executable...</p> | |
| </div> | |
| </div> | |
| <div class="mb-4"> | |
| <div class="flex justify-between text-sm mb-1"> | |
| <span>Build Progress</span> | |
| <span id="progressPercent">0%</span> | |
| </div> | |
| <div class="progress-bar"> | |
| <div id="progressFill" class="progress-fill" style="width: 0%"></div> | |
| </div> | |
| </div> | |
| <div class="grid grid-cols-3 gap-4"> | |
| <div class="bg-blue-50 p-3 rounded-lg"> | |
| <div class="text-blue-800 text-sm font-medium mb-1">Status</div> | |
| <div id="buildStatus" class="text-blue-600 font-semibold">Ready</div> | |
| </div> | |
| <div class="bg-green-50 p-3 rounded-lg"> | |
| <div class="text-green-800 text-sm font-medium mb-1">Time</div> | |
| <div id="buildTime" class="text-green-600 font-semibold">0s</div> | |
| </div> | |
| <div class="bg-purple-50 p-3 rounded-lg"> | |
| <div class="text-purple-800 text-sm font-medium mb-1">Output Size</div> | |
| <div id="outputSize" class="text-purple-600 font-semibold">0 MB</div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="container mx-auto px-4 py-8"> | |
| <h2 class="text-2xl font-semibold mb-4">Recent Builds</h2> | |
| <div class="bg-white rounded-lg shadow overflow-hidden"> | |
| <table class="min-w-full divide-y divide-gray-200"> | |
| <thead class="bg-gray-50"> | |
| <tr> | |
| <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Project</th> | |
| <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Status</th> | |
| <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Time</th> | |
| <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Size</th> | |
| <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Date</th> | |
| <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Actions</th> | |
| </tr> | |
| </thead> | |
| <tbody class="bg-white divide-y divide-gray-200"> | |
| <tr> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <div class="flex items-center"> | |
| <i class="fas fa-file-archive text-indigo-500 mr-2"></i> | |
| <div class="text-sm font-medium text-gray-900">MeSSiahX</div> | |
| </div> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">Success</span> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">42s</td> | |
| <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">15.7 MB</td> | |
| <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">2023-07-15</td> | |
| <td class="px-6 py-4 whitespace-nowrap text-sm font-medium"> | |
| <a href="#" class="text-indigo-600 hover:text-indigo-900 mr-3">Download</a> | |
| <a href="#" class="text-red-600 hover:text-red-900">Delete</a> | |
| </td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| </div> | |
| </div> | |
| <footer class="bg-gray-100 border-t border-gray-200 py-6"> | |
| <div class="container mx-auto px-4"> | |
| <div class="flex flex-col md:flex-row justify-between items-center"> | |
| <div class="mb-4 md:mb-0"> | |
| <h3 class="text-lg font-semibold text-gray-800">PyBuilderX</h3> | |
| <p class="text-gray-600">Advanced Python Executable Builder</p> | |
| </div> | |
| <div class="flex space-x-4"> | |
| <a href="#" class="text-gray-600 hover:text-indigo-600"> | |
| <i class="fab fa-github text-xl"></i> | |
| </a> | |
| <a href="#" class="text-gray-600 hover:text-indigo-600"> | |
| <i class="fas fa-book text-xl"></i> | |
| </a> | |
| <a href="#" class="text-gray-600 hover:text-indigo-600"> | |
| <i class="fas fa-bug text-xl"></i> | |
| </a> | |
| </div> | |
| </div> | |
| <div class="mt-4 text-center md:text-left text-sm text-gray-500"> | |
| © 2023 PyBuilderX. All rights reserved. | |
| </div> | |
| </div> | |
| </footer> | |
| <script> | |
| document.addEventListener('DOMContentLoaded', function() { | |
| const buildBtn = document.getElementById('buildBtn'); | |
| const terminalContent = document.getElementById('terminalContent'); | |
| const progressFill = document.getElementById('progressFill'); | |
| const progressPercent = document.getElementById('progressPercent'); | |
| const buildStatus = document.getElementById('buildStatus'); | |
| const buildTime = document.getElementById('buildTime'); | |
| const outputSize = document.getElementById('outputSize'); | |
| let buildInProgress = false; | |
| let startTime = null; | |
| // Simulate build process | |
| buildBtn.addEventListener('click', function() { | |
| if (buildInProgress) return; | |
| buildInProgress = true; | |
| startTime = new Date(); | |
| buildBtn.disabled = true; | |
| buildBtn.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i> Building...'; | |
| buildStatus.textContent = 'Building'; | |
| buildStatus.className = 'text-blue-600 font-semibold'; | |
| // Clear terminal | |
| terminalContent.innerHTML = ''; | |
| // Add initial messages | |
| addTerminalLine('Starting build process...', 'info'); | |
| addTerminalLine('Checking system requirements...', 'info'); | |
| // Simulate progress | |
| let progress = 0; | |
| const interval = setInterval(() => { | |
| progress += Math.random() * 5; | |
| if (progress > 100) progress = 100; | |
| progressFill.style.width = `${progress}%`; | |
| progressPercent.textContent = `${Math.round(progress)}%`; | |
| // Update time | |
| const elapsed = Math.floor((new Date() - startTime) / 1000); | |
| buildTime.textContent = `${elapsed}s`; | |
| // Add messages at certain progress points | |
| if (progress >= 10 && progress < 11) { | |
| addTerminalLine('System requirements check completed', 'success'); | |
| addTerminalLine('Verifying dependencies...', 'info'); | |
| } | |
| if (progress >= 25 && progress < 26) { | |
| addTerminalLine('All dependencies verified', 'success'); | |
| addTerminalLine('Creating launcher script...', 'info'); | |
| } | |
| if (progress >= 40 && progress < 41) { | |
| addTerminalLine('Launcher script created successfully', 'success'); | |
| addTerminalLine('Generating configuration file...', 'info'); | |
| } | |
| if (progress >= 60 && progress < 61) { | |
| addTerminalLine('Configuration file generated', 'success'); | |
| addTerminalLine('Running PyInstaller...', 'info'); | |
| } | |
| if (progress >= 85 && progress < 86) { | |
| addTerminalLine('PyInstaller build completed', 'success'); | |
| addTerminalLine('Creating ZIP package...', 'info'); | |
| } | |
| if (progress >= 100) { | |
| clearInterval(interval); | |
| addTerminalLine('Build completed successfully!', 'success'); | |
| outputSize.textContent = '15.7 MB'; | |
| buildStatus.textContent = 'Success'; | |
| buildStatus.className = 'text-green-600 font-semibold'; | |
| buildBtn.disabled = false; | |
| buildBtn.innerHTML = '<i class="fas fa-check-circle mr-2"></i> Build Complete'; | |
| buildInProgress = false; | |
| // Add to recent builds table | |
| addRecentBuild(); | |
| } | |
| }, 300); | |
| }); | |
| function addTerminalLine(text, type = '') { | |
| const line = document.createElement('p'); | |
| line.className = `terminal-line ${type}`; | |
| line.textContent = text; | |
| terminalContent.appendChild(line); | |
| terminalContent.scrollTop = terminalContent.scrollHeight; | |
| } | |
| function addRecentBuild() { | |
| // In a real app, this would add to the table | |
| console.log('Build would be added to recent builds'); | |
| } | |
| }); | |
| </script> | |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=wako13/pybuilderx" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
| </html> |