1616from random_profile .enums .gender import Gender
1717from random_profile import utils
1818
19- VERSION = '2 .0.1 '
19+ VERSION = '3 .0.0 '
2020
2121lname_txt = os .path .join (utils .ASSETS_DIR , "lnames.txt" )
2222fname_male_txt = os .path .join (utils .ASSETS_DIR , "fnames_male.txt" )
4343
4444
4545class RandomProfile (object ):
46+ """ Random Profile Generator
47+
48+ Args:
49+ num (int, optional): Total No. of Name You Want To Print. Defaults to 1.
50+ gender(str, optional): default is None. if you want to generate define gender then pass
51+
52+ Methods:
53+ full_profiles: Generate Full Profile
54+ first_names: Generate First Name
55+ last_names: Generate Last Name
56+ full_names: Generate Full Name
57+ email: Generate Email
58+ phone_number: Generate Phone Number
59+ dob_age: Generate Date of Birth and Age
60+ height_weight: Generate Height and Weight
61+ address: Generate Address
62+ ip_address: Generate IP Address
63+ hair_color: Generate Hair Color
64+ blood_type: Generate Blood Type
65+ job_title: Generate Job Title
66+ """
4667 def __init__ (self , num : int = 1 , gender : Gender = None ):
47- """
48- num = Total No. of Name You Want To Print
49- default is 1
50- To Print More Than one Name Change value of num
51- """
5268 self .num = num
5369 self .gender = gender
5470
@@ -132,8 +148,9 @@ def generate_address(self, num: int = None) -> List[str]:
132148
133149 def first_names (self , num : int = None , gender : Gender = None ) -> list :
134150 num = self .num if num is None else num
135- if gender is None :
136- gender = self .gender
151+ gender = self .gender if gender is None else gender
152+
153+ # DRY CODE
137154 if gender is None :
138155 names = fname_female + fname_male
139156 elif gender .value == Gender .MALE .value :
@@ -148,17 +165,14 @@ def first_names(self, num: int = None, gender: Gender = None) -> list:
148165
149166 def last_names (self , num : int = None ) -> list :
150167 num = self .num if num is None else num
151- if num is None :
152- num = self .num
153168 if num == 1 or num is None :
154169 return random .choice (lname )
170+
155171 return random .choices (lname , k = num )
156172
157173 def full_names (self , num : int = None , gender : Gender = None ) -> list :
158174 num = self .num if num is None else num
159-
160- if gender is None :
161- gender = self .gender
175+ gender = self .gender if gender is None else gender
162176
163177 if gender is None :
164178 names = fname_female + fname_male
@@ -178,7 +192,6 @@ def full_profiles(self, num: int = None, gender: Gender = None) -> list:
178192 profile_list = []
179193
180194 for _ in range (num ):
181-
182195 # random gender for every profile in list
183196 this_gender = utils .generate_random_gender () if gender is None else gender
184197 first = random .choice (fname_male if this_gender .value == Gender .MALE .value else fname_female )
0 commit comments