NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #5107 most downloaded on PyPI
TCP port monitoring and discovery
Last release 1 years ago
29 May 2025
Release timing varies
gaps range from 2 months to 1.9 years
Most releases are documented
notes for 25 of 31 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
31 releases · first in 2014
No significant changes.
No significant changes.
Features -------- - Require Python 3.8 or later.
Require Python 3.8 or later.
Require Python 3.7 or later.
One column per quarter.
Require Python 3.7 or later.
Removed legacy aliases wait_for_occupied_port and wait_for_free_port.
Removed legacy aliases wait_for_occupied_port and wait_for_free_port.
Packaging refresh.
Packaging refresh.
#14: Fix host/port order.
#14: Fix host/port order.
Refresh package. Require Python 3.6 or later.
Refresh package. Require Python 3.6 or later.
Package refresh.
Package refresh.
#10: Fix race condition in occupied and free.
#10: Fix race condition in occupied and free.
socket.getaddrinfo to find a suitable address family.
socket.getaddrinfo to find a suitable address family.
Package refresh.
Package refresh.
Merge with skeleton, including embedded license file.
Merge with skeleton, including embedded license file.
Fix README rendering.
Fix README rendering.
assert_free check on Windows, fixing check when the bind address is *ADDR_ANY.
assert_free check on Windows, fixing check when the bind address is *ADDR_ANY.
Use tempora.timing.Timer from tempora 1.8, replacing boilerplate code in occupied and free functions.
Use tempora.timing.Timer from tempora 1.8, replacing boilerplate code in occupied and free functions.
Checker.assert_free.
Dropped support for Python 2.6.
Remove dependency on jaraco.compat and instead just copy and reference the total_seconds compatibility function for Python 2.6.
Remove dependency on jaraco.compat and instead just copy and reference the total_seconds compatibility function for Python 2.6.
* #2: Use tempora, replacing deprecated jaraco.timing.
#2: Use tempora, replacing deprecated jaraco.timing.
Expose the port check functionality as portend.Checker class.
Expose the port check functionality as portend.Checker class.
Correct failures on Python 2.6 where datetime.datetime.total_seconds and argparse are unavailable.
Correct failures on Python 2.6 where datetime.datetime.total_seconds and argparse are unavailable.
Add support for Python 2.6 (to support CherryPy).
Add support for Python 2.6 (to support CherryPy).
Nothing published for this version
Moved hosting to Github.
Moved hosting to Github.
Added find_available_local_port for identifying a local port available for binding.
Added find_available_local_port for identifying a local port available for binding.
Only require pytest-runner when pytest is invoked.
Only require pytest-runner when pytest is invoked.
Nothing published for this version
Nothing published for this version
wait_for_occupied_port: occupied
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.
Nothing published for this version
Nothing published for this version
Initial release based on utilities in CherryPy 3.5.
Initial release based on utilities in CherryPy 3.5.
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →