refactor: Condense password related files in one (#7939)

* refactor: Condense `password` related files in one

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update other/password.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* dynamic_programming

* test: Make test input `str`

* requirements.txt: Remove cython>=0.29.28  # For statsmodels on Python 3.11

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
This commit is contained in:
Caeden Perelli-Harris 2022-11-02 16:20:57 +00:00 committed by GitHub
parent f05baa2b2b
commit 598f6a26a1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 46 additions and 54 deletions

View File

@ -112,12 +112,12 @@ def mincost_tickets(days: list[int], costs: list[int]) -> int:
return 0
if index not in days_set:
return dp(index + 1)
return dynamic_programming(index + 1)
return min(
costs[0] + dp(index + 1),
costs[1] + dp(index + 7),
costs[2] + dp(index + 30),
costs[0] + dynamic_programming(index + 1),
costs[1] + dynamic_programming(index + 7),
costs[2] + dynamic_programming(index + 30),
)
return dynamic_programming(1)

View File

@ -1,47 +0,0 @@
# This Will Check Whether A Given Password Is Strong Or Not
# It Follows The Rule that Length Of Password Should Be At Least 8 Characters
# And At Least 1 Lower, 1 Upper, 1 Number And 1 Special Character
from string import ascii_lowercase, ascii_uppercase, digits, punctuation
def strong_password_detector(password: str, min_length: int = 8) -> str:
"""
>>> strong_password_detector('Hwea7$2!')
'This is a strong Password'
>>> strong_password_detector('Sh0r1')
'Your Password must be at least 8 characters long'
>>> strong_password_detector('Hello123')
'Password should contain UPPERCASE, lowercase, numbers, special characters'
>>> strong_password_detector('Hello1238udfhiaf038fajdvjjf!jaiuFhkqi1')
'This is a strong Password'
>>> strong_password_detector(0)
'Your Password must be at least 8 characters long'
"""
if len(str(password)) < 8:
return "Your Password must be at least 8 characters long"
upper = any(char in ascii_uppercase for char in password)
lower = any(char in ascii_lowercase for char in password)
num = any(char in digits for char in password)
spec_char = any(char in punctuation for char in password)
if upper and lower and num and spec_char:
return "This is a strong Password"
else:
return (
"Password should contain UPPERCASE, lowercase, "
"numbers, special characters"
)
if __name__ == "__main__":
import doctest
doctest.testmod()

View File

@ -1,11 +1,12 @@
"""Password Generator allows you to generate a random password of length N."""
import secrets
from random import shuffle
from string import ascii_letters, digits, punctuation
from string import ascii_letters, ascii_lowercase, ascii_uppercase, digits, punctuation
def password_generator(length: int = 8) -> str:
"""
Password Generator allows you to generate a random password of length N.
>>> len(password_generator())
8
>>> len(password_generator(length=16))
@ -62,6 +63,45 @@ def random_characters(chars_incl, i):
pass # Put your code here...
# This Will Check Whether A Given Password Is Strong Or Not
# It Follows The Rule that Length Of Password Should Be At Least 8 Characters
# And At Least 1 Lower, 1 Upper, 1 Number And 1 Special Character
def strong_password_detector(password: str, min_length: int = 8) -> str:
"""
>>> strong_password_detector('Hwea7$2!')
'This is a strong Password'
>>> strong_password_detector('Sh0r1')
'Your Password must be at least 8 characters long'
>>> strong_password_detector('Hello123')
'Password should contain UPPERCASE, lowercase, numbers, special characters'
>>> strong_password_detector('Hello1238udfhiaf038fajdvjjf!jaiuFhkqi1')
'This is a strong Password'
>>> strong_password_detector('0')
'Your Password must be at least 8 characters long'
"""
if len(password) < min_length:
return "Your Password must be at least 8 characters long"
upper = any(char in ascii_uppercase for char in password)
lower = any(char in ascii_lowercase for char in password)
num = any(char in digits for char in password)
spec_char = any(char in punctuation for char in password)
if upper and lower and num and spec_char:
return "This is a strong Password"
else:
return (
"Password should contain UPPERCASE, lowercase, "
"numbers, special characters"
)
def main():
length = int(input("Please indicate the max length of your password: ").strip())
chars_incl = input(

View File

@ -1,5 +1,4 @@
beautifulsoup4
cython>=0.29.28 # For statsmodels on Python 3.11
fake_useragent
keras
lxml