# Basic requirements for main scripts
#
# By default only the cases used in multuiple scripts are installed.
#
# Note:
# - Usage examples:
#   1. Usual
#      pip install -r requirements.txt
#   2. Optional (i.e., including most optional):
#      pip install --verbose $(perl -pe 's/^#opt#\s*//;' ~/Mezcla/requirements.txt | grep -v '^#')
#   3. Full (i.e., including all optional):
#      pip install --verbose $(perl -pe 's/^#(opt|full)#\s*//;' ~/Mezcla/requirements.txt | grep -v '^#')
#      # TODO2: --ignore-errors [maldito pip]
#      perl -pe 's/^#full#\s*//;' ~/Mezcla/requirements.txt | grep -v '^#' | xargs -I '{}' pip install '{}'
# - use `pip freeze` to get current list of package specifications (n.b., >= better than == unless specific version needed)
# - installing textract from PyPI fails https://github.com/deanmalmgren/textract/issues/461
#
# Installation:
# - python -m nltk.downloader punkt averaged_perceptron_tagger stopwords
#
# TODO:
# - check absl module ($ grep -r "absl" .)
# - add support for this to setup.py
#...............................................................................
# Regular requirements
#
HTMLParser
absl_py
beautifulsoup4
bs4
cachetools
cherrypy
clip_interrogator
datasets                      # Hugging Face (HF) data
diffusers                     # Stale Diffusion
diskcache
extcolors>=1.0.0
flair
flask
git+https://github.com/tehabstract/textract.git
gradio                        # UI support (e.g., HF-based apps)
importlib_metadata
#opt# kenlm                   # language model support (NOTE: problem with wheel)
librosa>=0.10.0           
lxml
mako
matplotlib
more_itertools
nltk
numpy>=1.18.5
pandas>=1.3.0
pyaml
pyctcdecode                   # CTC beam search decoder for speech recognition
pyenchant
pysbd
pytest
requests
scikit-learn
scipy
sentencepiece
six
stop_words
#opt# tensorrt                # NVidia GPU support
transformers                  # HF models
torch
torchaudio
webcolors
wheel
xgboost
#
#...............................................................................
# Optional requirements
#
# TODO:
# - download Spacy model(s):
#   python -m spacy download en_core_web_lg
# - install bash kernel
#   python -m bash_kernel.install
# - add '#opt#deprecated#' (e,.g., useful for deprecated functions/modules)
# NOTE:
# - tensorflow and related not installed by default due to size of repo and C compilation overhead.
# - ipython, pylint, etc. used for setting up development environment
#
#opt# SpeechRecognition
#opt# accelerate
#opt# bash_kernel
#opt# colout
#opt# coverage
#opt# flit
#opt# gensim
#opt# ibm-watson
#opt# ibm_cloud_sdk_core
#opt# ipython
#opt# jupyter
#opt# librosa
#opt# pocketsphinx
#opt# pylint
#opt# pyyaml
#opt# scispacy
#opt# selenium
#
## OLD: #opt# spacy>=3.0.0
## TODO:
## note: See https://github.com/explosion/spacy-models/releases/tag/en_core_web_md-3.7.0
spacy==3.7.0
en_core_web_md@https://github.com/explosion/spacy-models/releases/download/en_core_web_md-3.7.0/en_core_web_md-3.7.0.tar.gz
#
## See https://github.com/explosion/spacy-models/releases/tag/en_core_web_md-3.2.0
## OLD
## spacy==3.2.6
## en_core_web_md@https://github.com/explosion/spacy-models/releases/download/en_core_web_md-3.2.0/en_core_web_md-3.2.0.tar.gz
## typing_extensions==4.7.0
typing_extensions>=4.7.0
#
#opt# textract
#opt# vaderSentiment
#...............................................................................
# "Fully optional" requirements
# Note: these generally involve large or long installations.
#
#full# bert==2.2.0
#full# albert==1.3.1
#full# bert-tensorflow
#full# keras
#full# sacremoses
#full# tensorflow
#full# tensorflow_hub
#full# tensorrt
