dropbox / pyannotate

Auto-generate PEP-484 annotations
Apache License 2.0
1.42k stars 59 forks source link

[propose] Should we have event caller (f_back) in type_comments? #115

Open ghost opened 3 years ago

ghost commented 3 years ago

If you have multiple functions calling one function, it will look like this.

  {
    "path": "~~~",
    "line": 1,
    "func_name": "called_func",
    "type_comments": [
        "(int) -> int"
        "(int) -> str"
    ],
    "samples": 2
  },

I would like to know which function calls the called_func in this case.

  {
    "path": "~~~",
    "line": 1,
    "func_name": "called_func",
    "type_comments": [
        {
            "calling1_func": "(int) -> int",
        }
        {
            "calling2_func": "(int) -> str",
        }
    ],
    "samples": 2
  },

... because there are chances to have 10 or more samples (sadly).

remarks

This must change the code below (and more. such as FunctionKey), but it maybe gets slower.

https://github.com/dropbox/pyannotate/blob/1e7ddf09fdbc6fa37b2cf261f36a5563a0fe772a/pyannotate_runtime/collect_types.py#L446-L448

So I want to know if this proposal is ideal or not. If ideal I think I can contribute when I have a time (maybe late of this month)