aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory P. Smith [Google LLC] <gps@google.com>2021-05-24 15:32:59 -0700
committerGregory P. Smith [Google LLC] <gps@google.com>2021-05-24 15:32:59 -0700
commite9faffbd1287aec48b074c1966ca943a01a19ba4 (patch)
tree5d5a523765a2c33d16172dc366c32b718077bf94
parentc33bdd51b8d2e0a24b05a17b8e9b2192f0977dc8 (diff)
downloadportpicker-e9faffbd1287aec48b074c1966ca943a01a19ba4.tar.gz
Add GH action badge, describe py2, reformat.
-rw-r--r--README.md39
1 files changed, 20 insertions, 19 deletions
diff --git a/README.md b/README.md
index 436fbe6..d24cf26 100644
--- a/README.md
+++ b/README.md
@@ -1,21 +1,22 @@
# Python portpicker module
[![PyPI version](https://badge.fury.io/py/portpicker.svg)](https://badge.fury.io/py/portpicker)
-[![Build Status](https://travis-ci.org/google/python_portpicker.svg?branch=master)](https://travis-ci.org/google/python_portpicker)
+![GH Action Status](https://github.com/github/docs/actions/workflows/main.yml/badge.svg)
+[![Travis CI org Status](https://travis-ci.org/google/python_portpicker.svg?branch=master)](https://travis-ci.org/google/python_portpicker)
-This module is useful for finding unused network ports on a host.
-It supports both Python 2 and Python 3.
+This module is useful for finding unused network ports on a host. If you need
+legacy Python 2 support, use the 1.3.x releases.
-This module provides a pure Python `pick_unused_port()` function.
-It can also be called via the command line for use in shell scripts.
+This module provides a pure Python `pick_unused_port()` function. It can also be
+called via the command line for use in shell scripts.
If your code can accept a bound TCP socket rather than a port number consider
using `socket.bind(('localhost', 0))` to bind atomically to an available port
rather than using this library at all.
There is a race condition between picking a port and your application code
-binding to it. The use of a port server by all of your test code to avoid
-that problem is recommended on loaded test hosts running many tests at a time.
+binding to it. The use of a port server by all of your test code to avoid that
+problem is recommended on loaded test hosts running many tests at a time.
Unless you are using a port server, subsequent calls to `pick_unused_port()` to
obtain an additional port are not guaranteed to return a unique port.
@@ -23,22 +24,22 @@ obtain an additional port are not guaranteed to return a unique port.
### What is the optional port server?
A port server is intended to be run as a daemon, for use by all processes
-running on the host. It coordinates uses of network ports by anything using
-a portpicker library. If you are using hosts as part of a test automation
-cluster, each one should run a port server as a daemon. You should set the
+running on the host. It coordinates uses of network ports by anything using a
+portpicker library. If you are using hosts as part of a test automation cluster,
+each one should run a port server as a daemon. You should set the
`PORTSERVER_ADDRESS=@unittest-portserver` environment variable on all of your
test runners so that portpicker makes use of it.
-A sample port server is included. This portserver implementation works but has
-not spent time in production. If you use it with good results please report
-back so that this statement can be updated to reflect that. :)
+A sample port server is included. This portserver implementation works but has
+not spent time in production. If you use it with good results please report back
+so that this statement can be updated to reflect that. :)
-A port server listens on a unix socket, reads a pid from a new connection,
-tests the ports it is managing and replies with a port assignment port for that
-pid. A port is only reclaimed for potential reassignment to another process
-after the process it was originally assigned to has died. Processes that need
-multiple ports can simply issue multiple requests and are guaranteed they will
-each be unique.
+A port server listens on a unix socket, reads a pid from a new connection, tests
+the ports it is managing and replies with a port assignment port for that pid. A
+port is only reclaimed for potential reassignment to another process after the
+process it was originally assigned to has died. Processes that need multiple
+ports can simply issue multiple requests and are guaranteed they will each be
+unique.
## Typical usage: