<commit_before>INSTALL
=======

```
apt-get install build-essential python-setuptools python-dev libldap2-dev libsasl2-dev libssl-dev
pip install --allow-external PIL --allow-unverified PIL -r requirements.txt
npm install

cp local_settings.py.template local_settings.py

# Edit LDAP configuration.
createdb fum	# If using PostgreSQL

./manage.py syncdb
./manage.py migrate
./manage.py datamigrate

./manage.py collectstatic --noinput	# rest_framework css/js

PATH=./node_modules/.bin:$PATH ./watcher.py	# LESS/JS bunding, and moving of APP/static to /static
REMOTE_USER=x ./manage.py runserver --nostatic
```

Testing: 

`python manage.py test --settings=fum.settings.test`

SEARCH (Haystack + SOLR)
========================

get solr and unzip:
<commit_msg>minor: add apt-get dependency and ‘--noinput’ for copy-pasting setup<commit_after>INSTALL
=======

```
apt-get install build-essential python-setuptools python-dev libldap2-dev libsasl2-dev libssl-dev libxslt1-dev
pip install --allow-external PIL --allow-unverified PIL -r requirements.txt
npm install

cp local_settings.py.template local_settings.py

# Edit LDAP configuration.
createdb fum	# If using PostgreSQL

./manage.py syncdb --noinput
./manage.py migrate
./manage.py datamigrate

./manage.py collectstatic --noinput	# rest_framework css/js

PATH=./node_modules/.bin:$PATH ./watcher.py	# LESS/JS bunding, and moving of APP/static to /static
REMOTE_USER=x ./manage.py runserver --nostatic
```

Testing: 

`python manage.py test --settings=fum.settings.test`

SEARCH (Haystack + SOLR)
========================

get solr and unzip:

{'fraction_non_alphanumeric': 0.14536340852130325, 'fraction_numerical': 0.003132832080200501, 'mean_word_length': 4.323333333333333, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1903742', 'n_tokens_mistral': 566, 'n_tokens_neox': 523, 'n_words': 144}