A "Best of the Best Practices" (BOBP) guide to developing in Python.
- "Build tools for others that you want to be built for you." - Kenneth Reitz
- "Simplicity is alway better than functionality." - Pieter Hintjens
web: gunicorn -w4 -b0.0.0.0:$PORT app:app |
application: <app-engine-id> | |
version: 1 | |
runtime: python27 | |
threadsafe: yes | |
api_version: 1 | |
handlers: | |
- url: / | |
static_files: _build/html/index.html | |
upload: _build/html/index.html |
from django.forms import ModelForm | |
from django.forms.models import inlineformset_factory | |
from models import Sponsor, Sponsorship | |
class SponsorForm(ModelForm): | |
class Meta: | |
model = Sponsor |
export PIP_DOWNLOAD_CACHE=/var/lib/jenkins/pip-cache | |
export AQUIPAGO_ENVIRONMENT=testing | |
make | |
env/bin/pip install -r requirements/base.txt --download-cache=/var/lib/jenkins/pip-cache --use-mirrors --timeout 1 | |
env/bin/pip install -r requirements/project.txt --download-cache=/var/lib/jenkins/pip-cache --use-mirrors --timeout 1 | |
env/bin/python runtests.py || : | |
env/bin/pylint --rcfile=.pylintrc aquipago --ignore=test > reports/pylint.txt || : |
#!/usr/bin/env python | |
import os | |
import zipfile | |
""" | |
Helper class that lets one add whole directory contents. | |
License | |
-------------------- |
# Add this configuration to your Django settings.py file | |
LOGGING = { | |
'version': 1, | |
'disable_existing_loggers': False, | |
'formatters': { | |
'verbose': { | |
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s', | |
'datefmt': "%d/%b/%Y %H:%M:%S", | |
}, |
var sum = 0; | |
// use querySelector to find all second table cells | |
var cells = document.querySelectorAll("td:nth-of-type(2)"); | |
for (var i = 0; i < cells.length; i++){ | |
sum+=parseFloat(cells[i].firstChild.data); | |
} |
<!-- DIV --> | |
{% if form.errors %} | |
<div class="alert alert-danger alert-dismissible" role="alert"> | |
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button> | |
{% for field in form %} | |
{% if field.errors %} | |
<span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> | |
<span>{{ field.label }}: {{ field.errors|striptags }}</span><br> | |
{% endif %} | |
{% endfor %} |
============== | |
git commands | |
============== | |
To rename branch | |
================= | |
git branch -m old_branch new_branch # Rename branch locally | |
git push origin :old_branch # Delete the old branch | |
git push --set-upstream origin new_branch # Push the new branch, set local branch to track the new remote |