Skip to content
This repository has been archived by the owner on Mar 24, 2024. It is now read-only.

Commit

Permalink
More docs
Browse files Browse the repository at this point in the history
  • Loading branch information
lsbardel committed Feb 13, 2020
1 parent e298403 commit c0bc1c7
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 3 deletions.
20 changes: 20 additions & 0 deletions docs/reference.rst
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,26 @@ Email field
-------------
.. autofunction:: email_field

Enum field
----------

.. autofunction:: enum_field

Date field
----------

.. autofunction:: date_field

Datetime field
--------------

.. autofunction:: date_time_field


JSON field
----------

.. autofunction:: json_field

Spec
====
Expand Down
12 changes: 12 additions & 0 deletions openapi/data/fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,16 +144,26 @@ def email_field(min_length: int = 0, max_length: Optional[int] = None, **kw) ->


def enum_field(EnumClass, **kw) -> Field:
"""A specialized :func:`.data_field` for enums
:param EnumClass: enum for validation
"""
kw.setdefault("validator", EnumValidator(EnumClass))
return data_field(**kw)


def date_field(**kw) -> Field:
"""A specialized :func:`.data_field` for dates
"""
kw.setdefault("validator", DateValidator())
return data_field(**kw)


def date_time_field(timezone=False, **kw) -> Field:
"""A specialized :func:`.data_field` for datetimes
:param timezone: timezone for validation
"""
kw.setdefault("validator", DateTimeValidator(timezone=timezone))
return data_field(**kw)

Expand All @@ -167,6 +177,8 @@ def as_field(item, **kw) -> Field:


def json_field(**kw) -> Field:
"""A specialized :func:`.data_field` for JSON data
"""
kw.setdefault("validator", JSONValidator())
return data_field(**kw)

Expand Down
3 changes: 1 addition & 2 deletions tests/example/endpoints.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

from typing import List

from aiohttp import web
Expand All @@ -13,7 +12,7 @@
TaskOrderableQuery,
TaskPathSchema,
TaskQuery,
TaskUpdate
TaskUpdate,
)

routes = web.RouteTableDef()
Expand Down
2 changes: 1 addition & 1 deletion tests/example/endpoints_additional.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
TaskPathSchema,
TaskPathSchema2,
TaskQuery,
TaskUpdate
TaskUpdate,
)

additional_routes = web.RouteTableDef()
Expand Down
1 change: 1 addition & 0 deletions tests/example/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ class TaskPathSchema:

# Additional models for testing


@dataclass
class TaskPathSchema2:
task_id: str = fields.uuid_field(required=True, description="Task ID")
Expand Down

0 comments on commit c0bc1c7

Please sign in to comment.