Skip to content

Instantly share code, notes, and snippets.

View rmariano's full-sized avatar
๐Ÿ˜€
Technically fearless; Exemplary practitioner.

Mariano Anaya rmariano

๐Ÿ˜€
Technically fearless; Exemplary practitioner.
View GitHub Profile
class EnvironmentVariable:
"""A descriptor that helps fetching environment variables.
To be used like
class Environment:
LOG_LEVEL = EnvironmentVariable(default="INFO")
CONFIG_PATH = EnvironmentVariable(is_required=True)
"""Descriptors & Decorators
Example 2: A decorator that changes the signature of the function.
"""
from functools import wraps
class DomainObject:
"""Dummy object that requires the common parameters for processing"""
def __init__(self, *args):
self.args = args
"""An example of a descriptor with a ``__delete__()`` method.
The code is for illustration purposes only, and it does not correspond to any
actual implementation.
"""
class ProtectedAttribute:
"""A class attribute that can be protected against deletion"""
def __set_name__(self, owner, name):
"""Mutable objects as class attributes."""
import logging
logger = logging.getLogger(__name__)
class Query:
PARAMETERS = {"limit": 100, "offset": 0}
def run_query(self, query, limit=None, offset=None):
"""A small script to find all months that have a Monday 25th for a particular
year.
Input: year in format YYYY
Output: print list of dates that are a Monday 25 in that year
"""
import re
import sys
from typing import Iterator
from datetime import date
@rmariano
rmariano / Local-development-for-Python-gRPC.md
Last active March 24, 2020 08:14
Testing out async grpc

gRPC Python: Instructions for Local Development

Note: The compilation of the C files (make) requires GCC version 7. Maybe LLVM?

  1. Git clone & init the project
git clone ...
git submodule update --init
@rmariano
rmariano / README.md
Last active July 17, 2019 13:03
Proposal for exposing the aiogrpc interface to users

Aio gRPC

A Proposal from the user's perspective

As a user, to use the new implementation of gRCP in the asynchronous version, I will compile by passing a specific flag:

$ python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. proto/echo.proto --aiogrpc

This compiles the stubs, generated with the asynchronous code.

@rmariano
rmariano / discovering_descriptors.py
Last active July 11, 2017 18:14
Discovering Descriptors
"""Code for the talk "Discovering Descriptors"
> PyCon CZ 2017 - 8 to 10 June - Prage, Czech Republic
June 9th, 2017 11:00 CET
> EuroPython 2017 - 9 to 16 July - Rimini, Italy
July 11th, 2017 15:45 CET
https://ep2017.europython.eu/conference/talks/discovering-descriptors
Python 3.6
@rmariano
rmariano / main.go
Created March 22, 2017 08:42 — forked from divan/main.go
Golang database/sql+http example (postgres)
// Run PostgreSQL server:
// docker run -e POSTGRES_PASSWORD="" -p 5432:5432 postgres
// Monitor running processes:
// watch -n 1 'echo "select pid,query_start,state,query from pg_stat_activity;" | psql -h localhost -U postgres
//
// For all handlers, call to db takes 5 seconds,
//
// Three endpoints:
// - "/" - take 5 seconds
// - "/ctx" - take 1 seconds, due to 1 second cancellation policy
@rmariano
rmariano / oofunctional.py
Created January 5, 2017 10:20
Functional programming wrapped in object
"""
Object that allows chaining functional programming operations
over a provided data set.
"""
from operator import add
from functools import partialmethod, reduce
class ChainedFunctional: