• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

daisytuner / docc / 22677411086

04 Mar 2026 03:56PM UTC coverage: 64.445%. First build
22677411086

Pull #558

github

web-flow
Merge 767d9c915 into 526004d6a
Pull Request #558: Etsoc

29 of 32 new or added lines in 3 files covered. (90.63%)

24489 of 38000 relevant lines covered (64.44%)

386.5 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

91.3
/python/docc/python/target_registry.py
1
from typing import Callable, Optional, Dict, Any
4✔
2
from docc.sdfg import StructuredSDFG
4✔
3

4
TargetScheduleFn = Callable[[StructuredSDFG, str, Dict[str, Any]], None]
4✔
5
LegacyTargetScheduleFn = Callable[[StructuredSDFG, str], None]
4✔
6
TargetCompileFn = Callable[[StructuredSDFG, str, str, bool, Dict[str, Any]], str]
4✔
7

8
_target_schedule_registry: dict[str, TargetScheduleFn] = {}
4✔
9
_target_compile_registry: dict[str, TargetCompileFn] = {}
4✔
10

11

12
def register_target(name: str, schedule_fn: Optional[LegacyTargetScheduleFn]) -> None:
4✔
13
    def wrapper(
4✔
14
        sdfg: StructuredSDFG, category: str, options: Optional[Dict[str, Any]] = None
15
    ) -> None:
16
        schedule_fn(sdfg, category)  # type: ignore
4✔
17

18
    register_target_overrides(name, schedule_fn=wrapper, compile_fn=None)
4✔
19

20

21
def register_target_overrides(
4✔
22
    name: str,
23
    schedule_fn: Optional[TargetScheduleFn],
24
    compile_fn: Optional[TargetCompileFn] = None,
25
) -> None:
26
    """Override the scheduling or compile step for this target.
27

28
    The schedule function will be called with:
29
    - sdfg: The StructuredSDFG to schedule (has _native_ptr for native access)
30
    - category: The target category (e.g., "desktop", "server")
31
    - options: (Optional) Dictionary of options
32

33
    Args:
34
        name: Target name (e.g., "openmp")
35
        schedule_fn: Function that performs scheduling transformations
36
        compile_fn: Function that performs compile step
37
    """
38
    if schedule_fn is not None:
4✔
39
        _target_schedule_registry[name] = schedule_fn  # type: ignore
4✔
40

41
    if compile_fn is not None:
4✔
42
        _target_compile_registry[name] = compile_fn
4✔
43

44

45
def unregister_target(name: str) -> None:
4✔
46
    """Unregister a custom target scheduler."""
NEW
47
    _target_schedule_registry.pop(name, None)
×
NEW
48
    _target_compile_registry.pop(name, None)
×
49

50

51
def get_target_schedule_fn(name: str) -> Optional[TargetScheduleFn]:
4✔
52
    """Get a registered target scheduler, or None if not found."""
53
    return _target_schedule_registry.get(name)
4✔
54

55

56
def get_target_compile_fn(name: str) -> Optional[TargetCompileFn]:
4✔
57
    """Get a registered target compile function, or None if not found."""
58
    return _target_compile_registry.get(name)
4✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc