Skip to content

Commit 77d1b9e

Browse files
committed
fix: apply Black formatting and fix backend Dockerfile paths
1 parent 28ed34d commit 77d1b9e

17 files changed

Lines changed: 150 additions & 90 deletions

src/edgeflow/analysis/initial_check.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,9 @@ def check_compatibility(
100100
"""Check if a model is compatible with target device."""
101101
profile = self.profile_model(model_path)
102102
device = self.spec_manager.get_device_spec(target_device or "generic")
103-
print(f"DEBUG: target={target_device}, device={device.name}, ram={device.ram_mb}, max_model={device.max_model_size_mb}")
103+
print(
104+
f"DEBUG: target={target_device}, device={device.name}, ram={device.ram_mb}, max_model={device.max_model_size_mb}"
105+
)
104106
print(f"DEBUG: profile.size={profile.file_size_mb}")
105107

106108
# Use config memory_limit if specified, otherwise use device spec

src/edgeflow/backend/Dockerfile

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,20 @@ WORKDIR /app
66
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
77

88
# Install backend runtime deps
9-
COPY backend/requirements.txt /app/requirements.txt
9+
COPY src/edgeflow/backend/requirements.txt /app/requirements.txt
1010
RUN pip install --no-cache-dir -r /app/requirements.txt
1111

1212
# Copy backend app and core modules used by the API
13-
COPY backend /app/backend
14-
COPY edgeflowc.py /app/edgeflowc.py
15-
COPY parser /app/parser
16-
COPY parser.py /app/parser.py
17-
COPY optimizer.py /app/optimizer.py
18-
COPY edgeflow_ast.py /app/edgeflow_ast.py
19-
COPY code_generator.py /app/code_generator.py
20-
COPY benchmarker.py /app/benchmarker.py
21-
COPY reporter.py /app/reporter.py
22-
COPY device_specs.py /app/device_specs.py
23-
COPY initial_check.py /app/initial_check.py
13+
COPY src/edgeflow/backend /app/backend
14+
COPY src/edgeflow/compiler/edgeflowc.py /app/edgeflowc.py
15+
COPY src/edgeflow/parser /app/parser
16+
COPY src/edgeflow/optimization/optimizer.py /app/optimizer.py
17+
COPY src/edgeflow/ir/edgeflow_ast.py /app/edgeflow_ast.py
18+
COPY src/edgeflow/compiler/code_generator.py /app/code_generator.py
19+
COPY src/edgeflow/benchmarking/benchmarker.py /app/benchmarker.py
20+
COPY src/edgeflow/reporting/reporter.py /app/reporter.py
21+
COPY src/edgeflow/config/device_specs.py /app/device_specs.py
22+
COPY src/edgeflow/analysis/initial_check.py /app/initial_check.py
2423

2524
EXPOSE 8000
2625

src/edgeflow/compiler/edgeflowc.py

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import logging
2121
import os
2222
import sys
23+
2324
try:
2425
from edgeflow.parser import parse_edgeflow_file as _parse_edgeflow_file
2526
from edgeflow.parser import parse_edgeflow_file as parse_ef
@@ -46,7 +47,13 @@
4647
)
4748
from edgeflow.compiler.code_generator import CodeGenerator, generate_code
4849
from edgeflow.ir.edgeflow_ast import create_program_from_dict
49-
from edgeflow.ir.edgeflow_ir import FusionPass, IRBuilder, IRGraph, QuantizationPass, SchedulingPass
50+
from edgeflow.ir.edgeflow_ir import (
51+
FusionPass,
52+
IRBuilder,
53+
IRGraph,
54+
QuantizationPass,
55+
SchedulingPass,
56+
)
5057
from edgeflow.reporting.explainability_reporter import generate_explainability_report
5158
from edgeflow.optimization.fast_compile import FastCompileResult, fast_compile_config
5259
from edgeflow.reporting.reporter import generate_report
@@ -58,8 +65,14 @@
5865

5966
# Import new comprehensive pipeline components
6067
try:
61-
from edgeflow.deployment.deployment_orchestrator import CrossPlatformDeployer, DeploymentTarget
62-
from edgeflow.config.dynamic_device_profiles import get_device_profile, get_profile_manager
68+
from edgeflow.deployment.deployment_orchestrator import (
69+
CrossPlatformDeployer,
70+
DeploymentTarget,
71+
)
72+
from edgeflow.config.dynamic_device_profiles import (
73+
get_device_profile,
74+
get_profile_manager,
75+
)
6376
from edgeflow.pipeline.end_to_end_pipeline import EdgeFlowPipeline
6477
from edgeflow.reporting.integrated_error_system import (
6578
ErrorCategory,
@@ -72,7 +85,10 @@
7285
OptimizationOrchestrator,
7386
OptimizationStrategy,
7487
)
75-
from edgeflow.reporting.traceability_system import export_session_report, get_global_tracker
88+
from edgeflow.reporting.traceability_system import (
89+
export_session_report,
90+
get_global_tracker,
91+
)
7692

7793
ENHANCED_FEATURES_AVAILABLE = True
7894
except ImportError as e:
@@ -334,10 +350,14 @@ def load_config(
334350
# Prefer modern parser API if available
335351
spinner.update("Parsing EdgeFlow file")
336352
if _parse_edgeflow_file is not None:
337-
print(f"DEBUG: Using _parse_edgeflow_file from {getattr(_parse_edgeflow_file, '__module__', 'unknown')}")
353+
print(
354+
f"DEBUG: Using _parse_edgeflow_file from {getattr(_parse_edgeflow_file, '__module__', 'unknown')}"
355+
)
338356
config = _parse_edgeflow_file(file_path)
339357
else:
340-
print(f"DEBUG: Using parse_ef from {getattr(parse_ef, '__module__', 'unknown')}")
358+
print(
359+
f"DEBUG: Using parse_ef from {getattr(parse_ef, '__module__', 'unknown')}"
360+
)
341361
config = parse_ef(file_path)
342362

343363
# Early validation for fast feedback

src/edgeflow/compiler/framework_parsers.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,11 @@ def _parse_saved_model(self, model_path: str) -> UIRGraph:
7070
framework_metadata={
7171
"model_path": model_path,
7272
"model_type": "saved_model",
73-
"signatures": list(model.signatures.keys())
74-
if hasattr(model, "signatures")
75-
else [],
73+
"signatures": (
74+
list(model.signatures.keys())
75+
if hasattr(model, "signatures")
76+
else []
77+
),
7678
},
7779
)
7880

@@ -102,9 +104,9 @@ def _parse_keras_model(self, model_path: str) -> UIRGraph:
102104
framework_metadata={
103105
"model_path": model_path,
104106
"model_type": "keras",
105-
"model_config": model.get_config()
106-
if hasattr(model, "get_config")
107-
else {},
107+
"model_config": (
108+
model.get_config() if hasattr(model, "get_config") else {}
109+
),
108110
},
109111
)
110112

@@ -177,9 +179,9 @@ def _convert_keras_layer_to_uir(self, layer, layer_index: int) -> UIRNode:
177179
framework_type=FrameworkType.TENSORFLOW,
178180
framework_metadata={
179181
"keras_layer_type": type(layer).__name__,
180-
"keras_layer_config": layer.get_config()
181-
if hasattr(layer, "get_config")
182-
else {},
182+
"keras_layer_config": (
183+
layer.get_config() if hasattr(layer, "get_config") else {}
184+
),
183185
"layer_index": layer_index,
184186
},
185187
)
@@ -406,9 +408,9 @@ def parse_model(self, model_path: str) -> UIRGraph:
406408
"model_path": model_path,
407409
"model_type": "onnx",
408410
"ir_version": model.ir_version,
409-
"opset_version": model.opset_import[0].version
410-
if model.opset_import
411-
else None,
411+
"opset_version": (
412+
model.opset_import[0].version if model.opset_import else None
413+
),
412414
"producer_name": model.producer_name,
413415
"producer_version": model.producer_version,
414416
},

src/edgeflow/compiler/mlir_dialect.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -487,10 +487,10 @@ def transform(self, graph: UIRGraph) -> UIRGraph:
487487
# Check if nodes were quantized (renamed) or kept as is
488488
new_from_q = f"{from_node}_quantized"
489489
new_to_q = f"{to_node}_quantized"
490-
490+
491491
new_from = new_from_q if new_from_q in optimized_graph.nodes else from_node
492492
new_to = new_to_q if new_to_q in optimized_graph.nodes else to_node
493-
493+
494494
if new_from in optimized_graph.nodes and new_to in optimized_graph.nodes:
495495
optimized_graph.add_edge(new_from, new_to, tensor_name)
496496

src/edgeflow/config/config_suggester.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -594,15 +594,15 @@ def analyze_configuration_performance(
594594
"use_case": use_case.value if use_case else "unknown",
595595
"optimization_focus": config.get("optimize_for", "balanced"),
596596
"quantization_strategy": config.get("quantize", "none"),
597-
"memory_efficiency": "high"
598-
if config.get("memory_limit", 256) < 256
599-
else "medium",
600-
"latency_optimization": "high"
601-
if config.get("buffer_size", 1) == 1
602-
else "medium",
603-
"accuracy_preservation": "high"
604-
if config.get("quantize") == "none"
605-
else "medium",
597+
"memory_efficiency": (
598+
"high" if config.get("memory_limit", 256) < 256 else "medium"
599+
),
600+
"latency_optimization": (
601+
"high" if config.get("buffer_size", 1) == 1 else "medium"
602+
),
603+
"accuracy_preservation": (
604+
"high" if config.get("quantize") == "none" else "medium"
605+
),
606606
"compatibility_score": validation_result.compatibility_score,
607607
"estimated_performance": validation_result.estimated_performance_impact,
608608
"recommendations": [],

src/edgeflow/config/dynamic_device_profiles.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -253,9 +253,9 @@ def get_optimization_config(self) -> Dict[str, Any]:
253253
"""
254254
config: Dict[str, Any] = {
255255
"quantization": self.preferred_quantization,
256-
"preferred_precision": "int8"
257-
if "int8" in self.preferred_quantization
258-
else "fp16",
256+
"preferred_precision": (
257+
"int8" if "int8" in self.preferred_quantization else "fp16"
258+
),
259259
"enabled_optimizations": [],
260260
"optimization_flags": {},
261261
"target_device": self.device_id,

src/edgeflow/deployment/deployment_packager.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -504,9 +504,11 @@ def _package_model_binary(
504504
# Create model metadata
505505
metadata = {
506506
"device_type": device_type.value,
507-
"original_size_mb": os.path.getsize(model_path) / (1024 * 1024)
508-
if os.path.exists(model_path)
509-
else 0.0,
507+
"original_size_mb": (
508+
os.path.getsize(model_path) / (1024 * 1024)
509+
if os.path.exists(model_path)
510+
else 0.0
511+
),
510512
"optimized_size_mb": os.path.getsize(optimized_model_path) / (1024 * 1024),
511513
"optimization_flags": constraints.optimization_flags,
512514
"compression_level": constraints.compression_level,
@@ -593,9 +595,11 @@ def _package_inference_code(
593595
size_mb=os.path.getsize(package_path) / (1024 * 1024),
594596
dependencies=constraints.runtime_requirements,
595597
metadata={
596-
"language": "python"
597-
if device_type not in [DeviceType.CORTEX_M4, DeviceType.CORTEX_M7]
598-
else "cpp"
598+
"language": (
599+
"python"
600+
if device_type not in [DeviceType.CORTEX_M4, DeviceType.CORTEX_M7]
601+
else "cpp"
602+
)
599603
},
600604
)
601605

src/edgeflow/deployment/pi_system_monitor.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,9 +249,9 @@ def get_performance_summary(self) -> Dict[str, Any]:
249249
fps_values = [s["fps"] for s in self.inference_stats]
250250

251251
summary: Dict[str, Any] = {
252-
"monitoring_duration_s": time.time() - self.start_time
253-
if self.start_time is not None
254-
else 0,
252+
"monitoring_duration_s": (
253+
time.time() - self.start_time if self.start_time is not None else 0
254+
),
255255
"total_samples": len(self.stats),
256256
"total_inferences": len(self.inference_stats),
257257
"system_performance": {

src/edgeflow/grammar/grammar_validator.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,16 @@
33
semantic analyzer.
44
This module provides early validation at the grammar/AST level before IR conversion.
55
"""
6+
67
import os
78
import sys
89
from dataclasses import dataclass
910
from typing import Any, Dict, List, Optional, Tuple
1011

1112
# Add parent directory to path for imports
12-
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) # noqa: E402
13+
sys.path.append(
14+
os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
15+
) # noqa: E402
1316

1417
from edgeflow_ast import (
1518
ActivationType,

0 commit comments

Comments
 (0)