dadadel / pyment

Format and convert Python docstrings and generates patches
GNU General Public License v3.0
905 stars 62 forks source link

Add support for async functions? #94

Closed Rahuum closed 3 years ago

Rahuum commented 3 years ago

Hey there!

Noticed that pyment doesn't seem to recognize async functions as functions- it doesn't generate anything for them at all.

Figured I should toss it up on the issue tracker.

dadadel commented 3 years ago

Hi @Rahuum Can you provide an example of function that doesn't work ? The current version of Pyment supports async functions. See issue #88.

For instance:

async def func(param):
    pass

Will produce:

--- a/test.py
+++ b/test.py
@@ -1,3 +1,8 @@
 async def func(param):
+    """
+
+    :param param: 
+
+    """
     pass
Rahuum commented 3 years ago

Sure.

(env) [Rahuum@#####-main:src]$ cat test.py                      (03-06 22:51)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import asyncio
import opcodes

async def ping_runner(self):
    await self.send(*opcodes.CMSG_PING(self))
    await asyncio.sleep(30)

(env) [Rahuum@#####-main:src]$ pyment test.py                   (03-06 22:51)
(env) [Rahuum@#####-main:src]$ cat test.py.patch                (03-06 22:51)
# Patch generated by Pyment v0.3.3

(env) [Rahuum@#####-main:src]$                                  (03-06 22:51)

Pulled an example out into a minimal test file, but pretty much every async function (all of them? haven't checked, there's thousands) gets missed.

dadadel commented 3 years ago

@Rahuum I think you didn't use the last version of Pyment. After a git pull and activating a virtualenv, please run python setup.py install before using Pyment.

Using your example produces:

--- a/issue94.py
+++ b/issue94.py
@@ -4,5 +4,6 @@
 import opcodes

 async def ping_runner(self):
+    """ """
     await self.send(*opcodes.CMSG_PING(self))
     await asyncio.sleep(30)
Rahuum commented 3 years ago

Has this been pushed to pip? As you can see from the generated patch, I'm on v0.3.3, which seems to be the latest release.

dadadel commented 3 years ago

No, I didn't! My bad, actually, I re-released a v0.3.3 on github not on pip but it was a mistake as it is a different version! I think I will reversion it to v0.3.4. However, I am currently working on a v0.4.0 that will manage also the type hints. It will be this one that I will release on pip. I hope soon! Work is in progress.

dadadel commented 3 years ago

@Rahuum I close this issue as it is fixed in current master version. You can track for next Pypi release.