74 Commits
Author SHA1 Message Date
xgboosted ef609055df Merge branch 'main' into chore/prune-optional-deps 2026-07-23 03:26:48 +10:00
xgboostedandGitHub 60b0e32c77 Merge pull request #139 from xgboosted/dependabot/github_actions/actions/setup-python-7.0.0
chore(deps): bump actions/setup-python from 6.3.0 to 7.0.0
2026-07-22 23:01:45 +08:00
dependabot[bot]andGitHub 7a9c3fb37b chore(deps): bump actions/checkout from 7.0.0 to 7.0.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0...3d3c42e5aac5ba805825da76410c181273ba90b1)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-21 19:24:18 +00:00
dependabot[bot]andGitHub 82d1e76b34 chore(deps): bump actions/setup-python from 6.3.0 to 7.0.0
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6.3.0 to 7.0.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/ece7cb06caefa5fff74198d8649806c4678c61a1...5fda3b95a4ea91299a34e894583c3862153e4b97)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-21 19:24:13 +00:00
rmarcinkandClaude Opus 4.8 6b1e156eee test(oracle): freeze tulipy oracle to golden file; deprecate data fetching
Oracle
------
tulipy (unmaintained, no wheels for CPython >=3.12) broke the testing-oracle
CI job on Python 3.12-3.14. Snapshot its deterministic output once into
tests/fixtures/tulipy_oracle.json (generator: generate_tulipy_oracle.py, run
on CPython <3.12) and compare native output against the frozen arrays on every
Python version. Remove tulipy from the oracle extra and drop the live tulipy
import from the CI smoke-check; ta-lib remains the live primary oracle. MSW
oracle tolerance loosened to 1e-3 to absorb ~1e-4 numpy-version float drift in
that recursive trig indicator.

Deprecation
-----------
df.ta.ticker(), ta.yf() and ta.av() now emit a FutureWarning and will be
removed in a future release; data fetching is out of scope for a TA library.
Add examples/fetch_market_data.py showing the yfinance / alpha-vantage
replacement patterns. The data extra remains available during the window.

Update CHANGELOG and installation docs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 14:10:22 +02:00
xgboosted 1f49218fce refactor(tools): drop PyYAML from lint version check
- parse .pre-commit-config.yaml rev fields with a regex instead of
  yaml.safe_load; the file is repo-controlled and flat, so stdlib
  covers it and the lint extra stays two pins (pyyaml removed)
- normalize YAML-quoted and v-prefixed revs so a quoting change
  can't produce a false mismatch
- derive the checked tool list from REPO_TO_TOOL instead of a
  third hardcoded copy
- drop the Makefile PyYAML probe made moot by the above
- halve persist-step comments in ci.yml; kept detached-HEAD reset,
  never-reopen, and sed fail-by-name rationale
2026-07-04 20:00:21 +10:00
xgboosted 7f2231a20f fix(lint): make ruff clean repo-wide without suppressions
- replace star imports with explicit imports + __all__ in
  __init__.py, core.py, utils/__init__.py; incidental namespace
  leaks (ta.np, ta.pd, ta.DataFrame, ta.logger) are gone
- rename ambiguous vars: O -> O_ in candle loops, l -> low in tests
- drop sys.path bootstrap hacks from tools/, tests/fixtures/, and
  docs/conf.py; the editable install makes them redundant
- reorder notebook cells to import-first
- use pandas-safe .eq(False) where ruff's suggested `not series`
  fix would raise on elementwise comparison

requires-python floor raised to >=3.10: 3.9 was never in the CI
matrix (LATEST-4..LATEST = 3.10-3.14) and AGENTS.md documents 3.10
as the minimum. mypy derives its target from requires-python via
make typecheck instead of a second hardcoded copy, and the global
ignore_missing_imports is now scoped to the six stub-less packages.

CI: pypi-publish opens a follow-up PR bumping requires-python after
each release so the committed floor cannot drift stale again;
code-quality enforces black/ruff pin parity between pyproject.toml
and .pre-commit-config.yaml (tools/check_lint_versions.py, also run
by make lint); mirror.yml's force-push assumption documented.
2026-07-04 18:19:45 +10:00
rmarcink 6aa5909f8a ci: add pre-commit hooks and core.pyi drift gate
* `.pre-commit-config.yaml`: black + ruff (critical-only) on
  `pandas_ta_classic/`, plus a local hook that regenerates `core.pyi`
  before commit so the stub never drifts from Category.
* `code-quality` CI job runs the same stub regeneration and
  `git diff --exit-code core.pyi` to fail the build if a contributor
  added an indicator without updating the stub.
2026-06-27 17:47:40 +02:00
xgboosted aa6cc248ce ci.yml: pin all action refs to full SHA for supply-chain hardening;
move concurrency group from workflow-level to documentation job only
  (was incorrectly blocking the whole pipeline); drop setup-python from
  generate-matrix (pure-bash script needs none); remove debug echo steps
2026-06-25 18:57:05 +10:00
dependabot[bot]andGitHub 538fd19e63 chore(deps): bump actions/checkout from 6 to 7
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-22 06:57:52 +00:00
xgboosted 6c37fa9ec8 fix: restrict CI workflow to main branch for push events 2026-05-21 01:54:47 +10:00
xgboosted 310280c873 refactor: enhance mirror workflow with retry logic for git push 2026-05-21 01:39:23 +10:00
xgboostedandCopilot 2777bbc7ac feat: Update Python version to 3.14 and enhance dependency installation in CI workflow
Co-authored-by: Copilot <copilot@github.com>
2026-04-30 21:50:17 +10:00
xgboosted 4ed62b8dbd feat: Add installation step for dependencies and quality tools in CI workflow 2026-04-30 21:37:12 +10:00
xgboosted 0e8cf07573 feat: Update CI configuration and pyproject.toml for oracle library support 2026-04-30 21:31:02 +10:00
xgboosted 7d98d3b44a Add comprehensive tests for purely-native indicators and snapshot regression tests
- Introduced `test_native_indicators.py` to validate purely-native indicators with additional assertions for non-None results, valid rows, and finite last values.
- Implemented checks for known mathematical constraints on certain indicators.
- Excluded tests for known-broken indicators (`pmax` and `vfi`) with appropriate comments.
- Created `test_regression.py` to perform snapshot regression tests on indicators, comparing computed values against stored golden snapshots at specific indices.
- Enhanced test coverage for various indicators across multiple categories including Overlap, Momentum, Volatility, Trend, Volume, Statistics, Cycles, Performance, and Candles.
2026-04-28 20:07:17 +10:00
xgboostedandCopilot 1c5ff09785 Refactor issue templates and CI workflow for clarity and consistency
Co-authored-by: Copilot <copilot@github.com>
2026-04-25 16:02:38 +10:00
xgboosted 34a38b5ba0 Refactor CI workflow and update dependencies for linting and publishing 2026-04-25 15:52:58 +10:00
xgboosted 3585c32033 Add sample data and update paths in examples
- Added a new sample CSV file containing historical stock data to examples/data/sample.csv.
- Updated the data loading path in example.ipynb to reflect the new location of the sample data.
- Adjusted the sample data path in watchlist.py to point to examples/data/SPY_D.csv.
- Corrected the image path in index.md to point to the correct documentation folder.
- Modified package data configuration in pyproject.toml to include the new sample data location.
- Removed setup.py as it is no longer needed for the project structure.
- Updated test configuration to load sample data from examples/data/SPY_D.csv.
- Deleted validate_structure.py as it is no longer required.
2026-04-25 15:38:09 +10:00
xgboosted 1abed9e07b Update GitHub Actions to use latest page configuration actions 2026-04-25 06:38:42 +10:00
xgboostedandCopilot 3dc525ba71 Update mirror.yml to use separate push commands for branches and tags
Co-authored-by: Copilot <copilot@github.com>
2026-04-25 06:15:18 +10:00
Golam Rashed 1d411b0cbe Upgrade upload-pages-artifact action from v3 to v4 2026-03-13 20:13:12 +11:00
Golam Rashed cacba680d2 Upgrade configure-pages action from v4 to v5 2026-03-13 18:27:06 +11:00
xgboostedandGitHub 8e5a8efc2f Upgrade setup-python action from v4 to v6 2026-03-12 23:54:52 +11:00
xgboostedandGitHub abd60a9f21 Upgrade checkout action from v4 to v6 2026-03-12 23:40:31 +11:00
xgboostedandGitHub e0855f2160 Update ci.yml 2026-03-12 23:34:42 +11:00
xgboostedandGitHub e91060c40e Update checkout action version to v6 2026-03-12 23:29:14 +11:00
xgboostedandGitHub 720eee3b2a Add GitHub Actions workflow to mirror to Codeberg 2026-03-10 15:37:34 +11:00
Golam Rashed 6196b13250 fix: Force exact release version in CI/CD using SETUPTOOLS_SCM_PRETEND_VERSION
- Set SETUPTOOLS_SCM_PRETEND_VERSION from release tag to prevent .dev versions
- This fixes PyPI releases showing dev versions (e.g., 0.3.36.dev0) instead of clean versions
- The issue occurred because pyproject.toml modifications during build made working directory dirty
- Update CHANGELOG.md with PyPI Release Version fix
- Update CONTRIBUTING.md with new CI/CD consideration for release builds with modified files
2025-10-01 20:14:32 +10:00
Golam Rashed b7617b72c9 fix: Remove unnecessary --no-deps flag from package installation in CI workflow 2025-10-01 06:18:01 +10:00
Golam Rashed 0df35eef3f chore: Update CI workflow for improved structure and clarity 2025-10-01 06:16:03 +10:00
Golam Rashed b40194c537 feat: Add step to display package version from git in CI workflow 2025-10-01 06:07:12 +10:00
Golam Rashed ad1333d849 fix: Update fallback version to remove development suffix for consistency 2025-10-01 05:21:31 +10:00
Golam Rashed f4d449c580 feat: Implement automatic version management using setuptools-scm and update related documentation 2025-10-01 05:02:58 +10:00
Golam Rashed a31d6a140e feat: Add new candlestick pattern methods to AnalysisIndicators class for enhanced technical analysis 2025-10-01 03:51:57 +10:00
Golam Rashed ea806ae793 fix: Update minimum Python version in pyproject.toml and CI workflow to ensure compatibility and streamline version management 2025-10-01 02:42:03 +10:00
Golam Rashed 45e9e605b8 fix: Update version placeholders in configuration files to ensure PEP 440 compliance and improve CI/CD workflows 2025-10-01 02:36:08 +10:00
Golam Rashed 657348c32d fix: Update dependency installation in CI workflow to streamline package management and ensure consistency 2025-10-01 02:26:04 +10:00
Golam Rashed c88703f94d chore: Update CHANGELOG for new features and improvements
feat: Add UV Package Manager support and parameterized package configuration
- Updated documentation to include installation instructions for both `uv` and `pip`.
- Implemented dynamic version and Python classifiers in `pyproject.toml`.

refactor: Enhance dynamic category discovery for indicators
- Replaced hardcoded Category dictionary with a dynamic discovery method in `_meta.py`.
- Updated total indicator counts in documentation and README.

docs: Create CONTRIBUTING.md for contribution guidelines
- Added detailed instructions for code contributions, testing, documentation, and code style.

build: Revise Makefile for improved development workflow
- Added installation and testing targets, along with documentation build commands.

docs: Update README and installation instructions
- Corrected indicator counts and added support for `uv` package manager in installation instructions.

fix: Update project metadata in pyproject.toml
- Changed version placeholder for CI/CD integration and updated development status to Production/Stable.

chore: Remove requirements.txt in favor of pyproject.toml
- Consolidated dependency management into pyproject.toml for better compatibility with modern Python packaging.
2025-10-01 02:15:48 +10:00
Golam Rashed c632ab7883 Update CI workflow to trigger on all branches for push events 2025-09-30 01:41:34 +10:00
Golam Rashed 115356e0ae Update CI workflow to ensure documentation and PyPI publishing jobs depend on test matrix completion 2025-09-30 01:26:57 +10:00
Golam Rashed 16fef84720 Update CI workflow to validate unique release versions and adjust documentation job trigger 2025-09-30 01:23:06 +10:00
Golam Rashed b802aef3d3 Refactor documentation to transition from Jekyll to Sphinx
- Disabled Jekyll theme in `_config.yml` and added `.nojekyll` file to prevent Jekyll processing in the `docs/` directory.
- Updated `conf.py` for Sphinx configuration, including project metadata and theme settings.
- Created new documentation files: `dataframe_api.rst`, `indicators.rst`, `installation.rst`, `performance.rst`, `strategies.rst`, and `usage.rst` to provide comprehensive usage instructions and reference for the Pandas TA Classic library.
- Enhanced `index.rst` to include a detailed introduction, quick start guide, and table of contents for better navigation.
- Added performance metrics section to document new features and backtesting integration with vectorbt.
2025-09-30 01:13:20 +10:00
copilot-swe-agent[bot]andxgboosted 87acb35659 Add deployment environments for PyPI publish and documentation jobs
Co-authored-by: xgboosted <1528712+xgboosted@users.noreply.github.com>
2025-08-03 10:59:03 +00:00
Golam Rashed fddcef7f50 Reorders workflow jobs for logical execution flow
Moves the code quality checks job before the matrix generation job to ensure code quality is validated prior to generating the Python version test matrix. Updates workflow dependencies for more robust CI sequencing and improves maintainability by grouping related steps logically.
2025-08-03 18:52:45 +10:00
copilot-swe-agent[bot]andxgboosted 81ca7e53b0 Fix CI workflow issues and modernize Python packaging
Co-authored-by: xgboosted <1528712+xgboosted@users.noreply.github.com>
2025-08-03 08:29:07 +00:00
copilot-swe-agent[bot]andxgboosted 929031fe51 Change generate-matrix job to depend on code-quality for sequential CI execution
Co-authored-by: xgboosted <1528712+xgboosted@users.noreply.github.com>
2025-08-03 07:44:12 +00:00
copilot-swe-agent[bot]andxgboosted 5fdb94becd Optimize CI workflow by removing unnecessary PYTHON_VERSIONS from code-quality job
Co-authored-by: xgboosted <1528712+xgboosted@users.noreply.github.com>
2025-08-03 07:27:37 +00:00
copilot-swe-agent[bot]andxgboosted 2f22015056 Fix validate-structure job and add dynamic version handling for pypi-publish job
Co-authored-by: xgboosted <1528712+xgboosted@users.noreply.github.com>
2025-08-03 07:04:21 +00:00
copilot-swe-agent[bot]andxgboosted 0df52c9b48 Restore PYTHON_VERSIONS env var to pypi-publish job and use it to dynamically generate Python classifiers in setup.py
Co-authored-by: xgboosted <1528712+xgboosted@users.noreply.github.com>
2025-08-03 06:51:25 +00:00