from math import gcd

import numpy as np

class TorusKnot:
    def __init__(
        self,
        p: int = 3,
        q: int = 2,
        num_points: int = 100,
        major_radius: float = 10.0,
        minor_radius: float = 5.0,
    ): ...
    def _calculate_vertices(self): ...
    @property
    def first_component(self): ...
    @property
    def components(self): ...
    @property
    def num_components(self): ...
    @property
    def q(self): ...
    @q.setter
    def q(self, q): ...
    @property
    def p(self): ...
    @p.setter
    def p(self, p): ...
    @property
    def minor_radius(self): ...
    @minor_radius.setter
    def minor_radius(self, r): ...
    @property
    def major_radius(self): ...
    @major_radius.setter
    def major_radius(self, r): ...
    @property
    def num_points(self): ...
    @num_points.setter
    def num_points(self, r): ...
