Metadata-Version: 2.1
Name: marvin-python-toolbox
Version: 0.0.4
Summary: Marvin Python Toolbox
Home-page: https://github.com/marvin-ai/marvin-python-toolbox
Author: Daniel Takabayashi
Maintainer: Daniel Takabayashi
Maintainer-email: daniel.takabayashi@gmail.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Provides-Extra: testing
Requires-Dist: six (>=1.10.0)
Requires-Dist: bumpversion (>=0.5.3)
Requires-Dist: click (>=3.3)
Requires-Dist: jupyter (>=1.0.0)
Requires-Dist: jupyterlab (>=0.32.1)
Requires-Dist: pep8 (>=1.7.0)
Requires-Dist: virtualenv (>=15.0.1)
Requires-Dist: jsonschema (>=2.5.1)
Requires-Dist: python-slugify (==0.1.0)
Requires-Dist: paramiko (==2.1.2)
Requires-Dist: PyHive (==0.3.0)
Requires-Dist: thrift (==0.10.0)
Requires-Dist: thrift-sasl (==0.2.1)
Requires-Dist: virtualenvwrapper (>=4.7.1)
Requires-Dist: requests (==2.19.1)
Requires-Dist: python-dateutil (==2.7.3)
Requires-Dist: python-slugify (==0.1.0)
Requires-Dist: path.py (==7.2)
Requires-Dist: httpretty (==0.9.5)
Requires-Dist: tornado (==4.5.3)
Requires-Dist: jsonschema (>=2.5.1)
Requires-Dist: gprof2dot
Requires-Dist: ujsonpath (==0.0.2)
Requires-Dist: simplejson (>=3.10.0)
Requires-Dist: configobj (>=5.0.6)
Requires-Dist: findspark (==1.1.0)
Requires-Dist: grpcio (==1.13.0)
Requires-Dist: grpcio-tools (==1.13.0)
Requires-Dist: joblib (==0.11)
Requires-Dist: autopep8 (==1.3.3)
Requires-Dist: progressbar2 (==3.34.3)
Requires-Dist: urllib3 (==1.21.1)
Requires-Dist: idna (==2.5)
Requires-Dist: bleach (==1.5.0)
Provides-Extra: testing
Requires-Dist: tox (==2.2.0); extra == 'testing'
Requires-Dist: mock (>=2.0.0); extra == 'testing'
Requires-Dist: pytest (==2.9.2); extra == 'testing'
Requires-Dist: pytest-cov (>=1.8.1); extra == 'testing'
Requires-Dist: pytest-watch (>=4.1.0); extra == 'testing'
Requires-Dist: pytest-testmon (>=0.8.2); extra == 'testing'
Requires-Dist: Keras (==2.2.0); extra == 'testing'
Requires-Dist: tensorflow (==1.8.0); extra == 'testing'

[![Build Status](https://travis-ci.org/marvin-ai/marvin-python-toolbox.svg)](https://travis-ci.org/marvin-ai/marvin-python-toolbox) [![codecov](https://codecov.io/gh/marvin-ai/marvin-python-toolbox/branch/master/graph/badge.svg)](https://codecov.io/gh/marvin-ai/marvin-python-toolbox)

[![Join the chat at https://gitter.im/gitterHQ/gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/marvin-ai)

# Marvin Toolbox v0.0.4

![](https://images-americanas.b2w.io/img/_staging/marvin/marvin.png)

# Quick Start

## Review

**Marvin** is an open-source Artificial Intelligence platform that focuses on helping data scientists deliver meaningful solutions to complex problems. Supported by a standardized large-scale, language-agnostic architecture, Marvin simplifies the process of exploration and modeling.

## Getting Started
* [Installing Marvin (Ubuntu and MacOS user)](#installing-marvin-as-ubuntu-and-macos-user)
* [Installing Marvin (Other OS)](#installing-marvin-with-other-os)
* [Creating a new engine](#creating-a-new-engine)
* [Working in an existing engine](#working-in-an-existing-engine)
* [Command line interface](#command-line-interface)
* [Running an example engine](#running-a-example-engine)

### Installing Marvin as Ubuntu and MacOS user
Perform the following steps to install the Marvin Toolbox:
1. Libsasl2-dev, Python-pip and Graphviz installation
```
Ubuntu: 
sudo apt-get install libsasl2-dev python-pip graphviz -y

MacOS: 
sudo easy_install pip
brew install openssl graphviz
```
2. VirtualEnvWrapper Installation
```
sudo pip install --upgrade pip
sudo pip install virtualenvwrapper --ignore-installed six
```
3. Spark installation
```
curl https://d3kbcqa49mib13.cloudfront.net/spark-2.1.1-bin-hadoop2.6.tgz -o /tmp/spark-2.1.1-bin-hadoop2.6.tgz

sudo tar -xf /tmp/spark-2.1.1-bin-hadoop2.6.tgz -C /opt/
sudo ln -s /opt/spark-2.1.1-bin-hadoop2.6 /opt/spark

echo "export SPARK_HOME=/opt/spark" >> $HOME/.bash_profile
```
If there is no /opt directory present, before unpacking spark, run:
```
sudo mkdir /opt
```
4. Set environment variables
```
echo "export WORKON_HOME=$HOME/.virtualenvs" >> $HOME/.bash_profile
echo "export MARVIN_HOME=$HOME/marvin" >> $HOME/.bash_profile
echo "export MARVIN_DATA_PATH=$HOME/marvin/data" >> $HOME/.bash_profile
echo "source virtualenvwrapper.sh" >> $HOME/.bash_profile

source ~/.bash_profile
````

5. Clone and install python-toolbox

```
mkdir $MARVIN_HOME
mkdir $MARVIN_DATA_PATH
cd $MARVIN_HOME

git clone https://github.com/marvin-ai/marvin-python-toolbox.git
cd marvin-python-toolbox

mkvirtualenv python-toolbox-env
setvirtualenvproject

make marvin
````

6. Test the installation
```
marvin test
```
### Installing Marvin with Other OS
Perform the following steps to install Marvin Toolbox using Vagrant:
1. Install requirements
- [Virtual box](http://www.virtualbox.org) (Version 5.1 +)
- [Vagrant](http://www.vagrantup.com) (Version 1.9.2 or +)


2. Clone the repository and start provision
```
git clone https://github.com/marvin-ai/marvin-vagrant-dev.git
cd marvin-vagrant-dev
```

3. Prepare the dev (engine creation) box
```
vagrant up dev
vagrant ssh dev
```
Wait for provision process and follow interactive configuration script after access the dev box using vagrant ssh command.

4. The marvin source projects will be located in your home folder; to compile and use the Marvin toolbox
```
workon python-toolbox-env
make marvin
```
### Creating a new engine
1. To create a new engine
```
workon python-toolbox-env
marvin engine-generate
```
Respond to the prompt and wait for the engine environment preparation to complete. Don't forget to start dev box before if you are using vagrant.

2. Test the new engine
```
workon <new_engine_name>-env
marvin test
```
3. For more information
```
marvin --help
```
### Working in an existing engine
1. Set VirtualEnv and get to the engine's path
```
workon <engine_name>-env
```
2. Test your engine
```
marvin test
```
3. Bring up the notebook and access it from your browser
```
marvin notebook
```
### Command line interface
Usage: marvin [OPTIONS] COMMAND [ARGS]

Options:
```
  --debug       #Enable debug mode.
  --version     #Show the version and exit.
  --help        #Show this command line interface and exit.
```

Commands:
```
  engine-generate     #Generate a new marvin engine project.
  engine-generateenv  #Generate a new marvin engine environment.
  engine-grpcserver   #Marvin gRPC engine action server starts.
  engine-httpserver   #Marvin http api server starts.
  hive-dataimport     #Import data samples from a hive databse to the hive running in this toolbox.
  hive-generateconf   #Generate default configuration file.
  hive-resetremote    #Drop all remote tables from informed engine on host.
  notebook            #Start the Jupyter notebook server.
  pkg-bumpversion     #Bump the package version.
  pkg-createtag       #Create git tag using the package version.
  pkg-showchanges     #Show the package changelog.
  pkg-showinfo        #Show information about the package.
  pkg-showversion     #Show the package version.
  pkg-updatedeps      #Update requirements.txt.
  test                #Run tests.
  test-checkpep8      #Check python code style.
  test-tdd            #Watch for changes to run tests automatically.
  test-tox            #Run tests using a new virtualenv.
```

### Running a example engine 
1. Clone the example engine from the repository
```
git clone https://github.com/marvin-ai/engines.git
```
2. Generate a new Marvin engine environment for the Iris species engine
```
workon python-toolbox-env
marvin engine-generateenv ../engines/iris-species-engine/
```
3. Run the Iris species engine
```
workon iris-species-engine-env
marvin engine-dryrun 
```

> Marvin is a project started at B2W Digital offices and released open source on September 2017.


