Documenting code with AI

AI-Assisted Coding for Developers

Francesca Donadoni

AI Curriculum Manager, DataCamp

AI-Powered docstring generation

81.png

AI-Assisted Coding for Developers

AI-Powered docstring generation

  • User prompt: Write a docstring for this function
   def sales_trend(self):
       ...        
       if increasing > decreasing:
           return "Increasing trend"
       else:
           return "Decreasing or stable trend"
  • Model's response:
     def sales_trend(self):
         """Analyze sales data to determine the overall trend"""
         [...]
    
AI-Assisted Coding for Developers

AI-Powered docstring generation

  • User prompt: Generate a docstring for this function that includes:

    • A simple explanation of what the function does.
    • A description of each parameter and its type.
    • A description of the return value and its type.
  • Model's response:

Here's a complete docstring you can use for your function:

def sales_trend(self):
    """
    Analyze the sales data to determine whether there is an increasing trend 
    or a decreasing/stable trend over time.
    [...]
    """
AI-Assisted Coding for Developers

AI-Powered docstring generation

Here's a complete docstring you can use for your function:

def sales_trend(self):
    """
    Analyze the sales data to determine whether there is an increasing trend 
    or a decreasing/stable trend over time.

    Parameters
    ----------
    self : object
        An object that contains an attribute `daily_sales` (list of int or float),
        which represents daily sales values in chronological order.
    [...]
    """
AI-Assisted Coding for Developers

Adapting to documentation styles

82.png

AI-Assisted Coding for Developers

Adapting to documentation styles

83.png

AI-Assisted Coding for Developers

Summarizing code into READMEs

84.png

AI-Assisted Coding for Developers

Summarizing code into READMEs

  • User prompt: Generate a README file in Markdown that explains the SalesAnalyzer class and its methods. Include a sample code snippet to help users analyze the sales trend over a random period.
  • Model's response:

Here's a polished README.md draft for your SalesAnalyzer class:

SalesAnalyzer

The SalesAnalyzer class provides a simple way to analyze daily sales data and detect whether the sales trend is generally increasing or decreasing/stable. This tool can be useful for businesses or individuals who want a quick, high-level overview of their sales performance over time.

AI-Assisted Coding for Developers

Commit messages from code diffs

85.png

AI-Assisted Coding for Developers

Commit messages from code diffs

  • User prompt: Write a meaningful commit message given this git diff:
(base) datacamp@test:~/datacamp/docstring-generation$ git diff
+
+        Raises:
+            ValueError: If daily_sales contains non-numeric values.
         """
-        return sum(self.daily_sales)
+        if not all(isinstance(sale, (int, float)) for sale in self.daily_sales):
+            raise ValueError("All sales figures must be numeric.")
+        return sum(sale for sale in self.daily_sales) 
AI-Assisted Coding for Developers

Automating release notes

86.png

AI-Assisted Coding for Developers

Other use cases

87.png

AI-Assisted Coding for Developers

Let's practice!

AI-Assisted Coding for Developers

Preparing Video For Download...