As configured in my dotfiles.
start new:
tmux
start new with session name:
import subprocess | |
ps_path = 'powershell.exe' | |
arguments = 'dir' | |
def wrap_ps_notation_elevated(program: str, command: str) -> str: | |
return f"$p=saps {program} -ArgumentList '{command}' " \ | |
f"-Verb runas " \ | |
f"-Passthru -Wait; " \ |
RULES = ( | |
'В группе имеет смысл обсуждать любые связанные с Python и его экосистемой темы. Связанные хотя бы косвенно.', | |
'Прежде чем задать вопрос в группу, потратьте 10 минут в поисковике, пытаясь понять проблему - это поможет сформулировать вопрос.', | |
'Предложения работы разрешены только постоянным членам группы. Формат поста - согласуйте с администратором, у нас не HR паблик.', | |
'И не место для политических дискуссий, троллинга и пассивной агрессии - старайтесь вести конструктивную беседу.', | |
'Иногда лучше воздержаться от провокационного коммента, мы все люди и можем ошибаться:)', | |
'Вещание потока сознания в эфир будет расцениваться как флуд, старайтесь формулировать свои мысли четко.', | |
'Профессиональным хейтерам тут не рады.', | |
) |
cache: | |
paths: | |
- .cache/pip | |
- venv/ | |
stages: | |
- test | |
before_script: | |
- python -V # Print out python version for debugging |
import factory | |
from faker import Faker | |
from phonenumber_field.modelfields import PhoneNumberField | |
from routing.tests.factories import IterCountryFactory, FAKER_LOCALE | |
from sender.models import List, Contact, Sender, Message, MESSAGE_MAX_LENGTH, \ | |
SendBatch | |
from users.tests.factories import AdminUserFactory | |
FROM python:3.6 | |
ENV PYTHONUNBUFFERED=1 \ | |
HOME_DIR=/home/... \ | |
USER_NAME=... \ | |
USER_GROUP=... | |
RUN useradd -u 1000 -d ${HOME_DIR} -G ${USER_GROUP} ${USER_NAME} | |
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - && \ | |
apt-get update && apt-get install -y --no-install-recommends nodejs |
import os | |
import json | |
from collections import namedtuple | |
from unittest.mock import MagicMock | |
from unittest import TestCase | |
class BaseApiHandlerTestCase(BaseTestCase): | |
def _test_api_handler(self, handler: callable, event: dict, expected_status: int, empty_response: bool = False, | |
compare_with: BaseEntity = None): |
swagger: "2.0" | |
info: | |
description: "Influenced by: https://blog.philipphauer.de/restful-api-design-best-practices/ and http://jsonapi.org/" | |
version: "0.3.0" | |
title: "Chronica API" | |
host: "0.0.0.0:8000" | |
basePath: "/v1" | |
tags: | |
- name: "JSON Schemas" | |
description: "API for user-defined data types" |
def user_auth(func): | |
""" User authentication and authorization """ | |
@wraps(func) | |
def wrapper(*args, **kwargs): | |
user_id = ANONYMOUS_USER_ID | |
user_groups = [ANONYMOUS_GROUP] | |
jwt_token = kwargs.get('event', {}).get('headers', {}).get(JWT_TOKEN_HEADER) | |
if jwt_token: | |
try: |
As configured in my dotfiles.
start new:
tmux
start new with session name:
import re | |
from functools import partial | |
from django.contrib.auth.hashers import check_password | |
from django.core.exceptions import ValidationError | |
from django.template.defaultfilters import pluralize | |
from django.utils.translation import ugettext_lazy as _ | |
from users.models import PasswordHistory |