Skip to content

Instantly share code, notes, and snippets.

# -*- coding: UTF-8 -*-
from __future__ import absolute_import
from __future__ import unicode_literals
from django.db import models
from django.db.models.query import QuerySet
from django.core.urlresolvers import reverse
from django.utils.timezone import now
from django.utils.encoding import python_2_unicode_compatible
@brutus
brutus / tasks.py
Created October 12, 2014 23:19
A collection of tasks for *Invoke* to set up a Django project with Gunicorn on Uberspace.
# -*- coding: UTF-8 -*-
"""
A collection of tasks for `Invoke`_ to help setting up a `Django`_ project
with `Gunicorn`_ on `Uberspace`_ accounts.
All information for this script has to be set in a JSON file
called ``settings.json`` in the same directory like this::
{
@brutus
brutus / invoke.yaml
Last active August 29, 2015 14:20
Invoke YAML loading trouble
deployments:
testing:
host: xyz.domain.tld
user: username
destination: /home/username/html/misc/path/
sources:
- index.html
- img
@brutus
brutus / validators.py
Last active August 29, 2015 14:20
Django DateTime Validator
from django.core.exceptions import ValidationError
from django.utils.deconstruct import deconstructible
@deconstructible
class DateValidator():
"""
Überprüft ob *ein Datum* vor oder nach einem gegebenen anderen Datum liegt.
@brutus
brutus / add.py
Created October 1, 2015 15:15
Mutagen MP3 Image Error
def add_image(
filenames, image_path, description='Cover', img_type=3, encoding=3
):
"""
Adds an image to MP3 from *filenames*.
Args:
filenames (lits): paths to the MP3
image_path (string): path to image file
@brutus
brutus / toast.py
Last active July 3, 2017 16:36
A very basic Ansible module for toast.
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
Ansible module to interact with `toast`_.
To use this from Ansible, copy it in your `library`_::
cd path/to/library
git clone https://gist.github.com/brutus/ba3b110c3041777e2e976b61e924b18c toast
@brutus
brutus / tasks.py
Created May 17, 2017 18:25
Collection of invoke tasks to test `dry` setting.
"""
Quick check for `dry` / `ignore_dry` args to ``run``.
An ``invoke undry dry`` should result in::
[undry] Hello World!
[undry] Hello other World!
echo '[isdry] Hello World!'
[isdry] Hello other World!
@brutus
brutus / collection_pipeline.py
Last active June 16, 2017 18:06
Pipeline class to collect items using Scrapy
"""
This pipeline collects yielded items to process them after a crawl finishes.
Overview
========
For each yielded item :meth:`process_item` is called — and handles the storing
of items for later use. After all items are yielded, :meth:`close_spider` is
called and assembles the data from the previously collected items
(:meth:`assemble_collection`) and dumps the results (:meth:`dump_collection`).
@brutus
brutus / migrate_collation.py
Created June 30, 2017 14:51
Converts the collation and character set of a database using a Django migration.
"""
Converts the *collation* and *character set* of a database using a Django
migration. Data in the tables is converted if needed.
"""
from django.db import migrations
def get_conversion_function(collation, character_set='utf8'):
@brutus
brutus / Makefile
Created August 16, 2017 13:22
Makefile for Python projects
# Python Project
#
# Some targets to lint your code, run tests, builds and do some cleanup.
# Works fine with tox and Travis, etc.
#
# This setup assumes that you take care of the virtual environment setup
# yourself and that the needed requirements are installed. And also that
# you configure your tools. So edit your own `setup.cfg` or `.tox.ini`
# with the settings needed for the tools.
#