1.6.0b1
- Add -h and --help text to the command line tool.
- The command line interface now defaults to associating the returned port with its parent process PID (usually the calling script) when no argument was given as that makes more sense.
- When portpicker is used as a command line tool from a script, if a port is chosen without a portserver it can now be kept bound to a socket by a child process for a user specified timeout. When successful, this helps minimize race conditions as subsequent portpicker CLI invocations within the timeout window cannot choose the same port.
- Some pylint based refactorings to portpicker and portpicker_test.
- Drop 3.6 from our CI test matrix and metadata. It probably still works there, but expect our unittests to include 3.7-ism‘s in the future. We’ll attempt to avoid modern constructs in portpicker.py itself but zero guarantees. Using an old Python? Use an old portpicker.
1.5.2
- Do not re-pick a known used (not-yet-returned) port when running stand alone without a portserver.
1.5.1
1.5.0
- Add portserver support to Windows using named pipes. To create or connect to a server, prefix the name of the server with
@ (e.g. @unittest-portserver).
1.4.0
- Use
async def instead of @asyncio.coroutine in order to support 3.10. - The portserver now checks for and rejects pid values that are out of range.
- Declare a minimum Python version of 3.6 in the package config.
- Rework
portserver_test.py to launch an actual portserver process instead of mocks.
1.3.9
- No portpicker or portserver code changes
- Fixed the portserver test on recent Python 3.x versions.
- Switched to setup.cfg based packaging.
- We no longer declare ourselves Python 2.7 or 3.3-3.5 compatible.
1.3.1
- Fix a race condition in
pick_unused_port() involving the free ports set.
1.3.0
- Adds an optional
portserver_address parameter to pick_unused_port() so that callers can specify their own regardless of os.environ. pick_unused_port() now raises NoFreePortFoundError when no available port could be found rather than spinning in a loop trying forever.- Fall back to
socket.AF_INET when socket.AF_UNIX support is not available to communicate with a portserver.
1.2.0
- Introduced
add_reserved_port() and return_port() APIs to allow ports to be recycled and allow users to bring ports of their own.
1.1.1
- Changed default port range to 15000-24999 to avoid ephemeral ports.
- Portserver bugfix.
1.1.0
- Renamed portpicker APIs to use PEP8 style function names in code and docs.
- Legacy CapWords API name compatibility is maintained (and explicitly tested).
1.0.1
- Code reindented to use 4 space indents and run through YAPF for consistent style.
- Not packaged for release.
1.0.0
- Original open source release.