<commit_before>For information on how to use this project template, check out the [wiki](https://github.com/lionheart/django-template/wiki/Django-1.9).

Let's Get Started
=================

## Python 3.5
At this point you're probably just getting started. You may not have a couple of things that you'll need to have, but by the time you finish with this getting started guide, 
you should be good. First we'll have to install python 3.5.2
https://www.python.org/downloads/
Here you'll find your download whether on a MAC or Windows machine

## IDE
Now you need an IDE and PyCharm is here to help.
https://www.jetbrains.com/pycharm/
You can either download the IDE for Professional Developers or Community. Using an fau.edu email will get you a free copy of the Professional and
I definitely recommend that over the Community editions just because why not.

## Text Editor
You can also use any one of your favorite text ediors be it NotePad++, SublimeText, Brackets, Atom or any other one you can think of, it's mainly
up to your personal preference.

## GitBash
GitBash is something else you will need if you don't have already. It is a Windows terminal with Bash commands and git integration. It's an awesome
tool and python is mainly CLI based so it will be a necessity.

## pip
pip is a package management system which is used to install and manage software packages written in Python. The Python Package Index (PyPI). By default it comes installed with Python 3.4+

```Usage:
  pip  [options]

Commands:
  install       Install packages.
  uninstall     Uninstall packages.
  freeze        Output installed packages in requirements format.
  list          List installed packages.
  show          Show information about installed packages.
  search        Search PyPI for packages.
  zip           Zip individual packages.
  unzip         Unzip individual packages.
  bundle        Create pybundles.
  help          Show help for commands.
  ```

most installations of code you do will be done using pip. There are times where an issues may arise and you must manually download and install these module packages.

For windows this website provides alot of the binaries for different packages-
http://www.lfd.uci.edu/~gohlke/pythonlibs/

## virtualenv
Virtual environments are an awesome and integral tool for python. They function keep the dependencies required by different projects in separate places, by creating virtual Python environments for them.  It solves the “Project X depends on version 1.x but, Project Y needs 4.x” dilemma, and keeps your global site-packages directory clean and manageable.

Virtual Environments are best explained on The Hitchhiker's Guide to Python-
http://docs.python-guide.org/en/latest/dev/virtualenvs/


Installation
============

## !!Before Proceeding!!
Please create a new file in your Project Direcory called
`.env`
Do this by using the bash command
`touch .env`
From here, open it up with any text editor, and copy over the content from `env.example`
and fill in/update the necessary information, especially your settings module location
or the next steps may not work.

You've cloned the repo or started a new project with the startproject command. Here's how you actually get started developing. These steps assume you have pip installed. Please also ensure you are using GitBash to do all this stuff, it makes it a bit

1. Install virtualenv.

        $ pip install virtualenv

2. Then, start a virtualenv in the project directory.

        $ virtualenv venv
        $ source venv/scripts/activate # if scripts does not exist, it is bin

3. Install the project requirements.

        (ProjectName) $ pip install -r requirements.txt
        # wait for a couple of minutes, hopefully nothing goes wrong!

If you get an error regarding 'lxml' refer to this link to get around the errors
http://stackoverflow.com/questions/33785755/getting-could-not-find-function-xmlcheckversion-in-library-libxml2-is-libxml2

4. Link the local project settings to local_settings.py. (This creates a reference to whatever settings module you are using whether local.py or production.py)

        (ProjectName) $ ln -s conf/settings/local.py local_settings.py

5. Create your local database. Make sure you run the [steps below](#postgresql-installation) if you haven't already installed PostgreSQL.

        $ psql
        postgres# CREATE ROLE ProjectName_local WITH LOGIN ENCRYPTED PASSWORD '<PASSWORD>';
        postgres# CREATE DATABASE ProjectName_local WITH OWNER ProjectName_local;

    **Note**: If you get a `psql: FATAL:  role "YOUR_USERNAME" does not exist` error, just do the following to save yourself from having to write `--user postgres` every time you want to run `psql`. If, say, your username is `dan` on your development machine, you'd run the following:

        $ createuser -s dan # Create a superuser named `dan`
        $ createdb -O dan dan # Create a database for this user to log into.
<commit_msg>readme updated<commit_after>For information on how to use this project template, check out the [wiki](https://github.com/lionheart/django-template/wiki/Django-1.9).

Let's Get Started
=================

## Python 3.5
At this point you're probably just getting started. You may not have a couple of things that you'll need to have, but by the time you finish with this getting started guide, 
you should be good. First we'll have to install python 3.5.2
https://www.python.org/downloads/
Here you'll find your download whether on a MAC or Windows machine

## IDE
Now you need an IDE and PyCharm is here to help.
https://www.jetbrains.com/pycharm/
You can either download the IDE for Professional Developers or Community. Using an fau.edu email will get you a free copy of the Professional and
I definitely recommend that over the Community editions just because why not.

## Text Editor
You can also use any one of your favorite text ediors be it NotePad++, SublimeText, Brackets, Atom or any other one you can think of, it's mainly
up to your personal preference.

## GitBash
GitBash is something else you will need if you don't have already. It is a Windows terminal with Bash commands and git integration. It's an awesome
tool and python is mainly CLI based so it will be a necessity.

## pip
pip is a package management system which is used to install and manage software packages written in Python. The Python Package Index (PyPI). By default it comes installed with Python 3.4+

```Usage:
  pip  [options]

Commands:
  install       Install packages.
  uninstall     Uninstall packages.
  freeze        Output installed packages in requirements format.
  list          List installed packages.
  show          Show information about installed packages.
  search        Search PyPI for packages.
  zip           Zip individual packages.
  unzip         Unzip individual packages.
  bundle        Create pybundles.
  help          Show help for commands.
  ```

most installations of code you do will be done using pip. There are times where an issues may arise and you must manually download and install these module packages.

For windows this website provides alot of the binaries for different packages-
http://www.lfd.uci.edu/~gohlke/pythonlibs/

## virtualenv
Virtual environments are an awesome and integral tool for python. They function keep the dependencies required by different projects in separate places, by creating virtual Python environments for them.  It solves the “Project X depends on version 1.x but, Project Y needs 4.x” dilemma, and keeps your global site-packages directory clean and manageable.

Virtual Environments are best explained on The Hitchhiker's Guide to Python-
http://docs.python-guide.org/en/latest/dev/virtualenvs/


Installation
============

You've cloned the repo or started a new project with the startproject command. Here's how you actually get started developing. These steps assume you have pip installed. Please also ensure you are using GitBash to do all this stuff, it makes it a bit

1. Install virtualenv.

        $ pip install virtualenv

2. Then, start a virtualenv in the project directory.

        $ virtualenv venv
        $ source venv/scripts/activate # if scripts does not exist, it is bin
    ## !!Before Proceeding!!
    Please create a new file in your Project Direcory called 
        `.env`
    Do this by using the bash command
        `touch .env`
    From here, open it up with any text editor, and copy over the content from `env.example`
    and fill in/update the necessary information, especially your settings module location
    or the next steps may not work.

3. Install the project requirements.

        (ProjectName) $ pip install -r requirements.txt
        # wait for a couple of minutes, hopefully nothing goes wrong!

    If you get an error regarding 'lxml' refer to this link to get around the errors
    http://stackoverflow.com/questions/33785755/getting-could-not-find-function-xmlcheckversion-in-library-libxml2-is-libxml2

4. Link the local project settings to local_settings.py. (This creates a reference to whatever settings module you are using whether local.py or production.py)

        (ProjectName) $ ln -s conf/settings/local.py local_settings.py

5. Create your local database. Make sure you run the [steps below](#postgresql-installation) if you haven't already installed PostgreSQL.

        $ psql
        postgres# CREATE ROLE ProjectName_local WITH LOGIN ENCRYPTED PASSWORD '<PASSWORD>';
        postgres# CREATE DATABASE ProjectName_local WITH OWNER ProjectName_local;

    **Note**: If you get a `psql: FATAL:  role "YOUR_USERNAME" does not exist` error, just do the following to save yourself from having to write `--user postgres` every time you want to run `psql`. If, say, your username is `dan` on your development machine, you'd run the following:

        $ createuser -s dan # Create a superuser named `dan`
        $ createdb -O dan dan # Create a database for this user to log into.

{'fraction_non_alphanumeric': 0.06083726533480574, 'fraction_numerical': 0.0052203594016664995, 'mean_word_length': 3.5907834101382488, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 6, 'lorem ipsum': 0, 'www.': 6, 'xml': 8}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 10, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6281504', 'n_tokens_mistral': 2622, 'n_tokens_neox': 2478, 'n_words': 1365}