diff --git a/pyproject.toml b/pyproject.toml index afe223b..31f0c22 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,6 @@ authors = [{name='Thomas Schmelzer', email= 'thomas.schmelzer@gmail.com'}] readme = "README.md" requires-python = ">=3.10" dependencies = [ - "loguru>=0.7.3", "numpy>=2.2.3", "pyarrow>=19.0.0", ] @@ -17,6 +16,7 @@ repository = "https://github.com/tschm/numpy-client" [dependency-groups] dev = [ + "loguru>=0.7.3", "pre-commit>=4.1.0", "pytest>=8.3.4", "pytest-cov>=6.0.0", @@ -49,3 +49,4 @@ include = [ [tool.bandit] exclude_dirs = ["tests"] +skips = ["B104"] diff --git a/src/np/flight/numpy_server.py b/src/np/flight/numpy_server.py index 8addf58..484c147 100644 --- a/src/np/flight/numpy_server.py +++ b/src/np/flight/numpy_server.py @@ -1,7 +1,7 @@ +import logging import threading # Module for creating and managing threads; used for thread safety with locking. from abc import ABC, abstractmethod -import loguru # Logging library that simplifies logging setup and usage. import numpy as np import pyarrow.flight as fl # PyArrow's Flight module to handle gRPC-based data transfer with Arrow. @@ -13,7 +13,7 @@ class Server(fl.FlightServerBase, ABC): A Flight Server implementation that handles matrix data and performs computations on it. """ - def __init__(self, host, port, logger=None, **kwargs): + def __init__(self, host="0.0.0.0", port=8080, logger=None, **kwargs): """ Initialize the server with the provided host and port, and optionally a logger. @@ -22,9 +22,9 @@ def __init__(self, host, port, logger=None, **kwargs): :param logger: Optional logger to use for logging messages (defaults to loguru). :param kwargs: Additional arguments passed to the FlightServerBase constructor. """ - uri = f"grpc+tcp://{host}:{port}" + uri = f"grpc://{host}:{port}" super().__init__(uri, **kwargs) # Initialize the base FlightServer with the URI. - self._logger = logger or loguru.logger # Use provided logger or default to loguru's logger. + self._logger = logger or logging.getLogger(__name__) # Use provided logger or default to loguru's logger. self._storage = {} # Dictionary to store uploaded data associated with specific commands. self._lock = threading.Lock() # Lock for ensuring thread safety when accessing shared resources. @@ -101,7 +101,7 @@ def do_get(self, context, ticket): return fl.RecordBatchStream(result_table) @classmethod - def start(cls, host="127.0.0.1", port=5008, logger=None, **kwargs): # pragma: no cover + def start(cls, host="0.0.0.0", port=8080, logger=None, **kwargs): # pragma: no cover """ Start the server with the specified port and logger. @@ -109,7 +109,6 @@ def start(cls, host="127.0.0.1", port=5008, logger=None, **kwargs): # pragma: n :param logger: Optional logger to use. :param kwargs: Additional arguments passed to the constructor. """ - logger = logger or loguru.logger # If no logger is provided, use loguru's default logger. server = cls(host=host, port=port, logger=logger, **kwargs) # Instantiate the server. server.logger.info(f"Starting {cls} Flight server on port {port}...") # Log the server start. server.serve() # Start the server to handle incoming requests. diff --git a/uv.lock b/uv.lock index a50c06e..8313672 100644 --- a/uv.lock +++ b/uv.lock @@ -219,13 +219,13 @@ name = "numpy-flight" version = "0.0.0" source = { editable = "." } dependencies = [ - { name = "loguru" }, { name = "numpy" }, { name = "pyarrow" }, ] [package.dev-dependencies] dev = [ + { name = "loguru" }, { name = "pre-commit" }, { name = "pytest" }, { name = "pytest-cov" }, @@ -234,13 +234,13 @@ dev = [ [package.metadata] requires-dist = [ - { name = "loguru", specifier = ">=0.7.3" }, { name = "numpy", specifier = ">=2.2.3" }, { name = "pyarrow", specifier = ">=19.0.0" }, ] [package.metadata.requires-dev] dev = [ + { name = "loguru", specifier = ">=0.7.3" }, { name = "pre-commit", specifier = ">=4.1.0" }, { name = "pytest", specifier = ">=8.3.4" }, { name = "pytest-cov", specifier = ">=6.0.0" },