Metadata-Version: 2.1
Name: chicken-coop
Version: 0.0.2
Summary: An environment for reproducing dominance hierarchies in RL agents
Home-page: https://github.com/cool-RR/chicken_coop
Author: Ram Rachum
Author-email: ram@rachum.com
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: License :: OSI Approved :: MIT License
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: Babel (==2.12.1)
Requires-Dist: Farama-Notifications (==0.0.4)
Requires-Dist: Jinja2 (==3.1.2)
Requires-Dist: Keras-Preprocessing (==1.1.2)
Requires-Dist: Markdown (==3.4.4)
Requires-Dist: MarkupSafe (==2.1.3)
Requires-Dist: Pillow (==10.0.0)
Requires-Dist: PySnooper (==1.2.0)
Requires-Dist: PyWavelets (==1.4.1)
Requires-Dist: PyYAML (==6.0.1)
Requires-Dist: Pygments (==2.15.1)
Requires-Dist: QtPy (==2.3.1)
Requires-Dist: Send2Trash (==1.8.2)
Requires-Dist: Werkzeug (==2.3.6)
Requires-Dist: absl-py (==1.4.0)
Requires-Dist: aiohttp-cors (==0.7.0)
Requires-Dist: aiohttp (==3.8.5)
Requires-Dist: aiosignal (==1.3.1)
Requires-Dist: annotated-types (==0.5.0)
Requires-Dist: anyio (==3.7.1)
Requires-Dist: argon2-cffi-bindings (==21.2.0)
Requires-Dist: argon2-cffi (==21.3.0)
Requires-Dist: arrow (==1.2.3)
Requires-Dist: asttokens (==2.2.1)
Requires-Dist: astunparse (==1.6.3)
Requires-Dist: async-lru (==2.0.3)
Requires-Dist: async-timeout (==4.0.2)
Requires-Dist: attrs (==23.1.0)
Requires-Dist: backcall (==0.2.0)
Requires-Dist: beautifulsoup4 (==4.12.2)
Requires-Dist: better-exceptions (==0.3.3)
Requires-Dist: black (==23.7.0)
Requires-Dist: bleach (==6.0.0)
Requires-Dist: blessed (==1.20.0)
Requires-Dist: cachetools (==5.3.1)
Requires-Dist: certifi (==2023.7.22)
Requires-Dist: cffi (==1.15.1)
Requires-Dist: charset-normalizer (==3.2.0)
Requires-Dist: click (==8.1.6)
Requires-Dist: cloudpickle (==2.2.1)
Requires-Dist: cmake (==3.27.0)
Requires-Dist: colorama (==0.4.6)
Requires-Dist: colorful (==0.5.5)
Requires-Dist: comm (==0.1.3)
Requires-Dist: contourpy (==1.1.0)
Requires-Dist: cycler (==0.11.0)
Requires-Dist: debugpy (==1.6.7)
Requires-Dist: decorator (==5.1.1)
Requires-Dist: defusedxml (==0.7.1)
Requires-Dist: distlib (==0.3.7)
Requires-Dist: dm-tree (==0.1.8)
Requires-Dist: entrypoints (==0.4)
Requires-Dist: executing (==1.2.0)
Requires-Dist: fastjsonschema (==2.18.0)
Requires-Dist: filelock (==3.12.2)
Requires-Dist: flatbuffers (==23.5.26)
Requires-Dist: fonttools (==4.41.1)
Requires-Dist: fqdn (==1.5.1)
Requires-Dist: frozendict (==2.3.8)
Requires-Dist: frozenlist (==1.4.0)
Requires-Dist: fsspec (==2023.9.2)
Requires-Dist: future (==0.18.3)
Requires-Dist: gast (==0.5.4)
Requires-Dist: google-api-core (==2.11.1)
Requires-Dist: google-auth-oauthlib (==1.0.0)
Requires-Dist: google-auth (==2.22.0)
Requires-Dist: google-pasta (==0.2.0)
Requires-Dist: googleapis-common-protos (==1.59.1)
Requires-Dist: gpustat (==1.1)
Requires-Dist: grpcio (==1.56.2)
Requires-Dist: gym-notices (==0.0.8)
Requires-Dist: gymnasium (==0.29.0)
Requires-Dist: h5py (==3.9.0)
Requires-Dist: hyperopt (==0.2.7)
Requires-Dist: idna (==3.4)
Requires-Dist: imageio (==2.31.1)
Requires-Dist: importlab (==0.8)
Requires-Dist: iniconfig (==2.0.0)
Requires-Dist: ipykernel (==6.25.0)
Requires-Dist: ipython-genutils (==0.2.0)
Requires-Dist: ipython (==8.14.0)
Requires-Dist: ipywidgets (==8.0.7)
Requires-Dist: isoduration (==20.11.0)
Requires-Dist: jedi (==0.18.2)
Requires-Dist: json-fix (==0.5.2)
Requires-Dist: json5 (==0.9.14)
Requires-Dist: jsonpointer (==2.4)
Requires-Dist: jsonschema-specifications (==2023.7.1)
Requires-Dist: jsonschema (==4.18.4)
Requires-Dist: jupyter-console (==6.6.3)
Requires-Dist: jupyter-events (==0.6.3)
Requires-Dist: jupyter-lsp (==2.2.0)
Requires-Dist: jupyter (==1.0.0)
Requires-Dist: jupyter-client (==8.3.0)
Requires-Dist: jupyter-core (==5.3.1)
Requires-Dist: jupyter-server (==2.7.0)
Requires-Dist: jupyter-server-terminals (==0.4.4)
Requires-Dist: jupyterlab-pygments (==0.2.2)
Requires-Dist: jupyterlab-widgets (==3.0.8)
Requires-Dist: jupyterlab (==4.0.3)
Requires-Dist: jupyterlab-server (==2.24.0)
Requires-Dist: kaleido (==0.2.1)
Requires-Dist: keras (==2.13.1)
Requires-Dist: kiwisolver (==1.4.4)
Requires-Dist: lazy-loader (==0.3)
Requires-Dist: libclang (==16.0.6)
Requires-Dist: libcst (==1.0.1)
Requires-Dist: lit (==16.0.6)
Requires-Dist: logging-tree (==1.9)
Requires-Dist: lxml (==4.9.3)
Requires-Dist: lz4 (==4.3.2)
Requires-Dist: markdown-it-py (==3.0.0)
Requires-Dist: matplotlib-inline (==0.1.6)
Requires-Dist: matplotlib (==3.7.2)
Requires-Dist: mdurl (==0.1.2)
Requires-Dist: mistune (==3.0.1)
Requires-Dist: more-itertools (==10.0.0)
Requires-Dist: mpmath (==1.3.0)
Requires-Dist: msgpack (==1.0.5)
Requires-Dist: multidict (==6.0.4)
Requires-Dist: mypy-extensions (==1.0.0)
Requires-Dist: mypy (==1.4.1)
Requires-Dist: nbclient (==0.8.0)
Requires-Dist: nbconvert (==7.7.3)
Requires-Dist: nbformat (==5.9.1)
Requires-Dist: nest-asyncio (==1.5.6)
Requires-Dist: networkx (==3.1)
Requires-Dist: ninja (==1.11.1)
Requires-Dist: notebook (==7.0.0)
Requires-Dist: notebook-shim (==0.2.3)
Requires-Dist: numpy (==1.25.1)
Requires-Dist: nvidia-cublas-cu11 (==11.10.3.66)
Requires-Dist: nvidia-cuda-cupti-cu11 (==11.7.101)
Requires-Dist: nvidia-cuda-nvrtc-cu11 (==11.7.99)
Requires-Dist: nvidia-cuda-runtime-cu11 (==11.7.99)
Requires-Dist: nvidia-cudnn-cu11 (==8.5.0.96)
Requires-Dist: nvidia-cufft-cu11 (==10.9.0.58)
Requires-Dist: nvidia-curand-cu11 (==10.2.10.91)
Requires-Dist: nvidia-cusolver-cu11 (==11.4.0.1)
Requires-Dist: nvidia-cusparse-cu11 (==11.7.4.91)
Requires-Dist: nvidia-ml-py (==12.535.77)
Requires-Dist: nvidia-nccl-cu11 (==2.14.3)
Requires-Dist: nvidia-nvtx-cu11 (==11.7.91)
Requires-Dist: oauthlib (==3.2.2)
Requires-Dist: opencensus-context (==0.1.3)
Requires-Dist: opencensus (==0.11.2)
Requires-Dist: opt-einsum (==3.3.0)
Requires-Dist: overrides (==7.3.1)
Requires-Dist: packaging (==23.1)
Requires-Dist: pandas (==2.0.3)
Requires-Dist: pandocfilters (==1.5.0)
Requires-Dist: parso (==0.8.3)
Requires-Dist: pathspec (==0.11.1)
Requires-Dist: pexpect (==4.8.0)
Requires-Dist: pickleshare (==0.7.5)
Requires-Dist: platformdirs (==3.9.1)
Requires-Dist: plotly (==5.15.0)
Requires-Dist: pluggy (==1.2.0)
Requires-Dist: prometheus-client (==0.17.1)
Requires-Dist: prompt-toolkit (==3.0.39)
Requires-Dist: protobuf (==4.23.4)
Requires-Dist: psutil (==5.9.5)
Requires-Dist: ptyprocess (==0.7.0)
Requires-Dist: pure-eval (==0.2.2)
Requires-Dist: py-spy (==0.3.14)
Requires-Dist: py4j (==0.10.9.7)
Requires-Dist: py (==1.11.0)
Requires-Dist: pyarrow (==12.0.1)
Requires-Dist: pyasn1-modules (==0.3.0)
Requires-Dist: pyasn1 (==0.5.0)
Requires-Dist: pycparser (==2.21)
Requires-Dist: pydantic (==2.1.1)
Requires-Dist: pydantic-core (==2.4.0)
Requires-Dist: pydot (==1.4.2)
Requires-Dist: pyparsing (==3.0.9)
Requires-Dist: pyrsistent (==0.19.3)
Requires-Dist: pytest (==7.4.0)
Requires-Dist: python-dateutil (==2.8.2)
Requires-Dist: python-json-logger (==2.0.7)
Requires-Dist: pytz (==2023.3)
Requires-Dist: pyzmq (==25.1.0)
Requires-Dist: qtconsole (==5.4.3)
Requires-Dist: ray (==2.6.1)
Requires-Dist: referencing (==0.30.0)
Requires-Dist: requests-oauthlib (==1.3.1)
Requires-Dist: requests (==2.31.0)
Requires-Dist: rfc3339-validator (==0.1.4)
Requires-Dist: rfc3986-validator (==0.1.1)
Requires-Dist: rich (==13.4.2)
Requires-Dist: rpds-py (==0.9.2)
Requires-Dist: rsa (==4.9)
Requires-Dist: scikit-image (==0.21.0)
Requires-Dist: scipy (==1.11.1)
Requires-Dist: shellingham (==1.5.0.post1)
Requires-Dist: six (==1.16.0)
Requires-Dist: smart-open (==6.3.0)
Requires-Dist: sniffio (==1.3.0)
Requires-Dist: soupsieve (==2.4.1)
Requires-Dist: stack-data (==0.6.2)
Requires-Dist: svgwrite (==1.4.3)
Requires-Dist: sympy (==1.12)
Requires-Dist: tabulate (==0.9.0)
Requires-Dist: tenacity (==8.2.2)
Requires-Dist: tensorboard-data-server (==0.7.1)
Requires-Dist: tensorboard-plugin-wit (==1.8.1)
Requires-Dist: tensorboard (==2.13.0)
Requires-Dist: tensorboardX (==2.6.1)
Requires-Dist: tensorflow-estimator (==2.13.0)
Requires-Dist: tensorflow-probability (==0.20.1)
Requires-Dist: termcolor (==2.3.0)
Requires-Dist: terminado (==0.17.1)
Requires-Dist: tifffile (==2023.7.18)
Requires-Dist: tinycss2 (==1.2.1)
Requires-Dist: toml (==0.10.2)
Requires-Dist: tomli (==2.0.1)
Requires-Dist: torch (==2.0.1)
Requires-Dist: torchaudio (==2.0.2)
Requires-Dist: torchvision (==0.15.2)
Requires-Dist: tornado (==6.3.2)
Requires-Dist: tqdm (==4.65.0)
Requires-Dist: traitlets (==5.9.0)
Requires-Dist: triton (==2.0.0)
Requires-Dist: typer (==0.9.0)
Requires-Dist: typing-inspect (==0.9.0)
Requires-Dist: typing-extensions (==4.7.1)
Requires-Dist: tzdata (==2023.3)
Requires-Dist: uri-template (==1.3.0)
Requires-Dist: urllib3 (==1.26.16)
Requires-Dist: virtualenv (==20.24.2)
Requires-Dist: wcwidth (==0.2.6)
Requires-Dist: webcolors (==1.13)
Requires-Dist: webencodings (==0.5.1)
Requires-Dist: websocket-client (==1.6.1)
Requires-Dist: widgetsnbextension (==4.0.8)
Requires-Dist: wrapt (==1.15.0)
Requires-Dist: yarl (==1.9.2)
Provides-Extra: tests
Requires-Dist: pytest ; extra == 'tests'

# Chicken Coop

Supports Python 3.11.

Usage instructions:

```
# Set up virtualenv if needed:
python -m venv chicken-coop-env
source chicken-coop-env/bin/activate

# Install Chicken Coop:
pip install chicken-coop

# Run tests:
pytest

# Basic run:
python -m chicken_coop run

# Main run used in the paper:
python -m chicken_coop run --moniker paper-run --use-tune --n-tune-samples 300

# Transplant a visitor population into a resident population:
python -m chicken_coop transplant --moniker paper-transplant \
  --visitor-trek ~/.chicken_coop/<YOUR_PREVIOUS_RUN>

# Ablate opponent perception accuracy:
python -m chicken_coop run --moniker paper-ablate-observation --use-tune --n-tune-samples 10 \
  --observation-accuracy 0.0 \
  --observation-accuracy 0.1 \
  --observation-accuracy 0.2 \
  --observation-accuracy 0.3 \
  --observation-accuracy 0.4 \
  --observation-accuracy 0.5 \
  --observation-accuracy 0.6 \
  --observation-accuracy 0.7 \
  --observation-accuracy 0.8 \
  --observation-accuracy 0.9 \
  --observation-accuracy 1.0


# Investigate non-linearity:
python -m chicken_coop run --moniker paper-cycles --use-tune --n-tune-samples 30 --n-agents 12 \
  --learning-rate 3e-05

```
