From f8f65ef3bb0a27cd141704d3baeb91996225b958 Mon Sep 17 00:00:00 2001 From: Injoon Hwang Date: Mon, 17 Jul 2023 12:10:29 +0000 Subject: [PATCH 1/6] Remove board descriptions --- apps/core/admin.py | 2 -- ...51_remove_board_en_description_and_more.py | 20 ++++++++++++++ apps/core/models/board.py | 6 ----- tests/test_article_search.py | 2 -- tests/test_articles.py | 26 ------------------- tests/test_block.py | 4 --- tests/test_board.py | 2 -- tests/test_comments.py | 4 --- tests/test_communication_article.py | 4 --- tests/test_notification.py | 2 -- tests/test_recent.py | 2 -- tests/test_report.py | 2 -- tests/test_scrap.py | 2 -- tests/test_user.py | 4 --- 14 files changed, 20 insertions(+), 62 deletions(-) create mode 100644 apps/core/migrations/0051_remove_board_en_description_and_more.py diff --git a/apps/core/admin.py b/apps/core/admin.py index 19b4cc20..3789e6bb 100644 --- a/apps/core/admin.py +++ b/apps/core/admin.py @@ -48,8 +48,6 @@ class BoardAdmin(MetaDataModelAdmin): search_fields = ( "ko_name", "en_name", - "ko_description", - "en_description", ) diff --git a/apps/core/migrations/0051_remove_board_en_description_and_more.py b/apps/core/migrations/0051_remove_board_en_description_and_more.py new file mode 100644 index 00000000..458035da --- /dev/null +++ b/apps/core/migrations/0051_remove_board_en_description_and_more.py @@ -0,0 +1,20 @@ +# Generated by Django 4.2.3 on 2023-07-17 11:07 + +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ("core", "0050_board_top_threshold"), + ] + + operations = [ + migrations.RemoveField( + model_name="board", + name="en_description", + ), + migrations.RemoveField( + model_name="board", + name="ko_description", + ), + ] diff --git a/apps/core/models/board.py b/apps/core/models/board.py index 7ed9372d..b1d7187a 100644 --- a/apps/core/models/board.py +++ b/apps/core/models/board.py @@ -32,12 +32,6 @@ class Board(MetaDataModel): verbose_name="게시판 영문 이름", max_length=32, ) - ko_description = models.TextField( - verbose_name="게시판 국문 소개", - ) - en_description = models.TextField( - verbose_name="게시판 영문 소개", - ) # 사용자 그룹에 대해 접근 권한을 제어하는 bit mask 입니다. # access_mask & (1 << user.group) > 0 일 때 접근이 가능합니다. # 사용자 그룹의 값들은 `UserGroup`을 참고하세요. diff --git a/tests/test_article_search.py b/tests/test_article_search.py index 687ad063..847066f8 100644 --- a/tests/test_article_search.py +++ b/tests/test_article_search.py @@ -16,8 +16,6 @@ def set_board(request): slug="test board", ko_name="테스트 게시판", en_name="Test Board", - ko_description="테스트 게시판입니다", - en_description="This is a board for testing", ) diff --git a/tests/test_articles.py b/tests/test_articles.py index a00c2042..a2e29858 100644 --- a/tests/test_articles.py +++ b/tests/test_articles.py @@ -16,8 +16,6 @@ def set_boards(request): slug="test board", ko_name="테스트 게시판", en_name="Test Board", - ko_description="테스트 게시판입니다", - en_description="This is a board for testing", name_type=NameType.REGULAR, ) @@ -25,8 +23,6 @@ def set_boards(request): slug="anonymous", ko_name="익명 게시판", en_name="Anonymous", - ko_description="익명 게시판", - en_description="Anonymous", name_type=NameType.ANONYMOUS, ) @@ -34,8 +30,6 @@ def set_boards(request): slug="free", ko_name="자유 게시판", en_name="Free", - ko_description="자유 게시판", - en_description="Free", name_type=NameType.ANONYMOUS | NameType.REGULAR, ) @@ -43,8 +37,6 @@ def set_boards(request): slug="test realname board", ko_name="테스트 실명 게시판", en_name="Test realname Board", - ko_description="테스트 실명 게시판입니다", - en_description="This is a realname board for testing", name_type=NameType.REALNAME, ) @@ -52,8 +44,6 @@ def set_boards(request): slug="regular access", ko_name="일반 접근 권한 게시판", en_name="Regular Access Board", - ko_description="일반 접근 권한 게시판", - en_description="Regular Access Board", read_access_mask=0b11011110, write_access_mask=0b11011010, ) @@ -63,8 +53,6 @@ def set_boards(request): slug="advertiser accessible", ko_name="외부인(홍보 계정) 접근 가능 게시판", en_name="Advertiser Accessible Board", - ko_description="외부인(홍보 계정) 접근 가능 게시판", - en_description="Advertiser Accessible Board", read_access_mask=0b11111110, write_access_mask=0b11111110, ) @@ -73,8 +61,6 @@ def set_boards(request): slug="nonwritable", ko_name="글 작성 불가 게시판", en_name="Nonwritable Board", - ko_description="글 작성 불가 게시판", - en_description="Nonwritable Board", write_access_mask=0b00000000, ) @@ -82,8 +68,6 @@ def set_boards(request): slug="newsadmin writable", ko_name="뉴스게시판 관리인 글 작성 가능 게시판", en_name="Newsadmin Writable Board", - ko_description="뉴스게시판 관리인 글 작성 가능 게시판", - en_description="Newsadmin Writable Board", write_access_mask=0b10000000, ) @@ -91,8 +75,6 @@ def set_boards(request): slug="enterprise writable", ko_name="입주업체 글 작성 가능 게시판", en_name="Enterprise Writable Board", - ko_description="입주업체 글 작성 가능 게시판", - en_description="Enterprise Writable Board", write_access_mask=0b11011110, ) @@ -104,8 +86,6 @@ def set_topics(request): slug="test topic", ko_name="테스트 토픽", en_name="Test Topic", - ko_description="테스트용 토픽입니다", - en_description="This is topic for testing", parent_board=request.cls.board, ) @@ -113,8 +93,6 @@ def set_topics(request): slug="test realname topic", ko_name="테스트 실명 토픽", en_name="Test realname Topic", - ko_description="테스트용 실명 토픽입니다", - en_description="This is realname topic for testing", parent_board=request.cls.realname_board, ) @@ -203,8 +181,6 @@ def set_kaist_articles(request): slug="kaist-only", ko_name="KAIST Board", en_name="KAIST Board", - ko_description="KAIST Board", - en_description="KAIST Board", read_access_mask=0b00000010, write_access_mask=0b00000010, ) @@ -233,8 +209,6 @@ def set_readonly_board(request): slug="readonly", ko_name="읽기전용 게시판", en_name="Read Only Board", - ko_description="테스트 게시판입니다", - en_description="This is a board for testing", is_readonly=True, ) yield None diff --git a/tests/test_block.py b/tests/test_block.py index 2bb179b4..f8b9a152 100644 --- a/tests/test_block.py +++ b/tests/test_block.py @@ -15,8 +15,6 @@ def set_board(request): slug="test board", ko_name="테스트 게시판", en_name="Test Board", - ko_description="테스트 게시판입니다", - en_description="This is a board for testing", ) @@ -26,8 +24,6 @@ def set_anon_board(request): slug="anonymous", ko_name="익명 게시판", en_name="Anonymous", - ko_description="익명 게시판", - en_description="Anonymous", name_type=NameType.ANONYMOUS, ) diff --git a/tests/test_board.py b/tests/test_board.py index a7ba0831..dc74f69a 100644 --- a/tests/test_board.py +++ b/tests/test_board.py @@ -11,8 +11,6 @@ def test_list(self): Board.objects.create( ko_name="자유 게시판", en_name="Free Board", - ko_description="자유 게시판 입니다.", - en_description="This is a free board.", ) boards = self.http_request(self.user, "get", "boards") diff --git a/tests/test_comments.py b/tests/test_comments.py index 0fcfa21d..f3094449 100644 --- a/tests/test_comments.py +++ b/tests/test_comments.py @@ -19,8 +19,6 @@ def set_boards(request): ko_name="테스트 게시판", en_name="Test Board", name_type=NameType.REGULAR, - ko_description="테스트 게시판입니다", - en_description="This is a board for testing", ) request.cls.realname_board = Board.objects.create( @@ -28,8 +26,6 @@ def set_boards(request): ko_name="테스트 실명 게시판", en_name="Test realname Board", name_type=NameType.REALNAME, - ko_description="테스트 실명 게시판입니다", - en_description="This is a realname board for testing", ) diff --git a/tests/test_communication_article.py b/tests/test_communication_article.py index 13119fb7..bd44fee5 100644 --- a/tests/test_communication_article.py +++ b/tests/test_communication_article.py @@ -26,8 +26,6 @@ def set_communication_board(request): slug="with-school", ko_name="학교와의 게시판 (테스트)", en_name="With School (Test)", - ko_description="학교와의 게시판 (테스트)", - en_description="With School (Test)", is_school_communication=True, name_type=NameType.REALNAME, read_access_mask=0b11011110, @@ -41,8 +39,6 @@ def set_non_communication_board(request): slug="not with-school", ko_name="학교 아닌 게시판 (테스트)", en_name="Not With School (Test)", - ko_description="학교 아닌 게시판 (테스트)", - en_description="Not With School (Test)", is_school_communication=False, ) diff --git a/tests/test_notification.py b/tests/test_notification.py index 2c7d9657..86467f9a 100644 --- a/tests/test_notification.py +++ b/tests/test_notification.py @@ -10,8 +10,6 @@ def set_board(request): slug="free", ko_name="자유 게시판", en_name="Free Board", - ko_description="자유 게시판 입니다.", - en_description="This is a free board.", ) diff --git a/tests/test_recent.py b/tests/test_recent.py index c9c545ac..ed38498d 100644 --- a/tests/test_recent.py +++ b/tests/test_recent.py @@ -16,8 +16,6 @@ def set_board(request): slug="test board", ko_name="테스트 게시판", en_name="Test Board", - ko_description="테스트 게시판입니다", - en_description="This is a board for testing", ) diff --git a/tests/test_report.py b/tests/test_report.py index 308ac7a7..62e39cc3 100644 --- a/tests/test_report.py +++ b/tests/test_report.py @@ -13,8 +13,6 @@ def set_board(request): slug="test board", ko_name="테스트 게시판", en_name="Test Board", - ko_description="테스트 게시판입니다", - en_description="This is a board for testing", ) diff --git a/tests/test_scrap.py b/tests/test_scrap.py index 84110ab0..32146634 100644 --- a/tests/test_scrap.py +++ b/tests/test_scrap.py @@ -11,8 +11,6 @@ def set_board(request): slug="free", ko_name="자유 게시판", en_name="Free Board", - ko_description="자유 게시판 입니다.", - en_description="This is a free board.", ) diff --git a/tests/test_user.py b/tests/test_user.py index 135596b1..eddae31b 100644 --- a/tests/test_user.py +++ b/tests/test_user.py @@ -17,16 +17,12 @@ def set_boards(request): slug="test board", ko_name="테스트 게시판", en_name="Test Board", - ko_description="테스트 게시판입니다", - en_description="This is a board for testing", ) request.cls.realname_board = Board.objects.create( slug="realname", ko_name="실명 게시판", en_name="Realname Board", - ko_description="실명 게시판", - en_description="Realname Board", name_type=NameType.REALNAME, ) From 153402806d43194a8e1b5ddfe6a53a4e8fa2915a Mon Sep 17 00:00:00 2001 From: Injoon Hwang Date: Mon, 17 Jul 2023 12:56:37 +0000 Subject: [PATCH 2/6] Remove topic descriptions & Merge migrations --- apps/core/admin.py | 2 -- .../0051_remove_board_en_description_and_more.py | 10 +++++++++- apps/core/models/topic.py | 7 ------- tests/test_block.py | 2 -- tests/test_comments.py | 4 ---- tests/test_recent.py | 2 -- tests/test_report.py | 2 -- 7 files changed, 9 insertions(+), 20 deletions(-) diff --git a/apps/core/admin.py b/apps/core/admin.py index 3789e6bb..47780bdd 100644 --- a/apps/core/admin.py +++ b/apps/core/admin.py @@ -61,8 +61,6 @@ class TopicAdmin(MetaDataModelAdmin): search_fields = ( "ko_name", "en_name", - "ko_description", - "en_description", ) list_filter = ("parent_board",) diff --git a/apps/core/migrations/0051_remove_board_en_description_and_more.py b/apps/core/migrations/0051_remove_board_en_description_and_more.py index 458035da..952cfdb1 100644 --- a/apps/core/migrations/0051_remove_board_en_description_and_more.py +++ b/apps/core/migrations/0051_remove_board_en_description_and_more.py @@ -1,4 +1,4 @@ -# Generated by Django 4.2.3 on 2023-07-17 11:07 +# Generated by Django 4.2.3 on 2023-07-17 12:52 from django.db import migrations @@ -17,4 +17,12 @@ class Migration(migrations.Migration): model_name="board", name="ko_description", ), + migrations.RemoveField( + model_name="topic", + name="en_description", + ), + migrations.RemoveField( + model_name="topic", + name="ko_description", + ), ] diff --git a/apps/core/models/topic.py b/apps/core/models/topic.py index 2c4a1ba6..c1650ab9 100644 --- a/apps/core/models/topic.py +++ b/apps/core/models/topic.py @@ -26,13 +26,6 @@ class Meta(MetaDataModel.Meta): max_length=32, verbose_name="말머리 영문 이름", ) - ko_description = models.TextField( - verbose_name="말머리 국문 소개", - ) - en_description = models.TextField( - verbose_name="말머리 영문 소개", - ) - parent_board = models.ForeignKey( on_delete=models.CASCADE, to="core.Board", diff --git a/tests/test_block.py b/tests/test_block.py index f8b9a152..6684e870 100644 --- a/tests/test_block.py +++ b/tests/test_block.py @@ -35,8 +35,6 @@ def set_topic(request): slug="test topic", ko_name="테스트 토픽", en_name="Test Topic", - ko_description="테스트용 토픽입니다", - en_description="This is topic for testing", parent_board=request.cls.board, ) diff --git a/tests/test_comments.py b/tests/test_comments.py index f3094449..3daf6bca 100644 --- a/tests/test_comments.py +++ b/tests/test_comments.py @@ -36,8 +36,6 @@ def set_topics(request): slug="test topic", ko_name="테스트 토픽", en_name="Test Topic", - ko_description="테스트용 토픽입니다", - en_description="This is topic for testing", parent_board=request.cls.board, ) @@ -45,8 +43,6 @@ def set_topics(request): slug="test realname topic", ko_name="테스트 실명 토픽", en_name="Test realname Topic", - ko_description="테스트용 실명 토픽입니다", - en_description="This is realname topic for testing", parent_board=request.cls.realname_board, ) diff --git a/tests/test_recent.py b/tests/test_recent.py index ed38498d..060ec588 100644 --- a/tests/test_recent.py +++ b/tests/test_recent.py @@ -26,8 +26,6 @@ def set_topic(request): slug="test topic", ko_name="테스트 토픽", en_name="Test Topic", - ko_description="테스트용 토픽입니다", - en_description="This is topic for testing", parent_board=request.cls.board, ) diff --git a/tests/test_report.py b/tests/test_report.py index 62e39cc3..3ff04750 100644 --- a/tests/test_report.py +++ b/tests/test_report.py @@ -23,8 +23,6 @@ def set_topic(request): slug="test topic", ko_name="테스트 토픽", en_name="Test Topic", - ko_description="테스트용 토픽입니다", - en_description="This is topic for testing", parent_board=request.cls.board, ) From 099b52208a9290fee7256851ca447856f3ab1cdb Mon Sep 17 00:00:00 2001 From: Injoon Hwang Date: Mon, 17 Jul 2023 12:56:54 +0000 Subject: [PATCH 3/6] Remove schema.yml file --- schema.yml | 4210 ---------------------------------------------------- 1 file changed, 4210 deletions(-) delete mode 100644 schema.yml diff --git a/schema.yml b/schema.yml deleted file mode 100644 index e1b8581a..00000000 --- a/schema.yml +++ /dev/null @@ -1,4210 +0,0 @@ -openapi: 3.0.3 -info: - title: Ara API - version: 2.1.0 - description: Restful API for Ara, KAIST's official community service - license: - name: MIT - url: https://opensource.org/license/mit/ -paths: - /api/articles/: - get: - operationId: articles_list - parameters: - - in: query - name: communication_article__school_response_status - schema: - type: integer - - in: query - name: communication_article__school_response_status__lt - schema: - type: integer - - in: query - name: content__contains - schema: - type: string - - in: query - name: content_text__contains - schema: - type: string - - in: query - name: created_by - schema: - type: integer - - in: query - name: created_by__profile__nickname - schema: - type: string - - in: query - name: created_by__profile__nickname__contains - schema: - type: string - - in: query - name: created_by__username - schema: - type: string - - in: query - name: created_by__username__contains - schema: - type: string - - in: query - name: is_content_sexual - schema: - type: boolean - - in: query - name: is_content_social - schema: - type: boolean - - in: query - name: main_search__contains - schema: - type: string - description: 메인 검색 (제목포함, 본문포함, 닉네임일치) - - in: query - name: name_type - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: parent_board - schema: - type: integer - - in: query - name: parent_board__in - schema: - type: array - items: - type: integer - description: Multiple values may be separated by commas. - explode: false - style: form - - in: query - name: parent_topic - schema: - type: integer - - in: query - name: parent_topic__in - schema: - type: array - items: - type: integer - description: Multiple values may be separated by commas. - explode: false - style: form - - in: query - name: title__contains - schema: - type: string - tags: - - articles - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedArticleListActionList' - description: '' - post: - operationId: articles_create - tags: - - articles - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ArticleCreateAction' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ArticleCreateAction' - multipart/form-data: - schema: - $ref: '#/components/schemas/ArticleCreateAction' - required: true - security: - - basicAuth: [] - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ArticleCreateAction' - description: '' - /api/articles/{id}/: - get: - operationId: articles_retrieve - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 게시물. - required: true - tags: - - articles - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Article' - description: '' - put: - operationId: articles_update - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 게시물. - required: true - tags: - - articles - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ArticleUpdateAction' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ArticleUpdateAction' - multipart/form-data: - schema: - $ref: '#/components/schemas/ArticleUpdateAction' - required: true - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ArticleUpdateAction' - description: '' - patch: - operationId: articles_partial_update - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 게시물. - required: true - tags: - - articles - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedArticleUpdateAction' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedArticleUpdateAction' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedArticleUpdateAction' - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ArticleUpdateAction' - description: '' - delete: - operationId: articles_destroy - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 게시물. - required: true - tags: - - articles - security: - - basicAuth: [] - responses: - '204': - description: No response body - /api/articles/{id}/vote_cancel/: - post: - operationId: articles_vote_cancel_create - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 게시물. - required: true - tags: - - articles - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Article' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Article' - multipart/form-data: - schema: - $ref: '#/components/schemas/Article' - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Article' - description: '' - /api/articles/{id}/vote_negative/: - post: - operationId: articles_vote_negative_create - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 게시물. - required: true - tags: - - articles - security: - - basicAuth: [] - responses: - '200': - description: No response body - /api/articles/{id}/vote_positive/: - post: - operationId: articles_vote_positive_create - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 게시물. - required: true - tags: - - articles - security: - - basicAuth: [] - responses: - '200': - description: No response body - /api/articles/recent/: - get: - operationId: articles_recent_retrieve - tags: - - articles - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ArticleListAction' - description: '' - /api/articles/top/: - get: - operationId: articles_top_retrieve - tags: - - articles - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Article' - description: '' - /api/attachments/: - post: - operationId: attachments_create - tags: - - attachments - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Attachment' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Attachment' - multipart/form-data: - schema: - $ref: '#/components/schemas/Attachment' - required: true - security: - - basicAuth: [] - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/Attachment' - description: '' - /api/attachments/{id}/: - get: - operationId: attachments_retrieve - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 첨부파일. - required: true - tags: - - attachments - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Attachment' - description: '' - delete: - operationId: attachments_destroy - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 첨부파일. - required: true - tags: - - attachments - security: - - basicAuth: [] - responses: - '204': - description: No response body - /api/attachments/{id}/url/: - get: - operationId: attachments_url_retrieve - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 첨부파일. - required: true - tags: - - attachments - security: - - basicAuth: [] - - {} - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Attachment' - description: '' - /api/best_searches/: - get: - operationId: best_searches_list - parameters: - - in: query - name: latest - schema: - type: boolean - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - best_searches - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedBestSearchList' - description: '' - /api/best_searches/{id}/: - get: - operationId: best_searches_retrieve - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 추천 검색어. - required: true - tags: - - best_searches - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BestSearch' - description: '' - /api/blocks/: - get: - operationId: blocks_list - parameters: - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - blocks - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedBlockList' - description: '' - post: - operationId: blocks_create - tags: - - blocks - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BlockCreateAction' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BlockCreateAction' - multipart/form-data: - schema: - $ref: '#/components/schemas/BlockCreateAction' - required: true - security: - - basicAuth: [] - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/BlockCreateAction' - description: '' - /api/blocks/{id}/: - get: - operationId: blocks_retrieve - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 차단. - required: true - tags: - - blocks - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Block' - description: '' - delete: - operationId: blocks_destroy - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 차단. - required: true - tags: - - blocks - security: - - basicAuth: [] - responses: - '204': - description: No response body - /api/blocks/without_id/: - post: - operationId: blocks_without_id_create - tags: - - blocks - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BlockDestroyWithoutId' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/BlockDestroyWithoutId' - multipart/form-data: - schema: - $ref: '#/components/schemas/BlockDestroyWithoutId' - required: true - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/BlockDestroyWithoutId' - description: '' - /api/boards/: - get: - operationId: boards_list - parameters: - - in: query - name: is_hidden - schema: - type: boolean - - in: query - name: is_readonly - schema: - type: boolean - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - tags: - - boards - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/BoardDetailAction' - description: '' - /api/boards/{id}/: - get: - operationId: boards_retrieve - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 게시판. - required: true - tags: - - boards - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Board' - description: '' - /api/comments/: - post: - operationId: comments_create - tags: - - comments - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CommentCreateAction' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CommentCreateAction' - multipart/form-data: - schema: - $ref: '#/components/schemas/CommentCreateAction' - security: - - basicAuth: [] - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/CommentCreateAction' - description: '' - /api/comments/{id}/: - get: - operationId: comments_retrieve - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 댓글. - required: true - tags: - - comments - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Comment' - description: '' - put: - operationId: comments_update - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 댓글. - required: true - tags: - - comments - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CommentUpdateAction' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CommentUpdateAction' - multipart/form-data: - schema: - $ref: '#/components/schemas/CommentUpdateAction' - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CommentUpdateAction' - description: '' - patch: - operationId: comments_partial_update - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 댓글. - required: true - tags: - - comments - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedCommentUpdateAction' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedCommentUpdateAction' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedCommentUpdateAction' - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CommentUpdateAction' - description: '' - delete: - operationId: comments_destroy - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 댓글. - required: true - tags: - - comments - security: - - basicAuth: [] - responses: - '204': - description: No response body - /api/comments/{id}/vote_cancel/: - post: - operationId: comments_vote_cancel_create - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 댓글. - required: true - tags: - - comments - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Comment' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Comment' - multipart/form-data: - schema: - $ref: '#/components/schemas/Comment' - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Comment' - description: '' - /api/comments/{id}/vote_negative/: - post: - operationId: comments_vote_negative_create - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 댓글. - required: true - tags: - - comments - security: - - basicAuth: [] - responses: - '200': - description: No response body - /api/comments/{id}/vote_positive/: - post: - operationId: comments_vote_positive_create - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 댓글. - required: true - tags: - - comments - security: - - basicAuth: [] - responses: - '200': - description: No response body - /api/faqs/: - get: - operationId: faqs_list - parameters: - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - faqs - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedFAQList' - description: '' - /api/faqs/{id}/: - get: - operationId: faqs_retrieve - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this FAQ. - required: true - tags: - - faqs - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/FAQ' - description: '' - /api/fcm_token/{mode}: - patch: - operationId: fcm_token_partial_update - parameters: - - in: path - name: mode - schema: - type: string - required: true - tags: - - fcm_token - security: - - basicAuth: [] - - {} - responses: - '200': - description: No response body - /api/home/: - get: - operationId: home_retrieve - tags: - - home - security: - - basicAuth: [] - responses: - '200': - description: No response body - /api/me: - get: - operationId: me_retrieve - description: Get my information from token - tags: - - me - security: - - basicAuth: [] - - {} - responses: - '200': - description: No response body - /api/notifications/: - get: - operationId: notifications_list - parameters: - - in: query - name: content__contains - schema: - type: string - - in: query - name: is_read - schema: - type: boolean - description: 조회 여부 - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - in: query - name: related_article - schema: - type: integer - - in: query - name: related_article__in - schema: - type: array - items: - type: integer - description: Multiple values may be separated by commas. - explode: false - style: form - - in: query - name: related_comment - schema: - type: integer - - in: query - name: related_comment__in - schema: - type: array - items: - type: integer - description: Multiple values may be separated by commas. - explode: false - style: form - - in: query - name: title__contains - schema: - type: string - - in: query - name: type - schema: - type: string - title: 알림 종류 - enum: - - article_commented - - comment_commented - - default - description: |- - * `default` - default - * `article_commented` - article_commented - * `comment_commented` - comment_commented - - in: query - name: type__in - schema: - type: array - items: - type: string - description: Multiple values may be separated by commas. - explode: false - style: form - tags: - - notifications - security: - - basicAuth: [] - - {} - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedNotificationList' - description: '' - /api/notifications/{id}/: - get: - operationId: notifications_retrieve - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 알림. - required: true - tags: - - notifications - security: - - basicAuth: [] - - {} - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Notification' - description: '' - /api/notifications/{id}/read/: - post: - operationId: notifications_read_create - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 알림. - required: true - tags: - - notifications - security: - - basicAuth: [] - - {} - responses: - '200': - description: No response body - /api/notifications/read_all/: - post: - operationId: notifications_read_all_create - tags: - - notifications - security: - - basicAuth: [] - - {} - responses: - '200': - description: No response body - /api/reports/: - get: - operationId: reports_list - parameters: - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - reports - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedReportList' - description: '' - post: - operationId: reports_create - tags: - - reports - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReportCreateAction' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ReportCreateAction' - multipart/form-data: - schema: - $ref: '#/components/schemas/ReportCreateAction' - security: - - basicAuth: [] - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ReportCreateAction' - description: '' - /api/reports/{id}/: - delete: - operationId: reports_destroy - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 신고. - required: true - tags: - - reports - security: - - basicAuth: [] - responses: - '204': - description: No response body - /api/schema/: - get: - operationId: schema_retrieve - description: |- - OpenApi3 schema for this API. Format can be selected via content negotiation. - - - YAML: application/vnd.oai.openapi - - JSON: application/vnd.oai.openapi+json - parameters: - - in: query - name: format - schema: - type: string - enum: - - json - - yaml - - in: query - name: lang - schema: - type: string - enum: - - en - - ko - tags: - - schema - security: - - basicAuth: [] - - {} - responses: - '200': - content: - application/vnd.oai.openapi: - schema: - type: object - additionalProperties: {} - application/yaml: - schema: - type: object - additionalProperties: {} - application/vnd.oai.openapi+json: - schema: - type: object - additionalProperties: {} - application/json: - schema: - type: object - additionalProperties: {} - description: '' - /api/scraps/: - get: - operationId: scraps_list - parameters: - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - scraps - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedScrapList' - description: '' - post: - operationId: scraps_create - tags: - - scraps - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ScrapCreateAction' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ScrapCreateAction' - multipart/form-data: - schema: - $ref: '#/components/schemas/ScrapCreateAction' - required: true - security: - - basicAuth: [] - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ScrapCreateAction' - description: '' - /api/scraps/{id}/: - delete: - operationId: scraps_destroy - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 스크랩. - required: true - tags: - - scraps - security: - - basicAuth: [] - responses: - '204': - description: No response body - /api/status/: - get: - operationId: status_retrieve - tags: - - status - security: - - basicAuth: [] - - {} - responses: - '200': - description: No response body - /api/user_profiles/{user}/: - get: - operationId: user_profiles_retrieve - parameters: - - in: path - name: user - schema: - type: integer - title: 사용자 - description: A unique value identifying this 유저 프로필. - required: true - tags: - - user_profiles - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserProfile' - description: '' - put: - operationId: user_profiles_update - parameters: - - in: path - name: user - schema: - type: integer - title: 사용자 - description: A unique value identifying this 유저 프로필. - required: true - tags: - - user_profiles - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UserProfileUpdateAction' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UserProfileUpdateAction' - multipart/form-data: - schema: - $ref: '#/components/schemas/UserProfileUpdateAction' - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserProfileUpdateAction' - description: '' - patch: - operationId: user_profiles_partial_update - parameters: - - in: path - name: user - schema: - type: integer - title: 사용자 - description: A unique value identifying this 유저 프로필. - required: true - tags: - - user_profiles - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedUserProfileUpdateAction' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedUserProfileUpdateAction' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedUserProfileUpdateAction' - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserProfileUpdateAction' - description: '' - /api/user_profiles/{user}/agree_terms_of_service/: - patch: - operationId: user_profiles_agree_terms_of_service_partial_update - parameters: - - in: path - name: user - schema: - type: integer - title: 사용자 - description: A unique value identifying this 유저 프로필. - required: true - tags: - - user_profiles - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedUserProfile' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedUserProfile' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedUserProfile' - security: - - basicAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/UserProfile' - description: '' - /api/users/{id}/sso_logout/: - delete: - operationId: users_sso_logout_destroy - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 사용자. - required: true - tags: - - users - security: - - basicAuth: [] - responses: - '204': - description: No response body - /api/users/{id}/sso_unregister/: - post: - operationId: users_sso_unregister_create - parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this 사용자. - required: true - tags: - - users - security: - - basicAuth: [] - responses: - '200': - description: No response body - /api/users/sso_login/: - get: - operationId: users_sso_login_retrieve - tags: - - users - security: - - basicAuth: [] - - {} - responses: - '200': - description: No response body - /api/users/sso_login_callback/: - get: - operationId: users_sso_login_callback_retrieve - tags: - - users - security: - - basicAuth: [] - - {} - responses: - '200': - description: No response body -components: - schemas: - Article: - type: object - properties: - id: - type: integer - readOnly: true - is_hidden: - type: boolean - readOnly: true - why_hidden: - type: array - items: - type: string - readOnly: true - can_override_hidden: - type: boolean - nullable: true - readOnly: true - parent_topic: - allOf: - - $ref: '#/components/schemas/Topic' - readOnly: true - parent_board: - allOf: - - $ref: '#/components/schemas/Board' - readOnly: true - attachments: - type: string - readOnly: true - my_comment_profile: - type: string - readOnly: true - comments: - type: array - items: - $ref: '#/components/schemas/ArticleNestedCommentListAction' - readOnly: true - is_mine: - type: boolean - readOnly: true - title: - type: string - nullable: true - readOnly: true - content: - type: string - nullable: true - readOnly: true - my_vote: - type: boolean - nullable: true - readOnly: true - my_scrap: - type: object - additionalProperties: {} - nullable: true - readOnly: true - created_by: - type: object - additionalProperties: {} - readOnly: true - article_current_page: - type: integer - nullable: true - readOnly: true - side_articles: - type: object - additionalProperties: {} - readOnly: true - communication_article_status: - type: string - readOnly: true - days_left: - type: string - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - title: 삭제 시간 - name_type: - type: integer - maximum: 32767 - minimum: -32768 - title: 익명 혹은 실명 여부 - is_content_sexual: - type: boolean - title: 성인/음란성 내용 - is_content_social: - type: boolean - title: 정치/사회성 내용 - hit_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 조회수 - comment_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 댓글 수 - report_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 신고 수 - positive_vote_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 좋아요 수 - negative_vote_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 싫어요 수 - commented_at: - type: string - format: date-time - nullable: true - title: 마지막 댓글 시간 - url: - type: string - format: uri - nullable: true - title: 포탈 링크 - maxLength: 200 - content_updated_at: - type: string - format: date-time - nullable: true - title: 제목/본문/첨부파일 수정 시간 - hidden_at: - type: string - format: date-time - nullable: true - title: 숨김 시간 - topped_at: - type: string - format: date-time - nullable: true - title: 인기글 달성 시각 - required: - - article_current_page - - attachments - - can_override_hidden - - comments - - communication_article_status - - content - - created_at - - created_by - - days_left - - deleted_at - - id - - is_hidden - - is_mine - - my_comment_profile - - my_scrap - - my_vote - - parent_board - - parent_topic - - side_articles - - title - - updated_at - - why_hidden - ArticleCreateAction: - type: object - properties: - id: - type: integer - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - title: 삭제 시간 - title: - type: string - title: 제목 - maxLength: 256 - content: - type: string - title: 본문 - name_type: - type: integer - maximum: 32767 - minimum: -32768 - title: 익명 혹은 실명 여부 - is_content_sexual: - type: boolean - title: 성인/음란성 내용 - is_content_social: - type: boolean - title: 정치/사회성 내용 - hit_count: - type: integer - readOnly: true - title: 조회수 - comment_count: - type: integer - readOnly: true - title: 댓글 수 - report_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 신고 수 - positive_vote_count: - type: integer - readOnly: true - title: 좋아요 수 - negative_vote_count: - type: integer - readOnly: true - title: 싫어요 수 - commented_at: - type: string - format: date-time - readOnly: true - nullable: true - title: 마지막 댓글 시간 - url: - type: string - format: uri - nullable: true - title: 포탈 링크 - maxLength: 200 - content_updated_at: - type: string - format: date-time - nullable: true - title: 제목/본문/첨부파일 수정 시간 - hidden_at: - type: string - format: date-time - nullable: true - title: 숨김 시간 - topped_at: - type: string - format: date-time - nullable: true - title: 인기글 달성 시각 - created_by: - type: integer - readOnly: true - title: 작성자 - parent_topic: - type: integer - nullable: true - title: 말머리 - parent_board: - type: integer - title: 게시판 - attachments: - type: array - items: - type: integer - title: 첨부 파일(들) - title: 첨부 파일(들) - required: - - comment_count - - commented_at - - content - - created_at - - created_by - - deleted_at - - hit_count - - id - - negative_vote_count - - parent_board - - positive_vote_count - - title - - updated_at - ArticleListAction: - type: object - properties: - id: - type: integer - readOnly: true - is_hidden: - type: boolean - readOnly: true - why_hidden: - type: array - items: - type: string - readOnly: true - can_override_hidden: - type: boolean - nullable: true - readOnly: true - parent_topic: - allOf: - - $ref: '#/components/schemas/Topic' - readOnly: true - parent_board: - allOf: - - $ref: '#/components/schemas/Board' - readOnly: true - title: - type: string - nullable: true - readOnly: true - created_by: - type: object - additionalProperties: {} - readOnly: true - read_status: - type: string - readOnly: true - attachment_type: - type: string - readOnly: true - communication_article_status: - type: string - readOnly: true - days_left: - type: string - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - title: 삭제 시간 - name_type: - type: integer - maximum: 32767 - minimum: -32768 - title: 익명 혹은 실명 여부 - is_content_sexual: - type: boolean - title: 성인/음란성 내용 - is_content_social: - type: boolean - title: 정치/사회성 내용 - hit_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 조회수 - comment_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 댓글 수 - report_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 신고 수 - positive_vote_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 좋아요 수 - negative_vote_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 싫어요 수 - commented_at: - type: string - format: date-time - nullable: true - title: 마지막 댓글 시간 - url: - type: string - format: uri - nullable: true - title: 포탈 링크 - maxLength: 200 - content_updated_at: - type: string - format: date-time - nullable: true - title: 제목/본문/첨부파일 수정 시간 - hidden_at: - type: string - format: date-time - nullable: true - title: 숨김 시간 - topped_at: - type: string - format: date-time - nullable: true - title: 인기글 달성 시각 - required: - - attachment_type - - can_override_hidden - - communication_article_status - - created_at - - created_by - - days_left - - deleted_at - - id - - is_hidden - - parent_board - - parent_topic - - read_status - - title - - updated_at - - why_hidden - ArticleNestedCommentListAction: - type: object - properties: - id: - type: integer - readOnly: true - is_hidden: - type: boolean - readOnly: true - why_hidden: - type: array - items: - type: string - readOnly: true - can_override_hidden: - type: boolean - nullable: true - readOnly: true - my_vote: - type: boolean - nullable: true - readOnly: true - is_mine: - type: boolean - readOnly: true - content: - type: string - nullable: true - readOnly: true - created_by: - type: object - additionalProperties: {} - readOnly: true - comments: - type: array - items: - $ref: '#/components/schemas/CommentNestedCommentListAction' - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - title: 삭제 시간 - name_type: - type: integer - maximum: 32767 - minimum: -32768 - title: 익명 혹은 실명 - report_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 신고 수 - positive_vote_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 좋아요 수 - negative_vote_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 싫어요 수 - hidden_at: - type: string - format: date-time - nullable: true - title: 숨김 시간 - parent_article: - type: integer - nullable: true - title: 글 - parent_comment: - type: integer - nullable: true - title: 댓글 - required: - - can_override_hidden - - comments - - content - - created_at - - created_by - - deleted_at - - id - - is_hidden - - is_mine - - my_vote - - updated_at - - why_hidden - ArticleUpdateAction: - type: object - properties: - id: - type: integer - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - title: 삭제 시간 - title: - type: string - title: 제목 - maxLength: 256 - content: - type: string - title: 본문 - name_type: - type: integer - readOnly: true - title: 익명 혹은 실명 여부 - is_content_sexual: - type: boolean - title: 성인/음란성 내용 - is_content_social: - type: boolean - title: 정치/사회성 내용 - hit_count: - type: integer - readOnly: true - title: 조회수 - comment_count: - type: integer - readOnly: true - title: 댓글 수 - report_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 신고 수 - positive_vote_count: - type: integer - readOnly: true - title: 좋아요 수 - negative_vote_count: - type: integer - readOnly: true - title: 싫어요 수 - commented_at: - type: string - format: date-time - readOnly: true - nullable: true - title: 마지막 댓글 시간 - url: - type: string - format: uri - nullable: true - title: 포탈 링크 - maxLength: 200 - content_updated_at: - type: string - format: date-time - nullable: true - title: 제목/본문/첨부파일 수정 시간 - hidden_at: - type: string - format: date-time - nullable: true - title: 숨김 시간 - topped_at: - type: string - format: date-time - nullable: true - title: 인기글 달성 시각 - created_by: - type: integer - readOnly: true - title: 작성자 - parent_topic: - type: integer - readOnly: true - nullable: true - title: 말머리 - parent_board: - type: integer - readOnly: true - title: 게시판 - attachments: - type: array - items: - type: integer - title: 첨부 파일(들) - title: 첨부 파일(들) - required: - - comment_count - - commented_at - - content - - created_at - - created_by - - deleted_at - - hit_count - - id - - name_type - - negative_vote_count - - parent_board - - parent_topic - - positive_vote_count - - title - - updated_at - Attachment: - type: object - properties: - id: - type: integer - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - title: 삭제 시간 - file: - type: string - format: uri - title: 링크 - size: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - title: 용량 - mimetype: - type: string - title: 타입 - maxLength: 128 - required: - - created_at - - deleted_at - - file - - id - - updated_at - BaseArticle: - type: object - properties: - id: - type: integer - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - title: 삭제 시간 - title: - type: string - title: 제목 - maxLength: 256 - name_type: - type: integer - maximum: 32767 - minimum: -32768 - title: 익명 혹은 실명 여부 - is_content_sexual: - type: boolean - title: 성인/음란성 내용 - is_content_social: - type: boolean - title: 정치/사회성 내용 - hit_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 조회수 - comment_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 댓글 수 - report_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 신고 수 - positive_vote_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 좋아요 수 - negative_vote_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 싫어요 수 - commented_at: - type: string - format: date-time - nullable: true - title: 마지막 댓글 시간 - url: - type: string - format: uri - nullable: true - title: 포탈 링크 - maxLength: 200 - content_updated_at: - type: string - format: date-time - nullable: true - title: 제목/본문/첨부파일 수정 시간 - hidden_at: - type: string - format: date-time - nullable: true - title: 숨김 시간 - topped_at: - type: string - format: date-time - nullable: true - title: 인기글 달성 시각 - created_by: - type: integer - title: 작성자 - parent_topic: - type: integer - nullable: true - title: 말머리 - parent_board: - type: integer - title: 게시판 - required: - - created_at - - created_by - - deleted_at - - id - - parent_board - - title - - updated_at - BaseComment: - type: object - properties: - id: - type: integer - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - title: 삭제 시간 - content: - type: string - title: 본문 - name_type: - type: integer - maximum: 32767 - minimum: -32768 - title: 익명 혹은 실명 - report_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 신고 수 - positive_vote_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 좋아요 수 - negative_vote_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 싫어요 수 - hidden_at: - type: string - format: date-time - nullable: true - title: 숨김 시간 - created_by: - type: integer - title: 작성자 - parent_article: - type: integer - nullable: true - title: 글 - parent_comment: - type: integer - nullable: true - title: 댓글 - required: - - created_at - - created_by - - deleted_at - - id - - updated_at - BestSearch: - type: object - properties: - id: - type: integer - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - title: 삭제 시간 - ko_word: - type: string - title: 검색어 국문 - maxLength: 32 - en_word: - type: string - title: 검색어 영문 - maxLength: 32 - registered_by: - allOf: - - $ref: '#/components/schemas/RegisteredByEnum' - title: 추천 검색어 등록 방법 - latest: - type: boolean - title: 최신 추천 검색어 - required: - - created_at - - deleted_at - - en_word - - id - - ko_word - - updated_at - BlankEnum: - enum: - - '' - Block: - type: object - properties: - id: - type: integer - readOnly: true - user: - allOf: - - $ref: '#/components/schemas/PublicUser' - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - default: 0001-01-01T08:27:52+08:27:52 - title: 삭제 시간 - blocked_by: - type: integer - readOnly: true - title: 차단한 사람 - required: - - blocked_by - - created_at - - deleted_at - - id - - updated_at - - user - BlockCreateAction: - type: object - properties: - id: - type: integer - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - default: 0001-01-01T08:27:52+08:27:52 - title: 삭제 시간 - blocked_by: - type: integer - readOnly: true - title: 차단한 사람 - user: - type: integer - title: 차단당한 사람 - required: - - blocked_by - - created_at - - deleted_at - - id - - updated_at - - user - BlockDestroyWithoutId: - type: object - properties: - blocked: - type: integer - required: - - blocked - Board: - type: object - properties: - id: - type: integer - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - default: 0001-01-01T08:27:52+08:27:52 - title: 삭제 시간 - slug: - type: string - readOnly: true - pattern: ^[-a-zA-Z0-9_]+$ - ko_name: - type: string - title: 게시판 국문 이름 - maxLength: 32 - en_name: - type: string - title: 게시판 영문 이름 - maxLength: 32 - ko_description: - type: string - title: 게시판 국문 소개 - en_description: - type: string - title: 게시판 영문 소개 - read_access_mask: - type: integer - maximum: 32767 - minimum: -32768 - title: 읽기 권한 - write_access_mask: - type: integer - maximum: 32767 - minimum: -32768 - title: 쓰기 권한 - comment_access_mask: - type: integer - maximum: 32767 - minimum: -32768 - title: 댓글 권한 - is_readonly: - type: boolean - title: 읽기 전용 게시판 - description: 활성화했을 때 관리자만 글을 쓸 수 있습니다. (ex. 포탈공지) - is_hidden: - type: boolean - title: 리스트 숨김 게시판 - description: 활성화했을 때 메인페이지 상단바 리스트에 나타나지 않습니다. (ex. 뉴아라공지) - name_type: - type: integer - maximum: 32767 - minimum: -32768 - title: 닉네임/익명/실명글 허용 여부 설정 - description: 글과 댓글을 어떤 이름 설정(닉네임/익명/실명)으로 작성할 수 있는지 정의합니다. - is_school_communication: - type: boolean - title: 학교와의 소통 게시판 - description: 학교 소통 게시판 글임을 표시 - group_id: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 그룹 ID - banner_image: - type: string - format: uri - title: 게시판 배너 이미지 - ko_banner_description: - type: string - nullable: true - title: 게시판 배너에 삽입되는 국문 소개 - en_banner_description: - type: string - nullable: true - title: 게시판 배너에 삽입되는 영문 소개 - banner_url: - type: string - nullable: true - title: 게시판 배너를 클릭 시에 이동하는 링크 - top_threshold: - type: integer - maximum: 32767 - minimum: -32768 - title: 인기글 달성 기준 좋아요 개수 - required: - - created_at - - deleted_at - - en_description - - en_name - - id - - ko_description - - ko_name - - slug - - updated_at - BoardDetailAction: - type: object - properties: - id: - type: integer - readOnly: true - topics: - type: array - items: - $ref: '#/components/schemas/Topic' - readOnly: true - user_readable: - type: string - readOnly: true - user_writable: - type: string - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - default: 0001-01-01T08:27:52+08:27:52 - title: 삭제 시간 - slug: - type: string - readOnly: true - pattern: ^[-a-zA-Z0-9_]+$ - ko_name: - type: string - title: 게시판 국문 이름 - maxLength: 32 - en_name: - type: string - title: 게시판 영문 이름 - maxLength: 32 - ko_description: - type: string - title: 게시판 국문 소개 - en_description: - type: string - title: 게시판 영문 소개 - read_access_mask: - type: integer - maximum: 32767 - minimum: -32768 - title: 읽기 권한 - write_access_mask: - type: integer - maximum: 32767 - minimum: -32768 - title: 쓰기 권한 - comment_access_mask: - type: integer - maximum: 32767 - minimum: -32768 - title: 댓글 권한 - is_readonly: - type: boolean - title: 읽기 전용 게시판 - description: 활성화했을 때 관리자만 글을 쓸 수 있습니다. (ex. 포탈공지) - is_hidden: - type: boolean - title: 리스트 숨김 게시판 - description: 활성화했을 때 메인페이지 상단바 리스트에 나타나지 않습니다. (ex. 뉴아라공지) - name_type: - type: integer - maximum: 32767 - minimum: -32768 - title: 닉네임/익명/실명글 허용 여부 설정 - description: 글과 댓글을 어떤 이름 설정(닉네임/익명/실명)으로 작성할 수 있는지 정의합니다. - is_school_communication: - type: boolean - title: 학교와의 소통 게시판 - description: 학교 소통 게시판 글임을 표시 - group_id: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 그룹 ID - banner_image: - type: string - format: uri - title: 게시판 배너 이미지 - ko_banner_description: - type: string - nullable: true - title: 게시판 배너에 삽입되는 국문 소개 - en_banner_description: - type: string - nullable: true - title: 게시판 배너에 삽입되는 영문 소개 - banner_url: - type: string - nullable: true - title: 게시판 배너를 클릭 시에 이동하는 링크 - top_threshold: - type: integer - maximum: 32767 - minimum: -32768 - title: 인기글 달성 기준 좋아요 개수 - required: - - created_at - - deleted_at - - en_description - - en_name - - id - - ko_description - - ko_name - - slug - - topics - - updated_at - - user_readable - - user_writable - Comment: - type: object - properties: - id: - type: integer - readOnly: true - is_hidden: - type: boolean - readOnly: true - why_hidden: - type: array - items: - type: string - readOnly: true - can_override_hidden: - type: boolean - nullable: true - readOnly: true - my_vote: - type: boolean - nullable: true - readOnly: true - is_mine: - type: boolean - readOnly: true - content: - type: string - nullable: true - readOnly: true - created_by: - type: object - additionalProperties: {} - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - title: 삭제 시간 - name_type: - type: integer - maximum: 32767 - minimum: -32768 - title: 익명 혹은 실명 - report_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 신고 수 - positive_vote_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 좋아요 수 - negative_vote_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 싫어요 수 - hidden_at: - type: string - format: date-time - nullable: true - title: 숨김 시간 - parent_article: - type: integer - nullable: true - title: 글 - parent_comment: - type: integer - nullable: true - title: 댓글 - required: - - can_override_hidden - - content - - created_at - - created_by - - deleted_at - - id - - is_hidden - - is_mine - - my_vote - - updated_at - - why_hidden - CommentCreateAction: - type: object - properties: - id: - type: integer - readOnly: true - created_by: - type: object - additionalProperties: {} - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - title: 삭제 시간 - content: - type: string - title: 본문 - name_type: - type: integer - maximum: 32767 - minimum: -32768 - title: 익명 혹은 실명 - report_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 신고 수 - positive_vote_count: - type: integer - readOnly: true - title: 좋아요 수 - negative_vote_count: - type: integer - readOnly: true - title: 싫어요 수 - hidden_at: - type: string - format: date-time - nullable: true - title: 숨김 시간 - parent_article: - type: integer - nullable: true - title: 글 - parent_comment: - type: integer - nullable: true - title: 댓글 - required: - - created_at - - created_by - - deleted_at - - id - - negative_vote_count - - positive_vote_count - - updated_at - CommentListAction: - type: object - properties: - id: - type: integer - readOnly: true - is_hidden: - type: boolean - readOnly: true - why_hidden: - type: array - items: - type: string - readOnly: true - can_override_hidden: - type: boolean - nullable: true - readOnly: true - my_vote: - type: boolean - nullable: true - readOnly: true - is_mine: - type: boolean - readOnly: true - content: - type: string - nullable: true - readOnly: true - created_by: - type: object - additionalProperties: {} - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - title: 삭제 시간 - name_type: - type: integer - maximum: 32767 - minimum: -32768 - title: 익명 혹은 실명 - report_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 신고 수 - positive_vote_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 좋아요 수 - negative_vote_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 싫어요 수 - hidden_at: - type: string - format: date-time - nullable: true - title: 숨김 시간 - parent_article: - type: integer - nullable: true - title: 글 - parent_comment: - type: integer - nullable: true - title: 댓글 - required: - - can_override_hidden - - content - - created_at - - created_by - - deleted_at - - id - - is_hidden - - is_mine - - my_vote - - updated_at - - why_hidden - CommentNestedCommentListAction: - type: object - properties: - id: - type: integer - readOnly: true - is_hidden: - type: boolean - readOnly: true - why_hidden: - type: array - items: - type: string - readOnly: true - can_override_hidden: - type: boolean - nullable: true - readOnly: true - my_vote: - type: boolean - nullable: true - readOnly: true - is_mine: - type: boolean - readOnly: true - content: - type: string - nullable: true - readOnly: true - created_by: - type: object - additionalProperties: {} - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - title: 삭제 시간 - name_type: - type: integer - maximum: 32767 - minimum: -32768 - title: 익명 혹은 실명 - report_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 신고 수 - positive_vote_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 좋아요 수 - negative_vote_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 싫어요 수 - hidden_at: - type: string - format: date-time - nullable: true - title: 숨김 시간 - parent_article: - type: integer - nullable: true - title: 글 - parent_comment: - type: integer - nullable: true - title: 댓글 - required: - - can_override_hidden - - content - - created_at - - created_by - - deleted_at - - id - - is_hidden - - is_mine - - my_vote - - updated_at - - why_hidden - CommentUpdateAction: - type: object - properties: - id: - type: integer - readOnly: true - created_by: - allOf: - - $ref: '#/components/schemas/PublicUser' - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - title: 삭제 시간 - content: - type: string - title: 본문 - name_type: - type: integer - readOnly: true - title: 익명 혹은 실명 - report_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 신고 수 - positive_vote_count: - type: integer - readOnly: true - title: 좋아요 수 - negative_vote_count: - type: integer - readOnly: true - title: 싫어요 수 - hidden_at: - type: string - format: date-time - nullable: true - title: 숨김 시간 - parent_article: - type: integer - readOnly: true - nullable: true - title: 글 - parent_comment: - type: integer - readOnly: true - nullable: true - title: 댓글 - required: - - created_at - - created_by - - deleted_at - - id - - name_type - - negative_vote_count - - parent_article - - parent_comment - - positive_vote_count - - updated_at - FAQ: - type: object - properties: - id: - type: integer - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - title: 삭제 시간 - ko_question: - type: string - title: FAQ 국문 질문 - maxLength: 32 - en_question: - type: string - title: FAQ 영문 질문 - maxLength: 32 - ko_answer: - type: string - title: FAQ 국문 답변 - en_answer: - type: string - title: FAQ 영문 답변 - required: - - created_at - - deleted_at - - en_answer - - en_question - - id - - ko_answer - - ko_question - - updated_at - GroupEnum: - enum: - - 0 - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - type: integer - description: |- - * `0` - 미인증된 사용자 - * `1` - 카이스트 구성원 - * `2` - Store employee - * `3` - Other member - * `4` - KAIST organization - * `5` - External organization - * `6` - Communication board admin - * `7` - News board admin - Notification: - type: object - properties: - id: - type: integer - readOnly: true - is_read: - type: boolean - nullable: true - readOnly: true - related_article: - allOf: - - $ref: '#/components/schemas/BaseArticle' - readOnly: true - related_comment: - allOf: - - $ref: '#/components/schemas/BaseComment' - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - title: 삭제 시간 - type: - allOf: - - $ref: '#/components/schemas/NotificationTypeEnum' - title: 알림 종류 - title: - type: string - title: 제목 - maxLength: 256 - content: - type: string - title: 내용 - required: - - content - - created_at - - deleted_at - - id - - is_read - - related_article - - related_comment - - title - - updated_at - NotificationTypeEnum: - enum: - - default - - article_commented - - comment_commented - type: string - description: |- - * `default` - default - * `article_commented` - article_commented - * `comment_commented` - comment_commented - PaginatedArticleListActionList: - type: object - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/ArticleListAction' - PaginatedBestSearchList: - type: object - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/BestSearch' - PaginatedBlockList: - type: object - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Block' - PaginatedFAQList: - type: object - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/FAQ' - PaginatedNotificationList: - type: object - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Notification' - PaginatedReportList: - type: object - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Report' - PaginatedScrapList: - type: object - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Scrap' - PatchedArticleUpdateAction: - type: object - properties: - id: - type: integer - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - title: 삭제 시간 - title: - type: string - title: 제목 - maxLength: 256 - content: - type: string - title: 본문 - name_type: - type: integer - readOnly: true - title: 익명 혹은 실명 여부 - is_content_sexual: - type: boolean - title: 성인/음란성 내용 - is_content_social: - type: boolean - title: 정치/사회성 내용 - hit_count: - type: integer - readOnly: true - title: 조회수 - comment_count: - type: integer - readOnly: true - title: 댓글 수 - report_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 신고 수 - positive_vote_count: - type: integer - readOnly: true - title: 좋아요 수 - negative_vote_count: - type: integer - readOnly: true - title: 싫어요 수 - commented_at: - type: string - format: date-time - readOnly: true - nullable: true - title: 마지막 댓글 시간 - url: - type: string - format: uri - nullable: true - title: 포탈 링크 - maxLength: 200 - content_updated_at: - type: string - format: date-time - nullable: true - title: 제목/본문/첨부파일 수정 시간 - hidden_at: - type: string - format: date-time - nullable: true - title: 숨김 시간 - topped_at: - type: string - format: date-time - nullable: true - title: 인기글 달성 시각 - created_by: - type: integer - readOnly: true - title: 작성자 - parent_topic: - type: integer - readOnly: true - nullable: true - title: 말머리 - parent_board: - type: integer - readOnly: true - title: 게시판 - attachments: - type: array - items: - type: integer - title: 첨부 파일(들) - title: 첨부 파일(들) - PatchedCommentUpdateAction: - type: object - properties: - id: - type: integer - readOnly: true - created_by: - allOf: - - $ref: '#/components/schemas/PublicUser' - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - title: 삭제 시간 - content: - type: string - title: 본문 - name_type: - type: integer - readOnly: true - title: 익명 혹은 실명 - report_count: - type: integer - maximum: 2147483647 - minimum: -2147483648 - title: 신고 수 - positive_vote_count: - type: integer - readOnly: true - title: 좋아요 수 - negative_vote_count: - type: integer - readOnly: true - title: 싫어요 수 - hidden_at: - type: string - format: date-time - nullable: true - title: 숨김 시간 - parent_article: - type: integer - readOnly: true - nullable: true - title: 글 - parent_comment: - type: integer - readOnly: true - nullable: true - title: 댓글 - PatchedUserProfile: - type: object - properties: - user: - type: integer - title: 사용자 - email: - type: string - nullable: true - readOnly: true - is_official: - type: boolean - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - default: 0001-01-01T08:27:52+08:27:52 - title: 삭제 시간 - uid: - type: string - readOnly: true - nullable: true - title: Sparcs SSO uid - sid: - type: string - readOnly: true - nullable: true - title: Sparcs SSO sid - sso_user_info: - type: object - additionalProperties: {} - readOnly: true - title: Sparcs SSO 정보 - picture: - type: string - format: uri - nullable: true - title: 프로필 - nickname: - type: string - default: '' - title: 닉네임 - maxLength: 128 - nickname_updated_at: - type: string - format: date-time - title: 최근 닉네임 변경일시 - see_sexual: - type: boolean - title: 성인/음란성 보기 - see_social: - type: boolean - title: 정치/사회성 보기 - group: - allOf: - - $ref: '#/components/schemas/GroupEnum' - minimum: -2147483648 - maximum: 2147483647 - is_newara: - type: boolean - default: true - title: 뉴아라 사용자 - ara_id: - type: string - title: 이전 아라 아이디 - maxLength: 128 - agree_terms_of_service_at: - type: string - format: date-time - nullable: true - title: 약관 동의 일시 - inactive_due_at: - type: string - format: date-time - nullable: true - title: 활동정지 마감 일시 - PatchedUserProfileUpdateAction: - type: object - properties: - user: - type: integer - readOnly: true - title: 사용자 - email: - type: string - nullable: true - readOnly: true - is_official: - type: boolean - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - default: 0001-01-01T08:27:52+08:27:52 - title: 삭제 시간 - uid: - type: string - readOnly: true - nullable: true - title: Sparcs SSO uid - sid: - type: string - readOnly: true - nullable: true - title: Sparcs SSO sid - sso_user_info: - type: object - additionalProperties: {} - readOnly: true - title: Sparcs SSO 정보 - picture: - type: string - format: uri - nullable: true - title: 프로필 - nickname: - type: string - default: '' - title: 닉네임 - maxLength: 128 - nickname_updated_at: - type: string - format: date-time - title: 최근 닉네임 변경일시 - see_sexual: - type: boolean - title: 성인/음란성 보기 - see_social: - type: boolean - title: 정치/사회성 보기 - group: - allOf: - - $ref: '#/components/schemas/GroupEnum' - minimum: -2147483648 - maximum: 2147483647 - is_newara: - type: boolean - default: true - title: 뉴아라 사용자 - ara_id: - type: string - title: 이전 아라 아이디 - maxLength: 128 - agree_terms_of_service_at: - type: string - format: date-time - nullable: true - title: 약관 동의 일시 - inactive_due_at: - type: string - format: date-time - nullable: true - title: 활동정지 마감 일시 - PublicUser: - type: object - properties: - id: - type: integer - readOnly: true - username: - type: string - title: 사용자 이름 - description: 150자 이하 문자, 숫자 그리고 @/./+/-/_만 가능합니다. - pattern: ^[\w.@+-]+$ - maxLength: 150 - profile: - allOf: - - $ref: '#/components/schemas/PublicUserProfile' - readOnly: true - required: - - id - - profile - - username - PublicUserProfile: - type: object - properties: - picture: - type: string - format: uri - nullable: true - title: 프로필 - nickname: - type: string - title: 닉네임 - maxLength: 128 - user: - type: integer - title: 사용자 - is_official: - type: boolean - readOnly: true - is_school_admin: - type: boolean - readOnly: true - required: - - is_official - - is_school_admin - - user - RegisteredByEnum: - enum: - - auto - - manual - type: string - description: |- - * `auto` - auto - * `manual` - manual - Report: - type: object - properties: - id: - type: integer - readOnly: true - parent_article: - allOf: - - $ref: '#/components/schemas/ArticleListAction' - readOnly: true - parent_comment: - allOf: - - $ref: '#/components/schemas/CommentListAction' - readOnly: true - reported_by: - allOf: - - $ref: '#/components/schemas/PublicUser' - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - default: 0001-01-01T08:27:52+08:27:52 - title: 삭제 시간 - type: - oneOf: - - $ref: '#/components/schemas/TypeC40Enum' - - $ref: '#/components/schemas/BlankEnum' - content: - type: string - title: 내용 - required: - - created_at - - deleted_at - - id - - parent_article - - parent_comment - - reported_by - - updated_at - ReportCreateAction: - type: object - properties: - id: - type: integer - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - default: 0001-01-01T08:27:52+08:27:52 - title: 삭제 시간 - type: - oneOf: - - $ref: '#/components/schemas/TypeC40Enum' - - $ref: '#/components/schemas/BlankEnum' - content: - type: string - title: 내용 - parent_article: - type: integer - nullable: true - title: 신고된 게시물 - parent_comment: - type: integer - nullable: true - title: 신고된 댓글 - reported_by: - type: integer - readOnly: true - title: 신고자 - required: - - created_at - - deleted_at - - id - - reported_by - - updated_at - Scrap: - type: object - properties: - id: - type: integer - readOnly: true - parent_article: - allOf: - - $ref: '#/components/schemas/ArticleListAction' - readOnly: true - scrapped_by: - allOf: - - $ref: '#/components/schemas/PublicUser' - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - default: 0001-01-01T08:27:52+08:27:52 - title: 삭제 시간 - required: - - created_at - - deleted_at - - id - - parent_article - - scrapped_by - - updated_at - ScrapCreateAction: - type: object - properties: - id: - type: integer - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - default: 0001-01-01T08:27:52+08:27:52 - title: 삭제 시간 - parent_article: - type: integer - title: 스크랩한 글 - scrapped_by: - type: integer - readOnly: true - title: 스크랩한 사람 - required: - - created_at - - deleted_at - - id - - parent_article - - scrapped_by - - updated_at - Topic: - type: object - properties: - id: - type: integer - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - default: 0001-01-01T08:27:52+08:27:52 - title: 삭제 시간 - slug: - type: string - readOnly: true - pattern: ^[-a-zA-Z0-9_]+$ - ko_name: - type: string - title: 말머리 국문 이름 - maxLength: 32 - en_name: - type: string - title: 말머리 영문 이름 - maxLength: 32 - ko_description: - type: string - title: 말머리 국문 소개 - en_description: - type: string - title: 말머리 영문 소개 - parent_board: - type: integer - title: 상위 게시판 - required: - - created_at - - deleted_at - - en_description - - en_name - - id - - ko_description - - ko_name - - parent_board - - slug - - updated_at - TypeC40Enum: - enum: - - violation_of_code - - impersonation - - insult - - spam - - others - type: string - description: |- - * `violation_of_code` - violation_of_code - * `impersonation` - impersonation - * `insult` - insult - * `spam` - spam - * `others` - others - UserProfile: - type: object - properties: - user: - type: integer - title: 사용자 - email: - type: string - nullable: true - readOnly: true - is_official: - type: boolean - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - default: 0001-01-01T08:27:52+08:27:52 - title: 삭제 시간 - uid: - type: string - readOnly: true - nullable: true - title: Sparcs SSO uid - sid: - type: string - readOnly: true - nullable: true - title: Sparcs SSO sid - sso_user_info: - type: object - additionalProperties: {} - readOnly: true - title: Sparcs SSO 정보 - picture: - type: string - format: uri - nullable: true - title: 프로필 - nickname: - type: string - default: '' - title: 닉네임 - maxLength: 128 - nickname_updated_at: - type: string - format: date-time - title: 최근 닉네임 변경일시 - see_sexual: - type: boolean - title: 성인/음란성 보기 - see_social: - type: boolean - title: 정치/사회성 보기 - group: - allOf: - - $ref: '#/components/schemas/GroupEnum' - minimum: -2147483648 - maximum: 2147483647 - is_newara: - type: boolean - default: true - title: 뉴아라 사용자 - ara_id: - type: string - title: 이전 아라 아이디 - maxLength: 128 - agree_terms_of_service_at: - type: string - format: date-time - nullable: true - title: 약관 동의 일시 - inactive_due_at: - type: string - format: date-time - nullable: true - title: 활동정지 마감 일시 - required: - - created_at - - deleted_at - - email - - is_official - - sid - - sso_user_info - - uid - - updated_at - - user - UserProfileUpdateAction: - type: object - properties: - user: - type: integer - readOnly: true - title: 사용자 - email: - type: string - nullable: true - readOnly: true - is_official: - type: boolean - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - title: 생성 시간 - updated_at: - type: string - format: date-time - readOnly: true - title: 수정 시간 - deleted_at: - type: string - format: date-time - readOnly: true - default: 0001-01-01T08:27:52+08:27:52 - title: 삭제 시간 - uid: - type: string - readOnly: true - nullable: true - title: Sparcs SSO uid - sid: - type: string - readOnly: true - nullable: true - title: Sparcs SSO sid - sso_user_info: - type: object - additionalProperties: {} - readOnly: true - title: Sparcs SSO 정보 - picture: - type: string - format: uri - nullable: true - title: 프로필 - nickname: - type: string - default: '' - title: 닉네임 - maxLength: 128 - nickname_updated_at: - type: string - format: date-time - title: 최근 닉네임 변경일시 - see_sexual: - type: boolean - title: 성인/음란성 보기 - see_social: - type: boolean - title: 정치/사회성 보기 - group: - allOf: - - $ref: '#/components/schemas/GroupEnum' - minimum: -2147483648 - maximum: 2147483647 - is_newara: - type: boolean - default: true - title: 뉴아라 사용자 - ara_id: - type: string - title: 이전 아라 아이디 - maxLength: 128 - agree_terms_of_service_at: - type: string - format: date-time - nullable: true - title: 약관 동의 일시 - inactive_due_at: - type: string - format: date-time - nullable: true - title: 활동정지 마감 일시 - required: - - created_at - - deleted_at - - email - - is_official - - sid - - sso_user_info - - uid - - updated_at - - user - securitySchemes: - basicAuth: - type: http - scheme: basic From 9efd9e74ee3bb9793fe27e044f6f16565efe489d Mon Sep 17 00:00:00 2001 From: Injoon Hwang Date: Mon, 17 Jul 2023 14:03:21 +0000 Subject: [PATCH 4/6] Refactor board & topic serializers --- apps/core/serializers/board.py | 21 ++++++++++++++++++++- apps/core/serializers/topic.py | 2 +- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/apps/core/serializers/board.py b/apps/core/serializers/board.py index a8631e31..ba186a2a 100644 --- a/apps/core/serializers/board.py +++ b/apps/core/serializers/board.py @@ -7,7 +7,19 @@ class BaseBoardSerializer(MetaDataModelSerializer): class Meta: model = Board - fields = "__all__" + fields = [ + "id", + "slug", + "ko_name", + "en_name", + "is_readonly", + "name_type", + "group_id", + "banner_image", + "ko_banner_description", + "en_banner_description", + "top_threshold", + ] class BoardSerializer(BaseBoardSerializer): @@ -25,6 +37,13 @@ class BoardDetailActionSerializer(BaseBoardSerializer): user_readable = serializers.SerializerMethodField() user_writable = serializers.SerializerMethodField() + class Meta(BaseBoardSerializer.Meta): + fields = BaseBoardSerializer.Meta.fields + [ + "topics", + "user_readable", + "user_writable", + ] + def get_user_readable(self, obj): user = self.context["request"].user return obj.group_has_access_permission( diff --git a/apps/core/serializers/topic.py b/apps/core/serializers/topic.py index 9d6e625a..87ce6e64 100644 --- a/apps/core/serializers/topic.py +++ b/apps/core/serializers/topic.py @@ -5,7 +5,7 @@ class BaseTopicSerializer(MetaDataModelSerializer): class Meta: model = Topic - fields = "__all__" + fields = ["id", "slug", "ko_name", "en_name"] class TopicSerializer(BaseTopicSerializer): From 6778ff2fe4605f47fe21d98310e63d05efb3d4e6 Mon Sep 17 00:00:00 2001 From: Injoon Hwang Date: Wed, 19 Jul 2023 12:01:37 +0000 Subject: [PATCH 5/6] Remove typing Union & Optional --- apps/core/models/article.py | 9 +++++---- apps/core/models/comment.py | 11 ++++++----- apps/core/serializers/article.py | 13 ++++++------- apps/core/serializers/comment.py | 6 ++---- apps/core/serializers/mixins/hidden.py | 8 +++----- apps/core/serializers/notification.py | 4 +--- apps/user/serializers/user_profile.py | 4 +--- tests/conftest.py | 4 +--- 8 files changed, 25 insertions(+), 34 deletions(-) diff --git a/apps/core/models/article.py b/apps/core/models/article.py index 3834bdb3..d5f33c53 100644 --- a/apps/core/models/article.py +++ b/apps/core/models/article.py @@ -1,9 +1,8 @@ -import typing from enum import Enum -from typing import Dict, Union import bs4 from django.conf import settings +from django.contrib.auth import get_user_model from django.core.files.storage import default_storage from django.db import IntegrityError, models, transaction from django.utils import timezone @@ -27,6 +26,8 @@ from .communication_article import SchoolResponseStatus from .report import Report +User = get_user_model() + class ArticleHiddenReason(str, Enum): ADULT_CONTENT = "ADULT_CONTENT" @@ -261,7 +262,7 @@ def created_by_nickname(self): # API 상에서 보이는 사용자 (익명일 경우 익명화된 글쓴이, 그 외는 그냥 글쓴이) @cached_property - def postprocessed_created_by(self) -> Union[settings.AUTH_USER_MODEL, Dict]: + def postprocessed_created_by(self) -> User | dict: if self.name_type == NameType.REGULAR: return self.created_by @@ -295,7 +296,7 @@ def postprocessed_created_by(self) -> Union[settings.AUTH_USER_MODEL, Dict]: } @cache_by_user - def hidden_reasons(self, user: settings.AUTH_USER_MODEL) -> typing.List: + def hidden_reasons(self, user: User) -> list: reasons = [] if self.is_hidden_by_reported(): reasons.append(ArticleHiddenReason.REPORTED_CONTENT) diff --git a/apps/core/models/comment.py b/apps/core/models/comment.py index cbbe5443..cc2c84b3 100644 --- a/apps/core/models/comment.py +++ b/apps/core/models/comment.py @@ -1,9 +1,8 @@ import hashlib -import typing from enum import Enum -from typing import Dict, Union from django.conf import settings +from django.contrib.auth import get_user_model from django.core.files.storage import default_storage from django.db import IntegrityError, models, transaction from django.utils import timezone @@ -20,6 +19,8 @@ from .board import NameType from .report import Report +User = get_user_model() + class CommentHiddenReason(Enum): REPORTED_CONTENT = "REPORTED_CONTENT" @@ -166,7 +167,7 @@ def update_report_count(self): # API 상에서 보이는 사용자 (익명일 경우 익명화된 글쓴이, 그 외는 그냥 글쓴이) @cached_property - def postprocessed_created_by(self) -> Union[settings.AUTH_USER_MODEL, Dict]: + def postprocessed_created_by(self) -> User | dict: if self.name_type == NameType.REGULAR: return self.created_by @@ -221,8 +222,8 @@ def postprocessed_created_by(self) -> Union[settings.AUTH_USER_MODEL, Dict]: } @cache_by_user - def hidden_reasons(self, user: settings.AUTH_USER_MODEL) -> typing.List: - reasons: typing.List[CommentHiddenReason] = [] + def hidden_reasons(self, user: User) -> list[CommentHiddenReason]: + reasons: list[CommentHiddenReason] = [] if self.is_deleted(): reasons.append(CommentHiddenReason.DELETED_CONTENT) diff --git a/apps/core/serializers/article.py b/apps/core/serializers/article.py index 40ea3677..b5bb0cdc 100644 --- a/apps/core/serializers/article.py +++ b/apps/core/serializers/article.py @@ -1,4 +1,3 @@ -import typing from enum import Enum from django.utils.translation import gettext @@ -37,7 +36,7 @@ class Meta: "migrated_negative_vote_count", ) - def get_my_vote(self, obj) -> typing.Optional[bool]: + def get_my_vote(self, obj) -> bool | None: request = self.context["request"] if not obj.vote_set.filter(voted_by=request.user).exists(): return None @@ -47,7 +46,7 @@ def get_my_vote(self, obj) -> typing.Optional[bool]: return my_vote.is_positive @staticmethod - def get_my_scrap(obj) -> typing.Optional[dict]: + def get_my_scrap(obj) -> dict | None: from apps.core.serializers.scrap import BaseScrapSerializer if not obj.scrap_set.exists(): @@ -57,12 +56,12 @@ def get_my_scrap(obj) -> typing.Optional[dict]: return BaseScrapSerializer(my_scrap).data - def get_title(self, obj) -> typing.Optional[str]: + def get_title(self, obj) -> str | None: if self.visible_verdict(obj): return obj.title return None - def get_content(self, obj) -> typing.Optional[str]: + def get_content(self, obj) -> str | None: if self.visible_verdict(obj): return obj.content return None @@ -99,7 +98,7 @@ def get_read_status(obj) -> str: return "-" # TODO: article_current_page property must be cached - def get_article_current_page(self, obj) -> typing.Optional[int]: + def get_article_current_page(self, obj) -> int | None: view = self.context.get("view") if view: @@ -316,7 +315,7 @@ def get_side_articles_of_recent_article(self, obj, request): after = None if len(after) == 0 else after[0] return after, before - def get_attachments(self, obj): # -> typing.Optional[list]: + def get_attachments(self, obj) -> list | None: if self.visible_verdict(obj): return obj.attachments.all().values_list("id") return None diff --git a/apps/core/serializers/comment.py b/apps/core/serializers/comment.py index e4612155..51fc3d70 100644 --- a/apps/core/serializers/comment.py +++ b/apps/core/serializers/comment.py @@ -1,5 +1,3 @@ -import typing - from rest_framework import serializers from apps.core.models import Block, Comment, CommentHiddenReason @@ -22,7 +20,7 @@ class Meta: exclude = ("attachment",) @staticmethod - def get_my_vote(obj) -> typing.Optional[bool]: + def get_my_vote(obj) -> bool | None: if not obj.vote_set.exists(): return None @@ -30,7 +28,7 @@ def get_my_vote(obj) -> typing.Optional[bool]: return my_vote.is_positive - def get_content(self, obj) -> typing.Optional[str]: + def get_content(self, obj) -> str | None: if self.visible_verdict(obj): return obj.content return None diff --git a/apps/core/serializers/mixins/hidden.py b/apps/core/serializers/mixins/hidden.py index 477ea823..1ccdb5de 100644 --- a/apps/core/serializers/mixins/hidden.py +++ b/apps/core/serializers/mixins/hidden.py @@ -1,5 +1,3 @@ -import typing - from rest_framework import serializers @@ -12,11 +10,11 @@ def get_is_mine(self, obj) -> bool: def get_is_hidden(self, obj) -> bool: return not self.visible_verdict(obj) - def get_why_hidden(self, obj) -> typing.List[str]: + def get_why_hidden(self, obj) -> list[str]: _, _, reasons = self.hidden_info(obj) return [reason.value for reason in reasons] - def get_can_override_hidden(self, obj) -> typing.Optional[bool]: + def get_can_override_hidden(self, obj) -> bool | None: hidden, can_override, _ = self.hidden_info(obj) if not hidden: return @@ -33,7 +31,7 @@ def requested_override_hidden(self): and self.context["override_hidden"] is True ) - def hidden_info(self, obj) -> typing.Tuple[bool, bool, typing.List]: + def hidden_info(self, obj) -> tuple[bool, bool, list]: user = self.context["request"].user reasons = obj.hidden_reasons(user) cannot_override_reasons = [ diff --git a/apps/core/serializers/notification.py b/apps/core/serializers/notification.py index 3f6c550a..4bb1df89 100644 --- a/apps/core/serializers/notification.py +++ b/apps/core/serializers/notification.py @@ -1,5 +1,3 @@ -import typing - from rest_framework import serializers from apps.core.models import Notification @@ -11,7 +9,7 @@ class Meta: model = Notification fields = "__all__" - def get_is_read(self, obj) -> typing.Optional[bool]: + def get_is_read(self, obj) -> bool | None: if not obj.notification_read_log_set.exists(): return None diff --git a/apps/user/serializers/user_profile.py b/apps/user/serializers/user_profile.py index 29a70192..40dff639 100644 --- a/apps/user/serializers/user_profile.py +++ b/apps/user/serializers/user_profile.py @@ -1,5 +1,3 @@ -import typing - from dateutil.relativedelta import relativedelta from django.utils import timezone from django.utils.translation import gettext @@ -18,7 +16,7 @@ class Meta: fields = "__all__" @staticmethod - def get_email(obj) -> typing.Optional[str]: + def get_email(obj) -> str | None: if obj.email.endswith("@sso.sparcs.org"): return None return obj.email diff --git a/tests/conftest.py b/tests/conftest.py index dcbaac85..7ab8a049 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,8 +2,6 @@ Python 3.5 이후로는 pytest-django를 쓸 때 module-scope fixture에서 DB접근이 안되기 때문에 class-scope fixture 사용 https://github.com/pytest-dev/pytest-django/issues/53#issuecomment-407073682 """ -from typing import List - import pytest from django.contrib.auth import get_user_model from django.test import TestCase as DjangoTestCase @@ -239,5 +237,5 @@ def create_users( cls, num: int, group: UserProfile.UserGroup = UserProfile.UserGroup.KAIST_MEMBER, - ) -> List[User]: + ) -> list[User]: return [cls.create_user_with_index(idx, group) for idx in range(num)] From adda79a1b86ce1e6b94e894b04080156647250a9 Mon Sep 17 00:00:00 2001 From: Injoon Hwang Date: Thu, 20 Jul 2023 11:15:49 +0000 Subject: [PATCH 6/6] Specify pyyaml version to 5.3.1 --- Pipfile | 2 +- Pipfile.lock | 498 +++++++++++++++++++++++---------------------------- 2 files changed, 230 insertions(+), 270 deletions(-) diff --git a/Pipfile b/Pipfile index b2f2e480..822629f2 100644 --- a/Pipfile +++ b/Pipfile @@ -33,7 +33,7 @@ pytest-django = "*" django-cors-headers = "*" django-debug-toolbar = "*" django-debug-toolbar-force = "*" -pyyaml = "*" +pyyaml = "~=5.3.1" uritemplate = "*" tqdm = "*" lxml = "*" diff --git a/Pipfile.lock b/Pipfile.lock index 23164d92..c79a627e 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "7c930dfe57be42fe32ddf19886c99b608686a6e4be8288d41ec51b44378357ce" + "sha256": "e5f574b1ccc1ac2ae81c6ec3125c2474c1a151d48a25e5774a5fd6c38b4c4df7" }, "pipfile-spec": 6, "requires": { @@ -42,11 +42,11 @@ }, "awscli": { "hashes": [ - "sha256:24e691726bf516b67dc1acc36c39267f3394a2550c84f5d11085160cc75a8431", - "sha256:48f86b901e5436b2bc083de43d7b5d4541a61afa86c981215d68ab654bb7d4d6" + "sha256:57125cfff39186e6137bf06a9dd734f1af57ffd39484856b276861457f7865f3", + "sha256:b3a7076cb317a21410a2d41734ba338add80f0480804cf9d68cbc52b1d39612a" ], "index": "pypi", - "version": "==1.29.2" + "version": "==1.29.7" }, "beautifulsoup4": { "hashes": [ @@ -74,19 +74,19 @@ }, "boto3": { "hashes": [ - "sha256:0d53fe604dc30edded21906bc56b30a7684f0715f4f6897307d53f8184997368", - "sha256:9933e40dc9ac72deac45cecce2df020e3bf8d0d537538d2b361c17d1cee807cc" + "sha256:46803b8ae114ff139f2a87fcb5d2f5a5728f6c96fe3a2b9416a8fcbe761423ae", + "sha256:ef6a465d3b25b89bcd00ff69675b33917166145e544735dcb9978091f5b0b752" ], "markers": "python_version >= '3.7'", - "version": "==1.28.2" + "version": "==1.28.7" }, "botocore": { "hashes": [ - "sha256:67a475bec9e52d495a358b34e219ef7f62907e83b87e5bc712528f998bd46dab", - "sha256:d368ac0b58e2b9025b9c397e4a4f86d71788913ee619263506885a866a4f6811" + "sha256:f211ef5714bec8ae24b3fe737b8689611ef4d0dbea0ab46ef8328e112dd10ada", + "sha256:f4473f66c153c262b8262404d737f4249366daf00fb068b495577a24b830ebcb" ], "markers": "python_version >= '3.7'", - "version": "==1.31.2" + "version": "==1.31.7" }, "cachecontrol": { "hashes": [ @@ -272,11 +272,11 @@ }, "click": { "hashes": [ - "sha256:2739815aaa5d2c986a88f1e9230c55e17f0caad3d958a5e13ad0797c166db9e3", - "sha256:b97d0c74955da062a7d4ef92fadb583806a585b2ea81958a81bd72726cbb8e37" + "sha256:48ee849951919527a045bfe3bf7baa8a959c423134e1a5b98c05c20ba75a1cbd", + "sha256:fa244bb30b3b5ee2cae3da8f55c9e5e0c0e86093306301fb418eb9dc40fbded5" ], "markers": "python_version >= '3.7'", - "version": "==8.1.4" + "version": "==8.1.6" }, "click-didyoumean": { "hashes": [ @@ -537,11 +537,11 @@ }, "google-api-python-client": { "hashes": [ - "sha256:62ee28e96031a10a1c341f226a75ac6a4f16bdb1d888dc8222b2cdca133d0031", - "sha256:f34abb671afd488bd19d30721ea20fb30d3796ddd825d6f91f26d8c718a9f07d" + "sha256:28b2f0c2c6380a119e2efd7ecd28fa9d313becf37d71f00bfa49332428e071b4", + "sha256:4ff598b7b83d5c0c5582927e74947286070b5b21a13e1bb64409fd92e45bfb26" ], "markers": "python_version >= '3.7'", - "version": "==2.93.0" + "version": "==2.94.0" }, "google-auth": { "hashes": [ @@ -674,68 +674,68 @@ }, "grpcio": { "hashes": [ - "sha256:008767c0aed4899e657b50f2e0beacbabccab51359eba547f860e7c55f2be6ba", - "sha256:03a80451530fd3b8b155e0c4480434f6be669daf7ecba56f73ef98f94222ee01", - "sha256:0409de787ebbf08c9d2bca2bcc7762c1efe72eada164af78b50567a8dfc7253c", - "sha256:14e70b4dda3183abea94c72d41d5930c333b21f8561c1904a372d80370592ef3", - "sha256:17f47aeb9be0da5337f9ff33ebb8795899021e6c0741ee68bd69774a7804ca86", - "sha256:187b8f71bad7d41eea15e0c9812aaa2b87adfb343895fffb704fb040ca731863", - "sha256:1eadd6de258901929223f422ffed7f8b310c0323324caf59227f9899ea1b1674", - "sha256:38fdf5bd0a1c754ce6bf9311a3c2c7ebe56e88b8763593316b69e0e9a56af1de", - "sha256:4241a1c2c76e748023c834995cd916570e7180ee478969c2d79a60ce007bc837", - "sha256:437af5a7673bca89c4bc0a993382200592d104dd7bf55eddcd141cef91f40bab", - "sha256:43c50d810cc26349b093bf2cfe86756ab3e9aba3e7e681d360930c1268e1399a", - "sha256:4c08ee21b3d10315b8dc26f6c13917b20ed574cdbed2d2d80c53d5508fdcc0f2", - "sha256:4f84a6fd4482e5fe73b297d4874b62a535bc75dc6aec8e9fe0dc88106cd40397", - "sha256:4feee75565d1b5ab09cb3a5da672b84ca7f6dd80ee07a50f5537207a9af543a4", - "sha256:50f4daa698835accbbcc60e61e0bc29636c0156ddcafb3891c987e533a0031ba", - "sha256:59c4e606993a47146fbeaf304b9e78c447f5b9ee5641cae013028c4cca784617", - "sha256:5d2fc471668a7222e213f86ef76933b18cdda6a51ea1322034478df8c6519959", - "sha256:64bd3abcf9fb4a9fa4ede8d0d34686314a7075f62a1502217b227991d9ca4245", - "sha256:66f0369d27f4c105cd21059d635860bb2ea81bd593061c45fb64875103f40e4a", - "sha256:6b5ce42a5ebe3e04796246ba50357f1813c44a6efe17a37f8dc7a5c470377312", - "sha256:72836b5a1d4f508ffbcfe35033d027859cc737972f9dddbe33fb75d687421e2e", - "sha256:76b6e6e1ee9bda32e6e933efd61c512e9a9f377d7c580977f090d1a9c78cca44", - "sha256:79d4c5911d12a7aa671e5eb40cbb50a830396525014d2d6f254ea2ba180ce637", - "sha256:7beb84ebd0a3f732625124b73969d12b7350c5d9d64ddf81ae739bbc63d5b1ed", - "sha256:8219f17baf069fe8e42bd8ca0b312b875595e43a70cabf397be4fda488e2f27d", - "sha256:83ec714bbbe9b9502177c842417fde39f7a267031e01fa3cd83f1ca49688f537", - "sha256:8674fdbd28266d8efbcddacf4ec3643f76fe6376f73283fd63a8374c14b0ef7c", - "sha256:881575f240eb5db72ddca4dc5602898c29bc082e0d94599bf20588fb7d1ee6a0", - "sha256:8b3b2c7b5feef90bc9a5fa1c7f97637e55ec3e76460c6d16c3013952ee479cd9", - "sha256:991224fd485e088d3cb5e34366053691a4848a6b7112b8f5625a411305c26691", - "sha256:aa08affbf672d051cd3da62303901aeb7042a2c188c03b2c2a2d346fc5e81c14", - "sha256:b1f4b6f25a87d80b28dd6d02e87d63fe1577fe6d04a60a17454e3f8077a38279", - "sha256:b4638a796778329cc8e142e4f57c705adb286b3ba64e00b0fa91eeb919611be8", - "sha256:bd55f743e654fb050c665968d7ec2c33f03578a4bbb163cfce38024775ff54cc", - "sha256:c0bc9dda550785d23f4f025be614b7faa8d0293e10811f0f8536cf50435b7a30", - "sha256:c2148170e01d464d41011a878088444c13413264418b557f0bdcd1bf1b674a0e", - "sha256:c243b158dd7585021d16c50498c4b2ec0a64a6119967440c5ff2d8c89e72330e", - "sha256:c63bc5ac6c7e646c296fed9139097ae0f0e63f36f0864d7ce431cce61fe0118a", - "sha256:c6f36621aabecbaff3e70c4d1d924c76c8e6a7ffec60c331893640a4af0a8037", - "sha256:d596408bab632ec7b947761e83ce6b3e7632e26b76d64c239ba66b554b7ee286", - "sha256:defdd14b518e6e468466f799aaa69db0355bca8d3a5ea75fb912d28ba6f8af31", - "sha256:e2db108b4c8e29c145e95b0226973a66d73ae3e3e7fae00329294af4e27f1c42", - "sha256:f92a99ab0c7772fb6859bf2e4f44ad30088d18f7c67b83205297bfb229e0d2cf", - "sha256:fb34ace11419f1ae321c36ccaa18d81cd3f20728cd191250be42949d6845bb2d", - "sha256:fdc3a895791af4addbb826808d4c9c35917c59bb5c430d729f44224e51c92d61" - ], - "version": "==1.56.0" + "sha256:06e84ad9ae7668a109e970c7411e7992751a116494cba7c4fb877656527f9a57", + "sha256:0ff789ae7d8ddd76d2ac02e7d13bfef6fc4928ac01e1dcaa182be51b6bcc0aaa", + "sha256:10954662f77dc36c9a1fb5cc4a537f746580d6b5734803be1e587252682cda8d", + "sha256:139f66656a762572ae718fa0d1f2dce47c05e9fbf7a16acd704c354405b97df9", + "sha256:1c31e52a04e62c8577a7bf772b3e7bed4df9c9e0dd90f92b6ffa07c16cab63c9", + "sha256:33971197c47965cc1d97d78d842163c283e998223b151bab0499b951fd2c0b12", + "sha256:345356b307cce5d14355e8e055b4ca5f99bc857c33a3dc1ddbc544fca9cd0475", + "sha256:373b48f210f43327a41e397391715cd11cfce9ded2fe76a5068f9bacf91cc226", + "sha256:3ccb621749a81dc7755243665a70ce45536ec413ef5818e013fe8dfbf5aa497b", + "sha256:42a3bbb2bc07aef72a7d97e71aabecaf3e4eb616d39e5211e2cfe3689de860ca", + "sha256:42e63904ee37ae46aa23de50dac8b145b3596f43598fa33fe1098ab2cbda6ff5", + "sha256:4eb37dd8dd1aa40d601212afa27ca5be255ba792e2e0b24d67b8af5e012cdb7d", + "sha256:51173e8fa6d9a2d85c14426bdee5f5c4a0654fd5fddcc21fe9d09ab0f6eb8b35", + "sha256:5144feb20fe76e73e60c7d73ec3bf54f320247d1ebe737d10672480371878b48", + "sha256:5344be476ac37eb9c9ad09c22f4ea193c1316bf074f1daf85bddb1b31fda5116", + "sha256:6108e5933eb8c22cd3646e72d5b54772c29f57482fd4c41a0640aab99eb5071d", + "sha256:6a007a541dff984264981fbafeb052bfe361db63578948d857907df9488d8774", + "sha256:6ee26e9dfb3996aff7c870f09dc7ad44a5f6732b8bdb5a5f9905737ac6fd4ef1", + "sha256:750de923b456ca8c0f1354d6befca45d1f3b3a789e76efc16741bd4132752d95", + "sha256:7c5ede2e2558f088c49a1ddda19080e4c23fb5d171de80a726b61b567e3766ed", + "sha256:830215173ad45d670140ff99aac3b461f9be9a6b11bee1a17265aaaa746a641a", + "sha256:8391cea5ce72f4a12368afd17799474015d5d3dc00c936a907eb7c7eaaea98a5", + "sha256:8940d6de7068af018dfa9a959a3510e9b7b543f4c405e88463a1cbaa3b2b379a", + "sha256:89a49cc5ad08a38b6141af17e00d1dd482dc927c7605bc77af457b5a0fca807c", + "sha256:900bc0096c2ca2d53f2e5cebf98293a7c32f532c4aeb926345e9747452233950", + "sha256:97e0efaebbfd222bcaac2f1735c010c1d3b167112d9d237daebbeedaaccf3d1d", + "sha256:9e04d4e4cfafa7c5264e535b5d28e786f0571bea609c3f0aaab13e891e933e9c", + "sha256:a4c60abd950d6de3e4f1ddbc318075654d275c29c846ab6a043d6ed2c52e4c8c", + "sha256:a6ff459dac39541e6a2763a4439c4ca6bc9ecb4acc05a99b79246751f9894756", + "sha256:a72797549935c9e0b9bc1def1768c8b5a709538fa6ab0678e671aec47ebfd55e", + "sha256:af4063ef2b11b96d949dccbc5a987272f38d55c23c4c01841ea65a517906397f", + "sha256:b975b85d1d5efc36cf8b237c5f3849b64d1ba33d6282f5e991f28751317504a1", + "sha256:bf0b9959e673505ee5869950642428046edb91f99942607c2ecf635f8a4b31c9", + "sha256:c0c85c5cbe8b30a32fa6d802588d55ffabf720e985abe9590c7c886919d875d4", + "sha256:c3f3237a57e42f79f1e560726576aedb3a7ef931f4e3accb84ebf6acc485d316", + "sha256:c3fa3ab0fb200a2c66493828ed06ccd1a94b12eddbfb985e7fd3e5723ff156c6", + "sha256:c435f5ce1705de48e08fcbcfaf8aee660d199c90536e3e06f2016af7d6a938dd", + "sha256:c90da4b124647547a68cf2f197174ada30c7bb9523cb976665dfd26a9963d328", + "sha256:cbdf2c498e077282cd427cfd88bdce4668019791deef0be8155385ab2ba7837f", + "sha256:d1fbad1f9077372b6587ec589c1fc120b417b6c8ad72d3e3cc86bbbd0a3cee93", + "sha256:d39f5d4af48c138cb146763eda14eb7d8b3ccbbec9fe86fb724cd16e0e914c64", + "sha256:ddb4a6061933bd9332b74eac0da25f17f32afa7145a33a0f9711ad74f924b1b8", + "sha256:ded637176addc1d3eef35331c39acc598bac550d213f0a1bedabfceaa2244c87", + "sha256:f20fd21f7538f8107451156dd1fe203300b79a9ddceba1ee0ac8132521a008ed", + "sha256:fda2783c12f553cdca11c08e5af6eecbd717280dc8fbe28a110897af1c15a88c" + ], + "version": "==1.56.2" }, "grpcio-status": { "hashes": [ - "sha256:9eca0b2dcda0782d3702df225918efd6d820f75f93cd5c51c7fb6a4ffbfea12c", - "sha256:e5f101c96686e9d4e94a114567960fdb00052aa3c818b029745e3db37dc9c613" + "sha256:63f3842867735f59f5d70e723abffd2e8501a6bcd915612a1119e52f10614782", + "sha256:a046b2c0118df4a5687f4585cca9d3c3bae5c498c4dff055dcb43fb06a1180c8" ], - "version": "==1.56.0" + "version": "==1.56.2" }, "gunicorn": { "hashes": [ - "sha256:9dcc4547dbb1cb284accfb15ab5667a0e5d1881cc443e0677b4882a4067a807e", - "sha256:e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8" + "sha256:3213aa5e8c24949e792bcacfc176fef362e7aac80b76c56f6b5122bf350722f0", + "sha256:88ec8bff1d634f98e61b9f65bc4bf3cd918a90806c6f5c48bc5603849ec81033" ], "index": "pypi", - "version": "==20.1.0" + "version": "==21.2.0" }, "html5lib": { "hashes": [ @@ -787,19 +787,19 @@ }, "jsonschema": { "hashes": [ - "sha256:8caf5b57a990a98e9b39832ef3cb35c176fe331414252b6e1b26fd5866f891a4", - "sha256:b508dd6142bd03f4c3670534c80af68cd7bbff9ea830b9cf2625d4a3c49ddf60" + "sha256:971be834317c22daaa9132340a51c01b50910724082c2c1a2ac87eeec153a3fe", + "sha256:fb3642735399fa958c0d2aad7057901554596c63349f4f6b283c493cf692a25d" ], "markers": "python_version >= '3.8'", - "version": "==4.18.0" + "version": "==4.18.4" }, "jsonschema-specifications": { "hashes": [ - "sha256:3d2b82663aff01815f744bb5c7887e2121a63399b49b104a3c96145474d091d7", - "sha256:ca1c4dd059a9e7b34101cf5b3ab7ff1d18b139f35950d598d629837ef66e8f28" + "sha256:05adf340b659828a004220a9613be00fa3f223f2b82002e273dee62fd50524b1", + "sha256:c91a50404e88a1f6ba40636778e2ee08f6e24c5613fe4c53ac24578a5a7f72bb" ], "markers": "python_version >= '3.8'", - "version": "==2023.6.1" + "version": "==2023.7.1" }, "kombu": { "hashes": [ @@ -1129,11 +1129,11 @@ "crypto" ], "hashes": [ - "sha256:ba2b425b15ad5ef12f200dc67dd56af4e26de2331f965c5439994dad075876e1", - "sha256:bd6ca4a3c4285c1a2d4349e5a035fdf8fb94e04ccd0fcbe6ba289dae9cc3e074" + "sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de", + "sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320" ], "markers": "python_version >= '3.7'", - "version": "==2.7.0" + "version": "==2.8.0" }, "pyparsing": { "hashes": [ @@ -1161,10 +1161,10 @@ }, "python-crontab": { "hashes": [ - "sha256:9c374d1c9d401afdd8dd958f20077f74c158ab3fffb9604296802715e887fe48", - "sha256:b21af4647c7bbb848fef2f020616c6b0289dcb9f94b4f991a55310ff9bec5749" + "sha256:6d5ba3c190ec76e4d252989a1644fcb233dbf53fbc8fceeb9febe1657b9fb1d4", + "sha256:79fb7465039ddfd4fb93d072d6ee0d45c1ac8bf1597f0686ea14fd4361dba379" ], - "version": "==2.7.1" + "version": "==3.0.0" }, "python-dateutil": { "hashes": [ @@ -1191,38 +1191,22 @@ }, "pyyaml": { "hashes": [ - "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf", - "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696", - "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393", - "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77", - "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922", - "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5", - "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8", - "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10", - "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc", - "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018", - "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e", - "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253", - "sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347", - "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183", - "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541", - "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb", - "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185", - "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc", - "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db", - "sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa", - "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46", - "sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122", - "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b", - "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63", - "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df", - "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc", - "sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247", - "sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6", - "sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0" + "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97", + "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76", + "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2", + "sha256:6034f55dab5fea9e53f436aa68fa3ace2634918e8b5994d82f3621c04ff5ed2e", + "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648", + "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf", + "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f", + "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2", + "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee", + "sha256:ad9c67312c84def58f3c04504727ca879cb0013b2517c85a9a253f0cb6380c0a", + "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d", + "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c", + "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a" ], "index": "pypi", - "version": "==5.4.1" + "version": "==5.3.1" }, "redis": { "hashes": [ @@ -1234,11 +1218,11 @@ }, "referencing": { "hashes": [ - "sha256:90cb53782d550ba28d2166ef3f55731f38397def8832baac5d45235f1995e35e", - "sha256:d3c8f323ee1480095da44d55917cfb8278d73d6b4d5f677e3e40eb21314ac67f" + "sha256:47237742e990457f7512c7d27486394a9aadaf876cbfaa4be65b27b4f4d47c6b", + "sha256:c257b08a399b6c2f5a3510a50d28ab5dbc7bbde049bcaf954d43c446f83ab548" ], "markers": "python_version >= '3.8'", - "version": "==0.29.1" + "version": "==0.30.0" }, "requests": { "hashes": [ @@ -1250,106 +1234,106 @@ }, "rpds-py": { "hashes": [ - "sha256:08166467258fd0240a1256fce272f689f2360227ee41c72aeea103e9e4f63d2b", - "sha256:083df0fafe199371206111583c686c985dddaf95ab3ee8e7b24f1fda54515d09", - "sha256:0da53292edafecba5e1d8c1218f99babf2ed0bf1c791d83c0ab5c29b57223068", - "sha256:0eeb2731708207d0fe2619afe6c4dc8cb9798f7de052da891de5f19c0006c315", - "sha256:134ec8f14ca7dbc6d9ae34dac632cdd60939fe3734b5d287a69683c037c51acb", - "sha256:13e643ce8ad502a0263397362fb887594b49cf84bf518d6038c16f235f2bcea4", - "sha256:148b0b38d719c0760e31ce9285a9872972bdd7774969a4154f40c980e5beaca7", - "sha256:14f1c356712f66653b777ecd8819804781b23dbbac4eade4366b94944c9e78ad", - "sha256:15a90d0ac11b4499171067ae40a220d1ca3cb685ec0acc356d8f3800e07e4cb8", - "sha256:1a2edf8173ac0c7a19da21bc68818be1321998528b5e3f748d6ee90c0ba2a1fd", - "sha256:1b21575031478609db6dbd1f0465e739fe0e7f424a8e7e87610a6c7f68b4eb16", - "sha256:1ee45cd1d84beed6cbebc839fd85c2e70a3a1325c8cfd16b62c96e2ffb565eca", - "sha256:220bdcad2d2936f674650d304e20ac480a3ce88a40fe56cd084b5780f1d104d9", - "sha256:2418cf17d653d24ffb8b75e81f9f60b7ba1b009a23298a433a4720b2a0a17017", - "sha256:2614c2732bf45de5c7f9e9e54e18bc78693fa2f635ae58d2895b7965e470378c", - "sha256:2cd3045e7f6375dda64ed7db1c5136826facb0159ea982f77d9cf6125025bd34", - "sha256:2eb4b08c45f8f8d8254cdbfacd3fc5d6b415d64487fb30d7380b0d0569837bf1", - "sha256:300eb606e6b94a7a26f11c8cc8ee59e295c6649bd927f91e1dbd37a4c89430b6", - "sha256:376b8de737401050bd12810003d207e824380be58810c031f10ec563ff6aef3d", - "sha256:3793c21494bad1373da517001d0849eea322e9a049a0e4789e50d8d1329df8e7", - "sha256:37f7ee4dc86db7af3bac6d2a2cedbecb8e57ce4ed081f6464510e537589f8b1e", - "sha256:3816a890a6a9e9f1de250afa12ca71c9a7a62f2b715a29af6aaee3aea112c181", - "sha256:3c490204e16bca4f835dba8467869fe7295cdeaa096e4c5a7af97f3454a97991", - "sha256:3cc5e5b5514796f45f03a568981971b12a3570f3de2e76114f7dc18d4b60a3c4", - "sha256:41c89a366eae49ad9e65ed443a8f94aee762931a1e3723749d72aeac80f5ef2f", - "sha256:4a8ca409f1252e1220bf09c57290b76cae2f14723746215a1e0506472ebd7bdf", - "sha256:4b519bac7c09444dd85280fd60f28c6dde4389c88dddf4279ba9b630aca3bbbe", - "sha256:521fc8861a86ae54359edf53a15a05fabc10593cea7b3357574132f8427a5e5a", - "sha256:574868858a7ff6011192c023a5289158ed20e3f3b94b54f97210a773f2f22921", - "sha256:5a665f6f1a87614d1c3039baf44109094926dedf785e346d8b0a728e9cabd27a", - "sha256:5d1c2bc319428d50b3e0fa6b673ab8cc7fa2755a92898db3a594cbc4eeb6d1f7", - "sha256:60e0e86e870350e03b3e25f9b1dd2c6cc72d2b5f24e070249418320a6f9097b7", - "sha256:695f642a3a5dbd4ad2ffbbacf784716ecd87f1b7a460843b9ddf965ccaeafff4", - "sha256:69d089c026f6a8b9d64a06ff67dc3be196707b699d7f6ca930c25f00cf5e30d8", - "sha256:6c6a0225b8501d881b32ebf3f5807a08ad3685b5eb5f0a6bfffd3a6e039b2055", - "sha256:70bb9c8004b97b4ef7ae56a2aa56dfaa74734a0987c78e7e85f00004ab9bf2d0", - "sha256:73a1e48430f418f0ac3dfd87860e4cc0d33ad6c0f589099a298cb53724db1169", - "sha256:7495010b658ec5b52835f21d8c8b1a7e52e194c50f095d4223c0b96c3da704b1", - "sha256:7947e6e2c2ad68b1c12ee797d15e5f8d0db36331200b0346871492784083b0c6", - "sha256:7b38a9ac96eeb6613e7f312cd0014de64c3f07000e8bf0004ad6ec153bac46f8", - "sha256:7d20a8ed227683401cc508e7be58cba90cc97f784ea8b039c8cd01111e6043e0", - "sha256:7f29b8c55fd3a2bc48e485e37c4e2df3317f43b5cc6c4b6631c33726f52ffbb3", - "sha256:802f42200d8caf7f25bbb2a6464cbd83e69d600151b7e3b49f49a47fa56b0a38", - "sha256:805a5f3f05d186c5d50de2e26f765ba7896d0cc1ac5b14ffc36fae36df5d2f10", - "sha256:82bb361cae4d0a627006dadd69dc2f36b7ad5dc1367af9d02e296ec565248b5b", - "sha256:84eb541a44f7a18f07a6bfc48b95240739e93defe1fdfb4f2a295f37837945d7", - "sha256:89c92b74e8bf6f53a6f4995fd52f4bd510c12f103ee62c99e22bc9e05d45583c", - "sha256:8c398fda6df361a30935ab4c4bccb7f7a3daef2964ca237f607c90e9f3fdf66f", - "sha256:915031002c86a5add7c6fd4beb601b2415e8a1c956590a5f91d825858e92fe6e", - "sha256:927d784648211447201d4c6f1babddb7971abad922b32257ab74de2f2750fad0", - "sha256:92cf5b3ee60eef41f41e1a2cabca466846fb22f37fc580ffbcb934d1bcab225a", - "sha256:93d06cccae15b3836247319eee7b6f1fdcd6c10dabb4e6d350d27bd0bdca2711", - "sha256:93d99f957a300d7a4ced41615c45aeb0343bb8f067c42b770b505de67a132346", - "sha256:96b293c0498c70162effb13100624c5863797d99df75f2f647438bd10cbf73e4", - "sha256:97cab733d303252f7c2f7052bf021a3469d764fc2b65e6dbef5af3cbf89d4892", - "sha256:996cc95830de9bc22b183661d95559ec6b3cd900ad7bc9154c4cbf5be0c9b734", - "sha256:9a7d20c1cf8d7b3960c5072c265ec47b3f72a0c608a9a6ee0103189b4f28d531", - "sha256:9cd57981d9fab04fc74438d82460f057a2419974d69a96b06a440822d693b3c0", - "sha256:a11ab0d97be374efd04f640c04fe5c2d3dabc6dfb998954ea946ee3aec97056d", - "sha256:a13c8e56c46474cd5958d525ce6a9996727a83d9335684e41f5192c83deb6c58", - "sha256:a38b9f526d0d6cbdaa37808c400e3d9f9473ac4ff64d33d9163fd05d243dbd9b", - "sha256:a7c6304b894546b5a6bdc0fe15761fa53fe87d28527a7142dae8de3c663853e1", - "sha256:ad3bfb44c8840fb4be719dc58e229f435e227fbfbe133dc33f34981ff622a8f8", - "sha256:ae40f4a70a1f40939d66ecbaf8e7edc144fded190c4a45898a8cfe19d8fc85ea", - "sha256:b01b39ad5411563031ea3977bbbc7324d82b088e802339e6296f082f78f6115c", - "sha256:b2e3c4f2a8e3da47f850d7ea0d7d56720f0f091d66add889056098c4b2fd576c", - "sha256:b41941583adce4242af003d2a8337b066ba6148ca435f295f31ac6d9e4ea2722", - "sha256:b4627520a02fccbd324b33c7a83e5d7906ec746e1083a9ac93c41ac7d15548c7", - "sha256:ba9f1d1ebe4b63801977cec7401f2d41e888128ae40b5441270d43140efcad52", - "sha256:c03a435d26c3999c2a8642cecad5d1c4d10c961817536af52035f6f4ee2f5dd0", - "sha256:c200b30dd573afa83847bed7e3041aa36a8145221bf0cfdfaa62d974d720805c", - "sha256:c493365d3fad241d52f096e4995475a60a80f4eba4d3ff89b713bc65c2ca9615", - "sha256:c4d42e83ddbf3445e6514f0aff96dca511421ed0392d9977d3990d9f1ba6753c", - "sha256:c60528671d9d467009a6ec284582179f6b88651e83367d0ab54cb739021cd7de", - "sha256:c72ebc22e70e04126158c46ba56b85372bc4d54d00d296be060b0db1671638a4", - "sha256:ccbbd276642788c4376fbe8d4e6c50f0fb4972ce09ecb051509062915891cbf0", - "sha256:ceaac0c603bf5ac2f505a78b2dcab78d3e6b706be6596c8364b64cc613d208d2", - "sha256:d19db6ba816e7f59fc806c690918da80a7d186f00247048cd833acdab9b4847b", - "sha256:d5c191713e98e7c28800233f039a32a42c1a4f9a001a8a0f2448b07391881036", - "sha256:d64f9f88d5203274a002b54442cafc9c7a1abff2a238f3e767b70aadf919b451", - "sha256:d77dff3a5aa5eedcc3da0ebd10ff8e4969bc9541aa3333a8d41715b429e99f47", - "sha256:dd4f16e57c12c0ae17606c53d1b57d8d1c8792efe3f065a37cb3341340599d49", - "sha256:e39d7ab0c18ac99955b36cd19f43926450baba21e3250f053e0704d6ffd76873", - "sha256:e3d0cd3dff0e7638a7b5390f3a53057c4e347f4ef122ee84ed93fc2fb7ea4aa2", - "sha256:e7dfb1cbb895810fa2b892b68153c17716c6abaa22c7dc2b2f6dcf3364932a1c", - "sha256:e8e24b210a4deb5a7744971f8f77393005bae7f873568e37dfd9effe808be7f7", - "sha256:e9c0683cb35a9b5881b41bc01d5568ffc667910d9dbc632a1fba4e7d59e98773", - "sha256:ed41f3f49507936a6fe7003985ea2574daccfef999775525d79eb67344e23767", - "sha256:ee744fca8d1ea822480a2a4e7c5f2e1950745477143668f0b523769426060f29", - "sha256:f3f1e860be21f3e83011116a65e7310486300e08d9a3028e73e8d13bb6c77292", - "sha256:f43ab4cb04bde6109eb2555528a64dfd8a265cc6a9920a67dcbde13ef53a46c8", - "sha256:f53f55a8852f0e49b0fc76f2412045d6ad9d5772251dea8f55ea45021616e7d5", - "sha256:f59996d0550894affaad8743e97b9b9c98f638b221fac12909210ec3d9294786", - "sha256:f96f3f98fbff7af29e9edf9a6584f3c1382e7788783d07ba3721790625caa43e", - "sha256:f9adb5664b78fcfcd830000416c8cc69853ef43cb084d645b3f1f0296edd9bae", - "sha256:fa326b3505d5784436d9433b7980171ab2375535d93dd63fbcd20af2b5ca1bb6", - "sha256:fafc0049add8043ad07ab5382ee80d80ed7e3699847f26c9a5cf4d3714d96a84" + "sha256:0173c0444bec0a3d7d848eaeca2d8bd32a1b43f3d3fde6617aac3731fa4be05f", + "sha256:01899794b654e616c8625b194ddd1e5b51ef5b60ed61baa7a2d9c2ad7b2a4238", + "sha256:02938432352359805b6da099c9c95c8a0547fe4b274ce8f1a91677401bb9a45f", + "sha256:03421628f0dc10a4119d714a17f646e2837126a25ac7a256bdf7c3943400f67f", + "sha256:03975db5f103997904c37e804e5f340c8fdabbb5883f26ee50a255d664eed58c", + "sha256:0766babfcf941db8607bdaf82569ec38107dbb03c7f0b72604a0b346b6eb3298", + "sha256:07e2c54bef6838fa44c48dfbc8234e8e2466d851124b551fc4e07a1cfeb37260", + "sha256:0836d71ca19071090d524739420a61580f3f894618d10b666cf3d9a1688355b1", + "sha256:095b460e117685867d45548fbd8598a8d9999227e9061ee7f012d9d264e6048d", + "sha256:0e7521f5af0233e89939ad626b15278c71b69dc1dfccaa7b97bd4cdf96536bb7", + "sha256:0f2996fbac8e0b77fd67102becb9229986396e051f33dbceada3debaacc7033f", + "sha256:1054a08e818f8e18910f1bee731583fe8f899b0a0a5044c6e680ceea34f93876", + "sha256:13b602dc3e8dff3063734f02dcf05111e887f301fdda74151a93dbbc249930fe", + "sha256:141acb9d4ccc04e704e5992d35472f78c35af047fa0cfae2923835d153f091be", + "sha256:14c408e9d1a80dcb45c05a5149e5961aadb912fff42ca1dd9b68c0044904eb32", + "sha256:159fba751a1e6b1c69244e23ba6c28f879a8758a3e992ed056d86d74a194a0f3", + "sha256:190ca6f55042ea4649ed19c9093a9be9d63cd8a97880106747d7147f88a49d18", + "sha256:196cb208825a8b9c8fc360dc0f87993b8b260038615230242bf18ec84447c08d", + "sha256:1fcdee18fea97238ed17ab6478c66b2095e4ae7177e35fb71fbe561a27adf620", + "sha256:207f57c402d1f8712618f737356e4b6f35253b6d20a324d9a47cb9f38ee43a6b", + "sha256:24a81c177379300220e907e9b864107614b144f6c2a15ed5c3450e19cf536fae", + "sha256:29cd8bfb2d716366a035913ced99188a79b623a3512292963d84d3e06e63b496", + "sha256:2d8b3b3a2ce0eaa00c5bbbb60b6713e94e7e0becab7b3db6c5c77f979e8ed1f1", + "sha256:35da5cc5cb37c04c4ee03128ad59b8c3941a1e5cd398d78c37f716f32a9b7f67", + "sha256:44659b1f326214950a8204a248ca6199535e73a694be8d3e0e869f820767f12f", + "sha256:47c5f58a8e0c2c920cc7783113df2fc4ff12bf3a411d985012f145e9242a2764", + "sha256:4bd4dc3602370679c2dfb818d9c97b1137d4dd412230cfecd3c66a1bf388a196", + "sha256:4ea6b73c22d8182dff91155af018b11aac9ff7eca085750455c5990cb1cfae6e", + "sha256:50025635ba8b629a86d9d5474e650da304cb46bbb4d18690532dd79341467846", + "sha256:517cbf6e67ae3623c5127206489d69eb2bdb27239a3c3cc559350ef52a3bbf0b", + "sha256:5855c85eb8b8a968a74dc7fb014c9166a05e7e7a8377fb91d78512900aadd13d", + "sha256:5a46859d7f947061b4010e554ccd1791467d1b1759f2dc2ec9055fa239f1bc26", + "sha256:65a0583c43d9f22cb2130c7b110e695fff834fd5e832a776a107197e59a1898e", + "sha256:674c704605092e3ebbbd13687b09c9f78c362a4bc710343efe37a91457123044", + "sha256:682726178138ea45a0766907957b60f3a1bf3acdf212436be9733f28b6c5af3c", + "sha256:686ba516e02db6d6f8c279d1641f7067ebb5dc58b1d0536c4aaebb7bf01cdc5d", + "sha256:6a5d3fbd02efd9cf6a8ffc2f17b53a33542f6b154e88dd7b42ef4a4c0700fdad", + "sha256:6aa8326a4a608e1c28da191edd7c924dff445251b94653988efb059b16577a4d", + "sha256:700375326ed641f3d9d32060a91513ad668bcb7e2cffb18415c399acb25de2ab", + "sha256:71f2f7715935a61fa3e4ae91d91b67e571aeb5cb5d10331ab681256bda2ad920", + "sha256:745f5a43fdd7d6d25a53ab1a99979e7f8ea419dfefebcab0a5a1e9095490ee5e", + "sha256:79f594919d2c1a0cc17d1988a6adaf9a2f000d2e1048f71f298b056b1018e872", + "sha256:7d68dc8acded354c972116f59b5eb2e5864432948e098c19fe6994926d8e15c3", + "sha256:7f67da97f5b9eac838b6980fc6da268622e91f8960e083a34533ca710bec8611", + "sha256:83b32f0940adec65099f3b1c215ef7f1d025d13ff947975a055989cb7fd019a4", + "sha256:876bf9ed62323bc7dcfc261dbc5572c996ef26fe6406b0ff985cbcf460fc8a4c", + "sha256:890ba852c16ace6ed9f90e8670f2c1c178d96510a21b06d2fa12d8783a905193", + "sha256:8b08605d248b974eb02f40bdcd1a35d3924c83a2a5e8f5d0fa5af852c4d960af", + "sha256:8b2eb034c94b0b96d5eddb290b7b5198460e2d5d0c421751713953a9c4e47d10", + "sha256:8b9ec12ad5f0a4625db34db7e0005be2632c1013b253a4a60e8302ad4d462afd", + "sha256:8c8d7594e38cf98d8a7df25b440f684b510cf4627fe038c297a87496d10a174f", + "sha256:8d3335c03100a073883857e91db9f2e0ef8a1cf42dc0369cbb9151c149dbbc1b", + "sha256:8d70e8f14900f2657c249ea4def963bed86a29b81f81f5b76b5a9215680de945", + "sha256:9039a11bca3c41be5a58282ed81ae422fa680409022b996032a43badef2a3752", + "sha256:91378d9f4151adc223d584489591dbb79f78814c0734a7c3bfa9c9e09978121c", + "sha256:9251eb8aa82e6cf88510530b29eef4fac825a2b709baf5b94a6094894f252387", + "sha256:933a7d5cd4b84f959aedeb84f2030f0a01d63ae6cf256629af3081cf3e3426e8", + "sha256:978fa96dbb005d599ec4fd9ed301b1cc45f1a8f7982d4793faf20b404b56677d", + "sha256:987b06d1cdb28f88a42e4fb8a87f094e43f3c435ed8e486533aea0bf2e53d931", + "sha256:99b1c16f732b3a9971406fbfe18468592c5a3529585a45a35adbc1389a529a03", + "sha256:99e7c4bb27ff1aab90dcc3e9d37ee5af0231ed98d99cb6f5250de28889a3d502", + "sha256:9c439fd54b2b9053717cca3de9583be6584b384d88d045f97d409f0ca867d80f", + "sha256:9ea4d00850ef1e917815e59b078ecb338f6a8efda23369677c54a5825dbebb55", + "sha256:9f30d205755566a25f2ae0382944fcae2f350500ae4df4e795efa9e850821d82", + "sha256:a06418fe1155e72e16dddc68bb3780ae44cebb2912fbd8bb6ff9161de56e1798", + "sha256:a0805911caedfe2736935250be5008b261f10a729a303f676d3d5fea6900c96a", + "sha256:a1f044792e1adcea82468a72310c66a7f08728d72a244730d14880cd1dabe36b", + "sha256:a216b26e5af0a8e265d4efd65d3bcec5fba6b26909014effe20cd302fd1138fa", + "sha256:a987578ac5214f18b99d1f2a3851cba5b09f4a689818a106c23dbad0dfeb760f", + "sha256:aad51239bee6bff6823bbbdc8ad85136c6125542bbc609e035ab98ca1e32a192", + "sha256:ab2299e3f92aa5417d5e16bb45bb4586171c1327568f638e8453c9f8d9e0f020", + "sha256:ab6919a09c055c9b092798ce18c6c4adf49d24d4d9e43a92b257e3f2548231e7", + "sha256:b0c43f8ae8f6be1d605b0465671124aa8d6a0e40f1fb81dcea28b7e3d87ca1e1", + "sha256:b1440c291db3f98a914e1afd9d6541e8fc60b4c3aab1a9008d03da4651e67386", + "sha256:b52e7c5ae35b00566d244ffefba0f46bb6bec749a50412acf42b1c3f402e2c90", + "sha256:bf4151acb541b6e895354f6ff9ac06995ad9e4175cbc6d30aaed08856558201f", + "sha256:c27ee01a6c3223025f4badd533bea5e87c988cb0ba2811b690395dfe16088cfe", + "sha256:c545d9d14d47be716495076b659db179206e3fd997769bc01e2d550eeb685596", + "sha256:c5934e2833afeaf36bd1eadb57256239785f5af0220ed8d21c2896ec4d3a765f", + "sha256:c7671d45530fcb6d5e22fd40c97e1e1e01965fc298cbda523bb640f3d923b387", + "sha256:c861a7e4aef15ff91233751619ce3a3d2b9e5877e0fcd76f9ea4f6847183aa16", + "sha256:d25b1c1096ef0447355f7293fbe9ad740f7c47ae032c2884113f8e87660d8f6e", + "sha256:d55777a80f78dd09410bd84ff8c95ee05519f41113b2df90a69622f5540c4f8b", + "sha256:d576c3ef8c7b2d560e301eb33891d1944d965a4d7a2eacb6332eee8a71827db6", + "sha256:dd9da77c6ec1f258387957b754f0df60766ac23ed698b61941ba9acccd3284d1", + "sha256:de0b6eceb46141984671802d412568d22c6bacc9b230174f9e55fc72ef4f57de", + "sha256:e07e5dbf8a83c66783a9fe2d4566968ea8c161199680e8ad38d53e075df5f0d0", + "sha256:e564d2238512c5ef5e9d79338ab77f1cbbda6c2d541ad41b2af445fb200385e3", + "sha256:ed89861ee8c8c47d6beb742a602f912b1bb64f598b1e2f3d758948721d44d468", + "sha256:ef1f08f2a924837e112cba2953e15aacfccbbfcd773b4b9b4723f8f2ddded08e", + "sha256:f411330a6376fb50e5b7a3e66894e4a39e60ca2e17dce258d53768fea06a37bd", + "sha256:f68996a3b3dc9335037f82754f9cdbe3a95db42bde571d8c3be26cc6245f2324", + "sha256:f7fdf55283ad38c33e35e2855565361f4bf0abd02470b8ab28d499c663bc5d7c", + "sha256:f963c6b1218b96db85fc37a9f0851eaf8b9040aa46dec112611697a7023da535", + "sha256:fa2818759aba55df50592ecbc95ebcdc99917fa7b55cc6796235b04193eb3c55", + "sha256:fae5cb554b604b3f9e2c608241b5d8d303e410d7dfb6d397c335f983495ce7f6", + "sha256:fb39aca7a64ad0c9490adfa719dbeeb87d13be137ca189d2564e596f8ba32c07" ], "markers": "python_version >= '3.8'", - "version": "==0.8.10" + "version": "==0.9.2" }, "rsa": { "hashes": [ @@ -1369,19 +1353,11 @@ }, "sentry-sdk": { "hashes": [ - "sha256:2281ba98011cfa9bc9bb15c1074b6dd9f7fdfce94033cd25b50f18f078ffed4c", - "sha256:b8b363aaa3f3d6a3acc1aa571efa4db29fb440339fed03560bb1276b8d2c2509" + "sha256:6bdb25bd9092478d3a817cb0d01fa99e296aea34d404eac3ca0037faa5c2aa0a", + "sha256:dcd88c68aa64dae715311b5ede6502fd684f70d00a7cd4858118f0ba3153a3ae" ], "index": "pypi", - "version": "==1.28.0" - }, - "setuptools": { - "hashes": [ - "sha256:11e52c67415a381d10d6b462ced9cfb97066179f0e871399e006c4ab101fc85f", - "sha256:baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235" - ], - "markers": "python_version >= '3.7'", - "version": "==68.0.0" + "version": "==1.28.1" }, "six": { "hashes": [ @@ -1515,11 +1491,11 @@ }, "click": { "hashes": [ - "sha256:2739815aaa5d2c986a88f1e9230c55e17f0caad3d958a5e13ad0797c166db9e3", - "sha256:b97d0c74955da062a7d4ef92fadb583806a585b2ea81958a81bd72726cbb8e37" + "sha256:48ee849951919527a045bfe3bf7baa8a959c423134e1a5b98c05c20ba75a1cbd", + "sha256:fa244bb30b3b5ee2cae3da8f55c9e5e0c0e86093306301fb418eb9dc40fbded5" ], "markers": "python_version >= '3.7'", - "version": "==8.1.4" + "version": "==8.1.6" }, "coverage": { "extras": [ @@ -1600,10 +1576,10 @@ }, "distlib": { "hashes": [ - "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46", - "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e" + "sha256:2e24928bc811348f0feb63014e97aaae3037f2cf48712d51ae61df7fd6075057", + "sha256:9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8" ], - "version": "==0.3.6" + "version": "==0.3.7" }, "executing": { "hashes": [ @@ -1622,11 +1598,11 @@ }, "identify": { "hashes": [ - "sha256:0aac67d5b4812498056d28a9a512a483f5085cc28640b02b258a59dac34301d4", - "sha256:986dbfb38b1140e763e413e6feb44cd731faf72d1909543178aa79b0e258265d" + "sha256:9df2489842707d431b38ce3410ef8df40da5b10a3e28a3fcac1a42523e956409", + "sha256:db4de0e758c0db8f81996816cd2f3f2f8c5c8d49a7fd02f3b4109aac6fd80e29" ], - "markers": "python_version >= '3.7'", - "version": "==2.5.24" + "markers": "python_version >= '3.8'", + "version": "==2.5.25" }, "iniconfig": { "hashes": [ @@ -1725,11 +1701,11 @@ }, "platformdirs": { "hashes": [ - "sha256:cec7b889196b9144d088e4c57d9ceef7374f6c39694ad1577a0aab50d27ea28c", - "sha256:f87ca4fcff7d2b0f81c6a748a77973d7af0f4d526f98f308477c3c436c74d528" + "sha256:1b42b450ad933e981d56e59f1b97495428c9bd60698baab9f3eb3d00d5822421", + "sha256:ad8291ae0ae5072f66c16945166cb11c63394c7a3ad1b1bc9828ca3162da8c2f" ], "markers": "python_version >= '3.7'", - "version": "==3.8.1" + "version": "==3.9.1" }, "pluggy": { "hashes": [ @@ -1795,38 +1771,22 @@ }, "pyyaml": { "hashes": [ - "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf", - "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696", - "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393", - "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77", - "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922", - "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5", - "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8", - "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10", - "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc", - "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018", - "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e", - "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253", - "sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347", - "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183", - "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541", - "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb", - "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185", - "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc", - "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db", - "sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa", - "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46", - "sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122", - "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b", - "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63", - "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df", - "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc", - "sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247", - "sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6", - "sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0" + "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97", + "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76", + "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2", + "sha256:6034f55dab5fea9e53f436aa68fa3ace2634918e8b5994d82f3621c04ff5ed2e", + "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648", + "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf", + "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f", + "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2", + "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee", + "sha256:ad9c67312c84def58f3c04504727ca879cb0013b2517c85a9a253f0cb6380c0a", + "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d", + "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c", + "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a" ], "index": "pypi", - "version": "==5.4.1" + "version": "==5.3.1" }, "setuptools": { "hashes": [ @@ -1861,11 +1821,11 @@ }, "virtualenv": { "hashes": [ - "sha256:34da10f14fea9be20e0fd7f04aba9732f84e593dac291b757ce42e3368a39419", - "sha256:8ff19a38c1021c742148edc4f81cb43d7f8c6816d2ede2ab72af5b84c749ade1" + "sha256:01aacf8decd346cf9a865ae85c0cdc7f64c8caa07ff0d8b1dfc1733d10677442", + "sha256:2ef6a237c31629da6442b0bcaa3999748108c7166318d1f55cc9f8d7294e97bd" ], "markers": "python_version >= '3.7'", - "version": "==20.23.1" + "version": "==20.24.1" }, "wcwidth": { "hashes": [