Metadata-Version: 2.3
Name: Axelrod
Version: 4.13.1
Summary: Reproduce the Axelrod iterated prisoners dilemma tournament
Project-URL: Homepage, http://axelrod.readthedocs.org/
Author: Owen Campbell, Karol Langner, Marc Harper
Author-email: Vince Knight <axelrod-python@googlegroups.com>
License: The MIT License (MIT)
        
        Copyright (c) 2015 The Axelrod-Python project team members listed at
        https://github.com/Axelrod-Python/Axelrod/graphs/contributors
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE.txt
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.6
Requires-Dist: cloudpickle>=0.2.2
Requires-Dist: dask[dataframe]>=2.9.2
Requires-Dist: fsspec>=0.6.0
Requires-Dist: matplotlib>=3.0.3
Requires-Dist: numpy>=1.26.4
Requires-Dist: pandas>=1.0.0
Requires-Dist: pyyaml>=5.1
Requires-Dist: scipy>=1.3.3
Requires-Dist: toolz>=0.8.2
Requires-Dist: tqdm>=4.39.0
Provides-Extra: development
Requires-Dist: hypothesis==5.19.3; extra == 'development'
Provides-Extra: human
Requires-Dist: prompt-toolkit>=3.0; extra == 'human'
Description-Content-Type: text/x-rst

.. image:: https://img.shields.io/pypi/v/Axelrod.svg
    :target: https://pypi.python.org/pypi/Axelrod

.. image:: https://zenodo.org/badge/19509/Axelrod-Python/Axelrod.svg
    :target: https://zenodo.org/badge/latestdoi/19509/Axelrod-Python/Axelrod

.. image:: https://github.com/Axelrod-Python/Axelrod/workflows/CI/badge.svg
    :target: https://github.com/Axelrod-Python/Axelrod/actions

|Join the chat at https://gitter.im/Axelrod-Python/Axelrod|

Axelrod
=======

Goals
-----

A Python library with the following principles and goals:

1. Enabling the reproduction of previous Iterated Prisoner's Dilemma research
   as easily as possible.
2. Creating the de-facto tool for future Iterated Prisoner's Dilemma
   research.
3. Providing as simple a means as possible for anyone to define and contribute
   new and original Iterated Prisoner's Dilemma strategies.
4. Emphasizing readability along with an open and welcoming community that
   is accommodating for developers and researchers of a variety of skill levels.

Features
--------

With Axelrod you:

- have access `to over 200 strategies
  <http://axelrod.readthedocs.io/en/stable/reference/all_strategies.html>`_, including original and classics like Tit
  For Tat and Win Stay Lose Shift. These are extendable through parametrization
  and a collection of strategy transformers.
- can create `head to head matches
  <http://axelrod.readthedocs.io/en/stable/tutorials/getting_started/match.html>`_ between pairs of strategies.
- can create `tournaments
  <http://axelrod.readthedocs.io/en/stable/tutorials/getting_started/tournament.html>`_ over a number of strategies.
- can study population dynamics through `Moran processes
  <http://axelrod.readthedocs.io/en/stable/tutorials/getting_started/moran.html>`_ and an `infinite
  population model
  <http://axelrod.readthedocs.io/en/stable/tutorials/further_topics/ecological_variant.html>`_.
- can analyse detailed `results of tournaments
  <http://axelrod.readthedocs.io/en/stable/tutorials/getting_started/summarising_tournaments.html>`_ and matches.
- can `visualise results
  <http://axelrod.readthedocs.io/en/stable/tutorials/getting_started/visualising_results.html>`_ of tournaments.

  .. image:: http://axelrod.readthedocs.io/en/stable/_images/demo_strategies_boxplot.svg
     :height: 300 px
     :align: center

- can reproduce a number of contemporary research topics such as `fingerprinting <http://axelrod.readthedocs.io/en/stable/tutorials/further_topics/fingerprinting.html>`_ of
  strategies and `morality metrics
  <http://axelrod.readthedocs.io/en/stable/tutorials/further_topics/morality_metrics.html>`_.

  .. image:: https://github.com/Axelrod-Python/Axelrod-fingerprint/raw/master/assets/Tricky_Defector.png
     :height: 300 px
     :align: center

The library has 100% test coverage and is extensively documented. See the
documentation for details and examples of all the features:
http://axelrod.readthedocs.org/

`An open reproducible framework for the study of the iterated prisoner's
dilemma <http://openresearchsoftware.metajnl.com/article/10.5334/jors.125/>`_:
a peer reviewed paper introducing the library (22 authors).

Installation
------------

The library is tested on Python versions 3.8, 3.9, and 3.10.

The simplest way to install is::

    $ pip install axelrod

To install from source::

    $ git clone https://github.com/Axelrod-Python/Axelrod.git
    $ cd Axelrod
    $ python setup.py install

Quick Start
-----------

The following runs a basic tournament::

    >>> import axelrod as axl
    >>> players = [s() for s in axl.demo_strategies]  # Create players
    >>> tournament = axl.Tournament(players, seed=1)  # Create a tournament
    >>> results = tournament.play()  # Play the tournament
    >>> results.ranked_names
    ['Defector', 'Grudger', 'Tit For Tat', 'Cooperator', 'Random: 0.5']


Examples
--------

- https://github.com/Axelrod-Python/tournament is a tournament pitting all the
  strategies in the repository against each other. These results can be easily
  viewed at http://axelrod-tournament.readthedocs.org.
- https://github.com/Axelrod-Python/Axelrod-notebooks contains a set of example
  Jupyter notebooks.
- https://github.com/Axelrod-Python/Axelrod-fingerprint contains fingerprints
  (data and plots) of all strategies in the library.

Contributing
------------

All contributions are welcome!

You can find helpful instructions about contributing in the
documentation:
https://axelrod.readthedocs.io/en/latest/how-to/contributing/index.html

Publications
------------

You can find a list of publications that make use of or cite the library
on the `citations <https://github.com/Axelrod-Python/Axelrod/blob/master/citations.md>`_ page.

Contributors
------------

The library has had many awesome contributions from many `great
contributors <https://github.com/Axelrod-Python/Axelrod/graphs/contributors>`_.
The Core developers of the project are:

- `drvinceknight <https://github.com/drvinceknight>`_
- `gaffney2010 <https://github.com/gaffney2010>`_
- `marcharper <https://github.com/marcharper>`_
- `meatballs <https://github.com/meatballs>`_
- `nikoleta-v3 <https://github.com/Nikoleta-v3>`_

.. |Join the chat at https://gitter.im/Axelrod-Python/Axelrod| image:: https://badges.gitter.im/Join%20Chat.svg
   :target: https://gitter.im/Axelrod-Python/Axelrod?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
