History#

v3.2.0#

27 Jun 2023

Features#

  • Require Python 3.8 or later.

v3.1.0#

24 Nov 2021

Require Python 3.7 or later.

v3.0.0#

07 Oct 2021

Removed legacy aliases wait_for_occupied_port and wait_for_free_port.

v2.7.2#

07 Oct 2021

Packaging refresh.

v2.7.1#

13 Feb 2021

#14: Fix host/port order.

v2.7.0#

16 Nov 2020

Refresh package. Require Python 3.6 or later.

2.6#

Package refresh.

2.5#

#10: Fix race condition in occupied and free.

2.4#

#6: find_available_local_port now relies on

socket.getaddrinfo to find a suitable address family.

2.3#

Package refresh.

2.2#

Merge with skeleton, including embedded license file.

2.1.2#

Fix README rendering.

2.1.1#

#5: Restored use of portend.client_host during

assert_free check on Windows, fixing check when the bind address is *ADDR_ANY.

2.1#

Use tempora.timing.Timer from tempora 1.8, replacing boilerplate code in occupied and free functions.

#1: Removed portend._getaddrinfo and its usage in

Checker.assert_free.

Dropped support for Python 2.6.

1.8#

Remove dependency on jaraco.compat and instead just copy and reference the total_seconds compatibility function for Python 2.6.

1.7.1#

  • #2: Use tempora, replacing deprecated jaraco.timing.

1.7#

Expose the port check functionality as portend.Checker class.

1.6.1#

Correct failures on Python 2.6 where datetime.datetime.total_seconds and argparse are unavailable.

1.6#

Add support for Python 2.6 (to support CherryPy).

1.5#

Automatically deploy tagged versions via Travis-CI.

1.4#

Moved hosting to Github.

1.3#

Added find_available_local_port for identifying a local port available for binding.

1.2#

Only require pytest-runner when pytest is invoked.

1.1#

Renamed functions:

  • wait_for_occupied_port: occupied

  • wait_for_free_port: free

The original names are kept as aliases for now.

Added execution support for the portend module. Invoke with python -m portend.

1.0#

Initial release based on utilities in CherryPy 3.5.