🐶 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
Metadata
Release files for barkpy 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| barkpy-0.1.1.tar.gz | 20.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| barkpy-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.9 kB
Release files / barkpy-0.1.1.tar.gz
| Download URL | barkpy-0.1.1.tar.gz |
|---|---|
| Size | 20.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
40837edafbe844b17aebb0fa01655b7ef58ceeb434db9876deaa5642d164a5fc
|
|
BLAKE2b-256 checksum How to use checksums |
bafc494ca41f871810ce5cab6af440498e21e141eaf22fdfd590e063d3302d67
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / barkpy-0.1.1-py3-none-any.whl
| Download URL | barkpy-0.1.1-py3-none-any.whl |
|---|---|
| Size | 18.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ae43d1d734e2c80950568d7aecdf91be29481d7e4fdc4398292485f2b356d95c
|
|
BLAKE2b-256 checksum How to use checksums |
fa5d5103ea777f609030fbfd05750adb9800c0fa2cd96c4ee61e8ac32ff7fd67
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Security for barkpy 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.