Monday, May 12, 2014

Gencon 2014 scheduler update

 I have updated my scheduling script for GenCon 2014. I had originally not expected to have to make any changes to the code, but GenCon this year moved the location of their event catalog files, and decided to only release the event catalogs in xlsx format instead of csv.  While you can still use last year's version of my scheduler by manually downloading and converting the catalog files, I've modified my code to use a converter utility to do the conversion.

The latest version of it can be found here.

In order to use this, you will need to install Python 2.7.  You will also need to install this xlsx to csv converter code. After installing xlsx2csv, you'll have to copy the xlsx2csv.py file from the install directory into the same directory that the schedule solver python file is located.

The GenCon event registration system is also limiting event wish lists to 50 items this year, so the wishlist generator will limit itself to that number of wishlist items.

As before, this is an experimental and somewhat crude schedule optimization utility.  It allows you to search the event catalog with a text-based interface, add events to your wishlist with assigned priorities, and then generates an optimal schedule for you, as well as a wishlist to enter into the GenCon registration system.

4 comments:

  1. Hi - Found your code and am trying it out. Installed xlsx2csv but still get this error:
    Traceback (most recent call last):
    File "schedule solver 2014.py", line 2138, in
    events = update()
    File "schedule solver 2014.py", line 1687, in update
    xlsx2csv = Xlsx2csv(mydir + '/' + fn, **kwargs)
    TypeError: __init__() got an unexpected keyword argument 'exclude_sheet_pattern'

    Any ideas?
    Thanks!
    -D

    ReplyDelete
    Replies
    1. I don't know why specifically you'd be getting that error if you're using the same xlsx2csv code, since I took the keyword arguments straight from their code, but I've uploaded a new version of the code that omits those arguments (as they don't seem to do anything) and has a few other tweaks. Try downloading it again and trying it.

      Delete
  2. Getting this error when trying to use the scheduler for 2016. Any chances of you updating this again?

    Converting events.xlsx ...
    Traceback (most recent call last):
    File "schedule solver 2014.py", line 2143, in
    events = update()
    File "schedule solver 2014.py", line 1695, in update
    xlsx2csv.convert(outfile, 0)
    File "C:\Users\randerson\Documents\Personal\Gencon\xlsx2csv.py", line 220, in convert
    of.write(self.options['sheetdelimiter'] + " " + str(s['id']) + " - " + sheetname + self.options['lineterminator'])
    KeyError: 'lineterminator'

    ReplyDelete
  3. I have an updated copy at https://www.dropbox.com/s/ulypjnj53mwbmpx/schedule%20solver%202016.py?dl=0 which seems to work with this year's data.

    However, I'm a bit surprised anyone is still using this archaic script, since there are far better options available for doing event search available now.

    ReplyDelete