Skip to content

Instantly share code, notes, and snippets.

View romulocollopy's full-sized avatar

Rômulo Collopy romulocollopy

View GitHub Profile
import dataclasses
import datetime
from typing import Protocol
class InvoiceProtocol(Protocol):
id: int
paid: bool
late: bool
due_date: datetime.date
# using build
class AsoRepository:
def __init__(self, mapper, model_class):
self.mapper = mapper
self.model_class = model_class
def get_asos_by_group_id(self, group_id):
qs = self._get_queryset().filter(group_brnet_id=group_id)
class RuleSet:
def __init__(self):
self.dependencies = dict()
self.conflicts = dict()
def addDep(self, a, b):
if a not in self.dependencies:
self.dependencies[a] = set()
@romulocollopy
romulocollopy / pythonic_abstract_class.ipynb
Last active September 18, 2016 14:54
Example of super behavior with and without abc
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@romulocollopy
romulocollopy / singleton.ipynb
Last active September 11, 2016 15:28
Herança-Singleton
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@romulocollopy
romulocollopy / embrulhador.py
Last active September 11, 2016 13:39
Python-Patters Embrulhador Padrão
# qual a boa prática para definir um embrulhador padrão?
# 1. diretamente nos kwargs
class MyOtherEmbrulhadorClass:
def __init__(self, embrulhado=MyEmbrulho)
self.embrulhador = embrulhador()
# 2. Isso seria nemecessário apenas se MyEmbrulho fosse uma instância de um objeto mutável, não uma classe?
# Esse é um padrão muito usado no Django, talvez porque a gente cria classes que o próprio Django tem a
@romulocollopy
romulocollopy / jsondecoder.py
Created March 25, 2015 21:59
Código fonte do Json Decoder do Python
class JSONDecoder(object):
"""Simple JSON <http://json.org> decoder
Performs the following translations in decoding by default:
+---------------+-------------------+
| JSON | Python |
+===============+===================+
| object | dict |
+---------------+-------------------+
@romulocollopy
romulocollopy / ajax.js
Last active August 29, 2015 14:14
Custom ajax function with raw JS
(function(){
function Ajax(){
Ajax.prototype.get = function(url, dataObj){
var xmlhttp = newXmlHttpRequest()
var urlWithParams = urlWithGETParams(url, dataObj);
var closure = setCallBack(xmlhttp)
xmlhttp.open("GET", urlWithParams, true);
xmlhttp.send();
return closure
def choices():
SEMANA = gera_semanas()
PUBLICADO = (
(True, 'Publicado'),
(False, 'Em Rascunho'),
)
return SEMANA, PUBLICADO
def gera_semanas():
@romulocollopy
romulocollopy / make.environment
Created December 3, 2014 17:57
make environment - openmining
Requirement already satisfied (use --upgrade to upgrade): flake8 in ./lib/python2.7/site-packages (from -r requirements_dev.txt (line 1))
Requirement already satisfied (use --upgrade to upgrade): coverage in ./lib/python2.7/site-packages (from -r requirements_dev.txt (line 2))
Requirement already satisfied (use --upgrade to upgrade): webtest in ./lib/python2.7/site-packages (from -r requirements_dev.txt (line 3))
Requirement already satisfied (use --upgrade to upgrade): mkdocs in ./lib/python2.7/site-packages (from -r requirements_dev.txt (line 4))
Requirement already satisfied (use --upgrade to upgrade): pyflakes>=0.8.1 in ./lib/python2.7/site-packages (from flake8->-r requirements_dev.txt (line 1))
Requirement already satisfied (use --upgrade to upgrade): pep8>=1.5.7 in ./lib/python2.7/site-packages (from flake8->-r requirements_dev.txt (line 1))
Requirement already satisfied (use --upgrade to upgrade): mccabe>=0.2.1 in ./lib/python2.7/site-packages (from flake8->-r requirements_dev.txt (line 1))
Requiremen