You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
import string
|
|
|
|
import hashlib
|
|
|
|
import random
|
|
|
|
import os
|
|
|
|
from PyPDF2 import PdfReader
|
|
|
|
import re
|
|
|
|
|
|
|
|
FILE_NAME = 'manjil.pdf'
|
|
|
|
FILE_PATH = os.path.join(os.getcwd(), FILE_NAME)
|
|
|
|
|
|
|
|
def random_string_generator(string_length: int) -> str:
|
|
|
|
letters = string.ascii_letters
|
|
|
|
random_string = ''.join(random.choice(letters) for i in range(string_length))
|
|
|
|
return random_string
|
|
|
|
|
|
|
|
def hash_string(string_value: str) ->str:
|
|
|
|
return hashlib.sha256(string_value.encode('utf-8')).hexdigest()
|
|
|
|
|
|
|
|
def read_pdf_human_readable(file_path: str) -> list[str]:
|
|
|
|
pdf_page_text_contents: list = []
|
|
|
|
reader: PdfReader = PdfReader(file_path)
|
|
|
|
for i, page in enumerate(reader.pages):
|
|
|
|
text: str = page.extract_text()
|
|
|
|
if text:
|
|
|
|
pdf_page_text_contents.append(text.strip())
|
|
|
|
return pdf_page_text_contents
|
|
|
|
|
|
|
|
def is_valid_email(email):
|
|
|
|
pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
|
|
|
|
if re.match(pattern, email):
|
|
|
|
return True
|
|
|
|
else:
|
|
|
|
return False
|