Skip to content

Instantly share code, notes, and snippets.

View yucer's full-sized avatar

Yurdik Cervantes yucer

View GitHub Profile
@yucer
yucer / gmail_delete.py
Last active March 25, 2024 22:27
Python script to Bulk delete google emails with gmail API
#!/usr/bin/env python3
import argparse
import datetime as dt
import os.path
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
@yucer
yucer / docker-compose-pgadmin.yml
Created September 6, 2023 09:47 — forked from SergioDiniz/docker-compose-pgadmin.yml
Docker Compose config to postgres and dpage/pgadmin4
version: '3.5'
services:
postgres:
container_name: postgres_container
image: postgres
environment:
POSTGRES_USER: ${POSTGRES_USER:-postgres}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
POSTGRES_DB: ${POSTGRES_DB:-app_db}
@yucer
yucer / pyproject.toml
Created August 28, 2023 12:31
poetry config after poetry init --no-interaction
[tool.poetry]
name = "airflow-dbt2"
version = "0.1.0"
description = ""
authors = ["Your Name <you@example.com>"]
readme = "README.md"
[tool.poetry.dependencies]
python = "^3.10"
@yucer
yucer / athena_query_iso8601_opt_seconds.sql
Created April 15, 2023 15:43
iso8601 in athena queries: optional seconds and microseconds in UTC
select format_datetime(current_timestamp, 'YYYY-MM-dd''T''HH:mm''Z''')
WITH CTE AS (
SELECT
concat(
substr('20220416T070044.243Z', 1, 4), '-',
substr('20220416T070044.243Z', 5, 2), '-',
substr('20220416T070044.243Z', 7, 2), 'T',
substr('20220416T070044.243Z', 10, 2), ':',
substr('20220416T070044.243Z', 12, 2), ':',
substr('20220416T070044.243Z', 14)
) as ts
@yucer
yucer / archive.py
Created August 21, 2022 09:28 — forked from yucer-elbt/archive.py
Python Mixin for SQLAlchemy autopartition by week (postgres)
import logging
from sqlalchemy.sql import text
_logger = logging.getLogger(__name__)
class ArchivableMixin:
"""Model which can be duplicated via one special materialized view"""
@yucer
yucer / ubuntu-isolate-workspaces.sh
Created February 17, 2021 12:26
Isolate ubuntu gnome dash to the current workspace
# show only icons on the dock that belong to app in the current workspace
gsettings set org.gnome.shell.app-switcher current-workspace-only true
gsettings set org.gnome.shell.extensions.dash-to-dock isolate-workspaces true
gsettings set org.gnome.shell.extensions.dash-to-dock isolate-monitors true
# https://varhowto.com/forum-topic/ubuntu-dock-how-to-show-windows-in-current-workspace-only/
# https://askubuntu.com/questions/1068097/separate-workspaces-in-ubuntu-18-04-desktop
@yucer
yucer / install_pyenv_ubuntu_20_10.sh
Last active May 14, 2023 06:29
install pyenv ubuntu 20.10
#!/bin/bash
# install pyenv dependencies
sudo apt-get install git make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev curl
# install pyenv
curl https://pyenv.run | bash
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
@yucer
yucer / ask_sudo_from_python.py
Created September 11, 2020 09:55
ask sudo programatically from python
import os, subprocess
from getpass import getpass
def is_root():
return os.geteuid() == 0
def test_sudo(pwd=""):
args = "sudo -S echo OK".split()
kwargs = dict(stdout=subprocess.PIPE,
encoding="ascii")
@yucer
yucer / 0001-issue-3163-ignore-duplicated-rows-for-translation-im.patch
Last active August 21, 2022 09:56
debug duplicated translation import rows
From de641d9474417203e707c0932185c1dccfd39e96 Mon Sep 17 00:00:00 2001
From: Yurdik Cervantes <ycervantes@elegosoft.com>
Date: Wed, 4 Dec 2019 12:16:48 +0100
Subject: [FIX] ignore duplicated rows for translation imports
In the cases where conflicting translation rows are imported (for
example `.po` vs `.pot` files) the import queries during the database
update fail with one stop error.
With this change, just one of the duplicated rows to import is left,