From 41c3816733e6dc706579d93f18d82b9b016fd82e Mon Sep 17 00:00:00 2001 From: Mario Hernandez Date: Sat, 14 Dec 2024 18:08:28 -0300 Subject: [PATCH] Documentacion --- django_payments_chile/FlowProvider.py | 24 --- django_payments_chile/providers.py | 4 +- docs/CHANGELOG.md | 16 +- docs/api-flowprovider.md | 1 + docs/api-khipuprovider.md | 1 + docs/api.md | 53 +------ docs/guia-django.md | 156 ++++++++++++++++++ docs/guia-introduccion.md | 7 + docs/guia-tienda.md | 1 + docs/index.md | 92 ++++++----- docs/providers.md | 51 +----- mkdocs.yml | 9 +- tienda_pruebas/uv.lock | 217 -------------------------- 13 files changed, 255 insertions(+), 377 deletions(-) create mode 100644 docs/api-flowprovider.md create mode 100644 docs/api-khipuprovider.md create mode 100644 docs/guia-django.md create mode 100644 docs/guia-introduccion.md create mode 100644 docs/guia-tienda.md delete mode 100644 tienda_pruebas/uv.lock diff --git a/django_payments_chile/FlowProvider.py b/django_payments_chile/FlowProvider.py index 2ad6df1..58e7f81 100644 --- a/django_payments_chile/FlowProvider.py +++ b/django_payments_chile/FlowProvider.py @@ -228,27 +228,3 @@ def refund(self, payment, amount: Optional[int] = None) -> int: payment.save() payment.change_status(PaymentStatus.REFUNDED) return to_refund - - def capture(self): - """ - Captura el pago (no implementado). - - Note: - Método no soportado por Flow. - Raises: - NotImplementedError: Método no implementado. - """ - raise NotImplementedError() # noqa - - def release(self): - """ - Libera el pago (no implementado). - - Note: - Método no soportado por Flow. - - Raises: - NotImplementedError: Método no implementado. - - """ - raise NotImplementedError() # noqa diff --git a/django_payments_chile/providers.py b/django_payments_chile/providers.py index b544199..5f2ed48 100644 --- a/django_payments_chile/providers.py +++ b/django_payments_chile/providers.py @@ -1,6 +1,6 @@ from .FlowProvider import FlowProvider # noqa +from .KhipuProvider import KhipuProvider # noqa -# from .KhipuProvider import KhipuProvider # noqa # from .PaykuProvider import PaykuProvider # noqa -__all__ = ["FlowProvider"] # noqa +__all__ = ["FlowProvider", "KhipuProvider"] # noqa diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index cca76e3..1d5c02b 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -13,10 +13,24 @@ y este proyecto se adhiere a [Semantic Versioning](https://semver.org/spec/v2.0. - Transbank WebPayPlus - Transbank OnePay +## [2024.12.3b] + +- Tests: Khipu +- Documentacion: Guias de Instalación + +## [2024.12.2a] + +- Tests: Flow +- Provider: Khipu + +## [2024.12.1] + +- Provider: Flow + ## [2024.9.29] - Cambios en Documentacion -- Nuevos providers para: **Flow, Khipu, Payku** +- Nuevos providers estructura base ## [2024.9.23] diff --git a/docs/api-flowprovider.md b/docs/api-flowprovider.md new file mode 100644 index 0000000..5e27358 --- /dev/null +++ b/docs/api-flowprovider.md @@ -0,0 +1 @@ +::: django_payments_chile.FlowProvider diff --git a/docs/api-khipuprovider.md b/docs/api-khipuprovider.md new file mode 100644 index 0000000..e7e4f2a --- /dev/null +++ b/docs/api-khipuprovider.md @@ -0,0 +1 @@ +::: django_payments_chile.KhipuProvider diff --git a/docs/api.md b/docs/api.md index 020b6eb..21d7462 100644 --- a/docs/api.md +++ b/docs/api.md @@ -4,60 +4,11 @@ Este documento proporciona una visión general de los diferentes proveedores de Para obtener detalles sobre cada proveedor, consulte los siguientes enlaces: -- [FlowProvider](flow-provider.md) -- [KhipuProvider](khipu-provider.md) +- [FlowProvider](api-flowprovider.md) +- [KhipuProvider](api-khipuprovider.md) - [KlapProvider](klap-provider.md) - [KushkiProvider](kushki-provider.md) - [OneclickProvider](oneclick-provider.md) - [PagofacilProvider](pagofacil-provider.md) - [PaykuProvider](payku-provider.md) - [WebpayProvider](webpay-provider.md) - -Cada enlace lo llevará a una documentación detallada sobre la implementación y uso de ese proveedor específico. - -## FlowProvider - -El FlowProvider es una implementación para integrar la pasarela de pagos Flow en django-payments-chile. - -### Métodos principales - -- `__init__(self, **kwargs)`: Inicializa el proveedor con las configuraciones necesarias. -- `get_form(self, payment, data=None)`: Retorna el formulario para iniciar el proceso de pago. -- `process_data(self, payment, request)`: Procesa los datos recibidos de Flow después de un pago. - -#### Configuración - -Para utilizar FlowProvider, añada la siguiente configuración a `PAYMENT_VARIANTS` en su archivo `settings.py`: - -```python -PAYMENT_VARIANTS = { - "flow": ("django_payments_chile.FlowProvider", { - "api_key": "su_api_key", - "api_secret": "su_api_secret", - "api_endpoint": "sandbox", # Cambie a "live" para producción - "api_medio": 9, # 9 indica todos los medios de pago - }) -} -``` - -#### Uso - -Para crear un pago utilizando FlowProvider: - -```python -from django_payments import get_payment_model - -Payment = get_payment_model() -payment = Payment.objects.create( - variant='flow', # Debe coincidir con la clave en PAYMENT_VARIANTS - amount=1000, - currency='CLP', - description='Descripción del pago' -) -``` - -Consulte la [documentación de Flow](https://www.flow.cl/docs) para más detalles sobre la integración y opciones disponibles. - -## API - -::: django_payments_chile.FlowProvider diff --git a/docs/guia-django.md b/docs/guia-django.md new file mode 100644 index 0000000..5ad54d6 --- /dev/null +++ b/docs/guia-django.md @@ -0,0 +1,156 @@ +# Guía para configurar Django con django-payments y django-payments-chile + +Esta guía está diseñada para ayudarte a integrar **django-payments** y **django-payments-chile** en una aplicación Django ya funcional que no necesariamente tiene un modulo de pago. + +--- + +## Instalación de dependencias + +Dentro de tu proyecto Django, debes usar el administrador de paquetes que mas de guste, esta aplicacion se encuenta publicada en PyPi. + +Con `pip`: + +```bash +pip install django-payments django-payments-chile +``` + +Con `poetry`: + +```bash +poetry add django-payments django-payments-chile +``` + +### Crear una aplicación para pagos + +Luego utiliza el siguiente comando para crear la aplicación de pagos: + +```bash +python manage.py startapp pagos +``` + +La aplicación `pagos` se utilizará para integrar y extender las funcionalidades de django-payments y django-payments-chile. + +--- + +## Configuración de Django-Payments + +### 1. Agregar aplicaciones al archivo `settings.py` + +En el archivo de configuración principal de tu proyecto Django, agrega las aplicaciones necesarias: + +```python +INSTALLED_APPS = [ + ... + "payments", + "pagos", + ... +] +``` + +### 2. Configurar los parámetros necesarios + +Agrega las configuraciones clave en tu archivo `settings.py`: + +```python +PAYMENT_HOST = 'tu-tienda.cl' # Cambia esto por el dominio de tu aplicación +PAYMENT_USES_SSL = True # Es recomendable habilitar TLS para mayor seguridad +PAYMENT_MODEL = 'pagos.models.Payment' # Modelo extendido para pagos + +PAYMENT_VARIANTS = { + "klap": ( + "django_payments_chile.KlapProvider", + { + "api_key": "KLAP_KEY", + "api_secret": "secret", + } + ) +} +``` + +### 3. Configurar URLs + +Incluye las rutas de django-payments en el archivo de rutas principales de tu proyecto o en un archivo específico como `pagos/urls.py`: + +```python +from django.urls import include, path + +urlpatterns = [ + ... + path('payments/', include('payments.urls')), + ... +] +``` + +--- + +## Crear un modelo extendido para Django-Payments + +Django-Payments requiere un modelo que extienda la clase base `BasePayment`. + +```python +from decimal import Decimal +from django.urls import reverse +from payments import PurchasedItem +from payments.models import BasePayment + +class Payment(BasePayment): + def get_failure_url(self) -> str: + return reverse('payment_failure', kwargs={'pk': self.pk}) + + def get_success_url(self) -> str: + return reverse('payment_success', kwargs={'pk': self.pk}) +``` + +Este modelo maneja las URLs para redirigir a los usuarios después de un pago exitoso o fallido utilizando rutas nombradas en lugar de construir URLs manualmente. + +--- + +## Crear vistas para manejar éxito y fallos de pago + +Es necesario crear vistas que gestionen las respuestas después de un pago exitoso o fallido. Estas vistas se pueden definir dentro de la aplicación `pagos`: + +### Ejemplo de vistas + +```python +from django.http import HttpResponse +from django.shortcuts import get_object_or_404 +from pagos.models import Payment + +def payment_success(request, pk): + pago = get_object_or_404(Payment, pk=pk) + return HttpResponse(f"El pago con ID {pago.pk} fue exitoso. Gracias por tu compra.") + +def payment_failure(request, pk): + pago = get_object_or_404(Payment, pk=pk) + return HttpResponse(f"El pago con ID {pago.pk} no pudo completarse. Por favor, intenta nuevamente.") +``` + +### Configurar las rutas para las vistas + +Agrega las rutas correspondientes en el archivo `pagos/urls.py`: + +```python +from django.urls import path +from . import views + +urlpatterns = [ + path('success//', views.payment_success, name='payment_success'), + path('failure//', views.payment_failure, name='payment_failure'), +] +``` + +Finalmente, incluye estas rutas en las rutas principales del proyecto: + +```python +from django.urls import include, path + +urlpatterns = [ + ... + path('pagos/', include('pagos.urls')), + ... +] +``` + +--- + +Con esta configuración, tu aplicación estará lista para manejar los flujos de éxito y fallo en los pagos, integrando **django-payments** y **django-payments-chile** de manera efectiva. diff --git a/docs/guia-introduccion.md b/docs/guia-introduccion.md new file mode 100644 index 0000000..5d23344 --- /dev/null +++ b/docs/guia-introduccion.md @@ -0,0 +1,7 @@ +# Guias de Uso + +Acá encontraras algunos implementaciones para que puedas ayudarte. + +- Tengo una aplicacion en Django y quisiera instalar django-payments y django-payments-chile para configurar Klap. +- Ya tengo una tienda en Django con django-payments y quisiera agregar django-payments-chile para agregar Flow a mis opciones de pago. +- Tengo una tienda en Shopify y quisiera saber de que se trata esto. diff --git a/docs/guia-tienda.md b/docs/guia-tienda.md new file mode 100644 index 0000000..a3e3fbd --- /dev/null +++ b/docs/guia-tienda.md @@ -0,0 +1 @@ +# Guia Tienda diff --git a/docs/index.md b/docs/index.md index 55b341d..eca90cf 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,38 +1,70 @@ # django-payments-chile -`django-payments-chile` es una extensión para `django-payments`, una biblioteca que proporciona una interfaz universal para procesar pagos en aplicaciones Django. Este proyecto añade soporte específico para varios proveedores de pagos chilenos como Flow, Khipu, Webpay, y otros. - -![PyPI - Status](https://img.shields.io/pypi/status/django-payments-flow) -[![Downloads](https://pepy.tech/badge/django-payments-flow)](https://pepy.tech/project/django-payments-flow) -[![Codacy Badge](https://app.codacy.com/project/badge/Grade/7dc3c8d6fe844fdaa1de0cb86c242934)](https://app.codacy.com/gh/mariofix/django-payments-flow/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade) -[![Codacy Badge](https://app.codacy.com/project/badge/Coverage/7dc3c8d6fe844fdaa1de0cb86c242934)](https://app.codacy.com/gh/mariofix/django-payments-flow/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_coverage) -[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/mariofix/django-payments-flow/main.svg)](https://results.pre-commit.ci/latest/github/mariofix/django-payments-flow/main) -![PyPI](https://img.shields.io/pypi/v/django-payments-flow) -![PyPI - Python Version](https://img.shields.io/pypi/pyversions/django-payments-flow) -![PyPI - Implementation](https://img.shields.io/pypi/implementation/django-payments-flow) -![PyPI - License](https://img.shields.io/pypi/l/django-payments-flow) - -## Características - -- Soporte para múltiples proveedores de pago en un solo proyecto. -- API consistente para crear, procesar y verificar transacciones. -- Fácil configuración y personalización. -- Documentación clara para desarrolladores. -- Soporte para eventos de éxito, fallo, y reembolsos de pagos. +`django-payments-chile` es una extensión para [django-payments](https://github.com/jazzband/django-payments), una biblioteca que proporciona una interfaz universal para procesar pagos en aplicaciones Django. Este proyecto añade soporte específico para varios proveedores de pagos chilenos como Flow, Khipu, Webpay, y otros. + +⚠️ ⚠️ **Este proyecto está en desarrollo activo**, usar con precaución. ⚠️ ⚠️ + +![PyPI - Status](https://img.shields.io/pypi/status/django-payments-chile) +[![Downloads](https://pepy.tech/badge/django-payments-chile)](https://pepy.tech/project/django-payments-chile) +[![Codacy Badge](https://app.codacy.com/project/badge/Grade/fde07768d1714b0b93c6addd5e13bb7f)](https://app.codacy.com/gh/mariofix/django-payments-chile/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade) +[![Codacy Badge](https://app.codacy.com/project/badge/Coverage/fde07768d1714b0b93c6addd5e13bb7f)](https://app.codacy.com/gh/mariofix/django-payments-chile/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_coverage) +[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/mariofix/django-payments-chile/main.svg)](https://results.pre-commit.ci/latest/github/mariofix/django-payments-chile/main) +[![Tests & Coverage](https://github.com/mariofix/django-payments-chile/actions/workflows/tests_coverage.yml/badge.svg?branch=main)](https://github.com/mariofix/django-payments-chile/actions/workflows/tests_coverage.yml) +![PyPI](https://img.shields.io/pypi/v/django-payments-chile) +![PyPI - Python Version](https://img.shields.io/pypi/pyversions/django-payments-chile) +![PyPI - Implementation](https://img.shields.io/pypi/implementation/django-payments-chile) +![PyPI - License](https://img.shields.io/pypi/l/django-payments-chile) + +## Proveedores de pago soportados + +| Proveedor | Estado | Descripcion | +| --- | --- | --- | +| Flow | ✅ | Plataforma chilena para pagos en línea que admite múltiples métodos de pago. | +| Khipu | ✅ | Permite pagos mediante transferencia electrónica en tiempo real. | +| Klap | ❌ | Solución de pagos electrónicos enfocados en comercios. | +| Kushki | ❌ | Proveedor de pagos electrónicos que facilita la integración con diversas plataformas. | +| Onepay | ❌ | Pago rápido y seguro usando códigos QR. | +| Payku | ❌ | Plataforma de pagos enfocada en pequeñas y medianas empresas. | +| Webpay | ❌ | El sistema de pago en línea más utilizado en Chile, operado por Transbank. | ## Inicio rápido -### Instalación +## Instalación + +La biblioteca `django-payments-chile` está disponible en PyPi. Puedes instalarla fácilmente con tu gestor de paquetes favorito, como `pip`, `poetry`, o `pipenv`. ```bash +pip install django-payments-chile +``` + +### Instalación de Extras + +Algunos proveedores requieren dependencias adicionales para funcionar correctamente. Puedes instalar estas dependencias mediante extras: + +```bash +# Instala todas las dependencias extra pip install django-payments-chile[todos] ``` -Adicionalmente puedes instalar los extras para cada integrador: +Los extras disponibles son: + +- **webpay**: Incluye la dependencia `transbank-sdk`. +- **oneclick**: También incluye `transbank-sdk`. +- **todos**: Instala todas las dependencias extra mencionadas. + +Por ejemplo, para instalar solo las dependencias necesarias para Webpay, puedes ejecutar: + +```bash +pip install django-payments-chile[webpay] +``` + +Esto es equivalente a instalar las dependencias manualmente: -- **flow**: Instala extras para Flow. -- **khipu**: Instala extras para Khipu. -- **todos**: Instala todos los extras. +```bash +pip install django-payments-chile transbank-sdk +``` + +**Nota**: La instalación de extras es opcional. Si prefieres, puedes gestionar las dependencias adicionales de forma manual en tu proyecto. ### Configuración @@ -77,15 +109,3 @@ return redirect(redirect_url) ``` Para más detalles sobre el flujo de pago y las respuestas de los proveedores, consulta la sección [configuración](configuration.md). - -## Proveedores soportados - -- Flow -- Khipu -- Klap -- Kushki -- Payku -- Webpay -- Onepay - -Consulta la documentación para aprender cómo integrarlos. diff --git a/docs/providers.md b/docs/providers.md index a6641f7..fbf3ccd 100644 --- a/docs/providers.md +++ b/docs/providers.md @@ -14,22 +14,6 @@ pip install django-payments-chile[todos] ### Flow -#### Instalación - -Opción 1: Instalación específica - -```shell -pip install django-payments-chile[flow] -``` - -Opción 2: Instalación manual - -```shell -pip install pyflowcl -``` - -#### Configuración - No es necesario agregar el módulo en `INSTALLED_APPS`. Añade la siguiente configuración a `PAYMENT_VARIANTS` en tu archivo `settings.py`: ```python @@ -45,43 +29,20 @@ PAYMENT_VARIANTS = { ### Khipu -#### Instalación - -Opción 1: Instalación específica - -```shell -pip install django-payments-chile[khipu] -``` - -Opción 2: Instalación manual - -```shell -pip install pykhipu -``` - -#### Configuración - No es necesario agregar el módulo en `INSTALLED_APPS`. Añade la siguiente configuración a `PAYMENT_VARIANTS` en tu archivo `settings.py`: +La nueva version de la API de Khipu ya no usa el id de cobrador, debes generar una nueva API Key para ser usada acá. + ```python PAYMENT_VARIANTS = { "khipu": ("django_payments_chile.KhipuProvider", { - "receiver_id": 1, - "secret": "qwertyasdf0123456789", - "user_notification": "1.3", - "bank_id": "qwe123" + "api_key": "qwertyasdf0123456789", }) } ``` ### Payku -#### Instalación - -No se requiere instalación adicional. - -#### Configuración - Añade la siguiente configuración a `PAYMENT_VARIANTS` en tu archivo `settings.py`: ```python @@ -96,6 +57,6 @@ PAYMENT_VARIANTS = { ## Notas adicionales -- Asegúrate de reemplazar los valores de ejemplo (como "flow_key", "flow_secret", etc.) con tus credenciales reales proporcionadas por cada proveedor de pagos. -- Para entornos de producción, cambia los valores de "api_endpoint" y "site" a "live" o "production" según corresponda. -- Consulta la documentación oficial de cada proveedor para obtener información detallada sobre opciones de configuración adicionales y mejores prácticas de implementación. +- Asegúrate de reemplazar los valores de ejemplo (como "flow_key", "flow_secret", etc.) con tus credenciales reales proporcionadas por cada proveedor de pagos. +- Para entornos de producción, cambia los valores de "api_endpoint" y "site" a "live" o "production" según corresponda. +- Consulta la documentación oficial de cada proveedor para obtener información detallada sobre opciones de configuración adicionales y mejores prácticas de implementación. diff --git a/mkdocs.yml b/mkdocs.yml index f2e4db5..6fda341 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -37,7 +37,14 @@ nav: - Inicio: index.md - Uso: uso.md - Integraciones: providers.md - - Referencia: api.md + - Guias de Instalación: + - Aplicación Django: guia-django.md + - Tienda en Django: guias-tienda.md + - Desde Cero: guias.md + - Referencia: + - API: api.md + - FlowProvider: api-flowprovider.md + - KhipuProvider: api-khipuprovider.md - Colabora: contributing.md - Cambios: CHANGELOG.md diff --git a/tienda_pruebas/uv.lock b/tienda_pruebas/uv.lock deleted file mode 100644 index b71602b..0000000 --- a/tienda_pruebas/uv.lock +++ /dev/null @@ -1,217 +0,0 @@ -version = 1 -requires-python = ">=3.10" - -[[package]] -name = "asgiref" -version = "3.8.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions", marker = "python_full_version < '3.11'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/29/38/b3395cc9ad1b56d2ddac9970bc8f4141312dbaec28bc7c218b0dfafd0f42/asgiref-3.8.1.tar.gz", hash = "sha256:c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590", size = 35186 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/39/e3/893e8757be2612e6c266d9bb58ad2e3651524b5b40cf56761e985a28b13e/asgiref-3.8.1-py3-none-any.whl", hash = "sha256:3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47", size = 23828 }, -] - -[[package]] -name = "certifi" -version = "2024.8.30" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b0/ee/9b19140fe824b367c04c5e1b369942dd754c4c5462d5674002f75c4dedc1/certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9", size = 168507 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", size = 167321 }, -] - -[[package]] -name = "charset-normalizer" -version = "3.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f2/4f/e1808dc01273379acc506d18f1504eb2d299bd4131743b9fc54d7be4df1e/charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", size = 106620 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/69/8b/825cc84cf13a28bfbcba7c416ec22bf85a9584971be15b21dd8300c65b7f/charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6", size = 196363 }, - { url = "https://files.pythonhosted.org/packages/23/81/d7eef6a99e42c77f444fdd7bc894b0ceca6c3a95c51239e74a722039521c/charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b", size = 125639 }, - { url = "https://files.pythonhosted.org/packages/21/67/b4564d81f48042f520c948abac7079356e94b30cb8ffb22e747532cf469d/charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99", size = 120451 }, - { url = "https://files.pythonhosted.org/packages/c2/72/12a7f0943dd71fb5b4e7b55c41327ac0a1663046a868ee4d0d8e9c369b85/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca", size = 140041 }, - { url = "https://files.pythonhosted.org/packages/67/56/fa28c2c3e31217c4c52158537a2cf5d98a6c1e89d31faf476c89391cd16b/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d", size = 150333 }, - { url = "https://files.pythonhosted.org/packages/f9/d2/466a9be1f32d89eb1554cf84073a5ed9262047acee1ab39cbaefc19635d2/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7", size = 142921 }, - { url = "https://files.pythonhosted.org/packages/f8/01/344ec40cf5d85c1da3c1f57566c59e0c9b56bcc5566c08804a95a6cc8257/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3", size = 144785 }, - { url = "https://files.pythonhosted.org/packages/73/8b/2102692cb6d7e9f03b9a33a710e0164cadfce312872e3efc7cfe22ed26b4/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907", size = 146631 }, - { url = "https://files.pythonhosted.org/packages/d8/96/cc2c1b5d994119ce9f088a9a0c3ebd489d360a2eb058e2c8049f27092847/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b", size = 140867 }, - { url = "https://files.pythonhosted.org/packages/c9/27/cde291783715b8ec30a61c810d0120411844bc4c23b50189b81188b273db/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912", size = 149273 }, - { url = "https://files.pythonhosted.org/packages/3a/a4/8633b0fc1a2d1834d5393dafecce4a1cc56727bfd82b4dc18fc92f0d3cc3/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95", size = 152437 }, - { url = "https://files.pythonhosted.org/packages/64/ea/69af161062166b5975ccbb0961fd2384853190c70786f288684490913bf5/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e", size = 150087 }, - { url = "https://files.pythonhosted.org/packages/3b/fd/e60a9d9fd967f4ad5a92810138192f825d77b4fa2a557990fd575a47695b/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe", size = 145142 }, - { url = "https://files.pythonhosted.org/packages/6d/02/8cb0988a1e49ac9ce2eed1e07b77ff118f2923e9ebd0ede41ba85f2dcb04/charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc", size = 94701 }, - { url = "https://files.pythonhosted.org/packages/d6/20/f1d4670a8a723c46be695dff449d86d6092916f9e99c53051954ee33a1bc/charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749", size = 102191 }, - { url = "https://files.pythonhosted.org/packages/9c/61/73589dcc7a719582bf56aae309b6103d2762b526bffe189d635a7fcfd998/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", size = 193339 }, - { url = "https://files.pythonhosted.org/packages/77/d5/8c982d58144de49f59571f940e329ad6e8615e1e82ef84584c5eeb5e1d72/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", size = 124366 }, - { url = "https://files.pythonhosted.org/packages/bf/19/411a64f01ee971bed3231111b69eb56f9331a769072de479eae7de52296d/charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", size = 118874 }, - { url = "https://files.pythonhosted.org/packages/4c/92/97509850f0d00e9f14a46bc751daabd0ad7765cff29cdfb66c68b6dad57f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", size = 138243 }, - { url = "https://files.pythonhosted.org/packages/e2/29/d227805bff72ed6d6cb1ce08eec707f7cfbd9868044893617eb331f16295/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6", size = 148676 }, - { url = "https://files.pythonhosted.org/packages/13/bc/87c2c9f2c144bedfa62f894c3007cd4530ba4b5351acb10dc786428a50f0/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", size = 141289 }, - { url = "https://files.pythonhosted.org/packages/eb/5b/6f10bad0f6461fa272bfbbdf5d0023b5fb9bc6217c92bf068fa5a99820f5/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", size = 142585 }, - { url = "https://files.pythonhosted.org/packages/3b/a0/a68980ab8a1f45a36d9745d35049c1af57d27255eff8c907e3add84cf68f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5", size = 144408 }, - { url = "https://files.pythonhosted.org/packages/d7/a1/493919799446464ed0299c8eef3c3fad0daf1c3cd48bff9263c731b0d9e2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", size = 139076 }, - { url = "https://files.pythonhosted.org/packages/fb/9d/9c13753a5a6e0db4a0a6edb1cef7aee39859177b64e1a1e748a6e3ba62c2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c", size = 146874 }, - { url = "https://files.pythonhosted.org/packages/75/d2/0ab54463d3410709c09266dfb416d032a08f97fd7d60e94b8c6ef54ae14b/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", size = 150871 }, - { url = "https://files.pythonhosted.org/packages/8d/c9/27e41d481557be53d51e60750b85aa40eaf52b841946b3cdeff363105737/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", size = 148546 }, - { url = "https://files.pythonhosted.org/packages/ee/44/4f62042ca8cdc0cabf87c0fc00ae27cd8b53ab68be3605ba6d071f742ad3/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", size = 143048 }, - { url = "https://files.pythonhosted.org/packages/01/f8/38842422988b795220eb8038745d27a675ce066e2ada79516c118f291f07/charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99", size = 94389 }, - { url = "https://files.pythonhosted.org/packages/0b/6e/b13bd47fa9023b3699e94abf565b5a2f0b0be6e9ddac9812182596ee62e4/charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", size = 101752 }, - { url = "https://files.pythonhosted.org/packages/d3/0b/4b7a70987abf9b8196845806198975b6aab4ce016632f817ad758a5aa056/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6", size = 194445 }, - { url = "https://files.pythonhosted.org/packages/50/89/354cc56cf4dd2449715bc9a0f54f3aef3dc700d2d62d1fa5bbea53b13426/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf", size = 125275 }, - { url = "https://files.pythonhosted.org/packages/fa/44/b730e2a2580110ced837ac083d8ad222343c96bb6b66e9e4e706e4d0b6df/charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db", size = 119020 }, - { url = "https://files.pythonhosted.org/packages/9d/e4/9263b8240ed9472a2ae7ddc3e516e71ef46617fe40eaa51221ccd4ad9a27/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1", size = 139128 }, - { url = "https://files.pythonhosted.org/packages/6b/e3/9f73e779315a54334240353eaea75854a9a690f3f580e4bd85d977cb2204/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03", size = 149277 }, - { url = "https://files.pythonhosted.org/packages/1a/cf/f1f50c2f295312edb8a548d3fa56a5c923b146cd3f24114d5adb7e7be558/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284", size = 142174 }, - { url = "https://files.pythonhosted.org/packages/16/92/92a76dc2ff3a12e69ba94e7e05168d37d0345fa08c87e1fe24d0c2a42223/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15", size = 143838 }, - { url = "https://files.pythonhosted.org/packages/a4/01/2117ff2b1dfc61695daf2babe4a874bca328489afa85952440b59819e9d7/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8", size = 146149 }, - { url = "https://files.pythonhosted.org/packages/f6/9b/93a332b8d25b347f6839ca0a61b7f0287b0930216994e8bf67a75d050255/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2", size = 140043 }, - { url = "https://files.pythonhosted.org/packages/ab/f6/7ac4a01adcdecbc7a7587767c776d53d369b8b971382b91211489535acf0/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719", size = 148229 }, - { url = "https://files.pythonhosted.org/packages/9d/be/5708ad18161dee7dc6a0f7e6cf3a88ea6279c3e8484844c0590e50e803ef/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631", size = 151556 }, - { url = "https://files.pythonhosted.org/packages/5a/bb/3d8bc22bacb9eb89785e83e6723f9888265f3a0de3b9ce724d66bd49884e/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b", size = 149772 }, - { url = "https://files.pythonhosted.org/packages/f7/fa/d3fc622de05a86f30beea5fc4e9ac46aead4731e73fd9055496732bcc0a4/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565", size = 144800 }, - { url = "https://files.pythonhosted.org/packages/9a/65/bdb9bc496d7d190d725e96816e20e2ae3a6fa42a5cac99c3c3d6ff884118/charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7", size = 94836 }, - { url = "https://files.pythonhosted.org/packages/3e/67/7b72b69d25b89c0b3cea583ee372c43aa24df15f0e0f8d3982c57804984b/charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9", size = 102187 }, - { url = "https://files.pythonhosted.org/packages/f3/89/68a4c86f1a0002810a27f12e9a7b22feb198c59b2f05231349fbce5c06f4/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114", size = 194617 }, - { url = "https://files.pythonhosted.org/packages/4f/cd/8947fe425e2ab0aa57aceb7807af13a0e4162cd21eee42ef5b053447edf5/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed", size = 125310 }, - { url = "https://files.pythonhosted.org/packages/5b/f0/b5263e8668a4ee9becc2b451ed909e9c27058337fda5b8c49588183c267a/charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250", size = 119126 }, - { url = "https://files.pythonhosted.org/packages/ff/6e/e445afe4f7fda27a533f3234b627b3e515a1b9429bc981c9a5e2aa5d97b6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920", size = 139342 }, - { url = "https://files.pythonhosted.org/packages/a1/b2/4af9993b532d93270538ad4926c8e37dc29f2111c36f9c629840c57cd9b3/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64", size = 149383 }, - { url = "https://files.pythonhosted.org/packages/fb/6f/4e78c3b97686b871db9be6f31d64e9264e889f8c9d7ab33c771f847f79b7/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23", size = 142214 }, - { url = "https://files.pythonhosted.org/packages/2b/c9/1c8fe3ce05d30c87eff498592c89015b19fade13df42850aafae09e94f35/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc", size = 144104 }, - { url = "https://files.pythonhosted.org/packages/ee/68/efad5dcb306bf37db7db338338e7bb8ebd8cf38ee5bbd5ceaaaa46f257e6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d", size = 146255 }, - { url = "https://files.pythonhosted.org/packages/0c/75/1ed813c3ffd200b1f3e71121c95da3f79e6d2a96120163443b3ad1057505/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88", size = 140251 }, - { url = "https://files.pythonhosted.org/packages/7d/0d/6f32255c1979653b448d3c709583557a4d24ff97ac4f3a5be156b2e6a210/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90", size = 148474 }, - { url = "https://files.pythonhosted.org/packages/ac/a0/c1b5298de4670d997101fef95b97ac440e8c8d8b4efa5a4d1ef44af82f0d/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b", size = 151849 }, - { url = "https://files.pythonhosted.org/packages/04/4f/b3961ba0c664989ba63e30595a3ed0875d6790ff26671e2aae2fdc28a399/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d", size = 149781 }, - { url = "https://files.pythonhosted.org/packages/d8/90/6af4cd042066a4adad58ae25648a12c09c879efa4849c705719ba1b23d8c/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482", size = 144970 }, - { url = "https://files.pythonhosted.org/packages/cc/67/e5e7e0cbfefc4ca79025238b43cdf8a2037854195b37d6417f3d0895c4c2/charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67", size = 94973 }, - { url = "https://files.pythonhosted.org/packages/65/97/fc9bbc54ee13d33dc54a7fcf17b26368b18505500fc01e228c27b5222d80/charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b", size = 102308 }, - { url = "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", size = 49446 }, -] - -[[package]] -name = "django" -version = "5.1.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "asgiref" }, - { name = "sqlparse" }, - { name = "tzdata", marker = "sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d3/e8/536555596dbb79f6e77418aeb40bdc1758c26725aba31919ba449e6d5e6a/Django-5.1.4.tar.gz", hash = "sha256:de450c09e91879fa5a307f696e57c851955c910a438a35e6b4c895e86bedc82a", size = 10716397 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/58/0b/8a4ab2c02982df4ed41e29f28f189459a7eba37899438e6bea7f39db793b/Django-5.1.4-py3-none-any.whl", hash = "sha256:236e023f021f5ce7dee5779de7b286565fdea5f4ab86bae5338e3f7b69896cf0", size = 8276471 }, -] - -[[package]] -name = "django-payments" -version = "3.0.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "django" }, - { name = "django-phonenumber-field", extra = ["phonenumberslite"] }, - { name = "requests" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/3a/ea/8a0cf49b367a2a3b5f173f40d257fb0f147dc5f6681e6589fc716a3a4f70/django_payments-3.0.1.tar.gz", hash = "sha256:008eb91c36b75f926f4d2487d338bb7c569c8524dee306f5f6aab93695570e2e", size = 111269 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/05/03/ebdd60f71c543e98355999369f11bbc474c08098162f8ba436209df378a7/django_payments-3.0.1-py3-none-any.whl", hash = "sha256:8490a55990371b527302d50a17b9843cdd6ff3ee17780771f026fddb06fbce3d", size = 150622 }, -] - -[[package]] -name = "django-phonenumber-field" -version = "8.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "django" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8f/d1/0a2ba41434d98ac9a2669ea7edfc8d1bc75055da450d94894c597913e01c/django_phonenumber_field-8.0.0.tar.gz", hash = "sha256:8a560fe1b01b94c9de8cde22bc373b695f023cc6df4baba00264cb079da9f631", size = 43759 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fc/ab/4738a40d6f297688ecedd08cf6dc1608ad06c08ba3c03d1fc85b19ac6717/django_phonenumber_field-8.0.0-py3-none-any.whl", hash = "sha256:196c917b70c01a98e327f482eb8a4a4a55a29891db551f99078585397370b3ba", size = 66441 }, -] - -[package.optional-dependencies] -phonenumberslite = [ - { name = "phonenumberslite" }, -] - -[[package]] -name = "idna" -version = "3.10" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 }, -] - -[[package]] -name = "phonenumberslite" -version = "8.13.52" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d1/d0/bc170d7955e0e0f5a5655e3999275761a6acacb1b852369b6289cb86f5db/phonenumberslite-8.13.52.tar.gz", hash = "sha256:dfa44a4bae2e46d737ae5301cb96b14cdcbf45063236c74c6ddb08f5fd471b0d", size = 2296536 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/3b/17518a55a9c72ae43b3c3fafd5cd4fb3616d76c72ba84957b0992ce2a279/phonenumberslite-8.13.52-py2.py3-none-any.whl", hash = "sha256:02da5e78c67b213bae95afd6289f40486c93e302e518769911dfa5e7287ddeee", size = 471765 }, -] - -[[package]] -name = "requests" -version = "2.32.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "charset-normalizer" }, - { name = "idna" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 }, -] - -[[package]] -name = "sqlparse" -version = "0.5.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e5/40/edede8dd6977b0d3da179a342c198ed100dd2aba4be081861ee5911e4da4/sqlparse-0.5.3.tar.gz", hash = "sha256:09f67787f56a0b16ecdbde1bfc7f5d9c3371ca683cfeaa8e6ff60b4807ec9272", size = 84999 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a9/5c/bfd6bd0bf979426d405cc6e71eceb8701b148b16c21d2dc3c261efc61c7b/sqlparse-0.5.3-py3-none-any.whl", hash = "sha256:cf2196ed3418f3ba5de6af7e82c694a9fbdbfecccdfc72e281548517081f16ca", size = 44415 }, -] - -[[package]] -name = "tienda-ejemplo" -version = "0.1.0" -source = { virtual = "." } -dependencies = [ - { name = "django-payments" }, -] - -[package.metadata] -requires-dist = [{ name = "django-payments", specifier = ">=2.0,<4.0" }] - -[[package]] -name = "typing-extensions" -version = "4.12.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438 }, -] - -[[package]] -name = "tzdata" -version = "2024.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e1/34/943888654477a574a86a98e9896bae89c7aa15078ec29f490fef2f1e5384/tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc", size = 193282 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a6/ab/7e5f53c3b9d14972843a647d8d7a853969a58aecc7559cb3267302c94774/tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd", size = 346586 }, -] - -[[package]] -name = "urllib3" -version = "2.2.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ed/63/22ba4ebfe7430b76388e7cd448d5478814d3032121827c12a2cc287e2260/urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9", size = 300677 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", size = 126338 }, -]