Learn Regular Expressions by Building a Password Generator - Step 66

my code is not working, i even tried writing it like the example given in the instructions

Your code so far

import re
import secrets
import string


def generate_password(length, nums, special_chars, uppercase, lowercase):
   
    # Define the possible characters for the password
    letters=string.ascii_letters
    digits=string.digits
    symbols=string.punctuation

    # Combine all characters
    all_characters=letters + digits + symbols

    while True:
        password=''
        # Generate password
        for _ in range(length):
            password += secrets.choice(all_characters)
        
        constraints=[
            (nums, r'\d'),
            (special_chars, fr'[{symbols}]'),
            (uppercase, r'[A-Z]'),
            (lowercase, r'[a-z]')
        ]

        # Check constraints        
        if all(
            constraint <= len(re.findall(pattern, password))
            for constraint, pattern in constraints
        ):
            break
    
    return password
    

# User Editable Region

new_password=generate_password(length, nums, special_chars, uppercase, lowercase)
print(new_password)
spam(length=8, nums=1, special_chars=1, uppercase=1, lowercase=1)#8

# User Editable Region

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36

Challenge Information:

Learn Regular Expressions by Building a Password Generator - Step 66

Here is the original function call:

new_password = generate_password(8, 1, 1, 1, 1)

Modify that line.

Don’t call the fucntion spam that’s just an example, it does not exist in your code. Call the generate_password function that you’ve made, just give the arguments by name, as you have done.