finbrain-python 0.2.6__tar.gz → 0.2.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/.github/workflows/ci.yml +4 -1
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/.github/workflows/release.yml +22 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/CHANGELOG.md +7 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/PKG-INFO +1 -1
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/pyproject.toml +19 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain_python.egg-info/PKG-INFO +1 -1
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain_python.egg-info/scm_version.json +2 -2
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/.gitattributes +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/.gitignore +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/LICENSE +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/README.md +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/RELEASE.md +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/examples/async_example.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/examples/transactions_plotting_example.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/setup.cfg +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/__init__.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/__init__.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/client.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/__init__.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/_utils.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/analyst_ratings.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/app_ratings.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/available.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/corporate_lobbying.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/government_contracts.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/house_trades.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/insider_transactions.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/linkedin_data.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/news.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/options.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/patent_filings.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/predictions.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/recent.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/reddit_mentions.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/screener.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/senate_trades.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/sentiments.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/client.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/__init__.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/_utils.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/analyst_ratings.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/app_ratings.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/available.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/corporate_lobbying.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/government_contracts.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/house_trades.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/insider_transactions.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/linkedin_data.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/news.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/options.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/patent_filings.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/predictions.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/recent.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/reddit_mentions.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/screener.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/senate_trades.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/sentiments.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/exceptions.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/plotting.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/py.typed +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain_python.egg-info/SOURCES.txt +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain_python.egg-info/dependency_links.txt +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain_python.egg-info/requires.txt +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain_python.egg-info/scm_file_list.json +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain_python.egg-info/top_level.txt +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/__init__.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/conftest.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_analyst_ratings.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_app_ratings.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_async_client.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_available.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_client.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_corporate_lobbying.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_envelope.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_government_contracts.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_house_trades.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_insider_transactions.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_integration.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_linkedin_data.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_news.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_options.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_patent_filings.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_plotting.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_predictions.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_recent.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_reddit_mentions.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_screener.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_senate_trades.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_sentiments.py +0 -0
- {finbrain_python-0.2.6 → finbrain_python-0.2.7}/tests/test_utils.py +0 -0
|
@@ -5,7 +5,29 @@ on:
|
|
|
5
5
|
tags: ['v[0-9]*'] # e.g. v0.1.0, v1.2.3
|
|
6
6
|
|
|
7
7
|
jobs:
|
|
8
|
+
# Gate the upload on the tagged commit actually passing. The publish job
|
|
9
|
+
# previously ran straight off the tag push with no dependency on CI, so a
|
|
10
|
+
# commit with failing checks could still reach PyPI -- and PyPI versions are
|
|
11
|
+
# immutable, so a bad upload cannot be replaced, only superseded.
|
|
12
|
+
test:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
strategy:
|
|
15
|
+
matrix:
|
|
16
|
+
python: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
with:
|
|
20
|
+
fetch-depth: 0
|
|
21
|
+
- uses: actions/setup-python@v5
|
|
22
|
+
with:
|
|
23
|
+
python-version: ${{ matrix.python }}
|
|
24
|
+
- run: pip install -e .[dev]
|
|
25
|
+
- run: ruff check .
|
|
26
|
+
- run: mypy
|
|
27
|
+
- run: pytest -q
|
|
28
|
+
|
|
8
29
|
build:
|
|
30
|
+
needs: test
|
|
9
31
|
runs-on: ubuntu-latest
|
|
10
32
|
|
|
11
33
|
steps:
|
|
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.2.7] - 2026-07-24
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- **Tooling**: pinned the ruff rule set to `E4`/`E7`/`E9`/`F` in `[tool.ruff.lint]`. `ruff check .` previously ran with no ruff configuration, so it followed whatever ruff's current defaults were; 0.16.0 widened that selection and turned CI red with 455 findings in unchanged code. These four groups are ruff's long-standing defaults, so enforcement is unchanged — it just no longer moves when ruff releases
|
|
13
|
+
- **Tooling**: mypy no longer follows numpy's stubs. numpy ships inline stubs using PEP 695 `type` statements, which mypy only parses when both its target `python_version` and the interpreter it runs under are 3.12+, so a numpy release aborted the entire run on the lower matrix jobs. Raising `python_version` alone does not fix this — it clears the target check but not the interpreter one. `python_version` stays at `3.10`, so the 3.9 target is still exercised, and no public API surfaces numpy types
|
|
14
|
+
|
|
8
15
|
## [0.2.6] - 2026-07-24
|
|
9
16
|
|
|
10
17
|
### Added
|
|
@@ -60,3 +60,22 @@ markers = [
|
|
|
60
60
|
python_version = "3.10"
|
|
61
61
|
files = ["src/finbrain"]
|
|
62
62
|
ignore_missing_imports = true # third-party libs (pandas, plotly, …) ship no stubs here
|
|
63
|
+
|
|
64
|
+
# numpy ships inline stubs that use PEP 695 `type` statements. mypy refuses to
|
|
65
|
+
# parse those unless BOTH its target `python_version` and the interpreter it is
|
|
66
|
+
# running under are 3.12+, so a numpy release can abort the whole run ("Type
|
|
67
|
+
# statement is only supported in Python 3.12 and greater") on any matrix job
|
|
68
|
+
# below 3.12 -- with no change to this codebase. Nothing in the public API
|
|
69
|
+
# surfaces numpy types, so skip its stubs rather than chasing numpy's baseline.
|
|
70
|
+
[[tool.mypy.overrides]]
|
|
71
|
+
module = ["numpy.*"]
|
|
72
|
+
follow_imports = "skip"
|
|
73
|
+
follow_imports_for_stubs = true
|
|
74
|
+
|
|
75
|
+
[tool.ruff.lint]
|
|
76
|
+
# Pin the rule set explicitly. `ruff check .` otherwise follows whatever ruff's
|
|
77
|
+
# current defaults happen to be, so a new ruff release can turn CI red with no
|
|
78
|
+
# code change (0.16.0 widened the defaults and surfaced hundreds of findings in
|
|
79
|
+
# code that had been passing). These four are ruff's long-standing defaults, so
|
|
80
|
+
# this preserves existing behaviour rather than changing it.
|
|
81
|
+
select = ["E4", "E7", "E9", "F"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/analyst_ratings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/corporate_lobbying.py
RENAMED
|
File without changes
|
{finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/government_contracts.py
RENAMED
|
File without changes
|
|
File without changes
|
{finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/insider_transactions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/patent_filings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/aio/endpoints/reddit_mentions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/corporate_lobbying.py
RENAMED
|
File without changes
|
{finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/government_contracts.py
RENAMED
|
File without changes
|
|
File without changes
|
{finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain/endpoints/insider_transactions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain_python.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
{finbrain_python-0.2.6 → finbrain_python-0.2.7}/src/finbrain_python.egg-info/scm_file_list.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|