# This is a PIP 6+ requirements file for using Pywikibot and scripts
#
# All dependencies can be installed using:
# $ sudo pip install -r requirements.txt
#
# It is organised so that simple requirements
# are processed first, and more difficult packages
# are last.
# All dependencies other than requests are optional.
#
# It is good practise to install packages using the system
# package manager if it has a packaged version.  If you are
# unsure, please use pip as described at the top of the file.
#
# To get a list of potential matches, use
#
# $ awk -F '[#>=]' '{print $1}' requirements.txt | xargs yum search
#     or
# $ awk -F '[#>=]' '{print $1}' requirements.txt | xargs apt-cache search

# mandatory; see README.conversion.txt
requests>=2.9,!=2.18.2

# requests security extra
requests[security] ; python_full_version > '2.7.6' and python_full_version < '2.7.9'

future>=0.15.0 ; python_full_version < '2.7.3'

ipaddr>=2.1.10 ; python_version < '3'

# OAuth support
# mwoauth 0.2.4 is needed because it supports getting identity information
# about the user
mwoauth>=0.2.4,!=0.3.1

# core interwiki_graph.py:
git+https://github.com/nlhepler/pydot#egg=pydot-1.0.29

# wikistats.py and scripts
unicodecsv ; python_version < '3'

# cosmetic_changes and scripts/isbn
python-stdnum

# GUI
Pillow

# core pagegenerators
google >= 1.7
sseclient >= 0.0.18

# scripts/script_wui.py:
crontab

# scripts/flickrripper.py
flickrapi

# incomplete core component botirc
irc

# textlib.py and patrol.py
mwparserfromhell>=0.3.3

# The mysql generator in pagegenerators depends on either PyMySQL or MySQLdb
# pywikibot prefers PyMySQL over MySQLdb (Python 2 only)
PyMySQL

# scripts/script_wui.py depends on Lua, which is not available using pip
# but can be obtained from: https://github.com/bastibe/lunatic-python
# However, a better fork is: https://github.com/AlereDevices/lunatic-python
# Also script_wui.py is not currently functional, so it isnt installed here.

# core HTML comparison parser in diff module
beautifulsoup4

# scripts/states_redirect.py
pycountry

# scripts/weblinkchecker.py
memento_client>=0.5.1,!=0.6.0

# tools/__init__.py
# pywikibot prefers using the inbuilt bz2 module if python was compiled with
# bz2 support. But if it wasn't, bz2file is used instead.
# bz2file
