Beispiel #1
0
    if len(sitem) == 2:
        item = sitem[1] + ", " + sitem[0]

    return item


### MAIN ###
if len(sys.argv) > 1 and sys.argv[1] == "--index":
    indexMode = True
    OUTPUT_FILE = '/home/soren/current/drbook/resources/people-index.tex'
else:
    indexMode = False
    OUTPUT_FILE = 'people-list.csv'

outputs = {}
dreams = ddirparse.getAttribForAllDreams('People')

# get list of unique people
people = dreams.values()
uniquePeople = []
for p in people:
    ps = p.split('\t')[1].split(',')
    for q in ps:
        if q.strip() not in uniquePeople:
            uniquePeople.append(q.strip())

# make clean dict of dreams, with people as a list
cleanDreams = {}
for d in dreams:
    splitted = dreams[d].split('\t')[1].split(',')
    cleanDreams[d] = [i.strip() for i in splitted]
#!/usr/bin/env python

"""
Produce a tab-delimited list of all dreams and the HEADER values for each.
A dream number will be omitted if that dream has no given HEADER.

Example output from my dreamdir when HEADER is "People":
    number	people
    1	Albert Einstein
    4	Grandma
    6	Mrs. Nagel, Oksana Creech, Timothy McLean
    7	Oksana Creech
    8	Mama
    [...]
"""

import ddirparse
import sys

### MAIN ###
HEADER = "People"
OUTPUT_FILE = 'nums-with-people.csv'

outputs = {}
dreams = ddirparse.getAttribForAllDreams(HEADER)

with open(OUTPUT_FILE, 'w') as f:
    f.write("number\tpeople\n")
    for num, people in dreams.iteritems():
        f.write("%i\t%s\n" % (num, people.split('\t')[1]))
    for line in f:
        textline = line.strip()
        if counting:
            wcs[date] += len(textline.split())
        else:
            if textline.startswith('Date:\t'):
                date = textline.split(':\t')[1].strip()
            elif not textline:
                # end of headers, start counter
                counting = True
                if date not in wcs:
                    wcs[date] = 0

lucids = ddirparse.getDreamsTagged('Lucid', '')
dreamToDate = {
    k: v.split(':\t')[1].strip()
    for k, v in ddirparse.getAttribForAllDreams('Date').iteritems()
}
days = {k: {'wc': v} for k, v in wcs.iteritems()}
for day in days:
    days[day]['moon'] = get_phase_on_day(*[int(i) for i in day.split('-')])
    days[day]['lucid'] = 0
for ld in lucids:
    days[dreamToDate[ld]]['lucid'] = 1

with open("moonexperiment.csv", 'w') as f:
    f.write("Date\tLucidity\tWord count\tMoon\n")
    for date, info in sorted(days.iteritems()):
        f.write("%s\t%i\t%i\t%f\n" %
                (date, info['lucid'], info['wc'], info['moon']))
# -*- coding: utf-8 -*-

import ddirparse

attrName = 'People'
timeBuckets = 20

dates = {
    k: v.split('Date:\t')[1]
    for k, v in ddirparse.getAttribForAllDreams('Date').iteritems()
}
attrDict = ddirparse.getAttribForAllDreams('People')
dreamAttrs = {
    k: v.split(attrName + ':\t')[1].split(',')
    for k, v in attrDict.iteritems()
}

#attrValueList = list(set([value.strip()
#for dream in dreamAttrs.items()
#for value in dream[1]]))

occurrencesByAttr = {}
for dream in dreamAttrs.items():
    dreamnum, valueList = dream
    for value in valueList:
        occurrencesByAttr[value.strip()] = \
                occurrencesByAttr.get(value.strip(), []) + [dreamnum]

# two-level sort: first level by frequency, second alphabetical
sortedValues = sorted(occurrencesByAttr.keys(), key=lambda i: i)
sortedValues.sort(key=lambda i: len(occurrencesByAttr[i]), reverse=True)
    counting = False
    for line in f:
        textline = line.strip()
        if counting:
            wcs[date] += len(textline.split())
        else:
            if textline.startswith('Date:\t'):
                date = textline.split(':\t')[1].strip()
            elif not textline:
                # end of headers, start counter
                counting = True
                if date not in wcs:
                    wcs[date] = 0

lucids = ddirparse.getDreamsTagged('Lucid', '')
dreamToDate = {k: v.split(':\t')[1].strip()
               for k,v in ddirparse.getAttribForAllDreams('Date').iteritems()}
days = {k:{'wc':v} for k,v in wcs.iteritems()}
for day in days:
    days[day]['moon'] = get_phase_on_day(*[int(i) for i in day.split('-')])
    days[day]['lucid'] = 0
for ld in lucids:
    days[dreamToDate[ld]]['lucid'] = 1

with open("moonexperiment.csv", 'w') as f:
    f.write("Date\tLucidity\tWord count\tMoon\n")
    for date, info in sorted(days.iteritems()):
        f.write("%s\t%i\t%i\t%f\n" % (date, info['lucid'],
                                      info['wc'], info['moon']))

Beispiel #6
0
}


def mungeNames(item):
    # is this an exception?
    if item in nameExceptions:
        return nameExceptions[item]
    else:
        return item


### MAIN ###
OUTPUT_FILE = '/home/soren/current/drbook/resources/places-index.tex'

outputs = {}
dreams = ddirparse.getAttribForAllDreams('Places')

# get list of unique people
places = dreams.values()
uniquePlaces = []
for p in places:
    ps = p.split('\t')[1].split(',')
    for q in ps:
        if q.strip() not in uniquePlaces:
            uniquePlaces.append(q.strip())

# make clean dict of dreams, with people as a list
cleanDreams = {}
for d in dreams:
    splitted = dreams[d].split('\t')[1].split(',')
    cleanDreams[d] = [i.strip() for i in splitted]
Beispiel #7
0
    #'CHM': 'Christiansen Hall of Music',
}

def mungeNames(item):
    # is this an exception?
    if item in nameExceptions:
        return nameExceptions[item]
    else:
        return item


### MAIN ###
OUTPUT_FILE = '/home/soren/current/drbook/resources/places-index.tex'

outputs = {}
dreams = ddirparse.getAttribForAllDreams('Places')

# get list of unique people
places = dreams.values()
uniquePlaces = []
for p in places:
    ps = p.split('\t')[1].split(',')
    for q in ps:
        if q.strip() not in uniquePlaces:
            uniquePlaces.append(q.strip())

# make clean dict of dreams, with people as a list
cleanDreams = {}
for d in dreams:
    splitted = dreams[d].split('\t')[1].split(',')
    cleanDreams[d] = [i.strip() for i in splitted]
Beispiel #8
0
#!/usr/bin/env python
"""
Produce data for dreamdir graphs. This script should not be run by itself but
rather by RegeneratePlots.sh.
"""

import ddirparse

OUTPUT_FILE = 'dotplot-data.csv'

dreams = ddirparse.getAttribForAllDreams('Date')
lucids = ddirparse.getAttribForAllDreams('Lucid')
outputs = {}
lucidDays = {}
for dreamNum, attrline in dreams.iteritems():
    date = attrline.split('\t')[1]
    year, month, day = date.split('-')
    if (year, month, day) in outputs:
        outputs[(year, month, day)] += 1
    else:
        outputs[(year, month, day)] = 1
    if dreamNum in lucids:
        lucidDays[(year, month, day)] = 1

order = sorted(outputs.keys())
outstr = ""
for day in order:
    outstr += "%s,%s,%s,%s,%s\n" % (day[0], day[1], day[2], outputs[day],
                                    lucidDays.get(day, 0))
with open(OUTPUT_FILE, 'w') as f:
    f.write("year,month,day,numdreams,lucid\n")