semvec/pypi-packages huggingface dataset:
prometheus-coin-scrapper 0.0.2
A simple prometheus scrapper that provide many information about cryptocurrencies values in "realtime"
Keywords: prometheus coin coin360 scrapper

# prometheus coin scraper : A simple metric provider for prometheus

This provide a set of metric for all cryptocurencies listed on https://coin360.com/ and http://coinmarketcap.com/

A lot of values are generated from this scrapper ~10000 values today (27/12/2018)

## How to use

Install the pip package 

```
pip install prometheus_coin_scraper
```

to start the metric server that will serve all metrics you can use the following command

```
python -m prometheus_coin_scraper [webport]
```

## In-code usage

This module is also usable inside you code and will produce very simple webserver that is by default reachable on 
http://localhost:8000/ and displays all metrics in a prometheus compatible format

```python
from prometheus_coin_scraper.PrometheusClient import PrometheusClient

PrometheusClient(port=8000)

```

This class start and run the web server. As it is a blocking call you might need to start it in a Thread

```python
from prometheus_coin_scraper.PrometheusClient import PrometheusClient
from threading import Thread

def func():
    PrometheusClient(port=8000)

Thread(target=func).start()
```

## Information on collected Metrics

- `coin_scrapper_fetch_time` : The time spent fetching all currencies values
- `coin_scrapper_gauge_update_time` : The time spent updating all prometheus Gauges values
- `coin_scrapper_last_update` : Last update time
- `coin_scrapper_currencies_number`: The current number currencies in the Index
- `coin_scrapper_coin_value_usd`: Coin value in USD

    There are three labels 
    - `symbol`: The currency symbol (BTC, LTC, XRP, ...)
    - `name` : The currency name (Bitcoin, Litecoin, Ripple, ...)
    - `source` : The name of the source for the currency value (coin360.com, ...)

- `coin_scrapper_coin_value_btc`:  Coin value in BTC  

    There are three labels 
    - `symbol`: The currency symbol (BTC, LTC, XRP, ...)
    - `name` : The currency name (Bitcoin, Litecoin, Ripple, ...)
    - `source` : The name of the source for the currency value (coin360.com, ...)

- `coin_scrapper_coin_last_platform_update` Last update of the coin on the source 

    There are three labels 
    - `symbol`: The currency symbol (BTC, LTC, XRP, ...)
    - `name` : The currency name (Bitcoin, Litecoin, Ripple, ...)
    - `source` : The name of the source for the currency value (coin360.com, ...)

- `coin_scrapper_coin_changes` : Calculated changes of the coin over time (1h, 24h, 7d) 

    There are three labels 
    - `symbol`: The currency symbol (BTC, LTC, XRP, ...)
    - `name` : The currency name (Bitcoin, Litecoin, Ripple, ...)
    - `source` : The name of the source for the currency value (coin360.com, ...)
    - `interval`: The interval for the calculated value (1h, 24h or 7d)
cryptocurrencies-scraper 0.0.3
A simple scrapper that uses coin360.com and coinmarketcap.com apis to populate an instant local database
Keywords: coin coin360 coinmarketcap api web scrapper

# Python : Simple Crypto currencies scrapper

This is a simple module that retrieve instant crypto 
currencies values in BTC and USD from coin360.com and coinmarketcap apis

### How to use

First install the package

```
pip install cryptocurrencies_scraper
```

#### Basic usage

```python
from cryptocurrencies_scraper.CurrencyService import Manager
manager = Manager() # Create a new instance of the Manager
manager.update() # Ask the manager to update all currencies values

manager.all_currencies() # returns a dict that contain the currency name and symbol as key and currency information as a list
manager.get_curency('btc') # return the list of currency values retrived for bitcoin using symbol
manager.get_curency('bitcoin') # return the list of currency values retrived for bitcoin using name
```

#### Add your own scraper

A scraper should extends the `CurrentPriceInterface`.
Here is a basic scheme for a new scraper

```python

class MySourceForCurrencies(CurrentPriceInterface):
    instance = None
    URL = 'https://api.mysource.com/v1/ticker/?limit=3000'
    NAME = "mysource.com"

    @classmethod
    def get_instance(cls) -> 'CurrenciesFromCoinMarketCap':
        if cls.instance is None:
            cls.instance = MySourceForCurrencies()
        return cls.instance

    def __init__(self):
        super().__init__()

    def update_currency_list(self):
        self.process_data(requests.get(self.URL).json())

    def process_data(self, json_data: json) -> None:
        # Manipulate the the json to be Currency "parsable"
        c = Currency.parse_json(json_data, self.NAME)
        #When parsed, add it to the index 
        NameIndexes.get_instance().add_to_index(c)
        return None

```

In order for your scraper to be working you need to add it to the manager

```python
from cryptocurrencies_scraper.CurrencyService import Manager
manager = Manager()
manager.add_source(MySourceForCurrencies.get_instance())

# you can also remove a source
manager.remove_source(MySourceForCurrencies.NAME)

```

Then on each `manager.update()` call your scraper will be called and currencies added to the Index

#### NameIndex

This class is used internally to index all currencies. 
When a new currency is added, it will be grouped by the symbol and the name (symbol upper, name lower case)

The only useful method is `NameIndexes.get_instance().add_to_index(currency)`. On each update, it get completlly cleared 
from all old values.


#### `Currency`

This is the object that represent one currency here is the structure

```json
 {
    "symbol" : "BTC",
    "name" : "Bitcoin",
    "valueUSD" : 5513,
    "valueBTC": 1,
    "lastUpdate" : 1566531513813,
    "source" : "coin360.com",
    "changes" : {
        "7d": -1,
        "24h": -5,
        "1h": -10
    }
 }
```
pytest-vcrpandas 0.0.2
Test from HTTP interactions to dataframe processed.

.. image:: https://travis-ci.com/gjeusel/pytest-vcrpandas.svg?branch=master
  :target: https://travis-ci.com/gjeusel/pytest-vcrpandas
.. image:: https://readthedocs.org/projects/pytest-vcrpandas/badge/?version=latest
  :target: http://pytest-vcrpandas.readthedocs.io/en/latest/?badge=latest
  :alt: Documentation Status
.. image:: https://codecov.io/gh/gjeusel/pytest-vcrpandas/branch/master/graph/badge.svg
  :target: https://codecov.io/gh/gjeusel/pytest-vcrpandas
.. image:: https://badge.fury.io/py/pytest-vcrpandas.svg
  :target: https://pypi.python.org/pypi/pytest-vcrpandas/
  :alt: Pypi package

===============================
pytest-vcrpandas
===============================

Combine `vcrpy <https://github.com/kevin1024/vcrpy>`_ with
`pandas <https://github.com/pandas-dev/pandas>`_ to not only mock your HTTP interactions,
but also tests your post-processing work to get a pandas DataFrame.

Usage
-----

.. code:: python

    # test_meteo_client.py

    def test_meteo_get_wind_speed(vcrpandas, client):
        start = pd.Timestamp('2018-01-01', tz='CET')
        end = pd.Timestamp('2018-02-01', tz='CET')
        with vcrpandas("meteo_get_wind_speed") as recorder:
            df = client.get_wind_speed(start, end)
            recorder(df)


.. code:: bash

    # call pytest for the first time to generate samples
    > pytest --vcr-record="new_episodes"

    # you can now replay it:
    > pytest


Behind the hood, 2 files are generated by the first run:

- a *meteo_get_wind_speed.yaml*, which is the reponse obtained by
  the first HTTP interaction.
- a *meteo_get_wind_speed.pickle* that serve to compare the formatting from
  the mocked response to the pandas DataFrame, types included.


Installation
------------

.. code:: bash

    pip install pytest-vcrpandas


Advanced Usage
--------------

To configure VCR, here is how to procee:


.. code:: python

  @pytest.fixture
  def my_vcrpandas(vcrpandas):
      custom_vcr_config = dict(
          serializer='json',
          cassette_library_dir='fixtures/myclient/cassettes',
          match_on=['uri', 'method'],
          filter_headers=['authorization'],  # filter information from HTTP Headers
          filter_query_parameters=['api_key'],  # filter information from HTTP query string
          filter_post_data_parameters=['client_secret'],  # filter information from HTTP post data
      )
      vcrpandas.config.update(custom_vcr_config)
      return vcrpandas


  def test_mysupertest(my_vcrpandas):
      with my_vcrpandas("random_bucket_name") as recorder:
          recorder(CL.get_stuff())


Refere to `VCR configuration <https://vcrpy.readthedocs.io/en/latest/configuration.html`_ and
`VCR Advanced Features <https://vcrpy.readthedocs.io/en/latest/advanced.html>`_ to get the
full list of options.
funhouse 0.1.6
Funguana's Foundational Preprocessing Library

# Funhouse - Funguana's Time Series Pre-processing library for our crypto trading bot

`Funhouse` is a simple small library that is created to easily standardize pre-processing for our trading bot. It's based on TA-Lib and Pandas.

The entire goal we have for this library is to modularize the processing for Funguana's Bot. It allows us to organize better.

Funhouse currently only supports price and TA data. In the future it'll support text data as well.



## What makes `Funhouse` better?
Currently it's only the simpler interface and modular library available for what we need.


## How does it work?
It's a simple builder pattern to extract the information we need given a data set. 



### Example:
---
```python
from funtime import Store, Converter
from funpicker import Query
from funhouse import TA, index_time

# Create a library and access the store you want
store = Store().create_lib("ticker.Price").get_store()
tickstore = store["ticker.Price"]


# Get the bittrex price
hourly_bittrex_eth = Query().set_crypto("ETH").set_fiat("USD").set_exchange("bittrex").set_period("hour").set_limit(500).get()

# Get the price dataframe
bittrex_frame_hr = Converter.to_dataframe(hourly_bittrex_eth)

# Get the newly indexed time
bittrex_frame_hr = index_time(bittrex_frame)

tframe = TA(bittrex_frame_hr)

# We're getting all of the necessary TA indicators
tframe.SMA().SMA(100).RSI().RSI(window=30).BOLL().ATR().FIBBB()

# Get the main indicators
tframe.main
```


**Output**
```
              price       SMA_30    SMA_100     SMA_250
timestamp
2018-08-20  6269.90  7081.856000  7070.8227  9146.76444
2018-08-21  6491.11  7051.605000  7048.6392  9106.85724
2018-08-22  6366.13  7006.542667  7025.5715  9061.90236
2018-08-23  6538.95  6944.647000  7006.1594  9010.67620
2018-08-24  6708.96  6895.938000  6989.8012  8961.24920
2018-08-25  6749.56  6856.348333  6976.5864  8912.35816
2018-08-26  6720.60  6807.605333  6961.3133  8869.14576
2018-08-27  6915.73  6763.767333  6947.9782  8830.96080
2018-08-28  7091.38  6726.254000  6933.5620  8796.79784
2018-08-29  7052.00  6688.785333  6919.8855  8770.34596
2018-08-30  6998.76  6664.234000  6909.9456  8740.75516
2018-08-31  6970.31  6642.881000  6904.5910  8713.47660
```


## How to install

Make sure to install mongodb at the very beginning. The instructions are different for different operating systems. Then run:

```
pip install funhouse
```

Or you can use `pipenv` for it:

```
pipenv install funhouse
```


## Roadmap
---
This application aims to be a general preprocessing library for the user. In the future, we'll aim to add the following features:


### Future Features:
- [] Preprocessing pipeline system
    - [] multicore parallezation using numba and dask
    - More streamlined system to increase swapout functionality. 
- [] Text analysis
    - [] PCA decomposition
    - [] Topic Analysis using wikipedia as base
- Technical analysis
    - [] More TA