Skip to content

Instantly share code, notes, and snippets.

View Justintime50's full-sized avatar

Justin Hammond Justintime50

View GitHub Profile
@Justintime50
Justintime50 / package-non-python-assets.md
Created September 23, 2021 16:43
Learn how to package non-Python assets into your Python Package

Package non-Python Assets into your Python Package

There are times where you may need to include non-Python assets in your Python package for distribution. This may include data files or JSON assets from a submodule for example that your Python package needs to reference. By default, Python will not include these assets in the bdist/sdist. You can either include an empty __init__.py file in that submodule (even if the project isn't Python) and rely on the magic of packages=setuptools.find_packages() in setup.py or you can explicitly include those non-Python assets by using the following steps.

  1. In setup.py, include an array of locations to include. These are glob matching patterns. An example of this looks like the following:
package_data={
    'top_level_package': [
 'path/to/assets/one/*.json',
@Justintime50
Justintime50 / aws_ip_range_parser.py
Created September 1, 2021 15:45
Gets the complete list of AWS IP ranges and parses the results
import requests
# Gets the complete list of AWS IP ranges and parses the results
# Usage: venv/bin/python aws_ip_range_parser.py
AWS_IP_URL = 'https://ip-ranges.amazonaws.com/ip-ranges.json'
REGIONS_TO_FILTER = [
'us-east-2',
'us-west-2',
]
@Justintime50
Justintime50 / postal-codes.json
Created June 27, 2021 06:09 — forked from jamesbar2/postal-codes.json
Global postal codes regex formats
[{
"Note": "The first two digits (ranging from 10–43) correspond to the province, while the last two digits correspond either to the city/delivery zone (range 01–50) or to the district/delivery zone (range 51–99). Afghanistan Postal code lookup",
"Country": "Afghanistan",
"ISO": "AF",
"Format": "NNNN",
"Regex": "^\\d{4}$"
}, {
"Note": "With Finland, first two numbers are 22.",
"Country": "Åland Islands",
"ISO": "AX",
@Justintime50
Justintime50 / es5-es6-js-imports.txt
Created June 21, 2021 06:09
Examples of ES6 to ES5 Javascript Imports
import moment from "moment";
=> const moment = require("moment");
import React from "react";
=> const React = require("react");
import text from "../../helpers/text";
=> const text = require("../../helpers/text");
import Button from "../../elements/buttons/Button";
@Justintime50
Justintime50 / install-xdebug-macos.md
Created May 23, 2021 05:30
Learn how to install PHP's Xdebug on macOS.

Install Xdebug on macOS

Installing Xdebug on macOS has changed a lot through the years. The most recent workflow to accomplish this is as follows:

# Install PHP
brew install php
# brew install [email protected]

# Install GNU `sed` and `grep`, installer will fail without them
@Justintime50
Justintime50 / find-php-ini.md
Created May 23, 2021 05:10
Find your php.ini File

Find your php.ini File

I always forget where my php.ini file is and which one is configured. Use the following command to find it:

php -i | grep php.ini

# Output
Configuration File (php.ini) Path => /usr/local/etc/php/7.4
Loaded Configuration File => /usr/local/etc/php/7.4/php.ini
@Justintime50
Justintime50 / import-export-sql-docker.md
Last active October 10, 2021 06:39
Learn how to import or export SQL from a Docker Container

Import or Export SQL from a Docker Container

To export SQL, you must have permissions to do so (AKA: root).

# Importing SQL
docker exec -i CONTAINER_NAME mysql -uUSERNAME -pPASSWORD DATABASE_NAME < MY_FILE.sql

# Exporting SQL
docker exec -i CONTAINER_NAME mysqldump -uroot -p DATABASE_NAME &gt; MY_FILE.sql
@Justintime50
Justintime50 / remote-git-repo-default-branch-name.md
Last active January 4, 2023 23:51
Grab the remote repo's default branch name

Grab a Remote Repo's Default Branch Name

git remote show REMOTE_REPO_URL | grep 'HEAD branch' | cut -d' ' -f5
@Justintime50
Justintime50 / limit-concurrent-threads-python.py
Created April 10, 2021 03:46
An example of how to limit concurrent threads in Python
import time
from threading import BoundedSemaphore, Thread
def main():
max_num_threads = 100
thread_limiter = BoundedSemaphore(max_num_threads)
# OS's have limits on the number of threads that can be opened at once,
# be aware of that with this number (eg: don't try something like 10,000+)
@Justintime50
Justintime50 / git-branch-checker.sh
Created April 6, 2021 02:54
# Prints the local branches of your git repos to console. Perfect for helping clean up
#!/bin/bash
# Prints the local branches of your git repos to console. Perfect for helping clean up
# USAGE: git-branch-checker.sh "$HOME/git"
main() {
echo "Getting branches of each project"
check_git_branches "$1"
}