Skip to main content

🐶 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

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)

Source distribution for barkpy 0.1.1
File Size Uploaded Provenance
barkpy-0.1.1.tar.gz 20.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for barkpy 0.1.1
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page