Skip to main content

A lighthearted Python package that gives developers dog-themed emotional support.

Project description

🐶 barkpy — The Developer's Best Friend

Python package tests

barkpy is a lighthearted Python package that brings dog-themed joy to everyday developer life. Feeling burnt out after a rough debugging session? Let barkpy shower you with encouragement, suggest a zoomie break, and help you make hard technical decisions — the way only a good dog can.

📦 Available on PyPI: https://pypi.org/project/barkpy/0.1.0/


🦴 Features

Function What it does
good_boy_generator Gives you a massive ego boost based on how rough your day was
zoomie_timer Calculates the perfect high-intensity break after sitting too long
mailman_alert Translates scary Jira tickets into dog barks
paw_selector Sniffs out the best option from a list of choices
puppy_eyes_translator Rewrites your PR review requests so teammates can't say no

🚀 Installation

Install barkpy via pip:

pip install barkpy

Or inside a pipenv-managed project:

pipenv install barkpy

📖 Usage

Import the package

from barkpy import (
    good_boy_generator,
    zoomie_timer,
    mailman_alert,
    paw_selector,
    puppy_eyes_translator,
)

good_boy_generator(name, roughness)

Provides a massive ego boost to a developer based on how rough their day has been. Higher roughness levels increase encouragement repetitions and belly rubs.

Arguments:

  • name (str) — the developer's name
  • roughness (int, 1–10) — how rough the day was
from barkpy import good_boy_generator

result = good_boy_generator("Riley", 3)
print(result)
# Who's a good developer?! Who's a good developer?! Who's a good developer?!
# You are, Riley, you are!
# *wag wag* *scritch* *scritch* *scritch*
# Have a treat! 🦴

zoomie_timer(sitting_hours, has_backyard)

Calculates the perfect zoomie break based on how long you've been sitting. Suggests backyard sprints or indoor spins depending on your living situation.

Arguments:

  • sitting_hours (float) — how long you've been sitting (must be > 0)
  • has_backyard (bool) — whether you have a backyard
from barkpy import zoomie_timer

result = zoomie_timer(3.5, False)
print(result)
# You've been sitting for 3.5 hours! Time for 3 spins in the kitchen and a quick bark at the mailman. *zooms down the hallway* 🐾

result = zoomie_timer(2.0, True)
print(result)
# You've been sitting for 2.0 hours! Time for 4 wind sprints around the backyard! *zooms at full speed* 🐾

mailman_alert(ticket_title, annoyance_level)

Translates scary Jira tickets or deadline emails into dog barks to make them less intimidating. Higher annoyance levels produce louder, more aggressive barking.

Arguments:

  • ticket_title (str) — the ticket or email subject line
  • annoyance_level (int, 1–5) — how alarming it is
from barkpy import mailman_alert

result = mailman_alert("Server is down", 5)
print(result)
# BARK BARK! *snarl* Server is down *protective growl*

paw_selector(options, favorite_toy)

Helps you make a difficult technical decision by sniffing out the best option, with a scent-based justification involving your favorite toy.

Arguments:

  • options (list of str) — the options to choose from (must not be empty)
  • favorite_toy (str) — your dog's favorite toy, used in the justification
from barkpy import paw_selector

result = paw_selector(["React", "Vue", "Svelte"], "Squeaky Ball")
print(result)
# The paws have spoken! We pick 'Svelte' because it smells like your Squeaky Ball! *tail wag* 🐾

puppy_eyes_translator(request_text, sadness_multiplier)

Converts a help request into an irresistible puppy-eyes version so teammates can't say no to your pull request.

Arguments:

  • request_text (str) — the request to transform (must not be empty)
  • sadness_multiplier (int, 1–10) — how sad and desperate the message should sound
from barkpy import puppy_eyes_translator

result = puppy_eyes_translator("Can you review my PR?", 7)
print(result)
# *whimper* Can *tilts head* you review my *big round eyes* PR? *sad tail thump* *tiny puppy sigh*

result = puppy_eyes_translator("Can you review my PR?", 4)
print(result)
# *whimper* Can *tilts head* you review my *big round eyes* PR?

🐾 Example Program

See example.py for a complete program that demonstrates all five functions.


🛠️ Contributing

Follow these steps to set up the project locally and contribute.

1. Clone the repository

git clone https://github.com/swe-students-spring2026/3-package-mountain_goat.git
cd 3-package-mountain_goat

2. Install pipenv (if you don't have it)

pip install pipenv

3. Set up the virtual environment and install dependencies

pipenv --python $(which python3)
pipenv install --dev
pipenv install -e .

4. Activate the virtual environment

pipenv shell

5. Run the tests

pipenv run pytest

6. Build the package

pipenv run python -m build

7. Upload to PyPI (maintainers only)

pipenv run twine upload dist/*

🔄 Developer Workflow

All code changes must be made in a feature branch — never directly on main.

# Create a feature branch
git checkout -b feature/your-feature-name

# Make your changes, then commit
git add .
git commit -m "Add your feature"
git push origin feature/your-feature-name

Then open a pull request on GitHub. A teammate must review and approve before merging. The GitHub Actions CI will automatically run tests on Python 3.12 and 3.13 when a PR is opened.


⚙️ CI/CD

This project uses GitHub Actions to run tests on every pull request to main across two Python versions (3.12 and 3.13). See .github/workflows/ci.yml.

There are no environment variables or secret configuration files required to run this project.


👥 Team

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

barkpy-0.1.1.tar.gz (20.2 kB view details)

Uploaded Source

Built Distribution

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

barkpy-0.1.1-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

File details

Details for the file barkpy-0.1.1.tar.gz.

File metadata

  • Download URL: barkpy-0.1.1.tar.gz
  • Upload date:
  • Size: 20.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for barkpy-0.1.1.tar.gz
Algorithm Hash digest
SHA256 40837edafbe844b17aebb0fa01655b7ef58ceeb434db9876deaa5642d164a5fc
MD5 5e7573fdd9169c4ab424e96506061495
BLAKE2b-256 bafc494ca41f871810ce5cab6af440498e21e141eaf22fdfd590e063d3302d67

See more details on using hashes here.

File details

Details for the file barkpy-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: barkpy-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 18.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for barkpy-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ae43d1d734e2c80950568d7aecdf91be29481d7e4fdc4398292485f2b356d95c
MD5 865708fa9c431315c9963da917a2a3b7
BLAKE2b-256 fa5d5103ea777f609030fbfd05750adb9800c0fa2cd96c4ee61e8ac32ff7fd67

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