|
| 1 | +# Avoid this: |
| 2 | +# import csv |
| 3 | + |
| 4 | +# def process_users(users, min_age, filename, send_email): |
| 5 | +# adults = [] |
| 6 | +# for user in users: |
| 7 | +# if user["age"] >= min_age: |
| 8 | +# adults.append(user) |
| 9 | + |
| 10 | +# with open(filename, mode="w", newline="", encoding="utf-8") as csv_file: |
| 11 | +# writer = csv.writer(csv_file) |
| 12 | +# writer.writerow(["name", "age"]) |
| 13 | +# for user in adults: |
| 14 | +# writer.writerow([user["name"], user["age"]]) |
| 15 | + |
| 16 | +# if send_email: |
| 17 | +# # Emailing logic here... |
| 18 | + |
| 19 | +# return adults, filename |
| 20 | + |
| 21 | +# Favor this: |
| 22 | +import csv |
| 23 | + |
| 24 | + |
| 25 | +def filter_adult_users(users, *, min_age=18): |
| 26 | + """Return users whose age is at least min_age.""" |
| 27 | + return [user for user in users if user["age"] >= min_age] |
| 28 | + |
| 29 | + |
| 30 | +def save_users_csv(users, filename): |
| 31 | + """Save users to a CSV file.""" |
| 32 | + with open(filename, mode="w", newline="", encoding="utf-8") as csv_file: |
| 33 | + writer = csv.writer(csv_file) |
| 34 | + writer.writerow(["name", "age"]) |
| 35 | + for user in users: |
| 36 | + writer.writerow([user["name"], user["age"]]) |
| 37 | + |
| 38 | + |
| 39 | +def send_users_report(filename): |
| 40 | + """Send the report.""" |
| 41 | + # Emailing logic here... |
0 commit comments