Skip to content

Instantly share code, notes, and snippets.

View jasonbot's full-sized avatar
🥉

Jason Scheirer jasonbot

🥉
View GitHub Profile
@jasonbot
jasonbot / layers.py
Last active December 27, 2015 15:18
List of layers by feature type
point_layers = []
line_layers = []
polygon_layers = []
for lyr in arcpy.mapping.ListLayers(mxd):
if lyr.isFeatureLayer:
# Try to get .shapeType attribute from data source.
# For XY event layers there is no shape type (it's a
# CSV or something) so assume it's a Point layer.
shape_type = getattr(arcpy.Describe(lyr.dataSource),
@jasonbot
jasonbot / wrap_out_writer.py
Created December 9, 2013 18:08
Use to make GP tools compatible with multiprocessing (usually they replace sys.stdout with a GP version that doesn't have all the same methods). Just call fix_stdout() after importing arcpy.
import arcpy
import sys
class WrappedStream(object):
"Wraps sys.stdout to have all the usual methods of a file object"
def __init__(self, wrap):
self._wrap = wrap
def close(self, *args, **kw):
try:
@jasonbot
jasonbot / runthroughredlands.json
Last active January 3, 2016 17:09
Run Through Redlands Course
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@jasonbot
jasonbot / terrible_trace.py
Created January 29, 2014 00:45
A terrible thing: print the source of every line of Python code as it executes in your scripts. Please don't actually use it. Please.
import inspect
import sys
def tracefunction(frame, event, arg):
if event == "line":
info = inspect.getframeinfo(frame)
fname, lineno, fn = info.filename, info.lineno, info.function
with open(fname, 'rb') as f:
line = [line.rstrip() for line in f][lineno - 1]
print "Function: {} (in file {}:{}) | {}".format(fname, fn, lineno, line)
@jasonbot
jasonbot / convert2to3.py
Created February 3, 2014 16:41
Alternative to the clunky 2to3 command line script. Streamlined function that will take a Python 2 code string (as unicode), feed it through lib2to3 using all its converters, then return a Python 3 code string.
# coding: utf-8
import lib2to3
import lib2to3.fixes
import lib2to3.refactor
__all__ = ["code_to_py3"]
all_fixes = ["lib2to3.fixes.fix_{}".format(l)
for l in lib2to3.refactor.get_all_fix_names("lib2to3.fixes")]
def export_fc_to_csv(fc, out_csv):
"""
Export each vertex in a line or poly fc to a csv with OID
user requested at http://arcpy.wordpress.com/about/#comment-348
example
import geom_snippets
geom_snippets.export_fc_to_csv(r"c:\proj\fc1.shp", r"c:\proj\fc1.csv")
@jasonbot
jasonbot / MaxSum.cpp
Created November 21, 2014 19:42
Maximum non-adjacent sum of a list of numbers
// MaxSum.cpp : Just a silly little problem to solve -- what is the
// maximum sum of non-adjacent numbers in an array?
#include "stdafx.h"
#include <algorithm>
#include <deque>
#include <iostream>
#include <string>
#include <vector>
#! /bin/bash
SESSION_NAME=$( tmux display-message -p '#S' 2> /dev/null )
WINDOW_TITLE="Workspace"
check_session()
{
if [ x$SESSION_NAME == "x" ]
then
echo "Please do this in a tmux session"
import time
from github3.models import GitHubCore
def throttle_github(github_like, requests_needed):
"""Takes any github3 objects (repo, org, etc) and will throttle if there are
not at least requests_needed requests remianing before the API starts
throttling. If there are not enough requests left, sleep until the window
resets. Note this uses up one API call to get the rate limit headers, so be
@jasonbot
jasonbot / toilet.txt
Created November 8, 2017 19:41
A list of fonts available to toilet (`brew install toilet`)
ascii12
-------
mmmm mmmmmmmm mm mmm mm mmmmm mm mm mmmmmm
m#""""# """##""" #### ### ## ##"""## ## ## ##""""#m
##m ## #### ##"# ## ## ## ## ## ## ##
"####m ## ## ## ## ## ## ## ## ## ## ######"
"## ## ###### ## #m## ## ## ## ## ##
#mmmmm#" ## m## ##m ## ### ##mmm## "##mm##" ##
""""" "" "" "" "" """ """"" """" ""