qilimanjaro-tech / qililab

Qililab is a generic and scalable quantum control library used for fast characterization and calibration of quantum chips. Qililab also offers the ability to execute high-level quantum algorithms with your quantum hardware.
Apache License 2.0
29 stars 2 forks source link

Add documentation to qprogram classes #733

Open visagim opened 3 months ago

visagim commented 3 months ago

Feature details

Operations like Acquire

@dataclass(frozen=True)
class Acquire(Operation):  # pylint: disable=missing-class-docstring
    bus: str
    weights: IQPair
    name: str | None = None

or Measure

@dataclass(frozen=True)
class Measure(Operation):  # pylint: disable=missing-class-docstring
    bus: str
    waveform: IQPair
    weights: IQPair | tuple[IQPair, IQPair] | tuple[IQPair, IQPair, IQPair, IQPair] | None
    demodulation: bool
    save_raw_adc: bool

have no information on the constructor. This makes it very difficult (impossible even) to understand what some of the attributes do and we cannot be guessing or asking @fedonman everytime.

Implementation

Add docstrings to the class constructors of all qprogram operations. Should be a quick thing to do for anyone who already knows what each attribute is.

How important would you say this feature is?

3: Very important! Blocking work.

Additional information

I set it to blocking because it is blocking me every time I have to ask about an attribute before being able to proceed

linear[bot] commented 3 months ago

QHC-519 Add documentation to qprogram classes