Skip to content

Commit 956cf77

Browse files
authored
chore: align argument name in set signer from account with ts interface (#147)
1 parent ef79632 commit 956cf77

File tree

9 files changed

+157
-27
lines changed

9 files changed

+157
-27
lines changed

docs/html/.buildinfo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Sphinx build info version 1
22
# This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
3-
config: 4f7050ca2baf67d0b4155492574876de
3+
config: ec069b93d02ecd85de7d7cee84c8e8ad
44
tags: 645f666f9bcd5a90fca523b33c5a78b7

docs/html/.buildinfo.bak

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Sphinx build info version 1
22
# This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
3-
config: d1acb0d0270d6bf9bfbb3d142ec2b085
3+
config: a5e8f79f249a3478231c88d6f5755ce4
44
tags: 645f666f9bcd5a90fca523b33c5a78b7

docs/html/_sources/autoapi/algokit_utils/accounts/account_manager/index.rst.txt

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -363,20 +363,36 @@ Module Contents
363363

364364

365365
.. py:method:: set_signer_from_account(account: algokit_utils.protocols.account.TransactionSignerAccountProtocol) -> typing_extensions.Self
366+
set_signer_from_account(signer: algokit_utils.protocols.account.TransactionSignerAccountProtocol) -> typing_extensions.Self
366367
367368
Tracks the given account for later signing.
368369

369370
Note: If you are generating accounts via the various methods on `AccountManager`
370371
(like `random`, `from_mnemonic`, `logic_sig`, etc.) then they automatically get tracked.
371372

372-
:param account: The account to register
373+
The method accepts either a positional argument or a keyword argument named 'account' or 'signer'.
374+
The 'signer' parameter is deprecated and will show a warning when used.
375+
376+
:param *args: Variable positional arguments. The first argument should be a TransactionSignerAccountProtocol.
377+
:param **kwargs: Variable keyword arguments. Can include 'account' or 'signer' (deprecated) as
378+
TransactionSignerAccountProtocol.
373379
:returns: The `AccountManager` instance for method chaining
380+
:raises ValueError: If no account or signer argument is provided
374381
375382
:example:
376383
>>> account_manager = AccountManager(client_manager)
377-
>>> account_manager.set_signer_from_account(SigningAccount(private_key=algosdk.account.generate_account()[0]))
378-
>>> account_manager.set_signer_from_account(LogicSigAccount(AlgosdkLogicSigAccount(program, args)))
379-
>>> account_manager.set_signer_from_account(MultiSigAccount(multisig_params, [account1, account2]))
384+
>>> # Using positional argument
385+
>>> account_manager.set_signer_from_account(
386+
... SigningAccount(private_key=algosdk.account.generate_account()[0])
387+
... )
388+
>>> # Using keyword argument 'account'
389+
>>> account_manager.set_signer_from_account(
390+
... account=LogicSigAccount(AlgosdkLogicSigAccount(program, args))
391+
... )
392+
>>> # Using deprecated keyword argument 'signer'
393+
>>> account_manager.set_signer_from_account(
394+
... signer=MultiSigAccount(multisig_params, [account1, account2])
395+
... )
380396

381397

382398

docs/html/autoapi/algokit_utils/accounts/account_manager/index.html

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -645,21 +645,43 @@ <h2>Module Contents<a class="headerlink" href="#module-contents" title="Link to
645645
<dl class="py method">
646646
<dt class="sig sig-object py" id="algokit_utils.accounts.account_manager.AccountManager.set_signer_from_account">
647647
<span class="sig-name descname"><span class="pre">set_signer_from_account</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">account</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="../../protocols/account/index.html#algokit_utils.protocols.account.TransactionSignerAccountProtocol" title="algokit_utils.protocols.account.TransactionSignerAccountProtocol"><span class="pre">algokit_utils.protocols.account.TransactionSignerAccountProtocol</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">typing_extensions.Self</span></span></span><a class="headerlink" href="#algokit_utils.accounts.account_manager.AccountManager.set_signer_from_account" title="Link to this definition"></a></dt>
648+
<dt class="sig sig-object py">
649+
<span class="sig-name descname"><span class="pre">set_signer_from_account</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">signer</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="../../protocols/account/index.html#algokit_utils.protocols.account.TransactionSignerAccountProtocol" title="algokit_utils.protocols.account.TransactionSignerAccountProtocol"><span class="pre">algokit_utils.protocols.account.TransactionSignerAccountProtocol</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">typing_extensions.Self</span></span></span></dt>
648650
<dd><p>Tracks the given account for later signing.</p>
649651
<p>Note: If you are generating accounts via the various methods on <cite>AccountManager</cite>
650652
(like <cite>random</cite>, <cite>from_mnemonic</cite>, <cite>logic_sig</cite>, etc.) then they automatically get tracked.</p>
653+
<p>The method accepts either a positional argument or a keyword argument named ‘account’ or ‘signer’.
654+
The ‘signer’ parameter is deprecated and will show a warning when used.</p>
651655
<dl class="field-list">
652656
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
653-
<dd class="field-odd"><p><strong>account</strong> – The account to register</p>
657+
<dd class="field-odd"><ul class="simple">
658+
<li><p><strong>*args</strong><p>Variable positional arguments. The first argument should be a TransactionSignerAccountProtocol.</p>
659+
</p></li>
660+
<li><p><strong>**kwargs</strong><p>Variable keyword arguments. Can include ‘account’ or ‘signer’ (deprecated) as
661+
TransactionSignerAccountProtocol.</p>
662+
</p></li>
663+
</ul>
654664
</dd>
655665
<dt class="field-even">Returns<span class="colon">:</span></dt>
656666
<dd class="field-even"><p>The <cite>AccountManager</cite> instance for method chaining</p>
657667
</dd>
658-
<dt class="field-odd">Example<span class="colon">:</span></dt>
659-
<dd class="field-odd"><div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">account_manager</span> <span class="o">=</span> <span class="n">AccountManager</span><span class="p">(</span><span class="n">client_manager</span><span class="p">)</span>
660-
<span class="gp">&gt;&gt;&gt; </span><span class="n">account_manager</span><span class="o">.</span><span class="n">set_signer_from_account</span><span class="p">(</span><span class="n">SigningAccount</span><span class="p">(</span><span class="n">private_key</span><span class="o">=</span><span class="n">algosdk</span><span class="o">.</span><span class="n">account</span><span class="o">.</span><span class="n">generate_account</span><span class="p">()[</span><span class="mi">0</span><span class="p">]))</span>
661-
<span class="gp">&gt;&gt;&gt; </span><span class="n">account_manager</span><span class="o">.</span><span class="n">set_signer_from_account</span><span class="p">(</span><span class="n">LogicSigAccount</span><span class="p">(</span><span class="n">AlgosdkLogicSigAccount</span><span class="p">(</span><span class="n">program</span><span class="p">,</span> <span class="n">args</span><span class="p">)))</span>
662-
<span class="gp">&gt;&gt;&gt; </span><span class="n">account_manager</span><span class="o">.</span><span class="n">set_signer_from_account</span><span class="p">(</span><span class="n">MultiSigAccount</span><span class="p">(</span><span class="n">multisig_params</span><span class="p">,</span> <span class="p">[</span><span class="n">account1</span><span class="p">,</span> <span class="n">account2</span><span class="p">]))</span>
668+
<dt class="field-odd">Raises<span class="colon">:</span></dt>
669+
<dd class="field-odd"><p><strong>ValueError</strong> – If no account or signer argument is provided</p>
670+
</dd>
671+
<dt class="field-even">Example<span class="colon">:</span></dt>
672+
<dd class="field-even"><div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">account_manager</span> <span class="o">=</span> <span class="n">AccountManager</span><span class="p">(</span><span class="n">client_manager</span><span class="p">)</span>
673+
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># Using positional argument</span>
674+
<span class="gp">&gt;&gt;&gt; </span><span class="n">account_manager</span><span class="o">.</span><span class="n">set_signer_from_account</span><span class="p">(</span>
675+
<span class="gp">... </span> <span class="n">SigningAccount</span><span class="p">(</span><span class="n">private_key</span><span class="o">=</span><span class="n">algosdk</span><span class="o">.</span><span class="n">account</span><span class="o">.</span><span class="n">generate_account</span><span class="p">()[</span><span class="mi">0</span><span class="p">])</span>
676+
<span class="gp">... </span><span class="p">)</span>
677+
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># Using keyword argument &#39;account&#39;</span>
678+
<span class="gp">&gt;&gt;&gt; </span><span class="n">account_manager</span><span class="o">.</span><span class="n">set_signer_from_account</span><span class="p">(</span>
679+
<span class="gp">... </span> <span class="n">account</span><span class="o">=</span><span class="n">LogicSigAccount</span><span class="p">(</span><span class="n">AlgosdkLogicSigAccount</span><span class="p">(</span><span class="n">program</span><span class="p">,</span> <span class="n">args</span><span class="p">))</span>
680+
<span class="gp">... </span><span class="p">)</span>
681+
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># Using deprecated keyword argument &#39;signer&#39;</span>
682+
<span class="gp">&gt;&gt;&gt; </span><span class="n">account_manager</span><span class="o">.</span><span class="n">set_signer_from_account</span><span class="p">(</span>
683+
<span class="gp">... </span> <span class="n">signer</span><span class="o">=</span><span class="n">MultiSigAccount</span><span class="p">(</span><span class="n">multisig_params</span><span class="p">,</span> <span class="p">[</span><span class="n">account1</span><span class="p">,</span> <span class="n">account2</span><span class="p">])</span>
684+
<span class="gp">... </span><span class="p">)</span>
663685
</pre></div>
664686
</div>
665687
</dd>

docs/html/searchindex.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/markdown/autoapi/algokit_utils/accounts/account_manager/index.md

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -220,21 +220,43 @@ Merges the given AccountManager into this one.
220220

221221
#### set_signer_from_account(account: [algokit_utils.protocols.account.TransactionSignerAccountProtocol](../../protocols/account/index.md#algokit_utils.protocols.account.TransactionSignerAccountProtocol)) → typing_extensions.Self
222222

223+
#### set_signer_from_account(signer: [algokit_utils.protocols.account.TransactionSignerAccountProtocol](../../protocols/account/index.md#algokit_utils.protocols.account.TransactionSignerAccountProtocol)) → typing_extensions.Self
224+
223225
Tracks the given account for later signing.
224226

225227
Note: If you are generating accounts via the various methods on AccountManager
226228
(like random, from_mnemonic, logic_sig, etc.) then they automatically get tracked.
227229

230+
The method accepts either a positional argument or a keyword argument named ‘account’ or ‘signer’.
231+
The ‘signer’ parameter is deprecated and will show a warning when used.
232+
228233
* **Parameters:**
229-
**account** – The account to register
234+
* **\*args**
235+
236+
Variable positional arguments. The first argument should be a TransactionSignerAccountProtocol.
237+
* **\*\*kwargs**
238+
239+
Variable keyword arguments. Can include ‘account’ or ‘signer’ (deprecated) as
240+
TransactionSignerAccountProtocol.
230241
* **Returns:**
231242
The AccountManager instance for method chaining
243+
* **Raises:**
244+
**ValueError** – If no account or signer argument is provided
232245
* **Example:**
233246
```pycon
234247
>>> account_manager = AccountManager(client_manager)
235-
>>> account_manager.set_signer_from_account(SigningAccount(private_key=algosdk.account.generate_account()[0]))
236-
>>> account_manager.set_signer_from_account(LogicSigAccount(AlgosdkLogicSigAccount(program, args)))
237-
>>> account_manager.set_signer_from_account(MultiSigAccount(multisig_params, [account1, account2]))
248+
>>> # Using positional argument
249+
>>> account_manager.set_signer_from_account(
250+
... SigningAccount(private_key=algosdk.account.generate_account()[0])
251+
... )
252+
>>> # Using keyword argument 'account'
253+
>>> account_manager.set_signer_from_account(
254+
... account=LogicSigAccount(AlgosdkLogicSigAccount(program, args))
255+
... )
256+
>>> # Using deprecated keyword argument 'signer'
257+
>>> account_manager.set_signer_from_account(
258+
... signer=MultiSigAccount(multisig_params, [account1, account2])
259+
... )
238260
```
239261

240262
#### get_signer(sender: str | [algokit_utils.protocols.account.TransactionSignerAccountProtocol](../../protocols/account/index.md#algokit_utils.protocols.account.TransactionSignerAccountProtocol)) → algosdk.atomic_transaction_composer.TransactionSigner

poetry.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/algokit_utils/accounts/account_manager.py

Lines changed: 75 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import os
22
from collections.abc import Callable
33
from dataclasses import dataclass
4-
from typing import Any
4+
from typing import Any, overload
55

66
import algosdk
77
from algosdk import mnemonic
88
from algosdk.atomic_transaction_composer import TransactionSigner
99
from algosdk.mnemonic import to_private_key
1010
from algosdk.transaction import SuggestedParams
11-
from typing_extensions import Self
11+
from typing_extensions import Self, deprecated
1212

1313
from algokit_utils.accounts.kmd_account_manager import KmdAccountManager
1414
from algokit_utils.clients.client_manager import ClientManager
@@ -215,6 +215,7 @@ def set_signers(self, *, another_account_manager: "AccountManager", overwrite_ex
215215
)
216216
return self
217217

218+
@overload
218219
def set_signer_from_account(self, account: TransactionSignerAccountProtocol) -> Self:
219220
"""
220221
Tracks the given account for later signing.
@@ -227,11 +228,80 @@ def set_signer_from_account(self, account: TransactionSignerAccountProtocol) ->
227228
228229
:example:
229230
>>> account_manager = AccountManager(client_manager)
230-
>>> account_manager.set_signer_from_account(SigningAccount(private_key=algosdk.account.generate_account()[0]))
231+
>>> account_manager.set_signer_from_account(
232+
... SigningAccount(private_key=algosdk.account.generate_account()[0])
233+
... )
231234
>>> account_manager.set_signer_from_account(LogicSigAccount(AlgosdkLogicSigAccount(program, args)))
232235
>>> account_manager.set_signer_from_account(MultiSigAccount(multisig_params, [account1, account2]))
233-
""" # noqa: E501
234-
self._accounts[account.address] = account
236+
"""
237+
238+
@overload
239+
@deprecated("Use set_signer_from_account(account) instead of set_signer_from_account(signer)")
240+
def set_signer_from_account(self, signer: TransactionSignerAccountProtocol) -> Self:
241+
"""
242+
Tracks the given account for later signing.
243+
244+
Note: If you are generating accounts via the various methods on `AccountManager`
245+
(like `random`, `from_mnemonic`, `logic_sig`, etc.) then they automatically get tracked.
246+
247+
:param signer: The account to register (deprecated, use account parameter instead)
248+
:returns: The `AccountManager` instance for method chaining
249+
250+
:example:
251+
>>> account_manager = AccountManager(client_manager)
252+
>>> account_manager.set_signer_from_account(
253+
... SigningAccount(private_key=algosdk.account.generate_account()[0])
254+
... )
255+
>>> account_manager.set_signer_from_account(LogicSigAccount(AlgosdkLogicSigAccount(program, args)))
256+
>>> account_manager.set_signer_from_account(MultiSigAccount(multisig_params, [account1, account2]))
257+
"""
258+
259+
def set_signer_from_account(
260+
self,
261+
*args: TransactionSignerAccountProtocol,
262+
**kwargs: TransactionSignerAccountProtocol,
263+
) -> Self:
264+
"""
265+
Tracks the given account for later signing.
266+
267+
Note: If you are generating accounts via the various methods on `AccountManager`
268+
(like `random`, `from_mnemonic`, `logic_sig`, etc.) then they automatically get tracked.
269+
270+
The method accepts either a positional argument or a keyword argument named 'account' or 'signer'.
271+
The 'signer' parameter is deprecated and will show a warning when used.
272+
273+
:param *args: Variable positional arguments. The first argument should be a TransactionSignerAccountProtocol.
274+
:param **kwargs: Variable keyword arguments. Can include 'account' or 'signer' (deprecated) as
275+
TransactionSignerAccountProtocol.
276+
:returns: The `AccountManager` instance for method chaining
277+
:raises ValueError: If no account or signer argument is provided
278+
279+
:example:
280+
>>> account_manager = AccountManager(client_manager)
281+
>>> # Using positional argument
282+
>>> account_manager.set_signer_from_account(
283+
... SigningAccount(private_key=algosdk.account.generate_account()[0])
284+
... )
285+
>>> # Using keyword argument 'account'
286+
>>> account_manager.set_signer_from_account(
287+
... account=LogicSigAccount(AlgosdkLogicSigAccount(program, args))
288+
... )
289+
>>> # Using deprecated keyword argument 'signer'
290+
>>> account_manager.set_signer_from_account(
291+
... signer=MultiSigAccount(multisig_params, [account1, account2])
292+
... )
293+
"""
294+
# Extract the account from either positional args or keyword args
295+
if args:
296+
account_obj = args[0]
297+
elif "account" in kwargs:
298+
account_obj = kwargs["account"]
299+
elif "signer" in kwargs:
300+
account_obj = kwargs["signer"]
301+
else:
302+
raise ValueError("Missing required argument: either 'account' or 'signer'")
303+
304+
self._accounts[account_obj.address] = account_obj
235305
return self
236306

237307
def get_signer(self, sender: str | TransactionSignerAccountProtocol) -> TransactionSigner:

src/algokit_utils/clients/dispenser_api_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,8 @@ def _process_dispenser_request(
144144
@overload
145145
def fund(self, address: str, amount: int) -> DispenserFundResponse: ...
146146

147-
@deprecated("Asset ID parameter is deprecated. Can now use `fund(address, amount)` instead.")
148147
@overload
148+
@deprecated("Asset ID parameter is deprecated. Can now use `fund(address, amount)` instead.")
149149
def fund(self, address: str, amount: int, asset_id: int | None = None) -> DispenserFundResponse: ...
150150

151151
def fund(self, address: str, amount: int, asset_id: int | None = None) -> DispenserFundResponse: # noqa: ARG002

0 commit comments

Comments
 (0)