Compare commits
	
		
			No commits in common. "a1679b69c3b83aca710f5f0de0790513df46f262" and "5893920d69070384dbe99d0e2e0c4f1f2a6d20da" have entirely different histories.
		
	
	
		
			a1679b69c3
			...
			5893920d69
		
	
		
							
								
								
									
										10
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								Dockerfile
									
									
									
									
									
								
							| @ -22,7 +22,6 @@ ENV PYTHONUNBUFFERED 1 | |||||||
| # default build args | # default build args | ||||||
| ARG VERSION=0.1.0 \ | ARG VERSION=0.1.0 \ | ||||||
|     APP_DIR=/app \ |     APP_DIR=/app \ | ||||||
|     DATA_DIR=/app/data \ |  | ||||||
|     SRC_DIR=./logs_collector \ |     SRC_DIR=./logs_collector \ | ||||||
|     SCRIPTS_DIR=./scripts \ |     SCRIPTS_DIR=./scripts \ | ||||||
|     WEB_PORT=8000 \ |     WEB_PORT=8000 \ | ||||||
| @ -35,20 +34,17 @@ ARG VERSION=0.1.0 \ | |||||||
| COPY --from=base /usr/local/lib/python3.10/site-packages/ /usr/local/lib/python3.10/site-packages/ | COPY --from=base /usr/local/lib/python3.10/site-packages/ /usr/local/lib/python3.10/site-packages/ | ||||||
| COPY --from=base /usr/local/bin/ /usr/local/bin/ | COPY --from=base /usr/local/bin/ /usr/local/bin/ | ||||||
| 
 | 
 | ||||||
| # add curl and createa user to avoid running container as root && | # add curl and createa user to avoid running container as root | ||||||
| # create storage dir |  | ||||||
| RUN apk add --no-cache --upgrade curl && \ | RUN apk add --no-cache --upgrade curl && \ | ||||||
|     addgroup --system ${USER_GROUP} --gid ${APP_GID} && \ |     addgroup --system ${USER_GROUP} --gid ${APP_GID} && \ | ||||||
|     adduser --system --uid ${APP_UID} --ingroup ${USER_GROUP} ${USER_NAME} && \ |     adduser --system --uid ${APP_UID} --ingroup ${USER_GROUP} ${USER_NAME} | ||||||
|     mkdir -p ${APP_DIR}/data  && \ |  | ||||||
|     chown -R ${USER_NAME}:${USER_GROUP} ${DATA_DIR} |  | ||||||
| 
 | 
 | ||||||
| # switch to user | # switch to user | ||||||
| USER ${USER_NAME} | USER ${USER_NAME} | ||||||
| 
 | 
 | ||||||
| # copy src and entrypoint.sh to app dir | # copy src and entrypoint.sh to app dir | ||||||
| COPY --chown=${USER_NAME}:${USER_GROUP} ${SRC_DIR} ${APP_DIR} | COPY --chown=${USER_NAME}:${USER_GROUP} ${SRC_DIR} ${APP_DIR} | ||||||
| COPY --chown=${USER_NAME}:${USER_GROUP} ${SCRIPTS_DIR}/entrypoint.sh ${APP_DIR} | COPY --chown=${USER_NAME}:${USER_GROUP} ${SCRIPTS_DIR}/entrypoint.sh ${APP_DIR}/ | ||||||
| 
 | 
 | ||||||
| # set workdir | # set workdir | ||||||
| WORKDIR ${APP_DIR} | WORKDIR ${APP_DIR} | ||||||
|  | |||||||
| @ -13,7 +13,6 @@ services: | |||||||
|         - SRC_DIR=${SRC_DIR} |         - SRC_DIR=${SRC_DIR} | ||||||
|         - SCRIPTS_DIR=${SCRIPTS_DIR} |         - SCRIPTS_DIR=${SCRIPTS_DIR} | ||||||
|         - APP_DIR=${APP_DIR} |         - APP_DIR=${APP_DIR} | ||||||
|         - DATA_DIR=${DATA_DIR} |  | ||||||
|         - WEB_PORT=${WEB_PORT} |         - WEB_PORT=${WEB_PORT} | ||||||
|         - USER_NAME=${USER_NAME} |         - USER_NAME=${USER_NAME} | ||||||
|         - USER_GROUP=${USER_GROUP} |         - USER_GROUP=${USER_GROUP} | ||||||
|  | |||||||
| @ -66,4 +66,3 @@ class StorageInfoSerializer(serializers.Serializer): | |||||||
|     used = serializers.IntegerField(read_only=True) |     used = serializers.IntegerField(read_only=True) | ||||||
|     free = serializers.IntegerField(read_only=True) |     free = serializers.IntegerField(read_only=True) | ||||||
|     used_percent = serializers.IntegerField(read_only=True) |     used_percent = serializers.IntegerField(read_only=True) | ||||||
|     status = serializers.CharField(read_only=True) |  | ||||||
|  | |||||||
| @ -171,4 +171,4 @@ class StorageInfo(views.APIView): | |||||||
|         summary='Show storage space in bytes' |         summary='Show storage space in bytes' | ||||||
|     ) |     ) | ||||||
|     def get(self, request): |     def get(self, request): | ||||||
|         return Response(get_mount_fs_info(settings.DATA_DIR)) |         return Response(get_mount_fs_info(settings.MEDIA_ROOT)) | ||||||
|  | |||||||
| @ -13,4 +13,4 @@ def metadata(request): | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def storage_info(request): | def storage_info(request): | ||||||
|     return {'storage': get_mount_fs_info(settings.DATA_DIR)} |     return {'storage': get_mount_fs_info(settings.MEDIA_ROOT)} | ||||||
|  | |||||||
| @ -1,8 +1,7 @@ | |||||||
| import shutil | import shutil | ||||||
| import pathlib |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def logs_dir_path(instance, filename: str) -> str: | def logs_dir_path(instance, filename): | ||||||
|     """ |     """ | ||||||
|         file will be uploaded to |         file will be uploaded to | ||||||
|         MEDIA_ROOT/view/<filename> |         MEDIA_ROOT/view/<filename> | ||||||
| @ -31,31 +30,9 @@ def sizify(value: int) -> str: | |||||||
|     return f'{round(value, 1)} {ext}' |     return f'{round(value, 1)} {ext}' | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_mount_fs_info(path: type[pathlib.PosixPath]) -> dict: | def get_mount_fs_info(path): | ||||||
|     """ |     mount_info = shutil.disk_usage(path)._asdict() | ||||||
|         Get directory information for storing uploaded files. |     mount_info['used_percent'] = round( | ||||||
|         Includes information total/used/free space on mount device |         mount_info['used'] / mount_info['total'] * 100 | ||||||
| 
 |     ) | ||||||
|     Args: |  | ||||||
|         path (pathlib.PosixPath): path to storage dir |  | ||||||
| 
 |  | ||||||
|     Returns: |  | ||||||
|         dict: storage mount info |  | ||||||
|     """ |  | ||||||
|     mount_info: dict = {} |  | ||||||
|     try: |  | ||||||
|         mount_info = shutil.disk_usage(path)._asdict() |  | ||||||
|         mount_info['used_percent'] = round( |  | ||||||
|             mount_info['used'] / mount_info['total'] * 100, |  | ||||||
|         ) |  | ||||||
|         mount_info['status'] = 'mount' |  | ||||||
|     except Exception as error:  # expected FileNotFoundError |  | ||||||
|         mount_info = { |  | ||||||
|             'total': 0, |  | ||||||
|             'used': 0, |  | ||||||
|             'free': 0, |  | ||||||
|             'used_percent': 0, |  | ||||||
|             'status': 'error', |  | ||||||
|             'traceback': f'{error}' |  | ||||||
|         } |  | ||||||
|     return mount_info |     return mount_info | ||||||
|  | |||||||
| @ -4,19 +4,9 @@ from datetime import timedelta | |||||||
| 
 | 
 | ||||||
| from . import __version__, __status__ | from . import __version__, __status__ | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| # █▀█ █▀█ █▀█ ▀█▀ ▀ |  | ||||||
| # █▀▄ █▄█ █▄█ ░█░ ▄ |  | ||||||
| # -- -- -- -- -- -- |  | ||||||
| 
 |  | ||||||
| # Build paths inside the project like this: BASE_DIR / 'subdir'. | # Build paths inside the project like this: BASE_DIR / 'subdir'. | ||||||
| BASE_DIR = Path(__file__).resolve().parent.parent | BASE_DIR = Path(__file__).resolve().parent.parent | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| # █▀▀ █▄░█ █░█ ▀ |  | ||||||
| # ██▄ █░▀█ ▀▄▀ ▄ |  | ||||||
| # -- -- -- -- -- |  | ||||||
| 
 |  | ||||||
| # Set default environ variables: | # Set default environ variables: | ||||||
| env = environ.Env( | env = environ.Env( | ||||||
|     # set casting default value |     # set casting default value | ||||||
| @ -24,7 +14,7 @@ env = environ.Env( | |||||||
|     ENVIRONMENT=(str, __status__), |     ENVIRONMENT=(str, __status__), | ||||||
|     DEBUG=(bool, False), |     DEBUG=(bool, False), | ||||||
|     SECRET_KEY=(str, 'j9QGbvM9Z4otb47'), |     SECRET_KEY=(str, 'j9QGbvM9Z4otb47'), | ||||||
|     DATA_DIR=(Path, BASE_DIR / 'data'), |     SQLITE_URL=(str, f'sqlite:///{BASE_DIR / "data/db.sqlite3"}'), | ||||||
|     CSRF_TRUSTED_ORIGINS=(list, []), |     CSRF_TRUSTED_ORIGINS=(list, []), | ||||||
|     ALLOWED_HOSTS=(list, ['*']), |     ALLOWED_HOSTS=(list, ['*']), | ||||||
|     TZ=(str, 'UTC'), |     TZ=(str, 'UTC'), | ||||||
| @ -33,13 +23,7 @@ env = environ.Env( | |||||||
| # Read .env file if exist: | # Read .env file if exist: | ||||||
| environ.Env.read_env(BASE_DIR / '.env') | environ.Env.read_env(BASE_DIR / '.env') | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| # █▀▀ █▀█ █▀█ █▀▀ ▀ |  | ||||||
| # █▄▄ █▄█ █▀▄ ██▄ ▄ |  | ||||||
| # -- -- -- -- -- - |  | ||||||
| 
 |  | ||||||
| VERSION = env('VERSION') | VERSION = env('VERSION') | ||||||
| 
 |  | ||||||
| ENVIRONMENT = env('ENVIRONMENT') | ENVIRONMENT = env('ENVIRONMENT') | ||||||
| 
 | 
 | ||||||
| # SECURITY WARNING: keep the secret key used in production secret! | # SECURITY WARNING: keep the secret key used in production secret! | ||||||
| @ -115,6 +99,12 @@ TEMPLATES = [ | |||||||
| 
 | 
 | ||||||
| WSGI_APPLICATION = 'logs_collector.wsgi.application' | WSGI_APPLICATION = 'logs_collector.wsgi.application' | ||||||
| 
 | 
 | ||||||
|  | # Database | ||||||
|  | # https://docs.djangoproject.com/en/4.2/ref/settings/#databases | ||||||
|  | DATABASES = { | ||||||
|  |     'default': env.db_url('SQLITE_URL') | ||||||
|  | } | ||||||
|  | 
 | ||||||
| # Password validation | # Password validation | ||||||
| # https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators | # https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators | ||||||
| 
 | 
 | ||||||
| @ -144,11 +134,6 @@ USE_I18N = True | |||||||
| 
 | 
 | ||||||
| USE_TZ = True | USE_TZ = True | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| # █▀ ▀█▀ ▄▀█ ▀█▀ █ █▀▀ ▀ |  | ||||||
| # ▄█ ░█░ █▀█ ░█░ █ █▄▄ ▄ |  | ||||||
| # -- -- -- -- -- -- -- - |  | ||||||
| 
 |  | ||||||
| # Static files (CSS, JavaScript, Images) | # Static files (CSS, JavaScript, Images) | ||||||
| # https://docs.djangoproject.com/en/4.2/howto/static-files/ | # https://docs.djangoproject.com/en/4.2/howto/static-files/ | ||||||
| # Whitenoise: | # Whitenoise: | ||||||
| @ -156,19 +141,12 @@ USE_TZ = True | |||||||
| STATIC_URL = 'static/' | STATIC_URL = 'static/' | ||||||
| STATIC_ROOT = BASE_DIR / 'static' | STATIC_ROOT = BASE_DIR / 'static' | ||||||
| 
 | 
 | ||||||
|  | # Default primary key field type | ||||||
|  | # https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field | ||||||
| 
 | 
 | ||||||
| # █▀▄ ▄▀█ ▀█▀ ▄▀█ ▀ | DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' | ||||||
| # █▄▀ █▀█ ░█░ █▀█ ▄ |  | ||||||
| # -- -- -- -- -- -- |  | ||||||
| 
 | 
 | ||||||
| # Build paths inside the project for db and storage. | MEDIA_ROOT = BASE_DIR / 'data/archives' | ||||||
| DATA_DIR = env('DATA_DIR') |  | ||||||
| 
 |  | ||||||
| # Create DATA_DIR ignore if exist: |  | ||||||
| Path(DATA_DIR).mkdir(parents=True, exist_ok=True) |  | ||||||
| 
 |  | ||||||
| # Custom file storage path |  | ||||||
| MEDIA_ROOT = DATA_DIR / 'archives' |  | ||||||
| 
 | 
 | ||||||
| STORAGES = { | STORAGES = { | ||||||
|     "default": { |     "default": { | ||||||
| @ -183,29 +161,6 @@ STORAGES = { | |||||||
|     }, |     }, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| # █▀▄ ▄▀█ ▀█▀ ▄▀█ █▄▄ ▄▀█ █▀ █▀▀ ▀ |  | ||||||
| # █▄▀ █▀█ ░█░ █▀█ █▄█ █▀█ ▄█ ██▄ ▄ |  | ||||||
| # -- -- -- -- -- -- -- -- -- -- -- |  | ||||||
| 
 |  | ||||||
| # Database |  | ||||||
| # https://docs.djangoproject.com/en/4.2/ref/settings/#databases |  | ||||||
| DATABASES = { |  | ||||||
|     'default': env.db_url( |  | ||||||
|         'DB_URL', |  | ||||||
|         default=f'sqlite:///{DATA_DIR / "db.sqlite3"}' |  | ||||||
|     ) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # Default primary key field type |  | ||||||
| # https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field |  | ||||||
| DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| # █▀▀ ▀▄▀ ▀█▀ █▀▀ █▄░█ ▀█▀ █ █▀█ █▄░█ █▀ ▀ |  | ||||||
| # ██▄ █░█ ░█░ ██▄ █░▀█ ░█░ █ █▄█ █░▀█ ▄█ ▄ |  | ||||||
| # -- -- -- -- -- -- -- -- -- -- -- -- -- - |  | ||||||
| 
 |  | ||||||
| # django-crispy-forms and crispy-bootstrap5 | # django-crispy-forms and crispy-bootstrap5 | ||||||
| # https://django-crispy-forms.readthedocs.io/en/latest/ | # https://django-crispy-forms.readthedocs.io/en/latest/ | ||||||
| CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5" | CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5" | ||||||
| @ -241,6 +196,7 @@ if DEBUG: | |||||||
|     ).append('rest_framework.renderers.BrowsableAPIRenderer') |     ).append('rest_framework.renderers.BrowsableAPIRenderer') | ||||||
| 
 | 
 | ||||||
| # https://drf-spectacular.readthedocs.io/en/latest/readme.html | # https://drf-spectacular.readthedocs.io/en/latest/readme.html | ||||||
|  | # TODO: set environ vars config! | ||||||
| SPECTACULAR_SETTINGS = { | SPECTACULAR_SETTINGS = { | ||||||
|     'TITLE': 'Logs collector API', |     'TITLE': 'Logs collector API', | ||||||
|     'DESCRIPTION': 'Collector of archives with log files for further analysis', |     'DESCRIPTION': 'Collector of archives with log files for further analysis', | ||||||
| @ -293,11 +249,6 @@ SIMPLE_JWT = { | |||||||
|     "SLIDING_TOKEN_REFRESH_SERIALIZER": "rest_framework_simplejwt.serializers.TokenRefreshSlidingSerializer",  # noqa:E501 |     "SLIDING_TOKEN_REFRESH_SERIALIZER": "rest_framework_simplejwt.serializers.TokenRefreshSlidingSerializer",  # noqa:E501 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| # ▄▀█ █░█ ▀█▀ █░█ ▀ |  | ||||||
| # █▀█ █▄█ ░█░ █▀█ ▄ |  | ||||||
| # -- -- -- -- -- -- |  | ||||||
| 
 |  | ||||||
| LOGIN_URL = 'two_factor:login' | LOGIN_URL = 'two_factor:login' | ||||||
| LOGIN_REDIRECT_URL = 'collector:index' | LOGIN_REDIRECT_URL = 'collector:index' | ||||||
| LOGOUT_REDIRECT_URL = 'two_factor:login' | LOGOUT_REDIRECT_URL = 'two_factor:login' | ||||||
|  | |||||||
| @ -5,18 +5,8 @@ | |||||||
|       class="nav-link me-1 bi bi-sd-card" |       class="nav-link me-1 bi bi-sd-card" | ||||||
|       aria-current="page" |       aria-current="page" | ||||||
|       data-bs-toggle="tooltip" |       data-bs-toggle="tooltip" | ||||||
|       data-bs-html="true" |  | ||||||
|       data-bs-placement="bottom" |       data-bs-placement="bottom" | ||||||
|       data-bs-title=" |       data-bs-title="Storage used: {{ storage.used_percent }}%" | ||||||
|         <span><u>STORAGE</u><span> |  | ||||||
|         <br> |  | ||||||
|         Used: {{ storage.used_percent }}% |  | ||||||
|         <br> |  | ||||||
|         Status: |  | ||||||
|           <span class={% if storage.status == 'error' %}text-danger{% else %}text-success{% endif %}> |  | ||||||
|             {{ storage.status }} |  | ||||||
|           <span> |  | ||||||
|       " |  | ||||||
|     > |     > | ||||||
|     </i> |     </i> | ||||||
|     <div |     <div | ||||||
|  | |||||||
							
								
								
									
										297
									
								
								poetry.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										297
									
								
								poetry.lock
									
									
									
										generated
									
									
									
								
							| @ -398,100 +398,13 @@ files = [ | |||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "phonenumberslite" | name = "phonenumberslite" | ||||||
| version = "8.13.20" | version = "8.13.19" | ||||||
| description = "Python version of Google's common library for parsing, formatting, storing and validating international phone numbers." | description = "Python version of Google's common library for parsing, formatting, storing and validating international phone numbers." | ||||||
| optional = false | optional = false | ||||||
| python-versions = "*" | python-versions = "*" | ||||||
| files = [ | files = [ | ||||||
|     {file = "phonenumberslite-8.13.20-py2.py3-none-any.whl", hash = "sha256:f0840de9bfe5b8f10b6883d971dd81f3a53bed8210326a53266f11e8be3428c3"}, |     {file = "phonenumberslite-8.13.19-py2.py3-none-any.whl", hash = "sha256:163a18e962e4a29ffd0bd523fa7aa60301bc7aa467bf0383bf3c4dac02097573"}, | ||||||
|     {file = "phonenumberslite-8.13.20.tar.gz", hash = "sha256:09b07b32861f306dee10f17085afb3e058b4c179edf50deb94db4d4dd14235ff"}, |     {file = "phonenumberslite-8.13.19.tar.gz", hash = "sha256:5d05d0f31f0838b1773c6093925c7c1ab3e98d98747db7c54a9385f8b6df5f71"}, | ||||||
| ] |  | ||||||
| 
 |  | ||||||
| [[package]] |  | ||||||
| name = "psycopg" |  | ||||||
| version = "3.1.10" |  | ||||||
| description = "PostgreSQL database adapter for Python" |  | ||||||
| optional = false |  | ||||||
| python-versions = ">=3.7" |  | ||||||
| files = [ |  | ||||||
|     {file = "psycopg-3.1.10-py3-none-any.whl", hash = "sha256:8bbeddae5075c7890b2fa3e3553440376d3c5e28418335dee3c3656b06fa2b52"}, |  | ||||||
|     {file = "psycopg-3.1.10.tar.gz", hash = "sha256:15b25741494344c24066dc2479b0f383dd1b82fa5e75612fa4fa5bb30726e9b6"}, |  | ||||||
| ] |  | ||||||
| 
 |  | ||||||
| [package.dependencies] |  | ||||||
| psycopg-binary = {version = "3.1.10", optional = true, markers = "extra == \"binary\""} |  | ||||||
| typing-extensions = ">=4.1" |  | ||||||
| tzdata = {version = "*", markers = "sys_platform == \"win32\""} |  | ||||||
| 
 |  | ||||||
| [package.extras] |  | ||||||
| binary = ["psycopg-binary (==3.1.10)"] |  | ||||||
| c = ["psycopg-c (==3.1.10)"] |  | ||||||
| dev = ["black (>=23.1.0)", "dnspython (>=2.1)", "flake8 (>=4.0)", "mypy (>=1.4.1)", "types-setuptools (>=57.4)", "wheel (>=0.37)"] |  | ||||||
| docs = ["Sphinx (>=5.0)", "furo (==2022.6.21)", "sphinx-autobuild (>=2021.3.14)", "sphinx-autodoc-typehints (>=1.12)"] |  | ||||||
| pool = ["psycopg-pool"] |  | ||||||
| test = ["anyio (>=3.6.2)", "mypy (>=1.4.1)", "pproxy (>=2.7)", "pytest (>=6.2.5)", "pytest-cov (>=3.0)", "pytest-randomly (>=3.5)"] |  | ||||||
| 
 |  | ||||||
| [[package]] |  | ||||||
| name = "psycopg-binary" |  | ||||||
| version = "3.1.10" |  | ||||||
| description = "PostgreSQL database adapter for Python -- C optimisation distribution" |  | ||||||
| optional = false |  | ||||||
| python-versions = ">=3.7" |  | ||||||
| files = [ |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a529c203f6e0f4c67ba27cf8f9739eb3bc880ad70d6ad6c0e56c2230a66b5a09"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:bd6e14d1aeb12754a43446c77a5ce819b68875cc25ae6538089ef90d7f6dd6f7"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1583ced5948cf88124212c4503dfe5b01ac3e2dd1a2833c083917f4c4aabe8b4"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2098721c486478987be700723b28ec7a48f134eba339de36af0e745f37dfe461"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7e61f7b412fca7b15dd043a0b22fd528d2ed8276e76b3764c3889e29fa65082b"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0f33e33a072e3d5af51ee4d4a439e10dbe623fe87ef295d5d688180d529f13f"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f6f7738c59262d8d19154164d99c881ed58ed377fb6f1d685eb0dc43bbcd8022"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:511d38b1e1961d179d47d5103ba9634ecfc7ead431d19a9337ef82f3a2bca807"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:666e7acf2ffdb5e8a58e8b0c1759facdb9688c7e90ee8ca7aed675803b57404d"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:57b93c756fee5f7c7bd580c34cd5d244f7d5638f8b2cf25333f97b9b8b2ebfd1"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp310-cp310-win_amd64.whl", hash = "sha256:a1d61b7724c7215a8ea4495a5c6b704656f4b7bb6165f4cb9989b685886ebc48"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:36fff836a7823c9d71fa7faa333c74b2b081af216cebdbb0f481dce55ee2d974"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:32caf98cb00881bfcbbbae39a15f2a4e08b79ff983f1c0f13b60a888ef6e8431"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5565a6a86fee8d74f30de89e07f399567cdf59367aeb09624eb690d524339076"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9fb0d64520b29bd80a6731476ad8e1c20348dfdee00ab098899d23247b641675"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfc05ed4e74fa8615d7cc2bd57f00f97662f4e865a731dbd43da9a527e289c8c"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5b59c8cff887757ddf438ff9489d79c5e6b717112c96f5c68e16f367ff8724e"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a4cbaf12361136afefc5faab21a174a437e71c803b083f410e5140c7605bc66b"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ff72576061c774bcce5f5440b93e63d4c430032dd056d30f6cb1988e549dd92c"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:a4e91e1a8d61c60f592a1dfcebdf55e52a29fe4fdb650c5bd5414c848e77d029"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f7187269d825e84c945be7d93dd5088a4e0b6481a4bdaba3bf7069d4ac13703d"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp311-cp311-win_amd64.whl", hash = "sha256:ba7812a593c16d9d661844dc8dd4d81548fd1c2a0ee676f3e3d8638369f4c5e4"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:88caa5859740507b3596c6c2e00ceaccee2c6ab5317bc535887801ad3cc7f3e1"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a3a7e99ba10c2e83a48d79431560e0d5ca7865f68f2bac3a462dc2b151e9926"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:848f4f4707dc73f4b4e844c92f3de795b2ddb728f75132602bda5e6ba55084fc"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:415961e839bb49cfd75cd961503fb8846c0768f247db1fa7171c1ac61d38711b"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0471869e658d0c6b8c3ed53153794739c18d7dad2dd5b8e6ff023a364c20f7df"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4290060ee0d856caa979ecf675c0e6959325f508272ccf27f64c3801c7bcbde7"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:abf04bc06c8f6a1ac3dc2106d3b79c8661352e9d8a57ca2934ffa6aae8fe600a"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:51fe70708243b83bf16710d8c11b61bd46562e6a24a6300d5434380b35911059"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8b658f7f8b49fb60a1c52e3f6692f690a85bdf1ad30aafe0f3f1fd74f6958cf8"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp37-cp37m-win_amd64.whl", hash = "sha256:ffc8c796194f23b9b07f6d25f927ec4df84a194bbc7a1f9e73316734eef512f9"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:74ce92122be34cf0e5f06d79869e1001c8421a68fa7ddf6fe38a717155cf3a64"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:75608a900984061c8898be68fbddc6f3da5eefdffce6e0624f5371645740d172"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6670d160d054466e8fdedfbc749ef8bf7dfdf69296048954d24645dd4d3d3c01"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d32026cfab7ba7ac687a42c33345026a2fb6fc5608a6144077f767af4386be0b"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:908fa388a5b75dfd17a937acb24708bd272e21edefca9a495004c6f70ec2636a"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e46b97073bd4de114f475249d681eaf054e950699c5d7af554d3684db39b82d"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9cf56bb4b115def3a18157f3b3b7d8322ee94a8dea30028db602c8f9ae34ad1e"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3b6c6f90241c4c5a6ca3f0d8827e37ef90fdc4deb9d8cfa5678baa0ea374b391"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:747176a6aeb058079f56c5397bd90339581ab7b3cc0d62e7445654e6a484c7e1"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:41a415e78c457b06497fa0084e4ea7245ca1a377b55756dd757034210b64da7e"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp38-cp38-win_amd64.whl", hash = "sha256:a7bbe9017edd898d7b3a8747700ed045dda96a907dff87f45e642e28d8584481"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0f062f20256708929a58c41d44f350efced4c00a603323d1413f6dc0b84d95a5"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dea30f2704337ca2d0322fccfe1fa30f61ce9185de3937eb986321063114a51f"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9d88ac72531034ebf7ec09114e732b066a9078f4ce213cf65cc5e42eb538d30"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2bea0940d69c3e24a72530730952687912893b34c53aa39e79045e7b446174d"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6a691dc8e2436d9c1e5cf93902d63e9501688fccc957eb22f952d37886257470"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa92661f99351765673835a4d936d79bd24dfbb358b29b084d83be38229a90e4"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:30eb731ed5525d8df892db6532cc8ffd8a163b73bc355127dee9c49334e16eee"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:50bf7a59d3a85a82d466fed341d352b44d09d6adc18656101d163a7cfc6509a0"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f48665947c55f8d6eb3f0be98de80411508e1ec329f354685329b57fced82c7f"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:caa771569da01fc0389ca34920c331a284425a68f92d1ba0a80cc08935f8356e"}, |  | ||||||
|     {file = "psycopg_binary-3.1.10-cp39-cp39-win_amd64.whl", hash = "sha256:b30887e631fd67affaed98f6cd2135b44f2d1a6d9bca353a69c3889c78bd7aa8"}, |  | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| @ -546,13 +459,13 @@ files = [ | |||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "pytz" | name = "pytz" | ||||||
| version = "2023.3.post1" | version = "2023.3" | ||||||
| description = "World timezone definitions, modern and historical" | description = "World timezone definitions, modern and historical" | ||||||
| optional = false | optional = false | ||||||
| python-versions = "*" | python-versions = "*" | ||||||
| files = [ | files = [ | ||||||
|     {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, |     {file = "pytz-2023.3-py2.py3-none-any.whl", hash = "sha256:a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb"}, | ||||||
|     {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, |     {file = "pytz-2023.3.tar.gz", hash = "sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588"}, | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| @ -644,108 +557,108 @@ rpds-py = ">=0.7.0" | |||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "rpds-py" | name = "rpds-py" | ||||||
| version = "0.10.2" | version = "0.10.0" | ||||||
| description = "Python bindings to Rust's persistent data structures (rpds)" | description = "Python bindings to Rust's persistent data structures (rpds)" | ||||||
| optional = false | optional = false | ||||||
| python-versions = ">=3.8" | python-versions = ">=3.8" | ||||||
| files = [ | files = [ | ||||||
|     {file = "rpds_py-0.10.2-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:9f00d54b18dd837f1431d66b076737deb7c29ce3ebb8412ceaf44d5e1954ac0c"}, |     {file = "rpds_py-0.10.0-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:c1e0e9916301e3b3d970814b1439ca59487f0616d30f36a44cead66ee1748c31"}, | ||||||
|     {file = "rpds_py-0.10.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f4d561f4728f825e3b793a53064b606ca0b6fc264f67d09e54af452aafc5b82"}, |     {file = "rpds_py-0.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8ce8caa29ebbdcde67e5fd652c811d34bc01f249dbc0d61e5cc4db05ae79a83b"}, | ||||||
|     {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:013d6c784150d10236a74b4094a79d96a256b814457e388fc5a4ba9efe24c402"}, |     {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad277f74b1c164f7248afa968700e410651eb858d7c160d109fb451dc45a2f09"}, | ||||||
|     {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd1142d22fdb183a0fff66d79134bf644401437fed874f81066d314c67ee193c"}, |     {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8e1c68303ccf7fceb50fbab79064a2636119fd9aca121f28453709283dbca727"}, | ||||||
|     {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a0536ed2b9297c75104e1a3da330828ba1b2639fa53b38d396f98bf7e3c68df"}, |     {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:780fcb855be29153901c67fc9c5633d48aebef21b90aa72812fa181d731c6b00"}, | ||||||
|     {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:41bd430b7b63aa802c02964e331ac0b177148fef5f807d2c90d05ce71a52b4d4"}, |     {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bbd7b24d108509a1b9b6679fcc1166a7dd031dbef1f3c2c73788f42e3ebb3beb"}, | ||||||
|     {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e8474f7233fe1949ce4e03bea698a600c2d5d6b51dab6d6e6336dbe69acf23e"}, |     {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0700c2133ba203c4068aaecd6a59bda22e06a5e46255c9da23cbf68c6942215d"}, | ||||||
|     {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d9d7efaad48b859053b90dedd69bc92f2095084251e732e4c57ac9726bcb1e64"}, |     {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:576da63eae7809f375932bfcbca2cf20620a1915bf2fedce4b9cc8491eceefe3"}, | ||||||
|     {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5612b0b1de8d5114520094bd5fc3d04eb8af6f3e10d48ef05b7c8e77c1fd9545"}, |     {file = "rpds_py-0.10.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:23750a9b8a329844ba1fe267ca456bb3184984da2880ed17ae641c5af8de3fef"}, | ||||||
|     {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5d5eaf988951f6ecb6854ca3300b87123599c711183c83da7ce39717a7cbdbce"}, |     {file = "rpds_py-0.10.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:d08395595c42bcd82c3608762ce734504c6d025eef1c06f42326a6023a584186"}, | ||||||
|     {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:75c8766734ac0053e1d683567e65e85306c4ec62631b0591caeb287ac8f72e08"}, |     {file = "rpds_py-0.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1d7b7b71bcb82d8713c7c2e9c5f061415598af5938666beded20d81fa23e7640"}, | ||||||
|     {file = "rpds_py-0.10.2-cp310-none-win32.whl", hash = "sha256:8de9b88f0cbac73cfed34220d13c57849e62a7099a714b929142425e926d223a"}, |     {file = "rpds_py-0.10.0-cp310-none-win32.whl", hash = "sha256:97f5811df21703446b42303475b8b855ee07d6ab6cdf8565eff115540624f25d"}, | ||||||
|     {file = "rpds_py-0.10.2-cp310-none-win_amd64.whl", hash = "sha256:2275f1a022e2383da5d2d101fe11ccdcbae799148c4b83260a4b9309fa3e1fc2"}, |     {file = "rpds_py-0.10.0-cp310-none-win_amd64.whl", hash = "sha256:cdbed8f21204398f47de39b0a9b180d7e571f02dfb18bf5f1b618e238454b685"}, | ||||||
|     {file = "rpds_py-0.10.2-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:dd91a7d7a9ce7f4983097c91ce211f3e5569cc21caa16f2692298a07e396f82b"}, |     {file = "rpds_py-0.10.0-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:7a3a3d3e4f1e3cd2a67b93a0b6ed0f2499e33f47cc568e3a0023e405abdc0ff1"}, | ||||||
|     {file = "rpds_py-0.10.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e82b4a70cc67094f3f3fd77579702f48fcf1de7bdc67d79b8f1e24d089a6162c"}, |     {file = "rpds_py-0.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fc72ae476732cdb7b2c1acb5af23b478b8a0d4b6fcf19b90dd150291e0d5b26b"}, | ||||||
|     {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e281b71922208e00886e4b7ffbfcf27874486364f177418ab676f102130e7ec9"}, |     {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0583f69522732bdd79dca4cd3873e63a29acf4a299769c7541f2ca1e4dd4bc6"}, | ||||||
|     {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b3eb1a0d2b6d232d1bcdfc3fcc5f7b004ab3fbd9203011a3172f051d4527c0b6"}, |     {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f8b9a7cd381970e64849070aca7c32d53ab7d96c66db6c2ef7aa23c6e803f514"}, | ||||||
|     {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02945ae38fd78efc40900f509890de84cfd5ffe2cd2939eeb3a8800dc68b87cb"}, |     {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d292cabd7c8335bdd3237ded442480a249dbcdb4ddfac5218799364a01a0f5c"}, | ||||||
|     {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ccfb77f6dc8abffa6f1c7e3975ed9070a41ce5fcc11154d2bead8c1baa940f09"}, |     {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6903cdca64f1e301af9be424798328c1fe3b4b14aede35f04510989fc72f012"}, | ||||||
|     {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af52078719209bef33e38131486fd784832dd8d1dc9b85f00a44f6e7437dd021"}, |     {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bed57543c99249ab3a4586ddc8786529fbc33309e5e8a1351802a06ca2baf4c2"}, | ||||||
|     {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:56ba7c1100ed079527f2b995bf5486a2e557e6d5b733c52e8947476338815b69"}, |     {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15932ec5f224b0e35764dc156514533a4fca52dcfda0dfbe462a1a22b37efd59"}, | ||||||
|     {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:899b03a3be785a7e1ff84b237da71f0efa2f021512f147dd34ffdf7aa82cb678"}, |     {file = "rpds_py-0.10.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:eb2d59bc196e6d3b1827c7db06c1a898bfa0787c0574af398e65ccf2e97c0fbe"}, | ||||||
|     {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:22e6de18f00583f06928cc8d0993104ecc62f7c6da6478db2255de89a30e45d1"}, |     {file = "rpds_py-0.10.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f99d74ddf9d3b6126b509e81865f89bd1283e3fc1b568b68cd7bd9dfa15583d7"}, | ||||||
|     {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:edd74b760a6bb950397e7a7bd2f38e6700f6525062650b1d77c6d851b82f02c2"}, |     {file = "rpds_py-0.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f70bec8a14a692be6dbe7ce8aab303e88df891cbd4a39af091f90b6702e28055"}, | ||||||
|     {file = "rpds_py-0.10.2-cp311-none-win32.whl", hash = "sha256:18909093944727e068ebfc92e2e6ed1c4fa44135507c1c0555213ce211c53214"}, |     {file = "rpds_py-0.10.0-cp311-none-win32.whl", hash = "sha256:5f7487be65b9c2c510819e744e375bd41b929a97e5915c4852a82fbb085df62c"}, | ||||||
|     {file = "rpds_py-0.10.2-cp311-none-win_amd64.whl", hash = "sha256:9568764e72d85cf7855ca78b48e07ed1be47bf230e2cea8dabda3c95f660b0ff"}, |     {file = "rpds_py-0.10.0-cp311-none-win_amd64.whl", hash = "sha256:748e472345c3a82cfb462d0dff998a7bf43e621eed73374cb19f307e97e08a83"}, | ||||||
|     {file = "rpds_py-0.10.2-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:0fc625059b83695fbb4fc8b7a8b66fa94ff9c7b78c84fb9986cd53ff88a28d80"}, |     {file = "rpds_py-0.10.0-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:d4639111e73997567343df6551da9dd90d66aece1b9fc26c786d328439488103"}, | ||||||
|     {file = "rpds_py-0.10.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c86231c66e4f422e7c13ea6200bb4048b3016c8bfd11b4fd0dabd04d2c8e3501"}, |     {file = "rpds_py-0.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f4760e1b02173f4155203054f77a5dc0b4078de7645c922b208d28e7eb99f3e2"}, | ||||||
|     {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56777c57246e048908b550af9b81b0ec9cf804fd47cb7502ccd93238bd6025c2"}, |     {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a6420a36975e0073acaeee44ead260c1f6ea56812cfc6c31ec00c1c48197173"}, | ||||||
|     {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a4cb372e22e9c879bd9a9cc9b20b7c1fbf30a605ac953da45ecec05d8a6e1c77"}, |     {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:58fc4d66ee349a23dbf08c7e964120dc9027059566e29cf0ce6205d590ed7eca"}, | ||||||
|     {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa3b3a43dabc4cc57a7800f526cbe03f71c69121e21b863fdf497b59b462b163"}, |     {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:063411228b852fb2ed7485cf91f8e7d30893e69b0acb207ec349db04cccc8225"}, | ||||||
|     {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d222086daa55421d599609b32d0ebe544e57654c4a0a1490c54a7ebaa67561"}, |     {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65af12f70355de29e1092f319f85a3467f4005e959ab65129cb697169ce94b86"}, | ||||||
|     {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:529aab727f54a937085184e7436e1d0e19975cf10115eda12d37a683e4ee5342"}, |     {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:298e8b5d8087e0330aac211c85428c8761230ef46a1f2c516d6a2f67fb8803c5"}, | ||||||
|     {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43e9b1531d6a898bdf086acb75c41265c7ec4331267d7619148d407efc72bd24"}, |     {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5b9bf77008f2c55dabbd099fd3ac87009471d223a1c7ebea36873d39511b780a"}, | ||||||
|     {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c2772bb95062e3f9774140205cd65d8997e39620715486cf5f843cf4ad8f744c"}, |     {file = "rpds_py-0.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c7853f27195598e550fe089f78f0732c66ee1d1f0eaae8ad081589a5a2f5d4af"}, | ||||||
|     {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ba1b28e44f611f3f2b436bd8290050a61db4b59a8e24be4465f44897936b3824"}, |     {file = "rpds_py-0.10.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:75dbfd41a61bc1fb0536bf7b1abf272dc115c53d4d77db770cd65d46d4520882"}, | ||||||
|     {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5aba767e64b494483ad60c4873bec78d16205a21f8247c99749bd990d9c846c2"}, |     {file = "rpds_py-0.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b25136212a3d064a8f0b9ebbb6c57094c5229e0de76d15c79b76feff26aeb7b8"}, | ||||||
|     {file = "rpds_py-0.10.2-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:e1954f4b239d1a92081647eecfd51cbfd08ea16eb743b8af1cd0113258feea14"}, |     {file = "rpds_py-0.10.0-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:9affee8cb1ec453382c27eb9043378ab32f49cd4bc24a24275f5c39bf186c279"}, | ||||||
|     {file = "rpds_py-0.10.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:de4a2fd524993578fe093044f291b4b24aab134390030b3b9b5f87fd41ab7e75"}, |     {file = "rpds_py-0.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4d55528ef13af4b4e074d067977b1f61408602f53ae4537dccf42ba665c2c7bd"}, | ||||||
|     {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e69737bd56006a86fd5a78b2b85447580a6138c930a75eb9ef39fe03d90782b1"}, |     {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7865df1fb564092bcf46dac61b5def25342faf6352e4bc0e61a286e3fa26a3d"}, | ||||||
|     {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f40abbcc0a7d9a8a80870af839d317e6932533f98682aabd977add6c53beeb23"}, |     {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3f5cc8c7bc99d2bbcd704cef165ca7d155cd6464c86cbda8339026a42d219397"}, | ||||||
|     {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29ec8507664f94cc08457d98cfc41c3cdbddfa8952438e644177a29b04937876"}, |     {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cbae50d352e4717ffc22c566afc2d0da744380e87ed44a144508e3fb9114a3f4"}, | ||||||
|     {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bcde80aefe7054fad6277762fb7e9d35c72ea479a485ae1bb14629c640987b30"}, |     {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fccbf0cd3411719e4c9426755df90bf3449d9fc5a89f077f4a7f1abd4f70c910"}, | ||||||
|     {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a65de5c02884760a14a58304fb6303f9ddfc582e630f385daea871e1bdb18686"}, |     {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d10c431073dc6ebceed35ab22948a016cc2b5120963c13a41e38bdde4a7212"}, | ||||||
|     {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e92e5817eb6bfed23aa5e45bfe30647b83602bdd6f9e25d63524d4e6258458b0"}, |     {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1b401e8b9aece651512e62c431181e6e83048a651698a727ea0eb0699e9f9b74"}, | ||||||
|     {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2c8fc6c841ada60a86d29c9ebe2e8757c47eda6553f3596c560e59ca6e9b6fa1"}, |     {file = "rpds_py-0.10.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:7618a082c55cf038eede4a918c1001cc8a4411dfe508dc762659bcd48d8f4c6e"}, | ||||||
|     {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:8557c807388e6617161fe51b1a4747ea8d1133f2d2ad8e79583439abebe58fbd"}, |     {file = "rpds_py-0.10.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:b3226b246facae14909b465061ddcfa2dfeadb6a64f407f24300d42d69bcb1a1"}, | ||||||
|     {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:00e97d43a36811b78fa9ad9d3329bf34f76a31e891a7031a2ac01450c9b168ab"}, |     {file = "rpds_py-0.10.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a8edd467551c1102dc0f5754ab55cd0703431cd3044edf8c8e7d9208d63fa453"}, | ||||||
|     {file = "rpds_py-0.10.2-cp38-none-win32.whl", hash = "sha256:1ed3d5385d14be894e12a9033be989e012214a9811e7194849c94032ad69682a"}, |     {file = "rpds_py-0.10.0-cp38-none-win32.whl", hash = "sha256:71333c22f7cf5f0480b59a0aef21f652cf9bbaa9679ad261b405b65a57511d1e"}, | ||||||
|     {file = "rpds_py-0.10.2-cp38-none-win_amd64.whl", hash = "sha256:02b4a2e28eb24dac4ef43dda4f6a6f7766e355179b143f7d0c76a1c5488a307b"}, |     {file = "rpds_py-0.10.0-cp38-none-win_amd64.whl", hash = "sha256:a8ab1adf04ae2d6d65835995218fd3f3eb644fe20655ca8ee233e2c7270ff53b"}, | ||||||
|     {file = "rpds_py-0.10.2-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:2a55631b93e47956fbc97d69ba2054a8c6a4016f9a3064ec4e031f5f1030cb90"}, |     {file = "rpds_py-0.10.0-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:87c93b25d538c433fb053da6228c6290117ba53ff6a537c133b0f2087948a582"}, | ||||||
|     {file = "rpds_py-0.10.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2ffbf1b38c88d0466de542e91b08225d51782282512f8e2b11715126c41fda48"}, |     {file = "rpds_py-0.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7996aed3f65667c6dcc8302a69368435a87c2364079a066750a2eac75ea01e"}, | ||||||
|     {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213f9ef5c02ec2f883c1075d25a873149daadbaea50d18d622e9db55ec9849c2"}, |     {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8856aa76839dc234d3469f1e270918ce6bec1d6a601eba928f45d68a15f04fc3"}, | ||||||
|     {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b00150a9a3fd0a8efaa90bc2696c105b04039d50763dd1c95a34c88c5966cb57"}, |     {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:00215f6a9058fbf84f9d47536902558eb61f180a6b2a0fa35338d06ceb9a2e5a"}, | ||||||
|     {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ab0f7aabdbce4a202e013083eeab71afdb85efa405dc4a06fea98cde81204675"}, |     {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23a059143c1393015c68936370cce11690f7294731904bdae47cc3e16d0b2474"}, | ||||||
|     {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2cd0c9fb5d40887500b4ed818770c68ab4fa6e0395d286f9704be6751b1b7d98"}, |     {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e5c26905aa651cc8c0ddc45e0e5dea2a1296f70bdc96af17aee9d0493280a17"}, | ||||||
|     {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8578fc6c8bdd0201327503720fa581000b4bd3934abbf07e2628d1ad3de157d"}, |     {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c651847545422c8131660704c58606d841e228ed576c8f1666d98b3d318f89da"}, | ||||||
|     {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d27d08056fcd61ff47a0cd8407eff4d3e816c82cb6b9c6f0ce9a0ad49225f81"}, |     {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:80992eb20755701753e30a6952a96aa58f353d12a65ad3c9d48a8da5ec4690cf"}, | ||||||
|     {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c8f6526df47953b07c45b95c4d1da6b9a0861c0e5da0271db96bb1d807825412"}, |     {file = "rpds_py-0.10.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ffcf18ad3edf1c170e27e88b10282a2c449aa0358659592462448d71b2000cfc"}, | ||||||
|     {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:177c033e467a66a054dd3a9534167234a3d0b2e41445807b13b626e01da25d92"}, |     {file = "rpds_py-0.10.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:08e08ccf5b10badb7d0a5c84829b914c6e1e1f3a716fdb2bf294e2bd01562775"}, | ||||||
|     {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c74cbee9e532dc34371127f7686d6953e5153a1f22beab7f953d95ee4a0fe09"}, |     {file = "rpds_py-0.10.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7150b83b3e3ddaac81a8bb6a9b5f93117674a0e7a2b5a5b32ab31fdfea6df27f"}, | ||||||
|     {file = "rpds_py-0.10.2-cp39-none-win32.whl", hash = "sha256:05a1382905026bdd560f806c8c7c16e0f3e3fb359ba8868203ca6e5799884968"}, |     {file = "rpds_py-0.10.0-cp39-none-win32.whl", hash = "sha256:3455ecc46ea443b5f7d9c2f946ce4017745e017b0d0f8b99c92564eff97e97f5"}, | ||||||
|     {file = "rpds_py-0.10.2-cp39-none-win_amd64.whl", hash = "sha256:3fd503c27e7b7034128e30847ecdb4bff4ca5e60f29ad022a9f66ae8940d54ac"}, |     {file = "rpds_py-0.10.0-cp39-none-win_amd64.whl", hash = "sha256:afe6b5a04b2ab1aa89bad32ca47bf71358e7302a06fdfdad857389dca8fb5f04"}, | ||||||
|     {file = "rpds_py-0.10.2-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:4a96147791e49e84207dd1530109aa0e9eeaf1c8b7a59f150047fc0fcdf9bb64"}, |     {file = "rpds_py-0.10.0-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:b1cb078f54af0abd835ca76f93a3152565b73be0f056264da45117d0adf5e99c"}, | ||||||
|     {file = "rpds_py-0.10.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:203eb1532d51591d32e8dfafd60b5d31347ea7278c8da02b4b550287f6abe28b"}, |     {file = "rpds_py-0.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8e7e2b3577e97fa43c2c2b12a16139b2cedbd0770235d5179c0412b4794efd9b"}, | ||||||
|     {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2f416cdfe92f5fbb77177f5f3f7830059d1582db05f2c7119bf80069d1ab69b"}, |     {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae46a50d235f1631d9ec4670503f7b30405103034830bc13df29fd947207f795"}, | ||||||
|     {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b2660000e1a113869c86eb5cc07f3343467490f3cd9d0299f81da9ddae7137b7"}, |     {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f869e34d2326e417baee430ae998e91412cc8e7fdd83d979277a90a0e79a5b47"}, | ||||||
|     {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1adb04e4b4e41bf30aaa77eeb169c1b9ba9e5010e2e6ce8d6c17e1446edc9b68"}, |     {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3d544a614055b131111bed6edfa1cb0fb082a7265761bcb03321f2dd7b5c6c48"}, | ||||||
|     {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2bca97521ee786087f0c5ef318fef3eef0266a9c3deff88205523cf353af7394"}, |     {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ee9c2f6ca9774c2c24bbf7b23086264e6b5fa178201450535ec0859739e6f78d"}, | ||||||
|     {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4969592e3cdeefa4cbb15a26cec102cbd4a1d6e5b695fac9fa026e19741138c8"}, |     {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2da4a8c6d465fde36cea7d54bf47b5cf089073452f0e47c8632ecb9dec23c07"}, | ||||||
|     {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:df61f818edf7c8626bfa392f825860fb670b5f8336e238eb0ec7e2a5689cdded"}, |     {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ac00c41dd315d147b129976204839ca9de699d83519ff1272afbe4fb9d362d12"}, | ||||||
|     {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:b589d93a60e78fe55d5bc76ee8c2bf945dbdbb7cd16044c53e0307604e448de1"}, |     {file = "rpds_py-0.10.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:0155c33af0676fc38e1107679be882077680ad1abb6303956b97259c3177e85e"}, | ||||||
|     {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:73da69e1f612c3e682e34dcb971272d90d6f27b2c99acff444ca455a89978574"}, |     {file = "rpds_py-0.10.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:db6585b600b2e76e98131e0ac0e5195759082b51687ad0c94505970c90718f4a"}, | ||||||
|     {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:89438e8885a186c69fe31f7ef98bb2bf29688c466c3caf9060f404c0be89ae80"}, |     {file = "rpds_py-0.10.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:7b6975d3763d0952c111700c0634968419268e6bbc0b55fe71138987fa66f309"}, | ||||||
|     {file = "rpds_py-0.10.2-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:c4ecc4e9a5d73a816cae36ee6b5d8b7a0c72013cae1e101406e832887c3dc2d8"}, |     {file = "rpds_py-0.10.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:6388e4e95a26717b94a05ced084e19da4d92aca883f392dffcf8e48c8e221a24"}, | ||||||
|     {file = "rpds_py-0.10.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:907b214da5d2fcff0b6ddb83de1333890ca92abaf4bbf8d9c61dc1b95c87fd6e"}, |     {file = "rpds_py-0.10.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:18f87baa20e02e9277ad8960cd89b63c79c05caf106f4c959a9595c43f2a34a5"}, | ||||||
|     {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb44644371eaa29a3aba7b69b1862d0d56f073bb7585baa32e4271a71a91ee82"}, |     {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92f05fc7d832e970047662b3440b190d24ea04f8d3c760e33e7163b67308c878"}, | ||||||
|     {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:80c3cf46511653f94dfe07c7c79ab105c4164d6e1dfcb35b7214fb9af53eaef4"}, |     {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:291c9ce3929a75b45ce8ddde2aa7694fc8449f2bc8f5bd93adf021efaae2d10b"}, | ||||||
|     {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaba0613c759ebf95988a84f766ca6b7432d55ce399194f95dde588ad1be0878"}, |     {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:861d25ae0985a1dd5297fee35f476b60c6029e2e6e19847d5b4d0a43a390b696"}, | ||||||
|     {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0527c97dcd8bb983822ee31d3760187083fd3ba18ac4dd22cf5347c89d5628f4"}, |     {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:668d2b45d62c68c7a370ac3dce108ffda482b0a0f50abd8b4c604a813a59e08f"}, | ||||||
|     {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9cdfd649011ce2d90cb0dd304c5aba1190fac0c266d19a9e2b96b81cfd150a09"}, |     {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:344b89384c250ba6a4ce1786e04d01500e4dac0f4137ceebcaad12973c0ac0b3"}, | ||||||
|     {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:75eea40355a8690459c7291ce6c8ce39c27bd223675c7da6619f510c728feb97"}, |     {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:885e023e73ce09b11b89ab91fc60f35d80878d2c19d6213a32b42ff36543c291"}, | ||||||
|     {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4f1b804cfad04f862d6a84af9d1ad941b06f671878f0f7ecad6c92007d423de6"}, |     {file = "rpds_py-0.10.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:841128a22e6ac04070a0f84776d07e9c38c4dcce8e28792a95e45fc621605517"}, | ||||||
|     {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:bf77f9017fcfa1232f98598a637406e6c33982ccba8a5922339575c3e2b90ea5"}, |     {file = "rpds_py-0.10.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:899b5e7e2d5a8bc92aa533c2d4e55e5ebba095c485568a5e4bedbc163421259a"}, | ||||||
|     {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:46c4c550bf59ce05d6bff2c98053822549aaf9fbaf81103edea325e03350bca1"}, |     {file = "rpds_py-0.10.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e7947d9a6264c727a556541b1630296bbd5d0a05068d21c38dde8e7a1c703ef0"}, | ||||||
|     {file = "rpds_py-0.10.2-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:46af4a742b90c7460e94214f923452c2c1d050a9da1d2b8d4c70cbc045e692b7"}, |     {file = "rpds_py-0.10.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:4992266817169997854f81df7f6db7bdcda1609972d8ffd6919252f09ec3c0f6"}, | ||||||
|     {file = "rpds_py-0.10.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:2a86d246a160d98d820ee7d02dc18c923c228de095be362e57b9fd8970b2c4a1"}, |     {file = "rpds_py-0.10.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:26d9fd624649a10e4610fab2bc820e215a184d193e47d0be7fe53c1c8f67f370"}, | ||||||
|     {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae141c9017f8f473a6ee07a9425da021816a9f8c0683c2e5442f0ccf56b0fc62"}, |     {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0028eb0967942d0d2891eae700ae1a27b7fd18604cfcb16a1ef486a790fee99e"}, | ||||||
|     {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e1147bc3d0dd1e549d991110d0a09557ec9f925dbc1ca62871fcdab2ec9d716b"}, |     {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f9e7e493ded7042712a374471203dd43ae3fff5b81e3de1a0513fa241af9fd41"}, | ||||||
|     {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fce7a8ee8d0f682c953c0188735d823f0fcb62779bf92cd6ba473a8e730e26ad"}, |     {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2d68a8e8a3a816629283faf82358d8c93fe5bd974dd2704152394a3de4cec22a"}, | ||||||
|     {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4c7f9d70f99e1fbcbf57c75328b80e1c0a7f6cad43e75efa90a97221be5efe15"}, |     {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6d5f061f6a2aa55790b9e64a23dfd87b6664ab56e24cd06c78eb43986cb260b"}, | ||||||
|     {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b309908b6ff5ffbf6394818cb73b5a2a74073acee2c57fe8719046389aeff0d"}, |     {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c7c4266c1b61eb429e8aeb7d8ed6a3bfe6c890a1788b18dbec090c35c6b93fa"}, | ||||||
|     {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3ff1f585a0fdc1415bd733b804f33d386064a308672249b14828130dd43e7c31"}, |     {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:80772e3bda6787510d9620bc0c7572be404a922f8ccdfd436bf6c3778119464c"}, | ||||||
|     {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:0188b580c490bccb031e9b67e9e8c695a3c44ac5e06218b152361eca847317c3"}, |     {file = "rpds_py-0.10.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:b98e75b21fc2ba5285aef8efaf34131d16af1c38df36bdca2f50634bea2d3060"}, | ||||||
|     {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:abe081453166e206e3a8c6d8ace57214c17b6d9477d7601ac14a365344dbc1f4"}, |     {file = "rpds_py-0.10.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:d63787f289944cc4bde518ad2b5e70a4f0d6e2ce76324635359c74c113fd188f"}, | ||||||
|     {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9118de88c16947eaf5b92f749e65b0501ea69e7c2be7bd6aefc12551622360e1"}, |     {file = "rpds_py-0.10.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:872f3dcaa8bf2245944861d7311179d2c0c9b2aaa7d3b464d99a7c2e401f01fa"}, | ||||||
|     {file = "rpds_py-0.10.2.tar.gz", hash = "sha256:289073f68452b96e70990085324be7223944c7409973d13ddfe0eea1c1b5663b"}, |     {file = "rpds_py-0.10.0.tar.gz", hash = "sha256:e36d7369363d2707d5f68950a64c4e025991eb0177db01ccb6aa6facae48b69f"}, | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| @ -814,4 +727,4 @@ brotli = ["Brotli"] | |||||||
| [metadata] | [metadata] | ||||||
| lock-version = "2.0" | lock-version = "2.0" | ||||||
| python-versions = "^3.10" | python-versions = "^3.10" | ||||||
| content-hash = "9c8a0b848ed1ebc1da6cafbf9b769f72f8a70e15ed4a226544c956ef69a4f750" | content-hash = "e67fb8ed8bd9086956f4c789fd42d8b0ebe140579bc2aa2f1c303bd1def9b2f7" | ||||||
|  | |||||||
| @ -21,7 +21,6 @@ drf-spectacular = "0.26.4" | |||||||
| django-two-factor-auth = {extras = ["phonenumberslite"], version = "1.15.3"} | django-two-factor-auth = {extras = ["phonenumberslite"], version = "1.15.3"} | ||||||
| whitenoise = "6.5.0" | whitenoise = "6.5.0" | ||||||
| gunicorn = {extras = ["gthread"], version = "21.2.0"} | gunicorn = {extras = ["gthread"], version = "21.2.0"} | ||||||
| psycopg = {extras = ["binary"], version = "3.1.10"} |  | ||||||
| 
 | 
 | ||||||
| [tool.poetry.group.dev.dependencies] | [tool.poetry.group.dev.dependencies] | ||||||
| flake8 = "^6.0.0" | flake8 = "^6.0.0" | ||||||
|  | |||||||
							
								
								
									
										266
									
								
								requirements.txt
									
									
									
									
									
								
							
							
						
						
									
										266
									
								
								requirements.txt
									
									
									
									
									
								
							| @ -64,76 +64,18 @@ markdown==3.4.4 ; python_version >= "3.10" and python_version < "4.0" \ | |||||||
| packaging==23.1 ; python_version >= "3.10" and python_version < "4.0" \ | packaging==23.1 ; python_version >= "3.10" and python_version < "4.0" \ | ||||||
|     --hash=sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61 \ |     --hash=sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61 \ | ||||||
|     --hash=sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f |     --hash=sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f | ||||||
| phonenumberslite==8.13.20 ; python_version >= "3.10" and python_version < "4.0" \ | phonenumberslite==8.13.19 ; python_version >= "3.10" and python_version < "4.0" \ | ||||||
|     --hash=sha256:09b07b32861f306dee10f17085afb3e058b4c179edf50deb94db4d4dd14235ff \ |     --hash=sha256:163a18e962e4a29ffd0bd523fa7aa60301bc7aa467bf0383bf3c4dac02097573 \ | ||||||
|     --hash=sha256:f0840de9bfe5b8f10b6883d971dd81f3a53bed8210326a53266f11e8be3428c3 |     --hash=sha256:5d05d0f31f0838b1773c6093925c7c1ab3e98d98747db7c54a9385f8b6df5f71 | ||||||
| psycopg-binary==3.1.10 ; python_version >= "3.10" and python_version < "4.0" \ |  | ||||||
|     --hash=sha256:0471869e658d0c6b8c3ed53153794739c18d7dad2dd5b8e6ff023a364c20f7df \ |  | ||||||
|     --hash=sha256:0f062f20256708929a58c41d44f350efced4c00a603323d1413f6dc0b84d95a5 \ |  | ||||||
|     --hash=sha256:1583ced5948cf88124212c4503dfe5b01ac3e2dd1a2833c083917f4c4aabe8b4 \ |  | ||||||
|     --hash=sha256:1e46b97073bd4de114f475249d681eaf054e950699c5d7af554d3684db39b82d \ |  | ||||||
|     --hash=sha256:2098721c486478987be700723b28ec7a48f134eba339de36af0e745f37dfe461 \ |  | ||||||
|     --hash=sha256:30eb731ed5525d8df892db6532cc8ffd8a163b73bc355127dee9c49334e16eee \ |  | ||||||
|     --hash=sha256:32caf98cb00881bfcbbbae39a15f2a4e08b79ff983f1c0f13b60a888ef6e8431 \ |  | ||||||
|     --hash=sha256:36fff836a7823c9d71fa7faa333c74b2b081af216cebdbb0f481dce55ee2d974 \ |  | ||||||
|     --hash=sha256:3b6c6f90241c4c5a6ca3f0d8827e37ef90fdc4deb9d8cfa5678baa0ea374b391 \ |  | ||||||
|     --hash=sha256:415961e839bb49cfd75cd961503fb8846c0768f247db1fa7171c1ac61d38711b \ |  | ||||||
|     --hash=sha256:41a415e78c457b06497fa0084e4ea7245ca1a377b55756dd757034210b64da7e \ |  | ||||||
|     --hash=sha256:4290060ee0d856caa979ecf675c0e6959325f508272ccf27f64c3801c7bcbde7 \ |  | ||||||
|     --hash=sha256:4a3a7e99ba10c2e83a48d79431560e0d5ca7865f68f2bac3a462dc2b151e9926 \ |  | ||||||
|     --hash=sha256:50bf7a59d3a85a82d466fed341d352b44d09d6adc18656101d163a7cfc6509a0 \ |  | ||||||
|     --hash=sha256:511d38b1e1961d179d47d5103ba9634ecfc7ead431d19a9337ef82f3a2bca807 \ |  | ||||||
|     --hash=sha256:51fe70708243b83bf16710d8c11b61bd46562e6a24a6300d5434380b35911059 \ |  | ||||||
|     --hash=sha256:5565a6a86fee8d74f30de89e07f399567cdf59367aeb09624eb690d524339076 \ |  | ||||||
|     --hash=sha256:57b93c756fee5f7c7bd580c34cd5d244f7d5638f8b2cf25333f97b9b8b2ebfd1 \ |  | ||||||
|     --hash=sha256:666e7acf2ffdb5e8a58e8b0c1759facdb9688c7e90ee8ca7aed675803b57404d \ |  | ||||||
|     --hash=sha256:6670d160d054466e8fdedfbc749ef8bf7dfdf69296048954d24645dd4d3d3c01 \ |  | ||||||
|     --hash=sha256:6a691dc8e2436d9c1e5cf93902d63e9501688fccc957eb22f952d37886257470 \ |  | ||||||
|     --hash=sha256:747176a6aeb058079f56c5397bd90339581ab7b3cc0d62e7445654e6a484c7e1 \ |  | ||||||
|     --hash=sha256:74ce92122be34cf0e5f06d79869e1001c8421a68fa7ddf6fe38a717155cf3a64 \ |  | ||||||
|     --hash=sha256:75608a900984061c8898be68fbddc6f3da5eefdffce6e0624f5371645740d172 \ |  | ||||||
|     --hash=sha256:7e61f7b412fca7b15dd043a0b22fd528d2ed8276e76b3764c3889e29fa65082b \ |  | ||||||
|     --hash=sha256:848f4f4707dc73f4b4e844c92f3de795b2ddb728f75132602bda5e6ba55084fc \ |  | ||||||
|     --hash=sha256:88caa5859740507b3596c6c2e00ceaccee2c6ab5317bc535887801ad3cc7f3e1 \ |  | ||||||
|     --hash=sha256:8b658f7f8b49fb60a1c52e3f6692f690a85bdf1ad30aafe0f3f1fd74f6958cf8 \ |  | ||||||
|     --hash=sha256:908fa388a5b75dfd17a937acb24708bd272e21edefca9a495004c6f70ec2636a \ |  | ||||||
|     --hash=sha256:9cf56bb4b115def3a18157f3b3b7d8322ee94a8dea30028db602c8f9ae34ad1e \ |  | ||||||
|     --hash=sha256:9fb0d64520b29bd80a6731476ad8e1c20348dfdee00ab098899d23247b641675 \ |  | ||||||
|     --hash=sha256:a1d61b7724c7215a8ea4495a5c6b704656f4b7bb6165f4cb9989b685886ebc48 \ |  | ||||||
|     --hash=sha256:a4cbaf12361136afefc5faab21a174a437e71c803b083f410e5140c7605bc66b \ |  | ||||||
|     --hash=sha256:a4e91e1a8d61c60f592a1dfcebdf55e52a29fe4fdb650c5bd5414c848e77d029 \ |  | ||||||
|     --hash=sha256:a529c203f6e0f4c67ba27cf8f9739eb3bc880ad70d6ad6c0e56c2230a66b5a09 \ |  | ||||||
|     --hash=sha256:a7bbe9017edd898d7b3a8747700ed045dda96a907dff87f45e642e28d8584481 \ |  | ||||||
|     --hash=sha256:abf04bc06c8f6a1ac3dc2106d3b79c8661352e9d8a57ca2934ffa6aae8fe600a \ |  | ||||||
|     --hash=sha256:b30887e631fd67affaed98f6cd2135b44f2d1a6d9bca353a69c3889c78bd7aa8 \ |  | ||||||
|     --hash=sha256:b9d88ac72531034ebf7ec09114e732b066a9078f4ce213cf65cc5e42eb538d30 \ |  | ||||||
|     --hash=sha256:ba7812a593c16d9d661844dc8dd4d81548fd1c2a0ee676f3e3d8638369f4c5e4 \ |  | ||||||
|     --hash=sha256:bd6e14d1aeb12754a43446c77a5ce819b68875cc25ae6538089ef90d7f6dd6f7 \ |  | ||||||
|     --hash=sha256:bfc05ed4e74fa8615d7cc2bd57f00f97662f4e865a731dbd43da9a527e289c8c \ |  | ||||||
|     --hash=sha256:c5b59c8cff887757ddf438ff9489d79c5e6b717112c96f5c68e16f367ff8724e \ |  | ||||||
|     --hash=sha256:caa771569da01fc0389ca34920c331a284425a68f92d1ba0a80cc08935f8356e \ |  | ||||||
|     --hash=sha256:d32026cfab7ba7ac687a42c33345026a2fb6fc5608a6144077f767af4386be0b \ |  | ||||||
|     --hash=sha256:dea30f2704337ca2d0322fccfe1fa30f61ce9185de3937eb986321063114a51f \ |  | ||||||
|     --hash=sha256:e0f33e33a072e3d5af51ee4d4a439e10dbe623fe87ef295d5d688180d529f13f \ |  | ||||||
|     --hash=sha256:f2bea0940d69c3e24a72530730952687912893b34c53aa39e79045e7b446174d \ |  | ||||||
|     --hash=sha256:f48665947c55f8d6eb3f0be98de80411508e1ec329f354685329b57fced82c7f \ |  | ||||||
|     --hash=sha256:f6f7738c59262d8d19154164d99c881ed58ed377fb6f1d685eb0dc43bbcd8022 \ |  | ||||||
|     --hash=sha256:f7187269d825e84c945be7d93dd5088a4e0b6481a4bdaba3bf7069d4ac13703d \ |  | ||||||
|     --hash=sha256:fa92661f99351765673835a4d936d79bd24dfbb358b29b084d83be38229a90e4 \ |  | ||||||
|     --hash=sha256:ff72576061c774bcce5f5440b93e63d4c430032dd056d30f6cb1988e549dd92c \ |  | ||||||
|     --hash=sha256:ffc8c796194f23b9b07f6d25f927ec4df84a194bbc7a1f9e73316734eef512f9 |  | ||||||
| psycopg[binary]==3.1.10 ; python_version >= "3.10" and python_version < "4.0" \ |  | ||||||
|     --hash=sha256:15b25741494344c24066dc2479b0f383dd1b82fa5e75612fa4fa5bb30726e9b6 \ |  | ||||||
|     --hash=sha256:8bbeddae5075c7890b2fa3e3553440376d3c5e28418335dee3c3656b06fa2b52 |  | ||||||
| pyjwt==2.8.0 ; python_version >= "3.10" and python_version < "4.0" \ | pyjwt==2.8.0 ; python_version >= "3.10" and python_version < "4.0" \ | ||||||
|     --hash=sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de \ |     --hash=sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de \ | ||||||
|     --hash=sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320 |     --hash=sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320 | ||||||
| pypng==0.20220715.0 ; python_version >= "3.10" and python_version < "4.0" \ | pypng==0.20220715.0 ; python_version >= "3.10" and python_version < "4.0" \ | ||||||
|     --hash=sha256:4a43e969b8f5aaafb2a415536c1a8ec7e341cd6a3f957fd5b5f32a4cfeed902c \ |     --hash=sha256:4a43e969b8f5aaafb2a415536c1a8ec7e341cd6a3f957fd5b5f32a4cfeed902c \ | ||||||
|     --hash=sha256:739c433ba96f078315de54c0db975aee537cbc3e1d0ae4ed9aab0ca1e427e2c1 |     --hash=sha256:739c433ba96f078315de54c0db975aee537cbc3e1d0ae4ed9aab0ca1e427e2c1 | ||||||
| pytz==2023.3.post1 ; python_version >= "3.10" and python_version < "4.0" \ | pytz==2023.3 ; python_version >= "3.10" and python_version < "4.0" \ | ||||||
|     --hash=sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b \ |     --hash=sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588 \ | ||||||
|     --hash=sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7 |     --hash=sha256:a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb | ||||||
| pyyaml==6.0.1 ; python_version >= "3.10" and python_version < "4.0" \ | pyyaml==6.0.1 ; python_version >= "3.10" and python_version < "4.0" \ | ||||||
|     --hash=sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc \ |     --hash=sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc \ | ||||||
|     --hash=sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741 \ |     --hash=sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741 \ | ||||||
| @ -181,104 +123,104 @@ qrcode==7.4.2 ; python_version >= "3.10" and python_version < "4.0" \ | |||||||
| referencing==0.30.2 ; python_version >= "3.10" and python_version < "4.0" \ | referencing==0.30.2 ; python_version >= "3.10" and python_version < "4.0" \ | ||||||
|     --hash=sha256:449b6669b6121a9e96a7f9e410b245d471e8d48964c67113ce9afe50c8dd7bdf \ |     --hash=sha256:449b6669b6121a9e96a7f9e410b245d471e8d48964c67113ce9afe50c8dd7bdf \ | ||||||
|     --hash=sha256:794ad8003c65938edcdbc027f1933215e0d0ccc0291e3ce20a4d87432b59efc0 |     --hash=sha256:794ad8003c65938edcdbc027f1933215e0d0ccc0291e3ce20a4d87432b59efc0 | ||||||
| rpds-py==0.10.2 ; python_version >= "3.10" and python_version < "4.0" \ | rpds-py==0.10.0 ; python_version >= "3.10" and python_version < "4.0" \ | ||||||
|     --hash=sha256:00e97d43a36811b78fa9ad9d3329bf34f76a31e891a7031a2ac01450c9b168ab \ |     --hash=sha256:00215f6a9058fbf84f9d47536902558eb61f180a6b2a0fa35338d06ceb9a2e5a \ | ||||||
|     --hash=sha256:013d6c784150d10236a74b4094a79d96a256b814457e388fc5a4ba9efe24c402 \ |     --hash=sha256:0028eb0967942d0d2891eae700ae1a27b7fd18604cfcb16a1ef486a790fee99e \ | ||||||
|     --hash=sha256:0188b580c490bccb031e9b67e9e8c695a3c44ac5e06218b152361eca847317c3 \ |     --hash=sha256:0155c33af0676fc38e1107679be882077680ad1abb6303956b97259c3177e85e \ | ||||||
|     --hash=sha256:02945ae38fd78efc40900f509890de84cfd5ffe2cd2939eeb3a8800dc68b87cb \ |     --hash=sha256:063411228b852fb2ed7485cf91f8e7d30893e69b0acb207ec349db04cccc8225 \ | ||||||
|     --hash=sha256:02b4a2e28eb24dac4ef43dda4f6a6f7766e355179b143f7d0c76a1c5488a307b \ |     --hash=sha256:0700c2133ba203c4068aaecd6a59bda22e06a5e46255c9da23cbf68c6942215d \ | ||||||
|     --hash=sha256:0527c97dcd8bb983822ee31d3760187083fd3ba18ac4dd22cf5347c89d5628f4 \ |     --hash=sha256:08e08ccf5b10badb7d0a5c84829b914c6e1e1f3a716fdb2bf294e2bd01562775 \ | ||||||
|     --hash=sha256:05a1382905026bdd560f806c8c7c16e0f3e3fb359ba8868203ca6e5799884968 \ |     --hash=sha256:0d292cabd7c8335bdd3237ded442480a249dbcdb4ddfac5218799364a01a0f5c \ | ||||||
|     --hash=sha256:0b309908b6ff5ffbf6394818cb73b5a2a74073acee2c57fe8719046389aeff0d \ |     --hash=sha256:15932ec5f224b0e35764dc156514533a4fca52dcfda0dfbe462a1a22b37efd59 \ | ||||||
|     --hash=sha256:0fc625059b83695fbb4fc8b7a8b66fa94ff9c7b78c84fb9986cd53ff88a28d80 \ |     --hash=sha256:18f87baa20e02e9277ad8960cd89b63c79c05caf106f4c959a9595c43f2a34a5 \ | ||||||
|     --hash=sha256:177c033e467a66a054dd3a9534167234a3d0b2e41445807b13b626e01da25d92 \ |     --hash=sha256:1a6420a36975e0073acaeee44ead260c1f6ea56812cfc6c31ec00c1c48197173 \ | ||||||
|     --hash=sha256:18909093944727e068ebfc92e2e6ed1c4fa44135507c1c0555213ce211c53214 \ |     --hash=sha256:1b401e8b9aece651512e62c431181e6e83048a651698a727ea0eb0699e9f9b74 \ | ||||||
|     --hash=sha256:1adb04e4b4e41bf30aaa77eeb169c1b9ba9e5010e2e6ce8d6c17e1446edc9b68 \ |     --hash=sha256:1d7b7b71bcb82d8713c7c2e9c5f061415598af5938666beded20d81fa23e7640 \ | ||||||
|     --hash=sha256:1ed3d5385d14be894e12a9033be989e012214a9811e7194849c94032ad69682a \ |     --hash=sha256:23750a9b8a329844ba1fe267ca456bb3184984da2880ed17ae641c5af8de3fef \ | ||||||
|     --hash=sha256:203eb1532d51591d32e8dfafd60b5d31347ea7278c8da02b4b550287f6abe28b \ |     --hash=sha256:23a059143c1393015c68936370cce11690f7294731904bdae47cc3e16d0b2474 \ | ||||||
|     --hash=sha256:213f9ef5c02ec2f883c1075d25a873149daadbaea50d18d622e9db55ec9849c2 \ |     --hash=sha256:26d9fd624649a10e4610fab2bc820e215a184d193e47d0be7fe53c1c8f67f370 \ | ||||||
|     --hash=sha256:2275f1a022e2383da5d2d101fe11ccdcbae799148c4b83260a4b9309fa3e1fc2 \ |     --hash=sha256:291c9ce3929a75b45ce8ddde2aa7694fc8449f2bc8f5bd93adf021efaae2d10b \ | ||||||
|     --hash=sha256:22e6de18f00583f06928cc8d0993104ecc62f7c6da6478db2255de89a30e45d1 \ |     --hash=sha256:298e8b5d8087e0330aac211c85428c8761230ef46a1f2c516d6a2f67fb8803c5 \ | ||||||
|     --hash=sha256:289073f68452b96e70990085324be7223944c7409973d13ddfe0eea1c1b5663b \ |     --hash=sha256:2c7c4266c1b61eb429e8aeb7d8ed6a3bfe6c890a1788b18dbec090c35c6b93fa \ | ||||||
|     --hash=sha256:29ec8507664f94cc08457d98cfc41c3cdbddfa8952438e644177a29b04937876 \ |     --hash=sha256:2d68a8e8a3a816629283faf82358d8c93fe5bd974dd2704152394a3de4cec22a \ | ||||||
|     --hash=sha256:2a55631b93e47956fbc97d69ba2054a8c6a4016f9a3064ec4e031f5f1030cb90 \ |     --hash=sha256:344b89384c250ba6a4ce1786e04d01500e4dac0f4137ceebcaad12973c0ac0b3 \ | ||||||
|     --hash=sha256:2a86d246a160d98d820ee7d02dc18c923c228de095be362e57b9fd8970b2c4a1 \ |     --hash=sha256:3455ecc46ea443b5f7d9c2f946ce4017745e017b0d0f8b99c92564eff97e97f5 \ | ||||||
|     --hash=sha256:2bca97521ee786087f0c5ef318fef3eef0266a9c3deff88205523cf353af7394 \ |     --hash=sha256:3d544a614055b131111bed6edfa1cb0fb082a7265761bcb03321f2dd7b5c6c48 \ | ||||||
|     --hash=sha256:2c8fc6c841ada60a86d29c9ebe2e8757c47eda6553f3596c560e59ca6e9b6fa1 \ |     --hash=sha256:3e5c26905aa651cc8c0ddc45e0e5dea2a1296f70bdc96af17aee9d0493280a17 \ | ||||||
|     --hash=sha256:2cd0c9fb5d40887500b4ed818770c68ab4fa6e0395d286f9704be6751b1b7d98 \ |     --hash=sha256:3f5cc8c7bc99d2bbcd704cef165ca7d155cd6464c86cbda8339026a42d219397 \ | ||||||
|     --hash=sha256:2d27d08056fcd61ff47a0cd8407eff4d3e816c82cb6b9c6f0ce9a0ad49225f81 \ |     --hash=sha256:4992266817169997854f81df7f6db7bdcda1609972d8ffd6919252f09ec3c0f6 \ | ||||||
|     --hash=sha256:2ffbf1b38c88d0466de542e91b08225d51782282512f8e2b11715126c41fda48 \ |     --hash=sha256:4d55528ef13af4b4e074d067977b1f61408602f53ae4537dccf42ba665c2c7bd \ | ||||||
|     --hash=sha256:3fd503c27e7b7034128e30847ecdb4bff4ca5e60f29ad022a9f66ae8940d54ac \ |     --hash=sha256:576da63eae7809f375932bfcbca2cf20620a1915bf2fedce4b9cc8491eceefe3 \ | ||||||
|     --hash=sha256:3ff1f585a0fdc1415bd733b804f33d386064a308672249b14828130dd43e7c31 \ |     --hash=sha256:58fc4d66ee349a23dbf08c7e964120dc9027059566e29cf0ce6205d590ed7eca \ | ||||||
|     --hash=sha256:41bd430b7b63aa802c02964e331ac0b177148fef5f807d2c90d05ce71a52b4d4 \ |     --hash=sha256:5b9bf77008f2c55dabbd099fd3ac87009471d223a1c7ebea36873d39511b780a \ | ||||||
|     --hash=sha256:43e9b1531d6a898bdf086acb75c41265c7ec4331267d7619148d407efc72bd24 \ |     --hash=sha256:5e7996aed3f65667c6dcc8302a69368435a87c2364079a066750a2eac75ea01e \ | ||||||
|     --hash=sha256:46af4a742b90c7460e94214f923452c2c1d050a9da1d2b8d4c70cbc045e692b7 \ |     --hash=sha256:5f7487be65b9c2c510819e744e375bd41b929a97e5915c4852a82fbb085df62c \ | ||||||
|     --hash=sha256:46c4c550bf59ce05d6bff2c98053822549aaf9fbaf81103edea325e03350bca1 \ |     --hash=sha256:6388e4e95a26717b94a05ced084e19da4d92aca883f392dffcf8e48c8e221a24 \ | ||||||
|     --hash=sha256:4969592e3cdeefa4cbb15a26cec102cbd4a1d6e5b695fac9fa026e19741138c8 \ |     --hash=sha256:65af12f70355de29e1092f319f85a3467f4005e959ab65129cb697169ce94b86 \ | ||||||
|     --hash=sha256:4a0536ed2b9297c75104e1a3da330828ba1b2639fa53b38d396f98bf7e3c68df \ |     --hash=sha256:668d2b45d62c68c7a370ac3dce108ffda482b0a0f50abd8b4c604a813a59e08f \ | ||||||
|     --hash=sha256:4a96147791e49e84207dd1530109aa0e9eeaf1c8b7a59f150047fc0fcdf9bb64 \ |     --hash=sha256:71333c22f7cf5f0480b59a0aef21f652cf9bbaa9679ad261b405b65a57511d1e \ | ||||||
|     --hash=sha256:4c7f9d70f99e1fbcbf57c75328b80e1c0a7f6cad43e75efa90a97221be5efe15 \ |     --hash=sha256:7150b83b3e3ddaac81a8bb6a9b5f93117674a0e7a2b5a5b32ab31fdfea6df27f \ | ||||||
|     --hash=sha256:4e8474f7233fe1949ce4e03bea698a600c2d5d6b51dab6d6e6336dbe69acf23e \ |     --hash=sha256:748e472345c3a82cfb462d0dff998a7bf43e621eed73374cb19f307e97e08a83 \ | ||||||
|     --hash=sha256:4f1b804cfad04f862d6a84af9d1ad941b06f671878f0f7ecad6c92007d423de6 \ |     --hash=sha256:75dbfd41a61bc1fb0536bf7b1abf272dc115c53d4d77db770cd65d46d4520882 \ | ||||||
|     --hash=sha256:529aab727f54a937085184e7436e1d0e19975cf10115eda12d37a683e4ee5342 \ |     --hash=sha256:7618a082c55cf038eede4a918c1001cc8a4411dfe508dc762659bcd48d8f4c6e \ | ||||||
|     --hash=sha256:5612b0b1de8d5114520094bd5fc3d04eb8af6f3e10d48ef05b7c8e77c1fd9545 \ |     --hash=sha256:780fcb855be29153901c67fc9c5633d48aebef21b90aa72812fa181d731c6b00 \ | ||||||
|     --hash=sha256:56777c57246e048908b550af9b81b0ec9cf804fd47cb7502ccd93238bd6025c2 \ |     --hash=sha256:78d10c431073dc6ebceed35ab22948a016cc2b5120963c13a41e38bdde4a7212 \ | ||||||
|     --hash=sha256:56ba7c1100ed079527f2b995bf5486a2e557e6d5b733c52e8947476338815b69 \ |     --hash=sha256:7a3a3d3e4f1e3cd2a67b93a0b6ed0f2499e33f47cc568e3a0023e405abdc0ff1 \ | ||||||
|     --hash=sha256:59d222086daa55421d599609b32d0ebe544e57654c4a0a1490c54a7ebaa67561 \ |     --hash=sha256:7b6975d3763d0952c111700c0634968419268e6bbc0b55fe71138987fa66f309 \ | ||||||
|     --hash=sha256:5aba767e64b494483ad60c4873bec78d16205a21f8247c99749bd990d9c846c2 \ |     --hash=sha256:80772e3bda6787510d9620bc0c7572be404a922f8ccdfd436bf6c3778119464c \ | ||||||
|     --hash=sha256:5d5eaf988951f6ecb6854ca3300b87123599c711183c83da7ce39717a7cbdbce \ |     --hash=sha256:80992eb20755701753e30a6952a96aa58f353d12a65ad3c9d48a8da5ec4690cf \ | ||||||
|     --hash=sha256:73da69e1f612c3e682e34dcb971272d90d6f27b2c99acff444ca455a89978574 \ |     --hash=sha256:841128a22e6ac04070a0f84776d07e9c38c4dcce8e28792a95e45fc621605517 \ | ||||||
|     --hash=sha256:75c8766734ac0053e1d683567e65e85306c4ec62631b0591caeb287ac8f72e08 \ |     --hash=sha256:861d25ae0985a1dd5297fee35f476b60c6029e2e6e19847d5b4d0a43a390b696 \ | ||||||
|     --hash=sha256:75eea40355a8690459c7291ce6c8ce39c27bd223675c7da6619f510c728feb97 \ |     --hash=sha256:872f3dcaa8bf2245944861d7311179d2c0c9b2aaa7d3b464d99a7c2e401f01fa \ | ||||||
|     --hash=sha256:80c3cf46511653f94dfe07c7c79ab105c4164d6e1dfcb35b7214fb9af53eaef4 \ |     --hash=sha256:87c93b25d538c433fb053da6228c6290117ba53ff6a537c133b0f2087948a582 \ | ||||||
|     --hash=sha256:8557c807388e6617161fe51b1a4747ea8d1133f2d2ad8e79583439abebe58fbd \ |     --hash=sha256:8856aa76839dc234d3469f1e270918ce6bec1d6a601eba928f45d68a15f04fc3 \ | ||||||
|     --hash=sha256:89438e8885a186c69fe31f7ef98bb2bf29688c466c3caf9060f404c0be89ae80 \ |     --hash=sha256:885e023e73ce09b11b89ab91fc60f35d80878d2c19d6213a32b42ff36543c291 \ | ||||||
|     --hash=sha256:899b03a3be785a7e1ff84b237da71f0efa2f021512f147dd34ffdf7aa82cb678 \ |     --hash=sha256:899b5e7e2d5a8bc92aa533c2d4e55e5ebba095c485568a5e4bedbc163421259a \ | ||||||
|     --hash=sha256:8de9b88f0cbac73cfed34220d13c57849e62a7099a714b929142425e926d223a \ |     --hash=sha256:8ce8caa29ebbdcde67e5fd652c811d34bc01f249dbc0d61e5cc4db05ae79a83b \ | ||||||
|     --hash=sha256:8f4d561f4728f825e3b793a53064b606ca0b6fc264f67d09e54af452aafc5b82 \ |     --hash=sha256:8e1c68303ccf7fceb50fbab79064a2636119fd9aca121f28453709283dbca727 \ | ||||||
|     --hash=sha256:907b214da5d2fcff0b6ddb83de1333890ca92abaf4bbf8d9c61dc1b95c87fd6e \ |     --hash=sha256:8e7e2b3577e97fa43c2c2b12a16139b2cedbd0770235d5179c0412b4794efd9b \ | ||||||
|     --hash=sha256:9118de88c16947eaf5b92f749e65b0501ea69e7c2be7bd6aefc12551622360e1 \ |     --hash=sha256:92f05fc7d832e970047662b3440b190d24ea04f8d3c760e33e7163b67308c878 \ | ||||||
|     --hash=sha256:9568764e72d85cf7855ca78b48e07ed1be47bf230e2cea8dabda3c95f660b0ff \ |     --hash=sha256:97f5811df21703446b42303475b8b855ee07d6ab6cdf8565eff115540624f25d \ | ||||||
|     --hash=sha256:9c74cbee9e532dc34371127f7686d6953e5153a1f22beab7f953d95ee4a0fe09 \ |     --hash=sha256:9affee8cb1ec453382c27eb9043378ab32f49cd4bc24a24275f5c39bf186c279 \ | ||||||
|     --hash=sha256:9cdfd649011ce2d90cb0dd304c5aba1190fac0c266d19a9e2b96b81cfd150a09 \ |     --hash=sha256:a2da4a8c6d465fde36cea7d54bf47b5cf089073452f0e47c8632ecb9dec23c07 \ | ||||||
|     --hash=sha256:9f00d54b18dd837f1431d66b076737deb7c29ce3ebb8412ceaf44d5e1954ac0c \ |     --hash=sha256:a6903cdca64f1e301af9be424798328c1fe3b4b14aede35f04510989fc72f012 \ | ||||||
|     --hash=sha256:a2f416cdfe92f5fbb77177f5f3f7830059d1582db05f2c7119bf80069d1ab69b \ |     --hash=sha256:a8ab1adf04ae2d6d65835995218fd3f3eb644fe20655ca8ee233e2c7270ff53b \ | ||||||
|     --hash=sha256:a4cb372e22e9c879bd9a9cc9b20b7c1fbf30a605ac953da45ecec05d8a6e1c77 \ |     --hash=sha256:a8edd467551c1102dc0f5754ab55cd0703431cd3044edf8c8e7d9208d63fa453 \ | ||||||
|     --hash=sha256:a65de5c02884760a14a58304fb6303f9ddfc582e630f385daea871e1bdb18686 \ |     --hash=sha256:ac00c41dd315d147b129976204839ca9de699d83519ff1272afbe4fb9d362d12 \ | ||||||
|     --hash=sha256:aa3b3a43dabc4cc57a7800f526cbe03f71c69121e21b863fdf497b59b462b163 \ |     --hash=sha256:ad277f74b1c164f7248afa968700e410651eb858d7c160d109fb451dc45a2f09 \ | ||||||
|     --hash=sha256:ab0f7aabdbce4a202e013083eeab71afdb85efa405dc4a06fea98cde81204675 \ |     --hash=sha256:ae46a50d235f1631d9ec4670503f7b30405103034830bc13df29fd947207f795 \ | ||||||
|     --hash=sha256:abe081453166e206e3a8c6d8ace57214c17b6d9477d7601ac14a365344dbc1f4 \ |     --hash=sha256:afe6b5a04b2ab1aa89bad32ca47bf71358e7302a06fdfdad857389dca8fb5f04 \ | ||||||
|     --hash=sha256:ae141c9017f8f473a6ee07a9425da021816a9f8c0683c2e5442f0ccf56b0fc62 \ |     --hash=sha256:b1cb078f54af0abd835ca76f93a3152565b73be0f056264da45117d0adf5e99c \ | ||||||
|     --hash=sha256:af52078719209bef33e38131486fd784832dd8d1dc9b85f00a44f6e7437dd021 \ |     --hash=sha256:b25136212a3d064a8f0b9ebbb6c57094c5229e0de76d15c79b76feff26aeb7b8 \ | ||||||
|     --hash=sha256:b00150a9a3fd0a8efaa90bc2696c105b04039d50763dd1c95a34c88c5966cb57 \ |     --hash=sha256:b3226b246facae14909b465061ddcfa2dfeadb6a64f407f24300d42d69bcb1a1 \ | ||||||
|     --hash=sha256:b2660000e1a113869c86eb5cc07f3343467490f3cd9d0299f81da9ddae7137b7 \ |     --hash=sha256:b98e75b21fc2ba5285aef8efaf34131d16af1c38df36bdca2f50634bea2d3060 \ | ||||||
|     --hash=sha256:b3eb1a0d2b6d232d1bcdfc3fcc5f7b004ab3fbd9203011a3172f051d4527c0b6 \ |     --hash=sha256:bbd7b24d108509a1b9b6679fcc1166a7dd031dbef1f3c2c73788f42e3ebb3beb \ | ||||||
|     --hash=sha256:b589d93a60e78fe55d5bc76ee8c2bf945dbdbb7cd16044c53e0307604e448de1 \ |     --hash=sha256:bed57543c99249ab3a4586ddc8786529fbc33309e5e8a1351802a06ca2baf4c2 \ | ||||||
|     --hash=sha256:b8578fc6c8bdd0201327503720fa581000b4bd3934abbf07e2628d1ad3de157d \ |     --hash=sha256:c0583f69522732bdd79dca4cd3873e63a29acf4a299769c7541f2ca1e4dd4bc6 \ | ||||||
|     --hash=sha256:ba1b28e44f611f3f2b436bd8290050a61db4b59a8e24be4465f44897936b3824 \ |     --hash=sha256:c1e0e9916301e3b3d970814b1439ca59487f0616d30f36a44cead66ee1748c31 \ | ||||||
|     --hash=sha256:bb44644371eaa29a3aba7b69b1862d0d56f073bb7585baa32e4271a71a91ee82 \ |     --hash=sha256:c651847545422c8131660704c58606d841e228ed576c8f1666d98b3d318f89da \ | ||||||
|     --hash=sha256:bcde80aefe7054fad6277762fb7e9d35c72ea479a485ae1bb14629c640987b30 \ |     --hash=sha256:c7853f27195598e550fe089f78f0732c66ee1d1f0eaae8ad081589a5a2f5d4af \ | ||||||
|     --hash=sha256:bd1142d22fdb183a0fff66d79134bf644401437fed874f81066d314c67ee193c \ |     --hash=sha256:cbae50d352e4717ffc22c566afc2d0da744380e87ed44a144508e3fb9114a3f4 \ | ||||||
|     --hash=sha256:bf77f9017fcfa1232f98598a637406e6c33982ccba8a5922339575c3e2b90ea5 \ |     --hash=sha256:cdbed8f21204398f47de39b0a9b180d7e571f02dfb18bf5f1b618e238454b685 \ | ||||||
|     --hash=sha256:c2772bb95062e3f9774140205cd65d8997e39620715486cf5f843cf4ad8f744c \ |     --hash=sha256:d08395595c42bcd82c3608762ce734504c6d025eef1c06f42326a6023a584186 \ | ||||||
|     --hash=sha256:c4ecc4e9a5d73a816cae36ee6b5d8b7a0c72013cae1e101406e832887c3dc2d8 \ |     --hash=sha256:d4639111e73997567343df6551da9dd90d66aece1b9fc26c786d328439488103 \ | ||||||
|     --hash=sha256:c86231c66e4f422e7c13ea6200bb4048b3016c8bfd11b4fd0dabd04d2c8e3501 \ |     --hash=sha256:d63787f289944cc4bde518ad2b5e70a4f0d6e2ce76324635359c74c113fd188f \ | ||||||
|     --hash=sha256:c8f6526df47953b07c45b95c4d1da6b9a0861c0e5da0271db96bb1d807825412 \ |     --hash=sha256:d6d5f061f6a2aa55790b9e64a23dfd87b6664ab56e24cd06c78eb43986cb260b \ | ||||||
|     --hash=sha256:ccfb77f6dc8abffa6f1c7e3975ed9070a41ce5fcc11154d2bead8c1baa940f09 \ |     --hash=sha256:d7865df1fb564092bcf46dac61b5def25342faf6352e4bc0e61a286e3fa26a3d \ | ||||||
|     --hash=sha256:d9d7efaad48b859053b90dedd69bc92f2095084251e732e4c57ac9726bcb1e64 \ |     --hash=sha256:db6585b600b2e76e98131e0ac0e5195759082b51687ad0c94505970c90718f4a \ | ||||||
|     --hash=sha256:dd91a7d7a9ce7f4983097c91ce211f3e5569cc21caa16f2692298a07e396f82b \ |     --hash=sha256:e36d7369363d2707d5f68950a64c4e025991eb0177db01ccb6aa6facae48b69f \ | ||||||
|     --hash=sha256:de4a2fd524993578fe093044f291b4b24aab134390030b3b9b5f87fd41ab7e75 \ |     --hash=sha256:e7947d9a6264c727a556541b1630296bbd5d0a05068d21c38dde8e7a1c703ef0 \ | ||||||
|     --hash=sha256:df61f818edf7c8626bfa392f825860fb670b5f8336e238eb0ec7e2a5689cdded \ |     --hash=sha256:eb2d59bc196e6d3b1827c7db06c1a898bfa0787c0574af398e65ccf2e97c0fbe \ | ||||||
|     --hash=sha256:e1147bc3d0dd1e549d991110d0a09557ec9f925dbc1ca62871fcdab2ec9d716b \ |     --hash=sha256:ee9c2f6ca9774c2c24bbf7b23086264e6b5fa178201450535ec0859739e6f78d \ | ||||||
|     --hash=sha256:e1954f4b239d1a92081647eecfd51cbfd08ea16eb743b8af1cd0113258feea14 \ |     --hash=sha256:f4760e1b02173f4155203054f77a5dc0b4078de7645c922b208d28e7eb99f3e2 \ | ||||||
|     --hash=sha256:e281b71922208e00886e4b7ffbfcf27874486364f177418ab676f102130e7ec9 \ |     --hash=sha256:f70bec8a14a692be6dbe7ce8aab303e88df891cbd4a39af091f90b6702e28055 \ | ||||||
|     --hash=sha256:e69737bd56006a86fd5a78b2b85447580a6138c930a75eb9ef39fe03d90782b1 \ |     --hash=sha256:f869e34d2326e417baee430ae998e91412cc8e7fdd83d979277a90a0e79a5b47 \ | ||||||
|     --hash=sha256:e82b4a70cc67094f3f3fd77579702f48fcf1de7bdc67d79b8f1e24d089a6162c \ |     --hash=sha256:f8b9a7cd381970e64849070aca7c32d53ab7d96c66db6c2ef7aa23c6e803f514 \ | ||||||
|     --hash=sha256:e92e5817eb6bfed23aa5e45bfe30647b83602bdd6f9e25d63524d4e6258458b0 \ |     --hash=sha256:f99d74ddf9d3b6126b509e81865f89bd1283e3fc1b568b68cd7bd9dfa15583d7 \ | ||||||
|     --hash=sha256:eaba0613c759ebf95988a84f766ca6b7432d55ce399194f95dde588ad1be0878 \ |     --hash=sha256:f9e7e493ded7042712a374471203dd43ae3fff5b81e3de1a0513fa241af9fd41 \ | ||||||
|     --hash=sha256:edd74b760a6bb950397e7a7bd2f38e6700f6525062650b1d77c6d851b82f02c2 \ |     --hash=sha256:fc72ae476732cdb7b2c1acb5af23b478b8a0d4b6fcf19b90dd150291e0d5b26b \ | ||||||
|     --hash=sha256:f40abbcc0a7d9a8a80870af839d317e6932533f98682aabd977add6c53beeb23 \ |     --hash=sha256:fccbf0cd3411719e4c9426755df90bf3449d9fc5a89f077f4a7f1abd4f70c910 \ | ||||||
|     --hash=sha256:fce7a8ee8d0f682c953c0188735d823f0fcb62779bf92cd6ba473a8e730e26ad |     --hash=sha256:ffcf18ad3edf1c170e27e88b10282a2c449aa0358659592462448d71b2000cfc | ||||||
| sqlparse==0.4.4 ; python_version >= "3.10" and python_version < "4.0" \ | sqlparse==0.4.4 ; python_version >= "3.10" and python_version < "4.0" \ | ||||||
|     --hash=sha256:5430a4fe2ac7d0f93e66f1efc6e1338a41884b7ddf2a350cedd20ccc4d9d28f3 \ |     --hash=sha256:5430a4fe2ac7d0f93e66f1efc6e1338a41884b7ddf2a350cedd20ccc4d9d28f3 \ | ||||||
|     --hash=sha256:d446183e84b8349fa3061f0fe7f06ca94ba65b426946ffebe6e3e8295332420c |     --hash=sha256:d446183e84b8349fa3061f0fe7f06ca94ba65b426946ffebe6e3e8295332420c | ||||||
|  | |||||||
| @ -1,104 +1,6 @@ | |||||||
| #!/usr/bin/env sh | #!/usr/bin/env sh | ||||||
| 
 | 
 | ||||||
|  | python manage.py migrate --no-input | ||||||
|  | python manage.py collectstatic --no-input | ||||||
| 
 | 
 | ||||||
| # set global variables: | gunicorn logs_collector.wsgi:application | ||||||
| _DB_URL="${DB_URL}" |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| # parses the database connection url and sets global variables: |  | ||||||
| # |  | ||||||
| # _DBMS: {psql, sqlite} default dbms used |  | ||||||
| # _DB_HOST {domain,ip_address} for connections |  | ||||||
| # _DB_PORT {5432,3306,etc} for connections |  | ||||||
| # _DB_USER {root,admin,etc} db username |  | ||||||
| # _DB_PASSWORD {super_secret} db user password |  | ||||||
| parse_db_url() { |  | ||||||
| 	local db_url=$1 |  | ||||||
| 	echo "-------- Check used DBMS --------" |  | ||||||
| 	if [ -n "${db_url}" ]; then |  | ||||||
| 		# ! PARSING: |  | ||||||
| 		# -- -- -- |  | ||||||
| 		# extract the protocol |  | ||||||
| 		local proto="$(echo "${db_url}" | grep '://' | sed -e's,^\(.*://\).*,\1,g')" |  | ||||||
| 		local dbms=${proto%:*} |  | ||||||
| 		# if dpms is "sqlite" we do not need parse url args |  | ||||||
| 		if [ "${dbms}" = "psql" ]; then |  | ||||||
| 			# remove the protocol (clean url) |  | ||||||
| 			local url=$(echo "${db_url}" | sed -e s,"${proto}",,g) |  | ||||||
| 			# extract the user and password (if any) |  | ||||||
| 			local userpass="$(echo "${url}" | grep @ | cut -d@ -f1)" |  | ||||||
| 			local password=$(echo "${userpass}" | grep : | cut -d: -f2) |  | ||||||
| 			# extract the host and port connection |  | ||||||
| 			local hostport=$(echo "${url}" | sed -e s,$userpass@,,g | cut -d/ -f1) |  | ||||||
| 			local port=$(echo "${hostport}" | grep : | cut -d: -f2) |  | ||||||
| 			# ! SET VARIABLES: |  | ||||||
| 			# -- -- -- -- -- |  | ||||||
| 			# _DB_HOST or/and _DB_PORT for test db connection |  | ||||||
| 			if [ -n "${port}" ]; then |  | ||||||
| 					_DB_HOST=$(echo "${hostport}" | grep : | cut -d: -f1) |  | ||||||
| 					_DB_PORT="${port}" |  | ||||||
| 			else |  | ||||||
| 					_DB_HOST="${hostport}" |  | ||||||
| 			fi |  | ||||||
| 			# _DB_USER or/and _DB_PASSWORD for future features |  | ||||||
| 			if [ -n "${password}" ]; then |  | ||||||
| 					_DB_USER=$(echo "${userpass}" | grep : | cut -d: -f1) |  | ||||||
| 					_DB_PASSWORD="${password}" |  | ||||||
| 			else |  | ||||||
| 					_DB_USER="${userpass}" |  | ||||||
| 			fi |  | ||||||
| 		fi |  | ||||||
| 	# _DBMS (sqlite or psql) |  | ||||||
| 	_DBMS="${dbms}" |  | ||||||
| 	echo "${_DBMS} is set as the default DBMS" |  | ||||||
| 	else |  | ||||||
| 		# _DBMS (sqlite) |  | ||||||
| 		_DBMS="sqlite" |  | ||||||
| 		echo "${_DBMS} is set as the default DBMS" |  | ||||||
| 	fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| # waits until the database becomes available for connection |  | ||||||
| wait_db() { |  | ||||||
| 	local dbms=$1 |  | ||||||
| 	local db_host=$2 |  | ||||||
| 	local db_port=$3 |  | ||||||
| 	if [ "${dbms}" = "psql" ];then |  | ||||||
| 		echo "------- Waiting for database start -------" |  | ||||||
| 		while ! nc -z $db_host $db_port; do |  | ||||||
| 			sleep 0.1 |  | ||||||
| 		done |  | ||||||
| 		echo "PostgreSQL started" |  | ||||||
| 	fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| # app config performs database migration, collects static files |  | ||||||
| app_config() { |  | ||||||
| 	echo "-------- Apply migration --------" |  | ||||||
| 	python manage.py migrate --no-input |  | ||||||
| 	echo "----- Collect static files ------" |  | ||||||
| 	python manage.py collectstatic --no-input |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| # run app wsgi web server |  | ||||||
| app_run() { |  | ||||||
| 	echo "--------- Run gunicorn ----------" |  | ||||||
| 	gunicorn logs_collector.wsgi:application |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| # app entrypoint |  | ||||||
| main() { |  | ||||||
| 	parse_db_url $_DB_URL |  | ||||||
| 	wait_db $_DBMS $_DB_HOST $_DB_PORT |  | ||||||
| 	app_config |  | ||||||
| 	app_run |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # RUN |  | ||||||
| main |  | ||||||
| 
 |  | ||||||
| exec "$@" |  | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user