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.")




Popular posts from this blog

pss book : శ్రీకృష్ణుడు దేవుడా, భగవంతుడా completed , second review needed. 26th April 2024

pss book: గురు ప్రార్థనామంజరి . completed 21st july 2024

pss book: కధల జ్ఞానము read review pending. 25th june 2024