Something went wrong. Try again.
This repository has no description
Something went wrong. Try again.
2.4 kB · 88 lines
Python
at main
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889from typing import Any
from pydantic import ( BaseModel, ConfigDict, Field, field_validator,)
class ExperienceItem(BaseModel): model_config = ConfigDict(extra="ignore") title: str | None = None company: str | None = None employment_type: str | None = None start_date: str | None = None end_date: str | None = None duration: str | None = None location: str | None = None work_type: str | None = None description: list[str] = Field(default_factory=list)
class EducationItem(BaseModel): model_config = ConfigDict(extra="ignore") school: str | None = None degree: str | None = None field: str | None = None start: str | None = None end: str | None = None activities: list[str] = Field(default_factory=list)
class SkillItem(BaseModel): model_config = ConfigDict(extra="ignore") name: str
class CertificationItem(BaseModel): model_config = ConfigDict(extra="ignore") name: str | None = None issuer: str | None = None issued: str | None = None credential_id: str | None = None description: str | None = None
class LanguageItem(BaseModel): model_config = ConfigDict(extra="ignore") language: str proficiency: str | None = None
class Profile(BaseModel): """A fully scraped LinkedIn profile."""
model_config = ConfigDict(extra="ignore")
vanity: str name: str | None = None headline: str | None = None location: str | None = None about: str | None = None
experience: list[ExperienceItem] = Field(default_factory=list) education: list[EducationItem] = Field(default_factory=list) skills: list[SkillItem] = Field(default_factory=list) certifications: list[CertificationItem] = Field(default_factory=list) languages: list[LanguageItem] = Field(default_factory=list)
profile_image: str | None = None background_image: str | None = None pronouns: str | None = None followers: str | None = None connections: str | None = None
# the parser may emit None for missing list sections; coerce to [] @field_validator( "experience", "education", "skills", "certifications", "languages", mode="before", ) @classmethod def _none_to_list(cls, v: Any) -> Any: return [] if v is None else v