Learn Regular Expressions by Building a Password Generator - Step 61

Tell us what’s happening:

if all is not performing good why ? I followed the instructions of this step

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'),
            (lowercase, r'[a-z]'),
            (uppercase, r'[A-Z]'),            
            (special_chars, fr'[{symbols}]')            
        ]

        # Check constraints
        count = 0

# User Editable Region

        if all(constraint <= len(re.findall(pattern, password)) for constraint, pattern in constraints):
            count += 1

            
        if count == 4:

# User Editable Region

            break

    return password

# new_password = generate_password(8)
# print(new_password)

Your browser information:

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

Challenge Information:

Learn Regular Expressions by Building a Password Generator - Step 61

For the if condition, use a call to the all() function and pass an empty list as the argument to the function call.

you need to pass an empty list to all().

Also, you didn’t remove what the instructions ask you to remove.

now I am using this

if all(len(re.findall(pattern, password)) >= constraint for constraint, pattern in constraints):
break

still not working

It’s not working because you need to pass an empty list to all().

Thanks for reply
It is done