Compiled Bloomberg BQuant fund-flow analytics dashboard
Project description
CQR Fund Flows
Compiled Bloomberg BQuant dashboard for fund-flow analysis.
Offline access control
The package authorises the current Bloomberg user locally. On launch, the
compiled extension normalises Bloomberg's UUID, calculates its HMAC-SHA256
fingerprint, and compares it with the allowlist embedded in the wheel. Access
data has an expiry date, so users must install a current release.
This check makes no authentication request over the network and requires no
licence token. Bloomberg data requests made by the dashboard itself still use
BQuant's preinstalled bql module.
Supported environment
- Bloomberg BQuant
- Windows 64-bit
- CPython 3.11
- Bloomberg's
bqlmodule already available in the environment
Installation
python -m pip install cqr-fundflows
Usage
Run in a BQuant notebook:
from cqr_fundflows import launch_dashboard
launch_dashboard()
Only launch_dashboard() is part of the supported public API.
Access control
There is no licence key to paste into the notebook. At import time, the
compiled extension reads Bloomberg BQuant's protected UUID environment
variable and asks the CQR HTTPS authorization endpoint whether that Bloomberg
USER ID has an active Fund Flows entitlement.
Access is granted only when all of the following are true:
- the client account exists;
- its professional email address has been verified;
- CQR has manually marked the Fund Flows entitlement as active;
- the entitlement has started and has not expired.
The check fails closed when the UUID is missing or when the authorization service cannot be reached. No client password, private API credential or service-role key is included in the Python package.
See ACCESS_CONTROL.md for the one-time Supabase and website deployment.
Distribution model
PyPI releases contain compiled wheels. Do not publish a source distribution
(.tar.gz), because it would disclose the Cython source and the generated
access include. Keep the source repository private.
The wheel must not contain _dashboard.pyx, generated C/C++ source, a Python
fallback for the dashboard, or _access_data.pxi. The access data is compiled
into the native extension instead.
Local Windows build
py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip build twine cryptography
python scripts\build_offline_access.py --verify-only
python -m unittest discover -s tests -v
python -m build --wheel
python -m twine check .\dist\*
$wheel = Get-ChildItem .\dist\*.whl | Select-Object -First 1
python scripts\verify_wheel_contents.py $wheel.FullName
The expected output is similar to:
cqr_fundflows-0.3.0-cp311-cp311-win_amd64.whl
Maintainers should follow ACCESS_CONTROL.md before every release and PUBLISHING.md for the complete publication flow.
Limitation
Cython compilation and fingerprinting make casual sharing more difficult, but they are not absolute protection against reverse engineering, environment spoofing, or continued use of a previously downloaded wheel before it expires.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cqr_fundflows-0.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: cqr_fundflows-0.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.1 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f79da6764ee08bcdbdeb4331cf2160061b7f18dbdcdddf2b6e9fba595439730f
|
|
| MD5 |
fb6c8ca84508b18088389b1868febd3a
|
|
| BLAKE2b-256 |
63dbf17a1c5e723a9117d182e4f666589a584701e820996c533d45e639d5c9c9
|
Provenance
The following attestation bundles were made for cqr_fundflows-0.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
publish.yml on paul-comte/cqr-fundflows
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cqr_fundflows-0.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
f79da6764ee08bcdbdeb4331cf2160061b7f18dbdcdddf2b6e9fba595439730f - Sigstore transparency entry: 2214931605
- Sigstore integration time:
-
Permalink:
paul-comte/cqr-fundflows@9c478a341a2a831a22091e1c4c1a0148af56407c -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/paul-comte
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9c478a341a2a831a22091e1c4c1a0148af56407c -
Trigger Event:
push
-
Statement type: