All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- (Breaking) socket binding for
JudgeEnv
andJudgeMultiEnv
are separated fromstart
method intobind
method. (Now before callingstart
you need to callbind
first.) - (Breaking)
port
is no longer optional forAgentEnv
- (Breaking)
port
now defaults toNone
(i.e. use a random available port) forJudgeEnv
andJudgeMultiEnv
- Updated examples to reflect these breaking changes - especially for "multiproc" examples.
- When initializing
JudgeEnv
orJudgeMultiEnv
, ifport
is not provided, orNone
, or 0, a random available port will be used inbind
method.bind
method will always return the port number used by this judge instance.
- No longer calls
logging.basicConfig
in__init__.py
(otherwise importing this module would invalidate all subsequent logger configs).
- Examples of using multiprocessing to run multi-agent judge env and several agents within one program.
- Ignoring render/seed/close requests in JudgeMultiEnv (as for how to handle these
methods properly, please refer to how
close
is handled in./example/multiproc_multi.py
). - Code formatted by black formatter.
- Example of using Python multiprocessing to run both judge and agent within one program.
- Incorrect place of binding listening socket in
JudgeEnv
that prevents multiprocessing from working properly.
- Initialize project