jobs¶
models¶
Jobs domain models.
- class JobType[source]¶
Bases:
Base,NameSlugMixin- __init__(**kwargs)¶
A simple constructor that allows initialization from kwargs.
Sets attributes on the constructed instance using the names and values in
kwargs.Only keys that are present as attributes of the instance’s class are allowed. These could be, for example, any mapped columns or relationships.
- id: Mapped[UUID]¶
UUID Primary key column.
- name: Mapped[str]¶
- slug: Mapped[str]¶
- class JobCategory[source]¶
Bases:
Base,NameSlugMixin- __init__(**kwargs)¶
A simple constructor that allows initialization from kwargs.
Sets attributes on the constructed instance using the names and values in
kwargs.Only keys that are present as attributes of the instance’s class are allowed. These could be, for example, any mapped columns or relationships.
- id: Mapped[UUID]¶
UUID Primary key column.
- name: Mapped[str]¶
- slug: Mapped[str]¶
- class Job[source]¶
Bases:
AuditBase- __init__(**kwargs)¶
A simple constructor that allows initialization from kwargs.
Sets attributes on the constructed instance using the names and values in
kwargs.Only keys that are present as attributes of the instance’s class are allowed. These could be, for example, any mapped columns or relationships.
- created_at: Mapped[datetime.datetime]¶
Date/time of instance creation.
- id: Mapped[UUID]¶
UUID Primary key column.
- updated_at: Mapped[datetime.datetime]¶
Date/time of instance last update.
- class JobReviewComment[source]¶
Bases:
AuditBase- __init__(**kwargs)¶
A simple constructor that allows initialization from kwargs.
Sets attributes on the constructed instance using the names and values in
kwargs.Only keys that are present as attributes of the instance’s class are allowed. These could be, for example, any mapped columns or relationships.
- created_at: Mapped[datetime.datetime]¶
Date/time of instance creation.
- id: Mapped[UUID]¶
UUID Primary key column.
- updated_at: Mapped[datetime.datetime]¶
Date/time of instance last update.
schemas¶
Jobs domain Pydantic schemas.
- class JobTypeBase[source]¶
Bases:
BaseModelBase job type schema.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class JobTypeCreate[source]¶
Bases:
JobTypeBaseSchema for creating a new job type.
- model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'name': 'Full-time', 'slug': 'full-time'}}}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class JobTypeUpdate[source]¶
Bases:
BaseModelSchema for updating a job type.
- model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'name': 'Full-time Remote', 'slug': 'full-time-remote'}}}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class JobTypeRead[source]¶
Bases:
JobTypeBaseSchema for reading job type data.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True, 'json_schema_extra': {'example': {'id': '550e8400-e29b-41d4-a716-446655440010', 'name': 'Full-time', 'slug': 'full-time'}}}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class JobCategoryBase[source]¶
Bases:
BaseModelBase job category schema.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class JobCategoryCreate[source]¶
Bases:
JobCategoryBaseSchema for creating a new job category.
- model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'name': 'Engineering', 'slug': 'engineering'}}}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class JobCategoryUpdate[source]¶
Bases:
BaseModelSchema for updating a job category.
- model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'name': 'Software Engineering', 'slug': 'software-engineering'}}}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class JobCategoryRead[source]¶
Bases:
JobCategoryBaseSchema for reading job category data.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True, 'json_schema_extra': {'example': {'id': '550e8400-e29b-41d4-a716-446655440001', 'name': 'Engineering', 'slug': 'engineering'}}}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class JobBase[source]¶
Bases:
BaseModelBase job schema with common fields.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class JobCreate[source]¶
Bases:
JobBaseSchema for creating a new job.
- model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'agencies': False, 'category_id': '550e8400-e29b-41d4-a716-446655440001', 'city': 'Remote', 'company_name': 'Python Software Foundation', 'contact': 'Jane Smith, Engineering Manager', 'country': 'USA', 'description': 'We are seeking an experienced Python developer to work on core Python infrastructure and tooling. You will collaborate with the PSF team to improve Python packaging, distribution, and developer experience.', 'email': 'jobs@python.org', 'expires': '2025-12-31', 'job_title': 'Senior Python Developer', 'job_type_ids': ['550e8400-e29b-41d4-a716-446655440010', '550e8400-e29b-41d4-a716-446655440011'], 'region': 'California', 'requirements': '5+ years Python experience\nExperience with async/await patterns\nKnowledge of CPython internals preferred\nOpen source contributions welcome', 'telecommuting': True, 'url': 'https://python.org/jobs/senior-python-dev'}}}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class JobUpdate[source]¶
Bases:
BaseModelSchema for updating a job.
- model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'description': 'Updated: We are seeking an experienced Python developer to work on core Python infrastructure, tooling, and community projects. You will collaborate with the PSF team to improve Python packaging, distribution, and developer experience.', 'expires': '2026-01-31', 'requirements': '5+ years Python experience\nExperience with async/await patterns\nKnowledge of CPython internals preferred\nOpen source contributions required\nExcellent communication skills', 'status': 'approved', 'telecommuting': True}}}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class JobRead[source]¶
Bases:
JobBaseSchema for reading job data.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True, 'json_schema_extra': {'example': {'agencies': False, 'category': {'id': '550e8400-e29b-41d4-a716-446655440001', 'name': 'Engineering', 'slug': 'engineering'}, 'category_id': '550e8400-e29b-41d4-a716-446655440001', 'city': 'Remote', 'company_name': 'Python Software Foundation', 'contact': 'Jane Smith, Engineering Manager', 'country': 'USA', 'created_at': '2025-11-01T10:00:00Z', 'creator_id': '550e8400-e29b-41d4-a716-446655440000', 'description': 'We are seeking an experienced Python developer to work on core Python infrastructure and tooling.', 'email': 'jobs@python.org', 'expires': '2025-12-31', 'id': '550e8400-e29b-41d4-a716-446655440020', 'job_title': 'Senior Python Developer', 'job_types': [{'id': '550e8400-e29b-41d4-a716-446655440010', 'name': 'Full-time', 'slug': 'full-time'}, {'id': '550e8400-e29b-41d4-a716-446655440011', 'name': 'Remote', 'slug': 'remote'}], 'region': 'California', 'requirements': '5+ years Python experience\nExperience with async/await patterns\nKnowledge of CPython internals preferred', 'slug': 'senior-python-developer-psf', 'status': 'approved', 'telecommuting': True, 'updated_at': '2025-11-15T14:30:00Z', 'url': 'https://python.org/jobs/senior-python-dev'}}}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class JobPublic[source]¶
Bases:
BaseModelPublic job schema for job listings.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True, 'json_schema_extra': {'example': {'agencies': False, 'category': {'id': '550e8400-e29b-41d4-a716-446655440001', 'name': 'Engineering', 'slug': 'engineering'}, 'city': 'Remote', 'company_name': 'Python Software Foundation', 'contact': 'Jane Smith', 'country': 'USA', 'created_at': '2025-11-01T10:00:00Z', 'description': 'We are seeking an experienced Python developer...', 'expires': '2025-12-31', 'id': '550e8400-e29b-41d4-a716-446655440020', 'job_title': 'Senior Python Developer', 'job_types': [{'id': '550e8400-e29b-41d4-a716-446655440010', 'name': 'Full-time', 'slug': 'full-time'}], 'region': 'California', 'requirements': '5+ years Python experience', 'slug': 'senior-python-developer-psf', 'telecommuting': True, 'url': 'https://python.org/jobs/senior-python-dev'}}}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class JobReviewCommentBase[source]¶
Bases:
BaseModelBase job review comment schema.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class JobReviewCommentCreate[source]¶
Bases:
JobReviewCommentBaseSchema for creating a new job review comment.
- model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'comment': 'Please update the job description to include salary range.', 'job_id': '550e8400-e29b-41d4-a716-446655440020'}}}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class JobReviewCommentUpdate[source]¶
Bases:
BaseModelSchema for updating a job review comment.
- model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'comment': 'Updated: The salary range has been added. Approved.'}}}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class JobReviewCommentRead[source]¶
Bases:
JobReviewCommentBaseSchema for reading job review comment data.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True, 'json_schema_extra': {'example': {'comment': 'Please update the job description to include salary range.', 'created_at': '2025-11-15T10:00:00Z', 'creator_id': '550e8400-e29b-41d4-a716-446655440000', 'id': '550e8400-e29b-41d4-a716-446655440030', 'job_id': '550e8400-e29b-41d4-a716-446655440020', 'updated_at': '2025-11-15T10:00:00Z'}}}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class JobSearchFilters[source]¶
Bases:
BaseModelSchema for job search filters.
- model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'category_id': '550e8400-e29b-41d4-a716-446655440001', 'country': 'USA', 'status': 'approved', 'telecommuting': True}}}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].