Implements `_.method()`
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- 機能追加
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- python
調査の方向性
Issue に示されている Callable.getattr の実装から始め、提案されている中間 Attr クラスと比較します。.method() と、1つの引数を受け取るメソッドについて意図された動作を確認し、その結果得られる API が属性アクセスとメソッド呼び出しの両方を曖昧さなく処理できることを確認します。
索引モデルが issue の本文から書いたものです。
説明
I'm opening this issue to discuss the possible ways to implement _.method()
Currently, we have this implementation:
class _Callable(object):
def __getattr__(
self,
key: str,
) -> Callable[[_LambdaDynamicProtocol[T1]], T1]:
return operator.attrgetter(key)
The problem here is that we return the operator directly:
>>> from lambdas import _
>>> _.method
operator.attrgetter('method')
>>> _.method()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: attrgetter expected 1 arguments, got 0
My idea is to create an intermediated class like _MathExpression:
class Attr: # Just ignore the name for now
def __init__(self, attr: str) -> None:
self._attrgetter = operator.attrgetter(attr)
def __call__(self, *args, **kwargs) -> Any:
if len(args) == 1:
return self._attrgetter(args[0])
return lambda obj: self._attrgetter(obj)(*args, **kwargs)
This implementation has a limitation, they won't work correctly if we try to call a method with one argument. This is hard because we don't know when the attribute is callable!
- 主要言語
- Python
- スター
- 286
- フォーク
- 6
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
dry-python/lambdas のほかの issue
-
Python > 3.11オープン
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
dry-python/lambdas#196 ·
-
Bug in the docsオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 35/100
dry-python/lambdas#176 · コメント 9 件 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 38/100
dry-python/lambdas#116 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
dry-python/lambdas#112 · コメント 1 件 ·
-
enhancement good first issue hacktoberfest
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
dry-python/lambdas#4 ·
dry-python/lambdas の issue をすべて見る
似ている issue
-
[Bug] @deck.gl/arcgis dist import resolves to unpublished @deck.gl/core source path (9.3.11, 9.4.0)オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
workflow: a tick's dispatch counts as 'only this step', and no review self-grants a round unattendedオープンworkflow
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
kristofdegrave/homeassistant-smart-charging#1505 ·
メンテナーはふだん 1 日以内に返信
-
metadata submission
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
canonical/content-cache-operator#163 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
[submission]オープンsubmission
難易度 1/5 1時間未満 初心者へのやさしさ 65/100
leanprover/lean-eval-submissions#1852 ·
メンテナーはふだん 1 日以内に返信