How to compare two methods?
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- javascript, python
- Domain
- compilers
Research direction
No source file or test is named. Start by reproducing the provided ClassA callback-comparison example and inspect the generated JavaScript shown in the issue. Done means determining whether the differing method identity is expected or a compiler bug, then establishing a concrete workaround or regression coverage.
Written by the indexing model from the issue text.
Description
Hi.
I want to check whether a given callback is a specific method in a class. I found that comparing two methods failed. Following is the test code:
class ClassA:
def proc(self, callback=None):
if callback==self.method1:
print('callback==self.method1, callback=', callback)
else:
print('callback!=self.method1')
print('callback.name=', callback.name)
print('callback.__name__=', callback.__name__)
print('callback.__qualname__=', callback.__qualname__)
print('callback=', callback)
print('self.method1=', self.method1)
if self.method1==self.method1:
print('self.method1==self.method1')
else: print('self.method1!=self.method1')
def method1(self):
pass
def main():
a1= ClassA()
a1.proc(a1.method1)
if __name__ == '__main__':
main()
output:
callback!=self.method1
callback.name= None
callback.__name__= None
callback.__qualname__= None
callback= function () {
var args = [] .slice.apply (arguments);
return func.apply (null, [self] .concat (args));
}
self.method1= function () {
var args = [] .slice.apply (arguments);
return func.apply (null, [self] .concat (args));
}
self.method1!=self.method1
What I was surprised was the last line in the output, self.method1!=self.method1, which was a self comparison, but failed. (Is it a bug?)
How can I know a given callback is equal to a specific method? I tried to find a workaround. But as the output above, information about the method (name, _ _ name _ _, and _ _ qualname _ _) is not available. Any idea or workaround is welcome if you have any.
Thanks.
- Dominant language
- Python
- Stars
- 2.9k
- Forks
- 218
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from TranscryptOrg/Transcrypt
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
TranscryptOrg/Transcrypt#913 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
TranscryptOrg/Transcrypt#911 · 2 comments ·
-
IS: bug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
TranscryptOrg/Transcrypt#908 ·
-
SUB: documentation
Difficulty 1/5 Under an hour Newbie friendliness 62/100
TranscryptOrg/Transcrypt#656 · 7 comments ·
-
Difficulty 3/5 1-2 days Newbie friendliness 76/100
TranscryptOrg/Transcrypt#914 ·
All issues in TranscryptOrg/Transcrypt
Similar issues
-
area/auth bug comp/agent P3 platform/discord type/security
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
NousResearch/hermes-agent#117848 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
bancolombia/sentinel#23 ·
-
test md OpenCI
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·
-
bug client
Difficulty 2/5 1-3 hours Newbie friendliness 88/100