{ "name": "Python Data Science App", "type": "web-python", "version": "0.1.0", "description": "A modern Python app with data science capabilities and interactive visualizations.", "tags": ["python", "data-science", "modern", "interactive"], "ui": "", "cover": "", "icon": "🐍", "api_version": "0.1.8", "requirements": ["numpy", "matplotlib", "pandas"], "dependencies": [], "startup_config": { "timeout": 60, "wait_for_service": "default", "stop_after_inactive": 600 } } """ # Write to DOM (this would be handled differently in a real implementation) print("UI created with modern styling and interactive features") async def multiply(self, x, y): """Multiply two numbers with detailed result""" self.operations_count += 1 result = x * y return { "operation": "multiplication", "inputs": {"x": x, "y": y}, "result": result, "timestamp": datetime.now().isoformat() } async def analyze_data(self, numbers): """Comprehensive data analysis using numpy and pandas""" self.operations_count += 1 # Convert to numpy array arr = np.array(numbers) # Create pandas DataFrame for advanced analysis df = pd.DataFrame({'values': numbers}) # Statistical analysis analysis = { "data": numbers, "count": len(numbers), "mean": float(np.mean(arr)), "median": float(np.median(arr)), "std": float(np.std(arr)), "variance": float(np.var(arr)), "min": float(np.min(arr)), "max": float(np.max(arr)), "range": float(np.max(arr) - np.min(arr)), "sum": float(np.sum(arr)), "quartiles": { "q1": float(np.percentile(arr, 25)), "q2": float(np.percentile(arr, 50)), "q3": float(np.percentile(arr, 75)) }, "processed": numbers[:10] if len(numbers) > 10 else numbers, # First 10 or all "doubled": (arr * 2).tolist(), "squared": (arr ** 2).tolist(), "analysis_timestamp": datetime.now().isoformat() } return analysis async def create_plot(self, data): """Create a visualization plot using matplotlib""" self.operations_count += 1 # Create figure and axis plt.figure(figsize=(10, 6)) # Create multiple plots plt.subplot(2, 2, 1) plt.plot(data, 'b-o', linewidth=2, markersize=6) plt.title('Line Plot') plt.grid(True, alpha=0.3) plt.subplot(2, 2, 2) plt.hist(data, bins=min(10, len(data)), alpha=0.7, color='skyblue', edgecolor='black') plt.title('Histogram') plt.grid(True, alpha=0.3) plt.subplot(2, 2, 3) plt.bar(range(len(data)), data, color='lightcoral', alpha=0.7) plt.title('Bar Chart') plt.grid(True, alpha=0.3) plt.subplot(2, 2, 4) plt.scatter(range(len(data)), data, c=data, cmap='viridis', s=100, alpha=0.7) plt.title('Scatter Plot') plt.colorbar() plt.grid(True, alpha=0.3) plt.tight_layout() # Convert plot to base64 string buffer = BytesIO() plt.savefig(buffer, format='png', dpi=150, bbox_inches='tight') buffer.seek(0) plot_data = base64.b64encode(buffer.getvalue()).decode() plt.close() return { "plot_data": plot_data, "data_points": len(data), "plot_type": "multi_plot", "timestamp": datetime.now().isoformat() } async def matrix_operations(self, size): """Perform various matrix operations""" self.operations_count += 1 # Create random matrices matrix_a = np.random.randint(1, 10, (size, size)) matrix_b = np.random.randint(1, 10, (size, size)) # Perform operations operations = { "matrix_a": matrix_a.tolist(), "matrix_b": matrix_b.tolist(), "addition": (matrix_a + matrix_b).tolist(), "multiplication": np.dot(matrix_a, matrix_b).tolist(), "transpose_a": matrix_a.T.tolist(), "determinant_a": float(np.linalg.det(matrix_a)), "eigenvalues_a": np.linalg.eigvals(matrix_a).tolist(), "trace_a": float(np.trace(matrix_a)), "size": size, "timestamp": datetime.now().isoformat() } return operations async def info(self): """Get comprehensive app information""" uptime = (datetime.now() - self.start_time).total_seconds() return { "name": "Python Data Science App", "type": "python", "version": "1.0.0", "status": "running", "operations_performed": self.operations_count, "uptime_seconds": uptime, "start_time": self.start_time.isoformat(), "features": [ "Mathematical Operations", "Data Analysis with NumPy/Pandas", "Data Visualization with Matplotlib", "Matrix Operations", "Statistical Analysis" ], "libraries": ["numpy", "matplotlib", "pandas"], "python_version": "3.x", "timestamp": datetime.now().isoformat() } # Create and export the app instance app_instance = PythonDataScienceApp() api.export(app_instance)