public static function find(array $query)
    {
        if (isset($query['semester']) &&
            $query['semester'] instanceof Semester) {
            $query['semester'] = $query['semester']->daisyFormat();
        }
        $csis = Client::get("courseSegment", $query);
        return array_map(function ($data) { return new self($data); }, $csis);
    }