The add_page() function errors whenever I try to get any user input in __init__() or a classmethod. It works fine when I don't have any methods to get user input, so I think it's somehow interfering.
AttributeError: 'PDF' object has no attribute 'state'. Did you mean: 'rotate'?
Error
Name: ttt
Traceback (most recent call last):
  File "/workspaces/106404228/shirtificate/shirtificate.py", line 63, in <module>
    pdf = PDF.get_name()
  File "/workspaces/106404228/shirtificate/shirtificate.py", line 44, in get_name
    return cls(name)
  File "/workspaces/106404228/shirtificate/shirtificate.py", line 32, in __init__
    self.add_page(self, format='a4')
  File "/home/ubuntu/.local/lib/python3.10/site-packages/fpdf/fpdf.py", line 813, in add_page
    if self.state == DocumentState.CLOSED:
AttributeError: 'PDF' object has no attribute 'state'. Did you mean: 'rotate'?
Code
from fpdf import FPDF
class PDF(FPDF):
    def __init__(self, name):
        if not name:
            raise ValueError("no name")
        self.name = name
        self.add_page(self, format='a4')
    # header
    def header(self):
        self.image("shirtificate.png")
        self.ln(20)
    @classmethod
    def get_name(cls):
        name = input("Name: ")
        return cls(name)
    @property
    def name(self):
        return self._name
    @name.setter
    def name(self, name):
        if not name:
            raise ValueError("no name")
        self._name = name
pdf = PDF.get_name()
pdf.set_font("helvetica", "B", 16)
pdf.output("shirtificate.pdf")
