pyconclas 0.1.2
The pyconclas is a client written in Python to use the service Conclas.
License: BSD
Keywords: conclas machine learning pyconclas

# pyconclas
[![Python version](https://img.shields.io/badge/python-v2.7-orange.svg)](https://www.python.org/downloads/)
[![Requests version](https://img.shields.io/badge/requests-2.9.1-blue.svg)](https://pypi.python.org/pypi/requests)

O pyconclas é um client escrito em Python para utilizar o serviço Conclas

# Métodos
Antes de mais nada, devemos importar a classe Conclas que possui os dois métodos principais, sendo eles: o **direct_categorise()** e o **indirect_categorise()**. A classe Conclas fica dentro do módulo *core*. Sendo assim, vejamos o exemplo abaixo:

```python
from pyconclas.api import Conclas
```

## *indirect_categorise()*
O método *indirect_categorise()* faz uma requisição no endpoint *categorise* da API. Ele permite que caso os conteúdos ainda não tenham sidos classificados, jogue-os diretamente em uma fila para classificação.

| Parâmetro           | Descrição                                                     | Tipo | Exigido? |
|---------------------|---------------------------------------------------------------|------|----------|
| contents            | Passa uma lista de conteúdos utilizados no json da requisição. | list | Sim      |

## *direct_categorise()*
O método *direct_categorise()* faz uma requisição no endpoint *direct_categorise* da API. Este método permite que caso os conteúdos não tenham sido classficados ainda, faça com que esta request seja bloqueada até o conteúdo ser classificado.

| Parâmetro           | Descrição                                                       | Tipo | Exigido? |
|---------------------|-----------------------------------------------------------------|------|----------|
| contents            | Passa uma lista de conteúdos utilizados no json da requisição.   | list | Sim      |
| callback            | Passa uma url para ser chamada após o término da categorização. | str  | Sim      |

### Parâmetro *contents*
O parâmetro *contents* é muito importante para a requisição, pois nele contém os dados a serem analisados pela API. Ele possui uma lista de dicionários, onde cada dicionário pode conter uma doc ou uma url mas nunca as duas no mesmo dicionário.

A doc nada mais é do que um dicionário, que poderá receber os seguintes valores.

| Parâmetro  | Descrição                                                                             |
|------------|---------------------------------------------------------------------------------------|
| short_text | Corresponde a uma breve descrição do conteúdo a ser analisado. Geralmente é o título. |
| long_text  | Corresponde ao conteúdo a ser analisado.                                              |
| brands     | Corresponde a marcas que ajudam na categorização do conteúdo.                         |
## Exemplo de utilização

```python
from pyconclas.api import Conclas

api = Conclas(token="c6887e5fcff94746bc5f-2a931ed27123",
                use_ssl = False)
contents = [
    {
        "url": "www.url1.com"
    }, 
    {
        "doc": {
            "short_text": "Título da documento",
            "long_text": "Conteúdo do página",
            "brands": "apple samsung"
        }
    }
]

api.direct_categorise(contents)
print api.result
```
Após realizar alguma requisição(seja através do método direct ou indirect) o *pyconclas* popula algumas variáveis que nos fornecem informações como: headers, código de status e resultado da requisição. Essas propriedades são: **headers**, **result** e **status_code**.

| Propriedade | Descrição                                                                            | Tipo                                          |
|-------------|--------------------------------------------------------------------------------------|-----------------------------------------------|
| status_code | Código de status da requisição.(Exemplo, pode retornar 200, caso tudo tenha sido OK) | int                                           |
| result      | Resultado da requisição, geralmente vem em forma JSON.                               | str                                           |
| headers     | Mostra os headers da requisição                                                      | dict(requests.structures.CaseInsensitiveDict) |