File size: 4,104 Bytes
fd625c0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | """
Sample code files used to demo the Code Review NLP Assistant.
These range from poor quality to good quality Python code.
"""
# ββ Sample 1: Poor quality code βββββββββββββββββββββββββββββββββββββββββββ
POOR_CODE = '''\
import os
import sys
x = 10
y = 20
z = 30
def f(a,b,c):
result = 0
for i in range(0,1000):
if a > 10:
if b > 20:
if c > 30:
result = a*b*c+x+y+z
if result > 9999:
result = 9999
return result
def g(lst):
try:
for item in lst:
if item > 0:
print(item * 2 + 100)
except:
pass
class D:
def __init__(self,n,v):
self.n = n
self.v = v
def upd(self,new_v):
self.v = new_v
return self.v
'''
# ββ Sample 2: Medium quality code ββββββββββββββββββββββββββββββββββββββββ
MEDIUM_CODE = '''\
import requests
BASE_URL = "https://api.example.com"
def get_user(user_id):
# Fetch user from API
response = requests.get(f"{BASE_URL}/users/{user_id}")
if response.status_code == 200:
return response.json()
return None
def create_user(name, email, age):
data = {
"name": name,
"email": email,
"age": age
}
response = requests.post(f"{BASE_URL}/users", json=data)
if response.status_code == 201:
return response.json()["id"]
else:
print(f"Error creating user: {response.status_code}")
return None
def update_user(user_id, **kwargs):
response = requests.put(f"{BASE_URL}/users/{user_id}", json=kwargs)
return response.status_code == 200
def delete_user(user_id):
response = requests.delete(f"{BASE_URL}/users/{user_id}")
return response.status_code == 204
'''
# ββ Sample 3: Good quality code βββββββββββββββββββββββββββββββββββββββββββ
GOOD_CODE = '''\
"""
User authentication module for the application.
Provides secure password hashing, token generation,
and session validation utilities.
"""
import hashlib
import secrets
from typing import Optional
MAX_TOKEN_LENGTH: int = 64
HASH_ITERATIONS: int = 100_000
def hash_password(password: str, salt: Optional[str] = None) -> tuple[str, str]:
"""
Hash a plaintext password using PBKDF2-HMAC-SHA256.
Parameters
----------
password : str
The plaintext password to hash.
salt : str, optional
A hex salt string. Generated fresh if not provided.
Returns
-------
tuple[str, str]
A (hashed_password, salt) pair, both as hex strings.
"""
if salt is None:
salt = secrets.token_hex(16)
hashed = hashlib.pbkdf2_hmac(
"sha256",
password.encode("utf-8"),
salt.encode("utf-8"),
HASH_ITERATIONS,
)
return hashed.hex(), salt
def generate_session_token(length: int = MAX_TOKEN_LENGTH) -> str:
"""Generate a cryptographically secure session token."""
return secrets.token_urlsafe(length)
def validate_password_strength(password: str) -> tuple[bool, list[str]]:
"""
Check whether a password meets the security policy.
Returns a (is_valid, list_of_failures) tuple.
"""
failures: list[str] = []
if len(password) < 8:
failures.append("Password must be at least 8 characters")
if not any(c.isupper() for c in password):
failures.append("Must contain at least one uppercase letter")
if not any(c.isdigit() for c in password):
failures.append("Must contain at least one digit")
if not any(c in "!@#$%^&*()" for c in password):
failures.append("Must contain at least one special character")
return len(failures) == 0, failures
'''
SAMPLES = {
"Poor quality (grade F/D)": POOR_CODE,
"Medium quality (grade C)": MEDIUM_CODE,
"Good quality (grade A)": GOOD_CODE,
} |