Download analysis/__init__.py from rapsoj/e-vca: direct link, hf CLI and curl.
- Browser
- Download file 2.14 kB
-
https://huggingface.co/spaces/rapsoj/e-vca/resolve/main/analysis/__init__.py
- Command line
-
hf download hf://spaces/rapsoj/e-vca/analysis/__init__.py
-
curl -L -o __init__.py https://huggingface.co/spaces/rapsoj/e-vca/resolve/main/analysis/__init__.py
2.14 kB
| import os | |
| import importlib | |
| def discover_analyses(): | |
| """ | |
| Automatically discover all analysis modules and their metadata. | |
| Returns: | |
| list: List of analysis metadata dictionaries | |
| """ | |
| analysis_dir = os.path.dirname(__file__) | |
| files = os.listdir(analysis_dir) | |
| analyses = [] | |
| for filename in files: | |
| if filename.endswith('.py') and filename != '__init__.py': | |
| module_name = filename.replace('.py', '') | |
| try: | |
| module = importlib.import_module(f'analysis.{module_name}') | |
| if hasattr(module, 'ANALYSIS_METADATA'): | |
| metadata = module.ANALYSIS_METADATA | |
| if metadata.get('enabled', True): | |
| analyses.append(metadata) | |
| except Exception as e: | |
| print(f"Warning: Could not load analysis module '{module_name}': {e}") | |
| return analyses | |
| def run_analyses(**available_files): | |
| """ | |
| Run all enabled analyses that have their required files available. | |
| Args: | |
| Various file paths from data downloads | |
| Returns: | |
| str: Combined message from all analyses | |
| """ | |
| analyses = discover_analyses() | |
| combined_message = "" | |
| for analysis in analyses: | |
| # Check if all required files are available | |
| required = analysis.get('required_files', []) | |
| if all(available_files.get(req) for req in required): | |
| try: | |
| # Build kwargs from required files | |
| kwargs = {req: available_files[req] for req in required} | |
| result = analysis['function'](**kwargs) | |
| # Handle different return formats | |
| if isinstance(result, tuple): | |
| for msg in result: | |
| if msg: | |
| combined_message += f"\n\n{msg}" | |
| elif result: | |
| combined_message += f"\n\n{result}" | |
| except Exception as e: | |
| combined_message += f"\n\n⚠️ Error in {analysis['name']}: {str(e)}" | |
| return combined_message |