Skip to content

Instantly share code, notes, and snippets.

View alexryabtsev's full-sized avatar

Alexander Ryabtsev alexryabtsev

  • Django Stars
  • Kiev
View GitHub Profile
@alexryabtsev
alexryabtsev / swagger-yaml-doc-string-example.py
Last active August 15, 2016 07:31
Swagger YAML doc-string
class AppLogListAPIView(CommonFilteringListView):
...
def get(self, request, *args, **kwargs):
"""
---
serializer: sa_logs.serializers.AppLogListSerializer
parameters_strategy: merge
omit_parameters:
- path
parameters:
@alexryabtsev
alexryabtsev / swagger-doc-decorators-example.py
Created August 15, 2016 07:31
Swagger docs with custom decorators
class AppLogListAPIView(CommonFilteringListView):
"""
API call to get list of App logs (including filtering).
"""
...
@add_response_errors((400, 401, 403, 405, 408))
@add_input_query_parameters(InputAppLogSerializer, add_pagination=True)
def get(self, request, *args, **kwargs):
"""
---
@alexryabtsev
alexryabtsev / swagger-errors-decorator.py
Last active August 15, 2016 07:54
Extend Django REST Swagger docs with verbose errors
API_ERRORS = dict(
[
(400, 'Wrong input data'),
(401, 'Not authenticated / Invalid signature(token)'),
(403, 'User has one-time password'),
(404, 'Object not found'),
(405, 'Method not allowed'),
(408, 'Request timeout'),
]
)
@alexryabtsev
alexryabtsev / swagger-request-params-decorator.py
Last active August 15, 2016 07:53
Extend Django REST Swagger with additional request params
import collections
from django.conf import settings
from rest_framework import fields
from rest_framework.settings import api_settings
field_to_yaml_type = collections.defaultdict(
lambda: 'string',
@alexryabtsev
alexryabtsev / cherrypy-django.py
Last active August 15, 2016 08:09
Run Django application in CherryPy
...
if __name__ == '__main__':
...
if len(sys.argv) > 1:
# Django management commands
if sys.argv[1] == 'manage':
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
from django.core.management import execute_from_command_line
args = ['./manage.py'] + sys.argv[2:]
@alexryabtsev
alexryabtsev / pyi_rth_django.py
Last active August 15, 2016 11:48
Django management commands hook for PyInstaller
import inspect
import os
import sys
import django.core.management
import django.utils.autoreload
PROJECT_PATH = os.path.realpath(os.path.dirname(inspect.getfile(inspect.currentframe())))
sys.path.append(os.path.join(PROJECT_PATH, 'apps'),)
@alexryabtsev
alexryabtsev / pre-commit
Created March 29, 2017 15:05 — forked from romanosipenko/pre-commit
Git pre-commit hook to check alowance of making commit acording to autors/contributors file in repository.
#!/bin/sh
REPO_ROOT=`git rev-parse --show-toplevel`
AUTHORS_FILE="AUTHORS.txt"
if grep -xq "${GIT_AUTHOR_NAME} <${GIT_AUTHOR_EMAIL}>" "${REPO_ROOT}/${AUTHORS_FILE}"
then
exit 0;
else
echo "********************************************************************************"
ALLOWED_HOSTS = ['example.com']
DEBUG = False
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'production_db',
'USER': 'user',
'PASSWORD': 'password',
'HOST': 'db.example.com',
'PORT': '5432',
ALLOWED_HOSTS = ['localhost']
DEBUG = True
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'local_db',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
from .base import *
ALLOWED_HOSTS = ['localhost']
DEBUG = True
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'local_db',
'HOST': '127.0.0.1',