eth-portfolio-temp 0.2.1.dev0__cp310-cp310-win32.whl → 0.2.2.dev0__cp310-cp310-win32.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.
- 295eace8438df6ec133b__mypyc.cp310-win32.pyd +0 -0
- eth_portfolio/_argspec.cp310-win32.pyd +0 -0
- eth_portfolio/_config.cp310-win32.pyd +0 -0
- eth_portfolio/_loaders/_nonce.cp310-win32.pyd +0 -0
- eth_portfolio/_loaders/balances.cp310-win32.pyd +0 -0
- eth_portfolio/_loaders/utils.cp310-win32.pyd +0 -0
- eth_portfolio/_shitcoins.cp310-win32.pyd +0 -0
- eth_portfolio/_stableish.cp310-win32.pyd +0 -0
- eth_portfolio/constants.cp310-win32.pyd +0 -0
- eth_portfolio_scripts/_portfolio.py +29 -26
- eth_portfolio_scripts/balances.cp310-win32.pyd +0 -0
- eth_portfolio_scripts/balances.py +5 -1
- eth_portfolio_scripts/docker/__init__.cp310-win32.pyd +0 -0
- eth_portfolio_scripts/docker/check.cp310-win32.pyd +0 -0
- eth_portfolio_scripts/docker/docker_compose.cp310-win32.pyd +0 -0
- eth_portfolio_scripts/main.py +6 -0
- {eth_portfolio_temp-0.2.1.dev0.dist-info → eth_portfolio_temp-0.2.2.dev0.dist-info}/METADATA +1 -1
- {eth_portfolio_temp-0.2.1.dev0.dist-info → eth_portfolio_temp-0.2.2.dev0.dist-info}/RECORD +21 -21
- {eth_portfolio_temp-0.2.1.dev0.dist-info → eth_portfolio_temp-0.2.2.dev0.dist-info}/WHEEL +0 -0
- {eth_portfolio_temp-0.2.1.dev0.dist-info → eth_portfolio_temp-0.2.2.dev0.dist-info}/entry_points.txt +0 -0
- {eth_portfolio_temp-0.2.1.dev0.dist-info → eth_portfolio_temp-0.2.2.dev0.dist-info}/top_level.txt +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -40,8 +40,10 @@ class ExportablePortfolio(Portfolio):
|
|
|
40
40
|
def __init__(
|
|
41
41
|
self,
|
|
42
42
|
addresses: Addresses,
|
|
43
|
+
*,
|
|
43
44
|
start_block: int = 0,
|
|
44
45
|
label: str = _DEFAULT_LABEL,
|
|
46
|
+
concurrency: int = 60,
|
|
45
47
|
load_prices: bool = True,
|
|
46
48
|
get_bucket: Callable[[ChecksumAddress], Awaitable[str]] = get_token_bucket,
|
|
47
49
|
num_workers_transactions: int = 1000,
|
|
@@ -51,6 +53,7 @@ class ExportablePortfolio(Portfolio):
|
|
|
51
53
|
addresses, start_block, label, load_prices, num_workers_transactions, asynchronous
|
|
52
54
|
)
|
|
53
55
|
self.get_bucket = get_bucket
|
|
56
|
+
self._semaphore = a_sync.Semaphore(concurrency)
|
|
54
57
|
|
|
55
58
|
@cached_property
|
|
56
59
|
def _data_queries(self) -> Tuple[str, str]:
|
|
@@ -88,36 +91,36 @@ class ExportablePortfolio(Portfolio):
|
|
|
88
91
|
except Exception as e:
|
|
89
92
|
log_error("Error processing %s:", dt, exc_info=True)
|
|
90
93
|
|
|
91
|
-
@a_sync.Semaphore(60)
|
|
92
94
|
async def get_data_for_export(self, block: BlockNumber, ts: datetime) -> List[victoria.Metric]:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
for
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
await self.__process_token(ts, section, wallet, token, bals)
|
|
105
|
-
)
|
|
106
|
-
elif isinstance(section_data, RemoteTokenBalances):
|
|
107
|
-
if section == "external":
|
|
108
|
-
section = "assets"
|
|
109
|
-
for protocol, token_bals in section_data.items():
|
|
110
|
-
for token, bals in dict.items(token_bals):
|
|
95
|
+
async with self._semaphore:
|
|
96
|
+
print(f"exporting {ts} for {self.label}")
|
|
97
|
+
start = datetime.now(tz=timezone.utc)
|
|
98
|
+
|
|
99
|
+
metrics_to_export = []
|
|
100
|
+
data: PortfolioBalances = await self.describe(block, sync=False)
|
|
101
|
+
|
|
102
|
+
for wallet, wallet_data in dict.items(data):
|
|
103
|
+
for section, section_data in wallet_data.items():
|
|
104
|
+
if isinstance(section_data, TokenBalances):
|
|
105
|
+
for token, bals in dict.items(section_data):
|
|
111
106
|
metrics_to_export.extend(
|
|
112
|
-
await self.__process_token(
|
|
113
|
-
ts, section, wallet, token, bals, protocol=protocol
|
|
114
|
-
)
|
|
107
|
+
await self.__process_token(ts, section, wallet, token, bals)
|
|
115
108
|
)
|
|
116
|
-
|
|
117
|
-
|
|
109
|
+
elif isinstance(section_data, RemoteTokenBalances):
|
|
110
|
+
if section == "external":
|
|
111
|
+
section = "assets"
|
|
112
|
+
for protocol, token_bals in section_data.items():
|
|
113
|
+
for token, bals in dict.items(token_bals):
|
|
114
|
+
metrics_to_export.extend(
|
|
115
|
+
await self.__process_token(
|
|
116
|
+
ts, section, wallet, token, bals, protocol=protocol
|
|
117
|
+
)
|
|
118
|
+
)
|
|
119
|
+
else:
|
|
120
|
+
raise NotImplementedError()
|
|
118
121
|
|
|
119
|
-
|
|
120
|
-
|
|
122
|
+
print(f"got data for {ts} in {datetime.now(tz=timezone.utc) - start}")
|
|
123
|
+
return metrics_to_export
|
|
121
124
|
|
|
122
125
|
def __get_data_exists_coros(self, dt: datetime) -> Iterator[str]:
|
|
123
126
|
for query in self._data_queries:
|
|
Binary file
|
|
@@ -26,7 +26,11 @@ async def export_balances(args: Namespace) -> None:
|
|
|
26
26
|
|
|
27
27
|
interval = parse_timedelta(args.interval)
|
|
28
28
|
portfolio = ExportablePortfolio(
|
|
29
|
-
args.wallet,
|
|
29
|
+
args.wallet,
|
|
30
|
+
label=args.label,
|
|
31
|
+
start_block=args.first_tx_block,
|
|
32
|
+
concurrency=args.concurrency,
|
|
33
|
+
load_prices=False,
|
|
30
34
|
)
|
|
31
35
|
|
|
32
36
|
if export_start_block := args.export_start_block or args.first_tx_block:
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
eth_portfolio_scripts/main.py
CHANGED
|
@@ -54,6 +54,12 @@ export_parser.add_argument(
|
|
|
54
54
|
help="The time interval between datapoints. default: 6h",
|
|
55
55
|
default="6h",
|
|
56
56
|
)
|
|
57
|
+
export_parser.add_argument(
|
|
58
|
+
"--concurrency",
|
|
59
|
+
type=int,
|
|
60
|
+
help="The max number of historical blocks to export concurrently. default: 60",
|
|
61
|
+
default=60,
|
|
62
|
+
)
|
|
57
63
|
export_parser.add_argument(
|
|
58
64
|
"--first-tx-block",
|
|
59
65
|
type=int,
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
295eace8438df6ec133b__mypyc.cp310-win32.pyd,sha256=
|
|
1
|
+
295eace8438df6ec133b__mypyc.cp310-win32.pyd,sha256=mCt9uLS5lPp7Cf-Oa0Tz5SJy4NS63MVBnvSxzX4tODc,227840
|
|
2
2
|
eth_portfolio/__init__.py,sha256=5GmHYzhUX2gOC4MScgXnqS8x2MawbpWOuWPmqlvCotA,525
|
|
3
|
-
eth_portfolio/_argspec.cp310-win32.pyd,sha256=
|
|
3
|
+
eth_portfolio/_argspec.cp310-win32.pyd,sha256=n_gdNw_lniOQl8TVUEijJwOzA4DL7NnD0KiLTBt4c3o,9216
|
|
4
4
|
eth_portfolio/_argspec.py,sha256=au8ycJ56-7UzbQVzYUOoMX9sToH0QNi2tS1O820xB3A,1637
|
|
5
5
|
eth_portfolio/_cache.py,sha256=H8n8x0Xo-iHQ8Q-NPuk57mmbIG6qDj4Wal6_-tK9Pfs,4866
|
|
6
|
-
eth_portfolio/_config.cp310-win32.pyd,sha256=
|
|
6
|
+
eth_portfolio/_config.cp310-win32.pyd,sha256=P0UBefU36RWAqaK3h7T4xeDzq-BSbJTF0ZhcHSk3klA,9216
|
|
7
7
|
eth_portfolio/_config.py,sha256=BSOvFS4D0oqgVTtBbtW2g2kpL8Mk6xiP0PipfXs_91A,102
|
|
8
8
|
eth_portfolio/_decimal.py,sha256=XhuxnVTAhJF6OILJ1MpbdwkAiy1D5NuS9jRmDRpCSYg,4886
|
|
9
9
|
eth_portfolio/_decorators.py,sha256=AvB-q69MvaFe0Ykh1os6hSewcUujURQ9onqobMaONOM,2899
|
|
10
10
|
eth_portfolio/_exceptions.py,sha256=xb5VmCtBtXy9WXu_1ofoG4j9BJsMQXMVydCJNUulrNY,2500
|
|
11
|
-
eth_portfolio/_shitcoins.cp310-win32.pyd,sha256=
|
|
11
|
+
eth_portfolio/_shitcoins.cp310-win32.pyd,sha256=OhGf-l1C6oZTnVg26C7yQsTewnSTJHqwNxNZGw5Rc3k,9216
|
|
12
12
|
eth_portfolio/_shitcoins.py,sha256=iKDhRsq0qtSm0nal1zyJp6Ny13UAZEW4C8xU5_lfse0,15866
|
|
13
|
-
eth_portfolio/_stableish.cp310-win32.pyd,sha256=
|
|
13
|
+
eth_portfolio/_stableish.cp310-win32.pyd,sha256=2rdWMBrG0OUOGy98dc5vSuOh7aC2yLxcbykpyC6PdDE,9216
|
|
14
14
|
eth_portfolio/_stableish.py,sha256=8pdlYe2YcZ8rTzdCzg-ihRQLPtSFXBNDjtnvuTgPRcQ,2063
|
|
15
15
|
eth_portfolio/_submodules.py,sha256=zne-2YyVFoKHwkLuHx8cdz5lpcwwSDw1edJ9v8G4c1A,2263
|
|
16
16
|
eth_portfolio/_utils.py,sha256=PlzMkvrSlR4htROT1sMP11m2A0m-CIcZlXVFfTW272w,7970
|
|
17
17
|
eth_portfolio/address.py,sha256=RrFIWSx6jSITwh16Hqs6W6S9fz1KEaebQEk1vqL3HwI,14536
|
|
18
18
|
eth_portfolio/buckets.py,sha256=pm2-_8VbGKpe6hHM6eysj17JK7Rhngr9-_gpVi-J1uA,6889
|
|
19
|
-
eth_portfolio/constants.cp310-win32.pyd,sha256=
|
|
19
|
+
eth_portfolio/constants.cp310-win32.pyd,sha256=3KDdDxo8bL34b4lPiPajqsJ9K5WZUMJy8eVFWxvuJ1k,9216
|
|
20
20
|
eth_portfolio/constants.py,sha256=rUXWFaCGrrF_qzIdDvVzakQJsLnrGtFNn2EgRbZh8fQ,3741
|
|
21
21
|
eth_portfolio/portfolio.py,sha256=FVx4QwnJH4llTWcYln9UpDkKridHSEAENbTHCBOSq_o,24904
|
|
22
22
|
eth_portfolio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -28,13 +28,13 @@ eth_portfolio/_ledgers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
|
|
|
28
28
|
eth_portfolio/_ledgers/address.py,sha256=ZI4lVsxtXoffDHFBm0pUrSKU42KleBKThNdDHm1Nqtg,33823
|
|
29
29
|
eth_portfolio/_ledgers/portfolio.py,sha256=rAr5S1tksgLPUOK1J1FbIWgvTQNzTqrRp8oukiP2BTo,13427
|
|
30
30
|
eth_portfolio/_loaders/__init__.py,sha256=YrBeRuA48cN2Bg2R2nXiNt1CsUIG_7N6ENIpY6aISPo,1735
|
|
31
|
-
eth_portfolio/_loaders/_nonce.cp310-win32.pyd,sha256=
|
|
31
|
+
eth_portfolio/_loaders/_nonce.cp310-win32.pyd,sha256=zXhG2sCcxvofgVBaVxnUoV7TTkN91C2sDVAxDnzX7_o,9216
|
|
32
32
|
eth_portfolio/_loaders/_nonce.py,sha256=bA-5fZG8ALuADgQGrnoxt6p6j7QEwI6vIGnZRF1Zx7M,6481
|
|
33
|
-
eth_portfolio/_loaders/balances.cp310-win32.pyd,sha256=
|
|
33
|
+
eth_portfolio/_loaders/balances.cp310-win32.pyd,sha256=xpwBJxcgVjUSMzuMgIscmBpwfgoMRWHOYdy9zxzwCRo,9216
|
|
34
34
|
eth_portfolio/_loaders/balances.py,sha256=_v-x1M3lzDHPt8svHmCcpxZKw0BaGHfZimhkwgphY8A,3226
|
|
35
35
|
eth_portfolio/_loaders/token_transfer.py,sha256=58NoMc28CRSjuxP-_kNmXL7jS1oEFZayTZ9VAKQcVow,8741
|
|
36
36
|
eth_portfolio/_loaders/transaction.py,sha256=WXsiNahcb5jNbXCX2-ceao3Cybfi-7_th8bnw9elmP0,9386
|
|
37
|
-
eth_portfolio/_loaders/utils.cp310-win32.pyd,sha256=
|
|
37
|
+
eth_portfolio/_loaders/utils.cp310-win32.pyd,sha256=EA8INRsldvkUfZEb7sQGyeKSIWIAOvGHSOBcqmAqToY,9216
|
|
38
38
|
eth_portfolio/_loaders/utils.py,sha256=_nhPmGq_h_y_JPU9vXvhzqoKAWtgLRhYy_PdJXbyUdw,2326
|
|
39
39
|
eth_portfolio/_ydb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
40
|
eth_portfolio/_ydb/token_transfers.py,sha256=HUTeWShcQD4IzocTHmBOreml0jbVttLcaed1fNiJ2qg,5297
|
|
@@ -58,26 +58,26 @@ eth_portfolio/typing/balance/single.py,sha256=NmtWXqCWMIkaoyvfL67Rh0wWurLf55fVaD
|
|
|
58
58
|
eth_portfolio_scripts/__init__.py,sha256=DIBnQmjmhmNL1lO9Lq4QptrZmC7u6_N3p9zRjcZ9vbY,281
|
|
59
59
|
eth_portfolio_scripts/_args.py,sha256=M33vPkja62XEJeCZAqacNSBCqbzse07wepwyBOtkvVo,682
|
|
60
60
|
eth_portfolio_scripts/_logging.py,sha256=EgW8ozQZLAgt_cUgqe5BYZLMVQwB6X-0gq0T-BvqlTY,369
|
|
61
|
-
eth_portfolio_scripts/_portfolio.py,sha256=
|
|
61
|
+
eth_portfolio_scripts/_portfolio.py,sha256=f2o1fNJLsB0Y1Qo-GCIeLaKa3t8H1LwdDjstVX6ByzE,7116
|
|
62
62
|
eth_portfolio_scripts/_utils.py,sha256=7maEWyS5i_Kp7iVaa5puf2ZyefqHDsUOqTDLz-UwIQY,2630
|
|
63
|
-
eth_portfolio_scripts/balances.cp310-win32.pyd,sha256=
|
|
64
|
-
eth_portfolio_scripts/balances.py,sha256=
|
|
65
|
-
eth_portfolio_scripts/main.py,sha256=
|
|
63
|
+
eth_portfolio_scripts/balances.cp310-win32.pyd,sha256=5t7vBi3JxQHD_gl7DzAJyZf_mhkaIqaZRtvZnNHfkyQ,9216
|
|
64
|
+
eth_portfolio_scripts/balances.py,sha256=ApYTA5caujTRAIDxHnYmHk03CqFC9nNpTzJIDWLws8E,1640
|
|
65
|
+
eth_portfolio_scripts/main.py,sha256=upkr0Vc758qti___5kyDsE0zcfwiZju4xvAQsKsu9iw,3804
|
|
66
66
|
eth_portfolio_scripts/py.typed,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
67
|
-
eth_portfolio_scripts/docker/__init__.cp310-win32.pyd,sha256=
|
|
67
|
+
eth_portfolio_scripts/docker/__init__.cp310-win32.pyd,sha256=UOP_TfZV1PCNVAXb87pJmogYTPqtWNYyvt-e_suJi6I,9216
|
|
68
68
|
eth_portfolio_scripts/docker/__init__.py,sha256=R27uZPLUEK2--fb9IrxrDUk6R5_IVFJSv7s_ia7p5Xk,409
|
|
69
|
-
eth_portfolio_scripts/docker/check.cp310-win32.pyd,sha256=
|
|
69
|
+
eth_portfolio_scripts/docker/check.cp310-win32.pyd,sha256=U-jZ2M1Ah0hgbzwDwEjHOgkCvywyU3CkTlSIT_Wzxso,9216
|
|
70
70
|
eth_portfolio_scripts/docker/check.py,sha256=JFxUxGRSz20EgjKqCLBkCqR4N1ihzO_3ykU3jPzp_UU,1801
|
|
71
71
|
eth_portfolio_scripts/docker/docker-compose.yaml,sha256=P2ZJAQBXRQX-nZ5CoNm__R2KihsA0njoTwJcIWn1_s0,1870
|
|
72
|
-
eth_portfolio_scripts/docker/docker_compose.cp310-win32.pyd,sha256
|
|
72
|
+
eth_portfolio_scripts/docker/docker_compose.cp310-win32.pyd,sha256=AZMMGDUBC56v2ZUBjhomSHYkkPPj7yWjwvMapZgY5Nc,9216
|
|
73
73
|
eth_portfolio_scripts/docker/docker_compose.py,sha256=tewgCWZP6g9sVFHbQnGC1au-bTnvuvXMZgTKKgpmeOc,2304
|
|
74
74
|
eth_portfolio_scripts/docker/.grafana/dashboards/dashboards.yaml,sha256=wktTI-OAdF_khhbciZFo4Gt2V9bUjbe7GLqwdzTKf0U,212
|
|
75
75
|
eth_portfolio_scripts/docker/.grafana/dashboards/Portfolio/Balances.json,sha256=XGMV8e4tDak53e9bmymwAB4uqZmAIcU5JlRT3OiwTeU,70750
|
|
76
76
|
eth_portfolio_scripts/docker/.grafana/datasources/datasources.yml,sha256=8PPH_QDhfbRRh3IidskW46rifJejloa1a9I1KCw2FTk,199
|
|
77
77
|
eth_portfolio_scripts/victoria/__init__.py,sha256=R0VvKiAC0e57zZNihcCptVkFO5CBHIbp2trFYuyY01M,2038
|
|
78
78
|
eth_portfolio_scripts/victoria/types.py,sha256=KNq8aIiNXeiDnCKL7xycmouo0YeKI-sbQkIcTymcSYk,745
|
|
79
|
-
eth_portfolio_temp-0.2.
|
|
80
|
-
eth_portfolio_temp-0.2.
|
|
81
|
-
eth_portfolio_temp-0.2.
|
|
82
|
-
eth_portfolio_temp-0.2.
|
|
83
|
-
eth_portfolio_temp-0.2.
|
|
79
|
+
eth_portfolio_temp-0.2.2.dev0.dist-info/METADATA,sha256=nszEgqdcwJnICtDLL2x8XAJNfNj4Eo3_b_-EqWwJcfI,804
|
|
80
|
+
eth_portfolio_temp-0.2.2.dev0.dist-info/WHEEL,sha256=GWZF0cboiU4MhsG0baPl8rrtCaXFSLW25384gp3vddM,97
|
|
81
|
+
eth_portfolio_temp-0.2.2.dev0.dist-info/entry_points.txt,sha256=yqoC6X3LU1NA_-oJ6mloEYEPNmS-0hPS9OtEwgIeDGU,66
|
|
82
|
+
eth_portfolio_temp-0.2.2.dev0.dist-info/top_level.txt,sha256=CmTLi8Lvs3RulV5ZNdziaDVvF_WRsgRpM17GSMECxrg,64
|
|
83
|
+
eth_portfolio_temp-0.2.2.dev0.dist-info/RECORD,,
|
|
File without changes
|
{eth_portfolio_temp-0.2.1.dev0.dist-info → eth_portfolio_temp-0.2.2.dev0.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{eth_portfolio_temp-0.2.1.dev0.dist-info → eth_portfolio_temp-0.2.2.dev0.dist-info}/top_level.txt
RENAMED
|
File without changes
|