Skip to main content

valar for morghulis

Project description

valar for morghulis

settings

from pathlib import Path

""" Compulsory settings """
DEBUG = True
BASE_DIR = Path(__file__).resolve().parent.parent
BASE_APP = str(BASE_DIR.name)
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

""" Minimized compulsory settings """

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

INSTALLED_APPS = [
    'django.contrib.sessions',
    "corsheaders",
    'channels',
    'valar.dao'
]

MIDDLEWARE = [
    'django.contrib.sessions.middleware.SessionMiddleware',
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    'valar.Middleware'
]

CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "channels.layers.InMemoryChannelLayer"
    }
}

CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
ROOT_URLCONF = "%s.urls" % BASE_APP
ASGI_APPLICATION = "%s.asgi.application" % BASE_APP
VALAR_CHANNEL_HANDLER_MAPPING = "%s.urls.channel_handler_mapping" % BASE_APP

""" Optional settings """
# ALLOWED_HOSTS = ['*']
# LANGUAGE_CODE = 'en-us'
# TIME_ZONE = 'Asia/Shanghai'
# USE_I18N = True
# USE_TZ = False
# SESSION_SAVE_EVERY_REQUEST = True
# SESSION_COOKIE_AGE = 60 * 60
# FILE_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 100
# DATA_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 100

root urls

from django.urls import path

from valar.channels import ValarSocketSender
from valar.channels.views import handel_channel

urlpatterns = [
    path('socket/<str:handler>', handel_channel),
]


async def test_handler(data, sender: ValarSocketSender):
    # print(data, sender.handler, sender.client, sender.uid)
    await sender.to_users({'user': 15}, 15)
    for i in range(3):
        await sender.to_clients({'h': i},sender.client)


channel_handler_mapping = {
    'test': test_handler
}

asgi

from django.core.asgi import get_asgi_application
from channels.routing import ProtocolTypeRouter, URLRouter
from django.urls import re_path

from valar.channels import ValarConsumer

application = ProtocolTypeRouter({
    'http': get_asgi_application(),
     'websocket': URLRouter([
        re_path(r'(?P<client>\w+)/$', ValarConsumer.as_asgi()),
    ])
})

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

valar-0.0.12.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

valar-0.0.12-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file valar-0.0.12.tar.gz.

File metadata

  • Download URL: valar-0.0.12.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.6

File hashes

Hashes for valar-0.0.12.tar.gz
Algorithm Hash digest
SHA256 cb627d586d07be4ae5f6855a860597bc09532315c5a5737e05016fb60cc42887
MD5 767c8bacead9b8ca92f9ced9f4d8ae61
BLAKE2b-256 4397cebfa4397b7013a6d0960cb3ac3abde09f326a73d8a455075111e0580f60

See more details on using hashes here.

File details

Details for the file valar-0.0.12-py3-none-any.whl.

File metadata

  • Download URL: valar-0.0.12-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.6

File hashes

Hashes for valar-0.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 0e9cf371ca9bef481b6c13139f5e0d0e175ce9ff1becc406e7ab166a258e7752
MD5 8835c86d19d8ad66094376c274b9acde
BLAKE2b-256 4a680ff32bc09a0b75b7ee9599f1b3f68a26fa15540fc6b597b19c6b7933f234

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page