In [1]:
import json
import datetime
# Necessary imports 
import sys
home_directory = '/dfs/scratch2/fcipollone'
sys.path.append(home_directory)
import os
import time
from nbminer.notebook_miner import NotebookMinerString
from nbminer.notebook_miner import NotebookMiner
from nbminer.cells.cells import Cell
from nbminer.features.features import Features
from nbminer.stats.summary import Summary
from nbminer.stats.multiple_summary import MultipleSummary
from nbminer.encoders.ast_graph.ast_graph import *
from nbminer.pipeline.pipeline import Pipeline
from nbminer.features.features import Features
from nbminer.preprocess.get_ast_features import GetASTFeatures
from nbminer.preprocess.get_imports import GetImports
from nbminer.preprocess.get_docstrings import GetDocstrings
from nbminer.preprocess.resample_by_node import ResampleByNode
from nbminer.encoders.ast_graph.postorder_hash import PostorderHash
from nbminer.encoders.ast_graph.function_hash import FunctionHash
from lib2to3 import refactor

In [10]:
def get_ast_sizes(ph):
    templates = [key for key in ph.templates.template_lookup.keys()]
    ast_sizes = {}
    import tqdm
    for el in tqdm.tqdm(templates):
        avg = 0
        for item in ph.templates.template_lookup[el]:
            avg += len([l for l in ast.walk(item)])
        avg = int((avg/len(ph.templates.template_lookup[el])))
        if avg not in ast_sizes:
            ast_sizes[avg] = []
        ast_sizes[avg].append(el)
    return ast_sizes

def print_summary(ph, ast_sizes, title):
    print('*'*37)
    print('* ',title,' *')
    print('*'*37)
    rep_sizes = [5, 6, 7, 8, 9, 10, 12, 15, 18, 20, 25, 30, 35, 40, 45, 50, 100, 200]
    number_examples = 3
    print('\n')
    for s in rep_sizes:
        print('Hashes whose average ast size is',s)
        current = 0
        temp = None
        random.shuffle(ast_sizes[s])
        while 1:
            if len(ast_sizes[s]) <= current:
                raise ValueError('There are no templates with avg size',s,'that have enough examples')
            temp = ast_sizes[s][current]
            if len(ph.templates.template_lookup[temp]) >= number_examples:
                break
            current += 1
        vals = random.sample(ph.templates.template_lookup[temp], number_examples)
        for i in range(number_examples):
            print('Example',i)
            print('-'*10)
            print(astor.to_source(vals[i]))
            print('-'*50)
        print('*'*50)

In [3]:
import pickle
ph = pickle.load(open('../../StackOverflow/trends/postorder_hash_file.pkl','rb'))

In [5]:
ast_sizes = get_ast_sizes(ph)


100%|██████████| 1489092/1489092 [04:24<00:00, 5622.83it/s]

In [6]:
print_summary(ph, ast_sizes, 'Summary of regular postorder hash')


*************************************
*  Summary of regular postorder hash  *
*************************************


Hashes whose average ast size is 2
Example 0
----------
break

--------------------------------------------------
Example 1
----------
break

--------------------------------------------------
Example 2
----------
break

--------------------------------------------------
**************************************************
Hashes whose average ast size is 5
Example 0
----------
my_function()

--------------------------------------------------
Example 1
----------
my_function()

--------------------------------------------------
Example 2
----------
my_function()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 6
Example 0
----------
compile('string')

--------------------------------------------------
Example 1
----------
compile('string')

--------------------------------------------------
Example 2
----------
compile('string')

--------------------------------------------------
**************************************************
Hashes whose average ast size is 7
Example 0
----------
assert 'string' not in var

--------------------------------------------------
Example 1
----------
assert 'string' not in var

--------------------------------------------------
Example 2
----------
assert 'string' not in var

--------------------------------------------------
**************************************************
Hashes whose average ast size is 8
Example 0
----------
var.Object('string')

--------------------------------------------------
Example 1
----------
var.Object('string')

--------------------------------------------------
Example 2
----------
var.Object('string', 'string')

--------------------------------------------------
**************************************************
Hashes whose average ast size is 9
Example 0
----------
var.set_display(var)

--------------------------------------------------
Example 1
----------
var.set_display(var)

--------------------------------------------------
Example 2
----------
var.set_display(var)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 10
Example 0
----------
def constant_string(length):
    return 'string' * var

--------------------------------------------------
Example 1
----------
def k_urandom(length):
    return 'string' * var

--------------------------------------------------
Example 2
----------
def repeat(number):
    return 'string' * var

--------------------------------------------------
**************************************************
Hashes whose average ast size is 12
Example 0
----------
var = var.find_all('string', id='string')

--------------------------------------------------
Example 1
----------
var = var.find_all('string', class_='string')

--------------------------------------------------
Example 2
----------
var = var.find_all('string', class_='string')

--------------------------------------------------
**************************************************
Hashes whose average ast size is 15
Example 0
----------
var = plt.pcolormesh(var, alpha=0.0)

--------------------------------------------------
Example 1
----------
var = var.pcolormesh(var, alpha=0.0)

--------------------------------------------------
Example 2
----------
var = pl.pcolormesh(var, vmin=0, vmax=1)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 18
Example 0
----------
[var.append(var(var)) for var in var]

--------------------------------------------------
Example 1
----------
[var.append(var(var)) for var in var]

--------------------------------------------------
Example 2
----------
[var.append(var(var)) for var in var]

--------------------------------------------------
**************************************************
Hashes whose average ast size is 20
Example 0
----------
var = [var[0] for var in var.most_common(4)]

--------------------------------------------------
Example 1
----------
var = [var[0] for var in var.most_common(6)]

--------------------------------------------------
Example 2
----------
var = [var[0] for var in var.most_common(10)]

--------------------------------------------------
**************************************************
Hashes whose average ast size is 25
Example 0
----------
var = -var.reduce_sum(var * var.log(var + 1e-10))

--------------------------------------------------
Example 1
----------
var = -tf.reduce_sum(var * tf.log(var + 1e-12))

--------------------------------------------------
Example 2
----------
var = -tf.reduce_sum(var * tf.log(var + 1e-12))

--------------------------------------------------
**************************************************
Hashes whose average ast size is 30
Example 0
----------
if var >= 300 and var == 0:
    var += var
    var -= var
    var = 1

--------------------------------------------------
Example 1
----------
if var >= 300 and var == 0:
    var += var
    var -= var
    var = 1

--------------------------------------------------
Example 2
----------
if var >= 300 and var == 0:
    var += var
    var -= var
    var = 1

--------------------------------------------------
**************************************************
Hashes whose average ast size is 35
Example 0
----------
var = np.max([np.max(np.fabs(var)), np.max(np.fabs(var))])

--------------------------------------------------
Example 1
----------
var = var.max([var.max(var.fabs(var)), var.max(var.fabs(var))])

--------------------------------------------------
Example 2
----------
var = np.max([np.max(np.fabs(var)), np.max(np.fabs(var))])

--------------------------------------------------
**************************************************
Hashes whose average ast size is 40
Example 0
----------
var[(1), :, (0)] = np.cos(var[(1), :, (0)]) + np.random.normal(0, 0.2, var)

--------------------------------------------------
Example 1
----------
var[(0), :, (0)] = np.cos(var[(0), :, (0)]) + np.random.normal(0, 0.2, var)

--------------------------------------------------
Example 2
----------
var[(1), :, (0)] = np.cos(var[(1), :, (0)]) + np.random.normal(0, 0.2, var)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 45
Example 0
----------
def Screener(group):

    def diff_calc(group):
        var['string'] = var['string'].diff()
        return var['string']
    var['string'] = var(var)
    return var

--------------------------------------------------
Example 1
----------
def Screener(group):

    def diff_calc(group):
        var['string'] = var['string'].diff()
        return var['string']
    var['string'] = var(var)
    return var

--------------------------------------------------
Example 2
----------
def Screener(group):

    def diff_calc(group):
        var['string'] = var['string'].diff()
        return var['string']
    var['string'] = var(var)
    return var

--------------------------------------------------
**************************************************
Hashes whose average ast size is 50
Example 0
----------
var = {'string': var.Color(0, 176, 240), 'string': var.Color(100, 155, 200),
    'string': var.Color(80, 45, 100)}

--------------------------------------------------
Example 1
----------
var = {'string': libtcod.Color(0, 0, 100), 'string': libtcod.Color(130, 110,
    50), 'string': libtcod.Color(50, 50, 150), 'string': libtcod.Color(200,
    180, 50)}

--------------------------------------------------
Example 2
----------
var = {'string': libtcod.Color(255, 0, 255), 'string': libtcod.Color(255, 0,
    255), 'string': libtcod.Color(20, 20, 20), 'string': libtcod.Color(50, 
    50, 50), 'string': libtcod.Color(80, 80, 80), 'string': libtcod.Color(
    120, 120, 120), 'string': libtcod.Color(100, 100, 100), 'string':
    libtcod.Color(180, 180, 180)}

--------------------------------------------------
**************************************************
Hashes whose average ast size is 100
Example 0
----------
def bubblesort(mylist):
    for var in range(0, len(var) - 1):
        for var in range(0, len(var) - 1 - var):
            if var[var] > var[var + 1]:
                var[var], var[var + 1] = var[var + 1], var[var]
    return var

--------------------------------------------------
Example 1
----------
def bubbleSort(friendList):
    for var in range(0, len(var) - 1):
        for var in range(0, len(var) - 1 - var):
            if var[var] > var[var + 1]:
                var[var], var[var + 1] = var[var + 1], var[var]
    return var

--------------------------------------------------
Example 2
----------
def bubblesort(mylist):
    for var in range(0, len(var) - 1):
        for var in range(0, len(var) - 1 - var):
            if var[var] > var[var + 1]:
                var[var], var[var + 1] = var[var + 1], var[var]
    return var

--------------------------------------------------
**************************************************
Hashes whose average ast size is 200
Example 0
----------
for var in range(len(var)):
    var = var = 0
    var = 50
    var = var(var)
    for var in range(var):
        var(var, 1.0 / var[var])
    for var in range(var):
        var(var, 1.0 / var[var])
        var = var(var)
        var = var(var)
        var = var + var
        var = var + var
        var[var] = var / var ** 2
        var[var] = var / var ** 2
        var[var] = (var[var] ** 2 * (var / var ** 2) * var - (var / var ** 
            2) ** 2) / var ** 2

--------------------------------------------------
Example 1
----------
for var in range(len(var)):
    var = var = 0
    var = 100
    var = var(var)
    for var in range(var):
        var(var, 1.0 / var[var])
    for var in range(var):
        var(var, 1.0 / var[var])
        var = var(var)
        var = var(var)
        var = var + var
        var = var + var
        var[var] = var / var ** 2
        var[var] = var / var ** 2
        var[var] = (var[var] ** 2 * (var / var ** 2) * var - (var / var ** 
            2) ** 2) / var ** 2

--------------------------------------------------
Example 2
----------
for var in range(len(var)):
    var = var = 0
    var = 10
    var = var(var)
    for var in range(var):
        var(var, 1.0 / var[var])
    for var in range(var):
        var(var, 1.0 / var[var])
        var = var(var)
        var = var(var)
        var = var + var
        var = var + var
        var[var] = var / var ** 2
        var[var] = var / var ** 2
        var[var] = (var[var] ** 2 * (var / var ** 2) * var - (var / var ** 
            2) ** 2) / var ** 2

--------------------------------------------------
**************************************************

In [7]:
import pickle
ph_func = pickle.load(open('../../StackOverflow/trends/postorder_hash_file_function_hash.pkl','rb'))

In [8]:
ast_sizes_func = get_ast_sizes(ph_func)


100%|██████████| 697583/697583 [04:59<00:00, 2332.97it/s]

In [11]:
print_summary(ph_func, ast_sizes_func, 'Summary of function hash')


*************************************
*  Summary of function hash  *
*************************************


Hashes whose average ast size is 5
Example 0
----------
toc()

--------------------------------------------------
Example 1
----------
toc()

--------------------------------------------------
Example 2
----------
var.toc()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 6
Example 0
----------
init_session()

--------------------------------------------------
Example 1
----------
init_session()

--------------------------------------------------
Example 2
----------
sp.init_session()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 7
Example 0
----------
var.flushForegroundThreadScheduler()

--------------------------------------------------
Example 1
----------
var.flushForegroundThreadScheduler()

--------------------------------------------------
Example 2
----------
var.flushForegroundThreadScheduler()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 8
Example 0
----------
var = var.getstate()

--------------------------------------------------
Example 1
----------
var = var.getstate()

--------------------------------------------------
Example 2
----------
var = random.getstate()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 9
Example 0
----------
var.chooseCRANmirror(ind=1)

--------------------------------------------------
Example 1
----------
var.chooseCRANmirror(ind=1)

--------------------------------------------------
Example 2
----------
var.utils.chooseCRANmirror(ind=1)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 10
Example 0
----------
PWM.set_duty_cycle(var, 0)

--------------------------------------------------
Example 1
----------
PWM.set_duty_cycle(var, 0)

--------------------------------------------------
Example 2
----------
PWM.set_duty_cycle(var, 100)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 12
Example 0
----------
print('string' + var.get_property('string'))

--------------------------------------------------
Example 1
----------
print(var.get_property('string'))

--------------------------------------------------
Example 2
----------
print('string', var.get_property('string'))

--------------------------------------------------
**************************************************
Hashes whose average ast size is 15
Example 0
----------
var.iter_commits('string', max_count=10, skip=20)

--------------------------------------------------
Example 1
----------
var = (var for var in var for var in var.iter_commits(etag='string'))

--------------------------------------------------
Example 2
----------
var = var.iter_commits(50)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 18
Example 0
----------
var = subprocess.check_output('string'.format(**vars()))

--------------------------------------------------
Example 1
----------
var = check_output(['string', 'string', 'string'.format(**vars())])

--------------------------------------------------
Example 2
----------
var = check_output(['string', 'string', 'string'.format(**vars())])

--------------------------------------------------
**************************************************
Hashes whose average ast size is 20
Example 0
----------
var.get_input()

--------------------------------------------------
Example 1
----------
def roman_v2():
    var = var = input('string')
    var = {'string': 1000, 'string': 500, 'string': 100, 'string': 10,
        'string': 5, 'string': 1}
    var = 0
    for var in var:
        var += var.get(var)
    return var

--------------------------------------------------
Example 2
----------
var = inputparse.get_input(prompt='string', type=str, possible_input=[
    'string', 'string'])

--------------------------------------------------
**************************************************
Hashes whose average ast size is 25
Example 0
----------
var = var.in1d(var, var).reshape(var.shape).astype(int)

--------------------------------------------------
Example 1
----------
def trial_Psidom():
    var = var.in1d(var, var).reshape(var.shape).astype(int)
    return var

--------------------------------------------------
Example 2
----------
var.in1d(var, var).reshape(var.shape).astype(int)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 30
Example 0
----------
def login():
    var = open('string', 'string')
    var = var.readlines()
    var.close()
    var = var[0]
    var = var[2]
    var = var[3]

--------------------------------------------------
Example 1
----------
def get_list():
    var = open('string', 'string')
    var = var.readlines()
    var.close()
    return var

--------------------------------------------------
Example 2
----------
def OpenData():
    global lines
    var = open('string', 'string')
    var = var.readlines()
    var.close()
    return var

--------------------------------------------------
**************************************************
Hashes whose average ast size is 35
Example 0
----------
for var in var.find_all('string'):
    var.append([var.text.encode('string') for var in var.find_all('string')])

--------------------------------------------------
Example 1
----------
for var in var.find_all('string'):
    var.append([var] + [var.text.encode('string') for var in var.find_all(
        'string')])

--------------------------------------------------
Example 2
----------
for var in var.find_all('string'):
    var.append([var.text.encode('string') for var in var.find_all('string')])

--------------------------------------------------
**************************************************
Hashes whose average ast size is 40
Example 0
----------
def chart(request):
    if 'string' in var.GET and var.GET['string']:
        var = var.GET.getlist('string')
        return var('string', {'string': var})
    else:
        return var('string', {})

--------------------------------------------------
Example 1
----------
def function(request, a_id, b_id):
    var = 'string'
    if var.method == 'string':
        var = var.getlist('string')
    return var('string', {'string': var}, context_instance=var(var))

--------------------------------------------------
Example 2
----------
for var in var.files.getlist('string'):
    if var(var) > 50 * 1024 ** 2:
        var(413)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 45
Example 0
----------
class Building(var.Model):
    var = var.CharField('string')
    var = var.FloatField('string')
    var = var.IntegerField('string')
    var = var.FloatField('string')

--------------------------------------------------
Example 1
----------
class Area(var.Model):
    id = var.IntegerField(primary_key=True)
    var = var.CharField(max_length=50)
    var = var.FloatField(max_length=100)
    var = var.FloatField(max_length=100)

--------------------------------------------------
Example 2
----------
class Stock2(models.Model):
    var = models.CharField(max_length=10)
    open = models.FloatField()
    var = models.FloatField()
    var = models.IntegerField()

    def __str__(self):
        return var.ticker
        """string"""

--------------------------------------------------
**************************************************
Hashes whose average ast size is 50
Example 0
----------
class Image(models.Model):
    var = models.CharField(max_length=255)
    var = models.ImageField(upload_to='string', max_length=500, blank=True,
        null=True)
    var = models.ImageField(upload_to='string', max_length=500, blank=True,
        null=True)

    def __str__(self):
        return var.name

--------------------------------------------------
Example 1
----------
class UploadFileForm(var):
    var = var.ImageField(required=False)
    var = var.ImageField(required=False)
    var = var.CharField(required=False)


    class Meta:
        var = var
        var = ['string', 'string', 'string', 'string']

--------------------------------------------------
Example 2
----------
class Post(var.Model):
    var = var.CharField(max_length=50)
    var = var.ImageField(upload_to=var, null=True, blank=True)
    var = var.ImageField(upload_to=var, null=True, blank=True)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 100
Example 0
----------
def recv(self):
    var = var.sock.recv(2)
    var = ord(var[0])
    var = ord(var[1])
    var = var + (var << 8)
    var = var.sock.recv(var)
    if var.debug:
        print('string'),
        print('string'.join('string' % ord(var) for var in var))
    return var

--------------------------------------------------
Example 1
----------
def recv(self):
    var = var.sock.recv(2)
    var = ord(var[0])
    var = ord(var[1])
    var = var + (var << 8)
    var = var.sock.recv(var)
    if var.debug:
        print('string', end='string')
        print('string'.join('string' % ord(var) for var in var))
    return var

--------------------------------------------------
Example 2
----------
def recv(self):
    var = var.sock.recv(2)
    var = ord(var[0])
    var = ord(var[1])
    var = var + (var << 8)
    var = var.sock.recv(var)
    if var.debug:
        print('string', end='string')
        print('string'.join('string' % ord(var) for var in var))
    return var

--------------------------------------------------
**************************************************
Hashes whose average ast size is 200
Example 0
----------
for var in range(len(var)):
    var = var = 0
    var = 50
    var = var(var)
    for var in range(var):
        var(var, 1.0 / var[var])
    for var in range(var):
        var(var, 1.0 / var[var])
        var = var(var)
        var = var(var)
        var = var + var
        var = var + var
        var[var] = var / var ** 2
        var[var] = var / var ** 2
        var[var] = (var[var] ** 2 * (var / var ** 2) * var - (var / var ** 
            2) ** 2) / var ** 2

--------------------------------------------------
Example 1
----------
for var in range(len(var)):
    var = var = 0
    var = 10
    var = var(var)
    for var in range(var):
        var(var, 1.0 / var[var])
    for var in range(var):
        var(var, 1.0 / var[var])
        var = var(var)
        var = var(var)
        var = var + var
        var = var + var
        var[var] = var / var ** 2
        var[var] = var / var ** 2
        var[var] = (var[var] ** 2 * (var / var ** 2) * var - (var / var ** 
            2) ** 2) / var ** 2

--------------------------------------------------
Example 2
----------
for var in range(len(var)):
    var = var = 0
    var = 100
    var = var(var)
    for var in range(var):
        var(var, 1.0 / var[var])
    for var in range(var):
        var(var, 1.0 / var[var])
        var = var(var)
        var = var(var)
        var = var + var
        var = var + var
        var[var] = var / var ** 2
        var[var] = var / var ** 2
        var[var] = (var[var] ** 2 * (var / var ** 2) * var - (var / var ** 
            2) ** 2) / var ** 2

--------------------------------------------------
**************************************************

In [13]:
import pickle
ph_equiv = pickle.load(open('postorder_hash_file_equivalence.pkl','rb'))

In [14]:
ast_sizes_equiv = get_ast_sizes(ph_equiv)


100%|██████████| 1456140/1456140 [05:34<00:00, 4349.83it/s]

In [15]:
print_summary(ph_equiv, ast_sizes_equiv, 'Summary of equivalence hash')


*************************************
*  Summary of equivalence hash  *
*************************************


Hashes whose average ast size is 5
Example 0
----------
do_something()

--------------------------------------------------
Example 1
----------
do_something()

--------------------------------------------------
Example 2
----------
do_something()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 6
Example 0
----------
use('string')

--------------------------------------------------
Example 1
----------
use('string')

--------------------------------------------------
Example 2
----------
use('string')

--------------------------------------------------
**************************************************
Hashes whose average ast size is 7
Example 0
----------
var.expand()

--------------------------------------------------
Example 1
----------
var.expand()

--------------------------------------------------
Example 2
----------
var.expand()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 8
Example 0
----------
var.yview_moveto(0)

--------------------------------------------------
Example 1
----------
var.yview_moveto(0)

--------------------------------------------------
Example 2
----------
var.yview_moveto(1)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 9
Example 0
----------
var.set_preference('string', False)

--------------------------------------------------
Example 1
----------
var.set_preference('string', False)

--------------------------------------------------
Example 2
----------
var.set_preference('string', True)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 10
Example 0
----------
var.estimate(var, var)

--------------------------------------------------
Example 1
----------
var.estimate(var, var)

--------------------------------------------------
Example 2
----------
var.estimate(var, var)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 12
Example 0
----------
var = var(freq=440).out()

--------------------------------------------------
Example 1
----------
var = var(freq=810).out()

--------------------------------------------------
Example 2
----------
var = var(mul=0.01).out()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 15
Example 0
----------
var = var.path.basename(var.name)

--------------------------------------------------
Example 1
----------
var = os.path.basename(var.filename)

--------------------------------------------------
Example 2
----------
var = var.path.basename(var.url)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 18
Example 0
----------
var = var * var.T * var.I

--------------------------------------------------
Example 1
----------
var = var.minute - var.minute % var

--------------------------------------------------
Example 2
----------
var = var.R - var.l_rate * var

--------------------------------------------------
**************************************************
Hashes whose average ast size is 20
Example 0
----------
var = wx.Button(var, -1, 'string', style=wx.BU_EXACTFIT)

--------------------------------------------------
Example 1
----------
var = var.Button(var, -1, 'string', style=var.BU_EXACTFIT)

--------------------------------------------------
Example 2
----------
var = wx.Button(var, -1, 'string', style=wx.BU_EXACTFIT)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 25
Example 0
----------
var = var.DataFrame({'string': var, 'string': var, 'string': var}, index=[0])

--------------------------------------------------
Example 1
----------
var = var.DataFrame({'string': var, 'string': var, 'string': var, 'string':
    var, 'string': var, 'string': var}, columns=['string', 'string',
    'string', 'string', 'string'])

--------------------------------------------------
Example 2
----------
var = pd.DataFrame({'string': var, 'string': var, 'string': var}, columns=[
    'string', 'string', 'string'])

--------------------------------------------------
**************************************************
Hashes whose average ast size is 30
Example 0
----------
var.define('string', {var: 'string', var: ['string', 'string', 'string',
    'string', 'string', 'string']})

--------------------------------------------------
Example 1
----------
var.define('string', {var: 'string', var: 'string', var: ['string',
    'string', 'string', 'string', 'string', 'string']})

--------------------------------------------------
Example 2
----------
var.define('string', {var: 'string', var: var, var: ['string', 'string',
    'string', 'string']})

--------------------------------------------------
**************************************************
Hashes whose average ast size is 35
Example 0
----------
class StatusSearchForm(var.Form):
    var = var.ChoiceField(choices=var, widget=var.Select(attrs={'string':
        'string'}))

--------------------------------------------------
Example 1
----------
class MyForm(var.Form):
    var = var.ChoiceField(choices=var, widget=var.Select(attrs={'string':
        'string'}))

--------------------------------------------------
Example 2
----------
class MyForm(var.Form):
    var = var.ChoiceField(choices=var, widget=var.Select(attrs={'string':
        'string'}))

--------------------------------------------------
**************************************************
Hashes whose average ast size is 40
Example 0
----------
open(os.path.join(var, var), 'string').write(var.request.urlopen('string' +
    var.replace('string', 'string')).read())

--------------------------------------------------
Example 1
----------
open(os.path.join(var, var), 'string').write(var.request.urlopen('string' +
    var.replace('string', 'string')).read())

--------------------------------------------------
Example 2
----------
open(os.path.join(var, var), 'string').write(var.request.urlopen('string' +
    var.replace('string', 'string')).read())

--------------------------------------------------
**************************************************
Hashes whose average ast size is 45
Example 0
----------
for var in range(10):
    print('string' % var)
    var.send(b'Hello')
    var = var.recv()
    print('string' % (var, var))

--------------------------------------------------
Example 1
----------
for var in range(10):
    print('string' % var)
    var.send(b'Hello')
    var = var.recv()
    print('string' % (var, var))

--------------------------------------------------
Example 2
----------
for var in range(10):
    print('string' % var)
    var.send(b'Hello')
    var = var.recv()
    print('string' % (var, var))

--------------------------------------------------
**************************************************
Hashes whose average ast size is 50
Example 0
----------
for var in var.nlst(var):
    var = open(var, 'string')
    print('string' + var)
    var.retrbinary('string' + var, var.write)
    var.close()

--------------------------------------------------
Example 1
----------
for var in var.nlst(var):
    var = open(var, 'string')
    print('string' + var)
    var.retrbinary('string' + var, var.write)
    var.close()

--------------------------------------------------
Example 2
----------
for var in var.nlst(var):
    var = open(var, 'string')
    print('string' + var)
    var.retrbinary('string' + var, var.write)
    var.close()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 100
Example 0
----------
for var, var, var in os.walk('string'):
    for var in ('string', 'string', 'string'):
        if var in var:
            var.remove(var)
    if 'string' in var:
        var = join(var, 'string')
        print('string', var)
        with open(var) as var:
            var = var.read()
            if var in var and var.search(var):
                print('string', var)

--------------------------------------------------
Example 1
----------
for var, var, var in os.walk('string'):
    for var in ('string', 'string'):
        if var in var:
            var.remove(var)
    if 'string' in var:
        var = join(var, 'string')
        print('string', var)
        with open(var) as var:
            var = var.read()
            if var in var and var.search(var):
                print('string', var)

--------------------------------------------------
Example 2
----------
for var, var, var in os.walk('string'):
    for var in ('string', 'string', 'string'):
        if var in var:
            var.remove(var)
    if 'string' in var:
        var = join(var, 'string')
        print('string', var)
        with open(var) as var:
            var = var.read()
            if var in var and var.search(var):
                print('string', var)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 200
Example 0
----------
def drawLine(pic, col, x0, y0, x1, y1):
    var = abs(var - var)
    var = abs(var - var)
    var = var = 0
    if var < var:
        var = 1
    else:
        var = -1
    if var < var:
        var = 1
    else:
        var = -1
    var = var - var
    while True:
        var(var, var, var, var)
        if var == var and var == var:
            break
        var = 2 * var
        if var > -var:
            var = var - var
            var = var + var
        if var == var and var == var:
            var(var, var, var, var)
            break
        if var < var:
            var = var + var
            var = var + var

--------------------------------------------------
Example 1
----------
def drawLine(pic, col, x0, y0, x1, y1):
    var = abs(var - var)
    var = abs(var - var)
    var = var = 0
    if var < var:
        var = 1
    else:
        var = -1
    if var < var:
        var = 1
    else:
        var = -1
    var = var - var
    while True:
        var(var, var, var, var)
        if var == var and var == var:
            break
        var = 2 * var
        if var > -var:
            var = var - var
            var = var + var
        if var == var and var == var:
            var(var, var, var, var)
            break
        if var < var:
            var = var + var
            var = var + var

--------------------------------------------------
Example 2
----------
def drawLine(pic, col, x0, y0, x1, y1):
    var = abs(var - var)
    var = abs(var - var)
    var = var = 0
    if var < var:
        var = 1
    else:
        var = -1
    if var < var:
        var = 1
    else:
        var = -1
    var = var - var
    while True:
        var(var, var, var, var)
        if var == var and var == var:
            break
        var = 2 * var
        if var > -var:
            var = var - var
            var = var + var
        if var == var and var == var:
            var(var, var, var, var)
            break
        if var < var:
            var = var + var
            var = var + var

--------------------------------------------------
**************************************************

In [20]:
import pickle
ph_lc = pickle.load(open('postorder_hash_file_loop_collapse_hash.pkl','rb'))

In [21]:
ast_sizes_lc = get_ast_sizes(ph_lc)


100%|██████████| 1698822/1698822 [42:25<00:00, 667.42it/s]

In [22]:
print_summary(ph_lc, ast_sizes_lc, 'Summary of loop collapse hash')


*************************************
*  Summary of loop collapse hash  *
*************************************


Hashes whose average ast size is 5
Example 0
----------
{'string', 'string'}

--------------------------------------------------
Example 1
----------
{'string', 'string'}

--------------------------------------------------
Example 2
----------
{'string', 'string'}

--------------------------------------------------
**************************************************
Hashes whose average ast size is 6
Example 0
----------
'string', {}

--------------------------------------------------
Example 1
----------
'string', {}

--------------------------------------------------
Example 2
----------
'string', {}

--------------------------------------------------
**************************************************
Hashes whose average ast size is 7
Example 0
----------
var.two()

--------------------------------------------------
Example 1
----------
def one():
    two.two()

--------------------------------------------------
Example 2
----------
var.two()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 8
Example 0
----------
var.write_png('string')

--------------------------------------------------
Example 1
----------
var.write_png('string')

--------------------------------------------------
Example 2
----------
var.write_png('string')

--------------------------------------------------
**************************************************
Hashes whose average ast size is 9
Example 0
----------
var(True).MainLoop()

--------------------------------------------------
Example 1
----------
var(False).MainLoop()

--------------------------------------------------
Example 2
----------
var(False).MainLoop()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 10
Example 0
----------
var.getAdapter().getItemCount()

--------------------------------------------------
Example 1
----------
var.getAdapter().getItemCount()

--------------------------------------------------
Example 2
----------
var.getAdapter().getItemCount()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 12
Example 0
----------
var.someMethod = lambda : var(1)

--------------------------------------------------
Example 1
----------
var.someMethod = lambda : var(4)

--------------------------------------------------
Example 2
----------
var.someMethod = lambda : var(2)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 15
Example 0
----------
def callraja():
    var(inspect.currentframe())
    var('string')

--------------------------------------------------
Example 1
----------
var(inspect.currentframe())

--------------------------------------------------
Example 2
----------
def raja(a):
    var(inspect.currentframe())
    print(var)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 18
Example 0
----------
def main():
    Config.Position = 124, 586
    a.print_val()
    b.print_val()

--------------------------------------------------
Example 1
----------
bar.print_val()

--------------------------------------------------
Example 2
----------
def main():
    Config.Position = 124, 586
    a.print_val()
    b.print_val()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 20
Example 0
----------
def fp(y_true, y_pred):
    return confusion_matrix(var, var)[0, 1]

--------------------------------------------------
Example 1
----------
def tn(y_true, y_pred):
    return confusion_matrix(var, var)[0, 0]

--------------------------------------------------
Example 2
----------
def tp(y_true, y_pred):
    return confusion_matrix(var, var)[1, 1]

--------------------------------------------------
**************************************************
Hashes whose average ast size is 25
Example 0
----------
var = var.set_title('string')

--------------------------------------------------
Example 1
----------
var = var.set_title('string')

--------------------------------------------------
Example 2
----------
def animate(input_filename):
    """string"""
    var = var(var)
    plt.ion()
    var = plt.figure()
    var = var.add_subplot(111)
    var.suptitle(var)
    var = var.imshow(var.next()[1])
    var = [Rectangle((0, 0), 1, 1, fc='string', ec='string') for var in
        range(4)]
    [var.add_patch(var) for var in var]
    var = var.set_title('string')
    for var, var in var:
        var = var(var)
        [var.set_visible(False) for var in var]
        for slice, var in zip(var, var):
            var, var = slice
            var.set_xy((var.start, var.start))
            var.set_width(var.stop - var.start + 1)
            var.set_height(var.stop - var.start + 1)
            var.set_visible(True)
        var.set_text('string' % var)
        var.set_data(var)
        var.set_clim([var.min(), var.max()])
        var.canvas.draw()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 30
Example 0
----------
class School(var.Model):
    var = var.CharField(max_length=100)
    var = var.CharField(max_length=100, null=True, blank=True)

--------------------------------------------------
Example 1
----------
class Pool(var.Model):
    var = var.CharField(max_length=128, unique=True, blank=False)
    var = var.CharField(max_length=255)

--------------------------------------------------
Example 2
----------
class Employee(var.Model):
    var = var.CharField(primary_key=True, max_length=50, null=False)
    var = var.CharField(max_length=50)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 35
Example 0
----------
def connected_to_internet(url='string', timeout=5):
    try:
        _ = requests.get(var, timeout=var)
        return True
    except requests.ConnectionError:
        print('string')
    return False

--------------------------------------------------
Example 1
----------
def checkInternetConnection(url='string', timeout=5):
    try:
        var = requests.get(var, timeout=var)
        return True
    except requests.ConnectionError:
        print('string')
    return False

--------------------------------------------------
Example 2
----------
def connected_to_internet(url='string', timeout=5):
    try:
        _ = requests.get(var, timeout=var)
        return True
    except requests.ConnectionError:
        print('string')
    return False

--------------------------------------------------
**************************************************
Hashes whose average ast size is 40
Example 0
----------
class B(var):

    def createDrivers(self, *args, **kwargs):
        var = var(sweep=270)[0]
        var = var(sweep=180)[0]
        return var, var

--------------------------------------------------
Example 1
----------
class B(var):

    def createDrivers(self, *args, **kwargs):
        var = var(sweep=270)[0]
        var = var(sweep=180)[0]
        return var, var

--------------------------------------------------
Example 2
----------
class B(var):

    def createDrivers(self, *args, **kwargs):
        var = var(sweep=270)[0]
        var = var(sweep=180)[0]
        return var, var

--------------------------------------------------
**************************************************
Hashes whose average ast size is 45
Example 0
----------
def random_forest_regression(data):
    """string"""
    var, var = var.randomSplit([0.7, 0.3])
    var = var.trainRegressor(var, categoricalFeaturesInfo={}, numTrees=100,
        featureSubsetStrategy='string', impurity='string', maxDepth=10,
        maxBins=32)
    var = var.predict(var.map(lambda x: var.features))
    var = var.map(lambda lp: var.label).zip(var)
    var = var.predict(var.map(lambda x: var.features))
    var = var.map(lambda lp: var.label).zip(var)
    var = var.collect()
    print('string')
    for var in var:
        print(var)
    return var, var

--------------------------------------------------
Example 1
----------
var = var.map(lambda lp: var.label).zip(var)

--------------------------------------------------
Example 2
----------
var = var.map(lambda lp: var.label).zip(var)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 50
Example 0
----------
var = var.query(var.parent_uuid == var.user_id())

--------------------------------------------------
Example 1
----------
var = var.query(var.userid == var.user_id())

--------------------------------------------------
Example 2
----------
class BaseHandler(webapp2.RequestHandler):

    def get_user_db(self):
        var = users.get_current_user()
        if not var:
            return None
        var = var.query(var.federated_id == var.user_id())
        var = var.fetch(1)
        if var:
            return var[0]
        var = var(name=var.nickname().title(), username=var.nickname(),
            email=var.email(), federated_id=var.user_id(), admin=users.
            is_current_user_admin())
        var.put()
        return var

--------------------------------------------------
**************************************************
Hashes whose average ast size is 100
Example 0
----------
def handle_nested_parens(v):
    var = 0
    var = 'string'
    for var in var:
        if var == 'string':
            var = var - 1
            if var < 0:
                return var
        var += var
        if var == 'string':
            var = var + 1
    return var

--------------------------------------------------
Example 1
----------
if var == 'string':
    var = var + 40

--------------------------------------------------
Example 2
----------
def fizz_count(l):
    var = 0
    for var in var:
        if var == 'string':
            var = var + 1
    return var

--------------------------------------------------
**************************************************
Hashes whose average ast size is 200
Example 0
----------
class RosterForm(var.ModelForm):
    var = var.ModelChoiceField(queryset=var.objects.none())
    var = var.ModelChoiceField(queryset=var.objects.none())
    var = var.ModelChoiceField(queryset=var.objects.none())
    var = var.ModelChoiceField(queryset=var.objects.none())

    def __init__(self, *args, **kwargs):
        super(var, var).__init__(*var, **var)
        var.fields['string'].queryset = var.objects.filter(event__pk=50
            ).distinct()
        var.fields['string'].queryset = var.objects.filter(event__pk=50
            ).distinct()
        var.fields['string'].queryset = var.objects.filter(event__pk=50
            ).distinct()
        var.fields['string'].queryset = var.objects.filter(event__pk=50
            ).distinct()


    class Meta:
        var = var
        var = ['string', 'string', 'string', 'string']

--------------------------------------------------
Example 1
----------
class RosterForm(var.ModelForm):
    var = var.ModelChoiceField(queryset=var.objects.none())
    var = var.ModelChoiceField(queryset=var.objects.none())
    var = var.ModelChoiceField(queryset=var.objects.none())
    var = var.ModelChoiceField(queryset=var.objects.none())

    def __init__(self, *args, **kwargs):
        super(var, var).__init__(*var, **var)
        var.fields['string'].queryset = var.objects.filter(event__pk=50
            ).distinct()
        var.fields['string'].queryset = var.objects.filter(event__pk=50
            ).distinct()
        var.fields['string'].queryset = var.objects.filter(event__pk=50
            ).distinct()
        var.fields['string'].queryset = var.objects.filter(event__pk=50
            ).distinct()


    class Meta:
        var = var
        var = ['string', 'string', 'string', 'string']

--------------------------------------------------
Example 2
----------
class RosterForm(var.ModelForm):
    var = var.ModelChoiceField(queryset=var.objects.none())
    var = var.ModelChoiceField(queryset=var.objects.none())
    var = var.ModelChoiceField(queryset=var.objects.none())
    var = var.ModelChoiceField(queryset=var.objects.none())

    def __init__(self, *args, **kwargs):
        super(var, var).__init__(*var, **var)
        var.fields['string'].queryset = var.objects.filter(event__pk=50
            ).distinct()
        var.fields['string'].queryset = var.objects.filter(event__pk=50
            ).distinct()
        var.fields['string'].queryset = var.objects.filter(event__pk=50
            ).distinct()
        var.fields['string'].queryset = var.objects.filter(event__pk=50
            ).distinct()


    class Meta:
        var = var
        var = ['string', 'string', 'string', 'string']

--------------------------------------------------
**************************************************

In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [4]:
templates = [key for key in ph.templates.template_lookup.keys()]

In [9]:
ast_sizes = {}
import tqdm
for el in tqdm.tqdm(templates):
    avg = 0
    for item in ph.templates.template_lookup[el]:
        avg += len([l for l in ast.walk(item)])
    avg = int((avg/len(ph.templates.template_lookup[el])))
    if avg not in ast_sizes:
        ast_sizes[avg] = []
    ast_sizes[avg].append(el)


100%|██████████| 1600970/1600970 [04:38<00:00, 5744.13it/s]

In [23]:
print('*'*37)
print('* Summary of regular postorder hash *')
print('*'*37)
rep_sizes = [2, 5, 6, 7, 8, 9, 10, 12, 15, 18, 20, 25, 30, 35, 40, 45, 50, 100, 200]
number_examples = 3
print('\n')
for s in rep_sizes:
    print('Hashes whose average ast size is',s)
    current = 0
    temp = None
    random.shuffle(ast_sizes[s])
    while 1:
        if len(ast_sizes[s]) <= current:
            raise ValueError('There are no templates with avg size',s,'that have enough examples')
        temp = ast_sizes[s][current]
        if len(ph.templates.template_lookup[temp]) >= number_examples:
            break
        current += 1
    vals = random.sample(ph.templates.template_lookup[temp], number_examples)
    for i in range(number_examples):
        print('Example',i)
        print('-'*10)
        print(astor.to_source(vals[i]))
        print('-'*50)
    print('*'*50)


*************************************
* Summary of regular postorder hash *
*************************************


Hashes whose average ast size is 2
Example 0
----------
raise

--------------------------------------------------
Example 1
----------
raise

--------------------------------------------------
Example 2
----------
raise

--------------------------------------------------
**************************************************
Hashes whose average ast size is 5
Example 0
----------
bar()

--------------------------------------------------
Example 1
----------
bar()

--------------------------------------------------
Example 2
----------
bar()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 6
Example 0
----------
output_server('string')

--------------------------------------------------
Example 1
----------
output_server('string')

--------------------------------------------------
Example 2
----------
output_server('string')

--------------------------------------------------
**************************************************
Hashes whose average ast size is 7
Example 0
----------
var = QSqlQuery()

--------------------------------------------------
Example 1
----------
var = QSqlQuery()

--------------------------------------------------
Example 2
----------
var = QSqlQuery()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 8
Example 0
----------
var.set_page_load_timeout(5)

--------------------------------------------------
Example 1
----------
var.set_page_load_timeout(30)

--------------------------------------------------
Example 2
----------
var.set_page_load_timeout(15)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 9
Example 0
----------
var.set_timeout(var)

--------------------------------------------------
Example 1
----------
var.set_timeout(var)

--------------------------------------------------
Example 2
----------
var.set_timeout(var)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 10
Example 0
----------
lt.add_files(var, 'string')

--------------------------------------------------
Example 1
----------
lt.add_files(var, 'string')

--------------------------------------------------
Example 2
----------
lt.add_files(var, 'string')

--------------------------------------------------
**************************************************
Hashes whose average ast size is 12
Example 0
----------
var = var.Movie.Language,

--------------------------------------------------
Example 1
----------
var = var.ssl_module.PROTOCOL_TLSv1,

--------------------------------------------------
Example 2
----------
var = var.ssl_module.PROTOCOL_SSLv3,

--------------------------------------------------
**************************************************
Hashes whose average ast size is 15
Example 0
----------
var.get_xaxis().set_major_formatter(tic.ScalarFormatter())

--------------------------------------------------
Example 1
----------
var.get_xaxis().set_major_formatter(var.ScalarFormatter())

--------------------------------------------------
Example 2
----------
var.get_xaxis().set_major_formatter(var.ScalarFormatter())

--------------------------------------------------
**************************************************
Hashes whose average ast size is 18
Example 0
----------
for var, var, var in var.walk(var):
    pass

--------------------------------------------------
Example 1
----------
for var, var, var in var.walk(var):
    pass

--------------------------------------------------
Example 2
----------
for var, var, var in os.walk(var):
    pass

--------------------------------------------------
**************************************************
Hashes whose average ast size is 20
Example 0
----------
if var:
    var = var.group(1)
else:
    sys.exit('string')

--------------------------------------------------
Example 1
----------
if var:
    var = var.group(1)
else:
    sys.exit('string')

--------------------------------------------------
Example 2
----------
if var:
    var = var.group(1)
else:
    sys.exit('string')

--------------------------------------------------
**************************************************
Hashes whose average ast size is 25
Example 0
----------
if 'string' in var:
    var = input('string')
    var = var.replace('string', var)

--------------------------------------------------
Example 1
----------
if 'string' in var:
    var = input('string')
    var = var.replace('string', var)

--------------------------------------------------
Example 2
----------
if 'string' in var:
    var = input('string')
    var = var.replace('string', var)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 30
Example 0
----------
for var in BeautifulSoup(var, parseOnlyThese=SoupStrainer('string')):
    if 'string' in var:
        print(var['string'])

--------------------------------------------------
Example 1
----------
for var in BeautifulSoup(var, parseOnlyThese=SoupStrainer('string')):
    if 'string' in var:
        print(var['string'])

--------------------------------------------------
Example 2
----------
for var in BeautifulSoup(var, parseOnlyThese=SoupStrainer('string')):
    if 'string' in var:
        print(var['string'])

--------------------------------------------------
**************************************************
Hashes whose average ast size is 35
Example 0
----------
for var in var:
    with open(var, 'string') as var:
        var = var(var.read())
    var.attach(var)

--------------------------------------------------
Example 1
----------
for var in var:
    with open(var, 'string') as var:
        var = var(var.read())
    var.attach(var)

--------------------------------------------------
Example 2
----------
for var in var:
    with open(var, 'string') as var:
        var = var(var.read())
    var.attach(var)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 40
Example 0
----------
@var
def fibonacci(n):
    if var == 1 or var == 0:
        return 1
    else:
        return var(var - 1) + var(var - 2)

--------------------------------------------------
Example 1
----------
@var
def fibonacci(n):
    if var == 0 or var == 1:
        return 1
    else:
        return var(var - 1) + var(var - 2)

--------------------------------------------------
Example 2
----------
@var
def fib(n):
    if var == 0 or var == 1:
        return 1
    else:
        return var(var - 1) + var(var - 2)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 45
Example 0
----------
with open('string') as var:
    with open('string', 'string') as var:
        for var in var:
            if var.startswith('string'):
                var.write('string')
            else:
                var.write(var)

--------------------------------------------------
Example 1
----------
with open('string', 'string') as var:
    with open('string', 'string') as var:
        for var in var:
            if var.startswith('string'):
                var.write('string')
            else:
                var.write(var)

--------------------------------------------------
Example 2
----------
with open('string', 'string') as var:
    with open('string', 'string') as var:
        for var in var:
            if var.startswith('string'):
                var.write('string')
            else:
                var.write(var)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 50
Example 0
----------
for var in range(1, 101):
    var = var.random.random((1, 1))
    var['string'.format(var)] = var.dot(var, var.transpose()) / 2

--------------------------------------------------
Example 1
----------
for var in range(1, 101):
    var = var.random.random((3, 3))
    var['string'.format(var)] = var.dot(var, var.transpose()) / 2

--------------------------------------------------
Example 2
----------
for var in range(1, 101):
    var = var.random.random((2, 2))
    var['string'.format(var)] = var.dot(var, var.transpose()) / 2

--------------------------------------------------
**************************************************
Hashes whose average ast size is 100
Example 0
----------
def swap_letters(message):
    var = []
    if not var(len(var)):
        var = var + 'string'
    var = var(var)
    var = var(var)
    for var in range(0, int(len(var) / 2)):
        var.append(var[var])
        var.append(var[var])
    var = 'string'.join(var)
    return var

--------------------------------------------------
Example 1
----------
def swap_letters(message):
    var = []
    if not var(len(var)):
        var = var + 'string'
    var = var(var)
    var = var(var)
    for var in range(0, int(len(var) / 2)):
        var.append(var[var])
        var.append(var[var])
    var = 'string'.join(var)
    return var

--------------------------------------------------
Example 2
----------
def swap_letters(message):
    var = []
    if not var(len(var)):
        var = var + 'string'
    var = var(var)
    var = var(var)
    for var in range(0, int(len(var) / 2)):
        var.append(var[var])
        var.append(var[var])
    var = 'string'.join(var)
    return var

--------------------------------------------------
**************************************************
Hashes whose average ast size is 200
Example 0
----------
class ProjectSpider(BaseSpider):
    var = 'string'
    var = ['string']
    var = ['string']

    def parse(self, response):
        var = HtmlXPathSelector(var)
        var = var.select('string')
        var = []
        for var in var:
            var = Project2Item()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var.append(var)
        return var

--------------------------------------------------
Example 1
----------
class ProjectSpider(BaseSpider):
    var = 'string'
    var = ['string']
    var = ['string', 'string', 'string', 'string', 'string', 'string',
        'string', 'string', 'string', 'string']

    def parse(self, response):
        var = HtmlXPathSelector(var)
        var = var.select('string')
        var = []
        for var in var:
            var = Project2Item()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var.append(var)
        return var

--------------------------------------------------
Example 2
----------
class ProjectSpider(BaseSpider):
    var = 'string'
    var = ['string']
    var = ['string']

    def parse(self, response):
        var = HtmlXPathSelector(var)
        var = var.select('string')
        var = []
        for var in var:
            var = Project2Item()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var.append(var)
        return var

--------------------------------------------------
**************************************************

In [24]:
import pickle
ph_func = pickle.load(open('../../StackOverflow/trends/postorder_hash_file_function_hash.pkl','rb'))

In [31]:
templates = [key for key in ph_func.templates.template_lookup.keys()]

In [32]:
ast_sizes_func = {}
import tqdm
for el in tqdm.tqdm(templates):
    avg = 0
    for item in ph_func.templates.template_lookup[el]:
        avg += len([l for l in ast.walk(item)])
    avg = int((avg/len(ph_func.templates.template_lookup[el])))
    if avg not in ast_sizes_func:
        ast_sizes_func[avg] = []
    ast_sizes_func[avg].append(el)


100%|██████████| 697583/697583 [05:36<00:00, 2071.41it/s]

In [34]:
print('*'*37)
print('* Summary of Function hash *')
print('*'*37)
rep_sizes = [ 5, 6, 7, 8, 9, 10, 12, 15, 18, 20, 25, 30, 35, 40, 45, 50, 100, 200]
number_examples = 3
print('\n')
for s in rep_sizes:
    print('Hashes whose average ast size is',s)
    current = 0
    temp = None
    random.shuffle(ast_sizes_func[s])
    while 1:
        if len(ast_sizes_func[s]) <= current:
            raise ValueError('There are no templates with avg size',s,'that have enough examples')
        temp = ast_sizes_func[s][current]
        if len(ph_func.templates.template_lookup[temp]) >= number_examples:
            break
        current += 1
    vals = random.sample(ph_func.templates.template_lookup[temp], number_examples)
    for i in range(number_examples):
        print('Example',i)
        print('-'*10)
        print(astor.to_source(vals[i]))
        print('-'*50)
    print('*'*50)


*************************************
* Summary of Function hash *
*************************************


Hashes whose average ast size is 5
Example 0
----------
clear_url_caches()

--------------------------------------------------
Example 1
----------
clear_url_caches()

--------------------------------------------------
Example 2
----------
clear_url_caches()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 6
Example 0
----------
module2.cool_func()

--------------------------------------------------
Example 1
----------
module2.cool_func()

--------------------------------------------------
Example 2
----------
cool_func()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 7
Example 0
----------
var.getSystemLookAndFeelClassName()

--------------------------------------------------
Example 1
----------
var.getSystemLookAndFeelClassName()

--------------------------------------------------
Example 2
----------
var.getSystemLookAndFeelClassName()

--------------------------------------------------
**************************************************
Hashes whose average ast size is 8
Example 0
----------
var.set_html('string')

--------------------------------------------------
Example 1
----------
var.set_html('string')

--------------------------------------------------
Example 2
----------
var.set_html('string')

--------------------------------------------------
**************************************************
Hashes whose average ast size is 9
Example 0
----------
var.setDelegate_(var)

--------------------------------------------------
Example 1
----------
var.setDelegate_(var)

--------------------------------------------------
Example 2
----------
var.setDelegate_(var)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 10
Example 0
----------
def page_is_loaded(driver):
    return var.find_element_by_tag_name('string') != None

--------------------------------------------------
Example 1
----------
var = var.find_element_by_tag_name('string')

--------------------------------------------------
Example 2
----------
var = var.find_element_by_tag_name('string').text

--------------------------------------------------
**************************************************
Hashes whose average ast size is 12
Example 0
----------
var.addLink(var, var)

--------------------------------------------------
Example 1
----------
var.addLink(var, var)

--------------------------------------------------
Example 2
----------
var.addLink(var, var)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 15
Example 0
----------
var.debug('string', str(var))

--------------------------------------------------
Example 1
----------
var.debug('string', str(var))

--------------------------------------------------
Example 2
----------
Logger.debug('string', str(var))

--------------------------------------------------
**************************************************
Hashes whose average ast size is 18
Example 0
----------
plt.colorbar(var, format=ticker.FuncFormatter(var))

--------------------------------------------------
Example 1
----------
plt.colorbar(var, format=ticker.FuncFormatter(var))

--------------------------------------------------
Example 2
----------
var = plt.colorbar(var, format=ticker.FuncFormatter(var))

--------------------------------------------------
**************************************************
Hashes whose average ast size is 20
Example 0
----------
var = var.simple_tag(var)

--------------------------------------------------
Example 1
----------
@var.simple_tag()
def version():
    return 'string'

--------------------------------------------------
Example 2
----------
static = var.simple_tag(static)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 25
Example 0
----------
var = var.DataFrame({'string': ['string', 'string', 'string', 'string'],
    'string': var.Categorical(['string', 'string', 'string', 'string']),
    'string': 'string'})

--------------------------------------------------
Example 1
----------
var = pd.DataFrame({'string': var}, index=pd.Categorical(var, categories=[
    'string', 'string', 'string'], ordered=True))

--------------------------------------------------
Example 2
----------
var = var.DataFrame({'string': var.Categorical(['string', 'string'])})

--------------------------------------------------
**************************************************
Hashes whose average ast size is 30
Example 0
----------
var = [var.placeholder(var.int32, shape=(None,)) for var in range(var)]

--------------------------------------------------
Example 1
----------
var = [var.placeholder(var.int32, shape=(None,)) for var in range(var)]

--------------------------------------------------
Example 2
----------
var.decoderWeights = [var.placeholder(var.float32, [None], name='string') for
    _ in range(var.args.maxLengthDeco)]

--------------------------------------------------
**************************************************
Hashes whose average ast size is 35
Example 0
----------
class EarthHomeBuilder:

    def __init__(self):
        var.room_no = 0
        var.window_no = 0
        var.door_no = 1
        var.wall_no = 4
        var.key = 0
        var.house_features = {}

    def build_room(self, room_type):
        var = BluePrints.Room(var)
        var.room_no += 1
        var.house_features[var] = var + 'string'
        var.key += 1

--------------------------------------------------
Example 1
----------
var = var.Room(user=var)

--------------------------------------------------
Example 2
----------
var = room.Room(...)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 40
Example 0
----------
class Poll(models.Model):
    var = models.CharField(max_length=200, unique=True)
    var = models.PositiveIntegerField(default=0)
    var = models.PositiveIntegerField(default=0)

--------------------------------------------------
Example 1
----------
class Producto(models.Model):
    var = models.CharField(max_length=200, unique=True)
    id = models.PositiveIntegerField(primary_key=True)
    var = models.PositiveIntegerField(default=0)

    def __str__(self):
        return var.nombre

--------------------------------------------------
Example 2
----------
class Producto(var.Model):
    var = var.CharField(max_length=200, unique=True)
    id = var.PositiveIntegerField(primary_key=True)
    var = var.PositiveIntegerField(default=0)

    def __str__(self):
        return var.nombre

--------------------------------------------------
**************************************************
Hashes whose average ast size is 45
Example 0
----------
def index(request):
    var = var.get_template('string')
    var = var.objects.all()
    var = var({'string': var})
    return var(var.render(var))

--------------------------------------------------
Example 1
----------
def movies_popular(request):
    var = var.objects.all()
    var = var.get_template('string')
    var = var(var, {'string': var})
    return var(var.render(var))

--------------------------------------------------
Example 2
----------
def logger(request):
    var = var.objects.all()
    var = var.get_template('string')
    var = var({'string': var})
    return var(var.render(var))

--------------------------------------------------
**************************************************
Hashes whose average ast size is 50
Example 0
----------
with var.request.urlopen('string') as var:
    var = json.loads(var.read().decode())
    print(var['string'])

--------------------------------------------------
Example 1
----------
def testFacebookPageData(page_id, access_token):
    var = 'string'
    var = 'string' + var + 'string'
    var = 'string' % var
    var = var + var + var
    var = var.request.urlopen(var)
    var = json.loads(var.read().decode('string'))
    print(var)

--------------------------------------------------
Example 2
----------
with var.request.urlopen('string', data=var) as var:
    var = json.loads(var.read().decode())
    print(var)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 100
Example 0
----------
class Win(var):
    """string"""

    def __init__(self):
        super().__init__()
        var = [[20, 420, 20, 20, var]]
        for var in var:
            var = var(var[0], var[1], var[2], var[3], var[4])
            var.win_list.add(var)

--------------------------------------------------
Example 1
----------
class Level_01(var):

    def __init__(self, player_object):
        super(var, var).__init__(var)
        var = [[0, 3, 10, 844, var], [108, 0, 21, 730, var], [5, 838, 325, 
            9, var], [240, 815, 130, 32, var], [316, 782, 204, 64, var], [
            364, 749, 179, 96, var], [469, 680, 84, 156, var], [365, 805, 
            189, 42, var], [410, 715, 68, 56, var], [645, 679, 244, 18, var
            ], [977, 678, 265, 13, var], [1439, 676, 93, 14, var], [1668, 
            670, 222, 16, var], [2068, 664, 359, 18, var], [2544, 617, 11, 
            64, var], [2653, 556, 11, 80, var], [2771, 484, 15, 113, var],
            [2922, 434, 277, 12, var], [2777, 327, 138, 15, var], [2659, 
            242, 20, 126, var], [2505, 178, 17, 145, var], [2226, 257, 176,
            14, var], [2120, 266, 10, 92, var], [1808, 252, 213, 10, var],
            [1631, 265, 8, 86, var], [1231, 255, 293, 14, var], [1009, 261,
            169, 12, var], [670, 259, 189, 18, var], [116, 127, 420, 20,
            var], [590, 183, 19, 95, var]]
        for var in var:
            var = var(var[0], var[1], var[2], var[3], var[4])
            var.object_list.add(var)

--------------------------------------------------
Example 2
----------
class Level_01(var):

    def __init__(self, player_object):
        super(var, var).__init__(var)
        var.player_start = var.player_start_x, var.player_start_y = 110, 575
        var = [[2, 124, 356, 47, var], [0, 650, 900, 47, var], [0, 0, 1, 
            650, var]]
        for var in var:
            var = var(var[0], var[1], var[2], var[3], var[4])
            var.object_list.add(var)

--------------------------------------------------
**************************************************
Hashes whose average ast size is 200
Example 0
----------
class ProjectSpider(BaseSpider):
    var = 'string'
    var = ['string']
    var = ['string', 'string', 'string', 'string', 'string', 'string',
        'string', 'string', 'string', 'string']

    def parse(self, response):
        var = HtmlXPathSelector(var)
        var = var.select('string')
        var = []
        for var in var:
            var = Project2Item()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var.append(var)
        return var

--------------------------------------------------
Example 1
----------
class ProjectSpider(BaseSpider):
    var = 'string'
    var = ['string']
    var = ['string', 'string', 'string', 'string', 'string', 'string',
        'string', 'string', 'string', 'string']

    def parse(self, response):
        var = HtmlXPathSelector(var)
        var = var.select('string')
        var = []
        for var in var:
            var = Project2Item()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var.append(var)
        return var

--------------------------------------------------
Example 2
----------
class ProjectSpider(BaseSpider):
    var = 'string'
    var = ['string']
    var = ['string']

    def parse(self, response):
        var = HtmlXPathSelector(var)
        var = var.select('string')
        var = []
        for var in var:
            var = Project2Item()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var['string'] = var.select('string').extract()
            var.append(var)
        return var

--------------------------------------------------
**************************************************

In [ ]: