Skip to main content

Python Package for functions that will procrastinate on their outputs

Project description

Build Badge

Code Procrastinator

Code Procrastinator is a Python package that humanizes your code by giving it the ability to procrastinate—just like you! :D

Instead of executing tasks efficiently, it gets distracted, mindlessly browses the internet, or justifies its procrastination with excuses.

PyPI Link


Team Members

Bryant To Andrew Bao Jasmine Zhang Imran Ahmed


Installation

You can install Code Procrastinator from PyPI using pip: This package requires Python 3.7 or higher

pip install code-procrastinator

Contributing

Want to improve Code Procrastinator? Follow these steps to set up your development environment!

Clone Repository

git clone https://github.com/software-students-spring2025/3-python-package-jeff-bezos.git
cd 3-python-package-jeff-bezos

Create a Virtual Environment

pip install pipenv
pipenv shell

Building

We automatically upload our package to PyPi using twine.
Before merging anything, ensure your contributions pass the unit tests

Important: PyPI will not let you upload a duplicate version, make sure to increment your version in your pyproject.toml file before pushing any changes. (Ex: 0.1.6 -> 0.1.7)

pytest procrastinator.py

Procrastinate()

The procrastinate function simulates what a human might do when procrastinating—whether it's scrolling the web, making excuses, or delaying execution.

Usage

To use Code Procrastinator in your own Python projects, simply import and call the procrastinate function:

from code_procrastinator import procrastinate

# Make your program procrastinate for up to 10 seconds, with 3 random delays
procrastinate(10, 3)

Function Behavior

  • Randomly selects a number of unique delays between 0 and max_time.
  • After each delay, it executes a random procrastination action.
  • Available actions include:
    • Printing excuses for procrastination.
    • Opening a fun website for distraction.

Arguments

Argument Type Description
max_time int The maximum number of seconds for any delay. Must be greater than 0.
delay_count int The number of procrastination delays. Must be greater than 0.

Exceptions

  • ValueError: Raised if max_time or delay_count is less than or equal to 0.

Return Value

  • set: A set of unique delay times used during procrastination.

Example Usage

>>> procrastinate(10, 3)
Procrastinating...
Let's take an internet break! :D https://en.wikipedia.org/wiki/Special:Random
Procrastinating...
Wow, this 4-hour video essay looks interesting...
Procrastinating...
I'll do it tomorrow

excuse_wrapper()

The excuse_wrapper function will also procrasinate on providing correct output, will relay an excuse, and has a chance to completely fail on the task.

Usage

Import excuse_wrapper, and use it as a decorator for the original function

from code_procrastinator import excuse_wrapper
@procrastinator.excuse_wrapper
def add(x, y):
    return x + y
add(1, 2)

Example Usage

>>> add(1. 2)
Optimizing best possible answer
Processing... 25% done.
Still thinking... 50% done.
Someone just deleted my work... I need to start over again...
TBH... forget this I'll do it tomorrow.

reaffirm_program()

The reaffirm_program function checks if the input message contains any positive keywords. When it detects encouragement, it prints a motivational message and confirms that the program is ready to continue running. This function is useful when you want your application to "get back on track" after a period of procrastination.

Example Usage

from code_procrastinator import reaffirm_program

# Provide a message with positive keywords to trigger the function
result = reaffirm_program("You're awesome and brilliant!")
print(result)  # Expected output: "Program is now running! Let's do this!"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

code_procrastinator-0.1.8.tar.gz (45.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

code_procrastinator-0.1.8-py3-none-any.whl (31.4 kB view details)

Uploaded Python 3

File details

Details for the file code_procrastinator-0.1.8.tar.gz.

File metadata

  • Download URL: code_procrastinator-0.1.8.tar.gz
  • Upload date:
  • Size: 45.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for code_procrastinator-0.1.8.tar.gz
Algorithm Hash digest
SHA256 4dd880afe12d9b418a794eeb03e7fe849e03e7afde120a7b26043148a96a64a1
MD5 93b8119ec4b6aca87bba7b46a57a5cd6
BLAKE2b-256 b964d9760b3d518d39ed21fabbec2c50569ffc4393ce087be327d7d4536e5cea

See more details on using hashes here.

File details

Details for the file code_procrastinator-0.1.8-py3-none-any.whl.

File metadata

File hashes

Hashes for code_procrastinator-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 eb16017a11d0e9de9a4d9ad6c8c0059188c9a7ef11a36711245a44d2ad0384c2
MD5 c8e86081b19840803df0918169a0ecf4
BLAKE2b-256 95acb29e9a06da40a4e6ed4fa17903186a0116a2f1b0caa4f431a6c380cc1066

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page