fix: resolve all I001 import sorting errors across monorepo

Auto-fix 75 import sorting violations detected by ruff check
across hanzo-mcp, hanzo-network, hanzo-tools-*, and other packages.
Verified clean with both ruff 0.14.6 and 0.14.14 (CI version).
This commit is contained in:
2026-03-07 00:01:43 -08:00
parent b15250328b
commit bbeaaa3dd2
70 changed files with 265 additions and 219 deletions
+1 -1
View File
@@ -13,12 +13,12 @@ import os
import shutil
import tempfile
from hanzo_mcp.tools.common.batch_tool import BatchTool
from hanzo_tools.agent.agent_tool import AgentTool
from hanzo_tools.agent.swarm_tool import SwarmTool
from hanzo_tools.filesystem import DirectoryTree, Read, Write
from mcp.server.fastmcp import Context as MCPContext
from hanzo_mcp.tools.common.batch_tool import BatchTool
from hanzo_mcp.tools.common.permissions import PermissionManager
@@ -9,10 +9,11 @@ This example shows how to:
import asyncio
import sys
from hanzo_network import (
create_agent,
create_tool,
create_distributed_network,
create_tool,
)
+2 -1
View File
@@ -2,11 +2,12 @@
"""Demo of hanzo-network with local LLM (Ollama)."""
import asyncio
from hanzo_network import (
check_local_llm_status,
create_local_agent,
create_local_distributed_network,
create_tool,
check_local_llm_status,
)
@@ -2,7 +2,8 @@
"""Test distributed network functionality."""
import asyncio
from hanzo_network import create_distributed_network, create_agent, create_tool
from hanzo_network import create_agent, create_distributed_network, create_tool
async def echo_tool(message: str) -> str:
@@ -18,26 +18,27 @@ from .distributed_network import (
create_distributed_network,
)
# Import LLM providers
from .llm import HanzoNetProvider, LocalLLMProvider, MLXProvider, OllamaProvider
from .local_network import (
check_local_llm_status,
create_local_agent,
create_local_distributed_network,
check_local_llm_status,
)
# Import LLM providers
from .llm import HanzoNetProvider, LocalLLMProvider, OllamaProvider, MLXProvider
# Local compute capabilities
try:
from .local_compute import (
InferenceRequest,
LocalComputeNode,
LocalComputeOrchestrator,
InferenceRequest,
InferenceResult as LocalInferenceResult,
ModelConfig,
ModelProvider,
orchestrator,
)
from .local_compute import (
InferenceResult as LocalInferenceResult,
)
LOCAL_COMPUTE_AVAILABLE = True
except ImportError:
@@ -1,11 +1,11 @@
"""Agent implementation for Hanzo Network."""
from typing import Any, Dict, List, Optional, Callable, Union
from dataclasses import dataclass, field
from enum import Enum
from typing import Any, Callable, Dict, List, Optional, Union
from .state import Message, NetworkState
from .tool import Tool
from .state import NetworkState, Message
class ModelProvider(Enum):
@@ -1,14 +1,14 @@
"""Network implementation for orchestrating multiple agents."""
from typing import Any, Dict, List, Optional, Union, TypeVar, Generic
from dataclasses import dataclass, field
from datetime import datetime
from typing import Any, Dict, Generic, List, Optional, TypeVar, Union
from .agent import Agent
from .router import (
Router,
RouterFunction,
RouterArgs,
RouterFunction,
RoutingAgent,
get_default_routing_agent,
)
@@ -1,8 +1,8 @@
"""Router system for agent networks in Hanzo Network."""
from typing import Any, Callable, Dict, Optional, Union, Protocol
from dataclasses import dataclass
from enum import Enum
from typing import Any, Callable, Dict, Optional, Protocol, Union
from .agent import Agent, ModelConfig
from .state import NetworkState
@@ -1,8 +1,8 @@
"""Network state management for agent networks."""
from typing import Any, Dict, List, Optional, TypeVar, Generic
from dataclasses import dataclass, field
from datetime import datetime
from typing import Any, Dict, Generic, List, Optional, TypeVar
T = TypeVar("T")
@@ -1,8 +1,9 @@
"""Tool system for agents in Hanzo Network."""
from typing import Any, Callable, Dict, Optional, Protocol, TypedDict
from dataclasses import dataclass
import inspect
from dataclasses import dataclass
from typing import Any, Callable, Dict, Optional, Protocol, TypedDict
from pydantic import BaseModel, create_model
@@ -1,5 +1,6 @@
from abc import ABC, abstractmethod
from typing import List
from .peer_handle import PeerHandle
@@ -1,18 +1,17 @@
import grpc
import numpy as np
import asyncio
from typing import Optional, List
from . import node_service_pb2
from . import node_service_pb2_grpc
from ..peer_handle import PeerHandle
from .inference.shard import Shard
from .topology.topology import Topology
from .topology.device_capabilities import DeviceCapabilities, DeviceFlops
from .helpers import DEBUG
import json
import platform
from typing import List, Optional
import grpc
import numpy as np
from ..peer_handle import PeerHandle
from . import node_service_pb2, node_service_pb2_grpc
from .helpers import DEBUG
from .inference.shard import Shard
from .topology.device_capabilities import DeviceCapabilities, DeviceFlops
from .topology.topology import Topology
if platform.system().lower() == "darwin" and platform.machine().lower() == "arm64":
import mlx.core as mx
@@ -1,16 +1,15 @@
import grpc
from concurrent import futures
import numpy as np
from asyncio import CancelledError
import json
import platform
from asyncio import CancelledError
from concurrent import futures
from . import node_service_pb2
from . import node_service_pb2_grpc
import grpc
import numpy as np
from net import DEBUG
from . import node_service_pb2, node_service_pb2_grpc
from .inference.shard import Shard
from .orchestration import Node
import json
if platform.system().lower() == "darwin" and platform.machine().lower() == "arm64":
import mlx.core as mx
@@ -1,6 +1,6 @@
"""Simplified gRPC server for distributed Hanzo networks."""
from typing import Dict, Any
from typing import Any, Dict
class GRPCServer:
@@ -1,13 +1,13 @@
import os
import asyncio
from typing import Dict, List, Callable, Optional
import os
from concurrent.futures import ThreadPoolExecutor
from typing import Callable, Dict, List, Optional
from .networking.discovery import Discovery
from .topology.device_capabilities import DeviceCapabilities
from .networking.manual.network_topology_config import NetworkTopology, PeerConfig
from .helpers import DEBUG_DISCOVERY
from .networking.discovery import Discovery
from .networking.manual.network_topology_config import NetworkTopology, PeerConfig
from .networking.peer_handle import PeerHandle
from .topology.device_capabilities import DeviceCapabilities
class ManualDiscovery(Discovery):
@@ -1,4 +1,5 @@
from typing import Dict
from pydantic import BaseModel, ValidationError
from .topology.device_capabilities import DeviceCapabilities
@@ -1,11 +1,12 @@
import json
import asyncio
import json
import unittest
from unittest import mock
from .networking.manual.manual_discovery import ManualDiscovery
from .networking.manual.network_topology_config import NetworkTopology
from .networking.grpc.grpc_peer_handle import GRPCPeerHandle
from .networking.grpc.grpc_server import GRPCServer
from .networking.manual.manual_discovery import ManualDiscovery
from .networking.manual.network_topology_config import NetworkTopology
from .orchestration.node import Node
root_path = "./exo/networking/manual/test_data/test_config.json"
@@ -1,9 +1,10 @@
"""Minimal discovery implementation for testing."""
from typing import List, Dict, Any, Optional
from typing import Any, Dict, List, Optional
from ..device_capabilities import DeviceCapabilities
from .discovery import Discovery
from .simplified_peer_handle import SimplifiedPeerHandle
from ..device_capabilities import DeviceCapabilities
class MinimalPeerHandle(SimplifiedPeerHandle):
@@ -1,6 +1,8 @@
from abc import ABC, abstractmethod
from typing import Optional, List
from typing import List, Optional
import numpy as np
from ..inference.shard import Shard
from ..topology.device_capabilities import DeviceCapabilities
from ..topology.topology import Topology
@@ -1,7 +1,8 @@
"""Simplified peer handle for distributed networking without full inference support."""
from abc import ABC, abstractmethod
from typing import Optional, Any, Dict
from typing import Any, Dict, Optional
from ..topology.device_capabilities import DeviceCapabilities
@@ -1,21 +1,22 @@
import asyncio
import time
import traceback
from typing import List, Dict, Callable, Tuple
from typing import Callable, Dict, List, Tuple
from .helpers import DEBUG, DEBUG_DISCOVERY
from .networking.discovery import Discovery
from .networking.peer_handle import PeerHandle
from .tailscale_helpers import (
Device,
get_device_attributes,
get_device_id,
get_tailscale_devices,
update_device_attributes,
)
from .topology.device_capabilities import (
UNKNOWN_DEVICE_CAPABILITIES,
DeviceCapabilities,
device_capabilities,
UNKNOWN_DEVICE_CAPABILITIES,
)
from .helpers import DEBUG, DEBUG_DISCOVERY
from .tailscale_helpers import (
get_device_id,
update_device_attributes,
get_device_attributes,
get_tailscale_devices,
Device,
)
@@ -1,11 +1,13 @@
import json
import asyncio
import aiohttp
import json
import re
from typing import Dict, Any, Tuple, List, Optional
from datetime import datetime, timezone
from typing import Any, Dict, List, Optional, Tuple
import aiohttp
from .helpers import DEBUG_DISCOVERY
from .topology.device_capabilities import DeviceCapabilities, DeviceFlops
from datetime import datetime, timezone
class Device:
@@ -1,8 +1,9 @@
import os
import asyncio
import os
import unittest
from .networking.tailscale.tailscale_discovery import TailscaleDiscovery
from .networking.peer_handle import PeerHandle
from .networking.tailscale.tailscale_discovery import TailscaleDiscovery
class TestTailscaleDiscovery(unittest.IsolatedAsyncioTestCase):
@@ -1,9 +1,10 @@
import asyncio
import unittest
from unittest import mock
from .networking.udp.udp_discovery import UDPDiscovery
from .networking.grpc.grpc_peer_handle import GRPCPeerHandle
from .networking.grpc.grpc_server import GRPCServer
from .networking.udp.udp_discovery import UDPDiscovery
from .orchestration.node import Node
@@ -3,20 +3,21 @@ import json
import socket
import time
import traceback
from typing import List, Dict, Callable, Tuple, Coroutine, Optional
from .networking.discovery import Discovery
from .networking.peer_handle import PeerHandle
from .topology.device_capabilities import (
DeviceCapabilities,
device_capabilities,
UNKNOWN_DEVICE_CAPABILITIES,
)
from typing import Callable, Coroutine, Dict, List, Optional, Tuple
from .helpers import (
DEBUG,
DEBUG_DISCOVERY,
get_all_ip_addresses_and_interfaces,
get_interface_priority_and_type,
)
from .networking.discovery import Discovery
from .networking.peer_handle import PeerHandle
from .topology.device_capabilities import (
UNKNOWN_DEVICE_CAPABILITIES,
DeviceCapabilities,
device_capabilities,
)
class ListenProtocol(asyncio.DatagramProtocol):
@@ -4,11 +4,11 @@ import asyncio
import json
import socket
import time
from typing import List, Dict, Tuple
from typing import Dict, List, Tuple
from ..device_capabilities import DeviceCapabilities
from .discovery import Discovery
from .minimal_discovery import MinimalPeerHandle
from ..device_capabilities import DeviceCapabilities
def get_broadcast_address(ip_addr: str) -> str:
@@ -1,17 +1,17 @@
"""Distributed Network implementation using Hanzo Net infrastructure."""
import asyncio
from typing import Any, Dict, List, Optional, Union, TypeVar
from dataclasses import dataclass
from typing import Any, Dict, List, Optional, TypeVar, Union
from .core.network import Network, NetworkConfig
from .core.agent import Agent
from .core.network import Network, NetworkConfig
from .core.router import Router, RouterFunction, RoutingAgent
from .core.state import NetworkState
from .distributed.discovery import Discovery
from .distributed.grpc_server import GRPCServer
from .distributed.simplified_peer_handle import SimplifiedPeerHandle as PeerHandle
from .distributed.udp_discovery import UDPDiscovery
from .distributed.grpc_server import GRPCServer
from .topology.device_capabilities import DeviceCapabilities, device_capabilities
T = TypeVar("T")
@@ -1,7 +1,7 @@
"""Shard downloader for distributed model loading."""
from typing import Optional, Dict, Any
from pathlib import Path
from typing import Any, Dict, Optional
class ShardDownloader:
@@ -1,14 +1,15 @@
"""Helper functions for distributed Hanzo networks."""
import os
import asyncio
import socket
import random
import os
import platform
import psutil
import random
import socket
import subprocess
from typing import Tuple, List
from concurrent.futures import ThreadPoolExecutor
from typing import List, Tuple
import psutil
DEBUG = int(os.getenv("DEBUG", default="0"))
DEBUG_DISCOVERY = int(os.getenv("DEBUG_DISCOVERY", default="0"))
@@ -1,8 +1,10 @@
import asyncio
import numpy as np
from .inference.inference_engine import InferenceEngine
from .inference.shard import Shard
from .inference.tinygrad.inference import TinygradDynamicShardInferenceEngine
import asyncio
import numpy as np
# An inference engine should work the same for any number of Shards, as long as the Shards are continuous.
@@ -11,9 +13,10 @@ async def test_inference_engine(
inference_engine_2: InferenceEngine,
model_id: str,
):
from .inference.tinygrad.inference import Tokenizer
from pathlib import Path
from .inference.tinygrad.inference import Tokenizer
_tokenizer = Tokenizer(str(Path(model_id) / "tokenizer.model"))
prompt = "In a single word only, what is the last name of the president of the United States? "
@@ -1,5 +1,7 @@
from typing import Optional
import numpy as np
from .inference.inference_engine import InferenceEngine
from .inference.shard import Shard
from .inference.tokenizers import DummyTokenizer
@@ -1,11 +1,12 @@
import numpy as np
import os
from .helpers import DEBUG # Make sure to import DEBUG
from typing import Optional
from abc import ABC, abstractmethod
from .shard import Shard
from typing import Optional
import numpy as np
from .download.shard_download import ShardDownloader
from .helpers import DEBUG # Make sure to import DEBUG
from .shard import Shard
class InferenceEngine(ABC):
@@ -82,9 +83,10 @@ def get_inference_engine(inference_engine_name: str, shard_downloader: ShardDown
return MLXDynamicShardInferenceEngine(shard_downloader)
elif inference_engine_name == "tinygrad":
from .inference.tinygrad.inference import TinygradDynamicShardInferenceEngine
import tinygrad.helpers
from .inference.tinygrad.inference import TinygradDynamicShardInferenceEngine
tinygrad.helpers.DEBUG.value = int(os.getenv("TINYGRAD_DEBUG", default="0"))
return TinygradDynamicShardInferenceEngine(shard_downloader)
@@ -1,23 +1,21 @@
# Adapted from https://github.com/ml-explore/mlx-examples/blob/main/stable_diffusion/stable_diffusion/__init__.py
import time
import inspect
import time
from dataclasses import dataclass, field
from pathlib import Path
import mlx.core as mx
import mlx.nn as nn
from pathlib import Path
from tqdm import tqdm
from .sd_models.vae import ModelArgs as VAEArgs
from .sd_models.vae import Autoencoder
from .sd_models.tokenizer import load_tokenizer
from .inference.shard import Shard
from .sd_models.clip import CLIPTextModel
from .sd_models.clip import ModelArgs as CLIPArgs
from .sd_models.tokenizer import load_tokenizer
from .sd_models.unet import UNetConfig, UNetModel
from dataclasses import dataclass, field
from .inference.shard import Shard
from .sd_models.vae import Autoencoder
from .sd_models.vae import ModelArgs as VAEArgs
@dataclass
@@ -1,4 +1,5 @@
from typing import Optional
import mlx.core as mx
import mlx.nn as nn
from mlx_lm.models.cache import KVCache
@@ -3,9 +3,9 @@ from typing import Optional
import mlx.core as mx
import mlx.nn as nn
from mlx_lm.models.cache import KVCache
from mlx_lm.models.deepseek_v2 import ModelArgs, DeepseekV2DecoderLayer
from mlx_lm.models.deepseek_v2 import DeepseekV2DecoderLayer, ModelArgs
from .base import IdentityBlock
from .inference.shard import Shard
@@ -3,12 +3,14 @@ from typing import Optional
import mlx.core as mx
import mlx.nn as nn
from mlx_lm.models.cache import KVCache
from mlx_lm.models.deepseek_v3 import (
ModelArgs as V3ModelArgs,
DeepseekV3DecoderLayer,
)
from mlx_lm.models.deepseek_v3 import (
ModelArgs as V3ModelArgs,
)
from .base import IdentityBlock
from .inference.shard import Shard
@@ -2,9 +2,8 @@ from dataclasses import dataclass, field
import mlx.core as mx
import mlx.nn as nn
from mlx_lm.models.base import create_attention_mask
from mlx_lm.models.gemma2 import TransformerBlock, ModelArgs, RMSNorm
from mlx_lm.models.gemma2 import ModelArgs, RMSNorm, TransformerBlock
from ...shard import Shard
from .base import IdentityBlock
@@ -2,9 +2,8 @@ from dataclasses import dataclass, field
import mlx.core as mx
import mlx.nn as nn
from mlx_lm.models.base import create_attention_mask
from mlx_lm.models.llama import TransformerBlock, ModelArgs
from mlx_lm.models.llama import ModelArgs, TransformerBlock
from ...shard import Shard
from .base import IdentityBlock
@@ -1,16 +1,17 @@
# Copyright © 2024 Apple Inc.
import math
import inspect
import math
from dataclasses import dataclass, field
from typing import Optional, Dict, Union
from typing import Dict, Optional, Union
import mlx.core as mx
import mlx.nn as nn
from mlx_lm.models.base import BaseModelArgs, KVCache
from .inference.shard import Shard
from .base import IdentityBlock
import numpy as np
from mlx_lm.models.base import BaseModelArgs, KVCache
from .base import IdentityBlock
from .inference.shard import Shard
@dataclass
@@ -2,9 +2,8 @@ from dataclasses import dataclass, field
import mlx.core as mx
import mlx.nn as nn
from mlx_lm.models.base import create_attention_mask
from mlx_lm.models.phi3 import TransformerBlock, ModelArgs
from mlx_lm.models.phi3 import ModelArgs, TransformerBlock
from ...shard import Shard
from .base import IdentityBlock
@@ -2,9 +2,8 @@ from dataclasses import dataclass, field
import mlx.core as mx
import mlx.nn as nn
from mlx_lm.models.base import create_attention_mask
from mlx_lm.models.qwen2 import TransformerBlock, ModelArgs
from mlx_lm.models.qwen2 import ModelArgs, TransformerBlock
from ...shard import Shard
from .base import IdentityBlock
@@ -1,14 +1,14 @@
# Adapted from https://github.com/ml-explore/mlx-examples/blob/main/stable_diffusion/stable_diffusion/clip.py
import math
from dataclasses import dataclass
from dataclasses import dataclass, field
from typing import List, Optional
import mlx.core as mx
import mlx.nn as nn
from dataclasses import field
from .inference.shard import Shard
from .inference.mlx.models.base import IdentityBlock
from .inference.shard import Shard
_ACTIVATIONS = {"quick_gelu": nn.gelu_fast_approx, "gelu": nn.gelu}
@@ -1,8 +1,9 @@
# adapted from https://github.com/ml-explore/mlx-examples/blob/main/stable_diffusion/stable_diffusion/tokenizer.py
import regex
import json
import glob
import json
import regex
class Tokenizer:
@@ -1,13 +1,12 @@
# Adapted from https://github.com/ml-explore/mlx-examples/blob/main/stable_diffusion/stable_diffusion/unet.py
import math
from typing import Optional
from dataclasses import dataclass, field
from typing import List, Optional, Tuple
import mlx.core as mx
import mlx.nn as nn
from dataclasses import dataclass, field
from typing import Tuple, List
from .inference.shard import Shard
@@ -1,17 +1,16 @@
# Adapted from https://github.com/ml-explore/mlx-examples/blob/main/stable_diffusion/stable_diffusion/vae.py
import inspect
import math
from typing import List
from dataclasses import dataclass, field
from typing import List, Tuple
import mlx.core as mx
import mlx.nn as nn
from .unet import ResnetBlock2D, upsample_nearest
from dataclasses import dataclass, field
from .inference.shard import Shard
from typing import Tuple
import inspect
from ..base import IdentityBlock
from .inference.shard import Shard
from .unet import ResnetBlock2D, upsample_nearest
@dataclass
@@ -1,18 +1,20 @@
import numpy as np
import mlx.core as mx
import mlx.nn as nn
from mlx_lm.sample_utils import make_sampler
import mlx.optimizers as optim
from ..inference_engine import InferenceEngine
from .sharded_utils import load_model_shard, resolve_tokenizer
from .losses import loss_fns
from ..shard import Shard
from typing import Optional
from .download.shard_download import ShardDownloader
import asyncio
from collections import OrderedDict
from mlx_lm.models.cache import make_prompt_cache
from concurrent.futures import ThreadPoolExecutor
from typing import Optional
import mlx.core as mx
import mlx.nn as nn
import mlx.optimizers as optim
import numpy as np
from mlx_lm.models.cache import make_prompt_cache
from mlx_lm.sample_utils import make_sampler
from ..inference_engine import InferenceEngine
from ..shard import Shard
from .download.shard_download import ShardDownloader
from .losses import loss_fns
from .sharded_utils import load_model_shard, resolve_tokenizer
class MLXDynamicShardInferenceEngine(InferenceEngine):
@@ -1,26 +1,25 @@
# Adapted from https://github.com/ml-explore/mlx-examples/blob/main/llms/mlx_lm/utils.py
import base64
import glob
import importlib
import json
import logging
import aiohttp
import traceback
from io import BytesIO
from pathlib import Path
from typing import Optional, Tuple
from PIL import Image
from io import BytesIO
import base64
import traceback
import aiohttp
import mlx.core as mx
import mlx.nn as nn
from mlx_lm.tokenizer_utils import TokenizerWrapper
from net import DEBUG
from PIL import Image
from transformers import AutoProcessor
from mlx_lm.tokenizer_utils import TokenizerWrapper
from net import DEBUG
from .inference.tokenizers import resolve_tokenizer
from ..shard import Shard
from .inference.tokenizers import resolve_tokenizer
class ModelNotFoundError(Exception):
@@ -1,10 +1,11 @@
import asyncio
import time
from .inference.mlx.sharded_inference_engine import MLXDynamicShardInferenceEngine
from collections import deque
from .download.new_shard_download import NewShardDownloader
from .inference.mlx.sharded_inference_engine import MLXDynamicShardInferenceEngine
from .inference.shard import Shard
from .models import build_base_shard
from collections import deque
async def test_non_blocking():
@@ -1,9 +1,11 @@
from .inference.shard import Shard
from typing import Optional
import mlx.core as mx
import mlx.nn as nn
from typing import Optional
import numpy as np
from .inference.shard import Shard
class DummyModel(nn.Module):
def __init__(self, shard: Optional[Shard] = None):
@@ -1,5 +1,6 @@
import pytest
import numpy as np
import pytest
from .inference.dummy_inference_engine import DummyInferenceEngine
from .inference.shard import Shard
@@ -1,11 +1,13 @@
from .inference.mlx.sharded_inference_engine import MLXDynamicShardInferenceEngine
from .inference.inference_engine import InferenceEngine
from .download.new_shard_download import NewShardDownloader
from .inference.shard import Shard
import os
import asyncio
import os
import numpy as np
from .download.new_shard_download import NewShardDownloader
from .inference.inference_engine import InferenceEngine
from .inference.mlx.sharded_inference_engine import MLXDynamicShardInferenceEngine
from .inference.shard import Shard
# An inference engine should work the same for any number of Shards, as long as the Shards are continuous.
async def test_inference_engine(
@@ -80,8 +82,10 @@ asyncio.run(
)
if os.getenv("RUN_TINYGRAD", default="0") == "1":
import tinygrad
import os
import tinygrad
from .inference.tinygrad.inference import TinygradDynamicShardInferenceEngine
tinygrad.helpers.DEBUG.value = int(os.getenv("TINYGRAD_DEBUG", default="0"))
@@ -1,5 +1,17 @@
from pathlib import Path
import asyncio
import os
from collections import OrderedDict
from concurrent.futures import ThreadPoolExecutor
from pathlib import Path
from typing import Optional
import numpy as np
from tinygrad import Context, Tensor, nn
from tinygrad.nn.state import get_state_dict, load_state_dict, safe_load, safe_save
from .download.shard_download import ShardDownloader
from .inference.inference_engine import InferenceEngine
from .inference.shard import Shard
from .inference.tinygrad.models.llama import (
Transformer,
TransformerShard,
@@ -7,20 +19,10 @@ from .inference.tinygrad.models.llama import (
fix_bf16,
sample_logits,
)
from .inference.shard import Shard
from .inference.tokenizers import resolve_tokenizer
from tinygrad.nn.state import safe_save, safe_load, get_state_dict, load_state_dict
from tinygrad import Tensor, nn, Context
from .inference.inference_engine import InferenceEngine
import numpy as np
from .inference.tinygrad.tinygrad_helpers import concat_weights, load
from .download.shard_download import ShardDownloader
from concurrent.futures import ThreadPoolExecutor
from .stateful_model import make_prompt_state
from .inference.tokenizers import resolve_tokenizer
from .losses import length_masked_ce_loss
from collections import OrderedDict
import asyncio
from typing import Optional
from .stateful_model import make_prompt_state
Tensor.no_grad = True
# default settings
@@ -1,5 +1,5 @@
from tinygrad import Tensor, dtypes
import numpy as np
from tinygrad import Tensor, dtypes
def length_masked_ce_loss(model, inputs, targets, lengths):
@@ -1,5 +1,6 @@
from typing import Tuple, Union, Optional, Dict, Any, List
from tinygrad import Tensor, Variable, TinyJit, dtypes, nn, Device
from typing import Any, Dict, List, Optional, Tuple, Union
from tinygrad import Device, Tensor, TinyJit, Variable, dtypes, nn
from tinygrad.helpers import getenv
from .inference.shard import Shard
@@ -1,6 +1,7 @@
from tinygrad import Tensor
from typing import List
from os import getenv
from typing import List
from tinygrad import Tensor
def create_kv_cache(x: Tensor, layer):
@@ -1,13 +1,15 @@
from tinygrad.nn.state import safe_load, torch_load
from tinygrad import Tensor
from pathlib import Path
import json
from typing import List
from .inference.shard import Shard
from .helpers import DEBUG
from .download.hf.hf_helpers import get_allow_patterns
from fnmatch import fnmatch
import re
from fnmatch import fnmatch
from pathlib import Path
from typing import List
from tinygrad import Tensor
from tinygrad.nn.state import safe_load, torch_load
from .download.hf.hf_helpers import get_allow_patterns
from .helpers import DEBUG
from .inference.shard import Shard
# **** helper functions ****
@@ -1,7 +1,9 @@
import traceback
from os import PathLike
from typing import Union
import numpy as np
from .helpers import DEBUG
# Lazy imports to avoid dependencies when not needed
@@ -11,7 +13,7 @@ except ImportError:
aios = None
try:
from transformers import AutoTokenizer, AutoProcessor
from transformers import AutoProcessor, AutoTokenizer
except ImportError:
AutoTokenizer = None
AutoProcessor = None
@@ -1,6 +1,6 @@
"""Local LLM support for Hanzo Network."""
from .local_llm import LocalLLMProvider, HanzoNetProvider, OllamaProvider, MLXProvider
from .local_llm import HanzoNetProvider, LocalLLMProvider, MLXProvider, OllamaProvider
__all__ = [
"LocalLLMProvider",
@@ -1,16 +1,14 @@
"""Local LLM providers using hanzo/net distributed inference."""
import asyncio
from typing import Any, Dict, List, Optional
from abc import ABC, abstractmethod
# Commenting out missing imports - need to implement these
# from .inference.inference_engine import get_inference_engine
# from .inference.shard import Shard
# from .download.shard_download import ShardDownloader
# Define Message locally for now
from typing import TypedDict
from typing import Any, Dict, List, Optional, TypedDict
class Message(TypedDict):
@@ -5,13 +5,13 @@ various models and hardware acceleration, integrated with the Hanzo network
for decentralized coordination and payments.
"""
import time
import hashlib
import asyncio
import hashlib
import json
from typing import Dict, Any, List, Optional
import time
from dataclasses import dataclass, field
from enum import Enum
from typing import Any, Dict, List, Optional
# Try to import ML dependencies
try:
@@ -1,9 +1,10 @@
"""Helper functions for creating local networks with local LLMs."""
from typing import List, Optional
from .core.agent import Agent, ModelConfig, ModelProvider, create_agent
from .core.tool import Tool
from .distributed_network import create_distributed_network, DistributedNetwork
from .distributed_network import DistributedNetwork, create_distributed_network
def create_local_agent(
@@ -1,9 +1,9 @@
"""Memory tools for agents using the hanzo-memory package."""
from typing import Any, Dict, List, Optional
from dataclasses import dataclass
from typing import Any, Dict, List, Optional
from .core.tool import Tool, create_tool, ToolContext
from .core.tool import Tool, ToolContext, create_tool
# Import from hanzo-memory package when available
try:
@@ -1,9 +1,10 @@
"""Device capabilities for distributed Hanzo networks."""
from typing import Any
from pydantic import BaseModel
import platform
from typing import Any
import psutil
from pydantic import BaseModel
DEBUG = 0 # Default debug level
TFLOPS = 1.00
@@ -1,8 +1,9 @@
from abc import ABC, abstractmethod
from typing import List
from dataclasses import dataclass
from .topology import Topology
from typing import List
from .inference.shard import Shard
from .topology import Topology
# Partitions shard-space into pieces of contiguous shards, represented by floating point range [start, end) between 0 and 1
@@ -1,7 +1,7 @@
from typing import List
from .partitioning_strategy import PartitioningStrategy
from .partitioning_strategy import Partition, PartitioningStrategy
from .topology import Topology
from .partitioning_strategy import Partition
class RingMemoryWeightedPartitioningStrategy(PartitioningStrategy):
@@ -1,11 +1,13 @@
from unittest.mock import Mock, patch
import pytest
from unittest.mock import patch, Mock
from .topology.device_capabilities import (
mac_device_capabilities,
TFLOPS,
DeviceCapabilities,
DeviceFlops,
TFLOPS,
device_capabilities,
mac_device_capabilities,
)
@@ -1,7 +1,8 @@
import unittest
from typing import List
from .topology.partitioning_strategy import Partition, map_partitions_to_shards
from .inference.shard import Shard
from .topology.partitioning_strategy import Partition, map_partitions_to_shards
class TestRingMemoryWeightedPartitioningStrategy(unittest.TestCase):
@@ -1,10 +1,11 @@
import unittest
from .topology.device_capabilities import DeviceCapabilities, DeviceFlops
from .topology.partitioning_strategy import Partition
from .topology.ring_memory_weighted_partitioning_strategy import (
RingMemoryWeightedPartitioningStrategy,
)
from .topology.topology import Topology
from .topology.device_capabilities import DeviceCapabilities, DeviceFlops
from .topology.partitioning_strategy import Partition
class TestRingMemoryWeightedPartitioningStrategy(unittest.TestCase):
@@ -1,6 +1,7 @@
from .device_capabilities import DeviceCapabilities
from typing import Dict, Set, Optional
from dataclasses import dataclass
from typing import Dict, Optional, Set
from .device_capabilities import DeviceCapabilities
@dataclass
@@ -1,7 +1,9 @@
"""Tests for distributed network functionality."""
import asyncio
import pytest
from hanzo_network import create_agent, create_distributed_network, create_tool