semvec/pypi-packages huggingface dataset:
drf-link-navigation-pagination 1.0.2
Yet another pagination class for DRF to set host address by header
License: MIT

# DRF Link Navigation Pagination

Yet another [thirdy party package for DRF Pagination](https://www.django-rest-framework.org/api-guide/pagination/).

This package adds support to some headers that allow you to configure the behaviour of the LimitOffsetPagination class.

## X-Drf-Change-Domain
If you want to change de host address located on `next` and `previous` fields, then this is the right thing to you. Take this body as an example:

```json
{
  "links": {
    "next": "http://localhost/api/v1/entities/?limit=1&offset=2",
    "previous": "http://localhost/api/v1/entities/limit=1"
  },
  "count": 100,
  "results": [
    {
      "id": "bc6c6868-4e4d-4381-a785-f353ee7ecce5"
    }
  ]
}
```

Using a reverse proxy (like AWS API Gateway) to intermediate between your API, adding `X-Drf-Change-Domain=chumaco` header to the request will make the client receive the following:

```json
{
  "links": {
    "next": "http://chumaco/api/v1/entities/?limit=1&offset=2",
    "previous": "http://chumaco/api/v1/entities/limit=1"
  },
  "count": 100,
  "results": [
    {
      "id": "bc6c6868-4e4d-4381-a785-f353ee7ecce5"
    }
  ]
}
```
## X-Drf-Max-Pagination-Size
This header allows you to define different limits to the pagination depending on the gateway you are exposing your API.
For example. For **client A** we allow a max of `50` entries, for **client B** we allow a max of `100` you can by injecting 
this header on the client's requests.

If for some reason the client exceeds the limit he will receive a Bad Request Error:
```json
{
    "detail": "Bad limit value sent.",
    "error": {
        "code": "bad_limit_value"
    },
    "type": "API_EXCEPTION"
}
```

Otherwise the default paginated  response is generated:
```json
{
  "links": {
    "next": "https://chumaco/api/v1/entities/?limit=1&offset=2",
    "previous": "https://chumaco/api/v1/entities/limit=1"
  },
  "count": 100,
  "results": [
    {
      "id": "bc6c6868-4e4d-4381-a785-f353ee7ecce5"
    }
  ]
}
```

# Configuration process

To use this package after installing you need to use it's pagination class. in your `settings.py` do the following:
```python
REST_FRAMEWORK = {
    "DEFAULT_PAGINATION_CLASS": "drf_link_navigation_pagination.LinkNavigationPagination",
    ...
}
```

## Tests

In order to execute the tests:

    pipenv run tox
investimentpy12 1.0.3
Uma biblioteca para análise de investimentos
License: MIT

# InvestPy

InvestPy é uma biblioteca Python para análise de investimentos. Ela permite obter dados de ações, calcular indicadores financeiros e visualizar gráficos de desempenho.

## Funcionalidades

- Obter dados históricos de ações usando a API do Alpha Vantage.
- Calcular retorno diário das ações.
- Visualizar gráficos de preços de fechamento das ações.

## Requisitos

- Python 3.7
- pandas
- matplotlib
- requests
- pytest



## Configuração

Obtenha uma chave de API do [Alpha Vantage](https://www.alphavantage.co/support/#api-key) e substitua `'your_api_key'` pela sua chave de API nos exemplos abaixo.


## Uso

Depois de importar a biblioteca com o comando `pip install investimentpy==1.0.0` e já estiver com a sua KEY da *Alpha Vantage*, você pode criar um código como no exemplo a seguir:

```shell
import investpy

api_key = 'SUA_KEY'

# Obter dados de ação
df = investpy.obter_dados_acao('AAPL', api_key)

# Calcular retorno diário
df = investpy.calcular_retorno_diario(df)

# Plotar dados da ação
investpy.plotar_dados_acao(df)

```

Resultado:
![resultado calculo retorno diario](https://raw.githubusercontent.com/tadrianonet/investimentpy/main/exemplo.png)


## Contribuindo

1. Faça um fork do repositório
2. Crie uma nova branch (`git checkout -b feature/foobar`)
3. Commit suas mudanças (`git commit -am 'Add some feature'`)
4. Push para a branch (`git push origin feature/foobar`)
5. Abra um Pull Request

## Licença

Distribuído sob a licença MIT. Veja `LICENSE` para mais informações.