Note: The compilation of the C files (make) requires GCC version 7. Maybe LLVM?
- Git clone & init the project
git clone ...
git submodule update --init| import unittest | |
| def coalesce(*args): | |
| for a in args: | |
| if a is not None: | |
| return a | |
| else: | |
| raise ValueError("No values found to return") | |
| 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 |
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 --aiogrpcThis compiles the stubs, generated with the asynchronous code.
| """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 |
| // 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 |