▶ Full Post Text
Hey r/algotrading!
I'm excited to announce a major update to **[pandas-ta-classic](https://github.com/xgboosted/pandas-ta-classic)**, the actively maintained fork of the original `pandas-ta` library. This release brings full type annotations, modern pandas compatibility, and a robust, passing test suite.
---
## 🚀 What's New in v0.3.78
### 1. **Full PEP 484 Type Hints**
- Every indicator function (155+!) now has complete type annotations for all parameters and return values.
- IDEs and static checkers (mypy, pyright, Pylance) now provide autocompletion and catch type errors before runtime.
- All inner helpers and utilities are typed, making the API self-documenting and safer for large codebases.
**Before:**
```python
def rsi(close, length=None, scalar=None, drift=None, offset=None, **kwargs):
```
**After:**
```python
def rsi(
close: Series,
length: Optional[int] = None,
scalar: Optional[float] = None,
drift: Optional[int] = None,
offset: Optional[int] = None,
**kwargs: Any,
) -> Optional[Series]:
```
---
### 2. **pandas 2.x Compatibility**
- Fixed all test suite breakages from pandas 2.0 removals:
- `infer_datetime_format` and `keep_date_col` are gone; now using `index_col="date", parse_dates=True, usecols=lambda c: not c.startswith("Unnamed")` for robust CSV loading.
- No more manual column dropping or index shuffling—just clean, modern pandas.
---
### 3. **Test Suite and Code Quality**
- All 379 tests pass on Python 3.8–3.12 and pandas 2.x.
- `black` formatting is enforced and clean across all 203 files.
- No library logic changes—just annotations and test robustness.
- Eliminated all pandas 3.0 FutureWarnings in core code (e.g., Heikin-Ashi now uses `.iat` instead of chained assignment).
---
### 4. **Other Improvements**
- `test_strategy.py`: Fixed teardown to avoid ValueError on `drop()` and guard against empty speed tables.
- `test_utils.py`: Updated deprecated dtype checks for future pandas compatibility.
- All indicator and utility files now have full type hints, including inner functions.
---
## 📦 Install / Upgrade
```bash
pip install pandas-ta-classic --upgrade
# or with uv
uv add pandas-ta-classic
```
Repo: https://github.com/xgboosted/pandas-ta-classic
---
**Questions, feedback, or bug reports?** Drop them below or open an issue on GitHub!
Happy trading! 🚀