conference_scheduler.resources

class conference_scheduler.resources.Event(name, duration, demand, tags=None, unavailability=None)

An event (e.g. a talk or a workshop) that needs to be scheduled

param name:A human readable string
type name:str
param duration:The expected duration of the event in minutes
type duration:int
param demand:The anticipated demand - e.g. the number of attendees expected This will be compared with Slot.capacity during computation of the schedule to ensure that events are only scheduled in slots that can accommodate them. Use 0 if the event could be scheduled in any slot.
type demand:int
param tags:of human readable strings
type tags:list or tuple, optional
param unavailability:
 of resources.Slot or resources.Event
type unavailability:
 list or tuple, optional
class conference_scheduler.resources.Slot

A period of time at a venue in which an event can be scheduled

param venue:A human readable string
type venue:str
param starts_at:
 The starting time for the time period
type starts_at:datetime
param duration:The duration of the time period in minutes
type duration:int
param capacity:This will be compared with Event.demand during computation of the schedule to ensure that events are only scheduled in slots that can accommodate them.
type capacity:int
param session:A human readable string which serves as a tag for similar time periods e.g. ‘morning’, ‘afternoon’
type session:str

Example

For a conference where:

  • It will take place on 2016-09-17
  • There are two rooms - ‘Main Hall’ and ‘Small Room’
  • The Main Hall can seat 500 people and the Small Room, 50
  • It is intended to hold two 30 minute talks in the morning (from 09:30 to 10:00 and from 11:00 to 11:30) and two more in the afternoon (from 14:00 to 14:30 and 15:00 to 15:30)

We would create the following eight objects:

>>> from conference_scheduler.resources import Slot
>>> Slot(
...    venue='Main Hall', starts_at=datetime(2016, 09, 17, 09, 30),
...     duration=30, capacity=500, session='morning')
>>> Slot(
...     venue='Main Hall', starts_at=datetime(2016, 09, 17, 10, 00),
...     duration=30, capacity=500, session='morning')
>>> Slot(
...     venue='Main Hall', starts_at=datetime(2016, 09, 17, 14, 00),
...     duration=30, capacity=500, session='afternoon')
>>> Slot(
...     venue='Main Hall', starts_at=datetime(2016, 09, 17, 15, 00),
...     duration=30, capacity=500, session='afternoon')
>>> Slot(
...     venue='Small Room', starts_at=datetime(2016, 09, 17, 09, 30),
...     duration=30, capacity=50, session='morning')
>>> Slot(
...     venue='Small Room', starts_at=datetime(2016, 09, 17, 10, 00),
...     duration=30, capacity=50, session='morning')
>>> Slot(
...     venue='Small Room', starts_at=datetime(2016, 09, 17, 14, 00),
...     duration=30, capacity=50, session='afternoon')
>>> Slot(
...     venue='Small Room', starts_at=datetime(2016, 09, 17, 15, 00),
...     duration=30, capacity=50, session='afternoon')
class conference_scheduler.resources.ScheduledItem

Represents that an event has been scheduled to occur in a slot

param event:
type event:resources.Event
param slot:
type slot:resources.Slot