Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

celery ping doesn't work when using SQS #6727

Open
16 of 18 tasks
WhyNotHugo opened this issue Apr 14, 2021 · 12 comments
Open
16 of 18 tasks

celery ping doesn't work when using SQS #6727

WhyNotHugo opened this issue Apr 14, 2021 · 12 comments

Comments

@WhyNotHugo
Copy link

WhyNotHugo commented Apr 14, 2021

Checklist

  • I have verified that the issue exists against the master branch of Celery.
  • This has already been asked to the discussion group first. It looks like I need a Google account for that. Do I really need to sign up there first?
  • I have read the relevant section in the
    contribution guide
    on reporting bugs.
  • I have checked the issues list
    for similar or identical bug reports.
  • I have checked the pull requests list
    for existing proposed fixes.
  • I have checked the commit log
    to find out if the bug was already fixed in the master branch.
  • I have included all related issues and possible duplicate issues
    in this issue (If there are none, check this box anyway).

Mandatory Debugging Information

# celery -A idf.core report

software -> celery:5.0.5 (singularity) kombu:5.0.2 py:3.9.4
            billiard:3.6.4.0 sqs:N/A
platform -> system:Linux arch:64bit, ELF
            kernel version:4.14.225-169.362.amzn2.x86_64 imp:CPython
loader   -> celery.loaders.app.AppLoader
settings -> transport:sqs results:django-db

ABSOLUTE_URL_OVERRIDES: {
 }
ADMINS: []
AFIP_CERT_STORAGE: 'idf.core.storage.AfipPrivateStorage'
AFIP_KEY_STORAGE: '********'
AFIP_LOGO_STORAGE: 'idf.core.storage.AfipPrivateStorage'
AFIP_PDF_STORAGE: 'idf.core.storage.AfipPublicStorage'
ALLOWED_HOSTS: ['*']
ANYMAIL: {
    'DEBUG_API_REQUESTS': '********',
    'REQUESTS_TIMEOUT': 12,
    'WEBHOOK_SECRET': '********'}
APPEND_SLASH: True
ASGI_APPLICATION: 'idf.asgi.application'
AUTHENTICATION_BACKENDS: ['django.contrib.auth.backends.ModelBackend',
 'idf.auth.models.AuthTokenAuthBackend']
AUTH_PASSWORD_VALIDATORS: '********'
AUTH_USER_MODEL: 'idf_auth.User'
AWS_S3_FILE_OVERWRITE: False
AWS_S3_SECURE_URLS: True
BASE_DIR: PosixPath('/app')
CABA_ID: 1
CACHES: {
    'default': {   'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
                   'KEY_PREFIX': '********',
                   'LOCATION': 'REDACTED',
                   'OPTIONS': {}}}
CACHE_MIDDLEWARE_ALIAS: 'default'
CACHE_MIDDLEWARE_KEY_PREFIX: '********'
CACHE_MIDDLEWARE_SECONDS: 600
CELERY_ACCEPT_CONTENT: ['json', 'msgpack', 'yaml', 'pickle']
CELERY_BEAT_SCHEDULE: {
    'cancel-orders': {   'args': (),
                         'schedule': <crontab: 30 2 * * * (m/h/d/dM/MY)>,
                         'task': 'idf.core.tasks.cancel_orders'},
    'clear-sessions': {   'args': (),
                          'schedule': <crontab: 0 3 * * * (m/h/d/dM/MY)>,
                          'task': 'idf.core.tasks.clear_sessions'},
    'clear-stale-orders': {   'args': (),
                              'schedule': <crontab: 30 3 * * * (m/h/d/dM/MY)>,
                              'task': 'idf.core.tasks.clear_stale_orders'},
    'daily-report': {   'schedule': <crontab: 0 3 * * * (m/h/d/dM/MY)>,
                        'task': 'idf.reports.tasks.create_daily_report'},
    'delete-archives': {   'args': (),
                           'schedule': datetime.timedelta(seconds=1800),
                           'task': 'idf.sync.tasks.delete_old_archives'},
    'delete-empty-batches': {   'args': (),
                                'schedule': datetime.timedelta(seconds=600),
                                'task': 'idf.core.tasks.delete_empty_batches'},
    'generate-missing-archives': {   'args': (),
                                     'schedule': <crontab: 0 * * * * (m/h/d/dM/MY)>,
                                     'task': 'idf.sync.tasks.generate_missing_archives'},
    'me-shipping-statuses': {   'args': (),
                                'schedule': <crontab: 45 * * * * (m/h/d/dM/MY)>,
                                'task': 'idf.core.tasks.me.update_all_me_shipments'},
    'monthly-accounting-report': {   'args': (),
                                     'schedule': <crontab: 0 12 * 1 * (m/h/d/dM/MY)>,
                                     'task': 'idf.reports.tasks.send_monthly_accounting_report'},
    'oca-shipping-statuses': {   'args': (),
                                 'schedule': <crontab: 15 * * * * (m/h/d/dM/MY)>,
                                 'task': 'idf.core.tasks.oca.update_oca_shipment_status'},
    'orders-delivered': {   'args': (),
                            'schedule': <crontab: 0 5 * * * (m/h/d/dM/MY)>,
                            'task': 'idf.core.tasks.mark_delivered_orders'},
    'payment-reminders': {   'args': (),
                             'schedule': <crontab: 0 2 mon,wed,fri * * (m/h/d/dM/MY)>,
                             'task': 'idf.core.tasks.email_payment_reminders'},
    'send-missing-oca-batches': {   'args': (),
                                    'schedule': datetime.timedelta(seconds=600),
                                    'task': 'idf.core.tasks.oca.send_missing_oca_batches'},
    'update-admin-stats': {   'args': (),
                              'schedule': datetime.timedelta(seconds=180),
                              'task': 'idf.backoffice.tasks.update_stats'},
    'vacuum-db': {   'args': (),
                     'schedule': <crontab: 0 6 wednesday * * (m/h/d/dM/MY)>,
                     'task': 'idf.core.tasks.vacuum_db'}}
CELERY_BROKER_TRANSPORT_OPTIONS: {
    'predefined_queues': {   'celery': {   'url':
    'https://sqs.us-west-2.amazonaws.com/REDACTED/REDACTED'}},
    'visibility_timeout': 1200,
    'wait_time_seconds': 20}
CELERY_BROKER_URL: 'sqs://localhost//'
CELERY_CACHE_BACKEND: 'django-cache'
CELERY_RESULT_BACKEND: 'django-db'
CELERY_SEND_TASK_ERROR_EMAILS: True
CELERY_TASK_ACKS_LATE: True
CELERY_TASK_ROUTES: {
 '.*': 'celery'}
CELERY_TASK_SERIALIZER: 'pickle'
CELERY_WORKER_HIJACK_ROOT_LOGGER: False
CELERY_WORKER_MAX_MEMORY_PER_CHILD: 512000
CELERY_WORKER_MAX_TASKS_PER_CHILD: 4
CI: False
CSRF_COOKIE_AGE: 31449600
CSRF_COOKIE_DOMAIN: None
CSRF_COOKIE_HTTPONLY: False
CSRF_COOKIE_NAME: 'csrftoken'
CSRF_COOKIE_PATH: '/'
CSRF_COOKIE_SAMESITE: 'Lax'
CSRF_COOKIE_SECURE: True
CSRF_FAILURE_VIEW: 'idf.core.views.csrf_failure'
CSRF_HEADER_NAME: 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS: []
CSRF_USE_SESSIONS: False
DATABASES: {
    'default': {   'ATOMIC_REQUESTS': True,
                   'AUTOCOMMIT': True,
                   'CONN_MAX_AGE': 0,
                   'ENGINE': 'django.contrib.gis.db.backends.postgis',
                   'HOST': 'idfdb.ciwnxl3igajl.us-west-2.rds.amazonaws.com',
                   'NAME': 'ideasenfoto',
                   'OPTIONS': {},
                   'PASSWORD': '********',
                   'PORT': 5432,
                   'TEST': {   'CHARSET': None,
                               'COLLATION': None,
                               'MIGRATE': True,
                               'MIRROR': None,
                               'NAME': None},
                   'TIME_ZONE': None,
                   'USER': 'ideasenfoto'}}
DATABASE_ROUTERS: '********'
DATA_UPLOAD_MAX_MEMORY_SIZE: 2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS: 10000
DATETIME_FORMAT: 'N j, Y, P'
DATETIME_INPUT_FORMATS: ['%Y-%m-%d %H:%M:%S',
 '%Y-%m-%d %H:%M:%S.%f',
 '%Y-%m-%d %H:%M',
 '%m/%d/%Y %H:%M:%S',
 '%m/%d/%Y %H:%M:%S.%f',
 '%m/%d/%Y %H:%M',
 '%m/%d/%y %H:%M:%S',
 '%m/%d/%y %H:%M:%S.%f',
 '%m/%d/%y %H:%M']
DATE_FORMAT: 'N j, Y'
DATE_INPUT_FORMATS: ['%Y-%m-%d',
 '%m/%d/%Y',
 '%m/%d/%y',
 '%b %d %Y',
 '%b %d, %Y',
 '%d %b %Y',
 '%d %b, %Y',
 '%B %d %Y',
 '%B %d, %Y',
 '%d %B %Y',
 '%d %B, %Y']
DEBUG: False
DEBUG_PROPAGATE_EXCEPTIONS: False
DEBUG_TOOLBAR_CONFIG: {
 'SHOW_TOOLBAR_CALLBACK': <function show_toolbar at 0x7fae82303550>}
DECIMAL_SEPARATOR: '.'
DEFAULT_CHARSET: 'utf-8'
DEFAULT_EXCEPTION_REPORTER: 'django.views.debug.ExceptionReporter'
DEFAULT_EXCEPTION_REPORTER_FILTER: 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE: 'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL: None
DEFAULT_HASHING_ALGORITHM: 'sha256'
DEFAULT_INDEX_TABLESPACE: ''
DEFAULT_PAYMENT_VARIANT: 'mp-2021-01'
DEFAULT_TABLESPACE: ''
DISALLOWED_USER_AGENTS: []
EMAIL_BACKEND: 'anymail.backends.amazon_ses.EmailBackend'
EMAIL_HOST: 'localhost'
EMAIL_HOST_PASSWORD: '********'
EMAIL_HOST_USER: ''
EMAIL_PORT: 25
EMAIL_SSL_CERTFILE: None
EMAIL_SSL_KEYFILE: '********'
EMAIL_SUBJECT_PREFIX: '[Django] '
EMAIL_TIMEOUT: None
EMAIL_USE_LOCALTIME: False
EMAIL_USE_SSL: False
EMAIL_USE_TLS: False
FILE_UPLOAD_DIRECTORY_PERMISSIONS: None
FILE_UPLOAD_HANDLERS: ['django.core.files.uploadhandler.MemoryFileUploadHandler',
 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE: 2621440
FILE_UPLOAD_PERMISSIONS: 420
FILE_UPLOAD_TEMP_DIR: None
FIRST_DAY_OF_WEEK: 0
FIXTURE_DIRS: []
FORCE_SCRIPT_NAME: None
FORMAT_MODULE_PATH: None
FORM_RENDERER: 'django.forms.renderers.DjangoTemplates'
GOOGLE_MAPS_BE_KEY: '********'
GOOGLE_MAPS_FE_KEY: '********'
HCAPTCHA_KEY: '********'
HCAPTCHA_SECRET: '********'
IGNORABLE_404_URLS: []
INSTALLED_APPS: ['idf.core',
 'django.contrib.auth',
 'idf.auth',
 'idf.backoffice',
 'idf.admin',
 'idf.shipping',
 'idf.reports',
 'nested_admin',
 'django.contrib.admin',
 'django.contrib.admindocs',
 'django.contrib.contenttypes',
 'polymorphic',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.humanize',
 'django.contrib.gis',
 'ckeditor',
 'idf.coupons',
 'storages',
 'debug_toolbar',
 'django_afip',
 'django.contrib.postgres',
 'django_inlinecss',
 'rest_framework',
 'django_celery_beat',
 'django_celery_results',
 'idf.sync',
 'idf.imaging',
 'idf.api',
 'idf.tenants',
 'mptt',
 'payments',
 'anymail']
INTERNAL_IPS: []
LANGUAGES: [('es', 'Español'), ('pt', 'Portugués')]
LANGUAGES_BIDI: ['he', 'ar', 'ar-dz', 'fa', 'ur']
LANGUAGE_CODE: 'es-AR'
LANGUAGE_COOKIE_AGE: None
LANGUAGE_COOKIE_DOMAIN: None
LANGUAGE_COOKIE_HTTPONLY: False
LANGUAGE_COOKIE_NAME: 'django_language'
LANGUAGE_COOKIE_PATH: '/'
LANGUAGE_COOKIE_SAMESITE: None
LANGUAGE_COOKIE_SECURE: False
LOCALE_PATHS: [PosixPath('/app/idf/locale')]
LOGGING: {
    'disable_existing_loggers': False,
    'formatters': {   'production': {   '()': 'django.utils.log.ServerFormatter',
                                        'datefmt': '%F %H:%M:%S',
                                        'format': '[%(levelname)8s '
                                                  '%(asctime)s] '
                                                  '%(name)s:%(lineno)d  '
                                                  '%(message)s'}},
    'handlers': {   'console': {   'class': 'logging.StreamHandler',
                                   'formatter': 'production',
                                   'level': 'DEBUG',
                                   'stream': <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>},
                    'sentry': {   'class': 'sentry_sdk.integrations.logging.EventHandler',
                                  'level': 'WARNING'}},
    'loggers': {   '': {'handlers': ['console', 'sentry'], 'level': 'INFO'},
                   'botocore': {'level': 'INFO', 'propagate': False},
                   'daphne.http_protocol': {'level': 'INFO'},
                   'django.request': {   'handlers': ['console'],
                                         'level': 'INFO',
                                         'propagate': False},
                   'django.security.DisallowedHost': {   'handlers': [],
                                                         'propagate': False},
                   'idf': {'level': 'INFO', 'propagate': True},
                   'parso': {'level': 'INFO', 'propagate': False},
                   'payments': {'level': 'DEBUG', 'propagate': False},
                   'zeep': {'level': 'INFO', 'propagate': False}},
    'version': 1}
LOGGING_CONFIG: 'logging.config.dictConfig'
LOGIN_REDIRECT_URL: 'order_photoproducts'
LOGIN_URL: '/login'
LOGLEVEL: 'INFO'
LOGOUT_REDIRECT_URL: 'home'
MANAGERS: []
MEDIA_ROOT: '/unused/'
MEDIA_URL: '/unused/'
MESSAGE_STORAGE: 'django.contrib.messages.storage.fallback.FallbackStorage'
METABASE_PASSWORD: '********'
METABASE_REPORT_INVOICING: 17
METABASE_REPORT_INVOICING_TO: 'cla1703@hotmail.com'
METABASE_USERNAME: 'robot@barrera.io'
MIDDLEWARE: ['django.middleware.security.SecurityMiddleware',
 'idf.tenants.middleware.tenant_middleware',
 'debug_toolbar.middleware.DebugToolbarMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']
MIGRATION_MODULES: {
 }
MONTH_DAY_FORMAT: 'F j'
NUMBER_GROUPING: 0
PASSWORD_HASHERS: '********'
PASSWORD_RESET_TIMEOUT: '********'
PASSWORD_RESET_TIMEOUT_DAYS: '********'
PAYMENT_HOST: <function get_payment_host at 0x7fae824f7f70>
PAYMENT_MODEL: 'idf.Payment'
PAYMENT_USES_SSL: True
PAYMENT_VARIANTS: {
    'dummy': ('payments.dummy.DummyProvider', {}),
    'mercadopago': (   'payments.mercadopago.MercadoPagoProvider',
                       {   'client_id': 'REDACTED',
                           'sandbox': False,
                           'secret_key': 'REDACTED'}),
    'mp-2021-01': (   'payments.mercadopago.MercadoPagoProvider',
                      {   'client_id': 'REDACTED',
                          'sandbox': False,
                          'secret_key': 'REDACTED'})}
PHONENUMBER_DEFAULT_FORMAT: 'NATIONAL'
PHONENUMBER_DEFAULT_REGION: 'AR'
PREPEND_WWW: False
REST_FRAMEWORK: {
    'COERCE_DECIMAL_TO_STRING': False,
    'DEFAULT_PARSER_CLASSES': [   'djangorestframework_camel_case.parser.CamelCaseJSONParser'],
    'DEFAULT_RENDERER_CLASSES': [   'djangorestframework_camel_case.render.CamelCaseJSONRenderer']}
ROOT_URLCONF: 'idf.urls'
SECRET_KEY: '********'
SECURE_BROWSER_XSS_FILTER: False
SECURE_CONTENT_TYPE_NOSNIFF: True
SECURE_HSTS_INCLUDE_SUBDOMAINS: True
SECURE_HSTS_PRELOAD: True
SECURE_HSTS_SECONDS: 63072000
SECURE_PROXY_SSL_HEADER:
    ('HTTP_X_FORWARDED_PROTO', 'https')
SECURE_REDIRECT_EXEMPT: []
SECURE_REFERRER_POLICY: 'strict-origin-when-cross-origin'
SECURE_SSL_HOST: None
SECURE_SSL_REDIRECT: True
SERVER_EMAIL: None
SESSION_CACHE_ALIAS: 'default'
SESSION_COOKIE_AGE: 1209600
SESSION_COOKIE_DOMAIN: None
SESSION_COOKIE_HTTPONLY: True
SESSION_COOKIE_NAME: 'sessionid'
SESSION_COOKIE_PATH: '/'
SESSION_COOKIE_SAMESITE: 'Lax'
SESSION_COOKIE_SECURE: True
SESSION_ENGINE: 'django.contrib.sessions.backends.cached_db'
SESSION_EXPIRE_AT_BROWSER_CLOSE: False
SESSION_FILE_PATH: None
SESSION_SAVE_EVERY_REQUEST: False
SESSION_SERIALIZER: 'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE: 'idf.settings'
SHARED_STATIC_BUCKET: 'REDACTED'
SHORT_DATETIME_FORMAT: 'm/d/Y P'
SHORT_DATE_FORMAT: 'm/d/Y'
SIGNING_BACKEND: 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS: []
SMART_OPEN_PARAMS: {
 }
STATICFILES_DIRS: [PosixPath('/app/dists')]
STATICFILES_FINDERS: ['django.contrib.staticfiles.finders.FileSystemFinder',
 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATICFILES_STORAGE: 'idf.tenants.storage.TenantCompressedManifestStaticFilesStorage'
STATIC_ROOT: '/static/'
STATIC_URL: 'REDACTED'
SYNC_SHARED_KEY: '********'
TEMPLATES: [{'APP_DIRS': True,
  'BACKEND': 'django.template.backends.django.DjangoTemplates',
  'DIRS': [],
  'OPTIONS': {'context_processors': ['django.template.context_processors.debug',
                                     'django.template.context_processors.request',
                                     'django.contrib.auth.context_processors.auth',
                                     'django.contrib.messages.context_processors.messages',
                                     'idf.tenants.context_processors.current_tenant',
                                     'idf.core.context_processors.site_settings']}}]
TENANT_SLUG: 'ideasenfoto'
TEST_NON_SERIALIZED_APPS: []
TEST_RUNNER: 'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR: ','
THUMBNAIL_PRESERVE_FORMAT: True
THUMBNAIL_STORAGE: 'idf.core.storage.ThumbnailStorage'
TIME_FORMAT: 'P'
TIME_INPUT_FORMATS: ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE: 'America/Argentina/Buenos_Aires'
USE_I18N: True
USE_L10N: True
USE_THOUSAND_SEPARATOR: False
USE_TZ: True
USE_X_FORWARDED_HOST: False
USE_X_FORWARDED_PORT: False
WSGI_APPLICATION: None
X_FRAME_OPTIONS: 'DENY'
YEAR_MONTH_FORMAT: 'F Y'
is_overridden: <bound method Settings.is_overridden of <Settings "idf.settings">>
deprecated_settings: None
# pip freeze
amqp @ file:///root/.cache/pypoetry/artifacts/72/6e/84/18921e50b7eb7b34efdb9c6765d1d2817f60581a44749d3736ae544d91/amqp-5.0.6-py3-none-any.whl
apipkg @ file:///root/.cache/pypoetry/artifacts/13/fc/53/967af631312743f352f949e679e730462d2a54a8507c2ad5c0ba019474/apipkg-1.5-py2.py3-none-any.whl
appdirs==1.4.4
asgiref @ file:///root/.cache/pypoetry/artifacts/fe/db/83/0ae447caa7129971ac3189887098d047d0257c23b979d0f76c93496c95/asgiref-3.3.4-py3-none-any.whl
attrs @ file:///root/.cache/pypoetry/artifacts/f9/48/82/553e4bef24d3b294c0c18f27a7853f3ed151508efd144cb7ea37db1c48/attrs-20.3.0-py2.py3-none-any.whl
autobahn @ file:///root/.cache/pypoetry/artifacts/70/0a/4b/6ea27fca7918aaa8316eca5d83f3a5b38f2c353b06183bdd57435790d9/autobahn-21.3.1-py2.py3-none-any.whl
Automat @ file:///root/.cache/pypoetry/artifacts/b8/e5/0e/e86ac85851dbf0701b64dc7a0c07c823d0194d7e31a24f1ba60bed622d/Automat-20.2.0-py2.py3-none-any.whl
backcall @ file:///root/.cache/pypoetry/artifacts/43/8e/e8/4e598704edf6fb4a53d552ea511c04e9958dcf850897760e5387878b99/backcall-0.2.0-py2.py3-none-any.whl
beautifulsoup4 @ file:///root/.cache/pypoetry/artifacts/eb/47/47/287c1b8a386f9437d562f9221ae959756bc5bbfcd541c38c17968dfe8a/beautifulsoup4-4.9.3-py3-none-any.whl
billiard @ file:///root/.cache/pypoetry/artifacts/cf/59/06/55d38419b5aa6e1fe731cb9d5dfdc4fa930000cc089eb421e3d039cfc2/billiard-3.6.4.0-py3-none-any.whl
bizdays @ file:///root/.cache/pypoetry/artifacts/fc/75/36/4ee722d24370761ac5c3c84c4f1d0416bd24fa3695dc92a996079b73c1/bizdays-v0.2.0.tar.gz
boto3 @ file:///root/.cache/pypoetry/artifacts/12/28/b8/31bcea6379c379d6c0b7bf98155e4b08d10494368ec7a4c64b5d403165/boto3-1.17.47-py2.py3-none-any.whl
botocore @ file:///root/.cache/pypoetry/artifacts/b2/5c/e8/c5e4e20ea7e9c371a5a6c4662d199057f83d59486d6e7bf70c1d298081/botocore-1.20.47-py2.py3-none-any.whl
braintree @ file:///root/.cache/pypoetry/artifacts/9a/a4/99/223fa7d517b9773ff792ffd8ad32994510f934fcd80f44aba7c33e2630/braintree-4.7.0-py2.py3-none-any.whl
CacheControl==0.12.6
cached-property @ file:///root/.cache/pypoetry/artifacts/03/bc/71/56723502ccaa278f07ed24344213573b812635f7b710a681b94d321c44/cached_property-1.5.2-py2.py3-none-any.whl
cachy==0.3.0
cairocffi @ file:///root/.cache/pypoetry/artifacts/9b/e7/59/840a1ab926373e13b5f1dee5c75a380295cc92161e41818ba16b2dbaba/cairocffi-1.2.0.tar.gz
CairoSVG @ file:///root/.cache/pypoetry/artifacts/b1/70/90/db8930031c903614ebb319bc3d482e2b1f142f1b0458cef2783ac1a43b/CairoSVG-2.5.2-py3-none-any.whl
celery @ file:///root/.cache/pypoetry/artifacts/c0/95/27/4b2e4c2c9f1b23c14155fe1fba032ea571c259113926196f7e4def7d8e/celery-5.0.5-py3-none-any.whl
certifi==2020.12.5
cffi==1.14.5
chardet==4.0.0
cleo==0.8.1
click @ file:///root/.cache/pypoetry/artifacts/e2/79/34/a23e9d2f683ed66be11ec3bd760dec3a2fe228cfdedf2071bcf0531b06/click-7.1.2-py2.py3-none-any.whl
click-didyoumean @ file:///root/.cache/pypoetry/artifacts/6f/a6/29/c6b65bb6685981f0b0659c7be6e9a9b8f9c26b6b3b4134214a91fbc354/click-didyoumean-0.0.3.tar.gz
click-plugins @ file:///root/.cache/pypoetry/artifacts/87/75/c3/fb63a9b9f496004a8bf69eb791be6e419ca0cd59f1d7e250a1bd8322e3/click_plugins-1.1.1-py2.py3-none-any.whl
click-repl @ file:///root/.cache/pypoetry/artifacts/4b/93/46/86c3492a99ddf4ebf1413182576080e75103f5a6c4b30c75868062f114/click_repl-0.1.6-py3-none-any.whl
clikit==0.6.2
constantly @ file:///root/.cache/pypoetry/artifacts/b1/88/48/9251c310b06614794944e121657b60bba5de1686d8c2dfeb79f6f80ad0/constantly-15.1.0-py2.py3-none-any.whl
coverage @ file:///root/.cache/pypoetry/artifacts/2b/40/c4/6d4f333f20c8fe59c1248df160e1a76224b652ed2e41a842b6a22579a1/coverage-5.5-cp39-cp39-manylinux2010_x86_64.whl
crashtest==0.3.1
cryptography==3.4.7
cssselect2 @ file:///root/.cache/pypoetry/artifacts/3b/f1/c1/a6ac7c73137f58ea26713f2a04685dcb719b1993aadfb8e813d2e999e9/cssselect2-0.4.1-py3-none-any.whl
cssutils @ file:///root/.cache/pypoetry/artifacts/68/c2/e6/d061e400f87adc4e96efcc69361032734a903e8ff8eca2c0182e4838e1/cssutils-2.2.0-py3-none-any.whl
daphne @ file:///root/.cache/pypoetry/artifacts/31/da/f5/87c148f67573404dad7fcd2c73264a32e1ef99902c3750d8f9473eb69a/daphne-3.0.2-py3-none-any.whl
decorator @ file:///root/.cache/pypoetry/artifacts/10/9f/09/a4bdb3633e61b7686376fad9ac06a4584a6095c3e9347f841f6f4866ac/decorator-5.0.6-py3-none-any.whl
defusedxml @ file:///root/.cache/pypoetry/artifacts/2b/69/07/7b13f7eaf3a4d7af737dcebe24d3d17b1c2a2f457fbddf746f5642bc43/defusedxml-0.7.1-py2.py3-none-any.whl
distlib==0.3.1
Django @ file:///root/.cache/pypoetry/artifacts/9d/26/2f/216c4dc01973dbd02e657dcc8fb516fd04c74bce15273f805ac38df32b/Django-3.1.8-py3-none-any.whl
django-afip @ file:///root/.cache/pypoetry/artifacts/6f/74/9e/cc82779d5255431c73af9850c33b68e285534a65256bcfa127bdcdc98d/django_afip-8.0.4-py3-none-any.whl
django-anymail @ file:///root/.cache/pypoetry/artifacts/f2/76/eb/11ed11565817e1b1a0561bc38699ec7d69229b7f448e8ecb3c7d22f8f5/django_anymail-8.2-py3-none-any.whl
django-celery-beat @ file:///root/.cache/pypoetry/artifacts/61/2d/d4/e440d7a4fdfa5722ab7b4a615cc4fe272ab579cb8ae42fb8aba2ec6198/django_celery_beat-2.2.0-py2.py3-none-any.whl
django-celery-results @ file:///root/.cache/pypoetry/artifacts/35/97/b8/6662b0190d3bbd6c8fb2b03e894d4c24f6923080b0554e8aadc4a25020/django_celery_results-2.0.1-py2.py3-none-any.whl
django-ckeditor @ file:///root/.cache/pypoetry/artifacts/71/6b/ff/161e183b25f8fd2bef886b709d80ebbd08f8a35093b07653d8a792580c/django_ckeditor-6.0.0-py2.py3-none-any.whl
django-debug-toolbar @ file:///root/.cache/pypoetry/artifacts/d0/a5/5b/7822a0441e12b10f471ca7cdc0211b757689a64bafc2599c56fb91938d/django_debug_toolbar-3.2-py3-none-any.whl
django-environ @ file:///root/.cache/pypoetry/artifacts/87/d0/e4/2e59fd1e2526f0f52d73260ba0356904cb9c2bcd82299d5a3f88b3e341/django_environ-0.4.5-py2.py3-none-any.whl
django-inlinecss @ file:///root/.cache/pypoetry/artifacts/06/8d/53/35e22d65bf3a619f4083e4c4da3fe5b4b9cf68b15b5eeb2a457de0c274/django_inlinecss-0.3.0-py2.py3-none-any.whl
django-js-asset @ file:///root/.cache/pypoetry/artifacts/00/7c/b4/e3ecaf08b9600fd79e9d915c0d908b307b9ce8de512033d71731d19cbc/django_js_asset-1.2.2-py2.py3-none-any.whl
django-mptt @ file:///root/.cache/pypoetry/artifacts/16/e2/f5/030e10306975845927f7017981d13488825e9fbb412382b135b67c9f34/django_mptt-0.11.0-py2.py3-none-any.whl
django-nested-admin @ file:///root/.cache/pypoetry/artifacts/9c/ac/15/d6e2df1a31241ee4fa62c8881c45758102a82d0a0ee3e12b68a613a519/django_nested_admin-3.3.3-py2.py3-none-any.whl
django-payments @ file:///usr/local/src/django-payments
django-phonenumber-field @ file:///root/.cache/pypoetry/artifacts/84/c0/ef/6c88acad4679954d058041f4c9fbc45f379174d809bc7a7424f736e985/django_phonenumber_field-5.0.0-py3-none-any.whl
django-polymorphic @ file:///root/.cache/pypoetry/artifacts/72/c4/da/44288d0ec6fcb84c7db65392ec5b74bc48a13b00fae3711285641927c1/django_polymorphic-3.0.0-py2.py3-none-any.whl
django-renderpdf @ file:///root/.cache/pypoetry/artifacts/e4/d6/da/1206131d31339bd5efb2f7f3b557fb2fd8ea8f3ba418544e13676e826d/django_renderpdf-3.0.1-py3-none-any.whl
django-storages @ file:///root/.cache/pypoetry/artifacts/89/83/74/c80df44394fab8a93c9ac5dd5cf13a0919338371966b7eb9f9fde59eb3/django_storages-1.11.1-py3-none-any.whl
django-timezone-field @ file:///root/.cache/pypoetry/artifacts/65/7b/6e/da2cf86521fcd79d50e70e6951f0fc3b2949c348cbd6b93e61f112d085/django_timezone_field-4.1.2-py3-none-any.whl
djangorestframework @ file:///root/.cache/pypoetry/artifacts/e1/57/21/bfde361af294b9c9cd77dcab0182e58c2938fcee29a4e5724ef4fed0e0/djangorestframework-3.12.4-py3-none-any.whl
djangorestframework-camel-case @ file:///root/.cache/pypoetry/artifacts/1e/71/e2/ac96cb599da930dc0f72de424d5bb0a6d9422ed762a1bbf7514a163ee1/djangorestframework-camel-case-1.2.0.tar.gz
execnet @ file:///root/.cache/pypoetry/artifacts/17/3d/b7/3b43fe56229a02c5da130d68f83ec13187cacc6eb6d8a3c0113d0af42a/execnet-1.8.0-py2.py3-none-any.whl
factory-boy @ file:///root/.cache/pypoetry/artifacts/0f/68/21/16550a9aac819bbcb23377767f080adcca679a9b7879d98208ee4d98ba/factory_boy-3.2.0-py2.py3-none-any.whl
Faker @ file:///root/.cache/pypoetry/artifacts/b6/ba/3c/03a31564a0b1562b10ad941f79ff5cb77466df408c37c0fed05723e694/Faker-8.0.0-py3-none-any.whl
filelock==3.0.12
freezegun @ file:///root/.cache/pypoetry/artifacts/62/61/fd/3ed04843b90b98c3ede876f9ab19f1f59c447bf14ef0fa05f25b24d375/freezegun-1.1.0-py2.py3-none-any.whl
future @ file:///root/.cache/pypoetry/artifacts/f8/58/55/86be1f567b212fdd98854d12815964a49db8fb1bcff725018e5f95c61d/future-0.18.2.tar.gz
googlemaps @ file:///root/.cache/pypoetry/artifacts/1c/81/bd/49014501593e7a090fc7004899c2f327bcd87872ffb1a280dd7a31eb20/googlemaps-4.4.5.tar.gz
html5lib==1.1
hyperlink @ file:///root/.cache/pypoetry/artifacts/ac/c9/85/b172f5d08e937f31bc0feffe4e2ff08bef15ff1e4d382616b9f7b174b0/hyperlink-21.0.0-py2.py3-none-any.whl
idna==2.10
incremental @ file:///root/.cache/pypoetry/artifacts/03/0f/d8/1f9c21de086b17b28e0ed5914f384759067c88a524742b94e72eb07020/incremental-21.3.0-py2.py3-none-any.whl
iniconfig @ file:///root/.cache/pypoetry/artifacts/fa/b0/c6/10cfac68c9e6de9d2a1678366ca89fd9292b362c1760dbe758e41691cb/iniconfig-1.1.1-py2.py3-none-any.whl
ipdb @ file:///root/.cache/pypoetry/artifacts/3b/42/c4/22062c17dd09ecc6c73a79fb0fbe565f84d5b99a397e46dc1892d59b5c/ipdb-0.13.7.tar.gz
ipython @ file:///root/.cache/pypoetry/artifacts/dd/00/68/917177c0013b8435d89c08e54ff6fa79da400ccae29d02869e767577af/ipython-7.22.0-py3-none-any.whl
ipython-genutils @ file:///root/.cache/pypoetry/artifacts/b4/31/01/6f96480580d1674cab0b5e26dc9fca7bbdf7a2fd5811a7807a92436268/ipython_genutils-0.2.0-py2.py3-none-any.whl
isodate @ file:///root/.cache/pypoetry/artifacts/95/34/e8/bf99fab064e9305ca4f58f1804b8d30e544c06bcabed2658efd6783191/isodate-0.6.0-py2.py3-none-any.whl
jedi @ file:///root/.cache/pypoetry/artifacts/2a/5b/d6/62e1f4e7b392c3e7f8258bbe3159dff695814a46e65547cd547ca0fedb/jedi-0.18.0-py2.py3-none-any.whl
jeepney==0.6.0
jmespath @ file:///root/.cache/pypoetry/artifacts/2c/f0/52/b0ba93d941bd49c8719dee7ca27d2096bf96e17948667388c3ee2ac8f8/jmespath-0.10.0-py2.py3-none-any.whl
keyring==21.8.0
kombu @ file:///root/.cache/pypoetry/artifacts/21/e3/6f/744c2c76812870b87739cc2016688ee580045178303a0c98d3a9584961/kombu-5.0.2-py2.py3-none-any.whl
lockfile==0.12.2
lxml @ file:///root/.cache/pypoetry/artifacts/12/66/39/c2178320cc3a053e4f814dcdf209a7cfc68072b6e1475b046612f858cf/lxml-4.6.3-cp39-cp39-manylinux1_x86_64.whl
mercadopago @ file:///root/.cache/pypoetry/artifacts/12/f2/24/2215335f39a61cd5c693b66e9bbcbd563d07c917adb6841dcb13a5039f/mercadopago-0.3.5-py3-none-any.whl
msgpack==1.0.2
numpy @ file:///root/.cache/pypoetry/artifacts/9d/32/9e/7fd76f644e7204ce351b27fad6b59b2b1dffc41d5f622150ff5a9ad648/numpy-1.20.2-cp39-cp39-manylinux2010_x86_64.whl
ocaclient @ file:///root/.cache/pypoetry/artifacts/f4/4d/57/ee0e695e29cff8d1bb964b669e96de928669fd702aaf40fcd3397f1dc9/ocaclient-0.6.2-py3-none-any.whl
packaging==20.9
parso @ file:///root/.cache/pypoetry/artifacts/36/cd/ab/a8c3a5df337bc6f34a10f3f385417b62cdfebe2873ac2fec38206af0db/parso-0.8.2-py2.py3-none-any.whl
pastel==0.2.1
pexpect==4.8.0
phonenumberslite @ file:///root/.cache/pypoetry/artifacts/93/69/d0/f567209e80197b8f8a69f30a9655c0ae70cb6764e5bf9c5ea6358f5251/phonenumberslite-8.12.21-py2.py3-none-any.whl
pickleshare @ file:///root/.cache/pypoetry/artifacts/b5/48/a1/d2b823337003d531d87cf0d503ef28bb579703a74d14ad24a88863d616/pickleshare-0.7.5-py2.py3-none-any.whl
Pillow @ file:///root/.cache/pypoetry/artifacts/af/01/9e/9e59a2244e85a37841afdb59a3dc7feb5f6d414d71e255a4d8b25c063d/Pillow-8.2.0-cp39-cp39-manylinux1_x86_64.whl
pkginfo==1.7.0
pluggy @ file:///root/.cache/pypoetry/artifacts/29/58/fc/ed8b7451d3ef91a6465024f5656141da996e7aafd4d41a1659629a75e7/pluggy-0.13.1-py2.py3-none-any.whl
poetry==1.1.5
poetry-core==1.0.3
prompt-toolkit @ file:///root/.cache/pypoetry/artifacts/c6/94/f6/50383688495b2b2e58070767b4598041dacedf95cdf297db12a84a94e1/prompt_toolkit-3.0.18-py3-none-any.whl
psutil @ file:///root/.cache/pypoetry/artifacts/06/3a/4a/5e88d8f14e18b10c222f81667132086849930f068d68d064ceb8a87834/psutil-5.8.0-cp39-cp39-manylinux2010_x86_64.whl
psycopg2 @ file:///root/.cache/pypoetry/artifacts/17/48/39/0a22843b92eebf150b78e586ba20dc44a9804b43a94b8b99102d2fccf5/psycopg2-2.8.6.tar.gz
ptyprocess==0.7.0
py @ file:///root/.cache/pypoetry/artifacts/60/79/0b/c48bd9c2a989aa8b1eb7a67cd02b053c10734f2e4e5665f7995f09999c/py-1.10.0-py2.py3-none-any.whl
pyasn1 @ file:///root/.cache/pypoetry/artifacts/7b/3a/54/42ce43b579bda01b9d79022fb733811594441e7a32e9f9a5a98f672bdc/pyasn1-0.4.8-py2.py3-none-any.whl
pyasn1-modules @ file:///root/.cache/pypoetry/artifacts/dd/b8/4f/b56433e0354274a31074995e01b8671751e9f0ed0001f5254e5b03a54f/pyasn1_modules-0.2.8-py2.py3-none-any.whl
pycparser==2.20
pycurl @ file:///root/.cache/pypoetry/artifacts/75/24/73/0033ca38332d0b17f5d34d9fdeeecfb846e496898bc2003917c69e1ff4/pycurl-7.43.0.5.tar.gz
Pygments @ file:///root/.cache/pypoetry/artifacts/bf/63/90/6f6342dd06f01126b4c490f6da1ddcbcc30899480e797b1e6bb21fc8b7/Pygments-2.8.1-py3-none-any.whl
PyJWT @ file:///root/.cache/pypoetry/artifacts/73/c0/4c/194d7fba4fd22ace86260631f33d584545560e0da39981058013f8ac7e/PyJWT-1.7.1-py2.py3-none-any.whl
pylev==1.3.0
pynliner @ file:///root/.cache/pypoetry/artifacts/5e/50/1e/07bcdafde50075738b63371f9d276518384bf727900208fd517c89dd7d/pynliner-0.8.0-py2.py3-none-any.whl
pyOpenSSL @ file:///root/.cache/pypoetry/artifacts/27/2a/6f/de8129dc1f8ba5d04f604e929a7f055c4ca7c08ceec8bf801182df8774/pyOpenSSL-20.0.1-py2.py3-none-any.whl
pyparsing==2.4.7
Pyphen @ file:///root/.cache/pypoetry/artifacts/ab/83/29/94af44f88717af270c747ff9e10bf4e5280282947c7a6a45ac95e3c50f/Pyphen-0.10.0-py3-none-any.whl
pytest @ file:///root/.cache/pypoetry/artifacts/b5/01/76/607703f1e6c5c0cf81078487e1866611130dc929a0ac952d80084ddf33/pytest-6.2.3-py3-none-any.whl
pytest-cov @ file:///root/.cache/pypoetry/artifacts/c2/87/fe/0f7becb86948f177058941f4469ac3c20b8c2bddab5e8a11800146c8d9/pytest_cov-2.11.1-py2.py3-none-any.whl
pytest-django @ file:///root/.cache/pypoetry/artifacts/7d/c9/ef/fa82061e5a4c06e848bef8a5b9b943b1b7fba0e3d938cfa173e9e0af9a/pytest_django-3.10.0-py2.py3-none-any.whl
pytest-env @ file:///root/.cache/pypoetry/artifacts/bb/f5/38/866d79fc6128d49dd20272ab1d44cea2633d47de702bdfbe7c04f75c80/pytest-env-0.6.2.tar.gz
pytest-forked @ file:///root/.cache/pypoetry/artifacts/4b/87/a5/881bc6a03d8050d3fb179ff3455a26327ee3f517b58cf5279b03dff9c8/pytest_forked-1.3.0-py2.py3-none-any.whl
pytest-xdist @ file:///root/.cache/pypoetry/artifacts/08/14/84/77b32ff67deacb3f6153d6105648b45afe9ffd453638318dfe8ebb53d9/pytest_xdist-2.2.1-py3-none-any.whl
python-barcode @ file:///root/.cache/pypoetry/artifacts/53/d8/ef/3017d63bae87343e77df6e015fc2f24d5bf60fab2d70e996b4eea33fdf/python_barcode-0.13.1-py3-none-any.whl
python-crontab @ file:///root/.cache/pypoetry/artifacts/63/b6/4e/55c427418b5a83c655e55fea6a191e196a582aa951ae31a197cd8b7c56/python-crontab-2.5.1.tar.gz
python-dateutil @ file:///root/.cache/pypoetry/artifacts/93/67/cf/49f56d9e954addcfc50e5ffc9faee013c2eb00c6d77d56c6a22cb33b54/python_dateutil-2.8.1-py2.py3-none-any.whl
python-memcached @ file:///root/.cache/pypoetry/artifacts/40/d9/16/8c35eb6ef6e7dd42ad683bb992324070c09a39eec4eba2d1072e62bf34/python_memcached-1.59-py2.py3-none-any.whl
python-monkey-business @ file:///root/.cache/pypoetry/artifacts/cb/98/08/bbed363833a071b071a57ff40ede97e049f48ac79679c2a422cc7550e2/python_monkey_business-1.0.0-py2.py3-none-any.whl
pytz @ file:///root/.cache/pypoetry/artifacts/b0/a7/8d/54de3ab4d1ff29abbbca1e9ccbaefdc2a1b290138311b84f73bee16de1/pytz-2021.1-py2.py3-none-any.whl
PyYAML @ file:///root/.cache/pypoetry/artifacts/dd/d9/3d/cbc42de28fcde705eb305497d2f3e5679ca7890234c51348b33c0f428f/PyYAML-5.4.1-cp39-cp39-manylinux1_x86_64.whl
qrcode @ file:///root/.cache/pypoetry/artifacts/fe/96/8e/fa0891b8e94eee56cefae7348d5a5ee8d0f6b4cec83ba4faf786d9c4f7/qrcode-6.1-py2.py3-none-any.whl
requests==2.25.1
requests-toolbelt==0.9.1
s3transfer @ file:///root/.cache/pypoetry/artifacts/26/79/46/ab118883797af43637ae5c2a15ef3eec40fc2639eeffdd5d0fa3ea4e65/s3transfer-0.3.6-py2.py3-none-any.whl
SecretStorage==3.3.1
sentry-sdk @ file:///root/.cache/pypoetry/artifacts/6c/dd/43/684b5495cb8b80e690226edb2486ae270c4f6e15daa091720a28e9bac0/sentry_sdk-1.0.0-py2.py3-none-any.whl
service-identity @ file:///root/.cache/pypoetry/artifacts/67/02/14/0c7d05a9b1dc41fce405635789f0c6297296db08d72b8370a9b6027cdf/service_identity-18.1.0-py2.py3-none-any.whl
setuptools-git @ file:///root/.cache/pypoetry/artifacts/22/d2/59/c3b69ad2782c3dbe6e2b65386c207bd85ed382ce3c1c186756af7bdabb/setuptools_git-1.2-py2.py3-none-any.whl
setuptools-scm @ file:///root/.cache/pypoetry/artifacts/db/ec/2b/19563791bfe38cb424fe2abd37cf98792e13f07be9671d117df85262c8/setuptools_scm-6.0.1-py3-none-any.whl
shellingham==1.4.0
six==1.15.0
smart-open @ file:///root/.cache/pypoetry/artifacts/26/12/16/c305f62c1fe6a04a24422cebd6087658edf8c3ac26f930c4f17579a362/smart_open-5.0.0-py3-none-any.whl
soupsieve @ file:///root/.cache/pypoetry/artifacts/20/16/55/4a9893b172bb2a7815f46f6a947ff3506dd241ea679377ffdc0b2c811e/soupsieve-2.2.1-py3-none-any.whl
sqlparse @ file:///root/.cache/pypoetry/artifacts/bc/af/02/8aa71b17fd39b26b858293918c5c6412f83768a0bfd0a4626f660aa5f8/sqlparse-0.4.1-py3-none-any.whl
stripe @ file:///root/.cache/pypoetry/artifacts/85/6c/11/d51c2cd257d62f88bd001c8d0e44158352b45bbd41711e5eb70ef923a1/stripe-2.56.0-py2.py3-none-any.whl
suds-jurko @ file:///root/.cache/pypoetry/artifacts/a1/3a/ca/4cb96176d922bcef591bfe698c333a43a7173cf8a665798cd3a2614ec5/suds-jurko-0.6.tar.bz2
text-unidecode @ file:///root/.cache/pypoetry/artifacts/34/f9/c2/484c44b08bab89d472229bbd257fcc1d1c6273ee027f01cb08c4e3c309/text_unidecode-1.3-py2.py3-none-any.whl
tinycss2 @ file:///root/.cache/pypoetry/artifacts/c2/45/e7/cb1efbcbe5e0b559ea8830a9a6192effef97b1aa61bffa368b7ae3edb9/tinycss2-1.1.0-py3-none-any.whl
toml @ file:///root/.cache/pypoetry/artifacts/6b/6a/c9/53b19f7870a77d855e8b05ecdc98193944e5d246dafe11bbcad850ecba/toml-0.10.2-py2.py3-none-any.whl
tomlkit==0.7.0
traitlets @ file:///root/.cache/pypoetry/artifacts/f3/6b/36/998ab52c38eb1c4820cdef1e66043ddebb64e04535f88dbfd04486ce03/traitlets-5.0.5-py3-none-any.whl
Twisted @ file:///root/.cache/pypoetry/artifacts/cc/3b/2b/b4192be52547cd6d0e76e1e41e5c7056c938cad39787425afd7ca85d5e/Twisted-21.2.0-py3-none-any.whl
txaio @ file:///root/.cache/pypoetry/artifacts/fa/08/32/c860d7ebf60bd51dfd8454092f6b968fd7ad9145276e7c651b6c7e088b/txaio-21.2.1-py2.py3-none-any.whl
uritemplate @ file:///root/.cache/pypoetry/artifacts/95/7b/ae/f3ee1696bf115374775b31c48531d952fcc816dad7f439a663e5c8b357/uritemplate-3.0.1-py2.py3-none-any.whl
urllib3==1.26.4
vine @ file:///root/.cache/pypoetry/artifacts/c1/80/fc/ccb677b19dd37eb7ad77b94745e563b67472b45dbcfb34e75a6110f12f/vine-5.0.0-py2.py3-none-any.whl
virtualenv==20.4.3
wcwidth @ file:///root/.cache/pypoetry/artifacts/7d/f4/60/0737157bb9711fec72c70dff523aa54491eef317e0d586cf5388ff0908/wcwidth-0.2.5-py2.py3-none-any.whl
WeasyPrint @ file:///root/.cache/pypoetry/artifacts/2b/c2/76/23d71fa3c7f85fce9f3b22fc249841e6b37ec201b17bf197cc07a62653/WeasyPrint-52.4-py3-none-any.whl
webencodings==0.5.1
xmltodict @ file:///root/.cache/pypoetry/artifacts/f9/75/d8/1eb7ae0144a737ba8e5ffd2ecd983e38ca4a47f72ed4afec894d92b547/xmltodict-0.12.0-py2.py3-none-any.whl
zeep @ file:///root/.cache/pypoetry/artifacts/63/bc/c4/f005eaae857b7ac22c73be83b66eb78aac5586d183a55dde3ec01a5938/zeep-3.4.0-py2.py3-none-any.whl
zope.interface @ file:///root/.cache/pypoetry/artifacts/a3/e4/58/22da60cbeaa4d08c30d95938bed5335265f67d153e3f1729375b6629ce/zope.interface-5.3.0-cp39-cp39-manylinux2010_x86_64.whl
  • I have included the output of celery -A proj report in the issue.
    (if you are not able to do this, then at least specify the Celery
    version affected).
  • I have verified that the issue exists against the master branch of Celery.
  • I have included the contents of pip freeze in the issue.
  • I have included all the versions of all the external dependencies required
    to reproduce this bug.

Optional Debugging Information

  • I have tried reproducing the issue on more than one Python version
    and/or implementation.
  • I have tried reproducing the issue on more than one message broker and/or
    result backend.
  • I have tried reproducing the issue on more than one version of the message
    broker and/or result backend. Note: it only happens on SQS
  • I have tried reproducing the issue on more than one operating system.
  • I have tried reproducing the issue on more than one workers pool.
  • I have tried reproducing the issue with autoscaling, retries,
    ETA/Countdown & rate limits disabled.
  • I have tried reproducing the issue after downgrading
    and/or upgrading Celery and its dependencies. Note: note sure how far back I should retest

Related Issues and Possible Duplicates

Couldn't find any directly related.

Related Issues

Couldn't find any directly related.

Possible Duplicates

Couldn't find any directly related.

Environment & Settings

Celery version: 5.0.5 (singularity)

celery report Output:

# celery -A idf.core report

software -> celery:5.0.5 (singularity) kombu:5.0.2 py:3.9.4
            billiard:3.6.4.0 sqs:N/A
platform -> system:Linux arch:64bit, ELF
            kernel version:4.14.225-169.362.amzn2.x86_64 imp:CPython
loader   -> celery.loaders.app.AppLoader
settings -> transport:sqs results:django-db

ABSOLUTE_URL_OVERRIDES: {
 }
ADMINS: []
AFIP_CERT_STORAGE: 'idf.core.storage.AfipPrivateStorage'
AFIP_KEY_STORAGE: '********'
AFIP_LOGO_STORAGE: 'idf.core.storage.AfipPrivateStorage'
AFIP_PDF_STORAGE: 'idf.core.storage.AfipPublicStorage'
ALLOWED_HOSTS: ['*']
ANYMAIL: {
    'DEBUG_API_REQUESTS': '********',
    'REQUESTS_TIMEOUT': 12,
    'WEBHOOK_SECRET': '********'}
APPEND_SLASH: True
ASGI_APPLICATION: 'idf.asgi.application'
AUTHENTICATION_BACKENDS: ['django.contrib.auth.backends.ModelBackend',
 'idf.auth.models.AuthTokenAuthBackend']
AUTH_PASSWORD_VALIDATORS: '********'
AUTH_USER_MODEL: 'idf_auth.User'
AWS_S3_FILE_OVERWRITE: False
AWS_S3_SECURE_URLS: True
BASE_DIR: PosixPath('/app')
CABA_ID: 1
CACHES: {
    'default': {   'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
                   'KEY_PREFIX': '********',
                   'LOCATION': 'REDACTED',
                   'OPTIONS': {}}}
CACHE_MIDDLEWARE_ALIAS: 'default'
CACHE_MIDDLEWARE_KEY_PREFIX: '********'
CACHE_MIDDLEWARE_SECONDS: 600
CELERY_ACCEPT_CONTENT: ['json', 'msgpack', 'yaml', 'pickle']
CELERY_BEAT_SCHEDULE: {
    'cancel-orders': {   'args': (),
                         'schedule': <crontab: 30 2 * * * (m/h/d/dM/MY)>,
                         'task': 'idf.core.tasks.cancel_orders'},
    'clear-sessions': {   'args': (),
                          'schedule': <crontab: 0 3 * * * (m/h/d/dM/MY)>,
                          'task': 'idf.core.tasks.clear_sessions'},
    'clear-stale-orders': {   'args': (),
                              'schedule': <crontab: 30 3 * * * (m/h/d/dM/MY)>,
                              'task': 'idf.core.tasks.clear_stale_orders'},
    'daily-report': {   'schedule': <crontab: 0 3 * * * (m/h/d/dM/MY)>,
                        'task': 'idf.reports.tasks.create_daily_report'},
    'delete-archives': {   'args': (),
                           'schedule': datetime.timedelta(seconds=1800),
                           'task': 'idf.sync.tasks.delete_old_archives'},
    'delete-empty-batches': {   'args': (),
                                'schedule': datetime.timedelta(seconds=600),
                                'task': 'idf.core.tasks.delete_empty_batches'},
    'generate-missing-archives': {   'args': (),
                                     'schedule': <crontab: 0 * * * * (m/h/d/dM/MY)>,
                                     'task': 'idf.sync.tasks.generate_missing_archives'},
    'me-shipping-statuses': {   'args': (),
                                'schedule': <crontab: 45 * * * * (m/h/d/dM/MY)>,
                                'task': 'idf.core.tasks.me.update_all_me_shipments'},
    'monthly-accounting-report': {   'args': (),
                                     'schedule': <crontab: 0 12 * 1 * (m/h/d/dM/MY)>,
                                     'task': 'idf.reports.tasks.send_monthly_accounting_report'},
    'oca-shipping-statuses': {   'args': (),
                                 'schedule': <crontab: 15 * * * * (m/h/d/dM/MY)>,
                                 'task': 'idf.core.tasks.oca.update_oca_shipment_status'},
    'orders-delivered': {   'args': (),
                            'schedule': <crontab: 0 5 * * * (m/h/d/dM/MY)>,
                            'task': 'idf.core.tasks.mark_delivered_orders'},
    'payment-reminders': {   'args': (),
                             'schedule': <crontab: 0 2 mon,wed,fri * * (m/h/d/dM/MY)>,
                             'task': 'idf.core.tasks.email_payment_reminders'},
    'send-missing-oca-batches': {   'args': (),
                                    'schedule': datetime.timedelta(seconds=600),
                                    'task': 'idf.core.tasks.oca.send_missing_oca_batches'},
    'update-admin-stats': {   'args': (),
                              'schedule': datetime.timedelta(seconds=180),
                              'task': 'idf.backoffice.tasks.update_stats'},
    'vacuum-db': {   'args': (),
                     'schedule': <crontab: 0 6 wednesday * * (m/h/d/dM/MY)>,
                     'task': 'idf.core.tasks.vacuum_db'}}
CELERY_BROKER_TRANSPORT_OPTIONS: {
    'predefined_queues': {   'celery': {   'url':
    'https://sqs.us-west-2.amazonaws.com/REDACTED/REDACTED'}},
    'visibility_timeout': 1200,
    'wait_time_seconds': 20}
CELERY_BROKER_URL: 'sqs://localhost//'
CELERY_CACHE_BACKEND: 'django-cache'
CELERY_RESULT_BACKEND: 'django-db'
CELERY_SEND_TASK_ERROR_EMAILS: True
CELERY_TASK_ACKS_LATE: True
CELERY_TASK_ROUTES: {
 '.*': 'celery'}
CELERY_TASK_SERIALIZER: 'pickle'
CELERY_WORKER_HIJACK_ROOT_LOGGER: False
CELERY_WORKER_MAX_MEMORY_PER_CHILD: 512000
CELERY_WORKER_MAX_TASKS_PER_CHILD: 4
CI: False
CSRF_COOKIE_AGE: 31449600
CSRF_COOKIE_DOMAIN: None
CSRF_COOKIE_HTTPONLY: False
CSRF_COOKIE_NAME: 'csrftoken'
CSRF_COOKIE_PATH: '/'
CSRF_COOKIE_SAMESITE: 'Lax'
CSRF_COOKIE_SECURE: True
CSRF_FAILURE_VIEW: 'idf.core.views.csrf_failure'
CSRF_HEADER_NAME: 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS: []
CSRF_USE_SESSIONS: False
DATABASES: {
    'default': {   'ATOMIC_REQUESTS': True,
                   'AUTOCOMMIT': True,
                   'CONN_MAX_AGE': 0,
                   'ENGINE': 'django.contrib.gis.db.backends.postgis',
                   'HOST': 'idfdb.ciwnxl3igajl.us-west-2.rds.amazonaws.com',
                   'NAME': 'ideasenfoto',
                   'OPTIONS': {},
                   'PASSWORD': '********',
                   'PORT': 5432,
                   'TEST': {   'CHARSET': None,
                               'COLLATION': None,
                               'MIGRATE': True,
                               'MIRROR': None,
                               'NAME': None},
                   'TIME_ZONE': None,
                   'USER': 'ideasenfoto'}}
DATABASE_ROUTERS: '********'
DATA_UPLOAD_MAX_MEMORY_SIZE: 2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS: 10000
DATETIME_FORMAT: 'N j, Y, P'
DATETIME_INPUT_FORMATS: ['%Y-%m-%d %H:%M:%S',
 '%Y-%m-%d %H:%M:%S.%f',
 '%Y-%m-%d %H:%M',
 '%m/%d/%Y %H:%M:%S',
 '%m/%d/%Y %H:%M:%S.%f',
 '%m/%d/%Y %H:%M',
 '%m/%d/%y %H:%M:%S',
 '%m/%d/%y %H:%M:%S.%f',
 '%m/%d/%y %H:%M']
DATE_FORMAT: 'N j, Y'
DATE_INPUT_FORMATS: ['%Y-%m-%d',
 '%m/%d/%Y',
 '%m/%d/%y',
 '%b %d %Y',
 '%b %d, %Y',
 '%d %b %Y',
 '%d %b, %Y',
 '%B %d %Y',
 '%B %d, %Y',
 '%d %B %Y',
 '%d %B, %Y']
DEBUG: False
DEBUG_PROPAGATE_EXCEPTIONS: False
DEBUG_TOOLBAR_CONFIG: {
 'SHOW_TOOLBAR_CALLBACK': <function show_toolbar at 0x7fae82303550>}
DECIMAL_SEPARATOR: '.'
DEFAULT_CHARSET: 'utf-8'
DEFAULT_EXCEPTION_REPORTER: 'django.views.debug.ExceptionReporter'
DEFAULT_EXCEPTION_REPORTER_FILTER: 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE: 'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL: None
DEFAULT_HASHING_ALGORITHM: 'sha256'
DEFAULT_INDEX_TABLESPACE: ''
DEFAULT_PAYMENT_VARIANT: 'mp-2021-01'
DEFAULT_TABLESPACE: ''
DISALLOWED_USER_AGENTS: []
EMAIL_BACKEND: 'anymail.backends.amazon_ses.EmailBackend'
EMAIL_HOST: 'localhost'
EMAIL_HOST_PASSWORD: '********'
EMAIL_HOST_USER: ''
EMAIL_PORT: 25
EMAIL_SSL_CERTFILE: None
EMAIL_SSL_KEYFILE: '********'
EMAIL_SUBJECT_PREFIX: '[Django] '
EMAIL_TIMEOUT: None
EMAIL_USE_LOCALTIME: False
EMAIL_USE_SSL: False
EMAIL_USE_TLS: False
FILE_UPLOAD_DIRECTORY_PERMISSIONS: None
FILE_UPLOAD_HANDLERS: ['django.core.files.uploadhandler.MemoryFileUploadHandler',
 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE: 2621440
FILE_UPLOAD_PERMISSIONS: 420
FILE_UPLOAD_TEMP_DIR: None
FIRST_DAY_OF_WEEK: 0
FIXTURE_DIRS: []
FORCE_SCRIPT_NAME: None
FORMAT_MODULE_PATH: None
FORM_RENDERER: 'django.forms.renderers.DjangoTemplates'
GOOGLE_MAPS_BE_KEY: '********'
GOOGLE_MAPS_FE_KEY: '********'
HCAPTCHA_KEY: '********'
HCAPTCHA_SECRET: '********'
IGNORABLE_404_URLS: []
INSTALLED_APPS: ['idf.core',
 'django.contrib.auth',
 'idf.auth',
 'idf.backoffice',
 'idf.admin',
 'idf.shipping',
 'idf.reports',
 'nested_admin',
 'django.contrib.admin',
 'django.contrib.admindocs',
 'django.contrib.contenttypes',
 'polymorphic',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.humanize',
 'django.contrib.gis',
 'ckeditor',
 'idf.coupons',
 'storages',
 'debug_toolbar',
 'django_afip',
 'django.contrib.postgres',
 'django_inlinecss',
 'rest_framework',
 'django_celery_beat',
 'django_celery_results',
 'idf.sync',
 'idf.imaging',
 'idf.api',
 'idf.tenants',
 'mptt',
 'payments',
 'anymail']
INTERNAL_IPS: []
LANGUAGES: [('es', 'Español'), ('pt', 'Portugués')]
LANGUAGES_BIDI: ['he', 'ar', 'ar-dz', 'fa', 'ur']
LANGUAGE_CODE: 'es-AR'
LANGUAGE_COOKIE_AGE: None
LANGUAGE_COOKIE_DOMAIN: None
LANGUAGE_COOKIE_HTTPONLY: False
LANGUAGE_COOKIE_NAME: 'django_language'
LANGUAGE_COOKIE_PATH: '/'
LANGUAGE_COOKIE_SAMESITE: None
LANGUAGE_COOKIE_SECURE: False
LOCALE_PATHS: [PosixPath('/app/idf/locale')]
LOGGING: {
    'disable_existing_loggers': False,
    'formatters': {   'production': {   '()': 'django.utils.log.ServerFormatter',
                                        'datefmt': '%F %H:%M:%S',
                                        'format': '[%(levelname)8s '
                                                  '%(asctime)s] '
                                                  '%(name)s:%(lineno)d  '
                                                  '%(message)s'}},
    'handlers': {   'console': {   'class': 'logging.StreamHandler',
                                   'formatter': 'production',
                                   'level': 'DEBUG',
                                   'stream': <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>},
                    'sentry': {   'class': 'sentry_sdk.integrations.logging.EventHandler',
                                  'level': 'WARNING'}},
    'loggers': {   '': {'handlers': ['console', 'sentry'], 'level': 'INFO'},
                   'botocore': {'level': 'INFO', 'propagate': False},
                   'daphne.http_protocol': {'level': 'INFO'},
                   'django.request': {   'handlers': ['console'],
                                         'level': 'INFO',
                                         'propagate': False},
                   'django.security.DisallowedHost': {   'handlers': [],
                                                         'propagate': False},
                   'idf': {'level': 'INFO', 'propagate': True},
                   'parso': {'level': 'INFO', 'propagate': False},
                   'payments': {'level': 'DEBUG', 'propagate': False},
                   'zeep': {'level': 'INFO', 'propagate': False}},
    'version': 1}
LOGGING_CONFIG: 'logging.config.dictConfig'
LOGIN_REDIRECT_URL: 'order_photoproducts'
LOGIN_URL: '/login'
LOGLEVEL: 'INFO'
LOGOUT_REDIRECT_URL: 'home'
MANAGERS: []
MEDIA_ROOT: '/unused/'
MEDIA_URL: '/unused/'
MESSAGE_STORAGE: 'django.contrib.messages.storage.fallback.FallbackStorage'
METABASE_PASSWORD: '********'
METABASE_REPORT_INVOICING: 17
METABASE_REPORT_INVOICING_TO: 'cla1703@hotmail.com'
METABASE_USERNAME: 'robot@barrera.io'
MIDDLEWARE: ['django.middleware.security.SecurityMiddleware',
 'idf.tenants.middleware.tenant_middleware',
 'debug_toolbar.middleware.DebugToolbarMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']
MIGRATION_MODULES: {
 }
MONTH_DAY_FORMAT: 'F j'
NUMBER_GROUPING: 0
PASSWORD_HASHERS: '********'
PASSWORD_RESET_TIMEOUT: '********'
PASSWORD_RESET_TIMEOUT_DAYS: '********'
PAYMENT_HOST: <function get_payment_host at 0x7fae824f7f70>
PAYMENT_MODEL: 'idf.Payment'
PAYMENT_USES_SSL: True
PAYMENT_VARIANTS: {
    'dummy': ('payments.dummy.DummyProvider', {}),
    'mercadopago': (   'payments.mercadopago.MercadoPagoProvider',
                       {   'client_id': 'REDACTED',
                           'sandbox': False,
                           'secret_key': 'REDACTED'}),
    'mp-2021-01': (   'payments.mercadopago.MercadoPagoProvider',
                      {   'client_id': 'REDACTED',
                          'sandbox': False,
                          'secret_key': 'REDACTED'})}
PHONENUMBER_DEFAULT_FORMAT: 'NATIONAL'
PHONENUMBER_DEFAULT_REGION: 'AR'
PREPEND_WWW: False
REST_FRAMEWORK: {
    'COERCE_DECIMAL_TO_STRING': False,
    'DEFAULT_PARSER_CLASSES': [   'djangorestframework_camel_case.parser.CamelCaseJSONParser'],
    'DEFAULT_RENDERER_CLASSES': [   'djangorestframework_camel_case.render.CamelCaseJSONRenderer']}
ROOT_URLCONF: 'idf.urls'
SECRET_KEY: '********'
SECURE_BROWSER_XSS_FILTER: False
SECURE_CONTENT_TYPE_NOSNIFF: True
SECURE_HSTS_INCLUDE_SUBDOMAINS: True
SECURE_HSTS_PRELOAD: True
SECURE_HSTS_SECONDS: 63072000
SECURE_PROXY_SSL_HEADER:
    ('HTTP_X_FORWARDED_PROTO', 'https')
SECURE_REDIRECT_EXEMPT: []
SECURE_REFERRER_POLICY: 'strict-origin-when-cross-origin'
SECURE_SSL_HOST: None
SECURE_SSL_REDIRECT: True
SERVER_EMAIL: None
SESSION_CACHE_ALIAS: 'default'
SESSION_COOKIE_AGE: 1209600
SESSION_COOKIE_DOMAIN: None
SESSION_COOKIE_HTTPONLY: True
SESSION_COOKIE_NAME: 'sessionid'
SESSION_COOKIE_PATH: '/'
SESSION_COOKIE_SAMESITE: 'Lax'
SESSION_COOKIE_SECURE: True
SESSION_ENGINE: 'django.contrib.sessions.backends.cached_db'
SESSION_EXPIRE_AT_BROWSER_CLOSE: False
SESSION_FILE_PATH: None
SESSION_SAVE_EVERY_REQUEST: False
SESSION_SERIALIZER: 'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE: 'idf.settings'
SHARED_STATIC_BUCKET: 'REDACTED'
SHORT_DATETIME_FORMAT: 'm/d/Y P'
SHORT_DATE_FORMAT: 'm/d/Y'
SIGNING_BACKEND: 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS: []
SMART_OPEN_PARAMS: {
 }
STATICFILES_DIRS: [PosixPath('/app/dists')]
STATICFILES_FINDERS: ['django.contrib.staticfiles.finders.FileSystemFinder',
 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATICFILES_STORAGE: 'idf.tenants.storage.TenantCompressedManifestStaticFilesStorage'
STATIC_ROOT: '/static/'
STATIC_URL: 'REDACTED'
SYNC_SHARED_KEY: '********'
TEMPLATES: [{'APP_DIRS': True,
  'BACKEND': 'django.template.backends.django.DjangoTemplates',
  'DIRS': [],
  'OPTIONS': {'context_processors': ['django.template.context_processors.debug',
                                     'django.template.context_processors.request',
                                     'django.contrib.auth.context_processors.auth',
                                     'django.contrib.messages.context_processors.messages',
                                     'idf.tenants.context_processors.current_tenant',
                                     'idf.core.context_processors.site_settings']}}]
TENANT_SLUG: 'ideasenfoto'
TEST_NON_SERIALIZED_APPS: []
TEST_RUNNER: 'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR: ','
THUMBNAIL_PRESERVE_FORMAT: True
THUMBNAIL_STORAGE: 'idf.core.storage.ThumbnailStorage'
TIME_FORMAT: 'P'
TIME_INPUT_FORMATS: ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE: 'America/Argentina/Buenos_Aires'
USE_I18N: True
USE_L10N: True
USE_THOUSAND_SEPARATOR: False
USE_TZ: True
USE_X_FORWARDED_HOST: False
USE_X_FORWARDED_PORT: False
WSGI_APPLICATION: None
X_FRAME_OPTIONS: 'DENY'
YEAR_MONTH_FORMAT: 'F Y'
is_overridden: <bound method Settings.is_overridden of <Settings "idf.settings">>
deprecated_settings: None

Steps to Reproduce

  1. Run celery using the SQS backend.
    1. Configure Celery with:
CELERY_BROKER_TRANSPORT_OPTIONS = {
    "predefined_queues": {
        "celery": {
            "url": "my-queue",
        }
    },
}
  1. Start celery
  2. Run celery --app myapp inspect ping

Required Dependencies

  • Minimal Python Version: N/A or Unknown
  • Minimal Celery Version: N/A or Unknown
  • Minimal Kombu Version: N/A or Unknown
  • Minimal Broker Version: N/A or Unknown
  • Minimal Result Backend Version: N/A or Unknown
  • Minimal OS and/or Kernel Version: N/A or Unknown
  • Minimal Broker Client Version: N/A or Unknown
  • Minimal Result Backend Client Version: N/A or Unknown

Python Packages

pip freeze Output:

amqp @ file:///root/.cache/pypoetry/artifacts/72/6e/84/18921e50b7eb7b34efdb9c6765d1d2817f60581a44749d3736ae544d91/amqp-5.0.6-py3-none-any.whl
apipkg @ file:///root/.cache/pypoetry/artifacts/13/fc/53/967af631312743f352f949e679e730462d2a54a8507c2ad5c0ba019474/apipkg-1.5-py2.py3-none-any.whl
appdirs==1.4.4
asgiref @ file:///root/.cache/pypoetry/artifacts/fe/db/83/0ae447caa7129971ac3189887098d047d0257c23b979d0f76c93496c95/asgiref-3.3.4-py3-none-any.whl
attrs @ file:///root/.cache/pypoetry/artifacts/f9/48/82/553e4bef24d3b294c0c18f27a7853f3ed151508efd144cb7ea37db1c48/attrs-20.3.0-py2.py3-none-any.whl
autobahn @ file:///root/.cache/pypoetry/artifacts/70/0a/4b/6ea27fca7918aaa8316eca5d83f3a5b38f2c353b06183bdd57435790d9/autobahn-21.3.1-py2.py3-none-any.whl
Automat @ file:///root/.cache/pypoetry/artifacts/b8/e5/0e/e86ac85851dbf0701b64dc7a0c07c823d0194d7e31a24f1ba60bed622d/Automat-20.2.0-py2.py3-none-any.whl
backcall @ file:///root/.cache/pypoetry/artifacts/43/8e/e8/4e598704edf6fb4a53d552ea511c04e9958dcf850897760e5387878b99/backcall-0.2.0-py2.py3-none-any.whl
beautifulsoup4 @ file:///root/.cache/pypoetry/artifacts/eb/47/47/287c1b8a386f9437d562f9221ae959756bc5bbfcd541c38c17968dfe8a/beautifulsoup4-4.9.3-py3-none-any.whl
billiard @ file:///root/.cache/pypoetry/artifacts/cf/59/06/55d38419b5aa6e1fe731cb9d5dfdc4fa930000cc089eb421e3d039cfc2/billiard-3.6.4.0-py3-none-any.whl
bizdays @ file:///root/.cache/pypoetry/artifacts/fc/75/36/4ee722d24370761ac5c3c84c4f1d0416bd24fa3695dc92a996079b73c1/bizdays-v0.2.0.tar.gz
boto3 @ file:///root/.cache/pypoetry/artifacts/12/28/b8/31bcea6379c379d6c0b7bf98155e4b08d10494368ec7a4c64b5d403165/boto3-1.17.47-py2.py3-none-any.whl
botocore @ file:///root/.cache/pypoetry/artifacts/b2/5c/e8/c5e4e20ea7e9c371a5a6c4662d199057f83d59486d6e7bf70c1d298081/botocore-1.20.47-py2.py3-none-any.whl
braintree @ file:///root/.cache/pypoetry/artifacts/9a/a4/99/223fa7d517b9773ff792ffd8ad32994510f934fcd80f44aba7c33e2630/braintree-4.7.0-py2.py3-none-any.whl
CacheControl==0.12.6
cached-property @ file:///root/.cache/pypoetry/artifacts/03/bc/71/56723502ccaa278f07ed24344213573b812635f7b710a681b94d321c44/cached_property-1.5.2-py2.py3-none-any.whl
cachy==0.3.0
cairocffi @ file:///root/.cache/pypoetry/artifacts/9b/e7/59/840a1ab926373e13b5f1dee5c75a380295cc92161e41818ba16b2dbaba/cairocffi-1.2.0.tar.gz
CairoSVG @ file:///root/.cache/pypoetry/artifacts/b1/70/90/db8930031c903614ebb319bc3d482e2b1f142f1b0458cef2783ac1a43b/CairoSVG-2.5.2-py3-none-any.whl
celery @ file:///root/.cache/pypoetry/artifacts/c0/95/27/4b2e4c2c9f1b23c14155fe1fba032ea571c259113926196f7e4def7d8e/celery-5.0.5-py3-none-any.whl
certifi==2020.12.5
cffi==1.14.5
chardet==4.0.0
cleo==0.8.1
click @ file:///root/.cache/pypoetry/artifacts/e2/79/34/a23e9d2f683ed66be11ec3bd760dec3a2fe228cfdedf2071bcf0531b06/click-7.1.2-py2.py3-none-any.whl
click-didyoumean @ file:///root/.cache/pypoetry/artifacts/6f/a6/29/c6b65bb6685981f0b0659c7be6e9a9b8f9c26b6b3b4134214a91fbc354/click-didyoumean-0.0.3.tar.gz
click-plugins @ file:///root/.cache/pypoetry/artifacts/87/75/c3/fb63a9b9f496004a8bf69eb791be6e419ca0cd59f1d7e250a1bd8322e3/click_plugins-1.1.1-py2.py3-none-any.whl
click-repl @ file:///root/.cache/pypoetry/artifacts/4b/93/46/86c3492a99ddf4ebf1413182576080e75103f5a6c4b30c75868062f114/click_repl-0.1.6-py3-none-any.whl
clikit==0.6.2
constantly @ file:///root/.cache/pypoetry/artifacts/b1/88/48/9251c310b06614794944e121657b60bba5de1686d8c2dfeb79f6f80ad0/constantly-15.1.0-py2.py3-none-any.whl
coverage @ file:///root/.cache/pypoetry/artifacts/2b/40/c4/6d4f333f20c8fe59c1248df160e1a76224b652ed2e41a842b6a22579a1/coverage-5.5-cp39-cp39-manylinux2010_x86_64.whl
crashtest==0.3.1
cryptography==3.4.7
cssselect2 @ file:///root/.cache/pypoetry/artifacts/3b/f1/c1/a6ac7c73137f58ea26713f2a04685dcb719b1993aadfb8e813d2e999e9/cssselect2-0.4.1-py3-none-any.whl
cssutils @ file:///root/.cache/pypoetry/artifacts/68/c2/e6/d061e400f87adc4e96efcc69361032734a903e8ff8eca2c0182e4838e1/cssutils-2.2.0-py3-none-any.whl
daphne @ file:///root/.cache/pypoetry/artifacts/31/da/f5/87c148f67573404dad7fcd2c73264a32e1ef99902c3750d8f9473eb69a/daphne-3.0.2-py3-none-any.whl
decorator @ file:///root/.cache/pypoetry/artifacts/10/9f/09/a4bdb3633e61b7686376fad9ac06a4584a6095c3e9347f841f6f4866ac/decorator-5.0.6-py3-none-any.whl
defusedxml @ file:///root/.cache/pypoetry/artifacts/2b/69/07/7b13f7eaf3a4d7af737dcebe24d3d17b1c2a2f457fbddf746f5642bc43/defusedxml-0.7.1-py2.py3-none-any.whl
distlib==0.3.1
Django @ file:///root/.cache/pypoetry/artifacts/9d/26/2f/216c4dc01973dbd02e657dcc8fb516fd04c74bce15273f805ac38df32b/Django-3.1.8-py3-none-any.whl
django-afip @ file:///root/.cache/pypoetry/artifacts/6f/74/9e/cc82779d5255431c73af9850c33b68e285534a65256bcfa127bdcdc98d/django_afip-8.0.4-py3-none-any.whl
django-anymail @ file:///root/.cache/pypoetry/artifacts/f2/76/eb/11ed11565817e1b1a0561bc38699ec7d69229b7f448e8ecb3c7d22f8f5/django_anymail-8.2-py3-none-any.whl
django-celery-beat @ file:///root/.cache/pypoetry/artifacts/61/2d/d4/e440d7a4fdfa5722ab7b4a615cc4fe272ab579cb8ae42fb8aba2ec6198/django_celery_beat-2.2.0-py2.py3-none-any.whl
django-celery-results @ file:///root/.cache/pypoetry/artifacts/35/97/b8/6662b0190d3bbd6c8fb2b03e894d4c24f6923080b0554e8aadc4a25020/django_celery_results-2.0.1-py2.py3-none-any.whl
django-ckeditor @ file:///root/.cache/pypoetry/artifacts/71/6b/ff/161e183b25f8fd2bef886b709d80ebbd08f8a35093b07653d8a792580c/django_ckeditor-6.0.0-py2.py3-none-any.whl
django-debug-toolbar @ file:///root/.cache/pypoetry/artifacts/d0/a5/5b/7822a0441e12b10f471ca7cdc0211b757689a64bafc2599c56fb91938d/django_debug_toolbar-3.2-py3-none-any.whl
django-environ @ file:///root/.cache/pypoetry/artifacts/87/d0/e4/2e59fd1e2526f0f52d73260ba0356904cb9c2bcd82299d5a3f88b3e341/django_environ-0.4.5-py2.py3-none-any.whl
django-inlinecss @ file:///root/.cache/pypoetry/artifacts/06/8d/53/35e22d65bf3a619f4083e4c4da3fe5b4b9cf68b15b5eeb2a457de0c274/django_inlinecss-0.3.0-py2.py3-none-any.whl
django-js-asset @ file:///root/.cache/pypoetry/artifacts/00/7c/b4/e3ecaf08b9600fd79e9d915c0d908b307b9ce8de512033d71731d19cbc/django_js_asset-1.2.2-py2.py3-none-any.whl
django-mptt @ file:///root/.cache/pypoetry/artifacts/16/e2/f5/030e10306975845927f7017981d13488825e9fbb412382b135b67c9f34/django_mptt-0.11.0-py2.py3-none-any.whl
django-nested-admin @ file:///root/.cache/pypoetry/artifacts/9c/ac/15/d6e2df1a31241ee4fa62c8881c45758102a82d0a0ee3e12b68a613a519/django_nested_admin-3.3.3-py2.py3-none-any.whl
django-payments @ file:///usr/local/src/django-payments
django-phonenumber-field @ file:///root/.cache/pypoetry/artifacts/84/c0/ef/6c88acad4679954d058041f4c9fbc45f379174d809bc7a7424f736e985/django_phonenumber_field-5.0.0-py3-none-any.whl
django-polymorphic @ file:///root/.cache/pypoetry/artifacts/72/c4/da/44288d0ec6fcb84c7db65392ec5b74bc48a13b00fae3711285641927c1/django_polymorphic-3.0.0-py2.py3-none-any.whl
django-renderpdf @ file:///root/.cache/pypoetry/artifacts/e4/d6/da/1206131d31339bd5efb2f7f3b557fb2fd8ea8f3ba418544e13676e826d/django_renderpdf-3.0.1-py3-none-any.whl
django-storages @ file:///root/.cache/pypoetry/artifacts/89/83/74/c80df44394fab8a93c9ac5dd5cf13a0919338371966b7eb9f9fde59eb3/django_storages-1.11.1-py3-none-any.whl
django-timezone-field @ file:///root/.cache/pypoetry/artifacts/65/7b/6e/da2cf86521fcd79d50e70e6951f0fc3b2949c348cbd6b93e61f112d085/django_timezone_field-4.1.2-py3-none-any.whl
djangorestframework @ file:///root/.cache/pypoetry/artifacts/e1/57/21/bfde361af294b9c9cd77dcab0182e58c2938fcee29a4e5724ef4fed0e0/djangorestframework-3.12.4-py3-none-any.whl
djangorestframework-camel-case @ file:///root/.cache/pypoetry/artifacts/1e/71/e2/ac96cb599da930dc0f72de424d5bb0a6d9422ed762a1bbf7514a163ee1/djangorestframework-camel-case-1.2.0.tar.gz
execnet @ file:///root/.cache/pypoetry/artifacts/17/3d/b7/3b43fe56229a02c5da130d68f83ec13187cacc6eb6d8a3c0113d0af42a/execnet-1.8.0-py2.py3-none-any.whl
factory-boy @ file:///root/.cache/pypoetry/artifacts/0f/68/21/16550a9aac819bbcb23377767f080adcca679a9b7879d98208ee4d98ba/factory_boy-3.2.0-py2.py3-none-any.whl
Faker @ file:///root/.cache/pypoetry/artifacts/b6/ba/3c/03a31564a0b1562b10ad941f79ff5cb77466df408c37c0fed05723e694/Faker-8.0.0-py3-none-any.whl
filelock==3.0.12
freezegun @ file:///root/.cache/pypoetry/artifacts/62/61/fd/3ed04843b90b98c3ede876f9ab19f1f59c447bf14ef0fa05f25b24d375/freezegun-1.1.0-py2.py3-none-any.whl
future @ file:///root/.cache/pypoetry/artifacts/f8/58/55/86be1f567b212fdd98854d12815964a49db8fb1bcff725018e5f95c61d/future-0.18.2.tar.gz
googlemaps @ file:///root/.cache/pypoetry/artifacts/1c/81/bd/49014501593e7a090fc7004899c2f327bcd87872ffb1a280dd7a31eb20/googlemaps-4.4.5.tar.gz
html5lib==1.1
hyperlink @ file:///root/.cache/pypoetry/artifacts/ac/c9/85/b172f5d08e937f31bc0feffe4e2ff08bef15ff1e4d382616b9f7b174b0/hyperlink-21.0.0-py2.py3-none-any.whl
idna==2.10
incremental @ file:///root/.cache/pypoetry/artifacts/03/0f/d8/1f9c21de086b17b28e0ed5914f384759067c88a524742b94e72eb07020/incremental-21.3.0-py2.py3-none-any.whl
iniconfig @ file:///root/.cache/pypoetry/artifacts/fa/b0/c6/10cfac68c9e6de9d2a1678366ca89fd9292b362c1760dbe758e41691cb/iniconfig-1.1.1-py2.py3-none-any.whl
ipdb @ file:///root/.cache/pypoetry/artifacts/3b/42/c4/22062c17dd09ecc6c73a79fb0fbe565f84d5b99a397e46dc1892d59b5c/ipdb-0.13.7.tar.gz
ipython @ file:///root/.cache/pypoetry/artifacts/dd/00/68/917177c0013b8435d89c08e54ff6fa79da400ccae29d02869e767577af/ipython-7.22.0-py3-none-any.whl
ipython-genutils @ file:///root/.cache/pypoetry/artifacts/b4/31/01/6f96480580d1674cab0b5e26dc9fca7bbdf7a2fd5811a7807a92436268/ipython_genutils-0.2.0-py2.py3-none-any.whl
isodate @ file:///root/.cache/pypoetry/artifacts/95/34/e8/bf99fab064e9305ca4f58f1804b8d30e544c06bcabed2658efd6783191/isodate-0.6.0-py2.py3-none-any.whl
jedi @ file:///root/.cache/pypoetry/artifacts/2a/5b/d6/62e1f4e7b392c3e7f8258bbe3159dff695814a46e65547cd547ca0fedb/jedi-0.18.0-py2.py3-none-any.whl
jeepney==0.6.0
jmespath @ file:///root/.cache/pypoetry/artifacts/2c/f0/52/b0ba93d941bd49c8719dee7ca27d2096bf96e17948667388c3ee2ac8f8/jmespath-0.10.0-py2.py3-none-any.whl
keyring==21.8.0
kombu @ file:///root/.cache/pypoetry/artifacts/21/e3/6f/744c2c76812870b87739cc2016688ee580045178303a0c98d3a9584961/kombu-5.0.2-py2.py3-none-any.whl
lockfile==0.12.2
lxml @ file:///root/.cache/pypoetry/artifacts/12/66/39/c2178320cc3a053e4f814dcdf209a7cfc68072b6e1475b046612f858cf/lxml-4.6.3-cp39-cp39-manylinux1_x86_64.whl
mercadopago @ file:///root/.cache/pypoetry/artifacts/12/f2/24/2215335f39a61cd5c693b66e9bbcbd563d07c917adb6841dcb13a5039f/mercadopago-0.3.5-py3-none-any.whl
msgpack==1.0.2
numpy @ file:///root/.cache/pypoetry/artifacts/9d/32/9e/7fd76f644e7204ce351b27fad6b59b2b1dffc41d5f622150ff5a9ad648/numpy-1.20.2-cp39-cp39-manylinux2010_x86_64.whl
ocaclient @ file:///root/.cache/pypoetry/artifacts/f4/4d/57/ee0e695e29cff8d1bb964b669e96de928669fd702aaf40fcd3397f1dc9/ocaclient-0.6.2-py3-none-any.whl
packaging==20.9
parso @ file:///root/.cache/pypoetry/artifacts/36/cd/ab/a8c3a5df337bc6f34a10f3f385417b62cdfebe2873ac2fec38206af0db/parso-0.8.2-py2.py3-none-any.whl
pastel==0.2.1
pexpect==4.8.0
phonenumberslite @ file:///root/.cache/pypoetry/artifacts/93/69/d0/f567209e80197b8f8a69f30a9655c0ae70cb6764e5bf9c5ea6358f5251/phonenumberslite-8.12.21-py2.py3-none-any.whl
pickleshare @ file:///root/.cache/pypoetry/artifacts/b5/48/a1/d2b823337003d531d87cf0d503ef28bb579703a74d14ad24a88863d616/pickleshare-0.7.5-py2.py3-none-any.whl
Pillow @ file:///root/.cache/pypoetry/artifacts/af/01/9e/9e59a2244e85a37841afdb59a3dc7feb5f6d414d71e255a4d8b25c063d/Pillow-8.2.0-cp39-cp39-manylinux1_x86_64.whl
pkginfo==1.7.0
pluggy @ file:///root/.cache/pypoetry/artifacts/29/58/fc/ed8b7451d3ef91a6465024f5656141da996e7aafd4d41a1659629a75e7/pluggy-0.13.1-py2.py3-none-any.whl
poetry==1.1.5
poetry-core==1.0.3
prompt-toolkit @ file:///root/.cache/pypoetry/artifacts/c6/94/f6/50383688495b2b2e58070767b4598041dacedf95cdf297db12a84a94e1/prompt_toolkit-3.0.18-py3-none-any.whl
psutil @ file:///root/.cache/pypoetry/artifacts/06/3a/4a/5e88d8f14e18b10c222f81667132086849930f068d68d064ceb8a87834/psutil-5.8.0-cp39-cp39-manylinux2010_x86_64.whl
psycopg2 @ file:///root/.cache/pypoetry/artifacts/17/48/39/0a22843b92eebf150b78e586ba20dc44a9804b43a94b8b99102d2fccf5/psycopg2-2.8.6.tar.gz
ptyprocess==0.7.0
py @ file:///root/.cache/pypoetry/artifacts/60/79/0b/c48bd9c2a989aa8b1eb7a67cd02b053c10734f2e4e5665f7995f09999c/py-1.10.0-py2.py3-none-any.whl
pyasn1 @ file:///root/.cache/pypoetry/artifacts/7b/3a/54/42ce43b579bda01b9d79022fb733811594441e7a32e9f9a5a98f672bdc/pyasn1-0.4.8-py2.py3-none-any.whl
pyasn1-modules @ file:///root/.cache/pypoetry/artifacts/dd/b8/4f/b56433e0354274a31074995e01b8671751e9f0ed0001f5254e5b03a54f/pyasn1_modules-0.2.8-py2.py3-none-any.whl
pycparser==2.20
pycurl @ file:///root/.cache/pypoetry/artifacts/75/24/73/0033ca38332d0b17f5d34d9fdeeecfb846e496898bc2003917c69e1ff4/pycurl-7.43.0.5.tar.gz
Pygments @ file:///root/.cache/pypoetry/artifacts/bf/63/90/6f6342dd06f01126b4c490f6da1ddcbcc30899480e797b1e6bb21fc8b7/Pygments-2.8.1-py3-none-any.whl
PyJWT @ file:///root/.cache/pypoetry/artifacts/73/c0/4c/194d7fba4fd22ace86260631f33d584545560e0da39981058013f8ac7e/PyJWT-1.7.1-py2.py3-none-any.whl
pylev==1.3.0
pynliner @ file:///root/.cache/pypoetry/artifacts/5e/50/1e/07bcdafde50075738b63371f9d276518384bf727900208fd517c89dd7d/pynliner-0.8.0-py2.py3-none-any.whl
pyOpenSSL @ file:///root/.cache/pypoetry/artifacts/27/2a/6f/de8129dc1f8ba5d04f604e929a7f055c4ca7c08ceec8bf801182df8774/pyOpenSSL-20.0.1-py2.py3-none-any.whl
pyparsing==2.4.7
Pyphen @ file:///root/.cache/pypoetry/artifacts/ab/83/29/94af44f88717af270c747ff9e10bf4e5280282947c7a6a45ac95e3c50f/Pyphen-0.10.0-py3-none-any.whl
pytest @ file:///root/.cache/pypoetry/artifacts/b5/01/76/607703f1e6c5c0cf81078487e1866611130dc929a0ac952d80084ddf33/pytest-6.2.3-py3-none-any.whl
pytest-cov @ file:///root/.cache/pypoetry/artifacts/c2/87/fe/0f7becb86948f177058941f4469ac3c20b8c2bddab5e8a11800146c8d9/pytest_cov-2.11.1-py2.py3-none-any.whl
pytest-django @ file:///root/.cache/pypoetry/artifacts/7d/c9/ef/fa82061e5a4c06e848bef8a5b9b943b1b7fba0e3d938cfa173e9e0af9a/pytest_django-3.10.0-py2.py3-none-any.whl
pytest-env @ file:///root/.cache/pypoetry/artifacts/bb/f5/38/866d79fc6128d49dd20272ab1d44cea2633d47de702bdfbe7c04f75c80/pytest-env-0.6.2.tar.gz
pytest-forked @ file:///root/.cache/pypoetry/artifacts/4b/87/a5/881bc6a03d8050d3fb179ff3455a26327ee3f517b58cf5279b03dff9c8/pytest_forked-1.3.0-py2.py3-none-any.whl
pytest-xdist @ file:///root/.cache/pypoetry/artifacts/08/14/84/77b32ff67deacb3f6153d6105648b45afe9ffd453638318dfe8ebb53d9/pytest_xdist-2.2.1-py3-none-any.whl
python-barcode @ file:///root/.cache/pypoetry/artifacts/53/d8/ef/3017d63bae87343e77df6e015fc2f24d5bf60fab2d70e996b4eea33fdf/python_barcode-0.13.1-py3-none-any.whl
python-crontab @ file:///root/.cache/pypoetry/artifacts/63/b6/4e/55c427418b5a83c655e55fea6a191e196a582aa951ae31a197cd8b7c56/python-crontab-2.5.1.tar.gz
python-dateutil @ file:///root/.cache/pypoetry/artifacts/93/67/cf/49f56d9e954addcfc50e5ffc9faee013c2eb00c6d77d56c6a22cb33b54/python_dateutil-2.8.1-py2.py3-none-any.whl
python-memcached @ file:///root/.cache/pypoetry/artifacts/40/d9/16/8c35eb6ef6e7dd42ad683bb992324070c09a39eec4eba2d1072e62bf34/python_memcached-1.59-py2.py3-none-any.whl
python-monkey-business @ file:///root/.cache/pypoetry/artifacts/cb/98/08/bbed363833a071b071a57ff40ede97e049f48ac79679c2a422cc7550e2/python_monkey_business-1.0.0-py2.py3-none-any.whl
pytz @ file:///root/.cache/pypoetry/artifacts/b0/a7/8d/54de3ab4d1ff29abbbca1e9ccbaefdc2a1b290138311b84f73bee16de1/pytz-2021.1-py2.py3-none-any.whl
PyYAML @ file:///root/.cache/pypoetry/artifacts/dd/d9/3d/cbc42de28fcde705eb305497d2f3e5679ca7890234c51348b33c0f428f/PyYAML-5.4.1-cp39-cp39-manylinux1_x86_64.whl
qrcode @ file:///root/.cache/pypoetry/artifacts/fe/96/8e/fa0891b8e94eee56cefae7348d5a5ee8d0f6b4cec83ba4faf786d9c4f7/qrcode-6.1-py2.py3-none-any.whl
requests==2.25.1
requests-toolbelt==0.9.1
s3transfer @ file:///root/.cache/pypoetry/artifacts/26/79/46/ab118883797af43637ae5c2a15ef3eec40fc2639eeffdd5d0fa3ea4e65/s3transfer-0.3.6-py2.py3-none-any.whl
SecretStorage==3.3.1
sentry-sdk @ file:///root/.cache/pypoetry/artifacts/6c/dd/43/684b5495cb8b80e690226edb2486ae270c4f6e15daa091720a28e9bac0/sentry_sdk-1.0.0-py2.py3-none-any.whl
service-identity @ file:///root/.cache/pypoetry/artifacts/67/02/14/0c7d05a9b1dc41fce405635789f0c6297296db08d72b8370a9b6027cdf/service_identity-18.1.0-py2.py3-none-any.whl
setuptools-git @ file:///root/.cache/pypoetry/artifacts/22/d2/59/c3b69ad2782c3dbe6e2b65386c207bd85ed382ce3c1c186756af7bdabb/setuptools_git-1.2-py2.py3-none-any.whl
setuptools-scm @ file:///root/.cache/pypoetry/artifacts/db/ec/2b/19563791bfe38cb424fe2abd37cf98792e13f07be9671d117df85262c8/setuptools_scm-6.0.1-py3-none-any.whl
shellingham==1.4.0
six==1.15.0
smart-open @ file:///root/.cache/pypoetry/artifacts/26/12/16/c305f62c1fe6a04a24422cebd6087658edf8c3ac26f930c4f17579a362/smart_open-5.0.0-py3-none-any.whl
soupsieve @ file:///root/.cache/pypoetry/artifacts/20/16/55/4a9893b172bb2a7815f46f6a947ff3506dd241ea679377ffdc0b2c811e/soupsieve-2.2.1-py3-none-any.whl
sqlparse @ file:///root/.cache/pypoetry/artifacts/bc/af/02/8aa71b17fd39b26b858293918c5c6412f83768a0bfd0a4626f660aa5f8/sqlparse-0.4.1-py3-none-any.whl
stripe @ file:///root/.cache/pypoetry/artifacts/85/6c/11/d51c2cd257d62f88bd001c8d0e44158352b45bbd41711e5eb70ef923a1/stripe-2.56.0-py2.py3-none-any.whl
suds-jurko @ file:///root/.cache/pypoetry/artifacts/a1/3a/ca/4cb96176d922bcef591bfe698c333a43a7173cf8a665798cd3a2614ec5/suds-jurko-0.6.tar.bz2
text-unidecode @ file:///root/.cache/pypoetry/artifacts/34/f9/c2/484c44b08bab89d472229bbd257fcc1d1c6273ee027f01cb08c4e3c309/text_unidecode-1.3-py2.py3-none-any.whl
tinycss2 @ file:///root/.cache/pypoetry/artifacts/c2/45/e7/cb1efbcbe5e0b559ea8830a9a6192effef97b1aa61bffa368b7ae3edb9/tinycss2-1.1.0-py3-none-any.whl
toml @ file:///root/.cache/pypoetry/artifacts/6b/6a/c9/53b19f7870a77d855e8b05ecdc98193944e5d246dafe11bbcad850ecba/toml-0.10.2-py2.py3-none-any.whl
tomlkit==0.7.0
traitlets @ file:///root/.cache/pypoetry/artifacts/f3/6b/36/998ab52c38eb1c4820cdef1e66043ddebb64e04535f88dbfd04486ce03/traitlets-5.0.5-py3-none-any.whl
Twisted @ file:///root/.cache/pypoetry/artifacts/cc/3b/2b/b4192be52547cd6d0e76e1e41e5c7056c938cad39787425afd7ca85d5e/Twisted-21.2.0-py3-none-any.whl
txaio @ file:///root/.cache/pypoetry/artifacts/fa/08/32/c860d7ebf60bd51dfd8454092f6b968fd7ad9145276e7c651b6c7e088b/txaio-21.2.1-py2.py3-none-any.whl
uritemplate @ file:///root/.cache/pypoetry/artifacts/95/7b/ae/f3ee1696bf115374775b31c48531d952fcc816dad7f439a663e5c8b357/uritemplate-3.0.1-py2.py3-none-any.whl
urllib3==1.26.4
vine @ file:///root/.cache/pypoetry/artifacts/c1/80/fc/ccb677b19dd37eb7ad77b94745e563b67472b45dbcfb34e75a6110f12f/vine-5.0.0-py2.py3-none-any.whl
virtualenv==20.4.3
wcwidth @ file:///root/.cache/pypoetry/artifacts/7d/f4/60/0737157bb9711fec72c70dff523aa54491eef317e0d586cf5388ff0908/wcwidth-0.2.5-py2.py3-none-any.whl
WeasyPrint @ file:///root/.cache/pypoetry/artifacts/2b/c2/76/23d71fa3c7f85fce9f3b22fc249841e6b37ec201b17bf197cc07a62653/WeasyPrint-52.4-py3-none-any.whl
webencodings==0.5.1
xmltodict @ file:///root/.cache/pypoetry/artifacts/f9/75/d8/1eb7ae0144a737ba8e5ffd2ecd983e38ca4a47f72ed4afec894d92b547/xmltodict-0.12.0-py2.py3-none-any.whl
zeep @ file:///root/.cache/pypoetry/artifacts/63/bc/c4/f005eaae857b7ac22c73be83b66eb78aac5586d183a55dde3ec01a5938/zeep-3.4.0-py2.py3-none-any.whl
zope.interface @ file:///root/.cache/pypoetry/artifacts/a3/e4/58/22da60cbeaa4d08c30d95938bed5335265f67d153e3f1729375b6629ce/zope.interface-5.3.0-cp39-cp39-manylinux2010_x86_64.whl

Other Dependencies

The issue only seems to happen on SQS.

Minimally Reproducible Test Case

Given that this only happens when running SQS, a minimal example it pretty challenging, since the code needs to be set up in a way that it can run on AWS. The issue is also when a ping is sent, so you'd need a server running and to run a command on the same host, right?

Expected Behavior

Celery ping should work as with RabbitMQ. It should send the message through the broken, and the worker should reply.

Actual Behavior

Celery attempts to use another, inexitent queue for the message:

KeyError: 'd4ab4251-49bc-3f87-aa25-abf4b258aa81-reply-celery-pidbox'
  File "kombu/transport/SQS.py", line 230, in _new_queue
    return self._queue_cache[queue]

UndefinedQueueException: Queue with name 'd4ab4251-49bc-3f87-aa25-abf4b258aa81-reply-celery-pidbox' must be defined in 'predefined_queues'.
  File "celery", line 8, in <module>
    sys.exit(main())
  File "celery/__main__.py", line 15, in main
    sys.exit(_main())
  File "celery/bin/celery.py", line 213, in main
    return celery(auto_envvar_prefix="CELERY")
  File "click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "click/decorators.py", line 21, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "celery/bin/base.py", line 132, in caller
    return f(ctx, *args, **kwargs)
  File "celery/bin/control.py", line 128, in inspect
    replies = ctx.obj.app.control.inspect(timeout=timeout,
  File "celery/app/control.py", line 94, in _request
    return self._prepare(self.app.control.broadcast(
  File "celery/app/control.py", line 474, in broadcast
    return self.mailbox(conn)._broadcast(
  File "kombu/pidbox.py", line 338, in _broadcast
    self._publish(command, arguments, destination=destination,
  File "kombu/pidbox.py", line 300, in _publish
    maybe_declare(self.reply_queue(channel))
  File "kombu/common.py", line 119, in maybe_declare
    return _maybe_declare(entity, channel)
  File "kombu/common.py", line 159, in _maybe_declare
    entity.declare(channel=channel)
  File "kombu/entity.py", line 606, in declare
    self._create_queue(nowait=nowait, channel=channel)
  File "kombu/entity.py", line 615, in _create_queue
    self.queue_declare(nowait=nowait, passive=False, channel=channel)
  File "kombu/entity.py", line 643, in queue_declare
    ret = channel.queue_declare(
  File "kombu/transport/virtual/base.py", line 528, in queue_declare
    self._new_queue(queue, **kwargs)
  File "kombu/transport/SQS.py", line 233, in _new_queue
    raise UndefinedQueueException((

I've tried various ways of routing including:

CELERY_TASK_ROUTES = {".*": "celery"}

However, the message still always go to a new, randomly-named, inexistent queue. I can neither create the queue ahead of time (the name is new each time), and I also can't seem to route ping to go through a specific queue (the default).

I've looked online a lot, but issues discussing celery ping, sqs or routing never overlap so as to cover this. I tried looking at the code both in Celery and Kombu, but can't even quite figure out where the queue name comes from or if (how?) it can be overridden.

I've found no workaround, so it seems that celery inspect ping can't work with SQS...?

@open-collective-bot
Copy link

Hey @WhyNotHugo 👋,
Thank you for opening an issue. We will get back to you as soon as we can.
Also, check out our Open Collective and consider backing us - every little helps!

We also offer priority support for our sponsors.
If you require immediate assistance please consider sponsoring us.

@thedrow
Copy link
Member

thedrow commented Apr 18, 2021

@celery/aws-task-force It seems like SQS doesn't support gossip and no PID queues are being created.

@galCohen88
Copy link
Contributor

galCohen88 commented Apr 22, 2021

@thedrow @WhyNotHugo It does not make sense to have a separate queue for gossip, it's not like with Rabbit/Redis where you set up a single instance supporting multiple queues.
In SQS case a different queue means a different infrastructure component (might be with a different security group/IAM role/availability-zone/region), so even if we implement this, a "positive" ping result does not mean that the communication is working properly.

@thedrow
Copy link
Member

thedrow commented Apr 22, 2021

I think we should not close this but instead reopen and emit a proper error message.
@galCohen88 What do you think? Care to issue a PR for this?

@thedrow thedrow reopened this Apr 22, 2021
@galCohen88
Copy link
Contributor

@thedrow celery/kombu#1337

@maybe-sybr
Copy link
Contributor

maybe-sybr commented May 9, 2021

Per my comment on celery/kombu#1337 [0], we may be able to begin work on a change in celery to avoid doing gossip stuff if the transport being used only support direct queues (which I am assuming is a valid property proxy for transports which can't make an extra queue for gossip purposes). If someone has brainspace to do so, it would be useful to start thinking about what code in celery should change to avoid doing gossip in such a situation.

@WhyNotHugo
Copy link
Author

I'm still a bit confused on the state of the issue. I see that gossip seems to be about worker-to-worker communication:

Worker to worker broadcast communication (class:~celery.worker.consumer.Gossip).

However, I'm using celery ping here in a scenario with a single worker. Is there a way I can work around this issue? How exactly is gossip related in this scenario?

@thedrow
Copy link
Member

thedrow commented May 10, 2021

As far as I know ping is an inspect command which goes through the PIDBox.

@thedrow thedrow removed this from the 5.1.0 milestone May 24, 2021
@shivanshs9
Copy link

@thedrow Yeah, but is there an alternate celery command to check health status of celery worker on the same host itself? I understand it's a doubt unrelated to this issue, but it'd be awesome if you can help. Right now, I'm unable to add health checks to the worker container (on Kubernetes) since I use SQS broker for tasks.

@auvipy auvipy added this to the 5.2.x milestone Nov 19, 2021
@0ssigeno
Copy link

Hi!
There are any news on how to have an health check to the worker container if SQS is used?

@auvipy auvipy modified the milestones: 5.2.x, 5.3.x Apr 23, 2022
@jrnp97
Copy link

jrnp97 commented Sep 13, 2022

up

@innovate-invent
Copy link

Related #4079

innovate-invent pushed a commit to brinkmanlab/galaxy-container that referenced this issue Sep 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants