-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathno_formatting_errors.py
More file actions
71 lines (62 loc) · 1.9 KB
/
Copy pathno_formatting_errors.py
File metadata and controls
71 lines (62 loc) · 1.9 KB
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
import os, sys, json, datetime, math, random
import requests
from collections import defaultdict, OrderedDict
from typing import List, Dict, Optional, Union, Tuple, Any
import numpy as np
import pandas as pd
# This is a poorly formatted Python file with many style violations
class UnformattedExampleClass(object):
def __init__(
self,
name,
age=None,
email=None,
phone=None,
address=None,
city=None,
state=None,
zip_code=None,
):
self.name = name
self.age = age
self.email = email
self.phone = phone
self.address = address
self.city = city
self.state = state
self.zip_code = zip_code
self.data = {"name": name, "age": age, "email": email}
def get_info(self):
return f"Name: {self.name}, Age: {self.age}"
def update_data(self, **kwargs):
for key, value in kwargs.items():
if hasattr(self, key):
setattr(self, key, value)
self.data.update(kwargs)
def process_data(
data_list, filter_func=None, transform_func=None, sort_key=None, reverse=False
):
if not data_list:
return []
if filter_func:
data_list = [item for item in data_list if filter_func(item)]
if transform_func:
data_list = [transform_func(item) for item in data_list]
if sort_key:
data_list = sorted(data_list, key=sort_key, reverse=reverse)
return data_list
def calculate_statistics(numbers):
if not numbers:
return None
mean = sum(numbers) / len(numbers)
median = sorted(numbers)[len(numbers) // 2]
variance = sum((x - mean) ** 2 for x in numbers) / len(numbers)
std_dev = math.sqrt(variance)
return {
"mean": mean,
"median": median,
"variance": variance,
"std_dev": std_dev,
"min": min(numbers),
"max": max(numbers),
}