kasraavand / SimpleRST

Automatically add RST frames to python codes for Impatient and lazy hackers.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Usage

The aim of SimpleRST is to convert manual Python code and documentations to a restructured text frame. It parses the code in order to extract the classes, function signatures and documentation from code, then place them into an RST-formatted frame. You can use a custom regex to extract the specific information from your documentation and put it in an RST document (which depends on your documentation format). Following is a sample documentation and relative regex with an rst formatted doc:

def delUser(self, user_ids, comment, del_connections, del_audit_logs, admin_name):
"""
    delete users with ids in user_ids
    user_ids(list of int): List of user ids
    comment(str): comment when deleting users
    del_connection(bool): tells if we should delete user(s)
    del_audit_logs(bool): tells if we should delete user(s)

    admin_name(str): username of admin that deleted the users

"""

Relative regex:

regex = re.compile(r'^\s*([^:]*)\(([^)]*)\):(.*)$',re.DOTALL)
# Extract the matchesd groups
match_obj = regex.match(part)
    if match_obj:
      name, types, describe = match_obj.group(1, 2, 3)

Output in RST format:

"""
.. py:attribute:: delUser(['self', 'user_ids', 'comment', 'del_connections', 'del_audit_logs', 'admin_name', 'remote_address'])

   delete users with ids in user_ids

   :param user_ids:  List of user ids
   :type user_ids: list of int
   :param comment:  comment when deleting users
   :type comment: str
   :param del_connection:  tells if we should delete user(s) connection logs too
   :type del_connection: bool
   :param del_audit_logs:  tells if we should delete user(s) audit logs too

   :type del_audit_logs: bool
   :param admin_name:  username of admin that deleted the users
   :type admin_name: str
   :rtype: list of string
"""

About

Automatically add RST frames to python codes for Impatient and lazy hackers.

License:GNU General Public License v3.0


Languages

Language:Python 100.0%