fincore-py 0.1.0.dev5__tar.gz → 0.1.0.dev7__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.
Files changed (64) hide show
  1. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/.github/workflows/docs.yml +2 -1
  2. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/PKG-INFO +32 -45
  3. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/README.md +29 -42
  4. fincore_py-0.1.0.dev7/docs/_static/fincore-wordmark.svg +26 -0
  5. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/pyproject.toml +2 -2
  6. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/python/fincore/_version.py +2 -2
  7. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/python/fincore_py.egg-info/PKG-INFO +32 -45
  8. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/tox.ini +2 -2
  9. fincore_py-0.1.0.dev5/docs/_static/fincore-wordmark.svg +0 -29
  10. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/.github/workflows/ci.yml +0 -0
  11. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/.github/workflows/publish.yml +0 -0
  12. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/.gitignore +0 -0
  13. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/Cargo.toml +0 -0
  14. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/LICENSE +0 -0
  15. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/MANIFEST.in +0 -0
  16. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/docs/_static/brand.css +0 -0
  17. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/docs/analytics_calculations.rst +0 -0
  18. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/docs/api.rst +0 -0
  19. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/docs/brand.rst +0 -0
  20. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/docs/concepts.rst +0 -0
  21. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/docs/conf.py +0 -0
  22. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/docs/finance_concepts.rst +0 -0
  23. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/docs/getting_started.rst +0 -0
  24. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/docs/index.rst +0 -0
  25. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/docs/schemas.rst +0 -0
  26. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/docs/streaming.rst +0 -0
  27. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/examples/01_data_discovery.py +0 -0
  28. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/examples/02_batch_analytics.py +0 -0
  29. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/examples/03_streaming_metrics.py +0 -0
  30. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/examples/04_external_rows.py +0 -0
  31. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/examples/05_kafka_publish.py +0 -0
  32. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/examples/README.md +0 -0
  33. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/python/fincore/__init__.py +0 -0
  34. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/python/fincore/analytics/__init__.py +0 -0
  35. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/python/fincore/analytics/engine.py +0 -0
  36. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/python/fincore/analytics/models.py +0 -0
  37. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/python/fincore/analytics/normalize.py +0 -0
  38. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/python/fincore/data/__init__.py +0 -0
  39. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/python/fincore/data/client.py +0 -0
  40. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/python/fincore/data/events.py +0 -0
  41. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/python/fincore/data/kafka.py +0 -0
  42. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/python/fincore/data/sources.py +0 -0
  43. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/python/fincore/data/utils.py +0 -0
  44. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/python/fincore_py.egg-info/SOURCES.txt +0 -0
  45. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/python/fincore_py.egg-info/dependency_links.txt +0 -0
  46. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/python/fincore_py.egg-info/not-zip-safe +0 -0
  47. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/python/fincore_py.egg-info/requires.txt +0 -0
  48. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/python/fincore_py.egg-info/top_level.txt +0 -0
  49. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/requirements-docs.txt +0 -0
  50. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/requirements-kafka.txt +0 -0
  51. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/requirements.txt +0 -0
  52. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/setup.cfg +0 -0
  53. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/setup.py +0 -0
  54. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/src/analytics.rs +0 -0
  55. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/src/errors.rs +0 -0
  56. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/src/lib.rs +0 -0
  57. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/src/models.rs +0 -0
  58. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/src/pyconvert.rs +0 -0
  59. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/src/sources.rs +0 -0
  60. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/tests/conftest.py +0 -0
  61. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/tests/test_analytics.py +0 -0
  62. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/tests/test_data_client.py +0 -0
  63. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/tests/test_events.py +0 -0
  64. {fincore_py-0.1.0.dev5 → fincore_py-0.1.0.dev7}/tests/test_utils.py +0 -0
@@ -15,7 +15,7 @@ permissions:
15
15
 
16
16
  concurrency:
17
17
  group: pages
18
- cancel-in-progress: false
18
+ cancel-in-progress: true
19
19
 
20
20
  jobs:
21
21
  build:
@@ -59,6 +59,7 @@ jobs:
59
59
  name: Deploy to GitHub Pages
60
60
  needs: build
61
61
  runs-on: ubuntu-latest
62
+ timeout-minutes: 10
62
63
  environment:
63
64
  name: github-pages
64
65
  url: ${{ steps.deployment.outputs.page_url }}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fincore-py
3
- Version: 0.1.0.dev5
3
+ Version: 0.1.0.dev7
4
4
  Summary: Event-driven financial data and analytics framework for real-time market infrastructure.
5
5
  Author: Avinash Chandra
6
6
  License-Expression: MIT
@@ -11,12 +11,12 @@ Keywords: analytics,event-driven,finance,financial-data,kafka,market-data,metric
11
11
  Classifier: Development Status :: 4 - Beta
12
12
  Classifier: Intended Audience :: Developers
13
13
  Classifier: Intended Audience :: Financial and Insurance Industry
14
- Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.14
15
15
  Classifier: Programming Language :: Rust
16
16
  Classifier: Topic :: Database
17
17
  Classifier: Topic :: Scientific/Engineering :: Information Analysis
18
18
  Classifier: Topic :: Office/Business :: Financial
19
- Requires-Python: >=3.10
19
+ Requires-Python: <3.15,>=3.14
20
20
  Description-Content-Type: text/markdown
21
21
  License-File: LICENSE
22
22
  Provides-Extra: kafka
@@ -35,15 +35,19 @@ Dynamic: license-file
35
35
  </p>
36
36
 
37
37
  <p align="center">
38
- <a href="https://pypi.org/project/fincore-py/"><img src="https://img.shields.io/pypi/v/fincore-py.svg?color=111111&label=PyPI" alt="PyPI version"></a>
39
- <a href="https://pypi.org/project/fincore-py/#history"><img src="https://img.shields.io/badge/PyPI-dev%20builds-7A1E1E" alt="PyPI dev builds"></a>
40
- <a href="https://pypi.org/project/fincore-py/"><img src="https://img.shields.io/pypi/pyversions/fincore-py.svg?color=111111" alt="Python versions"></a>
38
+ <a href="https://pypi.org/project/fincore-py/"><img src="https://img.shields.io/pypi/v/fincore-py.svg?color=111111&label=PyPI&logo=pypi&logoColor=white" alt="PyPI version"></a>
39
+ <a href="https://pepy.tech/project/fincore-py"><img src="https://static.pepy.tech/badge/fincore-py/month" alt="Monthly downloads"></a>
40
+ <a href="https://pypi.org/project/fincore-py/#history"><img src="https://img.shields.io/badge/PyPI-dev%20builds-7A1E1E?logo=pypi&logoColor=white" alt="PyPI dev builds"></a>
41
+ <a href="https://www.python.org/"><img src="https://img.shields.io/badge/python-3.14-111111?logo=python&logoColor=white" alt="Python 3.14"></a>
42
+ <a href="https://www.rust-lang.org/"><img src="https://img.shields.io/badge/rust-core-7A1E1E?logo=rust&logoColor=white" alt="Rust core"></a>
43
+ <a href="https://kafka.apache.org/"><img src="https://img.shields.io/badge/kafka-optional-111111?logo=apachekafka&logoColor=white" alt="Optional Kafka support"></a>
44
+ <a href="https://pypi.org/project/fincore-py/"><img src="https://img.shields.io/badge/status-beta-111111?logo=semanticrelease&logoColor=white" alt="Beta status"></a>
41
45
  <a href="https://github.com/avi2413/fincore/actions/workflows/ci.yml"><img src="https://github.com/avi2413/fincore/actions/workflows/ci.yml/badge.svg" alt="CI workflow"></a>
42
46
  <a href="https://codecov.io/gh/avi2413/fincore"><img src="https://codecov.io/gh/avi2413/fincore/branch/main/graph/badge.svg" alt="Codecov coverage"></a>
43
- <a href="https://github.com/avi2413/fincore/actions/workflows/publish.yml"><img src="https://github.com/avi2413/fincore/actions/workflows/publish.yml/badge.svg" alt="Publish workflow"></a>
44
47
  <a href="https://github.com/avi2413/fincore/actions/workflows/docs.yml"><img src="https://github.com/avi2413/fincore/actions/workflows/docs.yml/badge.svg" alt="Docs workflow"></a>
45
- <a href="https://avi2413.github.io/fincore/"><img src="https://img.shields.io/badge/docs-GitHub%20Pages-111111" alt="Documentation"></a>
46
- <a href="https://github.com/avi2413/fincore/blob/main/LICENSE"><img src="https://img.shields.io/github/license/avi2413/fincore.svg?color=7A1E1E" alt="License"></a>
48
+ <a href="https://avi2413.github.io/fincore/"><img src="https://img.shields.io/badge/docs-GitHub%20Pages-111111?logo=githubpages&logoColor=white" alt="Documentation"></a>
49
+ <a href="https://github.com/avi2413/fincore/issues"><img src="https://img.shields.io/github/issues/avi2413/fincore.svg?color=7A1E1E&logo=github&logoColor=white" alt="GitHub issues"></a>
50
+ <a href="https://github.com/avi2413/fincore/blob/main/LICENSE"><img src="https://img.shields.io/github/license/avi2413/fincore.svg?color=111111&logo=opensourceinitiative&logoColor=white" alt="License"></a>
47
51
  </p>
48
52
 
49
53
  # fincore
@@ -108,15 +112,29 @@ Rust extension
108
112
 
109
113
  ## Installation
110
114
 
111
- Create and activate a Python environment, then install build dependencies:
115
+ Install from PyPI:
112
116
 
113
117
  ```bash
118
+ python --version # requires Python 3.14
119
+ python -m pip install fincore-py
120
+ ```
121
+
122
+ Kafka support:
123
+
124
+ ```bash
125
+ python -m pip install "fincore-py[kafka]"
126
+ ```
127
+
128
+ For local development, create and activate a Python environment, then install build dependencies:
129
+
130
+ ```bash
131
+ python --version # requires Python 3.14
114
132
  python -m pip install --upgrade pip
115
133
  python -m pip install -r requirements.txt
116
134
  python -m pip install -e .
117
135
  ```
118
136
 
119
- Kafka support:
137
+ Local Kafka development:
120
138
 
121
139
  ```bash
122
140
  python -m pip install -r requirements-kafka.txt
@@ -570,42 +588,11 @@ async for metric_event in engine.run(client.stream_bars(["Apple"], interval="1m"
570
588
  ...
571
589
  ```
572
590
 
573
- ## Versioning And Publishing
591
+ ## Contributions And Issues
574
592
 
575
- Python package versions are derived from git tags through `setuptools-scm`.
593
+ Issues, bug reports, documentation fixes, and focused feature suggestions are welcome through [GitHub Issues](https://github.com/avi2413/fincore/issues).
576
594
 
577
- Install the latest beta/dev package from PyPI:
578
-
579
- ```bash
580
- python -m pip install fincore-py
581
- ```
582
-
583
- Kafka extras:
584
-
585
- ```bash
586
- python -m pip install "fincore-py[kafka]"
587
- ```
588
-
589
- For a beta pre-release:
590
-
591
- ```bash
592
- git tag v0.1.0b0
593
- git push origin v0.1.0b0
594
- ```
595
-
596
- The publish workflow at `.github/workflows/publish.yml` builds distributions for both main pushes and version tags.
597
-
598
- - Pushes to `main` publish source-distribution development builds to PyPI, using versions like `0.1.0.dev123`.
599
- - Tags like `v0.1.0b0` build beta wheels plus a source distribution and publish them to PyPI.
600
- - Later stable tags like `v0.1.0` can use the same tagged release path.
601
-
602
- Configure PyPI trusted publishing with:
603
-
604
- ```text
605
- Repository: <owner>/fincore
606
- Workflow: publish.yml
607
- Environment: pypi
608
- ```
595
+ This is still a personal research project, so contributions should stay aligned with the current scope: event-driven market data access, normalized schemas, streaming events, Kafka integration, and analytics metrics. Production trading, order execution, and investment advice are intentionally out of scope.
609
596
 
610
597
  ## Status
611
598
 
@@ -3,15 +3,19 @@
3
3
  </p>
4
4
 
5
5
  <p align="center">
6
- <a href="https://pypi.org/project/fincore-py/"><img src="https://img.shields.io/pypi/v/fincore-py.svg?color=111111&label=PyPI" alt="PyPI version"></a>
7
- <a href="https://pypi.org/project/fincore-py/#history"><img src="https://img.shields.io/badge/PyPI-dev%20builds-7A1E1E" alt="PyPI dev builds"></a>
8
- <a href="https://pypi.org/project/fincore-py/"><img src="https://img.shields.io/pypi/pyversions/fincore-py.svg?color=111111" alt="Python versions"></a>
6
+ <a href="https://pypi.org/project/fincore-py/"><img src="https://img.shields.io/pypi/v/fincore-py.svg?color=111111&label=PyPI&logo=pypi&logoColor=white" alt="PyPI version"></a>
7
+ <a href="https://pepy.tech/project/fincore-py"><img src="https://static.pepy.tech/badge/fincore-py/month" alt="Monthly downloads"></a>
8
+ <a href="https://pypi.org/project/fincore-py/#history"><img src="https://img.shields.io/badge/PyPI-dev%20builds-7A1E1E?logo=pypi&logoColor=white" alt="PyPI dev builds"></a>
9
+ <a href="https://www.python.org/"><img src="https://img.shields.io/badge/python-3.14-111111?logo=python&logoColor=white" alt="Python 3.14"></a>
10
+ <a href="https://www.rust-lang.org/"><img src="https://img.shields.io/badge/rust-core-7A1E1E?logo=rust&logoColor=white" alt="Rust core"></a>
11
+ <a href="https://kafka.apache.org/"><img src="https://img.shields.io/badge/kafka-optional-111111?logo=apachekafka&logoColor=white" alt="Optional Kafka support"></a>
12
+ <a href="https://pypi.org/project/fincore-py/"><img src="https://img.shields.io/badge/status-beta-111111?logo=semanticrelease&logoColor=white" alt="Beta status"></a>
9
13
  <a href="https://github.com/avi2413/fincore/actions/workflows/ci.yml"><img src="https://github.com/avi2413/fincore/actions/workflows/ci.yml/badge.svg" alt="CI workflow"></a>
10
14
  <a href="https://codecov.io/gh/avi2413/fincore"><img src="https://codecov.io/gh/avi2413/fincore/branch/main/graph/badge.svg" alt="Codecov coverage"></a>
11
- <a href="https://github.com/avi2413/fincore/actions/workflows/publish.yml"><img src="https://github.com/avi2413/fincore/actions/workflows/publish.yml/badge.svg" alt="Publish workflow"></a>
12
15
  <a href="https://github.com/avi2413/fincore/actions/workflows/docs.yml"><img src="https://github.com/avi2413/fincore/actions/workflows/docs.yml/badge.svg" alt="Docs workflow"></a>
13
- <a href="https://avi2413.github.io/fincore/"><img src="https://img.shields.io/badge/docs-GitHub%20Pages-111111" alt="Documentation"></a>
14
- <a href="https://github.com/avi2413/fincore/blob/main/LICENSE"><img src="https://img.shields.io/github/license/avi2413/fincore.svg?color=7A1E1E" alt="License"></a>
16
+ <a href="https://avi2413.github.io/fincore/"><img src="https://img.shields.io/badge/docs-GitHub%20Pages-111111?logo=githubpages&logoColor=white" alt="Documentation"></a>
17
+ <a href="https://github.com/avi2413/fincore/issues"><img src="https://img.shields.io/github/issues/avi2413/fincore.svg?color=7A1E1E&logo=github&logoColor=white" alt="GitHub issues"></a>
18
+ <a href="https://github.com/avi2413/fincore/blob/main/LICENSE"><img src="https://img.shields.io/github/license/avi2413/fincore.svg?color=111111&logo=opensourceinitiative&logoColor=white" alt="License"></a>
15
19
  </p>
16
20
 
17
21
  # fincore
@@ -76,15 +80,29 @@ Rust extension
76
80
 
77
81
  ## Installation
78
82
 
79
- Create and activate a Python environment, then install build dependencies:
83
+ Install from PyPI:
80
84
 
81
85
  ```bash
86
+ python --version # requires Python 3.14
87
+ python -m pip install fincore-py
88
+ ```
89
+
90
+ Kafka support:
91
+
92
+ ```bash
93
+ python -m pip install "fincore-py[kafka]"
94
+ ```
95
+
96
+ For local development, create and activate a Python environment, then install build dependencies:
97
+
98
+ ```bash
99
+ python --version # requires Python 3.14
82
100
  python -m pip install --upgrade pip
83
101
  python -m pip install -r requirements.txt
84
102
  python -m pip install -e .
85
103
  ```
86
104
 
87
- Kafka support:
105
+ Local Kafka development:
88
106
 
89
107
  ```bash
90
108
  python -m pip install -r requirements-kafka.txt
@@ -538,42 +556,11 @@ async for metric_event in engine.run(client.stream_bars(["Apple"], interval="1m"
538
556
  ...
539
557
  ```
540
558
 
541
- ## Versioning And Publishing
559
+ ## Contributions And Issues
542
560
 
543
- Python package versions are derived from git tags through `setuptools-scm`.
561
+ Issues, bug reports, documentation fixes, and focused feature suggestions are welcome through [GitHub Issues](https://github.com/avi2413/fincore/issues).
544
562
 
545
- Install the latest beta/dev package from PyPI:
546
-
547
- ```bash
548
- python -m pip install fincore-py
549
- ```
550
-
551
- Kafka extras:
552
-
553
- ```bash
554
- python -m pip install "fincore-py[kafka]"
555
- ```
556
-
557
- For a beta pre-release:
558
-
559
- ```bash
560
- git tag v0.1.0b0
561
- git push origin v0.1.0b0
562
- ```
563
-
564
- The publish workflow at `.github/workflows/publish.yml` builds distributions for both main pushes and version tags.
565
-
566
- - Pushes to `main` publish source-distribution development builds to PyPI, using versions like `0.1.0.dev123`.
567
- - Tags like `v0.1.0b0` build beta wheels plus a source distribution and publish them to PyPI.
568
- - Later stable tags like `v0.1.0` can use the same tagged release path.
569
-
570
- Configure PyPI trusted publishing with:
571
-
572
- ```text
573
- Repository: <owner>/fincore
574
- Workflow: publish.yml
575
- Environment: pypi
576
- ```
563
+ This is still a personal research project, so contributions should stay aligned with the current scope: event-driven market data access, normalized schemas, streaming events, Kafka integration, and analytics metrics. Production trading, order execution, and investment advice are intentionally out of scope.
577
564
 
578
565
  ## Status
579
566
 
@@ -0,0 +1,26 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1440" height="260" viewBox="0 0 1440 260" role="img" aria-labelledby="title desc">
2
+ <title id="title">fincore wordmark</title>
3
+ <desc id="desc">Noir brutalist fincore wordmark focused on event streams and analytics infrastructure.</desc>
4
+ <rect width="1440" height="260" fill="#0B0B0B"/>
5
+ <path d="M0 58H1440" stroke="#151515" stroke-width="2"/>
6
+ <path d="M0 215H1440" stroke="#171717" stroke-width="2"/>
7
+ <g transform="translate(84 64)">
8
+ <rect x="0" y="0" width="132" height="132" fill="none" stroke="#D9D2C3" stroke-width="3"/>
9
+ <path d="M24 34H108M24 66H108M24 98H108" stroke="#403C36" stroke-width="4" stroke-linecap="square"/>
10
+ <circle cx="44" cy="34" r="7" fill="#8F1D1D"/>
11
+ <circle cx="82" cy="66" r="7" fill="#D9D2C3"/>
12
+ <circle cx="60" cy="98" r="7" fill="#8F1D1D"/>
13
+ <path d="M30 106L54 82L76 88L102 48" fill="none" stroke="#D9D2C3" stroke-width="4" stroke-linecap="square" stroke-linejoin="miter"/>
14
+ <path d="M30 106L54 82L76 88L102 48" fill="none" stroke="#8F1D1D" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"/>
15
+ </g>
16
+ <text x="256" y="130" fill="#EFE8D8" font-family="'Arial Narrow', 'Helvetica Neue Condensed Bold', 'Roboto Condensed', Arial, sans-serif" font-size="96" font-weight="800" letter-spacing="9">FINCORE</text>
17
+ <path d="M260 154H916" stroke="#8F1D1D" stroke-width="5"/>
18
+ <text x="260" y="194" fill="#A8A096" font-family="'Arial Narrow', 'Roboto Condensed', Arial, sans-serif" font-size="24" font-weight="700" letter-spacing="4">EVENT-DRIVEN DATA + ANALYTICS INFRASTRUCTURE</text>
19
+ <g transform="translate(976 88)" fill="none" stroke-linecap="square">
20
+ <path d="M0 18H310" stroke="#2A2A2A" stroke-width="3"/>
21
+ <path d="M0 58H310" stroke="#2A2A2A" stroke-width="3"/>
22
+ <path d="M0 98H310" stroke="#2A2A2A" stroke-width="3"/>
23
+ <path d="M28 98H80L120 58H176L216 18H282" stroke="#D9D2C3" stroke-width="4"/>
24
+ <path d="M28 58H94L138 18H200L244 58H282" stroke="#8F1D1D" stroke-width="4"/>
25
+ </g>
26
+ </svg>
@@ -12,7 +12,7 @@ name = "fincore-py"
12
12
  dynamic = ["version"]
13
13
  description = "Event-driven financial data and analytics framework for real-time market infrastructure."
14
14
  readme = "README.md"
15
- requires-python = ">=3.10"
15
+ requires-python = ">=3.14,<3.15"
16
16
  license = "MIT"
17
17
  license-files = ["LICENSE"]
18
18
  authors = [
@@ -36,7 +36,7 @@ classifiers = [
36
36
  "Development Status :: 4 - Beta",
37
37
  "Intended Audience :: Developers",
38
38
  "Intended Audience :: Financial and Insurance Industry",
39
- "Programming Language :: Python :: 3",
39
+ "Programming Language :: Python :: 3.14",
40
40
  "Programming Language :: Rust",
41
41
  "Topic :: Database",
42
42
  "Topic :: Scientific/Engineering :: Information Analysis",
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.1.0.dev5'
22
- __version_tuple__ = version_tuple = (0, 1, 0, 'dev5')
21
+ __version__ = version = '0.1.0.dev7'
22
+ __version_tuple__ = version_tuple = (0, 1, 0, 'dev7')
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fincore-py
3
- Version: 0.1.0.dev5
3
+ Version: 0.1.0.dev7
4
4
  Summary: Event-driven financial data and analytics framework for real-time market infrastructure.
5
5
  Author: Avinash Chandra
6
6
  License-Expression: MIT
@@ -11,12 +11,12 @@ Keywords: analytics,event-driven,finance,financial-data,kafka,market-data,metric
11
11
  Classifier: Development Status :: 4 - Beta
12
12
  Classifier: Intended Audience :: Developers
13
13
  Classifier: Intended Audience :: Financial and Insurance Industry
14
- Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.14
15
15
  Classifier: Programming Language :: Rust
16
16
  Classifier: Topic :: Database
17
17
  Classifier: Topic :: Scientific/Engineering :: Information Analysis
18
18
  Classifier: Topic :: Office/Business :: Financial
19
- Requires-Python: >=3.10
19
+ Requires-Python: <3.15,>=3.14
20
20
  Description-Content-Type: text/markdown
21
21
  License-File: LICENSE
22
22
  Provides-Extra: kafka
@@ -35,15 +35,19 @@ Dynamic: license-file
35
35
  </p>
36
36
 
37
37
  <p align="center">
38
- <a href="https://pypi.org/project/fincore-py/"><img src="https://img.shields.io/pypi/v/fincore-py.svg?color=111111&label=PyPI" alt="PyPI version"></a>
39
- <a href="https://pypi.org/project/fincore-py/#history"><img src="https://img.shields.io/badge/PyPI-dev%20builds-7A1E1E" alt="PyPI dev builds"></a>
40
- <a href="https://pypi.org/project/fincore-py/"><img src="https://img.shields.io/pypi/pyversions/fincore-py.svg?color=111111" alt="Python versions"></a>
38
+ <a href="https://pypi.org/project/fincore-py/"><img src="https://img.shields.io/pypi/v/fincore-py.svg?color=111111&label=PyPI&logo=pypi&logoColor=white" alt="PyPI version"></a>
39
+ <a href="https://pepy.tech/project/fincore-py"><img src="https://static.pepy.tech/badge/fincore-py/month" alt="Monthly downloads"></a>
40
+ <a href="https://pypi.org/project/fincore-py/#history"><img src="https://img.shields.io/badge/PyPI-dev%20builds-7A1E1E?logo=pypi&logoColor=white" alt="PyPI dev builds"></a>
41
+ <a href="https://www.python.org/"><img src="https://img.shields.io/badge/python-3.14-111111?logo=python&logoColor=white" alt="Python 3.14"></a>
42
+ <a href="https://www.rust-lang.org/"><img src="https://img.shields.io/badge/rust-core-7A1E1E?logo=rust&logoColor=white" alt="Rust core"></a>
43
+ <a href="https://kafka.apache.org/"><img src="https://img.shields.io/badge/kafka-optional-111111?logo=apachekafka&logoColor=white" alt="Optional Kafka support"></a>
44
+ <a href="https://pypi.org/project/fincore-py/"><img src="https://img.shields.io/badge/status-beta-111111?logo=semanticrelease&logoColor=white" alt="Beta status"></a>
41
45
  <a href="https://github.com/avi2413/fincore/actions/workflows/ci.yml"><img src="https://github.com/avi2413/fincore/actions/workflows/ci.yml/badge.svg" alt="CI workflow"></a>
42
46
  <a href="https://codecov.io/gh/avi2413/fincore"><img src="https://codecov.io/gh/avi2413/fincore/branch/main/graph/badge.svg" alt="Codecov coverage"></a>
43
- <a href="https://github.com/avi2413/fincore/actions/workflows/publish.yml"><img src="https://github.com/avi2413/fincore/actions/workflows/publish.yml/badge.svg" alt="Publish workflow"></a>
44
47
  <a href="https://github.com/avi2413/fincore/actions/workflows/docs.yml"><img src="https://github.com/avi2413/fincore/actions/workflows/docs.yml/badge.svg" alt="Docs workflow"></a>
45
- <a href="https://avi2413.github.io/fincore/"><img src="https://img.shields.io/badge/docs-GitHub%20Pages-111111" alt="Documentation"></a>
46
- <a href="https://github.com/avi2413/fincore/blob/main/LICENSE"><img src="https://img.shields.io/github/license/avi2413/fincore.svg?color=7A1E1E" alt="License"></a>
48
+ <a href="https://avi2413.github.io/fincore/"><img src="https://img.shields.io/badge/docs-GitHub%20Pages-111111?logo=githubpages&logoColor=white" alt="Documentation"></a>
49
+ <a href="https://github.com/avi2413/fincore/issues"><img src="https://img.shields.io/github/issues/avi2413/fincore.svg?color=7A1E1E&logo=github&logoColor=white" alt="GitHub issues"></a>
50
+ <a href="https://github.com/avi2413/fincore/blob/main/LICENSE"><img src="https://img.shields.io/github/license/avi2413/fincore.svg?color=111111&logo=opensourceinitiative&logoColor=white" alt="License"></a>
47
51
  </p>
48
52
 
49
53
  # fincore
@@ -108,15 +112,29 @@ Rust extension
108
112
 
109
113
  ## Installation
110
114
 
111
- Create and activate a Python environment, then install build dependencies:
115
+ Install from PyPI:
112
116
 
113
117
  ```bash
118
+ python --version # requires Python 3.14
119
+ python -m pip install fincore-py
120
+ ```
121
+
122
+ Kafka support:
123
+
124
+ ```bash
125
+ python -m pip install "fincore-py[kafka]"
126
+ ```
127
+
128
+ For local development, create and activate a Python environment, then install build dependencies:
129
+
130
+ ```bash
131
+ python --version # requires Python 3.14
114
132
  python -m pip install --upgrade pip
115
133
  python -m pip install -r requirements.txt
116
134
  python -m pip install -e .
117
135
  ```
118
136
 
119
- Kafka support:
137
+ Local Kafka development:
120
138
 
121
139
  ```bash
122
140
  python -m pip install -r requirements-kafka.txt
@@ -570,42 +588,11 @@ async for metric_event in engine.run(client.stream_bars(["Apple"], interval="1m"
570
588
  ...
571
589
  ```
572
590
 
573
- ## Versioning And Publishing
591
+ ## Contributions And Issues
574
592
 
575
- Python package versions are derived from git tags through `setuptools-scm`.
593
+ Issues, bug reports, documentation fixes, and focused feature suggestions are welcome through [GitHub Issues](https://github.com/avi2413/fincore/issues).
576
594
 
577
- Install the latest beta/dev package from PyPI:
578
-
579
- ```bash
580
- python -m pip install fincore-py
581
- ```
582
-
583
- Kafka extras:
584
-
585
- ```bash
586
- python -m pip install "fincore-py[kafka]"
587
- ```
588
-
589
- For a beta pre-release:
590
-
591
- ```bash
592
- git tag v0.1.0b0
593
- git push origin v0.1.0b0
594
- ```
595
-
596
- The publish workflow at `.github/workflows/publish.yml` builds distributions for both main pushes and version tags.
597
-
598
- - Pushes to `main` publish source-distribution development builds to PyPI, using versions like `0.1.0.dev123`.
599
- - Tags like `v0.1.0b0` build beta wheels plus a source distribution and publish them to PyPI.
600
- - Later stable tags like `v0.1.0` can use the same tagged release path.
601
-
602
- Configure PyPI trusted publishing with:
603
-
604
- ```text
605
- Repository: <owner>/fincore
606
- Workflow: publish.yml
607
- Environment: pypi
608
- ```
595
+ This is still a personal research project, so contributions should stay aligned with the current scope: event-driven market data access, normalized schemas, streaming events, Kafka integration, and analytics metrics. Production trading, order execution, and investment advice are intentionally out of scope.
609
596
 
610
597
  ## Status
611
598
 
@@ -1,8 +1,8 @@
1
1
  [tox]
2
- env_list = py
2
+ env_list = py314
3
3
  isolated_build = true
4
4
 
5
- [testenv]
5
+ [testenv:py314]
6
6
  description = Run the Python unit tests.
7
7
  extras = test
8
8
  setenv =
@@ -1,29 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="1440" height="300" viewBox="0 0 1440 300" role="img" aria-labelledby="title desc">
2
- <title id="title">fincore wordmark</title>
3
- <desc id="desc">Noir brutalist fincore wordmark showing event streams, normalized data, and analytics signals.</desc>
4
- <rect width="1440" height="300" fill="#0B0B0B"/>
5
- <path d="M0 246H1440" stroke="#191919" stroke-width="2"/>
6
- <path d="M0 68H1440" stroke="#151515" stroke-width="2"/>
7
- <g transform="translate(82 70)">
8
- <rect x="0" y="0" width="160" height="160" fill="none" stroke="#D9D2C3" stroke-width="3"/>
9
- <path d="M24 40H66M94 40H136M24 80H52M80 80H136M24 120H70M98 120H136" stroke="#6F6A61" stroke-width="5" stroke-linecap="square"/>
10
- <circle cx="76" cy="40" r="8" fill="#8F1D1D"/>
11
- <circle cx="66" cy="80" r="8" fill="#D9D2C3"/>
12
- <circle cx="84" cy="120" r="8" fill="#8F1D1D"/>
13
- <path d="M32 136L58 108L82 116L112 72L132 88" fill="none" stroke="#D9D2C3" stroke-width="4" stroke-linecap="square" stroke-linejoin="miter"/>
14
- <path d="M32 136L58 108L82 116L112 72L132 88" fill="none" stroke="#8F1D1D" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"/>
15
- </g>
16
- <text x="282" y="144" fill="#EFE8D8" font-family="'Arial Narrow', 'Helvetica Neue Condensed Bold', 'Roboto Condensed', Arial, sans-serif" font-size="102" font-weight="800" letter-spacing="10">FINCORE</text>
17
- <path d="M286 166H934" stroke="#8F1D1D" stroke-width="5"/>
18
- <text x="288" y="212" fill="#A8A096" font-family="'Arial Narrow', 'Roboto Condensed', Arial, sans-serif" font-size="28" font-weight="700" letter-spacing="5">EVENT-DRIVEN DATA + ANALYTICS INFRASTRUCTURE</text>
19
- <g transform="translate(1058 86)" stroke-linecap="square">
20
- <path d="M0 32H245" stroke="#2A2A2A" stroke-width="3"/>
21
- <path d="M0 76H245" stroke="#2A2A2A" stroke-width="3"/>
22
- <path d="M0 120H245" stroke="#2A2A2A" stroke-width="3"/>
23
- <path d="M22 32H66L94 76H146L174 120H226" stroke="#8F1D1D" stroke-width="5" fill="none"/>
24
- <path d="M22 120H70L102 76H150L182 32H226" stroke="#D9D2C3" stroke-width="4" fill="none"/>
25
- <circle cx="94" cy="76" r="7" fill="#D9D2C3"/>
26
- <circle cx="174" cy="120" r="7" fill="#8F1D1D"/>
27
- <circle cx="182" cy="32" r="7" fill="#D9D2C3"/>
28
- </g>
29
- </svg>
File without changes