Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
dd556c2
refactor openbb-sec for v5
Jun 2, 2026
dc0de19
Merge branch 'v5' of https://github.com/OpenBB-finance/OpenBB into fe…
Jun 2, 2026
066cd98
linting
Jun 2, 2026
5b5cddc
ty
Jun 2, 2026
c238f64
normalize compare_company_facts
Jun 3, 2026
13ccefb
add workflows
Jun 3, 2026
c52b584
python 3.10 fix
Jun 3, 2026
e49fec5
Merge branch 'v5' of https://github.com/OpenBB-finance/OpenBB into fe…
deeleeramone Jun 9, 2026
e2779d9
add more thorough url validation and tests
deeleeramone Jun 9, 2026
6f481eb
ty check
deeleeramone Jun 10, 2026
cec141b
ty for python 3.10
deeleeramone Jun 10, 2026
e99d5f5
reconfigure with apps
deeleeramone Jun 15, 2026
0b2bbd9
temp pyproject overrride
deeleeramone Jun 15, 2026
154eec3
pyproject
deeleeramone Jun 15, 2026
60b77d6
pyproject
deeleeramone Jun 15, 2026
fc3f5d2
pyproject
deeleeramone Jun 15, 2026
e9cc652
codespell
deeleeramone Jun 15, 2026
8c20949
pyproject
deeleeramone Jun 15, 2026
496f896
fix uk schema file links in schema_files
deeleeramone Jun 16, 2026
25d7f16
test coverage
deeleeramone Jun 16, 2026
952c6aa
test_cli
deeleeramone Jun 17, 2026
d752c20
Merge branch 'v5' of https://github.com/OpenBB-finance/OpenBB into fe…
deeleeramone Jun 18, 2026
6691f93
port #7547 into this pr
deeleeramone Jun 20, 2026
30bda19
no hard coded prefix
deeleeramone Jun 20, 2026
a8b906f
improve filing rendering capabilities
deeleeramone Jun 24, 2026
8a9e366
fix xml text detection
deeleeramone Jun 24, 2026
cced8ad
make codeql happy
deeleeramone Jun 24, 2026
9e8738e
missed a file in the commit
deeleeramone Jun 24, 2026
8989bcb
test coverage
deeleeramone Jun 24, 2026
db96df4
codespell
deeleeramone Jun 24, 2026
6078e7e
Merge branch 'v5' of https://github.com/OpenBB-finance/OpenBB into fe…
deeleeramone Jul 2, 2026
cdee720
fix flakey test
deeleeramone Jul 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
167 changes: 167 additions & 0 deletions .github/workflows/publish-openbb-sec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
name: 📦 publish openbb-sec

# Triggers exclusively on the merge of a ``release/openbb-sec-v*`` branch into
# ``develop`` (or ``v5``). No push / tag triggers. Four sequential jobs —
# verify the version bump, build once, test the built source across the full
# cross-platform matrix, and only publish to PyPI if the entire matrix is
# green. The matrix stops at 3.14 because the provider's lxml dependency has no
# prerelease (3.15) wheels yet.

on:
pull_request:
types: [closed]
branches: [develop, v5]
workflow_dispatch:

permissions:
contents: read

jobs:
version-check:
name: Verify version bump
if: ${{ (github.event_name == 'pull_request' && github.event.pull_request.merged == true && startsWith(github.event.pull_request.head.ref, 'release/openbb-sec-v')) || github.event_name == 'workflow_dispatch' }}
runs-on: ubuntu-latest
outputs:
version: ${{ steps.parse.outputs.version }}
defaults:
run:
shell: bash
working-directory: openbb_platform/providers/sec
steps:
- uses: actions/checkout@v6
with:
ref: develop

- name: Parse [project].version from pyproject.toml
id: parse
run: |
VERSION=$(grep -m1 -E '^version[[:space:]]*=' pyproject.toml | sed -E 's/^version[[:space:]]*=[[:space:]]*"([^"]+)".*/\1/')
if [ -z "$VERSION" ]; then
echo "::error::Could not parse [project].version from pyproject.toml."
exit 1
fi
echo "Local version: $VERSION"
echo "version=$VERSION" >> "$GITHUB_OUTPUT"

- name: Fail if version already exists on PyPI
env:
VERSION: ${{ steps.parse.outputs.version }}
run: |
STATUS=$(curl -sS -o /dev/null -w "%{http_code}" "https://pypi.org/pypi/openbb-sec/${VERSION}/json")
case "$STATUS" in
200)
echo "::error::openbb-sec ${VERSION} is already published on PyPI."
echo "Bump openbb_platform/providers/sec/pyproject.toml [project].version and re-merge a fresh release branch."
exit 1
;;
404)
echo "openbb-sec ${VERSION} is not yet on PyPI — proceeding."
;;
*)
echo "::error::Unexpected status $STATUS from PyPI JSON API. Aborting to avoid a silent skip."
exit 1
;;
esac

- name: Verify release branch name matches pyproject version
if: github.event_name == 'pull_request'
env:
VERSION: ${{ steps.parse.outputs.version }}
BRANCH: ${{ github.event.pull_request.head.ref }}
run: |
EXPECTED="release/openbb-sec-v${VERSION}"
if [ "$BRANCH" != "$EXPECTED" ]; then
echo "::error::Release branch '${BRANCH}' does not match pyproject version '${VERSION}'."
echo "Expected branch name: '${EXPECTED}'."
echo "Either rename the release branch or update [project].version in pyproject.toml so they agree."
exit 1
fi
echo "Branch '${BRANCH}' matches pyproject version '${VERSION}'."

build:
name: Build sdist + wheel
needs: version-check
runs-on: ubuntu-latest
defaults:
run:
shell: bash
working-directory: openbb_platform/providers/sec
steps:
- uses: actions/checkout@v6
with:
ref: develop

- uses: actions/setup-python@v6
with:
python-version: "3.11"

- run: python -m pip install --upgrade pip uv

- name: Build sdist + wheel
run: uv build --no-sources

- uses: actions/upload-artifact@v4
with:
name: openbb-sec-dist
path: openbb_platform/providers/sec/dist/
if-no-files-found: error
retention-days: 7

test:
name: Test (${{ matrix.os }} / Python ${{ matrix.python_version }})
needs: build
strategy:
fail-fast: false
matrix:
include:
# Linux: full sweep across every released Python.
- { os: ubuntu-latest, python_version: "3.10" }
- { os: ubuntu-latest, python_version: "3.11" }
- { os: ubuntu-latest, python_version: "3.12" }
- { os: ubuntu-latest, python_version: "3.13" }
- { os: ubuntu-latest, python_version: "3.14" }
# macOS + Windows: min and max supported.
- { os: macos-latest, python_version: "3.10" }
- { os: macos-latest, python_version: "3.14" }
- { os: windows-latest, python_version: "3.10" }
- { os: windows-latest, python_version: "3.14" }
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
working-directory: openbb_platform/providers/sec
steps:
- uses: actions/checkout@v6
with:
ref: develop

- uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python_version }}
allow-prereleases: true

- run: python -m pip install --upgrade pip uv

- name: Install openbb-sec from source (+ dev group)
run: |
uv pip install --system -e .
uv pip install --system --group dev

- name: Run unit tests
run: pytest tests --cov=openbb_sec --cov-report=term-missing

publish:
name: Publish to PyPI
needs: test
runs-on: ubuntu-latest
permissions:
id-token: write # required for PyPI OIDC trusted publishing
steps:
- uses: actions/download-artifact@v4
with:
name: openbb-sec-dist
path: dist

- uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: dist
130 changes: 130 additions & 0 deletions .github/workflows/test-unit-openbb-sec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
name: 🧪 test openbb-sec

# PR-test for the SEC provider. Triggers when a PR touches any file under
# ``openbb_platform/providers/sec/`` or this workflow itself.
#
# Build-once, test-many: a single ``build`` job produces the wheel + sdist;
# the ``lint`` and ``test`` jobs install the provider editable from source
# (``[tool.uv.sources]`` pins openbb-core to the sibling tree, since
# openbb-core>=2.0.0 is not yet on PyPI) and run across every supported
# (OS, Python) combination. The unit suite replays entirely from VCR cassettes
# and mocked transport — no network in CI. The matrix stops at 3.14 because the
# provider's lxml dependency has no prerelease (3.15) wheels yet.

on:
pull_request:
branches: [develop, main, v5]
paths:
- "openbb_platform/providers/sec/**"
- ".github/workflows/test-unit-openbb-sec.yml"
workflow_dispatch:

permissions:
contents: read

concurrency:
# Cancel in-flight matrix runs when a new commit lands on the same PR.
group: test-openbb-sec-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
build:
name: Build sdist + wheel
runs-on: ubuntu-latest
defaults:
run:
shell: bash
working-directory: openbb_platform/providers/sec
steps:
- uses: actions/checkout@v6

- uses: actions/setup-python@v6
with:
python-version: "3.11"

- run: python -m pip install --upgrade pip uv

- name: Build sdist + wheel
run: uv build --no-sources

- uses: actions/upload-artifact@v4
with:
name: openbb-sec-dist
path: openbb_platform/providers/sec/dist/
if-no-files-found: error
retention-days: 7

lint:
name: Lint (ruff + ty)
needs: build
runs-on: ubuntu-latest
defaults:
run:
shell: bash
working-directory: openbb_platform/providers/sec
steps:
- uses: actions/checkout@v6

- uses: actions/setup-python@v6
with:
python-version: "3.11"

- run: python -m pip install --upgrade pip uv

- name: Install openbb-sec in editable mode (+ dev group)
# ``-e .`` reads ``[tool.uv.sources]`` and resolves openbb-core /
# openbb-devtools from the sibling source trees. ``--group dev``
# pulls in ruff, ty, pytest, pytest-cov, pytest-recorder, etc.
run: |
uv pip install --system -e .
uv pip install --system --group dev

- name: ruff check
run: ruff check openbb_sec tests integration

- name: ruff format --check
run: ruff format --check openbb_sec tests integration

- name: ty check
run: ty check openbb_sec

test:
name: Test (${{ matrix.os }} / Python ${{ matrix.python_version }})
needs: build
strategy:
fail-fast: false
matrix:
include:
# Linux: full sweep across every released Python.
- { os: ubuntu-latest, python_version: "3.10" }
- { os: ubuntu-latest, python_version: "3.11" }
- { os: ubuntu-latest, python_version: "3.12" }
- { os: ubuntu-latest, python_version: "3.13" }
- { os: ubuntu-latest, python_version: "3.14" }
# macOS + Windows: min and max supported.
- { os: macos-latest, python_version: "3.10" }
- { os: macos-latest, python_version: "3.14" }
- { os: windows-latest, python_version: "3.10" }
- { os: windows-latest, python_version: "3.14" }
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
working-directory: openbb_platform/providers/sec
steps:
- uses: actions/checkout@v6

- uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python_version }}
allow-prereleases: true

- run: python -m pip install --upgrade pip uv

- name: Install openbb-sec from source (+ dev group)
run: |
uv pip install --system -e .
uv pip install --system --group dev

- name: Run unit tests
run: pytest tests --cov=openbb_sec --cov-report=term-missing --cov-fail-under=100
4 changes: 2 additions & 2 deletions assets/extensions/router.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,9 @@
"description": "Quantitative analysis tools."
},
{
"packageName": "openbb-regulators",
"packageName": "openbb-sec",
"optional": false,
"description": "Financial market regulators data."
"description": "US Securities and Exchange Commission (SEC) data."
},
{
"packageName": "openbb-technical",
Expand Down
1 change: 0 additions & 1 deletion openbb_platform/dev_install.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@
openbb-fixedincome = { path = "./extensions/fixedincome", develop = true }
openbb-index = { path = "./extensions/index", develop = true }
openbb-news = { path = "./extensions/news", develop = true }
openbb-regulators = { path = "./extensions/regulators", develop = true }
openbb-mcp-server = { path = "./extensions/mcp_server", develop = true, markers = "python_version >= '3.10'" }

# Community dependencies
Expand Down
13 changes: 0 additions & 13 deletions openbb_platform/extensions/regulators/README.md

This file was deleted.

Loading
Loading