From c8bdd5d538983be0536e871bbf2422dfa46ddef3 Mon Sep 17 00:00:00 2001 From: zhu327 Date: Sun, 7 Apr 2024 16:48:30 +0800 Subject: [PATCH 001/108] feat: add super manger notification config api --- saas/backend/api/management/v2/serializers.py | 1 + saas/backend/api/management/v2/views/group.py | 3 +- saas/backend/apps/group/filters.py | 6 +- saas/backend/apps/group/views.py | 11 +- .../migrations/0024_auto_20240329_1055.py | 24 + ...025_rolepolicyexpirednotificationconfig.py | 29 + .../migrations/0026_auto_20240407_1602.py | 35 + saas/backend/apps/role/models.py | 21 + saas/backend/apps/role/serializers.py | 33 + saas/backend/apps/role/tasks.py | 78 +- saas/backend/apps/role/urls.py | 1 + saas/backend/apps/role/views/__init__.py | 2 + saas/backend/apps/role/views/role.py | 84 +- saas/backend/apps/user/tasks.py | 64 +- saas/backend/biz/role.py | 81 +- saas/backend/common/time.py | 18 + saas/config/celery_app.py | 24 + saas/config/default.py | 17 +- saas/poetry.lock | 982 +++++++++++------- saas/pyproject.toml | 38 +- saas/requirements.txt | 69 +- saas/requirements_dev.txt | 68 +- 22 files changed, 1164 insertions(+), 525 deletions(-) create mode 100644 saas/backend/apps/role/migrations/0024_auto_20240329_1055.py create mode 100644 saas/backend/apps/role/migrations/0025_rolepolicyexpirednotificationconfig.py create mode 100644 saas/backend/apps/role/migrations/0026_auto_20240407_1602.py diff --git a/saas/backend/api/management/v2/serializers.py b/saas/backend/api/management/v2/serializers.py index c0749b64c..c7b93e645 100644 --- a/saas/backend/api/management/v2/serializers.py +++ b/saas/backend/api/management/v2/serializers.py @@ -314,6 +314,7 @@ def get_subject_template_count(self, obj): class ManagementQueryGroupSLZ(serializers.Serializer): inherit = serializers.BooleanField(label="是否继承子集管理员的用户组", required=False, default=True) + only_inherit = serializers.BooleanField(label="是否只查询继承子集管理员的用户组", required=False, default=False) class ManagementGradeManagerCreateSLZ(GradeMangerBaseInfoSLZ): diff --git a/saas/backend/api/management/v2/views/group.py b/saas/backend/api/management/v2/views/group.py index 0cc326390..d9964fe4e 100644 --- a/saas/backend/api/management/v2/views/group.py +++ b/saas/backend/api/management/v2/views/group.py @@ -153,10 +153,11 @@ def list(self, request, *args, **kwargs): slz = ManagementQueryGroupSLZ(data=request.query_params) slz.is_valid(raise_exception=True) inherit = slz.validated_data["inherit"] + only_inherit = slz.validated_data["only_inherit"] role = get_object_or_404(self.queryset, id=kwargs["id"]) - queryset = RoleListQuery(role).query_group(inherit=inherit) + queryset = RoleListQuery(role).query_group(inherit=inherit, only_inherit=only_inherit) queryset = self.filter_queryset(queryset) queryset = self._filter(request, queryset) diff --git a/saas/backend/apps/group/filters.py b/saas/backend/apps/group/filters.py index 2861d4317..755da07a1 100644 --- a/saas/backend/apps/group/filters.py +++ b/saas/backend/apps/group/filters.py @@ -104,7 +104,11 @@ class Meta: class GroupSubjectTemplateFilter(filters.FilterSet): name = filters.CharFilter(label="名字", lookup_expr="icontains") + expire_soon = filters.BooleanFilter(method="expire_soon_filter", label="即将过期") class Meta: model = SubjectTemplate - fields = ["name"] + fields = ["name", "expire_soon"] + + def expire_soon_filter(self, queryset, name, value): + return queryset diff --git a/saas/backend/apps/group/views.py b/saas/backend/apps/group/views.py index c5717a44f..6a34ff8b2 100644 --- a/saas/backend/apps/group/views.py +++ b/saas/backend/apps/group/views.py @@ -45,7 +45,7 @@ from backend.common.filters import NoCheckModelFilterBackend from backend.common.lock import gen_group_upsert_lock from backend.common.serializers import HiddenSLZ, SystemQuerySLZ -from backend.common.time import PERMANENT_SECONDS +from backend.common.time import PERMANENT_SECONDS, get_soon_expire_ts from backend.service.constants import GroupMemberType, PermissionCodeEnum, RoleRelatedObjectType, RoleType from backend.service.models import Subject from backend.service.models.subject import SubjectType @@ -1196,9 +1196,14 @@ def list(self, request, *args, **kwargs): group = get_object_or_404(self.queryset, pk=kwargs["id"]) # 查询用户组拥有的权限模板 - subject_template_ids = list( - SubjectTemplateGroup.objects.filter(group_id=group.id).values("template_id", "expired_at", "created_time") + subject_template_qs = SubjectTemplateGroup.objects.filter(group_id=group.id).values( + "template_id", "expired_at", "created_time" ) + if request.query_params.get("expire_soon"): + expired_at = get_soon_expire_ts() + subject_template_qs = subject_template_qs.filter(expired_at__lt=expired_at) + + subject_template_ids = list(subject_template_qs) queryset = SubjectTemplate.objects.filter(id__in=[one["template_id"] for one in subject_template_ids]) queryset = self.filter_queryset(queryset) diff --git a/saas/backend/apps/role/migrations/0024_auto_20240329_1055.py b/saas/backend/apps/role/migrations/0024_auto_20240329_1055.py new file mode 100644 index 000000000..8c83a0f69 --- /dev/null +++ b/saas/backend/apps/role/migrations/0024_auto_20240329_1055.py @@ -0,0 +1,24 @@ +# Generated by Django 3.2.16 on 2024-03-29 02:55 + +from django.db import migrations + + +def delete_periodic_tasks(apps, schema_editor): + # 获取 PeriodicTask 模型 + PeriodicTask = apps.get_model('django_celery_beat', 'PeriodicTask') + + PeriodicTask.objects.filter(name="periodic_user_group_policy_expire_remind").delete() + PeriodicTask.objects.filter(name="periodic_role_group_expire_remind").delete() + PeriodicTask.objects.filter(name="check_user_permission_clean_task").delete() + PeriodicTask.objects.filter(name="clean_user_permission_clean_record").delete() + + +class Migration(migrations.Migration): + + dependencies = [ + ('role', '0023_auto_20240222_1416'), + ] + + operations = [ + migrations.RunPython(delete_periodic_tasks), + ] diff --git a/saas/backend/apps/role/migrations/0025_rolepolicyexpirednotificationconfig.py b/saas/backend/apps/role/migrations/0025_rolepolicyexpirednotificationconfig.py new file mode 100644 index 000000000..5f8e85bf2 --- /dev/null +++ b/saas/backend/apps/role/migrations/0025_rolepolicyexpirednotificationconfig.py @@ -0,0 +1,29 @@ +# Generated by Django 3.2.25 on 2024-04-07 08:02 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('role', '0024_auto_20240329_1055'), + ] + + operations = [ + migrations.CreateModel( + name='RolePolicyExpiredNotificationConfig', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('creator', models.CharField(max_length=64, verbose_name='创建者')), + ('updater', models.CharField(max_length=64, verbose_name='更新者')), + ('created_time', models.DateTimeField(auto_now_add=True)), + ('updated_time', models.DateTimeField(auto_now=True)), + ('role_id', models.IntegerField(unique=True, verbose_name='角色ID')), + ('_config', models.TextField(db_column='config', default='{}', verbose_name='配置')), + ], + options={ + 'verbose_name': '角色策略过期通知配置', + 'verbose_name_plural': '角色策略过期通知配置', + }, + ), + ] diff --git a/saas/backend/apps/role/migrations/0026_auto_20240407_1602.py b/saas/backend/apps/role/migrations/0026_auto_20240407_1602.py new file mode 100644 index 000000000..f5153c7ae --- /dev/null +++ b/saas/backend/apps/role/migrations/0026_auto_20240407_1602.py @@ -0,0 +1,35 @@ +# Generated by Django 3.2.25 on 2024-04-07 08:02 + +from django.db import migrations + +from backend.service.constants import RoleType +from backend.util.json import json_dumps + + +def init_super_manager_notification_config(apps, schema_editor): + """初始化超级管理员通知设置""" + Role = apps.get_model('role', 'Role') + RolePolicyExpiredNotificationConfig = apps.get_model('role', 'RolePolicyExpiredNotificationConfig') + + role = Role.objects.filter(type=RoleType.SUPER_MANAGER.value).first() + if not role: + return + + config = RolePolicyExpiredNotificationConfig(role_id=role.id) + config._config = json_dumps({ + "notification_types": ["mail", "rtx"], + "send_time": "10:00", + "expire_days_before": 15, + "expire_days_after": 1, + "send_days": ["monday"], + }) + config.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ('role', '0025_rolepolicyexpirednotificationconfig'), + ] + + operations = [migrations.RunPython(init_super_manager_notification_config),] diff --git a/saas/backend/apps/role/models.py b/saas/backend/apps/role/models.py index b9959377a..1a80bfdcc 100644 --- a/saas/backend/apps/role/models.py +++ b/saas/backend/apps/role/models.py @@ -423,3 +423,24 @@ class Meta: unique_together = [ ["role_id", "subject_type", "subject_id", "group_id", "subject_template_id"], ] + + +class RolePolicyExpiredNotificationConfig(BaseModel): + """ + 角色策略过期通知配置 + """ + + role_id = models.IntegerField("角色ID", unique=True) + _config = models.TextField("配置", db_column="config", default="{}") + + class Meta: + verbose_name = "角色策略过期通知配置" + verbose_name_plural = "角色策略过期通知配置" + + @property + def config(self): + return json.loads(self._config) + + @config.setter + def config(self, config): + self._config = json_dumps(config) diff --git a/saas/backend/apps/role/serializers.py b/saas/backend/apps/role/serializers.py index 0365e6d22..9eae2b01e 100644 --- a/saas/backend/apps/role/serializers.py +++ b/saas/backend/apps/role/serializers.py @@ -491,3 +491,36 @@ class RoleGroupMemberSearchSLZ(GroupSearchSLZ): class RoleGroupMemberCleanSLZ(serializers.Serializer): members = serializers.ListField(label="成员列表", child=GroupMemberSLZ(label="成员"), allow_empty=False) + + +class NotificationConfigSerializer(serializers.Serializer): + notification_types = serializers.ListField( + label="通知类型", + child=serializers.ChoiceField( + choices=[ + ("mail", "Email"), + ("rtx", "Rtx"), + ("weixin", "Weixin"), + ("sms", "sms"), + ] + ), + allow_empty=False, + ) + send_time = serializers.RegexField(r"^\d{2}:\d{2}$") + expire_days_before = serializers.IntegerField(min_value=0, max_value=15) + expire_days_after = serializers.IntegerField(min_value=0, max_value=15) + send_days = serializers.ListField( + label="发送日期", + child=serializers.ChoiceField( + choices=[ + ("monday", "Monday"), + ("tuesday", "Tuesday"), + ("wednesday", "Wednesday"), + ("thursday", "Thursday"), + ("friday", "Friday"), + ("saturday", "Saturday"), + ("sunday", "Sunday"), + ] + ), + allow_empty=True, + ) diff --git a/saas/backend/apps/role/tasks.py b/saas/backend/apps/role/tasks.py index c85887079..5d5147288 100644 --- a/saas/backend/apps/role/tasks.py +++ b/saas/backend/apps/role/tasks.py @@ -17,25 +17,27 @@ from blue_krill.web.std_error import APIError from celery import Task, current_app, shared_task from django.conf import settings +from django.core.paginator import Paginator from django.template.loader import render_to_string from pydantic.main import BaseModel from backend.apps.group.models import Group from backend.apps.organization.models import User from backend.apps.role.models import Role, RoleRelatedObject, RoleUser +from backend.apps.subject_template.models import SubjectTemplateGroup from backend.biz.group import GroupBiz, GroupTemplateGrantBean from backend.biz.policy import PolicyBean, PolicyBeanList, ResourceGroupBeanList from backend.biz.resource import ResourceBiz -from backend.biz.role import RoleBiz, RoleCheckBiz, RoleInfoBean +from backend.biz.role import RoleBiz, RoleCheckBiz, RoleInfoBean, get_global_notification_config from backend.biz.system import SystemBiz from backend.common.lock import gen_bcs_manager_lock, gen_init_grade_manager_lock -from backend.common.time import DAY_SECONDS, get_soon_expire_ts +from backend.common.time import DAY_SECONDS, get_expired_at, get_today_weekday from backend.component import esb from backend.component.bcs import list_project_for_iam from backend.component.cmdb import list_biz from backend.component.sops import list_project from backend.service.action import ActionService -from backend.service.constants import ADMIN_USER, RoleRelatedObjectType, RoleType +from backend.service.constants import ADMIN_USER, RoleRelatedObjectType, RoleType, SubjectType from backend.service.models import Action, PathResourceType from backend.service.models.policy import ResourceGroupList from backend.service.models.subject import Subject @@ -99,6 +101,15 @@ def run(self, role_id: int, expired_at: int): return exist_group_ids = self.group_biz.list_exist_groups_before_expired_at(group_ids, expired_at) + + # 查询有人员模版过期的用户组 + subject_template_group_ids = list( + SubjectTemplateGroup.objects.filter(expired_at__lt=expired_at, group_id__in=group_ids).values_list( + "group_id", flat=True + ) + ) + + exist_group_ids = list(set(exist_group_ids).union(set(subject_template_group_ids))) if not exist_group_ids: return @@ -126,34 +137,63 @@ def role_group_expire_remind(): """ 角色管理的用户组过期提醒 """ + # 获取配置 + notification_config = get_global_notification_config() + # 判断当前是星期几, 如果不在发送周期内, 直接返回 + if get_today_weekday() not in notification_config["send_days"]: + return + + # 如果通知配置中没有mail, 则不发送, 当前只支持邮件通知 + if "mail" not in notification_config["notification_types"]: + return + + expired_at_before = get_expired_at(notification_config["expire_days_before"]) + expired_at_after = get_expired_at(notification_config["expire_days_after"]) + group_biz = GroupBiz() - expired_at = get_soon_expire_ts() group_id_set, role_id_set = set(), set() # 去重用 # 查询有过期成员的用户组关系 - group_subjects = group_biz.list_group_subject_before_expired_at(expired_at) + group_subjects = group_biz.list_group_subject_before_expired_at(expired_at_after) for gs in group_subjects: - group_id = gs.group.id - if group_id in group_id_set: + # role 只通知部门相关的权限续期 + if gs.subject.type == SubjectType.USER.value: continue - group_id_set.add(group_id) + # 判断过期时间是否在区间内 + if gs.expired_at < expired_at_before: + continue - # 查询用户组对应的分级管理员 - relation = RoleRelatedObject.objects.filter( - object_type=RoleRelatedObjectType.GROUP.value, object_id=int(group_id) - ).first() + _add_group_role_set(group_id_set, role_id_set, int(gs.group.id)) - if not relation: - continue + # 查询人员模版过期的相关用户组 + qs = SubjectTemplateGroup.objects.filter(expired_at__range=(expired_at_before, expired_at_after)) + paginator = Paginator(qs, 100) + for i in paginator.page_range: + for stg in paginator.page(i): + _add_group_role_set(group_id_set, role_id_set, stg.group_id) - role_id = relation.role_id - if role_id in role_id_set: - continue + # 生成子任务 + for role_id in role_id_set: + SendRoleGroupExpireRemindMailTask().delay(role_id, expired_at_after) + + +def _add_group_role_set(group_id_set: Set[int], role_id_set: Set[int], group_id: int): + if group_id in group_id_set: + return + + group_id_set.add(group_id) + + # 查询用户组对应的分级管理员 + relation = RoleRelatedObject.objects.filter( + object_type=RoleRelatedObjectType.GROUP.value, object_id=group_id + ).first() + + if not relation: + return - role_id_set.add(role_id) - SendRoleGroupExpireRemindMailTask().delay(role_id, expired_at) + role_id_set.add(relation.role_id) class ResourceInstance(BaseModel): diff --git a/saas/backend/apps/role/urls.py b/saas/backend/apps/role/urls.py index f7b93136d..c828b3388 100644 --- a/saas/backend/apps/role/urls.py +++ b/saas/backend/apps/role/urls.py @@ -143,4 +143,5 @@ ] ), ), + path("notification_config/", views.RoleNotificationConfigView.as_view(), name="role.notification_config"), ] diff --git a/saas/backend/apps/role/views/__init__.py b/saas/backend/apps/role/views/__init__.py index d759801cb..1752845b5 100644 --- a/saas/backend/apps/role/views/__init__.py +++ b/saas/backend/apps/role/views/__init__.py @@ -29,6 +29,7 @@ RoleGroupMembersRenewViewSet, RoleGroupRenewViewSet, RoleMemberView, + RoleNotificationConfigView, RoleSearchViewSet, RoleSubjectScopCheckView, RoleSubjectScopeView, @@ -48,6 +49,7 @@ "RoleAuthorizationScopeView", "RoleCommonActionViewSet", "RoleGroupConfigView", + "RoleNotificationConfigView", "RoleGroupMembersRenewViewSet", "RoleGroupRenewViewSet", "RoleMemberView", diff --git a/saas/backend/apps/role/views/role.py b/saas/backend/apps/role/views/role.py index f8f75e09b..d145567fa 100644 --- a/saas/backend/apps/role/views/role.py +++ b/saas/backend/apps/role/views/role.py @@ -42,7 +42,15 @@ RoleUpdateAuditProvider, ) from backend.apps.role.filters import GradeMangerFilter, RoleCommonActionFilter, RoleSearchFilter -from backend.apps.role.models import Role, RoleCommonAction, RoleConfig, RoleRelatedObject, RoleRelation, RoleUser +from backend.apps.role.models import ( + Role, + RoleCommonAction, + RoleConfig, + RolePolicyExpiredNotificationConfig, + RoleRelatedObject, + RoleRelation, + RoleUser, +) from backend.apps.role.serializers import ( BaseGradeMangerSchemaSLZ, BaseGradeMangerSLZ, @@ -54,6 +62,7 @@ GradeMangerDetailSLZ, GradeMangerListSchemaSLZ, MemberSystemPermissionUpdateSLZ, + NotificationConfigSerializer, RoleCommonActionSLZ, RoleCommonCreateSLZ, RoleGroupConfigSLZ, @@ -70,6 +79,7 @@ SystemManagerSLZ, ) from backend.apps.role.tasks import sync_subset_manager_subject_scope +from backend.apps.subject_template.models import SubjectTemplateGroup from backend.audit.audit import audit_context_setter, view_audit_decorator from backend.biz.group import GroupBiz, GroupMemberExpiredAtBean from backend.biz.helper import RoleWithPermGroupBiz @@ -82,6 +92,7 @@ RoleObjectRelationChecker, RoleSubjectScopeChecker, can_user_manage_role, + update_periodic_permission_expire_remind_schedule, ) from backend.biz.subject import SubjectInfoList from backend.common.error_codes import error_codes @@ -89,6 +100,7 @@ from backend.common.serializers import SystemQuerySLZ from backend.common.time import get_soon_expire_ts from backend.service.constants import ( + GroupMemberType, GroupSaaSAttributeEnum, PermissionCodeEnum, RoleConfigType, @@ -639,6 +651,14 @@ def get_queryset(self): expired_at = get_soon_expire_ts() exist_group_ids = self.group_biz.list_exist_groups_before_expired_at(group_ids, expired_at) + # 查询有人员模版过期的用户组 + subject_template_group_ids = list( + SubjectTemplateGroup.objects.filter(expired_at__lt=expired_at, group_id__in=group_ids).values_list( + "group_id", flat=True + ) + ) + + exist_group_ids = list(set(exist_group_ids).union(set(subject_template_group_ids))) if not exist_group_ids: return Group.objects.none() @@ -674,13 +694,20 @@ def create(self, request, *args, **kwargs): sorted_members = sorted(members, key=lambda m: m["parent_id"]) for group_id, per_members in groupby(sorted_members, key=lambda m: m["parent_id"]): - self.group_biz.update_members_expired_at( - int(group_id), - [ - GroupMemberExpiredAtBean(type=m["type"], id=m["id"], expired_at=m["expired_at"]) - for m in per_members - ], - ) + part_members = [ + GroupMemberExpiredAtBean(type=one["type"], id=one["id"], expired_at=one["expired_at"]) + for one in per_members + if one["type"] != GroupMemberType.TEMPLATE.value + ] + if part_members: + self.group_biz.update_members_expired_at( + int(group_id), + part_members, + ) + + for m in per_members: + if m["type"] == GroupMemberType.TEMPLATE.value: + self.group_biz.update_subject_template_expired_at(int(group_id), int(m["id"]), m["expired_at"]) audit_context_setter(role=request.role, members=members) @@ -1090,3 +1117,44 @@ def post(self, request, *args, **kwargs): RoleListQuery(request.role, request.user).query_group().update(apply_disable=data["apply_disable"]) return Response({}) + + +class RoleNotificationConfigView(views.APIView): + """超级管理员的通知配置""" + + @swagger_auto_schema( + operation_description="超级管理员的通知配置", + responses={status.HTTP_200_OK: NotificationConfigSerializer(label="通知配置")}, + tags=["role"], + ) + def get(self, request, *args, **kwargs): + if request.role.type == RoleType.SUBSET_MANAGER.value: + raise error_codes.FORBIDDEN + + notification_config = RolePolicyExpiredNotificationConfig.objects.filter(role_id=request.role.id).get() + return Response(notification_config.config) + + @swagger_auto_schema( + operation_description="超级管理员的通知配置", + request_body=NotificationConfigSerializer(label="通知配置"), + responses={status.HTTP_200_OK: serializers.Serializer()}, + tags=["role"], + ) + def post(self, request, *args, **kwargs): + if request.role.type == RoleType.SUBSET_MANAGER.value: + raise error_codes.FORBIDDEN + + serializer = NotificationConfigSerializer(data=request.data) + serializer.is_valid(raise_exception=True) + + data = serializer.validated_data + + notification_config = RolePolicyExpiredNotificationConfig.objects.filter(role_id=request.role.id).get() + notification_config.config = data + notification_config.save() + + # 更新定时任务配置 + hour, minute = [int(i) for i in data["send_time"].split(":")] + update_periodic_permission_expire_remind_schedule(hour, minute) + + return Response({}) diff --git a/saas/backend/apps/user/tasks.py b/saas/backend/apps/user/tasks.py index 12ea289f6..e82d670e0 100644 --- a/saas/backend/apps/user/tasks.py +++ b/saas/backend/apps/user/tasks.py @@ -20,6 +20,7 @@ from django.template.loader import render_to_string from django.utils import timezone +from backend.apps.application.models import Application from backend.apps.organization.models import User from backend.apps.policy.models import Policy from backend.apps.subject.audit import log_user_cleanup_policy_audit_event @@ -29,12 +30,12 @@ from backend.biz.group import GroupBiz from backend.biz.helper import RoleWithPermGroupBiz from backend.biz.policy import PolicyOperationBiz, PolicyQueryBiz -from backend.biz.role import RoleBiz +from backend.biz.role import RoleBiz, get_global_notification_config from backend.biz.subject_template import SubjectTemplateBiz from backend.biz.system import SystemBiz -from backend.common.time import db_time, get_soon_expire_ts +from backend.common.time import db_time, get_expired_at, get_today_weekday from backend.component import esb -from backend.service.constants import RoleType, SubjectType +from backend.service.constants import ApplicationStatus, ApplicationType, RoleType, SubjectType from backend.service.models import Subject from backend.util.url import url_join @@ -54,9 +55,7 @@ class SendUserExpireRemindMailTask(Task): base_url = url_join(settings.APP_URL, "/perm-renewal") - def run(self, username: str, expired_at: int): - now = int(db_time()) - + def run(self, username: str, expired_at_before: int, expired_at_after: int): user = User.objects.filter(username=username).first() if not user: return @@ -66,13 +65,32 @@ def run(self, username: str, expired_at: int): # 注意: rbac用户所属组很大, 这里会变成多次查询, 也变成多次db io (单次 1000 个) groups = [ group - for group in self.group_biz.list_all_subject_group_before_expired_at(subject, expired_at) - if group.expired_at > now + for group in self.group_biz.list_all_subject_group_before_expired_at(subject, expired_at_after) + if group.expired_at > expired_at_before ] - policies = self.policy_biz.list_expired(subject, expired_at) - # NOTE 针对蓝盾权限的特殊处理, 等蓝盾迁移半年后删除数据 - policies = [p for p in policies if p.system.id != "bk_ci" and p.expired_at > now] + policies = self.policy_biz.list_expired(subject, expired_at_after) + policies = [p for p in policies if p.expired_at > expired_at_before] + + if not groups and not policies: + return + + # 查询当前用户未处理的续期单, 如果已经有相关数据, 过滤掉 + for application in Application.objects.filter( + applicant=username, + type=[ApplicationType.RENEW_ACTION.value, ApplicationType.RENEW_GROUP.value], + status=ApplicationStatus.PENDING.value, + ): + data = application.data + if application.type == ApplicationType.RENEW_ACTION.value: + action_set = { + (data["system"]["id"], action.get("id", action.get["action_id"])) for action in data["actions"] + } + policies = [p for p in policies if (p.system.id, p.action.id) not in action_set] + + elif application.type == ApplicationType.RENEW_GROUP.value: + group_id_set = {group["id"] for group in data["groups"]} + groups = [g for g in groups if g.id not in group_id_set] if not groups and not policies: return @@ -100,8 +118,20 @@ def user_group_policy_expire_remind(): """ 用户的用户组, 自定义权限过期检查 """ + # 获取配置 + notification_config = get_global_notification_config() + # 判断当前是星期几, 如果不在发送周期内, 直接返回 + if get_today_weekday() not in notification_config["send_days"]: + return + + # 如果通知配置中没有mail, 则不发送, 当前只支持邮件通知 + if "mail" not in notification_config["notification_types"]: + return + + expired_at_before = get_expired_at(notification_config["expire_days_before"]) + expired_at_after = get_expired_at(notification_config["expire_days_after"]) + username_set = set() # 用于去重 - expired_at = get_soon_expire_ts() # 1. 查询有自定义授权的用户 qs = Policy.objects.filter(subject_type=SubjectType.USER.value).only("subject_id") @@ -115,21 +145,25 @@ def user_group_policy_expire_remind(): continue username_set.add(username) - SendUserExpireRemindMailTask().delay(username, expired_at) + SendUserExpireRemindMailTask().delay(username, expired_at_before, expired_at_after) # 2. 查询用户组成员过期 group_biz = GroupBiz() - group_subjects = group_biz.list_group_subject_before_expired_at(expired_at) + group_subjects = group_biz.list_group_subject_before_expired_at(expired_at_after) for gs in group_subjects: if gs.subject.type != SubjectType.USER.value: continue + # 判断过期时间是否在区间内 + if gs.expired_at < expired_at_before: + continue + username = gs.subject.id if username in username_set: continue username_set.add(username) - SendUserExpireRemindMailTask().delay(username, expired_at) + SendUserExpireRemindMailTask().delay(username, expired_at_before, expired_at_after) @shared_task(ignore_result=True) diff --git a/saas/backend/biz/role.py b/saas/backend/biz/role.py index d6f8af024..dd0be7029 100644 --- a/saas/backend/biz/role.py +++ b/saas/backend/biz/role.py @@ -11,21 +11,31 @@ import logging from collections import defaultdict from textwrap import dedent -from typing import Dict, List, Optional, Set +from typing import Any, Dict, List, Optional, Set from blue_krill.web.std_error import APIError from django.conf import settings from django.db import connection from django.db.models import Case, Q, Value, When +from django.utils import timezone from django.utils.functional import cached_property from django.utils.translation import gettext as _ +from django_celery_beat.models import CrontabSchedule, PeriodicTask from pydantic import BaseModel, parse_obj_as from rest_framework import serializers from backend.apps.application.models import Application from backend.apps.group.models import Group from backend.apps.organization.models import Department, DepartmentMember, User -from backend.apps.role.models import Role, RoleRelatedObject, RoleRelation, RoleResourceRelation, RoleSource, RoleUser +from backend.apps.role.models import ( + Role, + RolePolicyExpiredNotificationConfig, + RoleRelatedObject, + RoleRelation, + RoleResourceRelation, + RoleSource, + RoleUser, +) from backend.apps.subject_template.models import SubjectTemplate from backend.apps.template.models import PermTemplate from backend.common.cache import cached @@ -645,17 +655,21 @@ def _query_subset_manager_template_id(self) -> List[int]: return template_ids - def query_group(self, inherit: bool = True): + def query_group(self, inherit: bool = True, only_inherit: bool = False): """ 查询用户组列表 """ if self.role.type == RoleType.STAFF.value: return Group.objects.filter(hidden=False) - group_ids = self._get_role_related_object_ids(RoleRelatedObjectType.GROUP.value, inherit=inherit) + group_ids = self._get_role_related_object_ids( + RoleRelatedObjectType.GROUP.value, inherit=inherit, only_inherit=only_inherit + ) return Group.objects.filter(id__in=group_ids) - def _get_role_related_object_ids(self, object_type: str, inherit: bool = True) -> List[int]: + def _get_role_related_object_ids( + self, object_type: str, inherit: bool = True, only_inherit: bool = False + ) -> List[int]: # 分级管理员可以管理子集管理员的所有用户组 if ( self.role.type == RoleType.GRADE_MANAGER.value @@ -663,7 +677,8 @@ def _get_role_related_object_ids(self, object_type: str, inherit: bool = True) - and inherit ): role_ids = RoleRelation.objects.list_sub_id(self.role.id) - role_ids.append(self.role.id) + if not only_inherit: + role_ids.append(self.role.id) return list( RoleRelatedObject.objects.filter(role_id__in=role_ids, object_type=object_type).values_list( "object_id", flat=True @@ -1328,3 +1343,57 @@ def handle(self): for node in resource_nodes ] RoleResourceRelation.objects.bulk_create(labels, ignore_conflicts=True) + + +@cached(timeout=600) +def get_global_notification_config() -> Dict[str, Any]: + """获取全局通知配置""" + role = get_super_manager() + notification_config = RolePolicyExpiredNotificationConfig.objects.filter(role_id=role.id).get() + return notification_config.config + + +def update_periodic_permission_expire_remind_schedule(hour: int, minute: int) -> None: + """更新周期性权限到期提醒调度""" + name = "periodic_permission_expire_remind" + + task = PeriodicTask.objects.filter(name=name).prefetch_related("crontab").first() + if not task: + # 如果不存在, 则创建 + schedule, _ = CrontabSchedule.objects.get_or_create( + minute=minute, + hour=hour, + day_of_week="*", + day_of_month="*", + month_of_year="*", + timezone=timezone.get_current_timezone(), + ) + PeriodicTask.objects.create( + crontab=schedule, + name=name, + task="config.celery_app.permission_expire_remind", + ) + return + + schedule = task.crontab + if schedule.minute == minute and schedule.hour == hour: + # 如果没有变更, 则无需更新 + return + + if not PeriodicTask.objects.filter(crontab_id=task.crontab_id).exclude(name=name).exists(): + # 如果只有这一个任务, 则更新 + schedule.minute = minute + schedule.hour = hour + schedule.save() + return + + schedule, _ = CrontabSchedule.objects.get_or_create( + minute=minute, + hour=hour, + day_of_week="*", + day_of_month="*", + month_of_year="*", + timezone=timezone.get_current_timezone(), + ) + task = schedule + task.save() diff --git a/saas/backend/common/time.py b/saas/backend/common/time.py index c6e8b76b6..7ee10ed55 100644 --- a/saas/backend/common/time.py +++ b/saas/backend/common/time.py @@ -33,6 +33,16 @@ EXPIRED = _("已过期") PERMANENT = _("永久") +WEEKDAYS = { + 0: "monday", + 1: "tuesday", + 2: "wednesday", + 3: "thursday", + 4: "friday", + 5: "saturday", + 6: "sunday", +} + def expired_at_display(expired_at: int, since_time: int = 0): """ @@ -116,3 +126,11 @@ def db_time(): def get_soon_expire_ts() -> int: return int(time.time()) + EXPIRE_SOON_SECONDS + + +def get_expired_at(days: int) -> int: + return int(time.time()) + days * DAY_SECONDS + + +def get_today_weekday(): + return WEEKDAYS[timezone.now().weekday()] diff --git a/saas/config/celery_app.py b/saas/config/celery_app.py index 2b45061c8..bfec10b20 100644 --- a/saas/config/celery_app.py +++ b/saas/config/celery_app.py @@ -11,6 +11,7 @@ import os from celery import Celery +from celery.schedules import crontab from kombu import Exchange, Queue # Set the default Django settings module for the 'celery' program. @@ -32,3 +33,26 @@ app.conf.task_queues = [ Queue("bk_iam", Exchange("bk_iam"), routing_key="bk_iam", queue_arguments={"x-ha-policy": "all"}), ] + +# set periodic tasks +@app.on_after_finalize.connect +def setup_periodic_tasks(sender, **kwargs): + from backend.biz.role import get_global_notification_config + + config = get_global_notification_config().config + hour, minute = [int(i) for i in config["send_time"].split(":")] + + sender.add_periodic_task( + crontab(minute=minute, hour=hour), + permission_expire_remind.s(), + name="periodic_permission_expire_remind", + ) + + +@app.task +def permission_expire_remind(): + from backend.apps.role.tasks import role_group_expire_remind + from backend.apps.user.tasks import user_group_policy_expire_remind + + role_group_expire_remind.delay() + user_group_policy_expire_remind.delay() diff --git a/saas/config/default.py b/saas/config/default.py index eb9537af3..b5db30a45 100644 --- a/saas/config/default.py +++ b/saas/config/default.py @@ -215,13 +215,14 @@ "backend.long_task.tasks", "backend.apps.temporary_policy.tasks", "backend.api.bkci.tasks", + "backend.apps.handover.tasks", ) CELERYBEAT_SCHEDULE = { "periodic_sync_organization": { "task": "backend.apps.organization.tasks.sync_organization", "schedule": crontab(minute=0, hour=0), # 每天凌晨执行 }, - "periodic_sync_organization": { + "periodic_clean_subject_to_delete": { "task": "backend.apps.organization.tasks.clean_subject_to_delete", "schedule": crontab(minute=0, hour=2), # 每天凌晨2时执行 }, @@ -237,14 +238,6 @@ "task": "backend.apps.application.tasks.check_or_update_application_status", "schedule": crontab(minute="*/30"), # 每30分钟执行一次 }, - "periodic_user_group_policy_expire_remind": { - "task": "backend.apps.user.tasks.user_group_policy_expire_remind", - "schedule": crontab(minute=0, hour=11), # 每天早上11时执行 - }, - # "periodic_role_group_expire_remind": { - # "task": "backend.apps.role.tasks.role_group_expire_remind", - # "schedule": crontab(minute=0, hour=11), # 每天早上11时执行 - # }, "periodic_user_expired_policy_cleanup": { "task": "backend.apps.user.tasks.user_cleanup_expired_policy", "schedule": crontab(minute=0, hour=2), # 每天凌晨2时执行 @@ -271,7 +264,7 @@ }, "periodic_retry_long_task": { "task": "backend.long_task.tasks.retry_long_task", - "schedule": crontab(minute="*/30"), # 每30分钟执行一次 + "schedule": crontab(minute="*/10"), # 每10分钟执行一次 }, "periodic_delete_unreferenced_expressions": { "task": "backend.apps.policy.tasks.delete_unreferenced_expressions", @@ -281,11 +274,11 @@ "task": "backend.apps.temporary_policy.tasks.clean_expired_temporary_policies", "schedule": crontab(minute=0, hour="*"), # 每小时执行 }, - "check_user_permission_clean_task": { + "periodic_check_user_permission_clean_task": { "task": "backend.apps.user.tasks.check_user_permission_clean_task", "schedule": crontab(minute=0, hour="*"), # 每小时执行 }, - "clean_user_permission_clean_record": { + "periodic_clean_user_permission_clean_record": { "task": "backend.apps.user.tasks.clean_user_permission_clean_record", "schedule": crontab(minute=0, hour=5), # 每天凌晨5时执行 }, diff --git a/saas/poetry.lock b/saas/poetry.lock index 9fd043209..3c6df464e 100644 --- a/saas/poetry.lock +++ b/saas/poetry.lock @@ -30,15 +30,15 @@ vine = ">=5.0.0" [[package]] name = "apigw-manager" -version = "1.1.5" -description = "" +version = "3.0.1" +description = "The SDK for managing blueking gateway resource." category = "main" optional = false python-versions = ">=3.6.1,<4.0.0" [package.dependencies] -bkapi-bk-apigateway = ">=1.0.6,<2.0.0" -bkapi-client-core = ">=1.1.3" +bkapi-bk-apigateway = ">=1.0.11,<2.0.0" +bkapi-client-core = ">=1.2.0" future = "0.18.2" packaging = ">=21.0" pyyaml = ">=5.4.1" @@ -48,6 +48,7 @@ urllib3 = ">=1.25.3" cryptography = ["cryptography (>=3.1.1)", "pyjwt (>=1.6.4)"] demo = ["Django (>=1.11.1)", "PyMySQL (>=1.0.2,<2.0.0)", "django-environ (>=0.8.1)", "pyjwt (>=1.6.4)"] django = ["Django (>=1.11.1)", "pyjwt (>=1.6.4)"] +kubernetes = ["kubernetes"] [[package]] name = "appdirs" @@ -145,6 +146,20 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, [package.extras] opentelemetry = ["opentelemetry-api (>=1.11.1)", "opentelemetry-exporter-otlp (>=1.11.1)", "opentelemetry-sdk (>=1.11.1)", "protobuf (>=3.19.5)"] +[[package]] +name = "bk-crypto-python-sdk" +version = "1.1.1" +description = "bk-crypto-python-sdk is a lightweight cryptography toolkit for Python applications based on Cryptodome / tongsuopy and other encryption libraries." +category = "main" +optional = false +python-versions = ">=3.6.2,<3.11" + +[package.dependencies] +dacite = ">=1.8.1,<2.0.0" +pycryptodomex = ">=3.18.0,<4.0.0" +tongsuopy-crayon = ">=1.0.2b5,<2.0.0" +wrapt = ">=1.15.0,<2.0.0" + [[package]] name = "bk-iam" version = "1.2.2" @@ -172,7 +187,7 @@ bkapi-client-core = ">=1.0.2,<2.0.0" [[package]] name = "bkapi-bk-apigateway" -version = "1.0.6" +version = "1.0.11" description = "蓝鲸API网关" category = "main" optional = false @@ -186,8 +201,8 @@ django = ["bkapi-client-core[django] (>=1.0.2,<2.0.0)"] [[package]] name = "bkapi-client-core" -version = "1.1.8" -description = "" +version = "1.2.0" +description = "A toolkit for buiding blueking API clients." category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" @@ -195,6 +210,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" [package.dependencies] curlify = ">=2.0" requests = ">=2.20" +six = "*" typing-extensions = ">=3.7.4" [package.extras] @@ -228,15 +244,16 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "blue-krill" -version = "1.2.3" +version = "1.2.6" description = "Tools and common packages for blueking paas" category = "main" optional = false -python-versions = ">=3.6.2,<3.11" +python-versions = "<3.11,>=3.6.2" [package.dependencies] +bk-crypto-python-sdk = ">=1.0.4,<2.0.0" click = "*" -cryptography = ">=3.0.0,<4.0.0" +cryptography = ">=3.0.0" curlify = ">=2.2.1,<3.0.0" dataclasses = {version = ">=0.7,<0.8", markers = "python_full_version >= \"3.6.2\" and python_version < \"3.7\""} django-environ = ">=0.8.1,<0.9.0" @@ -317,7 +334,7 @@ zstd = ["zstandard"] [[package]] name = "certifi" -version = "2022.12.7" +version = "2023.7.22" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false @@ -459,22 +476,24 @@ toml = ["tomli"] [[package]] name = "cryptography" -version = "3.3.2" +version = "40.0.2" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." category = "main" optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*" +python-versions = ">=3.6" [package.dependencies] cffi = ">=1.12" -six = ">=1.4.1" [package.extras] -docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"] -docstest = ["doc8", "pyenchant (>=1.6.11)", "sphinxcontrib-spelling (>=4.0.1)", "twine (>=1.12.0)"] -pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "sphinxcontrib-spelling (>=4.0.1)", "twine (>=1.12.0)"] +pep8test = ["black", "check-manifest", "mypy", "ruff"] +sdist = ["setuptools-rust (>=0.11.4)"] ssh = ["bcrypt (>=3.1.5)"] -test = ["hypothesis (>=1.11.4,!=3.79.2)", "iso8601", "pretend", "pytest (>=3.6.0,!=3.9.0,!=3.9.1,!=3.9.2)", "pytz"] +test = ["iso8601", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-shard (>=0.1.2)", "pytest-subtests", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] +tox = ["tox"] [[package]] name = "curlify" @@ -487,6 +506,20 @@ python-versions = "*" [package.dependencies] requests = "*" +[[package]] +name = "dacite" +version = "1.8.1" +description = "Simple creation of data classes from dictionaries." +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +dataclasses = {version = "*", markers = "python_version < \"3.7\""} + +[package.extras] +dev = ["black", "coveralls", "mypy", "pre-commit", "pylint", "pytest (>=5)", "pytest-benchmark", "pytest-cov"] + [[package]] name = "dataclasses" version = "0.7" @@ -519,7 +552,7 @@ dev = ["PyTest (<5)", "PyTest-Cov (<2.6)", "bump2version (<1)", "configparser (< [[package]] name = "django" -version = "3.2.16" +version = "3.2.25" description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design." category = "main" optional = false @@ -759,7 +792,7 @@ python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" [[package]] name = "gevent" -version = "21.12.0" +version = "22.10.2" description = "Coroutine-based network library" category = "main" optional = false @@ -767,7 +800,7 @@ python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5" [package.dependencies] cffi = {version = ">=1.12.2", markers = "platform_python_implementation == \"CPython\" and sys_platform == \"win32\""} -greenlet = {version = ">=1.1.0,<2.0", markers = "platform_python_implementation == \"CPython\""} +greenlet = {version = ">=2.0.0", markers = "platform_python_implementation == \"CPython\""} "zope.event" = "*" "zope.interface" = "*" @@ -782,7 +815,7 @@ test = ["backports.socketpair", "cffi (>=1.12.2)", "contextvars (==2.4)", "cover name = "gitdb" version = "4.0.9" description = "Git Object Database" -category = "dev" +category = "main" optional = false python-versions = ">=3.6" @@ -791,15 +824,15 @@ smmap = ">=3.0.1,<6" [[package]] name = "gitpython" -version = "3.1.20" +version = "3.1.18" description = "Python Git Library" -category = "dev" +category = "main" optional = false python-versions = ">=3.6" [package.dependencies] gitdb = ">=4.0.1,<5" -typing-extensions = {version = ">=3.7.4.3", markers = "python_version < \"3.10\""} +typing-extensions = {version = ">=3.7.4.0", markers = "python_version < \"3.8\""} [[package]] name = "googleapis-common-protos" @@ -817,14 +850,15 @@ grpc = ["grpcio (>=1.0.0)"] [[package]] name = "greenlet" -version = "1.1.2" +version = "2.0.2" description = "Lightweight in-process concurrent programming" category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" [package.extras] -docs = ["sphinx"] +docs = ["docutils (<0.18)", "sphinx"] +test = ["objgraph", "psutil"] [[package]] name = "grimp" @@ -839,7 +873,7 @@ networkx = ">=2.1,<3" [[package]] name = "grpcio" -version = "1.42.0" +version = "1.48.2" description = "HTTP/2-based RPC framework" category = "main" optional = false @@ -849,7 +883,7 @@ python-versions = ">=3.6" six = ">=1.5.2" [package.extras] -protobuf = ["grpcio-tools (>=1.42.0)"] +protobuf = ["grpcio-tools (>=1.48.2)"] [[package]] name = "gunicorn" @@ -970,17 +1004,17 @@ python-versions = "*" [[package]] name = "jinja2" -version = "2.11.3" +version = "3.0.3" description = "A very fast and expressive template engine." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.6" [package.dependencies] -MarkupSafe = ">=0.23" +MarkupSafe = ">=2.0" [package.extras] -i18n = ["Babel (>=0.8)"] +i18n = ["Babel (>=2.7)"] [[package]] name = "kombu" @@ -1014,11 +1048,11 @@ zookeeper = ["kazoo (>=1.3.1)"] [[package]] name = "markupsafe" -version = "1.1.1" +version = "2.0.1" description = "Safely add untrusted strings to HTML/XML markup." category = "main" optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" +python-versions = ">=3.6" [[package]] name = "mccabe" @@ -1107,7 +1141,7 @@ et-xmlfile = "*" [[package]] name = "opentelemetry-api" -version = "1.7.1" +version = "1.8.0" description = "OpenTelemetry Python API" category = "main" optional = false @@ -1205,7 +1239,7 @@ requests = ">=2.7,<3.0" [[package]] name = "opentelemetry-instrumentation" -version = "0.26b1" +version = "0.27b0" description = "Instrumentation Tools & Auto Instrumentation for OpenTelemetry Python" category = "main" optional = false @@ -1217,7 +1251,7 @@ wrapt = ">=1.0.0,<2.0.0" [[package]] name = "opentelemetry-instrumentation-celery" -version = "0.26b1" +version = "0.27b0" description = "OpenTelemetry Celery Instrumentation" category = "main" optional = false @@ -1225,16 +1259,16 @@ python-versions = ">=3.6" [package.dependencies] opentelemetry-api = ">=1.3,<2.0" -opentelemetry-instrumentation = "0.26b1" -opentelemetry-semantic-conventions = "0.26b1" +opentelemetry-instrumentation = "0.27b0" +opentelemetry-semantic-conventions = "0.27b0" [package.extras] instruments = ["celery (>=4.0,<6.0)"] -test = ["celery (>=4.0,<6.0)", "opentelemetry-test-utils (==0.26b1)", "pytest"] +test = ["celery (>=4.0,<6.0)", "opentelemetry-test-utils (==0.27b0)", "pytest"] [[package]] name = "opentelemetry-instrumentation-dbapi" -version = "0.26b1" +version = "0.27b0" description = "OpenTelemetry Database API instrumentation" category = "main" optional = false @@ -1242,16 +1276,16 @@ python-versions = ">=3.6" [package.dependencies] opentelemetry-api = ">=1.3,<2.0" -opentelemetry-instrumentation = "0.26b1" -opentelemetry-semantic-conventions = "0.26b1" +opentelemetry-instrumentation = "0.27b0" +opentelemetry-semantic-conventions = "0.27b0" wrapt = ">=1.0.0,<2.0.0" [package.extras] -test = ["opentelemetry-test-utils (==0.26b1)"] +test = ["opentelemetry-test-utils (==0.27b0)"] [[package]] name = "opentelemetry-instrumentation-django" -version = "0.26b1" +version = "0.27b0" description = "OpenTelemetry Instrumentation for Django" category = "main" optional = false @@ -1259,19 +1293,19 @@ python-versions = ">=3.6" [package.dependencies] opentelemetry-api = ">=1.3,<2.0" -opentelemetry-instrumentation = "0.26b1" -opentelemetry-instrumentation-wsgi = "0.26b1" -opentelemetry-semantic-conventions = "0.26b1" -opentelemetry-util-http = "0.26b1" +opentelemetry-instrumentation = "0.27b0" +opentelemetry-instrumentation-wsgi = "0.27b0" +opentelemetry-semantic-conventions = "0.27b0" +opentelemetry-util-http = "0.27b0" [package.extras] -asgi = ["opentelemetry-instrumentation-asgi (==0.26b1)"] +asgi = ["opentelemetry-instrumentation-asgi (==0.27b0)"] instruments = ["django (>=1.10)"] -test = ["django (>=1.10)", "opentelemetry-test-utils (==0.26b1)"] +test = ["django (>=1.10)", "opentelemetry-test-utils (==0.27b0)"] [[package]] name = "opentelemetry-instrumentation-logging" -version = "0.26b1" +version = "0.27b0" description = "OpenTelemetry Logging instrumentation" category = "main" optional = false @@ -1279,14 +1313,14 @@ python-versions = "*" [package.dependencies] opentelemetry-api = ">=1.3,<2.0" -opentelemetry-instrumentation = "0.26b1" +opentelemetry-instrumentation = "0.27b0" [package.extras] -test = ["opentelemetry-test-utils (==0.26b1)"] +test = ["opentelemetry-test-utils (==0.27b0)"] [[package]] name = "opentelemetry-instrumentation-redis" -version = "0.26b1" +version = "0.27b0" description = "OpenTelemetry Redis instrumentation" category = "main" optional = false @@ -1294,17 +1328,17 @@ python-versions = ">=3.6" [package.dependencies] opentelemetry-api = ">=1.3,<2.0" -opentelemetry-instrumentation = "0.26b1" -opentelemetry-semantic-conventions = "0.26b1" +opentelemetry-instrumentation = "0.27b0" +opentelemetry-semantic-conventions = "0.27b0" wrapt = ">=1.12.1" [package.extras] instruments = ["redis (>=2.6)"] -test = ["opentelemetry-sdk (>=1.3,<2.0)", "opentelemetry-test-utils (==0.26b1)", "redis (>=2.6)"] +test = ["opentelemetry-sdk (>=1.3,<2.0)", "opentelemetry-test-utils (==0.27b0)", "redis (>=2.6)"] [[package]] name = "opentelemetry-instrumentation-requests" -version = "0.26b1" +version = "0.27b0" description = "OpenTelemetry requests instrumentation" category = "main" optional = false @@ -1312,17 +1346,17 @@ python-versions = ">=3.6" [package.dependencies] opentelemetry-api = ">=1.3,<2.0" -opentelemetry-instrumentation = "0.26b1" -opentelemetry-semantic-conventions = "0.26b1" -opentelemetry-util-http = "0.26b1" +opentelemetry-instrumentation = "0.27b0" +opentelemetry-semantic-conventions = "0.27b0" +opentelemetry-util-http = "0.27b0" [package.extras] instruments = ["requests (>=2.0,<3.0)"] -test = ["httpretty (>=1.0,<2.0)", "opentelemetry-test-utils (==0.26b1)", "requests (>=2.0,<3.0)"] +test = ["httpretty (>=1.0,<2.0)", "opentelemetry-test-utils (==0.27b0)", "requests (>=2.0,<3.0)"] [[package]] name = "opentelemetry-instrumentation-wsgi" -version = "0.26b1" +version = "0.27b0" description = "WSGI Middleware for OpenTelemetry" category = "main" optional = false @@ -1330,12 +1364,12 @@ python-versions = ">=3.6" [package.dependencies] opentelemetry-api = ">=1.3,<2.0" -opentelemetry-instrumentation = "0.26b1" -opentelemetry-semantic-conventions = "0.26b1" -opentelemetry-util-http = "0.26b1" +opentelemetry-instrumentation = "0.27b0" +opentelemetry-semantic-conventions = "0.27b0" +opentelemetry-util-http = "0.27b0" [package.extras] -test = ["opentelemetry-test-utils (==0.26b1)"] +test = ["opentelemetry-test-utils (==0.27b0)"] [[package]] name = "opentelemetry-proto" @@ -1350,19 +1384,19 @@ protobuf = ">=3.13.0" [[package]] name = "opentelemetry-sdk" -version = "1.7.1" +version = "1.8.0" description = "OpenTelemetry Python SDK" category = "main" optional = false python-versions = ">=3.6" [package.dependencies] -opentelemetry-api = "1.7.1" -opentelemetry-semantic-conventions = "0.26b1" +opentelemetry-api = "1.8.0" +opentelemetry-semantic-conventions = "0.27b0" [[package]] name = "opentelemetry-semantic-conventions" -version = "0.26b1" +version = "0.27b0" description = "OpenTelemetry Semantic Conventions" category = "main" optional = false @@ -1370,7 +1404,7 @@ python-versions = ">=3.6" [[package]] name = "opentelemetry-util-http" -version = "0.26b1" +version = "0.27b0" description = "Web util for OpenTelemetry" category = "main" optional = false @@ -1471,6 +1505,14 @@ category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +[[package]] +name = "pycryptodomex" +version = "3.20.0" +description = "Cryptographic library for Python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + [[package]] name = "pydantic" version = "1.9.2" @@ -1659,7 +1701,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" [[package]] name = "redis" -version = "4.3.5" +version = "4.3.6" description = "Python client for Redis database and key-value store" category = "main" optional = false @@ -1726,7 +1768,7 @@ python-versions = ">=3.5" [[package]] name = "sentry-sdk" -version = "1.5.6" +version = "1.44.1" description = "Python client for Sentry (https://sentry.io)" category = "main" optional = false @@ -1734,24 +1776,38 @@ python-versions = "*" [package.dependencies] certifi = "*" -urllib3 = ">=1.10.0" +urllib3 = {version = ">=1.26.11", markers = "python_version >= \"3.6\""} [package.extras] aiohttp = ["aiohttp (>=3.5)"] +arq = ["arq (>=0.23)"] +asyncpg = ["asyncpg (>=0.23)"] beam = ["apache-beam (>=2.12)"] bottle = ["bottle (>=0.12.13)"] celery = ["celery (>=3)"] +celery-redbeat = ["celery-redbeat (>=2)"] chalice = ["chalice (>=1.16.0)"] +clickhouse-driver = ["clickhouse-driver (>=0.2.0)"] django = ["django (>=1.8)"] falcon = ["falcon (>=1.4)"] -flask = ["blinker (>=1.1)", "flask (>=0.11)"] +fastapi = ["fastapi (>=0.79.0)"] +flask = ["blinker (>=1.1)", "flask (>=0.11)", "markupsafe"] +grpcio = ["grpcio (>=1.21.1)"] httpx = ["httpx (>=0.16.0)"] -pure_eval = ["asttokens", "executing", "pure-eval"] +huey = ["huey (>=2)"] +loguru = ["loguru (>=0.5)"] +openai = ["openai (>=1.0.0)", "tiktoken (>=0.3.0)"] +opentelemetry = ["opentelemetry-distro (>=0.35b0)"] +opentelemetry-experimental = ["opentelemetry-distro (>=0.40b0,<1.0.0)", "opentelemetry-instrumentation-aiohttp-client (>=0.40b0,<1.0.0)", "opentelemetry-instrumentation-django (>=0.40b0,<1.0.0)", "opentelemetry-instrumentation-fastapi (>=0.40b0,<1.0.0)", "opentelemetry-instrumentation-flask (>=0.40b0,<1.0.0)", "opentelemetry-instrumentation-requests (>=0.40b0,<1.0.0)", "opentelemetry-instrumentation-sqlite3 (>=0.40b0,<1.0.0)", "opentelemetry-instrumentation-urllib (>=0.40b0,<1.0.0)"] +pure-eval = ["asttokens", "executing", "pure-eval"] +pymongo = ["pymongo (>=3.1)"] pyspark = ["pyspark (>=2.4.4)"] quart = ["blinker (>=1.1)", "quart (>=0.16.1)"] rq = ["rq (>=0.6)"] sanic = ["sanic (>=0.8)"] sqlalchemy = ["sqlalchemy (>=1.2)"] +starlette = ["starlette (>=0.19.1)"] +starlite = ["starlite (>=1.48)"] tornado = ["tornado (>=5)"] [[package]] @@ -1766,18 +1822,23 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" name = "smmap" version = "5.0.0" description = "A pure Python implementation of a sliding window memory map manager" -category = "dev" +category = "main" optional = false python-versions = ">=3.6" [[package]] name = "sqlparse" -version = "0.4.2" +version = "0.4.4" description = "A non-validating SQL parser." category = "main" optional = false python-versions = ">=3.5" +[package.extras] +dev = ["build", "flake8"] +doc = ["sphinx"] +test = ["pytest", "pytest-cov"] + [[package]] name = "stevedore" version = "3.5.2" @@ -1822,6 +1883,21 @@ category = "dev" optional = false python-versions = ">=3.6" +[[package]] +name = "tongsuopy-crayon" +version = "1.0.2b6" +description = "Tongsuo Python SDK" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +cffi = ">=1.12" + +[package.extras] +pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"] +test = ["pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-subtests", "pytest-xdist"] + [[package]] name = "typed-ast" version = "1.4.3" @@ -1888,15 +1964,15 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "urllib3" -version = "1.26.6" +version = "1.26.18" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" [package.extras] -brotli = ["brotlipy (>=0.6.0)"] -secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)"] +brotli = ["brotli (==1.0.9)", "brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] +secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] @@ -1951,11 +2027,11 @@ brotli = ["brotli"] [[package]] name = "wrapt" -version = "1.13.3" +version = "1.16.0" description = "Module for decorators, wrappers and monkey patching." category = "main" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +python-versions = ">=3.6" [[package]] name = "zipp" @@ -1997,7 +2073,7 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] [metadata] lock-version = "1.1" python-versions = "3.6.6" -content-hash = "07721f30bef1325deca5db1751a7f5994aac3813e85e8d07575e991bef9f2ff7" +content-hash = "7bf89e92f2209429554f56dbfbd12060f68f47deab98a58d66e4e4d751797a44" [metadata.files] aenum = [ @@ -2014,7 +2090,7 @@ amqp = [ {file = "amqp-5.1.1.tar.gz", hash = "sha256:2c1b13fecc0893e946c65cbd5f36427861cffa4ea2201d8f6fca22e2a373b5e2"}, ] apigw-manager = [ - {file = "apigw_manager-1.1.5-py3-none-any.whl", hash = "sha256:694ef800ace5344d0b2b5a88dbcd51c143fd3597066cab508b3141cc2f3449d2"}, + {file = "apigw_manager-3.0.1-py3-none-any.whl", hash = "sha256:5c1eafd7031dca609ddf8aebb26f716244d598801407bdc1fc3fbc44d5718ff0"}, ] appdirs = [ {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, @@ -2051,6 +2127,10 @@ billiard = [ bk-audit = [ {file = "bk-audit-1.0.1rc0.tar.gz", hash = "sha256:8ca9eebd759e4e61292d12b8574f4763d117f460f4724ce54156656f515c258b"}, ] +bk-crypto-python-sdk = [ + {file = "bk-crypto-python-sdk-1.1.1.tar.gz", hash = "sha256:dee920ca58d402cc203a4cc704993685c626a801ff3c60942ec7c412d6b194b2"}, + {file = "bk_crypto_python_sdk-1.1.1-py3-none-any.whl", hash = "sha256:042f1651a927cbf3e3cae2b3c2688b8151d572032e480bff7aa9d96405632c0a"}, +] bk-iam = [ {file = "bk-iam-1.2.2.tar.gz", hash = "sha256:34e4ec694197c86204e2be8fddbc4d155f6d6e31b327dd1414db4b1e2e69b4b7"}, {file = "bk_iam-1.2.2-py2.py3-none-any.whl", hash = "sha256:4a5d7ef6e4dcd35b8bf4d9d8c88177dcf45ea39db1fc59ac02220048ca7bd7c9"}, @@ -2059,18 +2139,18 @@ bk-notice-sdk = [ {file = "bk-notice-sdk-1.2.0.tar.gz", hash = "sha256:e013a45e15259b78c12242401c7d2aa36f9e8407aab00fd301d1f034c9ad47ca"}, ] bkapi-bk-apigateway = [ - {file = "bkapi-bk-apigateway-1.0.6.tar.gz", hash = "sha256:561bca6fcdb84f7cc9e7b3aee2b70318859b4bd8d374995df68f7dc394ea8a5d"}, + {file = "bkapi-bk-apigateway-1.0.11.tar.gz", hash = "sha256:fcdbc4eca8bfd3310995cec532ae127ee0533ea858c82916d9782e4df3df4c49"}, ] bkapi-client-core = [ - {file = "bkapi_client_core-1.1.8-py2.py3-none-any.whl", hash = "sha256:59937769f5aeb95c8737b37f516b1f6d641151c629c414267613993011cc8bcd"}, + {file = "bkapi_client_core-1.2.0-py2.py3-none-any.whl", hash = "sha256:f18b29e0fc0ee8d5eca33ea1f823f26dc7d7adc2f39670cc45cc2f8452f39630"}, ] black = [ {file = "black-21.7b0-py3-none-any.whl", hash = "sha256:1c7aa6ada8ee864db745b22790a32f94b2795c253a75d6d9b5e439ff10d23116"}, {file = "black-21.7b0.tar.gz", hash = "sha256:c8373c6491de9362e39271630b65b964607bc5c79c83783547d76c839b3aa219"}, ] blue-krill = [ - {file = "blue-krill-1.2.3.tar.gz", hash = "sha256:768df550c72a03ea2b029dbc09ddbaf6dadab8644e10781302b9544772e73bf7"}, - {file = "blue_krill-1.2.3-py3-none-any.whl", hash = "sha256:ebbf2f83d113365775bff9130e3878615f44808d78c222d752a9ab00098dbaa8"}, + {file = "blue_krill-1.2.6-py3-none-any.whl", hash = "sha256:2d43e7e816549ea0010bb105341785975c577deb35cdc35e1127c8906b840dfe"}, + {file = "blue_krill-1.2.6.tar.gz", hash = "sha256:85d6265b35d9daab2c6aa0059c71d841908b3973cb3ea24e7cdf91982f9a8191"}, ] cached-property = [ {file = "cached-property-1.5.2.tar.gz", hash = "sha256:9fa5755838eecbb2d234c3aa390bd80fbd3ac6b6869109bfc1b499f7bd89a130"}, @@ -2085,8 +2165,8 @@ celery = [ {file = "celery-5.1.2.tar.gz", hash = "sha256:8d9a3de9162965e97f8e8cc584c67aad83b3f7a267584fa47701ed11c3e0d4b0"}, ] certifi = [ - {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, - {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, + {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, + {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, ] cffi = [ {file = "cffi-1.14.6-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:22b9c3c320171c108e903d61a3723b51e37aaa8c81255b5e7ce102775bd01e2c"}, @@ -2223,24 +2303,32 @@ coverage = [ {file = "coverage-6.2.tar.gz", hash = "sha256:e2cad8093172b7d1595b4ad66f24270808658e11acf43a8f95b41276162eb5b8"}, ] cryptography = [ - {file = "cryptography-3.3.2-cp27-cp27m-macosx_10_10_x86_64.whl", hash = "sha256:541dd758ad49b45920dda3b5b48c968f8b2533d8981bcdb43002798d8f7a89ed"}, - {file = "cryptography-3.3.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:49570438e60f19243e7e0d504527dd5fe9b4b967b5a1ff21cc12b57602dd85d3"}, - {file = "cryptography-3.3.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:a9a4ac9648d39ce71c2f63fe7dc6db144b9fa567ddfc48b9fde1b54483d26042"}, - {file = "cryptography-3.3.2-cp27-cp27m-win32.whl", hash = "sha256:aa4969f24d536ae2268c902b2c3d62ab464b5a66bcb247630d208a79a8098e9b"}, - {file = "cryptography-3.3.2-cp27-cp27m-win_amd64.whl", hash = "sha256:1bd0ccb0a1ed775cd7e2144fe46df9dc03eefd722bbcf587b3e0616ea4a81eff"}, - {file = "cryptography-3.3.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e18e6ab84dfb0ab997faf8cca25a86ff15dfea4027b986322026cc99e0a892da"}, - {file = "cryptography-3.3.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:c7390f9b2119b2b43160abb34f63277a638504ef8df99f11cb52c1fda66a2e6f"}, - {file = "cryptography-3.3.2-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:0d7b69674b738068fa6ffade5c962ecd14969690585aaca0a1b1fc9058938a72"}, - {file = "cryptography-3.3.2-cp36-abi3-manylinux1_x86_64.whl", hash = "sha256:922f9602d67c15ade470c11d616f2b2364950602e370c76f0c94c94ae672742e"}, - {file = "cryptography-3.3.2-cp36-abi3-manylinux2010_x86_64.whl", hash = "sha256:a0f0b96c572fc9f25c3f4ddbf4688b9b38c69836713fb255f4a2715d93cbaf44"}, - {file = "cryptography-3.3.2-cp36-abi3-manylinux2014_aarch64.whl", hash = "sha256:a777c096a49d80f9d2979695b835b0f9c9edab73b59e4ceb51f19724dda887ed"}, - {file = "cryptography-3.3.2-cp36-abi3-win32.whl", hash = "sha256:3c284fc1e504e88e51c428db9c9274f2da9f73fdf5d7e13a36b8ecb039af6e6c"}, - {file = "cryptography-3.3.2-cp36-abi3-win_amd64.whl", hash = "sha256:7951a966613c4211b6612b0352f5bf29989955ee592c4a885d8c7d0f830d0433"}, - {file = "cryptography-3.3.2.tar.gz", hash = "sha256:5a60d3780149e13b7a6ff7ad6526b38846354d11a15e21068e57073e29e19bed"}, + {file = "cryptography-40.0.2-cp36-abi3-macosx_10_12_universal2.whl", hash = "sha256:8f79b5ff5ad9d3218afb1e7e20ea74da5f76943ee5edb7f76e56ec5161ec782b"}, + {file = "cryptography-40.0.2-cp36-abi3-macosx_10_12_x86_64.whl", hash = "sha256:05dc219433b14046c476f6f09d7636b92a1c3e5808b9a6536adf4932b3b2c440"}, + {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4df2af28d7bedc84fe45bd49bc35d710aede676e2a4cb7fc6d103a2adc8afe4d"}, + {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dcca15d3a19a66e63662dc8d30f8036b07be851a8680eda92d079868f106288"}, + {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:a04386fb7bc85fab9cd51b6308633a3c271e3d0d3eae917eebab2fac6219b6d2"}, + {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:adc0d980fd2760c9e5de537c28935cc32b9353baaf28e0814df417619c6c8c3b"}, + {file = "cryptography-40.0.2-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:d5a1bd0e9e2031465761dfa920c16b0065ad77321d8a8c1f5ee331021fda65e9"}, + {file = "cryptography-40.0.2-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:a95f4802d49faa6a674242e25bfeea6fc2acd915b5e5e29ac90a32b1139cae1c"}, + {file = "cryptography-40.0.2-cp36-abi3-win32.whl", hash = "sha256:aecbb1592b0188e030cb01f82d12556cf72e218280f621deed7d806afd2113f9"}, + {file = "cryptography-40.0.2-cp36-abi3-win_amd64.whl", hash = "sha256:b12794f01d4cacfbd3177b9042198f3af1c856eedd0a98f10f141385c809a14b"}, + {file = "cryptography-40.0.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:142bae539ef28a1c76794cca7f49729e7c54423f615cfd9b0b1fa90ebe53244b"}, + {file = "cryptography-40.0.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:956ba8701b4ffe91ba59665ed170a2ebbdc6fc0e40de5f6059195d9f2b33ca0e"}, + {file = "cryptography-40.0.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4f01c9863da784558165f5d4d916093737a75203a5c5286fde60e503e4276c7a"}, + {file = "cryptography-40.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:3daf9b114213f8ba460b829a02896789751626a2a4e7a43a28ee77c04b5e4958"}, + {file = "cryptography-40.0.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:48f388d0d153350f378c7f7b41497a54ff1513c816bcbbcafe5b829e59b9ce5b"}, + {file = "cryptography-40.0.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c0764e72b36a3dc065c155e5b22f93df465da9c39af65516fe04ed3c68c92636"}, + {file = "cryptography-40.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:cbaba590180cba88cb99a5f76f90808a624f18b169b90a4abb40c1fd8c19420e"}, + {file = "cryptography-40.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7a38250f433cd41df7fcb763caa3ee9362777fdb4dc642b9a349721d2bf47404"}, + {file = "cryptography-40.0.2.tar.gz", hash = "sha256:c33c0d32b8594fa647d2e01dbccc303478e16fdd7cf98652d5b3ed11aa5e5c99"}, ] curlify = [ {file = "curlify-2.2.1.tar.gz", hash = "sha256:0d3f02e7235faf952de8ef45ef469845196d30632d5838bcd5aee217726ddd6d"}, ] +dacite = [ + {file = "dacite-1.8.1-py3-none-any.whl", hash = "sha256:cc31ad6fdea1f49962ea42db9421772afe01ac5442380d9a99fcf3d188c61afe"}, +] dataclasses = [ {file = "dataclasses-0.7-py3-none-any.whl", hash = "sha256:3459118f7ede7c8bea0fe795bff7c6c2ce287d01dd226202f7c9ebc0610a7836"}, {file = "dataclasses-0.7.tar.gz", hash = "sha256:494a6dcae3b8bcf80848eea2ef64c0cc5cd307ffc263e17cdf42f3e5420808e6"}, @@ -2254,8 +2342,8 @@ deprecated = [ {file = "Deprecated-1.2.13.tar.gz", hash = "sha256:43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d"}, ] django = [ - {file = "Django-3.2.16-py3-none-any.whl", hash = "sha256:18ba8efa36b69cfcd4b670d0fa187c6fe7506596f0ababe580e16909bcdec121"}, - {file = "Django-3.2.16.tar.gz", hash = "sha256:3adc285124244724a394fa9b9839cc8cd116faf7d159554c43ecdaa8cdf0b94d"}, + {file = "Django-3.2.25-py3-none-any.whl", hash = "sha256:a52ea7fcf280b16f7b739cec38fa6d3f8953a5456986944c3ca97e79882b4e38"}, + {file = "Django-3.2.25.tar.gz", hash = "sha256:7ca38a78654aee72378594d63e51636c04b8e28574f5505dff630895b5472777"}, ] django-celery-beat = [ {file = "django-celery-beat-2.2.1.tar.gz", hash = "sha256:97ae5eb309541551bdb07bf60cc57cadacf42a74287560ced2d2c06298620234"}, @@ -2327,157 +2415,187 @@ future = [ {file = "future-0.18.2.tar.gz", hash = "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"}, ] gevent = [ - {file = "gevent-21.12.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:2afa3f3ad528155433f6ac8bd64fa5cc303855b97004416ec719a6b1ca179481"}, - {file = "gevent-21.12.0-cp27-cp27m-win32.whl", hash = "sha256:177f93a3a90f46a5009e0841fef561601e5c637ba4332ab8572edd96af650101"}, - {file = "gevent-21.12.0-cp27-cp27m-win_amd64.whl", hash = "sha256:a5ad4ed8afa0a71e1927623589f06a9b5e8b5e77810be3125cb4d93050d3fd1f"}, - {file = "gevent-21.12.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:eae3c46f9484eaacd67ffcdf4eaf6ca830f587edd543613b0f5c4eb3c11d052d"}, - {file = "gevent-21.12.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e1899b921219fc8959ff9afb94dae36be82e0769ed13d330a393594d478a0b3a"}, - {file = "gevent-21.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c21cb5c9f4e14d75b3fe0b143ec875d7dbd1495fad6d49704b00e57e781ee0f"}, - {file = "gevent-21.12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:542ae891e2aa217d2cf6d8446538fcd2f3263a40eec123b970b899bac391c47a"}, - {file = "gevent-21.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:0082d8a5d23c35812ce0e716a91ede597f6dd2c5ff508a02a998f73598c59397"}, - {file = "gevent-21.12.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:da8d2d51a49b2a5beb02ad619ca9ddbef806ef4870ba04e5ac7b8b41a5b61db3"}, - {file = "gevent-21.12.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cfff82f05f14b7f5d9ed53ccb7a609ae8604df522bb05c971bca78ec9d8b2b9"}, - {file = "gevent-21.12.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:7909780f0cf18a1fc32aafd8c8e130cdd93c6e285b11263f7f2d1a0f3678bc50"}, - {file = "gevent-21.12.0-cp36-cp36m-win32.whl", hash = "sha256:bb5cb8db753469c7a9a0b8a972d2660fe851aa06eee699a1ca42988afb0aaa02"}, - {file = "gevent-21.12.0-cp36-cp36m-win_amd64.whl", hash = "sha256:c43f081cbca41d27fd8fef9c6a32cf83cb979345b20abc07bf68df165cdadb24"}, - {file = "gevent-21.12.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:74fc1ef16b86616cfddcc74f7292642b0f72dde4dd95aebf4c45bb236744be54"}, - {file = "gevent-21.12.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cc2fef0f98ee180704cf95ec84f2bc2d86c6c3711bb6b6740d74e0afe708b62c"}, - {file = "gevent-21.12.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08b4c17064e28f4eb85604486abc89f442c7407d2aed249cf54544ce5c9baee6"}, - {file = "gevent-21.12.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:973749bacb7bc4f4181a8fb2a7e0e2ff44038de56d08e856dd54a5ac1d7331b4"}, - {file = "gevent-21.12.0-cp37-cp37m-win32.whl", hash = "sha256:6a02a88723ed3f0fd92cbf1df3c4cd2fbd87d82b0a4bac3e36a8875923115214"}, - {file = "gevent-21.12.0-cp37-cp37m-win_amd64.whl", hash = "sha256:f289fae643a3f1c3b909d6b033e6921b05234a4907e9c9c8c3f1fe403e6ac452"}, - {file = "gevent-21.12.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:3baeeccc4791ba3f8db27179dff11855a8f9210ddd754f6c9b48e0d2561c2aea"}, - {file = "gevent-21.12.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05c5e8a50cd6868dd36536c92fb4468d18090e801bd63611593c0717bab63692"}, - {file = "gevent-21.12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d86438ede1cbe0fde6ef4cc3f72bf2f1ecc9630d8b633ff344a3aeeca272cdd"}, - {file = "gevent-21.12.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:01928770972181ad8866ee37ea3504f1824587b188fcab782ef1619ce7538766"}, - {file = "gevent-21.12.0-cp38-cp38-win32.whl", hash = "sha256:3c012c73e6c61f13c75e3a4869dbe6a2ffa025f103421a6de9c85e627e7477b1"}, - {file = "gevent-21.12.0-cp38-cp38-win_amd64.whl", hash = "sha256:b7709c64afa8bb3000c28bb91ec42c79594a7cb0f322e20427d57f9762366a5b"}, - {file = "gevent-21.12.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:ec21f9eaaa6a7b1e62da786132d6788675b314f25f98d9541f1bf00584ed4749"}, - {file = "gevent-21.12.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:22ce1f38fdfe2149ffe8ec2131ca45281791c1e464db34b3b4321ae9d8d2efbb"}, - {file = "gevent-21.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ccffcf708094564e442ac6fde46f0ae9e40015cb69d995f4b39cc29a7643881"}, - {file = "gevent-21.12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:24d3550fbaeef5fddd794819c2853bca45a86c3d64a056a2c268d981518220d1"}, - {file = "gevent-21.12.0-cp39-cp39-win32.whl", hash = "sha256:2bcec9f80196c751fdcf389ca9f7141e7b0db960d8465ed79be5e685bfcad682"}, - {file = "gevent-21.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:3dad62f55fad839d498c801e139481348991cee6e1c7706041b5fe096cb6a279"}, - {file = "gevent-21.12.0-pp27-pypy_73-win_amd64.whl", hash = "sha256:9f9652d1e4062d4b5b5a0a49ff679fa890430b5f76969d35dccb2df114c55e0f"}, - {file = "gevent-21.12.0.tar.gz", hash = "sha256:f48b64578c367b91fa793bf8eaaaf4995cb93c8bc45860e473bf868070ad094e"}, + {file = "gevent-22.10.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:97cd42382421779f5d82ec5007199e8a84aa288114975429e4fd0a98f2290f10"}, + {file = "gevent-22.10.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:1e1286a76f15b5e15f1e898731d50529e249529095a032453f2c101af3fde71c"}, + {file = "gevent-22.10.2-cp27-cp27m-win32.whl", hash = "sha256:59b47e81b399d49a5622f0f503c59f1ce57b7705306ea0196818951dfc2f36c8"}, + {file = "gevent-22.10.2-cp27-cp27m-win_amd64.whl", hash = "sha256:1d543c9407a1e4bca11a8932916988cfb16de00366de5bf7bc9e7a3f61e60b18"}, + {file = "gevent-22.10.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:4e2f008c82dc54ec94f4de12ca6feea60e419babb48ec145456907ae61625aa4"}, + {file = "gevent-22.10.2-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:990d7069f14dc40674e0d5cb43c68fd3bad8337048613b9bb94a0c4180ffc176"}, + {file = "gevent-22.10.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f23d0997149a816a2a9045af29c66f67f405a221745b34cefeac5769ed451db8"}, + {file = "gevent-22.10.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b43d500d7d3c0e03070dee813335bb5315215aa1cf6a04c61093dfdd718640b3"}, + {file = "gevent-22.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b68f4c9e20e47ad49fe797f37f91d5bbeace8765ce2707f979a8d4ec197e4d"}, + {file = "gevent-22.10.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1f001cac0ba8da76abfeb392a3057f81fab3d67cc916c7df8ea977a44a2cc989"}, + {file = "gevent-22.10.2-cp310-cp310-win_amd64.whl", hash = "sha256:3b7eae8a0653ba95a224faaddf629a913ace408edb67384d3117acf42d7dcf89"}, + {file = "gevent-22.10.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8f2477e7b0a903a01485c55bacf2089110e5f767014967ba4b287ff390ae2638"}, + {file = "gevent-22.10.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ddaa3e310a8f1a45b5c42cf50b54c31003a3028e7d4e085059090ea0e7a5fddd"}, + {file = "gevent-22.10.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98bc510e80f45486ef5b806a1c305e0e89f0430688c14984b0dbdec03331f48b"}, + {file = "gevent-22.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:877abdb3a669576b1d51ce6a49b7260b2a96f6b2424eb93287e779a3219d20ba"}, + {file = "gevent-22.10.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d21ad79cca234cdbfa249e727500b0ddcbc7adfff6614a96e6eaa49faca3e4f2"}, + {file = "gevent-22.10.2-cp311-cp311-win_amd64.whl", hash = "sha256:1e955238f59b2947631c9782a713280dd75884e40e455313b5b6bbc20b92ff73"}, + {file = "gevent-22.10.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:5aa99e4882a9e909b4756ee799c6fa0f79eb0542779fad4cc60efa23ec1b2aa8"}, + {file = "gevent-22.10.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:d82081656a5b9a94d37c718c8646c757e1617e389cdc533ea5e6a6f0b8b78545"}, + {file = "gevent-22.10.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54f4bfd74c178351a4a05c5c7df6f8a0a279ff6f392b57608ce0e83c768207f9"}, + {file = "gevent-22.10.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ff3796692dff50fec2f381b9152438b221335f557c4f9b811f7ded51b7a25a1"}, + {file = "gevent-22.10.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f01c9adbcb605364694b11dcd0542ec468a29ac7aba2fb5665dc6caf17ba4d7e"}, + {file = "gevent-22.10.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:9d85574eb729f981fea9a78998725a06292d90a3ed50ddca74530c3148c0be41"}, + {file = "gevent-22.10.2-cp36-cp36m-win32.whl", hash = "sha256:8c192d2073e558e241f0b592c1e2b34127a4481a5be240cad4796533b88b1a98"}, + {file = "gevent-22.10.2-cp36-cp36m-win_amd64.whl", hash = "sha256:a2237451c721a0f874ef89dbb4af4fdc172b76a964befaa69deb15b8fff10f49"}, + {file = "gevent-22.10.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:53ee7f170ed42c7561fe8aff5d381dc9a4124694e70580d0c02fba6aafc0ea37"}, + {file = "gevent-22.10.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:96c56c280e3c43cfd075efd10b250350ed5ffd3c1514ec99a080b1b92d7c8374"}, + {file = "gevent-22.10.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b6c144e08dfad4106effc043a026e5d0c0eff6ad031904c70bf5090c63f3a6a7"}, + {file = "gevent-22.10.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:018f93de7d5318d2fb440f846839a4464738468c3476d5c9cf7da45bb71c18bd"}, + {file = "gevent-22.10.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7ed2346eb9dc4344f9cb0d7963ce5b74fe16fdd031a2809bb6c2b6eba7ebcd5"}, + {file = "gevent-22.10.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:84c517e33ed604fa06b7d756dc0171169cc12f7fdd68eb7b17708a62eebf4516"}, + {file = "gevent-22.10.2-cp37-cp37m-win32.whl", hash = "sha256:4114f0f439f0b547bb6f1d474fee99ddb46736944ad2207cef3771828f6aa358"}, + {file = "gevent-22.10.2-cp37-cp37m-win_amd64.whl", hash = "sha256:0d581f22a5be6281b11ad6309b38b18f0638cf896931223cbaa5adb904826ef6"}, + {file = "gevent-22.10.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2929377c8ebfb6f4d868d161cd8de2ea6b9f6c7a5fcd4f78bcd537319c16190b"}, + {file = "gevent-22.10.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:efc003b6c1481165af61f0aeac248e0a9ac8d880bb3acbe469b448674b2d5281"}, + {file = "gevent-22.10.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db562a8519838bddad0c439a2b12246bab539dd50e299ea7ff3644274a33b6a5"}, + {file = "gevent-22.10.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1472012493ca1fac103f700d309cb6ef7964dcdb9c788d1768266e77712f5e49"}, + {file = "gevent-22.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c04ee32c11e9fcee47c1b431834878dc987a7a2cc4fe126ddcae3bad723ce89"}, + {file = "gevent-22.10.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8729129edef2637a8084258cb9ec4e4d5ca45d97ac77aa7a6ff19ccb530ab731"}, + {file = "gevent-22.10.2-cp38-cp38-win32.whl", hash = "sha256:ae90226074a6089371a95f20288431cd4b3f6b0b096856afd862e4ac9510cddd"}, + {file = "gevent-22.10.2-cp38-cp38-win_amd64.whl", hash = "sha256:494c7f29e94df9a1c3157d67bb7edfa32a46eed786e04d9ee68d39f375e30001"}, + {file = "gevent-22.10.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:58898dbabb5b11e4d0192aae165ad286dc6742c543e1be9d30dc82753547c508"}, + {file = "gevent-22.10.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:4197d423e198265eef39a0dea286ef389da9148e070310f34455ecee8172c391"}, + {file = "gevent-22.10.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da4183f0b9d9a1e25e1758099220d32c51cc2c6340ee0dea3fd236b2b37598e4"}, + {file = "gevent-22.10.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a5488eba6a568b4d23c072113da4fc0feb1b5f5ede7381656dc913e0d82204e2"}, + {file = "gevent-22.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:319d8b1699b7b8134de66d656cd739b308ab9c45ace14d60ae44de7775b456c9"}, + {file = "gevent-22.10.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f3329bedbba4d3146ae58c667e0f9ac1e6f1e1e6340c7593976cdc60aa7d1a47"}, + {file = "gevent-22.10.2-cp39-cp39-win32.whl", hash = "sha256:172caa66273315f283e90a315921902cb6549762bdcb0587fd60cb712a9d6263"}, + {file = "gevent-22.10.2-cp39-cp39-win_amd64.whl", hash = "sha256:323b207b281ba0405fea042067fa1a61662e5ac0d574ede4ebbda03efd20c350"}, + {file = "gevent-22.10.2-pp27-pypy_73-win_amd64.whl", hash = "sha256:ed7f16613eebf892a6a744d7a4a8f345bc6f066a0ff3b413e2479f9c0a180193"}, + {file = "gevent-22.10.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:a47a4e77e2bc668856aad92a0b8de7ee10768258d93cd03968e6c7ba2e832f76"}, + {file = "gevent-22.10.2.tar.gz", hash = "sha256:1ca01da176ee37b3527a2702f7d40dbc9ffb8cfc7be5a03bfa4f9eec45e55c46"}, ] gitdb = [ {file = "gitdb-4.0.9-py3-none-any.whl", hash = "sha256:8033ad4e853066ba6ca92050b9df2f89301b8fc8bf7e9324d412a63f8bf1a8fd"}, {file = "gitdb-4.0.9.tar.gz", hash = "sha256:bac2fd45c0a1c9cf619e63a90d62bdc63892ef92387424b855792a6cabe789aa"}, ] gitpython = [ - {file = "GitPython-3.1.20-py3-none-any.whl", hash = "sha256:b1e1c269deab1b08ce65403cf14e10d2ef1f6c89e33ea7c5e5bb0222ea593b8a"}, - {file = "GitPython-3.1.20.tar.gz", hash = "sha256:df0e072a200703a65387b0cfdf0466e3bab729c0458cf6b7349d0e9877636519"}, + {file = "GitPython-3.1.18-py3-none-any.whl", hash = "sha256:fce760879cd2aebd2991b3542876dc5c4a909b30c9d69dfc488e504a8db37ee8"}, + {file = "GitPython-3.1.18.tar.gz", hash = "sha256:b838a895977b45ab6f0cc926a9045c8d1c44e2b653c1fcc39fe91f42c6e8f05b"}, ] googleapis-common-protos = [ {file = "googleapis-common-protos-1.54.0.tar.gz", hash = "sha256:a4031d6ec6c2b1b6dc3e0be7e10a1bd72fb0b18b07ef9be7b51f2c1004ce2437"}, {file = "googleapis_common_protos-1.54.0-py2.py3-none-any.whl", hash = "sha256:e54345a2add15dc5e1a7891c27731ff347b4c33765d79b5ed7026a6c0c7cbcae"}, ] greenlet = [ - {file = "greenlet-1.1.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:58df5c2a0e293bf665a51f8a100d3e9956febfbf1d9aaf8c0677cf70218910c6"}, - {file = "greenlet-1.1.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:aec52725173bd3a7b56fe91bc56eccb26fbdff1386ef123abb63c84c5b43b63a"}, - {file = "greenlet-1.1.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:833e1551925ed51e6b44c800e71e77dacd7e49181fdc9ac9a0bf3714d515785d"}, - {file = "greenlet-1.1.2-cp27-cp27m-win32.whl", hash = "sha256:aa5b467f15e78b82257319aebc78dd2915e4c1436c3c0d1ad6f53e47ba6e2713"}, - {file = "greenlet-1.1.2-cp27-cp27m-win_amd64.whl", hash = "sha256:40b951f601af999a8bf2ce8c71e8aaa4e8c6f78ff8afae7b808aae2dc50d4c40"}, - {file = "greenlet-1.1.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:95e69877983ea39b7303570fa6760f81a3eec23d0e3ab2021b7144b94d06202d"}, - {file = "greenlet-1.1.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:356b3576ad078c89a6107caa9c50cc14e98e3a6c4874a37c3e0273e4baf33de8"}, - {file = "greenlet-1.1.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:8639cadfda96737427330a094476d4c7a56ac03de7265622fcf4cfe57c8ae18d"}, - {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97e5306482182170ade15c4b0d8386ded995a07d7cc2ca8f27958d34d6736497"}, - {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e6a36bb9474218c7a5b27ae476035497a6990e21d04c279884eb10d9b290f1b1"}, - {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abb7a75ed8b968f3061327c433a0fbd17b729947b400747c334a9c29a9af6c58"}, - {file = "greenlet-1.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b336501a05e13b616ef81ce329c0e09ac5ed8c732d9ba7e3e983fcc1a9e86965"}, - {file = "greenlet-1.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:14d4f3cd4e8b524ae9b8aa567858beed70c392fdec26dbdb0a8a418392e71708"}, - {file = "greenlet-1.1.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:17ff94e7a83aa8671a25bf5b59326ec26da379ace2ebc4411d690d80a7fbcf23"}, - {file = "greenlet-1.1.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9f3cba480d3deb69f6ee2c1825060177a22c7826431458c697df88e6aeb3caee"}, - {file = "greenlet-1.1.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:fa877ca7f6b48054f847b61d6fa7bed5cebb663ebc55e018fda12db09dcc664c"}, - {file = "greenlet-1.1.2-cp35-cp35m-win32.whl", hash = "sha256:7cbd7574ce8e138bda9df4efc6bf2ab8572c9aff640d8ecfece1b006b68da963"}, - {file = "greenlet-1.1.2-cp35-cp35m-win_amd64.whl", hash = "sha256:903bbd302a2378f984aef528f76d4c9b1748f318fe1294961c072bdc7f2ffa3e"}, - {file = "greenlet-1.1.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:049fe7579230e44daef03a259faa24511d10ebfa44f69411d99e6a184fe68073"}, - {file = "greenlet-1.1.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:dd0b1e9e891f69e7675ba5c92e28b90eaa045f6ab134ffe70b52e948aa175b3c"}, - {file = "greenlet-1.1.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:7418b6bfc7fe3331541b84bb2141c9baf1ec7132a7ecd9f375912eca810e714e"}, - {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9d29ca8a77117315101425ec7ec2a47a22ccf59f5593378fc4077ac5b754fce"}, - {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21915eb821a6b3d9d8eefdaf57d6c345b970ad722f856cd71739493ce003ad08"}, - {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eff9d20417ff9dcb0d25e2defc2574d10b491bf2e693b4e491914738b7908168"}, - {file = "greenlet-1.1.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b8c008de9d0daba7b6666aa5bbfdc23dcd78cafc33997c9b7741ff6353bafb7f"}, - {file = "greenlet-1.1.2-cp36-cp36m-win32.whl", hash = "sha256:32ca72bbc673adbcfecb935bb3fb1b74e663d10a4b241aaa2f5a75fe1d1f90aa"}, - {file = "greenlet-1.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:f0214eb2a23b85528310dad848ad2ac58e735612929c8072f6093f3585fd342d"}, - {file = "greenlet-1.1.2-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:b92e29e58bef6d9cfd340c72b04d74c4b4e9f70c9fa7c78b674d1fec18896dc4"}, - {file = "greenlet-1.1.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:fdcec0b8399108577ec290f55551d926d9a1fa6cad45882093a7a07ac5ec147b"}, - {file = "greenlet-1.1.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:93f81b134a165cc17123626ab8da2e30c0455441d4ab5576eed73a64c025b25c"}, - {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e12bdc622676ce47ae9abbf455c189e442afdde8818d9da983085df6312e7a1"}, - {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c790abda465726cfb8bb08bd4ca9a5d0a7bd77c7ac1ca1b839ad823b948ea28"}, - {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f276df9830dba7a333544bd41070e8175762a7ac20350786b322b714b0e654f5"}, - {file = "greenlet-1.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c5d5b35f789a030ebb95bff352f1d27a93d81069f2adb3182d99882e095cefe"}, - {file = "greenlet-1.1.2-cp37-cp37m-win32.whl", hash = "sha256:64e6175c2e53195278d7388c454e0b30997573f3f4bd63697f88d855f7a6a1fc"}, - {file = "greenlet-1.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b11548073a2213d950c3f671aa88e6f83cda6e2fb97a8b6317b1b5b33d850e06"}, - {file = "greenlet-1.1.2-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:9633b3034d3d901f0a46b7939f8c4d64427dfba6bbc5a36b1a67364cf148a1b0"}, - {file = "greenlet-1.1.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:eb6ea6da4c787111adf40f697b4e58732ee0942b5d3bd8f435277643329ba627"}, - {file = "greenlet-1.1.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:f3acda1924472472ddd60c29e5b9db0cec629fbe3c5c5accb74d6d6d14773478"}, - {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e859fcb4cbe93504ea18008d1df98dee4f7766db66c435e4882ab35cf70cac43"}, - {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00e44c8afdbe5467e4f7b5851be223be68adb4272f44696ee71fe46b7036a711"}, - {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec8c433b3ab0419100bd45b47c9c8551248a5aee30ca5e9d399a0b57ac04651b"}, - {file = "greenlet-1.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2bde6792f313f4e918caabc46532aa64aa27a0db05d75b20edfc5c6f46479de2"}, - {file = "greenlet-1.1.2-cp38-cp38-win32.whl", hash = "sha256:288c6a76705dc54fba69fbcb59904ae4ad768b4c768839b8ca5fdadec6dd8cfd"}, - {file = "greenlet-1.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:8d2f1fb53a421b410751887eb4ff21386d119ef9cde3797bf5e7ed49fb51a3b3"}, - {file = "greenlet-1.1.2-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:166eac03e48784a6a6e0e5f041cfebb1ab400b394db188c48b3a84737f505b67"}, - {file = "greenlet-1.1.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:572e1787d1460da79590bf44304abbc0a2da944ea64ec549188fa84d89bba7ab"}, - {file = "greenlet-1.1.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:be5f425ff1f5f4b3c1e33ad64ab994eed12fc284a6ea71c5243fd564502ecbe5"}, - {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1692f7d6bc45e3200844be0dba153612103db241691088626a33ff1f24a0d88"}, - {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7227b47e73dedaa513cdebb98469705ef0d66eb5a1250144468e9c3097d6b59b"}, - {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ff61ff178250f9bb3cd89752df0f1dd0e27316a8bd1465351652b1b4a4cdfd3"}, - {file = "greenlet-1.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0051c6f1f27cb756ffc0ffbac7d2cd48cb0362ac1736871399a739b2885134d3"}, - {file = "greenlet-1.1.2-cp39-cp39-win32.whl", hash = "sha256:f70a9e237bb792c7cc7e44c531fd48f5897961701cdaa06cf22fc14965c496cf"}, - {file = "greenlet-1.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:013d61294b6cd8fe3242932c1c5e36e5d1db2c8afb58606c5a67efce62c1f5fd"}, - {file = "greenlet-1.1.2.tar.gz", hash = "sha256:e30f5ea4ae2346e62cedde8794a56858a67b878dd79f7df76a0767e356b1744a"}, + {file = "greenlet-2.0.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:bdfea8c661e80d3c1c99ad7c3ff74e6e87184895bbaca6ee8cc61209f8b9b85d"}, + {file = "greenlet-2.0.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:9d14b83fab60d5e8abe587d51c75b252bcc21683f24699ada8fb275d7712f5a9"}, + {file = "greenlet-2.0.2-cp27-cp27m-win32.whl", hash = "sha256:6c3acb79b0bfd4fe733dff8bc62695283b57949ebcca05ae5c129eb606ff2d74"}, + {file = "greenlet-2.0.2-cp27-cp27m-win_amd64.whl", hash = "sha256:283737e0da3f08bd637b5ad058507e578dd462db259f7f6e4c5c365ba4ee9343"}, + {file = "greenlet-2.0.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d27ec7509b9c18b6d73f2f5ede2622441de812e7b1a80bbd446cb0633bd3d5ae"}, + {file = "greenlet-2.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d967650d3f56af314b72df7089d96cda1083a7fc2da05b375d2bc48c82ab3f3c"}, + {file = "greenlet-2.0.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:30bcf80dda7f15ac77ba5af2b961bdd9dbc77fd4ac6105cee85b0d0a5fcf74df"}, + {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26fbfce90728d82bc9e6c38ea4d038cba20b7faf8a0ca53a9c07b67318d46088"}, + {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9190f09060ea4debddd24665d6804b995a9c122ef5917ab26e1566dcc712ceeb"}, + {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d75209eed723105f9596807495d58d10b3470fa6732dd6756595e89925ce2470"}, + {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3a51c9751078733d88e013587b108f1b7a1fb106d402fb390740f002b6f6551a"}, + {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:76ae285c8104046b3a7f06b42f29c7b73f77683df18c49ab5af7983994c2dd91"}, + {file = "greenlet-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:2d4686f195e32d36b4d7cf2d166857dbd0ee9f3d20ae349b6bf8afc8485b3645"}, + {file = "greenlet-2.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c4302695ad8027363e96311df24ee28978162cdcdd2006476c43970b384a244c"}, + {file = "greenlet-2.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d4606a527e30548153be1a9f155f4e283d109ffba663a15856089fb55f933e47"}, + {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c48f54ef8e05f04d6eff74b8233f6063cb1ed960243eacc474ee73a2ea8573ca"}, + {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1846f1b999e78e13837c93c778dcfc3365902cfb8d1bdb7dd73ead37059f0d0"}, + {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a06ad5312349fec0ab944664b01d26f8d1f05009566339ac6f63f56589bc1a2"}, + {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:eff4eb9b7eb3e4d0cae3d28c283dc16d9bed6b193c2e1ace3ed86ce48ea8df19"}, + {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5454276c07d27a740c5892f4907c86327b632127dd9abec42ee62e12427ff7e3"}, + {file = "greenlet-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:7cafd1208fdbe93b67c7086876f061f660cfddc44f404279c1585bbf3cdc64c5"}, + {file = "greenlet-2.0.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:910841381caba4f744a44bf81bfd573c94e10b3045ee00de0cbf436fe50673a6"}, + {file = "greenlet-2.0.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:18a7f18b82b52ee85322d7a7874e676f34ab319b9f8cce5de06067384aa8ff43"}, + {file = "greenlet-2.0.2-cp35-cp35m-win32.whl", hash = "sha256:03a8f4f3430c3b3ff8d10a2a86028c660355ab637cee9333d63d66b56f09d52a"}, + {file = "greenlet-2.0.2-cp35-cp35m-win_amd64.whl", hash = "sha256:4b58adb399c4d61d912c4c331984d60eb66565175cdf4a34792cd9600f21b394"}, + {file = "greenlet-2.0.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:703f18f3fda276b9a916f0934d2fb6d989bf0b4fb5a64825260eb9bfd52d78f0"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:32e5b64b148966d9cccc2c8d35a671409e45f195864560829f395a54226408d3"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dd11f291565a81d71dab10b7033395b7a3a5456e637cf997a6f33ebdf06f8db"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0f72c9ddb8cd28532185f54cc1453f2c16fb417a08b53a855c4e6a418edd099"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd021c754b162c0fb55ad5d6b9d960db667faad0fa2ff25bb6e1301b0b6e6a75"}, + {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:3c9b12575734155d0c09d6c3e10dbd81665d5c18e1a7c6597df72fd05990c8cf"}, + {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b9ec052b06a0524f0e35bd8790686a1da006bd911dd1ef7d50b77bfbad74e292"}, + {file = "greenlet-2.0.2-cp36-cp36m-win32.whl", hash = "sha256:dbfcfc0218093a19c252ca8eb9aee3d29cfdcb586df21049b9d777fd32c14fd9"}, + {file = "greenlet-2.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:9f35ec95538f50292f6d8f2c9c9f8a3c6540bbfec21c9e5b4b751e0a7c20864f"}, + {file = "greenlet-2.0.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:d5508f0b173e6aa47273bdc0a0b5ba055b59662ba7c7ee5119528f466585526b"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:f82d4d717d8ef19188687aa32b8363e96062911e63ba22a0cff7802a8e58e5f1"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9c59a2120b55788e800d82dfa99b9e156ff8f2227f07c5e3012a45a399620b7"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2780572ec463d44c1d3ae850239508dbeb9fed38e294c68d19a24d925d9223ca"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937e9020b514ceedb9c830c55d5c9872abc90f4b5862f89c0887033ae33c6f73"}, + {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:36abbf031e1c0f79dd5d596bfaf8e921c41df2bdf54ee1eed921ce1f52999a86"}, + {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:18e98fb3de7dba1c0a852731c3070cf022d14f0d68b4c87a19cc1016f3bb8b33"}, + {file = "greenlet-2.0.2-cp37-cp37m-win32.whl", hash = "sha256:3f6ea9bd35eb450837a3d80e77b517ea5bc56b4647f5502cd28de13675ee12f7"}, + {file = "greenlet-2.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:7492e2b7bd7c9b9916388d9df23fa49d9b88ac0640db0a5b4ecc2b653bf451e3"}, + {file = "greenlet-2.0.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:b864ba53912b6c3ab6bcb2beb19f19edd01a6bfcbdfe1f37ddd1778abfe75a30"}, + {file = "greenlet-2.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1087300cf9700bbf455b1b97e24db18f2f77b55302a68272c56209d5587c12d1"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:ba2956617f1c42598a308a84c6cf021a90ff3862eddafd20c3333d50f0edb45b"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3a569657468b6f3fb60587e48356fe512c1754ca05a564f11366ac9e306526"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8eab883b3b2a38cc1e050819ef06a7e6344d4a990d24d45bc6f2cf959045a45b"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acd2162a36d3de67ee896c43effcd5ee3de247eb00354db411feb025aa319857"}, + {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0bf60faf0bc2468089bdc5edd10555bab6e85152191df713e2ab1fcc86382b5a"}, + {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b0ef99cdbe2b682b9ccbb964743a6aca37905fda5e0452e5ee239b1654d37f2a"}, + {file = "greenlet-2.0.2-cp38-cp38-win32.whl", hash = "sha256:b80f600eddddce72320dbbc8e3784d16bd3fb7b517e82476d8da921f27d4b249"}, + {file = "greenlet-2.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:4d2e11331fc0c02b6e84b0d28ece3a36e0548ee1a1ce9ddde03752d9b79bba40"}, + {file = "greenlet-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8512a0c38cfd4e66a858ddd1b17705587900dd760c6003998e9472b77b56d417"}, + {file = "greenlet-2.0.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:88d9ab96491d38a5ab7c56dd7a3cc37d83336ecc564e4e8816dbed12e5aaefc8"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:561091a7be172ab497a3527602d467e2b3fbe75f9e783d8b8ce403fa414f71a6"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:971ce5e14dc5e73715755d0ca2975ac88cfdaefcaab078a284fea6cfabf866df"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be4ed120b52ae4d974aa40215fcdfde9194d63541c7ded40ee12eb4dda57b76b"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94c817e84245513926588caf1152e3b559ff794d505555211ca041f032abbb6b"}, + {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1a819eef4b0e0b96bb0d98d797bef17dc1b4a10e8d7446be32d1da33e095dbb8"}, + {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7efde645ca1cc441d6dc4b48c0f7101e8d86b54c8530141b09fd31cef5149ec9"}, + {file = "greenlet-2.0.2-cp39-cp39-win32.whl", hash = "sha256:ea9872c80c132f4663822dd2a08d404073a5a9b5ba6155bea72fb2a79d1093b5"}, + {file = "greenlet-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:db1a39669102a1d8d12b57de2bb7e2ec9066a6f2b3da35ae511ff93b01b5d564"}, + {file = "greenlet-2.0.2.tar.gz", hash = "sha256:e7c8dc13af7db097bed64a051d2dd49e9f0af495c26995c00a9ee842690d34c0"}, ] grimp = [ {file = "grimp-1.3.tar.gz", hash = "sha256:ed42a6f41cebef8ceec440d6ba3c0f0e1c8b09a601223881d02cbd5e7260baf5"}, ] grpcio = [ - {file = "grpcio-1.42.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:6e5eec67909795f7b1ff2bd941bd6c2661ca5217ea9c35003d73314100786f60"}, - {file = "grpcio-1.42.0-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:8e8cd9909fdd232ecffb954936fd90c935ebe0b5fce36c88813f8247ce54019c"}, - {file = "grpcio-1.42.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:b4d7115ee08a36f3f50a6233bd78280e40847e078d2a5bb39c0ab0db4490d58f"}, - {file = "grpcio-1.42.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b781f412546830be55644f7c48251d30860f4725981862d4a1ea322f80d9cd34"}, - {file = "grpcio-1.42.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e62140c46d8125927c673c72c960cb387c02b2a1a3c6985a8b0a3914d27c0018"}, - {file = "grpcio-1.42.0-cp310-cp310-win32.whl", hash = "sha256:6b69726d7bbb633133c1b0d780b1357aa9b7a7f714fead6470bab1feb8012806"}, - {file = "grpcio-1.42.0-cp310-cp310-win_amd64.whl", hash = "sha256:d6c0b159b38fcc3bbc3331105197c1f58ac0d294eb83910d136a325a85def88f"}, - {file = "grpcio-1.42.0-cp36-cp36m-linux_armv7l.whl", hash = "sha256:53e10d07e541073eb9a84d49ecffb831c3cbb970bcd8cd8de8431e935bf66c2e"}, - {file = "grpcio-1.42.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:7a3c9b8e13365529f9426d4754085e8a9c2ad718a41a46a97e4e30e87bb45eae"}, - {file = "grpcio-1.42.0-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:66f910b6324ae69625e63db2eb29d833c307cfa36736fe13d2f841656c5f658f"}, - {file = "grpcio-1.42.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:59163b8d2e0d85f0ecbee52b348f867eec7e0f909177564fb3956363f7e616e5"}, - {file = "grpcio-1.42.0-cp36-cp36m-manylinux_2_17_aarch64.whl", hash = "sha256:d92c1721c7981812d0f42dfc8248b15d3b6a2ea79eb8870776364423de2aa245"}, - {file = "grpcio-1.42.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65720d2bf05e2b78c4bffe372f13c41845bae5658fd3f5dd300c374dd240e5cb"}, - {file = "grpcio-1.42.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f385e40846ff81d1c6dce98dcc192c7988a46540758804c4a2e6da5a0e3e3e05"}, - {file = "grpcio-1.42.0-cp36-cp36m-win32.whl", hash = "sha256:ea3560ffbfe08327024380508190103937fef25e355d2259f8b5c003a0732f55"}, - {file = "grpcio-1.42.0-cp36-cp36m-win_amd64.whl", hash = "sha256:29fc36c99161ff307c8ca438346b2e36f81dac5ecdbabc983d0b255d7913fb19"}, - {file = "grpcio-1.42.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:76b5fa4c6d88f804456e763461cf7a1db38b200669f1ba00c579014ab5aa7965"}, - {file = "grpcio-1.42.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:d1451a8c0c01c5b5fdfeb8f777820cb277fb5d797d972f57a41bb82483c44a79"}, - {file = "grpcio-1.42.0-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:6655df5f31664bac4cd6c9b52f389fd92cd10025504ad83685038f47e11e29d8"}, - {file = "grpcio-1.42.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:5b9f0c4822e3a52a1663a315752c6bbdbed0ec15a660d3e64137335acbb5b7ce"}, - {file = "grpcio-1.42.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:7742606ac2bc03ed10360f4f630e0cc01dce864fe63557254e9adea21bb51416"}, - {file = "grpcio-1.42.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:603d71de14ab1f1fd1254b69ceda73545943461b1f51f82fda9477503330b6ea"}, - {file = "grpcio-1.42.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d08ce780bbd8d1a442d855bd681ed0f7483c65d2c8ed83701a9ea4f13678411f"}, - {file = "grpcio-1.42.0-cp37-cp37m-win32.whl", hash = "sha256:2aba7f93671ec971c5c70db81633b49a2f974aa09a2d811aede344a32bad1896"}, - {file = "grpcio-1.42.0-cp37-cp37m-win_amd64.whl", hash = "sha256:2956da789d74fc35d2c869b3aa45dbf41c5d862c056ca8b5e35a688347ede809"}, - {file = "grpcio-1.42.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:21aa4a111b3381d3dd982a3df62348713b29f651aa9f6dfbc9415adbfe28d2ba"}, - {file = "grpcio-1.42.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:a6f9ed5320b93c029615b75f6c8caf2c76aa6545d8845f3813908892cfc5f84e"}, - {file = "grpcio-1.42.0-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:3a13953e12dc40ee247b5fe6ef22b5fac8f040a76b814a11bf9f423e82402f28"}, - {file = "grpcio-1.42.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:f721b42a20d886c03d9b1f461b228cdaf02ccf6c4550e263f7fd3ce3ff19a8f1"}, - {file = "grpcio-1.42.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:e2d9c6690d4c88cd51ee395d7ba5bd1d26d7c37e94cb59e7fd62ff21ecaf891d"}, - {file = "grpcio-1.42.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d7f66eb220898787d7821a7931e35ae2512ed74f79f75adcd7ea2fb3119ca87d"}, - {file = "grpcio-1.42.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2e3f250e5398bf474c6e140df1b67494bf1e31c5277b5bf93841a564cbc22d0"}, - {file = "grpcio-1.42.0-cp38-cp38-win32.whl", hash = "sha256:06d5364e85e0fa50ee68bffd9c93a6aff869a91c68f1fd7ba1b944e063a0ff9f"}, - {file = "grpcio-1.42.0-cp38-cp38-win_amd64.whl", hash = "sha256:d58b3774ee2084c31aad140586a42e18328d9823959ca006a0b85ad7937fe405"}, - {file = "grpcio-1.42.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:b74bbac7e039cf23ed0c8edd820c31e90a52a22e28a03d45274a0956addde8d2"}, - {file = "grpcio-1.42.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:2b264cf303a22c46f8d455f42425c546ad6ce22f183debb8d64226ddf1e039f4"}, - {file = "grpcio-1.42.0-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:64f2b3e6474e2ad865478b64f0850d15842acbb2623de5f78a60ceabe00c63e0"}, - {file = "grpcio-1.42.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:bf916ee93ea2fd52b5286ed4e19cbbde5e82754914379ea91dc5748550df3b4e"}, - {file = "grpcio-1.42.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:6ef72f0abdb89fb7c366a99e04823ecae5cda9f762f2234f42fc280447277cd6"}, - {file = "grpcio-1.42.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:47ab65be9ba7a0beee94bbe2fb1dd03cb7832db9df4d1f8fae215a16b3edeb5e"}, - {file = "grpcio-1.42.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0209f30741de1875413f40e89bec9c647e7afad4a3549a6a1682c1ee23da68ca"}, - {file = "grpcio-1.42.0-cp39-cp39-win32.whl", hash = "sha256:5441d343602ce10ba48fcb36bb5de197a15a01dc9ee0f71c2a73cd5cd3d7f5ac"}, - {file = "grpcio-1.42.0-cp39-cp39-win_amd64.whl", hash = "sha256:17433f7eb01737240581b33fbc2eae7b7fa6d3429571782580bceaf05ec56cb8"}, - {file = "grpcio-1.42.0.tar.gz", hash = "sha256:4a8f2c7490fe3696e0cdd566e2f099fb91b51bc75446125175c55581c2f7bc11"}, + {file = "grpcio-1.48.2-cp310-cp310-linux_armv7l.whl", hash = "sha256:665141b3a97b7d22978c8d2ba0c0af7f67bd6d7a56889c5c0aa715d04009b518"}, + {file = "grpcio-1.48.2-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:199526758f6f8d35a596c610f33ea76faae65ec175dc109e8481ea3404d8527c"}, + {file = "grpcio-1.48.2-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:3d3225d477663c27b9051546a32551babd1ccb80192905e08340264deccc975b"}, + {file = "grpcio-1.48.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abee7dd82443b2cd128004e053b263a6d7256d570df80956a974634b8c5bc121"}, + {file = "grpcio-1.48.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9dc08baa1b28749e90428aaa16e038e8c389d8ccb843ddc0dc8b95231640b432"}, + {file = "grpcio-1.48.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:110028e0b9c346230ae69b8a6d8b25d4d43bfd37bda61a8ec46486da1e781dcb"}, + {file = "grpcio-1.48.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6affa7e685edbb7421f942296eb618359362e89e641bcf46779c6ec7b944d275"}, + {file = "grpcio-1.48.2-cp310-cp310-win32.whl", hash = "sha256:f6afd1f4b5e0ec320fb2b027a646944fee8b58ba00fb43d081968f77d1a6e925"}, + {file = "grpcio-1.48.2-cp310-cp310-win_amd64.whl", hash = "sha256:b8ec07dcc1cbd77b8c09dfc0ce6274920cb7b09cc04013110971d95d8bcc0bbf"}, + {file = "grpcio-1.48.2-cp36-cp36m-linux_armv7l.whl", hash = "sha256:550b08dfa938e30ffbc1652193cf2877906aa6242d6ba9f61318dc87fcecee63"}, + {file = "grpcio-1.48.2-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:c19d6f337860f382ceaa35c5acab439d84c5ffaa8baba36df1f83ab6b9ac4bd3"}, + {file = "grpcio-1.48.2-cp36-cp36m-manylinux_2_17_aarch64.whl", hash = "sha256:e69a5907a2a4cf0011ff46205b6bff8f56b8391436acc3c66b70ce8519578d7e"}, + {file = "grpcio-1.48.2-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:894c5f02c25c83c2320310521a82978b4e252ee18b99a5c4c564d73daeb5c1de"}, + {file = "grpcio-1.48.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47ace91631176efa575c7a34d5004286288f1af1e9de2ff380d1433f241aeed4"}, + {file = "grpcio-1.48.2-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:f1d2cd5b1adecbcffee4ad6613f100e0b583ae2e253d2f8f685e7770ec72d622"}, + {file = "grpcio-1.48.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:f5697e4ab90a41a6a1202c1a3ec268a0d69f1cd127a4940d2b2521a0fbc1277b"}, + {file = "grpcio-1.48.2-cp36-cp36m-win32.whl", hash = "sha256:cebeed160466a1e254eb75e7e1bbeeb1359c50b33a1b8f3b2241a8b8dc9bd216"}, + {file = "grpcio-1.48.2-cp36-cp36m-win_amd64.whl", hash = "sha256:0802b080b6b8603a065e505ce83190b6a06229b9a74d0a1681175271ac84fe12"}, + {file = "grpcio-1.48.2-cp37-cp37m-linux_armv7l.whl", hash = "sha256:855c125e8cd1c3ab09a239689c940d26c30680edf2edf87c3c1543bd8633cc8f"}, + {file = "grpcio-1.48.2-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:5571cb828d694b34a7c75484722803e13a2f5e4760e47ae32fb077c83d0c9b2c"}, + {file = "grpcio-1.48.2-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:2f185b8c5130663c455f6542906ce99f046608e94950c8b354aa22462c202c2d"}, + {file = "grpcio-1.48.2-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d7b1a3a75c34ab39c9df73aa9fecc519dc1035e588a41af19f39b1298a283a57"}, + {file = "grpcio-1.48.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7ec6b04875a5065d04ad86cd2678ca6431dec868c01d731b8233f3de155bfdf"}, + {file = "grpcio-1.48.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:e48595440dc86e13245aec7c096238db12b659e5ae6078aecf99d66befb77678"}, + {file = "grpcio-1.48.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ec2dd9f7ab0c809af6b2c65ed31c3cbef2ca9695f7f4d49866ec4707e7836890"}, + {file = "grpcio-1.48.2-cp37-cp37m-win32.whl", hash = "sha256:1fea4cb4368dd0467eb2d208e2d5e3c4f0be28fe33965d45ac9e1d562be67a8c"}, + {file = "grpcio-1.48.2-cp37-cp37m-win_amd64.whl", hash = "sha256:0bfb637344442b273b698ff425d735a5d806ca8715f988875ad669277fb9b1e6"}, + {file = "grpcio-1.48.2-cp38-cp38-linux_armv7l.whl", hash = "sha256:c92b5ef64cd5a0c6aea82dd6862fdb8a1562510d537ea3c356a7fe60db7021af"}, + {file = "grpcio-1.48.2-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:2bb1df2920a4968f0c09041b49e591df96f2e6f801f15eed3821c1f16a12f1a8"}, + {file = "grpcio-1.48.2-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:3f52ef5ba7a8bc334daa87675838d6dafda7d8a116a72b567b8351e561ace498"}, + {file = "grpcio-1.48.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:13c3b69f8efb214a54f48e8dd1e235a4d8d22fa985f32a9b2844373993c5a605"}, + {file = "grpcio-1.48.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a760ef87fde9a8f2761c7ad8ccf617fc590547ed743a9207fe7e367496164c60"}, + {file = "grpcio-1.48.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1e2dc213fe71566efbf9a5d704c665ff4b1760a88d37f8533b19ca92776070c9"}, + {file = "grpcio-1.48.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3463256399158e9abf115620994e968db8f003224c36bda0d14570eab8a44cfc"}, + {file = "grpcio-1.48.2-cp38-cp38-win32.whl", hash = "sha256:dc00681d546cae66e9d54451f650fe140f9e1aca2dc4f8c9686cfaa4dd5d680b"}, + {file = "grpcio-1.48.2-cp38-cp38-win_amd64.whl", hash = "sha256:b8768daa636e0fa48fec75517bea65ce8fdaca0066dc411fc0a2290d92032f91"}, + {file = "grpcio-1.48.2-cp39-cp39-linux_armv7l.whl", hash = "sha256:104b555e1cb2e0614f05c1def24eb8bb06f1277460058aa0f9c9e6a1018716da"}, + {file = "grpcio-1.48.2-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:8d130f666463e4d09a63ff033a6c5cd032867fd51a0db4660c18106aa352be3a"}, + {file = "grpcio-1.48.2-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:5792943481d4270b3e9a4700af0eea86e7183f4d3c250a46e0b357949cc09411"}, + {file = "grpcio-1.48.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:26ed6d07f91ce8aeb4697b7e71d930355282ec80acb7a488f4030a3a75c2f7a8"}, + {file = "grpcio-1.48.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3c0d0995a0cd8c7198cb49b8ce98b4936c5a70109f9246c58e69c898e4f7329"}, + {file = "grpcio-1.48.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:b860e13c112bb9cb44007ef02853a19397d915b31c42dfa18570448bdc0a6245"}, + {file = "grpcio-1.48.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6f693da8ffd2486c354c90ba5a8ca0f4c50bfb8853495501884cadc152551360"}, + {file = "grpcio-1.48.2-cp39-cp39-win32.whl", hash = "sha256:2d99fb56c7e836f165828719c3695d3d27ac70b103ab52226f7a7c237e4a3928"}, + {file = "grpcio-1.48.2-cp39-cp39-win_amd64.whl", hash = "sha256:514392a30a275f4f719c2e05ea969c239e5f03eec4a25965852c7582073d8b94"}, + {file = "grpcio-1.48.2.tar.gz", hash = "sha256:90e5da224c6b9b23658adf6f36de6f435ef7dbcc9c5c12330314d70d6f8de1f7"}, ] gunicorn = [ {file = "gunicorn-20.1.0-py3-none-any.whl", hash = "sha256:9dcc4547dbb1cb284accfb15ab5667a0e5d1881cc443e0677b4882a4067a807e"}, @@ -2544,66 +2662,83 @@ itypes = [ {file = "itypes-1.2.0.tar.gz", hash = "sha256:af886f129dea4a2a1e3d36595a2d139589e4dd287f5cab0b40e799ee81570ff1"}, ] jinja2 = [ - {file = "Jinja2-2.11.3-py2.py3-none-any.whl", hash = "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419"}, - {file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"}, + {file = "Jinja2-3.0.3-py3-none-any.whl", hash = "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8"}, + {file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"}, ] kombu = [ {file = "kombu-5.1.0-py3-none-any.whl", hash = "sha256:e2dedd8a86c9077c350555153825a31e456a0dc20c15d5751f00137ec9c75f0a"}, {file = "kombu-5.1.0.tar.gz", hash = "sha256:01481d99f4606f6939cdc9b637264ed353ee9e3e4f62cfb582324142c41a572d"}, ] markupsafe = [ - {file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"}, - {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"}, - {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-win32.whl", hash = "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8"}, - {file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"}, + {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"}, ] mccabe = [ {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, @@ -2657,8 +2792,8 @@ openpyxl = [ {file = "openpyxl-3.0.9.tar.gz", hash = "sha256:40f568b9829bf9e446acfffce30250ac1fa39035124d55fc024025c41481c90f"}, ] opentelemetry-api = [ - {file = "opentelemetry-api-1.7.1.tar.gz", hash = "sha256:aa4c29150042fd4e9efc30810bc5413a16a442b75fa16bef879651016ca8497e"}, - {file = "opentelemetry_api-1.7.1-py3-none-any.whl", hash = "sha256:01f3129ca2797a98c7a032e1fdf24650a1cab506666b33a5974618724e262c78"}, + {file = "opentelemetry-api-1.8.0.tar.gz", hash = "sha256:758f73610c08a03e9c8f29cfb364bc75ce35e9a62136ba98b82423d3d27498f5"}, + {file = "opentelemetry_api-1.8.0-py3-none-any.whl", hash = "sha256:a0f6dc4e7970ea15fd3046a571c4138ec6a279e10138d45b465d62bd5fcbb67d"}, ] opentelemetry-exporter-jaeger = [ {file = "opentelemetry-exporter-jaeger-1.7.1.tar.gz", hash = "sha256:daf0f55d926754bad0bc20ddde4c56d0e9a66800613cd6bb15e409c660930c14"}, @@ -2685,52 +2820,52 @@ opentelemetry-exporter-otlp-proto-http = [ {file = "opentelemetry_exporter_otlp_proto_http-1.7.1-py3-none-any.whl", hash = "sha256:c167fd418032994009c241189e18dab8abe1246b4ff2b98f7f16acaba6afdf33"}, ] opentelemetry-instrumentation = [ - {file = "opentelemetry-instrumentation-0.26b1.tar.gz", hash = "sha256:c8f60bbe8a803f2489627fdd66726891de64347e8828c259d3c607a9c97d20c0"}, - {file = "opentelemetry_instrumentation-0.26b1-py3-none-any.whl", hash = "sha256:6f84d5496c59b449c282258fe834e5f3cd2cc1887ba39933607f5a710e3ee657"}, + {file = "opentelemetry-instrumentation-0.27b0.tar.gz", hash = "sha256:1a51253c118713031a621f53493cb7fb7fc9f783b543265cb2a40c5b4be0aaa2"}, + {file = "opentelemetry_instrumentation-0.27b0-py3-none-any.whl", hash = "sha256:40673c0699443487a5f76694a8fdb84f2aea3a95cb584f205bed29203cba2ad8"}, ] opentelemetry-instrumentation-celery = [ - {file = "opentelemetry-instrumentation-celery-0.26b1.tar.gz", hash = "sha256:35bf7783072aa6c939630d3c89b2c0a92ef5f7d4a3666a3048c6bdcc9c4a0997"}, - {file = "opentelemetry_instrumentation_celery-0.26b1-py3-none-any.whl", hash = "sha256:a66b346a7e4ad1dfd91b056d23395995e466216e66f7aa32f8e7ecbd569f4dcb"}, + {file = "opentelemetry-instrumentation-celery-0.27b0.tar.gz", hash = "sha256:9bbe8cc2672d6a7c1c91ca7c16ea3e8acdba16124d134c5ed0c309ff8e43aa2a"}, + {file = "opentelemetry_instrumentation_celery-0.27b0-py3-none-any.whl", hash = "sha256:53fbaee13a79344fd2526145b13c5fc88ab84cd66fe23c043f9b6c0e3a938851"}, ] opentelemetry-instrumentation-dbapi = [ - {file = "opentelemetry-instrumentation-dbapi-0.26b1.tar.gz", hash = "sha256:f0083d7b12b2ab70ca2b3071d1b4a8722969ec63c0c3abb5cd5998f9c1df1377"}, - {file = "opentelemetry_instrumentation_dbapi-0.26b1-py3-none-any.whl", hash = "sha256:743f012d0cfe1c50850994ed959c44e73c2b491575ab12ddb9224f99eed153d9"}, + {file = "opentelemetry-instrumentation-dbapi-0.27b0.tar.gz", hash = "sha256:30dfb32d87dcbd4c00f1e8875595652c9dc38d04b523b4135374122447340286"}, + {file = "opentelemetry_instrumentation_dbapi-0.27b0-py3-none-any.whl", hash = "sha256:14b7ac1b4e474bbdaa1e19d8be6a89d84896fc58291875a21ee01c3ad0287e25"}, ] opentelemetry-instrumentation-django = [ - {file = "opentelemetry-instrumentation-django-0.26b1.tar.gz", hash = "sha256:d4ddc6ce7d67286146f940ec4f7bea3af1169dca8a227aeac0af3e0e8ed8ed71"}, - {file = "opentelemetry_instrumentation_django-0.26b1-py3-none-any.whl", hash = "sha256:9a5898abcd1cb037306f816013257757bf97cd893508b089d2c11e2c5f06f6e3"}, + {file = "opentelemetry-instrumentation-django-0.27b0.tar.gz", hash = "sha256:0b105110af3e8ed8663b947e78e40736856593bd1ed7b9cff020933d544baa6a"}, + {file = "opentelemetry_instrumentation_django-0.27b0-py3-none-any.whl", hash = "sha256:761f161f4c5425503946a5817bd87d48d5284c9aeef22bb7750e30b4228f15e2"}, ] opentelemetry-instrumentation-logging = [ - {file = "opentelemetry-instrumentation-logging-0.26b1.tar.gz", hash = "sha256:daec6f023a487020f5516373daea551454685f1e1f99fcd39c3336a1418af182"}, - {file = "opentelemetry_instrumentation_logging-0.26b1-py3-none-any.whl", hash = "sha256:d3e7a87183960dc86c8dd0b9906567a42f99a376b9895a4fd4719317e256dc87"}, + {file = "opentelemetry-instrumentation-logging-0.27b0.tar.gz", hash = "sha256:312ffd24de2084b7fafb3e4605c9538055afbe1533342d0defba84bbed7a52f2"}, + {file = "opentelemetry_instrumentation_logging-0.27b0-py3-none-any.whl", hash = "sha256:5cc54498c0a26fc9126e0207058b972303d50218f813b74828224cb06b02fbce"}, ] opentelemetry-instrumentation-redis = [ - {file = "opentelemetry-instrumentation-redis-0.26b1.tar.gz", hash = "sha256:39be460a7a259e5daf73071c651c7acc93cd4b8ac25433328427617e7dd3827d"}, - {file = "opentelemetry_instrumentation_redis-0.26b1-py3-none-any.whl", hash = "sha256:969c881f2a9d6c5c8f0136e75bf61f5533c2006ffb07dc6e35b5620b06802162"}, + {file = "opentelemetry-instrumentation-redis-0.27b0.tar.gz", hash = "sha256:f5cfb3bcf322c483b8fbd1ce09ddf51ad9ea0fbacee9de4abc07bb1138ed2adf"}, + {file = "opentelemetry_instrumentation_redis-0.27b0-py3-none-any.whl", hash = "sha256:0753caf9a125de20df8bf03d50b5793394c95ea8012821af38ac6e605d181129"}, ] opentelemetry-instrumentation-requests = [ - {file = "opentelemetry-instrumentation-requests-0.26b1.tar.gz", hash = "sha256:44e00c74b861b4ba4e741cebaf228d0c5626fb846b69f66344c402afa145c3a5"}, - {file = "opentelemetry_instrumentation_requests-0.26b1-py3-none-any.whl", hash = "sha256:0ccd9dfe13b5261161a5d13343b52692f6e279a34909999cb72b3c9b28d4233c"}, + {file = "opentelemetry-instrumentation-requests-0.27b0.tar.gz", hash = "sha256:d12fcd6e8be1fe66a209dbca4f44872ed752334445cce3c18eea646c8c46acb5"}, + {file = "opentelemetry_instrumentation_requests-0.27b0-py3-none-any.whl", hash = "sha256:133e1b4d30fe9dcaf11294086eee4901da336a8c666e4caadc7e8e4c91b134f8"}, ] opentelemetry-instrumentation-wsgi = [ - {file = "opentelemetry-instrumentation-wsgi-0.26b1.tar.gz", hash = "sha256:43ab3d78487f82a8a0f9c2be3d21b5920621712027e3fea756ba05039a6a3521"}, - {file = "opentelemetry_instrumentation_wsgi-0.26b1-py3-none-any.whl", hash = "sha256:19d2fd538e15b16e985946074631cd6853d67a46f8304bb5da2ac3163c5803c9"}, + {file = "opentelemetry-instrumentation-wsgi-0.27b0.tar.gz", hash = "sha256:264a9c6932a3bf658b840d2b615eb93edb4e25fc5b8ae95f07db01a4b79e1e7e"}, + {file = "opentelemetry_instrumentation_wsgi-0.27b0-py3-none-any.whl", hash = "sha256:7f132df76137d3c59bd9f7c1470d4acb2f77e5b4792ca9ff643df44407b4eb96"}, ] opentelemetry-proto = [ {file = "opentelemetry-proto-1.7.1.tar.gz", hash = "sha256:fadb617947e2567740f8e92ae8f4564c5d8bfb2816dd34b19ca3efcf5eaa0806"}, {file = "opentelemetry_proto-1.7.1-py3-none-any.whl", hash = "sha256:ec0737f0277dfe3f1eac4cb0db277278573f7b071cf3389f1d9d01e3d3cfb465"}, ] opentelemetry-sdk = [ - {file = "opentelemetry-sdk-1.7.1.tar.gz", hash = "sha256:80f532dd5b293e80e563312977434faac59a9931fdd44761f6b34d3578f796ff"}, - {file = "opentelemetry_sdk-1.7.1-py3-none-any.whl", hash = "sha256:3344ec6e0fef7aaef034cfe284fb0b75615d40fa988f81caba7aa9c1e7e28cb6"}, + {file = "opentelemetry-sdk-1.8.0.tar.gz", hash = "sha256:7536c81f348e6c88c9dce4cd6eb5b09b422902bde8f76d7a0d4be2a0b9684b3f"}, + {file = "opentelemetry_sdk-1.8.0-py3-none-any.whl", hash = "sha256:6c6c959f4cd362b7471b5dccb46904c0771bc4f6feed6e965634c291160f4d62"}, ] opentelemetry-semantic-conventions = [ - {file = "opentelemetry-semantic-conventions-0.26b1.tar.gz", hash = "sha256:edce22d1c320f896cccb6994f8467594a7cdc47a84156bc34485f2f0e5adce8f"}, - {file = "opentelemetry_semantic_conventions-0.26b1-py3-none-any.whl", hash = "sha256:cba9799d26c8183f869c84cff1f217bb712c9306d05dc346f50032916e8d7065"}, + {file = "opentelemetry-semantic-conventions-0.27b0.tar.gz", hash = "sha256:6f4cbef478c09056e76248a78cd2590dad6cd54f3854f713af155c82639e11eb"}, + {file = "opentelemetry_semantic_conventions-0.27b0-py3-none-any.whl", hash = "sha256:d39591a4345b9e646612b7c636e19b3b5dcabaf4dae142cb31417884c77de7b1"}, ] opentelemetry-util-http = [ - {file = "opentelemetry-util-http-0.26b1.tar.gz", hash = "sha256:76bfa0e9defba9563630fb836546a321ec4287f42a81ae2040b49b4d134e7f84"}, - {file = "opentelemetry_util_http-0.26b1-py3-none-any.whl", hash = "sha256:dbbc31bd5f53786f01c4c229868d0c93b807acf71e59c251c9b0c670d30ba130"}, + {file = "opentelemetry-util-http-0.27b0.tar.gz", hash = "sha256:3663342a5e437aa67b15124ea5a7f9df2700da5e6f09d4eb2f473812b67e118b"}, + {file = "opentelemetry_util_http-0.27b0-py3-none-any.whl", hash = "sha256:b6a78015e3e7204c6173ad6362843c04d9d5c0b666523c89906d7fbfdfcc0d00"}, ] packaging = [ {file = "packaging-21.0-py3-none-any.whl", hash = "sha256:c86254f9220d55e31cc94d69bade760f0847da8000def4dfe1c6b872fd14ff14"}, @@ -2795,6 +2930,40 @@ pycparser = [ {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"}, {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"}, ] +pycryptodomex = [ + {file = "pycryptodomex-3.20.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:645bd4ca6f543685d643dadf6a856cc382b654cc923460e3a10a49c1b3832aeb"}, + {file = "pycryptodomex-3.20.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ff5c9a67f8a4fba4aed887216e32cbc48f2a6fb2673bb10a99e43be463e15913"}, + {file = "pycryptodomex-3.20.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:8ee606964553c1a0bc74057dd8782a37d1c2bc0f01b83193b6f8bb14523b877b"}, + {file = "pycryptodomex-3.20.0-cp27-cp27m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7805830e0c56d88f4d491fa5ac640dfc894c5ec570d1ece6ed1546e9df2e98d6"}, + {file = "pycryptodomex-3.20.0-cp27-cp27m-musllinux_1_1_aarch64.whl", hash = "sha256:bc3ee1b4d97081260d92ae813a83de4d2653206967c4a0a017580f8b9548ddbc"}, + {file = "pycryptodomex-3.20.0-cp27-cp27m-win32.whl", hash = "sha256:8af1a451ff9e123d0d8bd5d5e60f8e3315c3a64f3cdd6bc853e26090e195cdc8"}, + {file = "pycryptodomex-3.20.0-cp27-cp27m-win_amd64.whl", hash = "sha256:cbe71b6712429650e3883dc81286edb94c328ffcd24849accac0a4dbcc76958a"}, + {file = "pycryptodomex-3.20.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:76bd15bb65c14900d98835fcd10f59e5e0435077431d3a394b60b15864fddd64"}, + {file = "pycryptodomex-3.20.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:653b29b0819605fe0898829c8ad6400a6ccde096146730c2da54eede9b7b8baa"}, + {file = "pycryptodomex-3.20.0-cp27-cp27mu-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62a5ec91388984909bb5398ea49ee61b68ecb579123694bffa172c3b0a107079"}, + {file = "pycryptodomex-3.20.0-cp27-cp27mu-musllinux_1_1_aarch64.whl", hash = "sha256:108e5f1c1cd70ffce0b68739c75734437c919d2eaec8e85bffc2c8b4d2794305"}, + {file = "pycryptodomex-3.20.0-cp35-abi3-macosx_10_9_universal2.whl", hash = "sha256:59af01efb011b0e8b686ba7758d59cf4a8263f9ad35911bfe3f416cee4f5c08c"}, + {file = "pycryptodomex-3.20.0-cp35-abi3-macosx_10_9_x86_64.whl", hash = "sha256:82ee7696ed8eb9a82c7037f32ba9b7c59e51dda6f105b39f043b6ef293989cb3"}, + {file = "pycryptodomex-3.20.0-cp35-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91852d4480a4537d169c29a9d104dda44094c78f1f5b67bca76c29a91042b623"}, + {file = "pycryptodomex-3.20.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca649483d5ed251d06daf25957f802e44e6bb6df2e8f218ae71968ff8f8edc4"}, + {file = "pycryptodomex-3.20.0-cp35-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e186342cfcc3aafaad565cbd496060e5a614b441cacc3995ef0091115c1f6c5"}, + {file = "pycryptodomex-3.20.0-cp35-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:25cd61e846aaab76d5791d006497134602a9e451e954833018161befc3b5b9ed"}, + {file = "pycryptodomex-3.20.0-cp35-abi3-musllinux_1_1_i686.whl", hash = "sha256:9c682436c359b5ada67e882fec34689726a09c461efd75b6ea77b2403d5665b7"}, + {file = "pycryptodomex-3.20.0-cp35-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:7a7a8f33a1f1fb762ede6cc9cbab8f2a9ba13b196bfaf7bc6f0b39d2ba315a43"}, + {file = "pycryptodomex-3.20.0-cp35-abi3-win32.whl", hash = "sha256:c39778fd0548d78917b61f03c1fa8bfda6cfcf98c767decf360945fe6f97461e"}, + {file = "pycryptodomex-3.20.0-cp35-abi3-win_amd64.whl", hash = "sha256:2a47bcc478741b71273b917232f521fd5704ab4b25d301669879e7273d3586cc"}, + {file = "pycryptodomex-3.20.0-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:1be97461c439a6af4fe1cf8bf6ca5936d3db252737d2f379cc6b2e394e12a458"}, + {file = "pycryptodomex-3.20.0-pp27-pypy_73-win32.whl", hash = "sha256:19764605feea0df966445d46533729b645033f134baeb3ea26ad518c9fdf212c"}, + {file = "pycryptodomex-3.20.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:f2e497413560e03421484189a6b65e33fe800d3bd75590e6d78d4dfdb7accf3b"}, + {file = "pycryptodomex-3.20.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e48217c7901edd95f9f097feaa0388da215ed14ce2ece803d3f300b4e694abea"}, + {file = "pycryptodomex-3.20.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d00fe8596e1cc46b44bf3907354e9377aa030ec4cd04afbbf6e899fc1e2a7781"}, + {file = "pycryptodomex-3.20.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:88afd7a3af7ddddd42c2deda43d53d3dfc016c11327d0915f90ca34ebda91499"}, + {file = "pycryptodomex-3.20.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d3584623e68a5064a04748fb6d76117a21a7cb5eaba20608a41c7d0c61721794"}, + {file = "pycryptodomex-3.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0daad007b685db36d977f9de73f61f8da2a7104e20aca3effd30752fd56f73e1"}, + {file = "pycryptodomex-3.20.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5dcac11031a71348faaed1f403a0debd56bf5404232284cf8c761ff918886ebc"}, + {file = "pycryptodomex-3.20.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:69138068268127cd605e03438312d8f271135a33140e2742b417d027a0539427"}, + {file = "pycryptodomex-3.20.0.tar.gz", hash = "sha256:7a710b79baddd65b806402e14766c721aee8fb83381769c27920f26476276c1e"}, +] pydantic = [ {file = "pydantic-1.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9c9e04a6cdb7a363d7cb3ccf0efea51e0abb48e180c0d31dca8d247967d85c6e"}, {file = "pydantic-1.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fafe841be1103f340a24977f61dee76172e4ae5f647ab9e7fd1e1fca51524f08"}, @@ -2968,8 +3137,8 @@ pyyaml = [ {file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"}, ] redis = [ - {file = "redis-4.3.5-py3-none-any.whl", hash = "sha256:46652271dc7525cd5a9667e5b0ca983c848c75b2b8f7425403395bb8379dcf25"}, - {file = "redis-4.3.5.tar.gz", hash = "sha256:30c07511627a4c5c4d970e060000772f323174f75e745a26938319817ead7a12"}, + {file = "redis-4.3.6-py3-none-any.whl", hash = "sha256:1ea4018b8b5d8a13837f0f1c418959c90bfde0a605cb689e8070cff368a3b177"}, + {file = "redis-4.3.6.tar.gz", hash = "sha256:7a462714dcbf7b1ad1acd81f2862b653cc8535cdfc879e28bf4947140797f948"}, ] regex = [ {file = "regex-2021.8.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:8764a78c5464ac6bde91a8c87dd718c27c1cabb7ed2b4beaf36d3e8e390567f9"}, @@ -3047,8 +3216,8 @@ requests = [ {file = "ruamel.yaml.clib-0.2.6.tar.gz", hash = "sha256:4ff604ce439abb20794f05613c374759ce10e3595d1867764dd1ae675b85acbd"}, ] sentry-sdk = [ - {file = "sentry-sdk-1.5.6.tar.gz", hash = "sha256:ac2a50128409d57655279817aedcb7800cace1f76b266f3dd62055d5afd6e098"}, - {file = "sentry_sdk-1.5.6-py2.py3-none-any.whl", hash = "sha256:1ab34e3851a34aeb3d1af1a0f77cec73978c4e9698e5210d050e4932953cb241"}, + {file = "sentry-sdk-1.44.1.tar.gz", hash = "sha256:24e6a53eeabffd2f95d952aa35ca52f0f4201d17f820ac9d3ff7244c665aaf68"}, + {file = "sentry_sdk-1.44.1-py2.py3-none-any.whl", hash = "sha256:5f75eb91d8ab6037c754a87b8501cc581b2827e923682f593bed3539ce5b3999"}, ] six = [ {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, @@ -3059,8 +3228,8 @@ smmap = [ {file = "smmap-5.0.0.tar.gz", hash = "sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"}, ] sqlparse = [ - {file = "sqlparse-0.4.2-py3-none-any.whl", hash = "sha256:48719e356bb8b42991bdbb1e8b83223757b93789c00910a616a071910ca4a64d"}, - {file = "sqlparse-0.4.2.tar.gz", hash = "sha256:0c00730c74263a94e5a9919ade150dfc3b19c574389985446148402998287dae"}, + {file = "sqlparse-0.4.4-py3-none-any.whl", hash = "sha256:5430a4fe2ac7d0f93e66f1efc6e1338a41884b7ddf2a350cedd20ccc4d9d28f3"}, + {file = "sqlparse-0.4.4.tar.gz", hash = "sha256:d446183e84b8349fa3061f0fe7f06ca94ba65b426946ffebe6e3e8295332420c"}, ] stevedore = [ {file = "stevedore-3.5.2-py3-none-any.whl", hash = "sha256:fa2630e3d0ad3e22d4914aff2501445815b9a4467a6edc49387c667a38faf5bf"}, @@ -3077,6 +3246,36 @@ tomli = [ {file = "tomli-1.2.1-py3-none-any.whl", hash = "sha256:8dd0e9524d6f386271a36b41dbf6c57d8e32fd96fd22b6584679dc569d20899f"}, {file = "tomli-1.2.1.tar.gz", hash = "sha256:a5b75cb6f3968abb47af1b40c1819dc519ea82bcc065776a866e8d74c5ca9442"}, ] +tongsuopy-crayon = [ + {file = "tongsuopy_crayon-1.0.2b6-cp36-abi3-macosx_10_12_x86_64.whl", hash = "sha256:6dedcf17142d7dead9192cec8d3497ab9ee85d9fcfaab1bb264406043953ea0f"}, + {file = "tongsuopy_crayon-1.0.2b6-cp36-abi3-macosx_13_0_arm64.whl", hash = "sha256:8230cef643e215b7a3cba2ed9996764937fb95367becacbe7b318d6f57d061f4"}, + {file = "tongsuopy_crayon-1.0.2b6-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:db0b8dd76b9a9d3d906b5fe21009dee7f45839b440f77f154c67fd9678d8cb6d"}, + {file = "tongsuopy_crayon-1.0.2b6-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:702d1acb26965ee09248871be6f90eb72793acce9cfec92fb9e797dac6ecd636"}, + {file = "tongsuopy_crayon-1.0.2b6-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:1931822c93667ca546255f680da58b2eccd9783e9185ef778a67feba5b2f8277"}, + {file = "tongsuopy_crayon-1.0.2b6-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da4bd309da1e7a30908af302d971b9f56a8dac57f0347311b910e5945de2a6a5"}, + {file = "tongsuopy_crayon-1.0.2b6-cp36-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7807d0021bf4dc92d03527cd0a7d420de4dd83506cd839874c1c8bb06e517215"}, + {file = "tongsuopy_crayon-1.0.2b6-cp36-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a4263b7965ed7c35a91ecc8c92ed85272753d8e75b8a6055934ae45ae50b029"}, + {file = "tongsuopy_crayon-1.0.2b6-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:45b417cdb46c2f70322fad9be1be0d6558bf46e182e4e5a07c8444e13a2f4020"}, + {file = "tongsuopy_crayon-1.0.2b6-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:ed9aaac16b3f04483ed241b90a8569ff0602b9788ffa3d3d0d822d54a8ca1d7f"}, + {file = "tongsuopy_crayon-1.0.2b6-cp36-abi3-win32.whl", hash = "sha256:33353365a7e33cec32cc6516ebe5994132c54a60826b49e2c6af69bbea66480e"}, + {file = "tongsuopy_crayon-1.0.2b6-cp36-abi3-win_amd64.whl", hash = "sha256:8aa57bd5c7df7a9c658b1b1ef585b80f7d7a39ee23465db69f0d5222ac4aa339"}, + {file = "tongsuopy_crayon-1.0.2b6-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e3fd0092140dd2c7c48b99cce179d6e3106bf43c3b89af4fb9cc2434acaf4e32"}, + {file = "tongsuopy_crayon-1.0.2b6-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:9a85e774cc4c5f4cf63c5d3e19b14b88cf735310a15da47000899e7210b073a5"}, + {file = "tongsuopy_crayon-1.0.2b6-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b46b03d86ccd4318714117a5de01558713b142203f3d39c05d72027f7427a5e"}, + {file = "tongsuopy_crayon-1.0.2b6-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:3887b6257a2d537e5193072ecc49fe1df5bd3781b0a0b8773854379e02555240"}, + {file = "tongsuopy_crayon-1.0.2b6-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:041f8896ea14561a484442e79d37637bf61ab6c0f566de203d870d91fe2d0597"}, + {file = "tongsuopy_crayon-1.0.2b6-pp38-pypy38_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a01d6335ccc6edeeb8c012cc4b639cae98dd2ff0a1ed6b36ad70e3b79de41521"}, + {file = "tongsuopy_crayon-1.0.2b6-pp38-pypy38_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:be32b697fd80e3ab4dc0ff96c58f610ea05dadb385093c909cd70a7daf7d91cf"}, + {file = "tongsuopy_crayon-1.0.2b6-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5b0792af5195ff90f0e4066e8b257a5a0d21d5f55bff3f9755f3b6c5bfe052e6"}, + {file = "tongsuopy_crayon-1.0.2b6-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7b365a4c2e2ca58acec6837bc946dd214610841f6e6abaa966a8f7518dcf9534"}, + {file = "tongsuopy_crayon-1.0.2b6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:ea84ec750a1508cf5cb6e170ac5129f0c6208f7e0504bee6739368bcc8512b09"}, + {file = "tongsuopy_crayon-1.0.2b6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8eeb3226a6ddb0d65f79903fb6e286ce86778c70b46a49f2d9843bcd6fd2ec5b"}, + {file = "tongsuopy_crayon-1.0.2b6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:20ef52c691edefe485438b194b6a969ddd8d64c8b772f144733896c89cbdab7d"}, + {file = "tongsuopy_crayon-1.0.2b6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd12d135fe89f1c62e478bd2193b71a34be9fc921d59d05d92321681cbafb3fa"}, + {file = "tongsuopy_crayon-1.0.2b6-pp39-pypy39_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e823d1d705a33fddd954e010a3e7b1b9217365736be920c11229d87fb50b21f5"}, + {file = "tongsuopy_crayon-1.0.2b6-pp39-pypy39_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:12fafff7d17dad75ce987f40b1b9afccb2e68723f67f590b821850394a5afc66"}, + {file = "tongsuopy_crayon-1.0.2b6-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ccf0d627d46f00322a4b42f8f6692da8fbbd3ae848e400efc410c3584c740156"}, +] typed-ast = [ {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:2068531575a125b87a41802130fa7e29f26c09a2833fea68d9a40cf33902eba6"}, {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:c907f561b1e83e93fad565bac5ba9c22d96a54e7ea0267c708bffe863cbe4075"}, @@ -3139,8 +3338,8 @@ uritemplate = [ {file = "uritemplate-3.0.1.tar.gz", hash = "sha256:5af8ad10cec94f215e3f48112de2022e1d5a37ed427fbd88652fa908f2ab7cae"}, ] urllib3 = [ - {file = "urllib3-1.26.6-py2.py3-none-any.whl", hash = "sha256:39fb8672126159acb139a7718dd10806104dec1e2f0f6c88aab05d17df10c8d4"}, - {file = "urllib3-1.26.6.tar.gz", hash = "sha256:f57b4c16c62fa2760b7e3d97c35b255512fb6b59a259730f36ba32ce9f8e342f"}, + {file = "urllib3-1.26.18-py2.py3-none-any.whl", hash = "sha256:34b97092d7e0a3a8cf7cd10e386f401b3737364026c45e622aa02903dffe0f07"}, + {file = "urllib3-1.26.18.tar.gz", hash = "sha256:f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0"}, ] vine = [ {file = "vine-5.0.0-py2.py3-none-any.whl", hash = "sha256:4c9dceab6f76ed92105027c49c823800dd33cacce13bdedc5b914e3514b7fb30"}, @@ -3178,57 +3377,76 @@ whitenoise = [ {file = "whitenoise-5.1.0.tar.gz", hash = "sha256:60154b976a13901414a25b0273a841145f77eb34a141f9ae032a0ace3e4d5b27"}, ] wrapt = [ - {file = "wrapt-1.13.3-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:e05e60ff3b2b0342153be4d1b597bbcfd8330890056b9619f4ad6b8d5c96a81a"}, - {file = "wrapt-1.13.3-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:85148f4225287b6a0665eef08a178c15097366d46b210574a658c1ff5b377489"}, - {file = "wrapt-1.13.3-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:2dded5496e8f1592ec27079b28b6ad2a1ef0b9296d270f77b8e4a3a796cf6909"}, - {file = "wrapt-1.13.3-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:e94b7d9deaa4cc7bac9198a58a7240aaf87fe56c6277ee25fa5b3aa1edebd229"}, - {file = "wrapt-1.13.3-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:498e6217523111d07cd67e87a791f5e9ee769f9241fcf8a379696e25806965af"}, - {file = "wrapt-1.13.3-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:ec7e20258ecc5174029a0f391e1b948bf2906cd64c198a9b8b281b811cbc04de"}, - {file = "wrapt-1.13.3-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:87883690cae293541e08ba2da22cacaae0a092e0ed56bbba8d018cc486fbafbb"}, - {file = "wrapt-1.13.3-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:f99c0489258086308aad4ae57da9e8ecf9e1f3f30fa35d5e170b4d4896554d80"}, - {file = "wrapt-1.13.3-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:6a03d9917aee887690aa3f1747ce634e610f6db6f6b332b35c2dd89412912bca"}, - {file = "wrapt-1.13.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:936503cb0a6ed28dbfa87e8fcd0a56458822144e9d11a49ccee6d9a8adb2ac44"}, - {file = "wrapt-1.13.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f9c51d9af9abb899bd34ace878fbec8bf357b3194a10c4e8e0a25512826ef056"}, - {file = "wrapt-1.13.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:220a869982ea9023e163ba915077816ca439489de6d2c09089b219f4e11b6785"}, - {file = "wrapt-1.13.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0877fe981fd76b183711d767500e6b3111378ed2043c145e21816ee589d91096"}, - {file = "wrapt-1.13.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:43e69ffe47e3609a6aec0fe723001c60c65305784d964f5007d5b4fb1bc6bf33"}, - {file = "wrapt-1.13.3-cp310-cp310-win32.whl", hash = "sha256:78dea98c81915bbf510eb6a3c9c24915e4660302937b9ae05a0947164248020f"}, - {file = "wrapt-1.13.3-cp310-cp310-win_amd64.whl", hash = "sha256:ea3e746e29d4000cd98d572f3ee2a6050a4f784bb536f4ac1f035987fc1ed83e"}, - {file = "wrapt-1.13.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:8c73c1a2ec7c98d7eaded149f6d225a692caa1bd7b2401a14125446e9e90410d"}, - {file = "wrapt-1.13.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:086218a72ec7d986a3eddb7707c8c4526d677c7b35e355875a0fe2918b059179"}, - {file = "wrapt-1.13.3-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:e92d0d4fa68ea0c02d39f1e2f9cb5bc4b4a71e8c442207433d8db47ee79d7aa3"}, - {file = "wrapt-1.13.3-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:d4a5f6146cfa5c7ba0134249665acd322a70d1ea61732723c7d3e8cc0fa80755"}, - {file = "wrapt-1.13.3-cp35-cp35m-win32.whl", hash = "sha256:8aab36778fa9bba1a8f06a4919556f9f8c7b33102bd71b3ab307bb3fecb21851"}, - {file = "wrapt-1.13.3-cp35-cp35m-win_amd64.whl", hash = "sha256:944b180f61f5e36c0634d3202ba8509b986b5fbaf57db3e94df11abee244ba13"}, - {file = "wrapt-1.13.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:2ebdde19cd3c8cdf8df3fc165bc7827334bc4e353465048b36f7deeae8ee0918"}, - {file = "wrapt-1.13.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:610f5f83dd1e0ad40254c306f4764fcdc846641f120c3cf424ff57a19d5f7ade"}, - {file = "wrapt-1.13.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5601f44a0f38fed36cc07db004f0eedeaadbdcec90e4e90509480e7e6060a5bc"}, - {file = "wrapt-1.13.3-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:e6906d6f48437dfd80464f7d7af1740eadc572b9f7a4301e7dd3d65db285cacf"}, - {file = "wrapt-1.13.3-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:766b32c762e07e26f50d8a3468e3b4228b3736c805018e4b0ec8cc01ecd88125"}, - {file = "wrapt-1.13.3-cp36-cp36m-win32.whl", hash = "sha256:5f223101f21cfd41deec8ce3889dc59f88a59b409db028c469c9b20cfeefbe36"}, - {file = "wrapt-1.13.3-cp36-cp36m-win_amd64.whl", hash = "sha256:f122ccd12fdc69628786d0c947bdd9cb2733be8f800d88b5a37c57f1f1d73c10"}, - {file = "wrapt-1.13.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:46f7f3af321a573fc0c3586612db4decb7eb37172af1bc6173d81f5b66c2e068"}, - {file = "wrapt-1.13.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:778fd096ee96890c10ce96187c76b3e99b2da44e08c9e24d5652f356873f6709"}, - {file = "wrapt-1.13.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0cb23d36ed03bf46b894cfec777eec754146d68429c30431c99ef28482b5c1df"}, - {file = "wrapt-1.13.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:96b81ae75591a795d8c90edc0bfaab44d3d41ffc1aae4d994c5aa21d9b8e19a2"}, - {file = "wrapt-1.13.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:7dd215e4e8514004c8d810a73e342c536547038fb130205ec4bba9f5de35d45b"}, - {file = "wrapt-1.13.3-cp37-cp37m-win32.whl", hash = "sha256:47f0a183743e7f71f29e4e21574ad3fa95676136f45b91afcf83f6a050914829"}, - {file = "wrapt-1.13.3-cp37-cp37m-win_amd64.whl", hash = "sha256:fd76c47f20984b43d93de9a82011bb6e5f8325df6c9ed4d8310029a55fa361ea"}, - {file = "wrapt-1.13.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b73d4b78807bd299b38e4598b8e7bd34ed55d480160d2e7fdaabd9931afa65f9"}, - {file = "wrapt-1.13.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ec9465dd69d5657b5d2fa6133b3e1e989ae27d29471a672416fd729b429eb554"}, - {file = "wrapt-1.13.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dd91006848eb55af2159375134d724032a2d1d13bcc6f81cd8d3ed9f2b8e846c"}, - {file = "wrapt-1.13.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ae9de71eb60940e58207f8e71fe113c639da42adb02fb2bcbcaccc1ccecd092b"}, - {file = "wrapt-1.13.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:51799ca950cfee9396a87f4a1240622ac38973b6df5ef7a41e7f0b98797099ce"}, - {file = "wrapt-1.13.3-cp38-cp38-win32.whl", hash = "sha256:4b9c458732450ec42578b5642ac53e312092acf8c0bfce140ada5ca1ac556f79"}, - {file = "wrapt-1.13.3-cp38-cp38-win_amd64.whl", hash = "sha256:7dde79d007cd6dfa65afe404766057c2409316135cb892be4b1c768e3f3a11cb"}, - {file = "wrapt-1.13.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:981da26722bebb9247a0601e2922cedf8bb7a600e89c852d063313102de6f2cb"}, - {file = "wrapt-1.13.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:705e2af1f7be4707e49ced9153f8d72131090e52be9278b5dbb1498c749a1e32"}, - {file = "wrapt-1.13.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:25b1b1d5df495d82be1c9d2fad408f7ce5ca8a38085e2da41bb63c914baadff7"}, - {file = "wrapt-1.13.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:77416e6b17926d953b5c666a3cb718d5945df63ecf922af0ee576206d7033b5e"}, - {file = "wrapt-1.13.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:865c0b50003616f05858b22174c40ffc27a38e67359fa1495605f96125f76640"}, - {file = "wrapt-1.13.3-cp39-cp39-win32.whl", hash = "sha256:0a017a667d1f7411816e4bf214646d0ad5b1da2c1ea13dec6c162736ff25a374"}, - {file = "wrapt-1.13.3-cp39-cp39-win_amd64.whl", hash = "sha256:81bd7c90d28a4b2e1df135bfbd7c23aee3050078ca6441bead44c42483f9ebfb"}, - {file = "wrapt-1.13.3.tar.gz", hash = "sha256:1fea9cd438686e6682271d36f3481a9f3636195578bab9ca3382e2f5f01fc185"}, + {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"}, + {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"}, + {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"}, + {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"}, + {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"}, + {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"}, + {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"}, + {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, + {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"}, + {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"}, + {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"}, + {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"}, + {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"}, + {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"}, + {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"}, + {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"}, + {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"}, + {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"}, + {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"}, + {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"}, + {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"}, + {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"}, + {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"}, + {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"}, + {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"}, + {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"}, + {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, + {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, ] zipp = [ {file = "zipp-3.5.0-py3-none-any.whl", hash = "sha256:957cfda87797e389580cb8b9e3870841ca991e2125350677b2ca83a0e99390a3"}, diff --git a/saas/pyproject.toml b/saas/pyproject.toml index b000c8ecd..cf28a6954 100644 --- a/saas/pyproject.toml +++ b/saas/pyproject.toml @@ -71,9 +71,9 @@ license = "MIT License" [tool.poetry.dependencies] python = "3.6.6" # blueapps requirement -Django = "3.2.16" +Django = "3.2.25" mysqlclient = "2.0.1" -MarkupSafe = "1.1.1" +MarkupSafe = "2.0.1" requests = "2.27.1" celery = "5.1.2" python-json-logger = "0.1.7" @@ -90,7 +90,7 @@ drf-yasg = "1.21.4" dataclasses = "0.7" pydantic = "1.9.2" PyJWT = "1.7.1" -cryptography = "3.3.2" +cryptography = "40.0.2" django-prometheus = "2.2.0" pytz = "2022.6" aenum = "2.2.6" @@ -100,26 +100,26 @@ aenum = "2.2.6" django-mptt = "0.11.0" # profile record pyinstrument = "3.1.3" -redis = "4.3.5" +redis = "4.3.6" django-redis = "5.2.0" -apigw-manager = "^1.0.2" +apigw-manager = "3.0.1" typing-extensions = "3.7.4.3" opentelemetry-api = "^1.7.1" -opentelemetry-sdk = "^1.7.1" +opentelemetry-sdk = "1.8.0" opentelemetry-exporter-otlp = "^1.7.1" -opentelemetry-instrumentation-django = "^0.26b1" -opentelemetry-instrumentation-dbapi = "^0.26b1" -opentelemetry-instrumentation-redis = "^0.26b1" -opentelemetry-instrumentation-requests = "^0.26b1" -opentelemetry-instrumentation-celery = "^0.26b1" -opentelemetry-instrumentation-logging = "^0.26b1" +opentelemetry-instrumentation-django = "0.27b0" +opentelemetry-instrumentation-dbapi = "0.27b0" +opentelemetry-instrumentation-redis = "0.27b0" +opentelemetry-instrumentation-requests = "0.27b0" +opentelemetry-instrumentation-celery = "0.27b0" +opentelemetry-instrumentation-logging = "0.27b0" opentelemetry-exporter-jaeger = "1.7.1" openpyxl = "^3.0.9" -sentry-sdk = "^1.5.6" +sentry-sdk = "1.44.1" django-environ = "^0.8.1" gunicorn = "^20.1.0" -gevent = "^21.12.0" -blue-krill = "^1.1.0" +gevent = "22.10.2" +blue-krill = "1.2.6" protobuf = "3.19.5" bk-iam = "^1.2.2" bk-audit = "^1.0.1-rc.0" @@ -127,6 +127,14 @@ django-celery-beat = "2.2.1" importlib-metadata = "4.8.3" prometheus-client = "0.13.0" bk-notice-sdk = "^1.1.1" +certifi = "2023.7.22" +GitPython = "3.1.18" +grpcio = "1.48.2" +Jinja2 = "3.0.3" +opentelemetry-instrumentation = "0.27b0" +opentelemetry-semantic-conventions = "0.27b0" +sqlparse = "0.4.4" +urllib3 = "1.26.18" [tool.poetry.dev-dependencies] # For flake8 support pyproject.toml diff --git a/saas/requirements.txt b/saas/requirements.txt index 457f432ca..95a9b7119 100644 --- a/saas/requirements.txt +++ b/saas/requirements.txt @@ -1,22 +1,23 @@ aenum==2.2.6 aiocontextvars==0.2.2; python_version < "3.7" and python_version >= "3.6" amqp==5.1.1; python_version >= "3.6" -apigw-manager==1.1.5; python_full_version >= "3.6.1" and python_full_version < "4.0.0" +apigw-manager==3.0.1; python_full_version >= "3.6.1" and python_full_version < "4.0.0" asgiref==3.4.1; python_version >= "3.6" async-timeout==4.0.2; python_version >= "3.6" backoff==1.10.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" billiard==3.6.4.0; python_version >= "3.6" bk-audit==1.0.1rc0; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0" and python_version < "4") +bk-crypto-python-sdk==1.1.1; python_full_version >= "3.6.2" and python_version < "3.11" bk-iam==1.2.2; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0" and python_version < "4") bk-notice-sdk==1.2.0 -bkapi-bk-apigateway==1.0.6; python_full_version >= "3.6.1" and python_version < "4.0" and python_full_version < "4.0.0" -bkapi-client-core==1.1.8; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and python_version < "4.0" -blue-krill==1.2.3; python_full_version >= "3.6.2" and python_version < "3.11" +bkapi-bk-apigateway==1.0.11; python_full_version >= "3.6.1" and python_version < "4.0" and python_full_version < "4.0.0" +bkapi-client-core==1.2.0; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and python_version < "4.0" +blue-krill==1.2.6; python_full_version >= "3.6.2" and python_version < "3.11" cached-property==1.5.2; python_version < "3.8" and python_version >= "3.6" cachetools==3.1.1; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4" celery==5.1.2; python_version >= "3.6" -certifi==2022.12.7; python_full_version >= "3.6.2" and python_version >= "3.6" and python_version < "3.11" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") -cffi==1.14.6; platform_python_implementation == "CPython" and sys_platform == "win32" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_version > "3.5") and python_full_version >= "3.6.2" and python_version < "3.11" +certifi==2023.7.22; python_version >= "3.6" +cffi==1.14.6; platform_python_implementation == "CPython" and sys_platform == "win32" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_version > "3.5") and python_version >= "3.6" and python_full_version >= "3.6.2" and python_version < "3.11" charset-normalizer==2.0.4; python_full_version >= "3.6.2" and python_version >= "3" and python_version < "3.11" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") click-didyoumean==0.3.0; python_full_version >= "3.6.2" and python_full_version < "4.0.0" and python_version >= "3.6" click-plugins==1.1.1; python_version >= "3.6" @@ -25,8 +26,9 @@ click==7.1.2; python_full_version >= "3.6.2" and python_version >= "3.6" and pyt contextvars==2.4; python_version < "3.7" and python_version >= "3.6" coreapi==2.3.3; python_version >= "3.6" coreschema==0.0.4; python_version >= "3.6" -cryptography==3.3.2; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0") +cryptography==40.0.2; python_version >= "3.6" curlify==2.2.1; python_full_version >= "3.6.2" and python_version < "3.11" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4") and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") +dacite==1.8.1; python_full_version >= "3.6.2" and python_version < "3.11" and python_version >= "3.6" dataclasses==0.7; python_version >= "3.6" and python_version < "3.7" decorator==5.0.9; python_version >= "3.5" deprecated==1.2.13; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" @@ -39,16 +41,18 @@ django-mptt==0.11.0; python_version >= "3.5" django-prometheus==2.2.0 django-redis==5.2.0; python_version >= "3.6" django-timezone-field==4.2.3; python_version >= "3.5" -django==3.2.16; python_version >= "3.6" +django==3.2.25; python_version >= "3.6" djangorestframework==3.14.0; python_version >= "3.6" dogpile.cache==0.9.2 drf-yasg==1.21.4; python_version >= "3.6" et-xmlfile==1.1.0; python_version >= "3.6" future==0.18.2; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -gevent==21.12.0; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_version > "3.5") +gevent==22.10.2; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_version > "3.5") +gitdb==4.0.9; python_version >= "3.6" +gitpython==3.1.18; python_version >= "3.6" googleapis-common-protos==1.54.0; python_version >= "3.6" -greenlet==1.1.2; python_version >= "2.7" and python_full_version < "3.0.0" and platform_python_implementation == "CPython" or python_version > "3.5" and python_full_version < "3.0.0" and platform_python_implementation == "CPython" or python_version > "3.5" and platform_python_implementation == "CPython" and python_full_version >= "3.5.0" -grpcio==1.42.0; python_version >= "3.6" +greenlet==2.0.2; python_version >= "2.7" and python_full_version < "3.0.0" and platform_python_implementation == "CPython" or python_version > "3.5" and python_full_version < "3.0.0" and platform_python_implementation == "CPython" or python_version > "3.5" and platform_python_implementation == "CPython" and python_full_version >= "3.5.0" +grpcio==1.48.2; python_version >= "3.6" gunicorn==20.1.0; python_version >= "3.5" httplib2==0.19.0 idna==2.10; python_full_version >= "3.6.2" and python_version >= "3" and python_version < "3.11" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") @@ -56,35 +60,36 @@ immutables==0.16; python_version < "3.7" and python_version >= "3.6" importlib-metadata==4.8.3; python_version >= "3.6" inflection==0.5.1; python_version >= "3.6" itypes==1.2.0; python_version >= "3.6" -jinja2==2.11.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" +jinja2==3.0.3; python_version >= "3.6" kombu==5.1.0; python_version >= "3.6" -markupsafe==1.1.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.4.0") +markupsafe==2.0.1; python_version >= "3.6" mysqlclient==2.0.1; python_version >= "3.5" openpyxl==3.0.9; python_version >= "3.6" -opentelemetry-api==1.7.1; python_version >= "3.6" +opentelemetry-api==1.8.0; python_version >= "3.6" opentelemetry-exporter-jaeger-proto-grpc==1.7.1; python_version >= "3.6" opentelemetry-exporter-jaeger-thrift==1.7.1; python_version >= "3.6" opentelemetry-exporter-jaeger==1.7.1; python_version >= "3.6" opentelemetry-exporter-otlp-proto-grpc==1.7.1; python_version >= "3.6" opentelemetry-exporter-otlp-proto-http==1.7.1; python_version >= "3.6" opentelemetry-exporter-otlp==1.7.1; python_version >= "3.6" -opentelemetry-instrumentation-celery==0.26b1; python_version >= "3.6" -opentelemetry-instrumentation-dbapi==0.26b1; python_version >= "3.6" -opentelemetry-instrumentation-django==0.26b1; python_version >= "3.6" -opentelemetry-instrumentation-logging==0.26b1 -opentelemetry-instrumentation-redis==0.26b1; python_version >= "3.6" -opentelemetry-instrumentation-requests==0.26b1; python_version >= "3.6" -opentelemetry-instrumentation-wsgi==0.26b1; python_version >= "3.6" -opentelemetry-instrumentation==0.26b1; python_version >= "3.6" +opentelemetry-instrumentation-celery==0.27b0; python_version >= "3.6" +opentelemetry-instrumentation-dbapi==0.27b0; python_version >= "3.6" +opentelemetry-instrumentation-django==0.27b0; python_version >= "3.6" +opentelemetry-instrumentation-logging==0.27b0 +opentelemetry-instrumentation-redis==0.27b0; python_version >= "3.6" +opentelemetry-instrumentation-requests==0.27b0; python_version >= "3.6" +opentelemetry-instrumentation-wsgi==0.27b0; python_version >= "3.6" +opentelemetry-instrumentation==0.27b0; python_version >= "3.6" opentelemetry-proto==1.7.1; python_version >= "3.6" -opentelemetry-sdk==1.7.1; python_version >= "3.6" -opentelemetry-semantic-conventions==0.26b1; python_version >= "3.6" -opentelemetry-util-http==0.26b1; python_version >= "3.6" +opentelemetry-sdk==1.8.0; python_version >= "3.6" +opentelemetry-semantic-conventions==0.27b0; python_version >= "3.6" +opentelemetry-util-http==0.27b0; python_version >= "3.6" packaging==21.0; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and python_version >= "3.6" prometheus-client==0.13.0; python_version >= "3.6" prompt-toolkit==3.0.36; python_full_version >= "3.6.2" and python_version >= "3.6" protobuf==3.19.5; python_version >= "3.5" -pycparser==2.20; python_version >= "2.7" and python_full_version < "3.0.0" and platform_python_implementation == "CPython" and sys_platform == "win32" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_version > "3.5") or platform_python_implementation == "CPython" and sys_platform == "win32" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_version > "3.5") and python_full_version >= "3.6.0" +pycparser==2.20; python_version >= "3.6" and python_full_version < "3.0.0" and platform_python_implementation == "CPython" and sys_platform == "win32" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_version > "3.5") or platform_python_implementation == "CPython" and sys_platform == "win32" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_version > "3.5") and python_version >= "3.6" and python_full_version >= "3.4.0" +pycryptodomex==3.20.0; python_full_version >= "3.6.2" and python_version < "3.11" pydantic==1.9.2; python_full_version >= "3.6.1" pyinstrument-cext==0.2.4 pyinstrument==3.1.3 @@ -96,24 +101,26 @@ python-editor==1.0.4; python_full_version >= "3.6.2" and python_version < "3.11" python-json-logger==0.1.7 pytz==2022.6 pyyaml==5.4.1; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -redis==4.3.5; python_version >= "3.6" +redis==4.3.6; python_version >= "3.6" requests==2.27.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0") ruamel.yaml.clib==0.2.6; platform_python_implementation == "CPython" and python_version < "3.10" and python_version >= "3.6" ruamel.yaml==0.17.10; python_version >= "3.6" -sentry-sdk==1.5.6 +sentry-sdk==1.44.1 six==1.15.0; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.3.0") -sqlparse==0.4.2; python_version >= "3.6" +smmap==5.0.0; python_version >= "3.6" +sqlparse==0.4.4; python_version >= "3.5" thrift==0.15.0; python_version >= "3.6" toml==0.10.1 +tongsuopy-crayon==1.0.2b6; python_full_version >= "3.6.2" and python_version < "3.11" and python_version >= "3.6" typing-extensions==3.7.4.3 uritemplate==3.0.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -urllib3==1.26.6; python_full_version >= "3.6.2" and python_version < "3.11" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version < "4") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") +urllib3==1.26.18; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0") vine==5.0.0; python_version >= "3.6" watchdog==1.0.2; python_full_version >= "3.6.2" and python_version < "3.11" and python_version >= "3.6" wcwidth==0.2.5; python_full_version >= "3.6.2" and python_version >= "3.6" werkzeug==1.0.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.5.0") whitenoise==5.1.0; python_version >= "3.5" and python_version < "4" -wrapt==1.13.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" +wrapt==1.16.0; python_full_version >= "3.6.2" and python_version >= "3.6" and python_version < "3.11" zipp==3.5.0; python_version < "3.8" and python_version >= "3.6" zope.event==4.5.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_version > "3.5" zope.interface==5.4.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_version > "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version > "3.5" diff --git a/saas/requirements_dev.txt b/saas/requirements_dev.txt index 207e0b30e..f2aeee2a0 100644 --- a/saas/requirements_dev.txt +++ b/saas/requirements_dev.txt @@ -1,7 +1,7 @@ aenum==2.2.6 aiocontextvars==0.2.2; python_version < "3.7" and python_version >= "3.6" amqp==5.1.1; python_version >= "3.6" -apigw-manager==1.1.5; python_full_version >= "3.6.1" and python_full_version < "4.0.0" +apigw-manager==3.0.1; python_full_version >= "3.6.1" and python_full_version < "4.0.0" appdirs==1.4.4; python_full_version >= "3.6.2" asgiref==3.4.1; python_version >= "3.6" async-timeout==4.0.2; python_version >= "3.6" @@ -11,17 +11,18 @@ backoff==1.10.0; python_version >= "3.6" and python_full_version < "3.0.0" or py bandit==1.7.1; python_version >= "3.5" billiard==3.6.4.0; python_version >= "3.6" bk-audit==1.0.1rc0; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0" and python_version < "4") +bk-crypto-python-sdk==1.1.1; python_full_version >= "3.6.2" and python_version < "3.11" bk-iam==1.2.2; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0" and python_version < "4") bk-notice-sdk==1.2.0 -bkapi-bk-apigateway==1.0.6; python_full_version >= "3.6.1" and python_version < "4.0" and python_full_version < "4.0.0" -bkapi-client-core==1.1.8; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and python_version < "4.0" +bkapi-bk-apigateway==1.0.11; python_full_version >= "3.6.1" and python_version < "4.0" and python_full_version < "4.0.0" +bkapi-client-core==1.2.0; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and python_version < "4.0" black==21.7b0; python_full_version >= "3.6.2" -blue-krill==1.2.3; python_full_version >= "3.6.2" and python_version < "3.11" +blue-krill==1.2.6; python_full_version >= "3.6.2" and python_version < "3.11" cached-property==1.5.2; python_version < "3.8" and python_version >= "3.6" cachetools==3.1.1; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4" celery==5.1.2; python_version >= "3.6" -certifi==2022.12.7; python_full_version >= "3.6.2" and python_version >= "3.6" and python_version < "3.11" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") -cffi==1.14.6; platform_python_implementation == "CPython" and sys_platform == "win32" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_version > "3.5") and python_full_version >= "3.6.2" and python_version < "3.11" +certifi==2023.7.22; python_version >= "3.6" +cffi==1.14.6; platform_python_implementation == "CPython" and sys_platform == "win32" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_version > "3.5") and python_version >= "3.6" and python_full_version >= "3.6.2" and python_version < "3.11" charset-normalizer==2.0.4; python_full_version >= "3.6.2" and python_version >= "3" and python_version < "3.11" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") click-didyoumean==0.3.0; python_full_version >= "3.6.2" and python_full_version < "4.0.0" and python_version >= "3.6" click-plugins==1.1.1; python_version >= "3.6" @@ -33,8 +34,9 @@ converge==0.9.8 coreapi==2.3.3; python_version >= "3.6" coreschema==0.0.4; python_version >= "3.6" coverage==6.2; python_version >= "3.6" -cryptography==3.3.2; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0") +cryptography==40.0.2; python_version >= "3.6" curlify==2.2.1; python_full_version >= "3.6.2" and python_version < "3.11" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4") and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") +dacite==1.8.1; python_full_version >= "3.6.2" and python_version < "3.11" and python_version >= "3.6" dataclasses==0.7; python_version >= "3.6" and python_version < "3.7" decorator==5.0.9; python_version >= "3.6" deprecated==1.2.13; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" @@ -48,7 +50,7 @@ django-mptt==0.11.0; python_version >= "3.5" django-prometheus==2.2.0 django-redis==5.2.0; python_version >= "3.6" django-timezone-field==4.2.3; python_version >= "3.5" -django==3.2.16; python_version >= "3.6" +django==3.2.25; python_version >= "3.6" djangorestframework==3.14.0; python_version >= "3.6" dogpile.cache==0.9.2 drf-yasg==1.21.4; python_version >= "3.6" @@ -57,13 +59,13 @@ flake8-bugbear==22.9.23; python_version >= "3.6" flake8-comprehensions==3.5.0; python_version >= "3.6" flake8==3.9.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" future==0.18.2; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -gevent==21.12.0; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_version > "3.5") +gevent==22.10.2; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_version > "3.5") gitdb==4.0.9; python_version >= "3.6" -gitpython==3.1.20; python_version >= "3.6" +gitpython==3.1.18; python_version >= "3.6" googleapis-common-protos==1.54.0; python_version >= "3.6" -greenlet==1.1.2; python_version >= "2.7" and python_full_version < "3.0.0" and platform_python_implementation == "CPython" or python_version > "3.5" and python_full_version < "3.0.0" and platform_python_implementation == "CPython" or python_version > "3.5" and platform_python_implementation == "CPython" and python_full_version >= "3.5.0" +greenlet==2.0.2; python_version >= "2.7" and python_full_version < "3.0.0" and platform_python_implementation == "CPython" or python_version > "3.5" and python_full_version < "3.0.0" and platform_python_implementation == "CPython" or python_version > "3.5" and platform_python_implementation == "CPython" and python_full_version >= "3.5.0" grimp==1.3; python_version >= "3.6" -grpcio==1.42.0; python_version >= "3.6" +grpcio==1.48.2; python_version >= "3.6" gunicorn==20.1.0; python_version >= "3.5" httplib2==0.19.0 idna==2.10; python_full_version >= "3.6.2" and python_version >= "3" and python_version < "3.11" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") @@ -74,9 +76,9 @@ inflection==0.5.1; python_version >= "3.6" iniconfig==1.1.1; python_version >= "3.6" isort==5.9.3; python_full_version >= "3.6.1" and python_version < "4.0" itypes==1.2.0; python_version >= "3.6" -jinja2==2.11.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" +jinja2==3.0.3; python_version >= "3.6" kombu==5.1.0; python_version >= "3.6" -markupsafe==1.1.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.4.0") +markupsafe==2.0.1; python_version >= "3.6" mccabe==0.6.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" mock==1.0.1 mypy-extensions==0.4.3; python_full_version >= "3.6.2" and python_version >= "3.5" @@ -84,25 +86,25 @@ mypy==0.910; python_version >= "3.5" mysqlclient==2.0.1; python_version >= "3.5" networkx==2.5; python_version >= "3.6" openpyxl==3.0.9; python_version >= "3.6" -opentelemetry-api==1.7.1; python_version >= "3.6" +opentelemetry-api==1.8.0; python_version >= "3.6" opentelemetry-exporter-jaeger-proto-grpc==1.7.1; python_version >= "3.6" opentelemetry-exporter-jaeger-thrift==1.7.1; python_version >= "3.6" opentelemetry-exporter-jaeger==1.7.1; python_version >= "3.6" opentelemetry-exporter-otlp-proto-grpc==1.7.1; python_version >= "3.6" opentelemetry-exporter-otlp-proto-http==1.7.1; python_version >= "3.6" opentelemetry-exporter-otlp==1.7.1; python_version >= "3.6" -opentelemetry-instrumentation-celery==0.26b1; python_version >= "3.6" -opentelemetry-instrumentation-dbapi==0.26b1; python_version >= "3.6" -opentelemetry-instrumentation-django==0.26b1; python_version >= "3.6" -opentelemetry-instrumentation-logging==0.26b1 -opentelemetry-instrumentation-redis==0.26b1; python_version >= "3.6" -opentelemetry-instrumentation-requests==0.26b1; python_version >= "3.6" -opentelemetry-instrumentation-wsgi==0.26b1; python_version >= "3.6" -opentelemetry-instrumentation==0.26b1; python_version >= "3.6" +opentelemetry-instrumentation-celery==0.27b0; python_version >= "3.6" +opentelemetry-instrumentation-dbapi==0.27b0; python_version >= "3.6" +opentelemetry-instrumentation-django==0.27b0; python_version >= "3.6" +opentelemetry-instrumentation-logging==0.27b0 +opentelemetry-instrumentation-redis==0.27b0; python_version >= "3.6" +opentelemetry-instrumentation-requests==0.27b0; python_version >= "3.6" +opentelemetry-instrumentation-wsgi==0.27b0; python_version >= "3.6" +opentelemetry-instrumentation==0.27b0; python_version >= "3.6" opentelemetry-proto==1.7.1; python_version >= "3.6" -opentelemetry-sdk==1.7.1; python_version >= "3.6" -opentelemetry-semantic-conventions==0.26b1; python_version >= "3.6" -opentelemetry-util-http==0.26b1; python_version >= "3.6" +opentelemetry-sdk==1.8.0; python_version >= "3.6" +opentelemetry-semantic-conventions==0.27b0; python_version >= "3.6" +opentelemetry-util-http==0.27b0; python_version >= "3.6" packaging==21.0; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and python_version >= "3.6" pathspec==0.9.0; python_full_version >= "3.6.2" pbr==5.11.0; python_version >= "3.6" @@ -112,7 +114,8 @@ prompt-toolkit==3.0.36; python_full_version >= "3.6.2" and python_version >= "3. protobuf==3.19.5; python_version >= "3.5" py==1.10.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" pycodestyle==2.7.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" -pycparser==2.20; python_version >= "2.7" and python_full_version < "3.0.0" and platform_python_implementation == "CPython" and sys_platform == "win32" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_version > "3.5") or platform_python_implementation == "CPython" and sys_platform == "win32" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_version > "3.5") and python_full_version >= "3.6.0" +pycparser==2.20; python_version >= "3.6" and python_full_version < "3.0.0" and platform_python_implementation == "CPython" and sys_platform == "win32" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_version > "3.5") or platform_python_implementation == "CPython" and sys_platform == "win32" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_version > "3.5") and python_version >= "3.6" and python_full_version >= "3.4.0" +pycryptodomex==3.20.0; python_full_version >= "3.6.2" and python_version < "3.11" pydantic==1.9.2; python_full_version >= "3.6.1" pyflakes==2.3.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" pyinstrument-cext==0.2.4 @@ -129,19 +132,20 @@ python-editor==1.0.4; python_full_version >= "3.6.2" and python_version < "3.11" python-json-logger==0.1.7 pytz==2022.6 pyyaml==5.4.1; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.5") -redis==4.3.5; python_version >= "3.6" +redis==4.3.6; python_version >= "3.6" regex==2021.8.3; python_full_version >= "3.6.2" requests==2.27.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0") ruamel.yaml.clib==0.2.6; platform_python_implementation == "CPython" and python_version < "3.10" and python_version >= "3.6" ruamel.yaml==0.17.10; python_version >= "3.6" -sentry-sdk==1.5.6 +sentry-sdk==1.44.1 six==1.15.0; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.3.0") smmap==5.0.0; python_version >= "3.6" -sqlparse==0.4.2; python_version >= "3.6" +sqlparse==0.4.4; python_version >= "3.5" stevedore==3.5.2; python_version >= "3.6" thrift==0.15.0; python_version >= "3.6" toml==0.10.1 tomli==1.2.1; python_version >= "3.6" and python_full_version >= "3.6.2" +tongsuopy-crayon==1.0.2b6; python_full_version >= "3.6.2" and python_version < "3.11" and python_version >= "3.6" typed-ast==1.4.3; python_version < "3.8" and python_full_version >= "3.6.2" and python_version >= "3.5" types-mock==0.1.5 types-pytz==2021.1.2 @@ -150,13 +154,13 @@ types-requests==2.25.6 types-six==0.1.9 typing-extensions==3.7.4.3 uritemplate==3.0.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -urllib3==1.26.6; python_full_version >= "3.6.2" and python_version < "3.11" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version < "4") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") +urllib3==1.26.18; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0") vine==5.0.0; python_version >= "3.6" watchdog==1.0.2; python_full_version >= "3.6.2" and python_version < "3.11" and python_version >= "3.6" wcwidth==0.2.5; python_full_version >= "3.6.2" and python_version >= "3.6" werkzeug==1.0.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.5.0") whitenoise==5.1.0; python_version >= "3.5" and python_version < "4" -wrapt==1.13.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" +wrapt==1.16.0; python_full_version >= "3.6.2" and python_version >= "3.6" and python_version < "3.11" zipp==3.5.0; python_version < "3.8" and python_version >= "3.6" zope.event==4.5.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_version > "3.5" zope.interface==5.4.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_version > "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version > "3.5" From 2ab8489322841592a98931a46a142a73165af3ad Mon Sep 17 00:00:00 2001 From: lhzzforever Date: Sun, 7 Apr 2024 17:02:48 +0800 Subject: [PATCH 002/108] =?UTF-8?q?feature:=20=E6=8F=90=E4=BA=A4=E7=BB=AD?= =?UTF-8?q?=E6=9C=9F=E9=80=9A=E7=9F=A5=E9=83=A8=E5=88=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/assets/iconfont/demo.html | 70 ++++++++++++++++++ .../src/assets/iconfont/fonts/iconcool.eot | Bin 42048 -> 43848 bytes .../src/assets/iconfont/fonts/iconcool.svg | 21 ++++++ .../src/assets/iconfont/fonts/iconcool.ttf | Bin 41880 -> 43680 bytes .../src/assets/iconfont/fonts/iconcool.woff | Bin 22888 -> 24164 bytes frontend/src/assets/iconfont/iconcool.js | 2 +- frontend/src/assets/iconfont/iconcool.json | 2 +- frontend/src/assets/iconfont/style.css | 21 ++++++ frontend/src/common/router-handle.js | 19 +++-- frontend/src/components/nav/index.vue | 4 +- frontend/src/language/lang/en.js | 3 +- frontend/src/language/lang/zh.js | 6 +- frontend/src/router/ce.js | 11 +++ frontend/src/router/ee.js | 11 +++ frontend/src/router/ieod.js | 19 +++-- frontend/src/store/index.js | 8 ++ frontend/src/views/approval-process/index.vue | 14 ++-- 17 files changed, 187 insertions(+), 24 deletions(-) diff --git a/frontend/src/assets/iconfont/demo.html b/frontend/src/assets/iconfont/demo.html index da3fd9a24..3d89deb91 100644 --- a/frontend/src/assets/iconfont/demo.html +++ b/frontend/src/assets/iconfont/demo.html @@ -405,6 +405,18 @@

revoke

+
  • + +

    qq

    +
  • +
  • + +

    qw

    +
  • +
  • + +

    wechat

    +
  • user-directory

    @@ -669,6 +681,22 @@

    renyuanmuban

  • +
  • + +

    setting

    +
  • +
  • + +

    notification

    +
  • +
  • + +

    duanxin

    +
  • +
  • + +

    youjian

    +
  • 为什么使用

    为什么使用