A Python wrapper for the Novig API with built-in filtering and liquidity validation.
Project description
Novig Liquidity
A Python wrapper around the Novig API with built-in filtering and validation.
This package helps you fetch sports market data and filter it based on liquidity and stat types.
Installation
pip install novig-liquidity
Requirements
Dependencies are listed in requirements.txt and are installed automatically. Core ones include:
aiohttpredispydanticrequests
Usage
Create a filters.json file defining which stat types you care about. Example:
{
"WNBA": [
{
"raw_name": "points_rebounds_assists",
"display_name": "Points, Rebounds, and Assists",
"active": true
},
{
"raw_name": "points",
"display_name": "Points",
"active": true
},
{
"raw_name": "rebounds_assists",
"display_name": "Rebounds and Assists",
"active": true
},
{
"raw_name": "points_assists",
"display_name": "Points and Assists",
"active": true
},
{
"raw_name": "points_rebounds",
"display_name": "Points and Rebounds",
"active": true
},
{
"raw_name": "three_pointers_made",
"display_name": "Three Pointers Made",
"active": true
},
{
"raw_name": "double_double",
"display_name": "Double-Double",
"active": true
}
],
"NFL": [
{
"raw_name": "rushing_yards",
"display_name": "Rushing Yards",
"active": true
},
{
"raw_name": "rushing_attempts",
"display_name": "Rushing Attempts",
"active": true
},
{
"raw_name": "longest_rush",
"display_name": "Longest Rush",
"active": true
},
{
"raw_name": "passing_yards",
"display_name": "Passing Yards",
"active": true
},
{
"raw_name": "receiving_yards",
"display_name": "Receiving Yards",
"active": true
},
{
"raw_name": "receptions",
"display_name": "Receptions",
"active": true
},
{
"raw_name": "longest_reception",
"display_name": "Longest Receptions",
"active": true
},
{
"raw_name": "passing_completions",
"display_name": "Passing Completions",
"active": true
}
]
}
Example script
import asyncio
import json
from Config import Novig
if __name__ == "__main__":
# Load filters from file
with open("filters.json", "r") as f:
filters = json.load(f)
# Choose your filter type and amounts
total_and_difference_filter = {
# "filter_type": "total_difference",
"filter_type": "total_and_difference",
"difference_amount": 3000,
"highest_order_amount": 1500
}
# OR
total_difference_filter = {
"filter_type": "total_difference",
"difference_amount": 3000,
}
# Create Novig instance
novig = Novig(filters=filters, filter_amount_dict=total_and_difference_filter)
# Run it
results = asyncio.run(novig.run())
print(results)
if __name__ == "__main__":
raw = asyncio.run(Novig.get_raw_data(["NFL"]))
import json
with open("raw.json", "w") as f:
json.dump(raw, f, indent=4)
Filter Types
Two filter types are currently supported:
-
total_difference
Keeps markets where the liquidity difference between over/under is at leastdifference_amount. -
total_and_difference
Keeps markets where:- Liquidity difference ≥
difference_amount, and - Either over/under side has a highest order with
liquidity_left≥highest_order_amount.
- Liquidity difference ≥
Output
novig.run() returns a dict keyed by league name (e.g., "WNBA", "NFL"), each with a list of filtered market entries. Each entry includes:
key_name(market description)liquidity(grouped byover/under, includeshighest_order, totals, etc.)additional_data(player name, stat type, line, game title, start time)
Features
- Async API calls via
aiohttp - Filtering on liquidity differences and totals
- Stat-type validation via your
filters.json - Clean models (Pydantic + dataclasses where applicable)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file novig_liquidity-1.0.6.tar.gz.
File metadata
- Download URL: novig_liquidity-1.0.6.tar.gz
- Upload date:
- Size: 9.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f5b06bc533806a76e54fa9d44b5a804cad0806463e3d9a878613f756e4d5fb8
|
|
| MD5 |
d4dd1a7cbac7b7dcaf1c8178b500323c
|
|
| BLAKE2b-256 |
d267e28586bd9fa4e32ad5bb1dec402f301f2680009910f9e056b11be8f4a137
|
File details
Details for the file novig_liquidity-1.0.6-py3-none-any.whl.
File metadata
- Download URL: novig_liquidity-1.0.6-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d82c5af1eae6923f048ba4d586aa303eb41b14bfa7a6fe889b8f34ce0012d5e6
|
|
| MD5 |
f526482edcd9e0ff2c4c821f852975d5
|
|
| BLAKE2b-256 |
fad137d3dd45e55970f32d332e6dde5b8ac0c459cfccf3c83a93f78b0c19b973
|