equity-aggregator 0.1.1__py3-none-any.whl → 0.1.4__py3-none-any.whl
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.
- equity_aggregator/README.md +40 -36
- equity_aggregator/adapters/__init__.py +13 -7
- equity_aggregator/adapters/data_sources/__init__.py +4 -6
- equity_aggregator/adapters/data_sources/_utils/_client.py +1 -1
- equity_aggregator/adapters/data_sources/{authoritative_feeds → _utils}/_record_types.py +1 -1
- equity_aggregator/adapters/data_sources/discovery_feeds/__init__.py +17 -0
- equity_aggregator/adapters/data_sources/discovery_feeds/intrinio/__init__.py +7 -0
- equity_aggregator/adapters/data_sources/discovery_feeds/intrinio/_utils/__init__.py +10 -0
- equity_aggregator/adapters/data_sources/discovery_feeds/intrinio/_utils/backoff.py +33 -0
- equity_aggregator/adapters/data_sources/discovery_feeds/intrinio/_utils/parser.py +107 -0
- equity_aggregator/adapters/data_sources/discovery_feeds/intrinio/intrinio.py +305 -0
- equity_aggregator/adapters/data_sources/discovery_feeds/intrinio/session.py +197 -0
- equity_aggregator/adapters/data_sources/discovery_feeds/lseg/__init__.py +7 -0
- equity_aggregator/adapters/data_sources/discovery_feeds/lseg/_utils/__init__.py +9 -0
- equity_aggregator/adapters/data_sources/discovery_feeds/lseg/_utils/backoff.py +33 -0
- equity_aggregator/adapters/data_sources/discovery_feeds/lseg/_utils/parser.py +120 -0
- equity_aggregator/adapters/data_sources/discovery_feeds/lseg/lseg.py +239 -0
- equity_aggregator/adapters/data_sources/discovery_feeds/lseg/session.py +162 -0
- equity_aggregator/adapters/data_sources/discovery_feeds/sec/__init__.py +7 -0
- equity_aggregator/adapters/data_sources/{authoritative_feeds → discovery_feeds/sec}/sec.py +4 -5
- equity_aggregator/adapters/data_sources/discovery_feeds/stock_analysis/__init__.py +7 -0
- equity_aggregator/adapters/data_sources/discovery_feeds/stock_analysis/stock_analysis.py +150 -0
- equity_aggregator/adapters/data_sources/discovery_feeds/tradingview/__init__.py +5 -0
- equity_aggregator/adapters/data_sources/discovery_feeds/tradingview/tradingview.py +275 -0
- equity_aggregator/adapters/data_sources/discovery_feeds/xetra/__init__.py +7 -0
- equity_aggregator/adapters/data_sources/{authoritative_feeds → discovery_feeds/xetra}/xetra.py +9 -12
- equity_aggregator/adapters/data_sources/enrichment_feeds/__init__.py +6 -1
- equity_aggregator/adapters/data_sources/enrichment_feeds/gleif/__init__.py +5 -0
- equity_aggregator/adapters/data_sources/enrichment_feeds/gleif/api.py +71 -0
- equity_aggregator/adapters/data_sources/enrichment_feeds/gleif/download.py +109 -0
- equity_aggregator/adapters/data_sources/enrichment_feeds/gleif/gleif.py +195 -0
- equity_aggregator/adapters/data_sources/enrichment_feeds/gleif/parser.py +75 -0
- equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/__init__.py +1 -1
- equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/_utils/__init__.py +11 -0
- equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/{utils → _utils}/backoff.py +1 -1
- equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/{utils → _utils}/fuzzy.py +28 -26
- equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/_utils/json.py +36 -0
- equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/api/__init__.py +1 -1
- equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/api/{summary.py → quote_summary.py} +44 -30
- equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/api/search.py +10 -5
- equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/auth.py +130 -0
- equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/config.py +3 -3
- equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/ranking.py +97 -0
- equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/session.py +85 -218
- equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/transport.py +191 -0
- equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/yfinance.py +413 -0
- equity_aggregator/adapters/data_sources/reference_lookup/exchange_rate_api.py +6 -13
- equity_aggregator/adapters/data_sources/reference_lookup/openfigi.py +23 -7
- equity_aggregator/cli/dispatcher.py +11 -8
- equity_aggregator/cli/main.py +14 -5
- equity_aggregator/cli/parser.py +1 -1
- equity_aggregator/cli/signals.py +32 -0
- equity_aggregator/domain/_utils/__init__.py +2 -2
- equity_aggregator/domain/_utils/_load_converter.py +30 -21
- equity_aggregator/domain/_utils/_merge.py +221 -368
- equity_aggregator/domain/_utils/_merge_config.py +205 -0
- equity_aggregator/domain/_utils/_strategies.py +180 -0
- equity_aggregator/domain/pipeline/resolve.py +17 -11
- equity_aggregator/domain/pipeline/runner.py +4 -4
- equity_aggregator/domain/pipeline/seed.py +5 -1
- equity_aggregator/domain/pipeline/transforms/__init__.py +2 -2
- equity_aggregator/domain/pipeline/transforms/canonicalise.py +1 -1
- equity_aggregator/domain/pipeline/transforms/enrich.py +328 -285
- equity_aggregator/domain/pipeline/transforms/group.py +48 -0
- equity_aggregator/logging_config.py +4 -1
- equity_aggregator/schemas/__init__.py +11 -5
- equity_aggregator/schemas/canonical.py +11 -6
- equity_aggregator/schemas/feeds/__init__.py +11 -5
- equity_aggregator/schemas/feeds/gleif_feed_data.py +35 -0
- equity_aggregator/schemas/feeds/intrinio_feed_data.py +142 -0
- equity_aggregator/schemas/feeds/{lse_feed_data.py → lseg_feed_data.py} +85 -52
- equity_aggregator/schemas/feeds/sec_feed_data.py +36 -6
- equity_aggregator/schemas/feeds/stock_analysis_feed_data.py +107 -0
- equity_aggregator/schemas/feeds/tradingview_feed_data.py +144 -0
- equity_aggregator/schemas/feeds/xetra_feed_data.py +1 -1
- equity_aggregator/schemas/feeds/yfinance_feed_data.py +47 -35
- equity_aggregator/schemas/raw.py +5 -3
- equity_aggregator/schemas/types.py +7 -0
- equity_aggregator/schemas/validators.py +81 -27
- equity_aggregator/storage/data_store.py +5 -3
- {equity_aggregator-0.1.1.dist-info → equity_aggregator-0.1.4.dist-info}/METADATA +205 -115
- equity_aggregator-0.1.4.dist-info/RECORD +103 -0
- {equity_aggregator-0.1.1.dist-info → equity_aggregator-0.1.4.dist-info}/WHEEL +1 -1
- equity_aggregator/adapters/data_sources/authoritative_feeds/__init__.py +0 -13
- equity_aggregator/adapters/data_sources/authoritative_feeds/euronext.py +0 -420
- equity_aggregator/adapters/data_sources/authoritative_feeds/lse.py +0 -352
- equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/feed.py +0 -350
- equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/utils/__init__.py +0 -9
- equity_aggregator/domain/pipeline/transforms/deduplicate.py +0 -54
- equity_aggregator/schemas/feeds/euronext_feed_data.py +0 -59
- equity_aggregator-0.1.1.dist-info/RECORD +0 -72
- {equity_aggregator-0.1.1.dist-info → equity_aggregator-0.1.4.dist-info}/entry_points.txt +0 -0
- {equity_aggregator-0.1.1.dist-info → equity_aggregator-0.1.4.dist-info}/licenses/LICENCE.txt +0 -0
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
# transforms/deduplicate.py
|
|
2
|
-
|
|
3
|
-
import logging
|
|
4
|
-
from collections.abc import AsyncIterable
|
|
5
|
-
from itertools import groupby
|
|
6
|
-
|
|
7
|
-
from equity_aggregator.domain._utils._merge import merge
|
|
8
|
-
from equity_aggregator.schemas.raw import RawEquity
|
|
9
|
-
|
|
10
|
-
logger = logging.getLogger(__name__)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
async def deduplicate(
|
|
14
|
-
raw_equities: AsyncIterable[RawEquity],
|
|
15
|
-
) -> AsyncIterable[RawEquity]:
|
|
16
|
-
"""
|
|
17
|
-
Deduplicate and merge RawEquity records by their `share_class_figi`.
|
|
18
|
-
|
|
19
|
-
Consumes an asynchronous stream of RawEquity objects, groups them by their
|
|
20
|
-
`share_class_figi` attribute, and merges each group into a single RawEquity using
|
|
21
|
-
the `merge` function. Logs the total number of records, the number of unique FIGIs,
|
|
22
|
-
and the number of duplicates found.
|
|
23
|
-
|
|
24
|
-
Args:
|
|
25
|
-
raw_equities (AsyncIterable[RawEquity]): Async iterable of RawEquity records to
|
|
26
|
-
deduplicate and merge.
|
|
27
|
-
|
|
28
|
-
Yields:
|
|
29
|
-
RawEquity: The merged RawEquity record for each unique `share_class_figi`.
|
|
30
|
-
"""
|
|
31
|
-
|
|
32
|
-
# materialise all raw equities into a list
|
|
33
|
-
aggregated_raw_equities = [raw_equity async for raw_equity in raw_equities]
|
|
34
|
-
|
|
35
|
-
total = len(aggregated_raw_equities)
|
|
36
|
-
unique = len({equity.share_class_figi for equity in aggregated_raw_equities})
|
|
37
|
-
|
|
38
|
-
duplicates = total - unique
|
|
39
|
-
|
|
40
|
-
logger.info(
|
|
41
|
-
"Detected %d duplicate raw equities → merged into %d unique raw equities",
|
|
42
|
-
duplicates,
|
|
43
|
-
unique,
|
|
44
|
-
)
|
|
45
|
-
|
|
46
|
-
# sort by ShareClassFIGI
|
|
47
|
-
aggregated_raw_equities.sort(key=lambda equity: equity.share_class_figi)
|
|
48
|
-
|
|
49
|
-
# group by ShareClassFIGI and merge each group
|
|
50
|
-
for _, group in groupby(
|
|
51
|
-
aggregated_raw_equities,
|
|
52
|
-
key=lambda equity: equity.share_class_figi,
|
|
53
|
-
):
|
|
54
|
-
yield merge(list(group))
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
# feeds/euronext_feed_data.py
|
|
2
|
-
|
|
3
|
-
from decimal import Decimal
|
|
4
|
-
|
|
5
|
-
from pydantic import BaseModel, ConfigDict, model_validator
|
|
6
|
-
|
|
7
|
-
from .feed_validators import required
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
@required("name", "symbol")
|
|
11
|
-
class EuronextFeedData(BaseModel):
|
|
12
|
-
"""
|
|
13
|
-
Represents a single Euronext feed record, transforming and normalising incoming
|
|
14
|
-
fields to match the RawEquity model's expected attributes.
|
|
15
|
-
|
|
16
|
-
Args:
|
|
17
|
-
self (dict[str, object]): Raw payload containing Euronext feed data.
|
|
18
|
-
|
|
19
|
-
Returns:
|
|
20
|
-
EuronextFeedData: An instance with fields normalised for RawEquity validation.
|
|
21
|
-
"""
|
|
22
|
-
|
|
23
|
-
# Fields exactly match RawEquity’s signature
|
|
24
|
-
name: str
|
|
25
|
-
symbol: str
|
|
26
|
-
isin: str | None
|
|
27
|
-
mics: list[str]
|
|
28
|
-
currency: str | None
|
|
29
|
-
last_price: str | float | int | Decimal | None
|
|
30
|
-
|
|
31
|
-
@model_validator(mode="before")
|
|
32
|
-
def _normalise_fields(self: dict[str, object]) -> dict[str, object]:
|
|
33
|
-
"""
|
|
34
|
-
Normalise a raw Euronext feed record into the flat schema expected by RawEquity.
|
|
35
|
-
|
|
36
|
-
Args:
|
|
37
|
-
self (dict[str, object]): Raw payload containing Euronext feed data.
|
|
38
|
-
|
|
39
|
-
Returns:
|
|
40
|
-
dict[str, object]: A new dictionary with renamed keys suitable for the
|
|
41
|
-
RawEquity schema.
|
|
42
|
-
"""
|
|
43
|
-
return {
|
|
44
|
-
"name": self.get("name"),
|
|
45
|
-
"symbol": self.get("symbol"),
|
|
46
|
-
"isin": self.get("isin"),
|
|
47
|
-
# no CUSIP, CIK or FIGI in Euronext feed, so omitting from model
|
|
48
|
-
"mics": self.get("mics"),
|
|
49
|
-
"currency": self.get("currency"),
|
|
50
|
-
"last_price": self.get("last_price"),
|
|
51
|
-
# no additional fields in Euronext feed, so omitting from model
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
model_config = ConfigDict(
|
|
55
|
-
# ignore extra fields in incoming Euronext raw data feed
|
|
56
|
-
extra="ignore",
|
|
57
|
-
# defer strict type validation to RawEquity
|
|
58
|
-
strict=False,
|
|
59
|
-
)
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
equity_aggregator/README.md,sha256=Zwn69OVKGJE5GPaKO6M2G1IuLes2SZk0dOmHd2RVwv0,7998
|
|
2
|
-
equity_aggregator/__init__.py,sha256=hGyCpePTRYSkNJ3sNCV7rqi4sgcFxouSEykzJ0aq4Ek,264
|
|
3
|
-
equity_aggregator/logging_config.py,sha256=veFYzrbuEm54L2Qj5mDSx0Bu_JPloXp4tSaIuacYZEM,3270
|
|
4
|
-
equity_aggregator/adapters/__init__.py,sha256=ojIIaAUrrPJbjSq2AkZTXP6T_XD97gcZtTDLEMx1UpY,699
|
|
5
|
-
equity_aggregator/adapters/data_sources/__init__.py,sha256=-heTZ3DjzkpYzm_ikGBFgSiqRCScIEnhJot-kUtHs48,664
|
|
6
|
-
equity_aggregator/adapters/data_sources/_utils/__init__.py,sha256=mp5CV8PXo2ebLXpT9zEl5yB455ZZFHSOVqejrUaP6iw,89
|
|
7
|
-
equity_aggregator/adapters/data_sources/_utils/_client.py,sha256=iRhkB6nsSPssjSNbIUqGSJ3-BVtGKPPdrx54tTISE0A,1894
|
|
8
|
-
equity_aggregator/adapters/data_sources/authoritative_feeds/__init__.py,sha256=PBgkDT3Dl35U37vE-LZQt8oOROoGnA5NsYxOJm2VzAY,463
|
|
9
|
-
equity_aggregator/adapters/data_sources/authoritative_feeds/_record_types.py,sha256=hCOLzmAvzb2vSoc59YTPaXqV99zonZod4IcXo3qqAVQ,486
|
|
10
|
-
equity_aggregator/adapters/data_sources/authoritative_feeds/euronext.py,sha256=FAxFyiRzWjaSjURkEDON2A6uxYOhbyw3628Q0RQ1J7Y,13264
|
|
11
|
-
equity_aggregator/adapters/data_sources/authoritative_feeds/lse.py,sha256=IDag2grMe7T45EI-xnqq-4XuzxYrEP5Yz2WGQ5e_EO0,11064
|
|
12
|
-
equity_aggregator/adapters/data_sources/authoritative_feeds/sec.py,sha256=0qnNzR1TqdldyPanXDB8AbKryHW-dAf3HF097NhULDA,5107
|
|
13
|
-
equity_aggregator/adapters/data_sources/authoritative_feeds/xetra.py,sha256=Mcn4NtHM97r7GdrPL4MY6lLcOegvSXCpbTkwumG_22M,10754
|
|
14
|
-
equity_aggregator/adapters/data_sources/enrichment_feeds/__init__.py,sha256=8-iWGJTg9WQgFOVdVb85DP0ZJLl2qMcfz6pxK-dl4_I,107
|
|
15
|
-
equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/__init__.py,sha256=gqnsHJ6T68tL5t3-Uef0ut1bg1wbdsLopzNF6U_AGKQ,95
|
|
16
|
-
equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/config.py,sha256=GgeToZXjn9RaLf0jlL1kUaKicd0Pk4wZB2lqtAmiHmI,2452
|
|
17
|
-
equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/feed.py,sha256=T8Vrox_7-HsihLsCcS_RInietLkdOsaR1r7IKCREzn0,11333
|
|
18
|
-
equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/session.py,sha256=LQmMgSPReFuPmuvxR8DqE8yTOdB0r-vRPTWEcgNnq6k,11910
|
|
19
|
-
equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/api/__init__.py,sha256=krNVf6AFSBOCCKbfYQEzmWmPkKXuwOFMeDKo_bPgCu8,142
|
|
20
|
-
equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/api/search.py,sha256=cvVBhmLEUETrwaKp5oN1obqCDUiEC0VKugjuOr1k4Q0,1262
|
|
21
|
-
equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/api/summary.py,sha256=_Sr2rRzCXJFUW2S8ddI87lzIMdR1f_pYbaskAcMT3jo,4409
|
|
22
|
-
equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/utils/__init__.py,sha256=W5onpdKyY40oL2dfKXzjyyC81uumR2MkF_6DSFaJl8M,154
|
|
23
|
-
equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/utils/backoff.py,sha256=dwR7bqceah02fFtEsWZ61fgBHn27rtGD66bTOcOoy_M,916
|
|
24
|
-
equity_aggregator/adapters/data_sources/enrichment_feeds/yfinance/utils/fuzzy.py,sha256=wIfjo_vJHHsmMdmHScCZqtXmaHoqJMS7QAodFp9Tibw,3429
|
|
25
|
-
equity_aggregator/adapters/data_sources/reference_lookup/__init__.py,sha256=Qq7K7-j6yx2QS4cl4DmH3RV1Z0gGM_z5i9EEycCKFq0,261
|
|
26
|
-
equity_aggregator/adapters/data_sources/reference_lookup/exchange_rate_api.py,sha256=mq7-76-rp6rgnTb9NSa8mafdyicVTpXwNowbE1wfavs,6079
|
|
27
|
-
equity_aggregator/adapters/data_sources/reference_lookup/openfigi.py,sha256=na2aTYKaopXvuonEw9LlIMK9pi4Z37bRrRzT-42ZkIY,13805
|
|
28
|
-
equity_aggregator/cli/__init__.py,sha256=IQtGuI6XMWFpbnVXmze-21iRTCyGaNCEBcoDWVNosLQ,62
|
|
29
|
-
equity_aggregator/cli/config.py,sha256=eN3YWbUbelclHXYwM7O4oaoBVF-BQwQi4G6PH3TaIMY,606
|
|
30
|
-
equity_aggregator/cli/dispatcher.py,sha256=ghaUHmOoOBFbjBrX2hJNFwUvlRvrTxeEpJhqLfCJUCQ,1321
|
|
31
|
-
equity_aggregator/cli/main.py,sha256=FRh_CazKSmDsYNIfNOfXwoewSlNjSIoyx50tW2DUQNc,1614
|
|
32
|
-
equity_aggregator/cli/parser.py,sha256=mIaOJfN_nUcgGQuI_xiPWky0wxGtFO7oYdtAQU5mv48,2669
|
|
33
|
-
equity_aggregator/domain/__init__.py,sha256=obThi3XWT-f-agPy6zZWsFXLdlgNPqx3wD0fV3HM9SQ,341
|
|
34
|
-
equity_aggregator/domain/_utils/__init__.py,sha256=yUDAQFa84BywYfpDd12zyU2v76Zan0Tb94bG90iPyMw,137
|
|
35
|
-
equity_aggregator/domain/_utils/_load_converter.py,sha256=fRIY_P7Zd3i4wvOkkxuvNeaTWFqlkBMkQKTev__AZgQ,5243
|
|
36
|
-
equity_aggregator/domain/_utils/_merge.py,sha256=l-1H_rVQboQrFTH96ykNXCqRHPL4vyphqSpI91TEYp8,16823
|
|
37
|
-
equity_aggregator/domain/pipeline/__init__.py,sha256=fxb7mlSMWfJLxBhwHW14FHzikZ-sAxKsAv_uDedpdc8,112
|
|
38
|
-
equity_aggregator/domain/pipeline/resolve.py,sha256=808WDLeBvLyz-jjjrNM2fOR_6lP61Fy5mT5bCE0K-po,4025
|
|
39
|
-
equity_aggregator/domain/pipeline/runner.py,sha256=1CeCHtDX6yPjrkbKpq-ZFN2LtwCnDfHfRJlJ_u9uyxc,1382
|
|
40
|
-
equity_aggregator/domain/pipeline/seed.py,sha256=wwoyvfj2Vuwt5L5dwaHpPjYqsZGwOLVJ8UiVULhmNj0,790
|
|
41
|
-
equity_aggregator/domain/pipeline/transforms/__init__.py,sha256=IEuEYXbmCP5N9osq0VS4JUW6JLFMvFMUOwJXWAUYufY,326
|
|
42
|
-
equity_aggregator/domain/pipeline/transforms/canonicalise.py,sha256=o07vWjtaVJXANqVNZNVo-6W8jZP5N4lGN4Ca_n0P8Ps,1225
|
|
43
|
-
equity_aggregator/domain/pipeline/transforms/convert.py,sha256=UB4ACNJppMOi2CPqq8SDZa0SaBO94lb1Pcqqn-SKtG8,1067
|
|
44
|
-
equity_aggregator/domain/pipeline/transforms/deduplicate.py,sha256=fK01ADV3HDwg6RJNp59W0vr_MJpS-3AlWoCKDhbiH1s,1720
|
|
45
|
-
equity_aggregator/domain/pipeline/transforms/enrich.py,sha256=XfdXIoyluAWvU9Ku5qdyWiejkGTHAV9kUrRgupkSpiU,13876
|
|
46
|
-
equity_aggregator/domain/pipeline/transforms/identify.py,sha256=y-FVyQCfofGR6rXbKtp6crRTm6Au_RRTRvv1-OvQ7yo,3826
|
|
47
|
-
equity_aggregator/domain/pipeline/transforms/parse.py,sha256=BaZp6yiS4zW-Apr1jkrQkBeAcZ5YYuOXipzSfRr1b7M,2353
|
|
48
|
-
equity_aggregator/domain/retrieval/__init__.py,sha256=uM1APSueNeUsLavqNlm45VQ9Vxh1Ss_xKRkG0f7I-Es,267
|
|
49
|
-
equity_aggregator/domain/retrieval/retrieval.py,sha256=WkclmKCLkrAdIDE7gSiVEoqJpin63EtOPmvlO3JhMiI,11894
|
|
50
|
-
equity_aggregator/schemas/__init__.py,sha256=nB6Ph3oqfsgTJjza9Rb6efe0_SlF0ZYcBbFcSwD2CFM,472
|
|
51
|
-
equity_aggregator/schemas/canonical.py,sha256=151yCH52eNgztlw1uK6DVR2FKoIyKWYIt1qJ7KAzT2k,6892
|
|
52
|
-
equity_aggregator/schemas/raw.py,sha256=7hLaGsiEM5vaIkg7rSgVccYkjfpgJSxmad9Tlp1NwE4,3853
|
|
53
|
-
equity_aggregator/schemas/types.py,sha256=KlpXh_MEm_o9mCKjAU72aYqhmLUR_CGrqvyhII6GI78,2310
|
|
54
|
-
equity_aggregator/schemas/validators.py,sha256=gdko6PzHwsm-D8f3sJoygxyFCaww3r_Idex7vJbGDbA,11262
|
|
55
|
-
equity_aggregator/schemas/feeds/__init__.py,sha256=BxaPnkJCd6SC1PW74Qiu8E7p3QPaEjDk4WV_l2d2Bms,411
|
|
56
|
-
equity_aggregator/schemas/feeds/euronext_feed_data.py,sha256=ZmVKTG-pVkMwbiQkJGwtYmaST5BB1oPHecxUvZ1ikjs,1862
|
|
57
|
-
equity_aggregator/schemas/feeds/feed_validators.py,sha256=JTTvkUeEFjq3y1HY16euvP1GUdCrCRkHubRoUdludwc,1979
|
|
58
|
-
equity_aggregator/schemas/feeds/lse_feed_data.py,sha256=T8ypfOLqT6zBtcDus9a5lnufZLXlKVuyhhG2vt3j7d8,5993
|
|
59
|
-
equity_aggregator/schemas/feeds/sec_feed_data.py,sha256=vcb_4iHo1bwCQaAwEdrGk1vXBxl4GW4BO_6AO4XMVAM,1799
|
|
60
|
-
equity_aggregator/schemas/feeds/xetra_feed_data.py,sha256=3Inz4xYQW0NjihOtcoIx8zQvY4Gynl2B3BIkkAd2VI8,3177
|
|
61
|
-
equity_aggregator/schemas/feeds/yfinance_feed_data.py,sha256=FUzifiHYd8U1HCGStDrLHsfkDKQ0_p7nj8GiYPrfeyo,7019
|
|
62
|
-
equity_aggregator/storage/__init__.py,sha256=2jy1hJeMB2RNTf33gTJOF006KIHnmGMFxr1Q_9zVE_w,837
|
|
63
|
-
equity_aggregator/storage/_utils.py,sha256=GZTukfnWhIt3AEPTkM7lq2d9OpueKcxmvjhz-s0MEP0,2832
|
|
64
|
-
equity_aggregator/storage/cache.py,sha256=pZ2aFuBthuK3WfDjq6YnFOIMg8VqeAfTbnS5VkWQP98,5865
|
|
65
|
-
equity_aggregator/storage/data_store.py,sha256=-xe_4-V6xyF3C2jyb-pzK6BUvm3lfq28J2-K2N98Bd8,5068
|
|
66
|
-
equity_aggregator/storage/export.py,sha256=QhccHYUH9eDwb3eRijiJiarjoWIPwS2XMQT9yHn7XWw,5537
|
|
67
|
-
equity_aggregator/storage/metadata.py,sha256=bCjPTKVBTmndhCoDJ3vUxau5Jr_cG6PEkiBbNKorYyE,3095
|
|
68
|
-
equity_aggregator-0.1.1.dist-info/METADATA,sha256=LxfC46t9Y7TPdg_lEmiokvYXZhzZFSK2vlFs4ppLIVA,20537
|
|
69
|
-
equity_aggregator-0.1.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
70
|
-
equity_aggregator-0.1.1.dist-info/entry_points.txt,sha256=pedEbEhWbz-9HIUpN8KTALxu94qKn9jxgrn08AvHb6c,70
|
|
71
|
-
equity_aggregator-0.1.1.dist-info/licenses/LICENCE.txt,sha256=lyiWH8xJzlkFXkZpQf2_u8KtlJiPrVCczrZEZNyqSrg,1063
|
|
72
|
-
equity_aggregator-0.1.1.dist-info/RECORD,,
|
|
File without changes
|
{equity_aggregator-0.1.1.dist-info → equity_aggregator-0.1.4.dist-info}/licenses/LICENCE.txt
RENAMED
|
File without changes
|