A lighthearted Python package that gives developers dog-themed emotional support.
Project description
🐶 barkpy — The Developer's Best Friend
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 nameroughness(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 lineannoyance_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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40837edafbe844b17aebb0fa01655b7ef58ceeb434db9876deaa5642d164a5fc
|
|
| MD5 |
5e7573fdd9169c4ab424e96506061495
|
|
| BLAKE2b-256 |
bafc494ca41f871810ce5cab6af440498e21e141eaf22fdfd590e063d3302d67
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae43d1d734e2c80950568d7aecdf91be29481d7e4fdc4398292485f2b356d95c
|
|
| MD5 |
865708fa9c431315c9963da917a2a3b7
|
|
| BLAKE2b-256 |
fa5d5103ea777f609030fbfd05750adb9800c0fa2cd96c4ee61e8ac32ff7fd67
|