Skip to content

Python script to automatically determine a random sequence of Secret Santas for a list of people.

License

Notifications You must be signed in to change notification settings

buddemat/secret-santa-o-matic-py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 

Repository files navigation

secret-santa-o-matic-py

This project is a Python version of my perl script secret-santa-o-matic, a program to automatically determine a random sequence of Secret Santas for a list of people.

It is possible to exclude certain people from being gift recipients for others, e.g. if two people are a couple and they and will be giving gifts to each other already anyway.

‼️
‼️ This software is under construction, so not everything's here yet...
‼️

Usage

Before generating a sequence of secret santas, the list of people from whom said sequence should be built needs to be configured.

Configuration

To generate a sequence for a list of people, add those people in the config file config.yml. For each person, insert a key under the 1st level key candidates. If the respective persons should be excluded as secret santa for certain people, add a list of these as value for the respective name.

Example candidates section:
candidates:
    Alice: [Bob]
    Bob: [Alice]
    Charlene:
    David:

This will generate a secret santa sequence of four people (Alice, Bob, Charlene, and David). Alice and Bob are not supposed to give gifts to each other in this scenario.

Execution

As standalone script

Once the recipients are configured, simply run

$ python secretsantaomatic.py

The resulting sequence will be written to individual files which can then be emailed as attachments to the individual recipients without knowing who gets whom.

As a module

To use secret-santa-o-matic as a module:

from secretsantaomatic import Santa

Repository structure

secret-santa-o-matic-py
├── LICENSE                     # License TODO
├── README.md                   # This file.
└── secretsantaomatic
    ├── ascii_tree.txt          # ASCII art file that is appended to secret santa txt files.
    ├── config.yml              # Configuration and list of people 
    ├── __init__.py
    ├── santas                  # Target directory for secret santa txt files
    │   └── README.md
    └── secretsantaomatic.py    # Module to generate secret santa sequence.

About

Python script to automatically determine a random sequence of Secret Santas for a list of people.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages