Skip to content

Commit d07c358

Browse files
Merge pull request #13 from mratanusarkar/feat/publish-to-pypi
feat(pypi): prep publish to pypi and release + improve docs
2 parents 62738d9 + ae12281 commit d07c358

7 files changed

Lines changed: 209 additions & 30 deletions

File tree

.github/workflows/docs.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Docs
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
permissions:
9+
contents: write
10+
id-token: write
11+
12+
concurrency:
13+
group: pages-${{ github.ref }}
14+
cancel-in-progress: true
15+
16+
jobs:
17+
documentation:
18+
name: update documentation on github pages
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: actions/checkout@v4
22+
with:
23+
fetch-depth: 0
24+
25+
- uses: actions/setup-python@v4
26+
with:
27+
python-version: '3.12'
28+
cache: 'pip'
29+
30+
- uses: actions/cache@v3
31+
with:
32+
key: mkdocs-${{ runner.os }}-${{ hashFiles('**/pyproject.toml') }}
33+
path: .cache
34+
35+
- name: install dependencies
36+
run: |
37+
pip install --upgrade pip
38+
pip install .[docs]
39+
- name: build and deploy documentation
40+
run: mkdocs gh-deploy --force
41+
42+
- name: deployment summary
43+
run: echo "✅ Documentation deployed successfully!" >> $GITHUB_STEP_SUMMARY

README.md

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,16 @@
22

33
# Tickersnap
44

5-
[![Python](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
6-
[![License](https://img.shields.io/badge/license-Apache%202.0-green.svg)](LICENSE)
7-
[![Tests](https://github.com/mratanusarkar/tickersnap/actions/workflows/tests.yml/badge.svg)](https://github.com/mratanusarkar/tickersnap/actions)
5+
[![Documentation](https://img.shields.io/badge/docs-mkdocs-4baaaa.svg?logo=materialformkdocs&logoColor=white)](https://mratanusarkar.github.io/tickersnap)
6+
[![PyPI version](https://img.shields.io/pypi/v/tickersnap.svg?color=blue&logo=pypi&logoColor=white)](https://pypi.org/project/tickersnap/)
7+
[![Python versions](https://img.shields.io/pypi/pyversions/tickersnap.svg?color=blue&logo=python&logoColor=white)](https://pypi.org/project/tickersnap/)
8+
[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-orange.svg?logo=apache&logoColor=white)](https://github.com/mratanusarkar/tickersnap/blob/main/LICENSE)
9+
<br>
10+
[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/mratanusarkar/tickersnap/docs.yml?logo=githubactions&logoColor=white&label=build)](https://github.com/mratanusarkar/tickersnap/actions)
11+
[![Tests](https://img.shields.io/github/actions/workflow/status/mratanusarkar/tickersnap/tests.yml?logo=cachet&logoColor=white&label=tests)](https://github.com/mratanusarkar/tickersnap/actions)
12+
[![Visitors](https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fgithub.com%2Fmratanusarkar%2Ftickersnap&label=view&labelColor=%235e5e5e&countColor=%237C8AA0&style=flat&labelStyle=lower)](https://visitorbadge.io/status?path=https%3A%2F%2Fgithub.com%2Fmratanusarkar%2Ftickersnap)
13+
[![PyPI Total Downloads](https://static.pepy.tech/badge/tickersnap)](https://pepy.tech/projects/tickersnap)
14+
[![PyPI Monthly Downloads](https://img.shields.io/pypi/dm/tickersnap?style=flat&color=%231F86BF)](https://pypistats.org/packages/tickersnap)
815

916
**Python Library for Indian Stock Market Analysis** 📈
1017

@@ -22,13 +29,13 @@ Tickersnap provides streamlined access to comprehensive Indian stock market data
2229
> - This library heavily relies on the (unofficial) public APIs from Tickertape IN.
2330
> - I am not affiliated with Tickertape.in in any way.
2431
> - Tickertape had been my go to for stock analysis tool for like forever!
25-
> - and I am greatful to then and a big fan of the work they do!
32+
> - and I am greatful to them for the work they do!
2633
2734
> [!WARNING]
2835
> - All data are for **informational purposes only** and should not be considered as financial advice.
2936
> - Always consult qualified financial advisors before making investment decisions.
3037
> - I am not an expert in finance.
31-
> - I am not responsible for how one uses this library, or the consequences, or financial outcomes of using it.
38+
> - I am not responsible for how one uses this library, the consequences, or financial outcomes of using it.
3239
3340
## ✨ Key Features
3441

@@ -75,7 +82,7 @@ all_stocks = assets.get_all_stocks()
7582
print(f"Total stocks available: {len(all_stocks)}")
7683
```
7784

78-
**👉 [Complete Quick Start Guide](https://mratanusarkar.github.io/tickersnap//quickstart.md)** - Learn with real examples!
85+
**👉 [Complete Quick Start Guide](https://mratanusarkar.github.io/tickersnap/quickstart.md)** - Learn with real examples!
7986

8087
## 📦 Core Modules
8188

@@ -94,6 +101,7 @@ print(f"Total stocks available: {len(all_stocks)}")
94101
- **🎯 Market Alerts** - Get notified of sentiment extremes
95102
- **🔍 Research Tools** - Comprehensive market analysis
96103
- **🤖 Trading Bots** - Automated analysis and signals
104+
- **🧠 LLM Agents** - Build agents to get live financial data
97105

98106
**👉 see documentation, every module is filled with usage examples!**
99107

docs/index.md

Lines changed: 72 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,75 @@
1-
# Tickersnap
2-
3-
[![Python](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
4-
[![License](https://img.shields.io/badge/license-Apache%202.0-green.svg)](https://github.com/mratanusarkar/tickersnap/blob/main/LICENSE)
5-
6-
**Python Library for Indian Stock Market Analysis** 📈
7-
8-
Tickersnap provides streamlined access to comprehensive Indian stock market data from [www.tickertape.in](https://www.tickertape.in), enabling powerful financial analysis, automated screening, and market sentiment tracking.
1+
<h1 align="center"><strong>Tickersnap</strong></h1>
2+
3+
<p align="center">
4+
5+
<a href="https://mratanusarkar.github.io/tickersnap">
6+
<img
7+
src="https://img.shields.io/badge/docs-mkdocs-4baaaa.svg?logo=materialformkdocs&logoColor=white"
8+
alt="Documentation">
9+
</a>
10+
<a href="https://pypi.org/project/tickersnap/">
11+
<img
12+
src="https://img.shields.io/pypi/v/tickersnap.svg?color=blue&logo=pypi&logoColor=white"
13+
alt="PyPI version">
14+
</a>
15+
<a href="https://pypi.org/project/tickersnap/">
16+
<img src="https://img.shields.io/pypi/pyversions/tickersnap.svg?color=blue&logo=python&logoColor=white"
17+
alt="Python versions">
18+
</a>
19+
<a href="https://github.com/mratanusarkar/tickersnap/blob/main/LICENSE">
20+
<img src="https://img.shields.io/badge/License-Apache%202.0-orange.svg?logo=apache&logoColor=white"
21+
alt="License: Apache 2.0">
22+
</a>
23+
24+
<br>
25+
26+
<a href="https://github.com/mratanusarkar/tickersnap/actions">
27+
<img
28+
src="https://img.shields.io/github/actions/workflow/status/mratanusarkar/tickersnap/docs.yml?logo=githubactions&logoColor=white&label=build"
29+
alt="GitHub Actions Workflow Status">
30+
</a>
31+
<a href="https://github.com/mratanusarkar/tickersnap/actions">
32+
<img src="https://img.shields.io/github/actions/workflow/status/mratanusarkar/tickersnap/tests.yml?logo=cachet&logoColor=white&label=tests"
33+
alt="Tests">
34+
</a>
35+
<a href="https://visitorbadge.io/status?path=https%3A%2F%2Fgithub.com%2Fmratanusarkar%2Ftickersnap">
36+
<img src="https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fgithub.com%2Fmratanusarkar%2Ftickersnap&label=view&labelColor=%235e5e5e&countColor=%237C8AA0&style=flat&labelStyle=lower"
37+
alt="Visitors">
38+
</a>
39+
40+
<a href="https://pepy.tech/projects/tickersnap">
41+
<img src="https://static.pepy.tech/badge/tickersnap"
42+
alt="PyPI Total Downloads">
43+
</a>
44+
45+
<a href="https://pypistats.org/packages/tickersnap">
46+
<img src="https://img.shields.io/pypi/dm/tickersnap?style=flat&color=%231F86BF"
47+
alt="PyPI Monthly Downloads">
48+
</a>
49+
50+
</p>
51+
52+
<p align="center">
53+
54+
<b>Python Library for Indian Stock Market Analysis</b> 📈
55+
56+
<br><br>
57+
58+
<i style="color: #888888">Streamlined access to comprehensive Indian stock market data from <a href="https://www.tickertape.in">Tickertape IN</a>, enabling powerful financial analysis, automated screening, and market sentiment tracking.</i>
59+
60+
</p>
961

1062
!!! important "Important Notice"
1163
- This library heavily relies on the (unofficial) public APIs from Tickertape IN.
1264
- I am not affiliated with Tickertape.in in any way.
1365
- Tickertape had been my go to for stock analysis tool for like forever!
14-
- and I am greatful to then and a big fan of the work they do!
66+
- and I am greatful to them for the work they do!
1567

1668
!!! warning "Disclaimer"
1769
- All data are for **informational purposes only** and should not be considered as financial advice.
1870
- Always consult qualified financial advisors before making investment decisions.
1971
- I am not an expert in finance.
20-
- I am not responsible for how one uses this library, or the consequences, or financial outcomes of using it.
72+
- I am not responsible for how one uses this library, the consequences, or financial outcomes of using it.
2173

2274
## ✨ Key Features
2375

@@ -64,7 +116,7 @@ all_stocks = assets.get_all_stocks()
64116
print(f"Total stocks available: {len(all_stocks)}")
65117
```
66118

67-
**👉 [Complete Quick Start Guide](quickstart.md)** - Learn with real examples!
119+
**👉 [Complete Quick Start Guide](./quickstart.md)** - Learn with real examples!
68120

69121
## 📦 Core Modules
70122

@@ -74,7 +126,7 @@ print(f"Total stocks available: {len(all_stocks)}")
74126
| **📊 Stock Scorecard** | 6-category stock analysis | Investment screening, due diligence |
75127
| **📈 Market Mood Index** | Sentiment tracking (0-100 scale) | Market timing, contrarian investing |
76128

77-
**👉 See detailed documentation:** | [MMI](tickersnap/mmi/index.md) | [Assets](tickersnap/lists/index.md) | [Stocks](tickersnap/stock/index.md) |
129+
**👉 See detailed documentation:** | [MMI](./tickersnap/mmi/index.md) | [Assets](./tickersnap/lists/index.md) | [Stocks](./tickersnap/stock/index.md) |
78130

79131
## 💡 What You Can Build
80132

@@ -83,18 +135,19 @@ print(f"Total stocks available: {len(all_stocks)}")
83135
- **🎯 Market Alerts** - Get notified of sentiment extremes
84136
- **🔍 Research Tools** - Comprehensive market analysis
85137
- **🤖 Trading Bots** - Automated analysis and signals
138+
- **🧠 LLM Agents** - Build agents to get live financial data
86139

87140
**👉 Every module is filled with usage examples throughout the documentation!**
88141

89-
## 📚 Documentation Structure
142+
## 📚 Quick Links
90143

91-
- **[Quick Start Guide](quickstart.md)** - Get started in minutes
92-
- **[Installation Guide](setup/installation.md)** - Detailed setup instructions
93-
- **[Development Guide](setup/development.md)** - Contributing and development setup
144+
- **[Quick Start Guide](./quickstart.md)** - Get started in minutes
145+
- **[Installation Guide](./setup/installation.md)** - Detailed setup instructions
146+
- **[Development Guide](./setup/development.md)** - Contributing and development setup
94147
- **Module Documentation:**
95-
- **[Market Mood Index (MMI)](tickersnap/mmi/index.md)** - Market sentiment tracking
96-
- **[Assets Lists](tickersnap/lists/index.md)** - Stock and ETF data access
97-
- **[Stock Scorecard](tickersnap/stock/index.md)** - Comprehensive stock analysis
148+
- **[Market Mood Index (MMI)](./tickersnap/mmi/index.md)** - Market sentiment tracking
149+
- **[Assets Lists](./tickersnap/lists/index.md)** - Stock and ETF data access
150+
- **[Stock Scorecard](./tickersnap/stock/index.md)** - Comprehensive stock analysis
98151

99152
## 📄 License
100153

mkdocs.yml

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,22 @@
1-
# mkdocs.yml
21
site_name: Tickersnap
32
site_url: https://mratanusarkar.github.io/tickersnap
3+
site_author: Atanu Sarkar
4+
site_description: Streamlined access to Indian stock market data for financial analysis, automated screening, and sentiment tracking.
5+
repo_name: tickersnap
46
repo_url: https://github.com/mratanusarkar/tickersnap
7+
edit_uri: https://github.com/mratanusarkar/tickersnap/tree/main/docs
8+
copyright: Copyright &copy; 2025 Atanu Sarkar
9+
10+
extra:
11+
social:
12+
- icon: fontawesome/brands/github
13+
link: https://github.com/mratanusarkar
14+
- icon: fontawesome/brands/linkedin
15+
link: https://www.linkedin.com/in/mratanusarkar
16+
- icon: fontawesome/brands/x-twitter
17+
link: https://twitter.com/mratanusarkar
18+
- icon: fontawesome/solid/envelope
19+
link: mailto:mratanusarkar@gmail.com
520

621
theme:
722
name: material
@@ -36,7 +51,7 @@ plugins:
3651
# show the root heading (module/class name)
3752
show_root_heading: true
3853
# show the source code
39-
show_source: true
54+
show_source: false
4055
# docstring style to parse
4156
docstring_style: google
4257
# order of members (by source order)
@@ -99,4 +114,4 @@ nav:
99114
- Introduction: 'tickersnap/stock/index.md'
100115
- Scorecard: 'tickersnap/stock/scorecard.md'
101116
- Tickertape API: 'tickersnap/stock/api.md'
102-
- Models: 'tickersnap/stock/models.md'
117+
- Models: 'tickersnap/stock/models.md'

pyproject.toml

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,37 @@
1+
[build-system]
2+
requires = ["setuptools>=80.9.0", "wheel"]
3+
build-backend = "setuptools.build_meta"
4+
15
[project]
26
name = "tickersnap"
37
version = "0.0.3"
48
description = "Tickersnap is a tool for getting snapshots of stock data from www.tickertape.in"
59
readme = "README.md"
610
requires-python = ">=3.10"
11+
license = "Apache-2.0"
12+
license-files = ["LICENSE"]
13+
authors = [
14+
{name = "Atanu Sarkar", email = "mratanusarkar@gmail.com"}
15+
]
16+
maintainers = [
17+
{name = "Atanu Sarkar", email = "mratanusarkar@gmail.com"}
18+
]
19+
keywords = ["finance", "stock", "market", "data", "financial", "analysis", "automation", "sentiment", "screening", "tickertape"]
20+
classifiers = [
21+
"Development Status :: 3 - Alpha",
22+
"Intended Audience :: Developers",
23+
"Intended Audience :: End Users/Desktop",
24+
"Intended Audience :: Financial and Insurance Industry",
25+
"Operating System :: OS Independent",
26+
"Programming Language :: Python :: 3",
27+
"Programming Language :: Python :: 3.10",
28+
"Programming Language :: Python :: 3.11",
29+
"Programming Language :: Python :: 3.12",
30+
"Programming Language :: Python :: 3.13",
31+
"Topic :: Office/Business :: Financial",
32+
"Topic :: Office/Business :: Financial :: Investment",
33+
"Topic :: Software Development :: Libraries :: Python Modules",
34+
]
735
dependencies = [
836
"pydantic>=2.0.0",
937
"httpx>=0.25.0",
@@ -30,8 +58,19 @@ docs = [
3058
"jupyter>=1.1.1",
3159
]
3260

33-
[tool.setuptools]
34-
py-modules = ["tickersnap"]
61+
[project.urls]
62+
Homepage = "https://github.com/mratanusarkar/tickersnap"
63+
Documentation = "https://mratanusarkar.github.io/tickersnap"
64+
Repository = "https://github.com/mratanusarkar/tickersnap"
65+
"Bug Tracker" = "https://github.com/mratanusarkar/tickersnap/issues"
66+
Changelog = "https://github.com/mratanusarkar/tickersnap/releases"
67+
68+
[tool.setuptools.packages.find]
69+
include = ["tickersnap*"]
70+
exclude = ["tests*", "docs*", "site*", "data*", "input*", "output*", "artifacts*", "*.egg-info*"]
71+
72+
[tool.setuptools.package-data]
73+
tickersnap = ["py.typed"]
3574

3675
[tool.pytest.ini_options]
3776
pythonpath = "."

tickersnap/__init__.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
"""
2+
Tickersnap - Stock data snapshots from Tickertape IN
3+
4+
A Python library for accessing Indian stock market data including:
5+
6+
- Market Mood Index (MMI) data
7+
- List of all stocks and ETFs
8+
- Stock scorecard analysis data
9+
"""
10+
11+
__version__ = "0.0.3"
12+
13+
# import submodules for easy access without unpacking classes
14+
from . import lists, mmi, stock
15+
16+
__all__ = [
17+
"__version__",
18+
"mmi",
19+
"lists",
20+
"stock",
21+
]

tickersnap/py.typed

Whitespace-only changes.

0 commit comments

Comments
 (0)