singleserver 0.1.0__py3-none-any.whl → 0.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
singleserver/__init__.py CHANGED
@@ -24,7 +24,7 @@ from .lock import LockFile, SocketLock
24
24
  from .process import ProcessOwner, ProcessState
25
25
  from .server import ManagedServer, SingleServer
26
26
 
27
- __version__ = "0.1.0"
27
+ __version__ = "0.2.0"
28
28
 
29
29
  __all__ = [
30
30
  # Main classes
singleserver/server.py CHANGED
@@ -45,6 +45,7 @@ class SingleServer:
45
45
  name: str,
46
46
  command: list[str],
47
47
  port: int | None = None,
48
+ host: str = "127.0.0.1",
48
49
  socket: str | Path | None = None,
49
50
  lock_port: int | None = None,
50
51
  lock_socket: str | Path | None = None,
@@ -66,8 +67,9 @@ class SingleServer:
66
67
 
67
68
  Args:
68
69
  name: Identifier for logging/debugging.
69
- command: Command to run. Can include {port} placeholder.
70
+ command: Command to run. Can include {port}, {host}, {socket} placeholders.
70
71
  port: TCP port the server will listen on.
72
+ host: IP address to bind to (default: 127.0.0.1 for localhost only).
71
73
  socket: Unix socket path the server will listen on.
72
74
  lock_port: Separate port for the coordination lock (defaults to port - 1).
73
75
  lock_socket: Separate socket path for coordination lock.
@@ -90,6 +92,7 @@ class SingleServer:
90
92
  self.name = name
91
93
  self._command_template = command
92
94
  self.port = port
95
+ self.host = host
93
96
  self.socket_path = Path(socket) if socket else None
94
97
 
95
98
  # Determine lock address (separate from server address)
@@ -132,6 +135,8 @@ class SingleServer:
132
135
  for part in self._command_template:
133
136
  if "{port}" in part:
134
137
  part = part.replace("{port}", str(self.port))
138
+ if "{host}" in part:
139
+ part = part.replace("{host}", self.host)
135
140
  if "{socket}" in part:
136
141
  part = part.replace("{socket}", str(self.socket_path))
137
142
  result.append(part)
@@ -153,7 +158,7 @@ class SingleServer:
153
158
  def check() -> bool:
154
159
  try:
155
160
  client = ServerClient(
156
- host="127.0.0.1",
161
+ host=self.host,
157
162
  port=self.port,
158
163
  socket_path=self.socket_path,
159
164
  health_check_url=self.health_check_url,
@@ -271,7 +276,7 @@ class SingleServer:
271
276
 
272
277
  # Create client
273
278
  self._client = ServerClient(
274
- host="127.0.0.1",
279
+ host=self.host,
275
280
  port=self.port,
276
281
  socket_path=self.socket_path,
277
282
  health_check_url=self.health_check_url,
@@ -332,6 +337,7 @@ class ManagedServer:
332
337
  name: str,
333
338
  command: list[str],
334
339
  port: int | None = None,
340
+ host: str = "127.0.0.1",
335
341
  socket: str | Path | None = None,
336
342
  **kwargs: Any,
337
343
  ):
@@ -343,6 +349,7 @@ class ManagedServer:
343
349
  self.name = name
344
350
  self._command_template = command
345
351
  self.port = port
352
+ self.host = host
346
353
  self.socket_path = Path(socket) if socket else None
347
354
  self._kwargs = kwargs
348
355
  self._owner: ProcessOwner | None = None
@@ -355,6 +362,8 @@ class ManagedServer:
355
362
  for part in self._command_template:
356
363
  if "{port}" in part:
357
364
  part = part.replace("{port}", str(self.port))
365
+ if "{host}" in part:
366
+ part = part.replace("{host}", self.host)
358
367
  if "{socket}" in part:
359
368
  part = part.replace("{socket}", str(self.socket_path))
360
369
  result.append(part)
@@ -371,7 +380,7 @@ class ManagedServer:
371
380
  def check() -> bool:
372
381
  try:
373
382
  client = ServerClient(
374
- host="127.0.0.1",
383
+ host=self.host,
375
384
  port=self.port,
376
385
  socket_path=self.socket_path,
377
386
  health_check_url=health_check_url,
@@ -401,7 +410,7 @@ class ManagedServer:
401
410
  self._owner.start()
402
411
 
403
412
  self._client = ServerClient(
404
- host="127.0.0.1",
413
+ host=self.host,
405
414
  port=self.port,
406
415
  socket_path=self.socket_path,
407
416
  health_check_url=health_check_url,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: singleserver
3
- Version: 0.1.0
3
+ Version: 0.2.0
4
4
  Summary: Manage singleton server processes across multiple workers using atomic socket binding
5
5
  Project-URL: Homepage, https://github.com/Technology-Company/singleserver
6
6
  Project-URL: Documentation, https://github.com/Technology-Company/singleserver#readme
@@ -0,0 +1,9 @@
1
+ singleserver/__init__.py,sha256=rk66oHBFaM10-woTb7mmc0uv-hIS6RFalUHVfumW7d0,1052
2
+ singleserver/client.py,sha256=6OG9l10xUXG_wLoJOVocy8jRM4f4JItm0A6yr1Rtd0Q,9560
3
+ singleserver/lock.py,sha256=e0AWDnYk3I6_4dYSCwxz4H2FCkb9ItJLinU3palZ2ak,9100
4
+ singleserver/process.py,sha256=GqUyGWZXy85biwiShuU95tMOQXAmbiBBDeXrTEikq-o,17062
5
+ singleserver/server.py,sha256=jHltj1mMEc1mRgnQLZxY42aMCj1_EkWm2siZSd88AAQ,15366
6
+ singleserver-0.2.0.dist-info/METADATA,sha256=Jt4H5c83_gBrQuusA9wR-fPNwIdVTTXpRMdbDJQw9s4,6013
7
+ singleserver-0.2.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
8
+ singleserver-0.2.0.dist-info/licenses/LICENSE,sha256=x6w9qzvmsY6V3iRykNoiSWD0NqCZeV6VejFT4kVi6Fg,1075
9
+ singleserver-0.2.0.dist-info/RECORD,,
@@ -1,9 +0,0 @@
1
- singleserver/__init__.py,sha256=EgSpurqe2RhhGvvKghb74xU9lOsGQexoXP0mMmP4fu8,1052
2
- singleserver/client.py,sha256=6OG9l10xUXG_wLoJOVocy8jRM4f4JItm0A6yr1Rtd0Q,9560
3
- singleserver/lock.py,sha256=e0AWDnYk3I6_4dYSCwxz4H2FCkb9ItJLinU3palZ2ak,9100
4
- singleserver/process.py,sha256=GqUyGWZXy85biwiShuU95tMOQXAmbiBBDeXrTEikq-o,17062
5
- singleserver/server.py,sha256=otrSQVQVNXEpVosG4GuCJk_Iozuqnbwmkt77c0D9cMI,14978
6
- singleserver-0.1.0.dist-info/METADATA,sha256=oZeiUEhP_NpZXtRuaHkO1v0Cml6DJUCn9hXmI6b5KeY,6013
7
- singleserver-0.1.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
8
- singleserver-0.1.0.dist-info/licenses/LICENSE,sha256=x6w9qzvmsY6V3iRykNoiSWD0NqCZeV6VejFT4kVi6Fg,1075
9
- singleserver-0.1.0.dist-info/RECORD,,