Skip to content

Commit bb2dd9a

Browse files
refacoting code and changelog update
1 parent 8126dee commit bb2dd9a

File tree

5 files changed

+64
-20
lines changed

5 files changed

+64
-20
lines changed

CHANGELOG.md

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,26 @@ All notable changes to this project will be documented in this file. The format
44

55
## Changelog
66

7-
## [Unreleased]
7+
## [V3.0.0] - Major Release
88

9-
- Moved test files to random_profile to avoid flake8:402 error
10-
- Following proper changelog format, added changelog file
11-
- Added config for readthedocs
9+
- [x] Function names changed
10+
- [x] Gender can be passed as a parameter
11+
- [x] Credit/Debit information will be generate
12+
- [x]
13+
14+
## [v2.0.0] Major Release - 07-11-2022
15+
16+
- server can be start from cli
17+
- More Endpoints exposed to the API/CLI
18+
- Code refactored
19+
20+
## [V1.0.0] Major Release - 05-11-2022
21+
22+
Beautiful command line output
23+
Moved test files to random_profile to avoid flake8:402 error
24+
Following proper changelog format, added changelog file
25+
Docs: Added documentation for the project
26+
Bug fixed: Fixed a bug with random_profile import
1227

1328
## [v0.2.3] - 13-10-2022
1429

random_profile/cli.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11

22
import sys
3+
import random
34
import argparse
45
from pprint import pprint
56

@@ -12,6 +13,7 @@
1213

1314
parser = argparse.ArgumentParser()
1415
parser.add_argument('-v', '--version', action='version', version=VERSION)
16+
parser.add_argument('--repeat', help='Repeat the output', action='store_true')
1517
parser.add_argument('--server', help='Start server', action='store_true')
1618
parser.add_argument('--port', help='Port number', type=int, default=8000)
1719
parser.add_argument('-n', '--number', help='Number of random profiles', type=int, default=1)
@@ -31,6 +33,8 @@
3133
output_form_arg_group.add_argument('-a', '--address', help='Get address', action='store_true')
3234
args = parser.parse_args()
3335

36+
if args.repeat:
37+
random.seed(0)
3438

3539
def main():
3640
gender = None

random_profile/main.py

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from random_profile.enums.gender import Gender
1717
from random_profile import utils
1818

19-
VERSION = '2.0.1'
19+
VERSION = '3.0.0'
2020

2121
lname_txt = os.path.join(utils.ASSETS_DIR, "lnames.txt")
2222
fname_male_txt = os.path.join(utils.ASSETS_DIR, "fnames_male.txt")
@@ -43,12 +43,28 @@
4343

4444

4545
class 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)

requirements.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
11
pytest
2+
fastapi
3+
uvicorn
4+
codecov

setup.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
with open("README.md", "r") as fh:
55
long_description = fh.read()
66

7+
with open("requirements.txt", "r") as fh:
8+
requirements = fh.read().splitlines()
9+
710
setuptools.setup(
811
name="random_profile",
912
version="2.0.0",
@@ -12,9 +15,13 @@
1215
description="Generate Random Profile",
1316
long_description=long_description,
1417
long_description_content_type="text/markdown",
18+
install_requires=requirements,
1519
data_files=[('assets', glob('random_profile/assets/*'))],
1620
url="https://github.com/codePerfectPlus/Random-Profile-Generator",
1721
packages=setuptools.find_packages(),
22+
project_urls={"Documentation": "https://pycontributors.readthedocs.io/projects/randomprofilegenerator/en/latest/",
23+
"Source": "https://github.com/Py-Contributors/RandomProfileGenerator",
24+
"Tracker": "https://github.com/Py-Contributors/RandomProfileGenerator/issues"},
1825
classifiers=[
1926
"Development Status :: 5 - Production/Stable",
2027
"Programming Language :: Python :: 3",
@@ -25,6 +32,8 @@
2532
"Topic :: Utilities",
2633
"Environment :: Plugins"],
2734
entry_points={
28-
"console_scripts": ["random_profile = random_profile.__main__:main"],
35+
"console_scripts": ['rp = random_profile.cli:main',
36+
"random_profile = random_profile.cli:main"],
37+
2938
},
30-
)
39+
)

0 commit comments

Comments
 (0)