Metadata-Version: 2.1
Name: finavis
Version: 0.0.36
Summary: another unofficial api for some financial visualization website
Home-page: https://github.com/rdnve/finavis
License: MIT
Keywords: finance,datascience,scrapper,markets,stock,quote,ticker,finviz
Author: serje ù
Author-email: pleaseanswermeserjeu@icloud.com
Requires-Python: >=3.12,<4.0
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Libraries
Requires-Dist: attrs (>=23.2.0,<24.0.0)
Requires-Dist: cssselect (>=1.2.0,<2.0.0)
Requires-Dist: lxml (>=4,<5)
Requires-Dist: requests[socks] (>=2.31,<2.32)
Requires-Dist: user-agent (>=0.1.10,<0.2.0)
Project-URL: Repository, https://github.com/rdnve/finavis
Description-Content-Type: text/markdown

## another unofficial api for [finviz.com](https://finviz.com)

[![python-latest](https://img.shields.io/pypi/pyversions/finavis?logo=python&logoColor=FFE873)](https://www.python.org/downloads/)
[![pypi](https://img.shields.io/badge/pypi-0.0.36-blue?logo=pypi&logoColor=FFE873)](https://pypi.org/project/finavis/)
[![status](https://img.shields.io/pypi/status/finavis)](https://pypi.org/project/finavis/)
[![pypi_downloads](https://img.shields.io/pypi/dm/finavis)](https://pypi.org/project/finavis/)
[![license](https://img.shields.io/pypi/l/finavis)](https://github.com/rdnve/finavis/blob/master/LICENSE)


### installation

```bash
# via pypi (recommended)
$ python -m pip install -U finavis

# or using github w/ pip
$ python -m pip install git+https://github.com/rdnve/finavis.git

# or using github w/ poetry
$ poetry add git+https://github.com/rdnve/finavis.git
```

### getting a single quote
```python
import typing as ty

from finavis import get_quote
from finavis.library import Quote

quote: Quote = get_quote(ticker="AAPL")

# accessing to attributes: type help(quote) for more
print(f"Ticker: {quote.ticker}, price: {quote.price}, w/ EPS {quote.eps_ttm}")

# extract attributes to dictionary
data: ty.Dict[str, str] = quote.to_dict()
```

### getting a several quotes
```python
import typing as ty

from finavis import get_quotes

tickers: ty.Tuple[str, ...] = ("AAPL", "INTC", "QCOM")
for quote in get_quotes(tickers=tickers):
    print(f"Ticker: {quote.ticker}, price: {quote.price}, w/ EPS {quote.eps_ttm}")
```

### getting a screener w/ objects
```python
from finavis import Screener
from finavis.library import Exchange, Index, Order

screener: Screener = Screener(
    exchange=Exchange.NASDAQ,
    index=Index.SP500,
    order_by=Order.CHANGE_ASC,
)

for index, overview in enumerate(screener()):
    print(f"Ticker: {overview.ticker}, price: {overview.price} - change: {overview.change}")
```

### disclaimer
using this library to acquire data from some website is against their "terms of service" and *robots.txt*; use it responsibly and at your own risk, this library was built purely for educational purposes.

### important information
any quote data displayed on the [finviz.com](https://finviz.com) website is delayed by 15 minutes for nasdaq/nyse/amex; this api should **NOT be used** for real-time trading, it's primary purpose for research in educational purposes.

