ipo reject or not pyton code, with rhp document
#testing rhp document ipo proceed or not.
!pip install PyPDF2
import os
import re
import PyPDF2
def extract_parameters_from_rhp(pdf_path):
# Extract relevant data from the PDF
try:
with open(pdf_path, 'rb') as file:
reader = PyPDF2.PdfReader(file)
content = ""
for page in reader.pages:
content += page.extract_text()
except Exception as e:
print(f"Error reading PDF: {e}")
return None
# Define regex patterns to extract required parameters
patterns = {
"revenue": r"Revenue(?:.*?):(?:.*?)(\d[\d,\.]+)",
"profit": r"Profit(?:.*?):(?:.*?)([-+]?\d[\d,\.]+)",
"debt": r"Debt(?:.*?):(?:.*?)(\d[\d,\.]+)",
"purpose": r"Purpose(?:.*?):(?:.*?)([a-zA-Z0-9 ,%]+)",
"valuation_pe": r"P\/E(?:.*?):(?:.*?)(\d[\d,\.]+)"
}
extracted_data = {}
for key, pattern in patterns.items():
match = re.search(pattern, content, re.IGNORECASE)
if match:
extracted_data[key] = match.group(1).replace(",", "").strip()
return extracted_data
def analyze_ipo(parameters):
try:
# Convert extracted parameters to appropriate data types
revenue = float(parameters.get("revenue", 0))
profit = float(parameters.get("profit", 0))
debt = float(parameters.get("debt", 0))
pe_ratio = float(parameters.get("valuation_pe", 0))
purpose = parameters.get("purpose", "").lower()
# Analysis criteria
proceed = True
reasons = []
# Revenue and profit check
if revenue < 500: # Example threshold for revenue
proceed = False
reasons.append("Revenue is too low.")
if profit < 0: # Check for profit
proceed = False
reasons.append("The company is not profitable.")
# Debt-to-Equity check (simplified as debt threshold here)
if debt > 1000: # Example threshold for debt
proceed = False
reasons.append("Debt levels are too high.")
# Valuation check
if pe_ratio > 30: # Example P/E ratio threshold
proceed = False
reasons.append("IPO is overpriced (P/E ratio too high).")
# Purpose check
if "promoter exit" in purpose:
proceed = False
reasons.append("Funds primarily used for promoter exit.")
# Result
if proceed:
return "Proceed", "The IPO meets the analysis criteria."
else:
return "Reject", ", ".join(reasons)
except Exception as e:
return "Error", f"Analysis failed: {e}"
# Main execution
if __name__ == "__main__":
# Path to RHP file in the content folder
pdf_path = "/content/RHP-B.R.Goyal-Infrastructure-Limited.pdf" # Update with the actual file name
if not os.path.exists(pdf_path):
print(f"File not found: {pdf_path}")
else:
parameters = extract_parameters_from_rhp(pdf_path)
if parameters:
print("Extracted Parameters:", parameters)
decision, message = analyze_ipo(parameters)
print(f"Decision: {decision}")
print(f"Message: {message}")
else:
print("Failed to extract parameters from the RHP.")