mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-11-13 04:41:24 +00:00
Add Stockgrid io source (#496)
* poetry add new mypy and merge recent main updates * add shortdata command and dark short interest data * reformat black * Update Readme * Add stockgrid dd command and update readme info * Update Roadmao
This commit is contained in:
@@ -43,7 +43,7 @@
|
||||
* [x] Add top ratings updates (@hinxx) - [PR #357](https://github.com/DidierRLopes/GamestonkTerminal/pull/357)
|
||||
* [x] Add dark pool (ATS) data of tickers with growing trades activity (@didier) - [PR #372](https://github.com/DidierRLopes/GamestonkTerminal/pull/372)
|
||||
* [x] Past and future IPOs calendar (@didier) - [PR #432](https://github.com/DidierRLopes/GamestonkTerminal/pull/432)
|
||||
|
||||
* [x] Short volume and dark pool short information (stockgrid) (@jmaslek) - [PR #496](https://github.com/GamestonkTerminal/GamestonkTerminal/pull/496
|
||||
|
||||
**NEXT**
|
||||
|
||||
@@ -93,6 +93,7 @@
|
||||
* [x] Add dark pools (ATS) vs Non-ATS data over time (@didier) - [PR #363](https://github.com/DidierRLopes/GamestonkTerminal/pull/363)
|
||||
* [x] Add failure to deliver command (@hinxx) - [PR #366](https://github.com/DidierRLopes/GamestonkTerminal/pull/366)
|
||||
* [x] Ratings over time (@didier) - [PR #431](https://github.com/DidierRLopes/GamestonkTerminal/pull/431)
|
||||
* [x] Add short volume from stockgrid (@jmaslek) - [PR #496](https://github.com/GamestonkTerminal/GamestonkTerminal/pull/496)
|
||||
|
||||
**NEXT**
|
||||
|
||||
|
||||
@@ -103,6 +103,9 @@ Command|Description|Source
|
||||
`trending` |trending news |[Seeking Alpha](https://seekingalpha.com/)
|
||||
`ratings` |top ratings updates |[MarketBeat](https://marketbeat.com)
|
||||
`darkpool` |dark pool tickers with growing activity |[FINRA](https://www.finra.org)
|
||||
`topdark` |largest dark pool positions | [Stockgrid](https://stockgrid.io)
|
||||
`darkshort` | dark pool short information|[Stockgrid](https://stockgrid.io)
|
||||
`shortvol` |short interest |[Stockgrid](https://stockgrid.io)
|
||||
|
||||
|
||||
|
||||
@@ -242,6 +245,7 @@ Command|Description|Source
|
||||
`warnings` |company warnings according to Sean Seah book |[MarketWatch](https://www.marketwatch.com/)
|
||||
`dp` |dark pools (ATS) vs OTC data [FINRA](https://www.finra.org/#/)
|
||||
`ftd` |display fails-to-deliver data [SEC](https://www.sec.gov)
|
||||
`shortview` |shows price vs short interest over last year [Stockgrid](https://stockgrid.io
|
||||
|
||||
|
||||
|
||||
@@ -469,7 +473,7 @@ Command|Website
|
||||
`sell_house` | plot top sell house tickers
|
||||
`last_contracts` | last government contracts
|
||||
`sum_contracts` | plot sum of last government contracts
|
||||
with ticker provided |
|
||||
with ticker provided |
|
||||
`raw_congress` | raw congress trades on the ticker
|
||||
`congress` | plot congress trades on the ticker
|
||||
`raw_senate` | raw senate trades on the ticker
|
||||
|
||||
@@ -42,7 +42,15 @@ This menu aims to discover new stocks, and the usage of the following commands a
|
||||
* top ratings updates [MarketBeat]
|
||||
* [darkpool](#darkpool)
|
||||
* dark pool tickers with growing activity [FINRA]
|
||||
|
||||
|
||||
* [topdark](#topdark)
|
||||
* largest dark pool positions [Stockgrid.io]
|
||||
|
||||
* [darkshort](#darkshort)
|
||||
* dark pool short information [Stockgrid.io]
|
||||
|
||||
* [shortvol](#shortvol)
|
||||
* short interest [Stockgrid.io]
|
||||
|
||||
## ipo <a name="ipo"></a>
|
||||
|
||||
@@ -297,4 +305,72 @@ Display dark pool (ATS) data of tickers with growing trades activity. [Source: F
|
||||
|
||||

|
||||
|
||||
# Stockgrid.io
|
||||
|
||||
## topdark <a name="topdark"></a>
|
||||
|
||||
```
|
||||
usage: topdark [-n]
|
||||
```
|
||||
Display the largest dark pool positions
|
||||
* -n : Number of tickers to display
|
||||
|
||||
```python
|
||||
(✨) (disc)> topdark -n 4
|
||||
|
||||
╒══════════╤═══════════════════╤═══════════════╤════════════╕
|
||||
│ Ticker │ Position ($1B) │ Shares (1M) │ Date │
|
||||
╞══════════╪═══════════════════╪═══════════════╪════════════╡
|
||||
│ QQQ │ 16.83 │ 51.11 │ 2021-06-10 │
|
||||
├──────────┼───────────────────┼───────────────┼────────────┤
|
||||
│ IWM │ 5.18 │ 22.99 │ 2021-06-10 │
|
||||
├──────────┼───────────────────┼───────────────┼────────────┤
|
||||
│ BND │ 3.24 │ 37.98 │ 2021-06-10 │
|
||||
├──────────┼───────────────────┼───────────────┼────────────┤
|
||||
│ EEM │ 3.13 │ 56.95 │ 2021-06-10 │
|
||||
╘══════════╧═══════════════════╧═══════════════╧════════════╛
|
||||
```
|
||||
|
||||
## darkshort <a name="darkshort"></a>
|
||||
|
||||
```
|
||||
usage: darkshort [-n]
|
||||
```
|
||||
Display the largest dark pool short positions
|
||||
* -n : Number of tickers to display
|
||||
|
||||
```
|
||||
(✨) (disc)> darkshort -n 4
|
||||
|
||||
╒══════════╤════════════╤══════════════════╤═════════════════════╤═════════════════════╤══════════════════╕
|
||||
│ Ticker │ Date │ Net Short (1M) │ Net Short ($100M) │ Short Volume (1M) │ Short Volume % │
|
||||
╞══════════╪════════════╪══════════════════╪═════════════════════╪═════════════════════╪══════════════════╡
|
||||
│ QQQ │ 2021-06-10 │ 1.66 │ 5.65 │ 5.90 │ 0.58 │
|
||||
├──────────┼────────────┼──────────────────┼─────────────────────┼─────────────────────┼──────────────────┤
|
||||
│ IWM │ 2021-06-10 │ 1.38 │ 3.17 │ 5.43 │ 0.57 │
|
||||
├──────────┼────────────┼──────────────────┼─────────────────────┼─────────────────────┼──────────────────┤
|
||||
│ RH │ 2021-06-10 │ 0.43 │ 3.03 │ 1.26 │ 0.60 │
|
||||
├──────────┼────────────┼──────────────────┼─────────────────────┼─────────────────────┼──────────────────┤
|
||||
│ TLT │ 2021-06-10 │ 1.70 │ 2.42 │ 2.25 │ 0.80 │
|
||||
╘══════════╧════════════╧══════════════════╧═════════════════════╧═════════════════════╧══════════════════╛
|
||||
```
|
||||
## shortvol <a name="darkpool"></a>
|
||||
|
||||
Display the largest short positions
|
||||
* -n : Number of tickers to display
|
||||
|
||||
```
|
||||
(✨) (disc)> shortvol -n 4
|
||||
|
||||
╒══════════╤════════════╤════════════════╤═════════════════╤═══════════════════════╕
|
||||
│ Ticker │ Date │ %Float Short │ Days To Cover │ Short Interest (1M) │
|
||||
╞══════════╪════════════╪════════════════╪═════════════════╪═══════════════════════╡
|
||||
│ AGC │ 2021-05-28 │ 42.51 │ 24.75 │ 15.94 │
|
||||
├──────────┼────────────┼────────────────┼─────────────────┼───────────────────────┤
|
||||
│ PETS │ 2021-05-28 │ 32.69 │ 20.05 │ 6.40 │
|
||||
├──────────┼────────────┼────────────────┼─────────────────┼───────────────────────┤
|
||||
│ BCEL │ 2021-05-28 │ 27.86 │ 24.51 │ 6.23 │
|
||||
├──────────┼────────────┼────────────────┼─────────────────┼───────────────────────┤
|
||||
│ KDMN │ 2021-05-28 │ 25.54 │ 35.96 │ 39.73 │
|
||||
╘══════════╧════════════╧════════════════╧═════════════════╧═══════════════════════╛
|
||||
```
|
||||
@@ -23,6 +23,7 @@ from gamestonk_terminal.discovery import (
|
||||
marketbeat_view,
|
||||
finra_ats_view,
|
||||
finnhub_view,
|
||||
stockgrid_view,
|
||||
)
|
||||
|
||||
|
||||
@@ -54,6 +55,9 @@ class DiscoveryController:
|
||||
"latest",
|
||||
"trending",
|
||||
"darkpool",
|
||||
"topdark",
|
||||
"darkshort",
|
||||
"shortvol",
|
||||
]
|
||||
|
||||
def __init__(self):
|
||||
@@ -100,6 +104,9 @@ class DiscoveryController:
|
||||
print(" trending trending news [Seeking Alpha]")
|
||||
print(" ratings top ratings updates [MarketBeat]")
|
||||
print(" darkpool dark pool tickers with growing activity [FINRA]")
|
||||
print(" topdark largest dark pool positions [Stockgrid.io]")
|
||||
print(" darkshort dark pool short information [Stockgrid.io]")
|
||||
print(" shortvol short interest [Stockgrid.io]")
|
||||
print("")
|
||||
|
||||
def switch(self, an_input: str):
|
||||
@@ -220,6 +227,18 @@ class DiscoveryController:
|
||||
"""Process darkpool command"""
|
||||
finra_ats_view.dark_pool(other_args)
|
||||
|
||||
def call_topdark(self, other_args: List[str]):
|
||||
"""Process topdark command"""
|
||||
stockgrid_view.top_dark_pools(other_args)
|
||||
|
||||
def call_darkshort(self, other_args: List[str]):
|
||||
"""Process shortvol command"""
|
||||
stockgrid_view.darkshort(other_args)
|
||||
|
||||
def call_shortvol(self, other_args: List[str]):
|
||||
"""Process shortvol command"""
|
||||
stockgrid_view.shortvol(other_args)
|
||||
|
||||
|
||||
def menu():
|
||||
"""Discovery Menu"""
|
||||
|
||||
@@ -260,6 +260,5 @@ def dark_pool(other_args: List[str]):
|
||||
print("")
|
||||
|
||||
except Exception as e:
|
||||
print(e)
|
||||
print("")
|
||||
print(e, "\n")
|
||||
return
|
||||
|
||||
172
gamestonk_terminal/discovery/stockgrid_view.py
Normal file
172
gamestonk_terminal/discovery/stockgrid_view.py
Normal file
@@ -0,0 +1,172 @@
|
||||
""" Stockgrid View """
|
||||
__docformat__ = "numpy"
|
||||
|
||||
import argparse
|
||||
from typing import List
|
||||
import requests
|
||||
import pandas as pd
|
||||
from tabulate import tabulate
|
||||
from gamestonk_terminal.helper_funcs import (
|
||||
parse_known_args_and_warn,
|
||||
)
|
||||
|
||||
|
||||
def top_dark_pools(other_args: List[str]):
|
||||
"""
|
||||
Get and show the top dark pool positions
|
||||
Parameters
|
||||
----------
|
||||
other_args: List[str[
|
||||
Argparse arguments
|
||||
|
||||
"""
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
prog="topdark", add_help=False, description="Get top dark pool positions"
|
||||
)
|
||||
parser.add_argument("-n", help="Number to show", type=int, default=10, dest="num")
|
||||
print("")
|
||||
|
||||
try:
|
||||
ns_parser = parse_known_args_and_warn(parser, other_args)
|
||||
if not ns_parser:
|
||||
return
|
||||
|
||||
link1 = "https://stockgridapp.herokuapp.com/get_dark_pool_data?top=Dark+Pools+Position+$&minmax=desc"
|
||||
response = requests.get(link1)
|
||||
df = pd.DataFrame(response.json()["data"]).sort_values(
|
||||
"Dark Pools Position $", ascending=False
|
||||
)
|
||||
df = df[["Ticker", "Dark Pools Position $", "Dark Pools Position", "Date"]]
|
||||
df["Dark Pools Position $"] = df["Dark Pools Position $"] / (
|
||||
1_000_000_000
|
||||
) # %%
|
||||
df["Dark Pools Position"] = df["Dark Pools Position"] / 1_000_000
|
||||
|
||||
df.columns = ["Ticker", "Position ($1B) ", "Shares (1M)", "Date"]
|
||||
print(
|
||||
tabulate(
|
||||
df.iloc[: ns_parser.num],
|
||||
tablefmt="fancy_grid",
|
||||
floatfmt=".2f",
|
||||
headers=list(df.columns),
|
||||
showindex=False,
|
||||
)
|
||||
)
|
||||
print("")
|
||||
except Exception as e:
|
||||
print(e, "\n")
|
||||
|
||||
|
||||
def darkshort(other_args: List[str]):
|
||||
"""
|
||||
Get short volume data from Dark Pools.
|
||||
Parameters
|
||||
----------
|
||||
other_args: List[str]
|
||||
Argparse arguments
|
||||
|
||||
"""
|
||||
parser = argparse.ArgumentParser(
|
||||
prog="darkshort", add_help=False, description="Get dark pool short positions"
|
||||
)
|
||||
parser.add_argument("-n", help="Number to show", type=int, default=10, dest="num")
|
||||
print("")
|
||||
|
||||
try:
|
||||
ns_parser = parse_known_args_and_warn(parser, other_args)
|
||||
if not ns_parser:
|
||||
return
|
||||
|
||||
link = "https://stockgridapp.herokuapp.com/get_dark_pool_data?top=Dark+Pools+Position+$&minmax=desc"
|
||||
response = requests.get(link)
|
||||
df = pd.DataFrame(response.json()["data"])
|
||||
|
||||
df = df[
|
||||
[
|
||||
"Ticker",
|
||||
"Date",
|
||||
"Net Short Volume",
|
||||
"Net Short Volume $",
|
||||
"Short Volume",
|
||||
"Short Volume %",
|
||||
]
|
||||
].sort_values(by="Net Short Volume $", ascending=False)
|
||||
df["Net Short Volume $"] = df["Net Short Volume $"] / 100_000_000
|
||||
df["Short Volume"] = df["Short Volume"] / 1_000_000
|
||||
df["Net Short Volume"] = df["Net Short Volume"] / 1_000_000
|
||||
df.columns = [
|
||||
"Ticker",
|
||||
"Date",
|
||||
"Net Short (1M)",
|
||||
"Net Short ($100M)",
|
||||
"Short Volume (1M)",
|
||||
"Short Volume %",
|
||||
]
|
||||
print(
|
||||
tabulate(
|
||||
df.iloc[: ns_parser.num],
|
||||
tablefmt="fancy_grid",
|
||||
floatfmt=".2f",
|
||||
headers=list(df.columns),
|
||||
showindex=False,
|
||||
)
|
||||
)
|
||||
|
||||
print("")
|
||||
except Exception as e:
|
||||
print(e, "\n")
|
||||
|
||||
|
||||
def shortvol(other_args: List[str]):
|
||||
"""
|
||||
Get and show short volume from stockgrid.io
|
||||
Parameters
|
||||
----------
|
||||
other_args: List[str]
|
||||
Argparse arguments
|
||||
"""
|
||||
parser = argparse.ArgumentParser(
|
||||
prog="shortvol",
|
||||
add_help=False,
|
||||
description="Scrape stockgrid.io for short volume data",
|
||||
)
|
||||
parser.add_argument("-n", help="Number to show", type=int, default=10, dest="num")
|
||||
print("")
|
||||
|
||||
try:
|
||||
ns_parser = parse_known_args_and_warn(parser, other_args)
|
||||
if not ns_parser:
|
||||
return
|
||||
|
||||
link = "https://stockgridapp.herokuapp.com/get_short_interest?top=days"
|
||||
r = requests.get(link)
|
||||
df = pd.DataFrame(r.json()["data"])
|
||||
df.head()
|
||||
|
||||
# %%
|
||||
df = df[
|
||||
["Ticker", "Date", "%Float Short", "Days To Cover", "Short Interest"]
|
||||
].sort_values(by="%Float Short", ascending=False)
|
||||
df["Short Interest"] = df["Short Interest"] / 1_000_000
|
||||
df.head()
|
||||
df.columns = [
|
||||
"Ticker",
|
||||
"Date",
|
||||
"%Float Short",
|
||||
"Days To Cover",
|
||||
"Short Interest (1M)",
|
||||
]
|
||||
|
||||
print(
|
||||
tabulate(
|
||||
df.iloc[: ns_parser.num],
|
||||
tablefmt="fancy_grid",
|
||||
floatfmt=".2f",
|
||||
headers=list(df.columns),
|
||||
showindex=False,
|
||||
)
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
print(e, "\n")
|
||||
@@ -30,6 +30,8 @@ This menu aims to help in due-diligence of a pre-loaded stock, and the usage of
|
||||
* dark pools (ATS) vs OTC data [FINRA]
|
||||
* [ftd](#ftd)
|
||||
* fails-to-deliver data [SEC]
|
||||
* [shortview](#shortview)
|
||||
* shows price vs short interest over last year [Stockgrid.io]
|
||||
|
||||
## news <a name="news"></a>
|
||||
|
||||
@@ -198,3 +200,8 @@ The fails-to-deliver data collected by SEC. Fails to deliver on a given day are
|
||||
|
||||

|
||||
|
||||
## shortview <a name="shortview"></a>
|
||||
```text
|
||||
usage: shortview
|
||||
```
|
||||
Plots price and short volume over the past year.
|
||||
|
||||
@@ -15,6 +15,7 @@ from gamestonk_terminal.due_diligence import reddit_view as r_view
|
||||
from gamestonk_terminal.due_diligence import news_view
|
||||
from gamestonk_terminal.due_diligence import finra_view
|
||||
from gamestonk_terminal.due_diligence import sec_view
|
||||
from gamestonk_terminal.due_diligence import stockgrid_dd_view as sg_view
|
||||
from gamestonk_terminal.due_diligence import finnhub_view
|
||||
from gamestonk_terminal import feature_flags as gtff
|
||||
from gamestonk_terminal.helper_funcs import get_flair
|
||||
@@ -43,6 +44,7 @@ class DueDiligenceController:
|
||||
"sec",
|
||||
"dp",
|
||||
"ftd",
|
||||
"shortview",
|
||||
]
|
||||
|
||||
def __init__(self, stock: DataFrame, ticker: str, start: str, interval: str):
|
||||
@@ -108,6 +110,9 @@ class DueDiligenceController:
|
||||
)
|
||||
print(" dp dark pools (ATS) vs OTC data [FINRA]")
|
||||
print(" ftd fails-to-deliver data [SEC]")
|
||||
print(
|
||||
" shortview shows price vs short interest over last year [Stockgrid.io]"
|
||||
)
|
||||
print("")
|
||||
|
||||
def switch(self, an_input: str):
|
||||
@@ -198,6 +203,9 @@ class DueDiligenceController:
|
||||
"""Process ftd command"""
|
||||
sec_view.fails_to_deliver(other_args, self.ticker)
|
||||
|
||||
def call_shortview(self, other_args: List[str]):
|
||||
sg_view.shortview(self.ticker, other_args)
|
||||
|
||||
|
||||
def menu(stock: DataFrame, ticker: str, start: str, interval: str):
|
||||
"""Due Diligence Menu
|
||||
|
||||
90
gamestonk_terminal/due_diligence/stockgrid_dd_view.py
Normal file
90
gamestonk_terminal/due_diligence/stockgrid_dd_view.py
Normal file
@@ -0,0 +1,90 @@
|
||||
"""Stockgrid DD View"""
|
||||
__docformat__ = "numpy"
|
||||
|
||||
import argparse
|
||||
from typing import List
|
||||
from datetime import timedelta
|
||||
import requests
|
||||
import pandas as pd
|
||||
import matplotlib.pyplot as plt
|
||||
from gamestonk_terminal.config_plot import PLOT_DPI
|
||||
from gamestonk_terminal.feature_flags import USE_ION
|
||||
from gamestonk_terminal.helper_funcs import parse_known_args_and_warn, plot_autoscale
|
||||
|
||||
|
||||
def shortview(ticker: str, other_args: List[str]):
|
||||
"""
|
||||
Plot price vs short volume over last year
|
||||
Parameters
|
||||
----------
|
||||
ticker: str
|
||||
Stock to plot for
|
||||
other_args : List[str]
|
||||
Argparse arguments
|
||||
|
||||
"""
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
prog="shortview", add_help=False, description="Shows price vs short interest"
|
||||
)
|
||||
|
||||
try:
|
||||
ns_parser = parse_known_args_and_warn(parser, other_args)
|
||||
if not ns_parser:
|
||||
return
|
||||
link = f"https://stockgridapp.herokuapp.com/get_dark_pool_individual_data?ticker={ticker}"
|
||||
response = requests.get(link)
|
||||
response.json().keys()
|
||||
df1 = pd.DataFrame(response.json()["individual_dark_pool_position_data"])
|
||||
df2 = pd.DataFrame(response.json()["individual_short_volume"])
|
||||
prices = response.json()["prices"]["prices"]
|
||||
|
||||
dates = pd.to_datetime(df1.dates)
|
||||
|
||||
fig = plt.figure(figsize=(plot_autoscale()), dpi=PLOT_DPI)
|
||||
|
||||
ax = fig.add_subplot(111)
|
||||
|
||||
ax.bar(
|
||||
dates,
|
||||
df2["total_volume"],
|
||||
width=timedelta(days=1),
|
||||
color="b",
|
||||
alpha=0.4,
|
||||
label="Total Volume",
|
||||
)
|
||||
ax.bar(
|
||||
dates,
|
||||
df2["short_volume"],
|
||||
width=timedelta(days=1),
|
||||
color="r",
|
||||
alpha=0.4,
|
||||
label="Short Volume",
|
||||
)
|
||||
|
||||
ax.set_ylabel("Volume")
|
||||
ax2 = ax.twinx()
|
||||
|
||||
ax2.plot(dates, prices, c="k", label="Price")
|
||||
ax2.set_ylabel("Price ($)")
|
||||
|
||||
lines, labels = ax.get_legend_handles_labels()
|
||||
lines2, labels2 = ax2.get_legend_handles_labels()
|
||||
ax2.legend(lines + lines2, labels + labels2, loc="upper left")
|
||||
|
||||
ax.set_xlim(dates[0], dates[251])
|
||||
|
||||
ax.grid(b=True, which="major", color="#666666", linestyle="-")
|
||||
ax.minorticks_on()
|
||||
ax.grid(b=True, which="minor", color="#999999", linestyle="-", alpha=0.2)
|
||||
|
||||
plt.suptitle(f"Price vs Short Volume for {ticker}")
|
||||
plt.gcf().autofmt_xdate()
|
||||
if USE_ION:
|
||||
plt.ion()
|
||||
|
||||
plt.show()
|
||||
print("")
|
||||
|
||||
except Exception as e:
|
||||
print(e, "\n")
|
||||
55
poetry.lock
generated
55
poetry.lock
generated
@@ -1180,19 +1180,21 @@ python-versions = "*"
|
||||
|
||||
[[package]]
|
||||
name = "mypy"
|
||||
version = "0.812"
|
||||
version = "0.901"
|
||||
description = "Optional static typing for Python"
|
||||
category = "dev"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.5"
|
||||
|
||||
[package.dependencies]
|
||||
mypy-extensions = ">=0.4.3,<0.5.0"
|
||||
typed-ast = ">=1.4.0,<1.5.0"
|
||||
toml = "*"
|
||||
typed-ast = {version = ">=1.4.0,<1.5.0", markers = "python_version < \"3.8\""}
|
||||
typing-extensions = ">=3.7.4"
|
||||
|
||||
[package.extras]
|
||||
dmypy = ["psutil (>=4.0)"]
|
||||
python2 = ["typed-ast (>=1.4.0,<1.5.0)"]
|
||||
|
||||
[[package]]
|
||||
name = "mypy-extensions"
|
||||
@@ -2709,7 +2711,7 @@ prediction = ["tensorflow", "pmdarima"]
|
||||
[metadata]
|
||||
lock-version = "1.1"
|
||||
python-versions = "^3.6.8"
|
||||
content-hash = "9510676944e6f58159239de8fc33956258c521b1cb58ad43be3ef57763633987"
|
||||
content-hash = "597c430e8a6c3bb6f5531acfdadfb9036ff0d3b7a91662e01638d14581dfb31c"
|
||||
|
||||
[metadata.files]
|
||||
absl-py = [
|
||||
@@ -3548,28 +3550,29 @@ multitasking = [
|
||||
{file = "multitasking-0.0.9.tar.gz", hash = "sha256:b59d99f709d2e17d60ccaa2be09771b6e9ed9391c63f083c0701e724f624d2e0"},
|
||||
]
|
||||
mypy = [
|
||||
{file = "mypy-0.812-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:a26f8ec704e5a7423c8824d425086705e381b4f1dfdef6e3a1edab7ba174ec49"},
|
||||
{file = "mypy-0.812-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:28fb5479c494b1bab244620685e2eb3c3f988d71fd5d64cc753195e8ed53df7c"},
|
||||
{file = "mypy-0.812-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:9743c91088d396c1a5a3c9978354b61b0382b4e3c440ce83cf77994a43e8c521"},
|
||||
{file = "mypy-0.812-cp35-cp35m-win_amd64.whl", hash = "sha256:d7da2e1d5f558c37d6e8c1246f1aec1e7349e4913d8fb3cb289a35de573fe2eb"},
|
||||
{file = "mypy-0.812-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:4eec37370483331d13514c3f55f446fc5248d6373e7029a29ecb7b7494851e7a"},
|
||||
{file = "mypy-0.812-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:d65cc1df038ef55a99e617431f0553cd77763869eebdf9042403e16089fe746c"},
|
||||
{file = "mypy-0.812-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:61a3d5b97955422964be6b3baf05ff2ce7f26f52c85dd88db11d5e03e146a3a6"},
|
||||
{file = "mypy-0.812-cp36-cp36m-win_amd64.whl", hash = "sha256:25adde9b862f8f9aac9d2d11971f226bd4c8fbaa89fb76bdadb267ef22d10064"},
|
||||
{file = "mypy-0.812-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:552a815579aa1e995f39fd05dde6cd378e191b063f031f2acfe73ce9fb7f9e56"},
|
||||
{file = "mypy-0.812-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:499c798053cdebcaa916eef8cd733e5584b5909f789de856b482cd7d069bdad8"},
|
||||
{file = "mypy-0.812-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:5873888fff1c7cf5b71efbe80e0e73153fe9212fafdf8e44adfe4c20ec9f82d7"},
|
||||
{file = "mypy-0.812-cp37-cp37m-win_amd64.whl", hash = "sha256:9f94aac67a2045ec719ffe6111df543bac7874cee01f41928f6969756e030564"},
|
||||
{file = "mypy-0.812-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d23e0ea196702d918b60c8288561e722bf437d82cb7ef2edcd98cfa38905d506"},
|
||||
{file = "mypy-0.812-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:674e822aa665b9fd75130c6c5f5ed9564a38c6cea6a6432ce47eafb68ee578c5"},
|
||||
{file = "mypy-0.812-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:abf7e0c3cf117c44d9285cc6128856106183938c68fd4944763003decdcfeb66"},
|
||||
{file = "mypy-0.812-cp38-cp38-win_amd64.whl", hash = "sha256:0d0a87c0e7e3a9becdfbe936c981d32e5ee0ccda3e0f07e1ef2c3d1a817cf73e"},
|
||||
{file = "mypy-0.812-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7ce3175801d0ae5fdfa79b4f0cfed08807af4d075b402b7e294e6aa72af9aa2a"},
|
||||
{file = "mypy-0.812-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:b09669bcda124e83708f34a94606e01b614fa71931d356c1f1a5297ba11f110a"},
|
||||
{file = "mypy-0.812-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:33f159443db0829d16f0a8d83d94df3109bb6dd801975fe86bacb9bf71628e97"},
|
||||
{file = "mypy-0.812-cp39-cp39-win_amd64.whl", hash = "sha256:3f2aca7f68580dc2508289c729bd49ee929a436208d2b2b6aab15745a70a57df"},
|
||||
{file = "mypy-0.812-py3-none-any.whl", hash = "sha256:2f9b3407c58347a452fc0736861593e105139b905cca7d097e413453a1d650b4"},
|
||||
{file = "mypy-0.812.tar.gz", hash = "sha256:cd07039aa5df222037005b08fbbfd69b3ab0b0bd7a07d7906de75ae52c4e3119"},
|
||||
{file = "mypy-0.901-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:91211acf1485a1db0b1261bc5f9ed450cba3c0dfd8da0a6680e94827591e34d7"},
|
||||
{file = "mypy-0.901-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:c8bc628961cca4335ac7d1f2ed59b7125d9252fe4c78c3d66d30b50162359c99"},
|
||||
{file = "mypy-0.901-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:4a622faa3be76114cdce009f8ec173401494cf9e8f22713e7ae75fee9d906ab3"},
|
||||
{file = "mypy-0.901-cp35-cp35m-win_amd64.whl", hash = "sha256:8183561bfd950e93eeab8379ae5ec65873c856f5b58498d23aa8691f74c86030"},
|
||||
{file = "mypy-0.901-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:da914faaa80c25f463913da6db12adba703822a768f452f29f75b40bb4357139"},
|
||||
{file = "mypy-0.901-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:307a6c047596d768c3d689734307e47a91596eb9dbb67cfdf7d1fd9117b27f13"},
|
||||
{file = "mypy-0.901-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:a85c6759dcc6a9884131fa06a037bd34352aa3947e7f5d9d5a35652cc3a44bcd"},
|
||||
{file = "mypy-0.901-cp36-cp36m-win_amd64.whl", hash = "sha256:9941b685807b60c58020bb67b3217c9df47820dcd00425f55cdf71f31d3c42d9"},
|
||||
{file = "mypy-0.901-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:08cf1f31029612e1008a9432337ca4b1fbac989ff7c8200e2c9ec42705cd4c7b"},
|
||||
{file = "mypy-0.901-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:bc61153eb4df769538bb4a6e1045f59c2e6119339690ec719feeacbfc3809e89"},
|
||||
{file = "mypy-0.901-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:1cd241966a35036f936d4739bd71a1c64e15f02bf7d12bb2815cccfb2993a9de"},
|
||||
{file = "mypy-0.901-cp37-cp37m-win_amd64.whl", hash = "sha256:97be0e8ed116f7f79472a49cf06dd45dd806771142401f684d4f13ee652a63c0"},
|
||||
{file = "mypy-0.901-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:79beb6741df15395908ecc706b3a593a98804c1d5b5b6bd0c5b03b67c7ac03a0"},
|
||||
{file = "mypy-0.901-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:bf347c327c48d963bdef5bf365215d3e98b5fddbe5069fc796cec330e8235a20"},
|
||||
{file = "mypy-0.901-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:053b92ebae901fc7954677949049f70133f2f63e3e83dc100225c26d6a46fe95"},
|
||||
{file = "mypy-0.901-cp38-cp38-win_amd64.whl", hash = "sha256:f208cc967e566698c4e30a1f65843fc88d8da05a8693bac8b975417e0aee9ced"},
|
||||
{file = "mypy-0.901-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c86e3f015bfe7958646825d41c0691c6e5a5cd4015e3409b5c29c18a3c712534"},
|
||||
{file = "mypy-0.901-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e8577d30daf1b7b6582020f539f76e78ee1ed64a0323b28c8e0333c45db9369f"},
|
||||
{file = "mypy-0.901-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:5ddd8f4096d5fc2e7d7bb3924ac22758862163ad2c1cdc902c4b85568160e90a"},
|
||||
{file = "mypy-0.901-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:4b54518e399c3f4dc53380d4252c83276b2e60623cfc5274076eb8aae57572ac"},
|
||||
{file = "mypy-0.901-cp39-cp39-win_amd64.whl", hash = "sha256:7845ad3a31407bfbd64c76d032c16ab546d282930f747023bf07c17b054bebc5"},
|
||||
{file = "mypy-0.901-py3-none-any.whl", hash = "sha256:61b10ba18a01d05fc46adbf4f18b0e92178f6b5fd0f45926ffc2a408b5419728"},
|
||||
{file = "mypy-0.901.tar.gz", hash = "sha256:18753a8bb9bcf031ff10009852bd48d781798ecbccf45be5449892e6af4e3f9f"},
|
||||
]
|
||||
mypy-extensions = [
|
||||
{file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"},
|
||||
|
||||
@@ -71,13 +71,14 @@ tensorflow = {version = "2.5.0", optional = true}
|
||||
jupyter-client = "6.1.12"
|
||||
vaderSentiment = "3.3.2"
|
||||
degiro-connector = "1.0.0"
|
||||
mypy = "^0.901"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
pytest = "^6.2.2"
|
||||
pylint = "^2.7.2"
|
||||
flake8 = "^3.9.0"
|
||||
black = "21.5b2"
|
||||
mypy = "^0.812"
|
||||
mypy = "^0.901"
|
||||
mock = "^4.0.3"
|
||||
codespell = "^2.0.0"
|
||||
pyupgrade = "^2.11.0"
|
||||
|
||||
Reference in New Issue
Block a user