Skip to main content

Python build & test

Python Package Exercise

Funtasks: A Task Generating Package

This package was created by generally following the Packaging Python Projects guide, with the addition of pipenv for virtual environment management.

Overview

Funtasks is a simple and fun task management package designed to help you add, complete, and randomly select tasks. It includes features for adding tasks with urgency levels, marking tasks as complete, and generating random tasks or daily goals based on your available time.

Team Members

Natalie Ovcarov
Jun Li
Daniel Brito
Alvaro Martinez

Link to Our Package on PyPI

PyPI package Link

Functions Overview

  • add_task(task_name: str, urgency: int) -> str

    • Description: Adds a new task to the list with a specified urgency level.
    • Parameters:
      • task_name: The name of the task to add.
      • urgency: An integer representing the urgency level (1–5, with 5 being the most urgent).
    • Returns: A confirmation message upon successful addition.
    • Raises: ValueError if the task already exists.
    • Example:
      add_task("Do laundry", 3)
      
  • complete_task(task_name: str) -> str

    • Description: Marks a task as completed.
    • Parameters:
      • task_name: The name of the task to complete.
    • Returns: A confirmation message or a message indicating the task doesn't exist.
    • Example:
      complete_task("Do laundry")
      
  • random_task() -> str

    • Description: Retrieves a random task from the list.
    • Returns: The name of a random task or a message indicating there are no tasks.
    • Example:
      random_task()
      
  • random_daily_goal(available_time: int) -> str

    • Description: Suggests a task based on the available time.
    • Parameters:
      • available_time: Time available in minutes (used to determine task urgency).
    • Returns: A task that fits the time constraint or a message indicating no tasks are suitable.
    • Example:
      random_daily_goal(25)
      

How to Install and Use This Package

Platform Configuration

  • Windows users: Use python and pip commands instead of python3 and pip3 where necessary.

    pip install pipenv
    python your_program_filename.py
    
  • macOS/Linux users: Ensure Python 3 is installed and use python3.

    pip3 install pipenv
    python3 your_program_filename.py
    
  1. Install pipenv (if not already installed):

    pip3 install pipenv
    
  2. Install the package:

    pip3 install funtasks
    
  3. Activate the virtual environment:

    pipenv shell
    
  4. Create a Python program file to import and use the package:

    from funtasks.tasks import add_task, complete_task, random_task, random_daily_goal
    add_task("Tell a joke", 2)
    complete_task("Tell a joke")
    print(random_task())
    print(random_daily_goal(25))
    
  5. Run the program:

    python3 your_program_filename.py
    
  6. Exit the virtual environment:

    exit
    

Alternative: Run the Package Directly

  1. Create and activate a pipenv virtual environment.
  2. Run the package directly:
    python3 -m funtasks
    
  3. Exit the virtual environment:
    exit
    

How to Run Unit Tests

We've included three unit tests for each function in the funtasks package. To run these tests:

  1. Install pytest in the virtual environment:
    pipenv install pytest
    
  2. Run the tests from the main project directory:
    python3 -m pytest
    
  3. Verify all tests pass to ensure correct functionality.

How to Contribute to Funtasks

Prerequisites

Make sure you have Python 3.9 or higher installed:

python3 --version
  1. Clone the repository:

    git clone https://github.com/software-students-fall2024/3-python-package-java_and_the_scripts_.git
    
  2. Enter the directory:

    cd 3-python-package-java_and_the_scripts_
    
  3. Set up a virtual environment using pipenv:

    pipenv install --dev
    
  4. Activate the virtual environment:

    pipenv shell
    
  5. Modify and run the file:

    python -m funtasks
    

    If you want to run a specific file (like tasks.py), use:

    python funtasks/tasks.py
    
  6. Run tests:

    pipenv run pytest
    
  7. Build the package:

    python3 -m build
    
  8. Exit the virtual environment:

    exit
    

Continuous Integration

This project has a continuous integration workflow that builds and runs unit tests automatically with every push to GitHub.

Metadata

Release files for funtasks 0.1.21

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for funtasks 0.1.21
File Size Uploaded
funtasks-0.1.21.tar.gz 44.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for funtasks 0.1.21
File Interpreter ABI Platform
funtasks-0.1.21-py3-none-any.whl Python 3 none any Details

Total release size: 74.1 kB

Release files / funtasks-0.1.21.tar.gz

Download URL funtasks-0.1.21.tar.gz
Size 44.1 kB
Tags Source
SHA-256 checksum
How to use checksums
83cff9857194e1f7b0ea3f27f95158cc96864bd169988544158608b6de2e1826
BLAKE2b-256 checksum
How to use checksums
d93cf18733e1633231c8ea5e706af2f1b7854ed6cfca472de7001fe433a01477
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release files / funtasks-0.1.21-py3-none-any.whl

Download URL funtasks-0.1.21-py3-none-any.whl
Size 30.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
381aa3442e4cf1758de817d7ec597cc69f2c72325266d6e7aaca67dfd4dc5c2b
BLAKE2b-256 checksum
How to use checksums
2dbcb299ba343302fc9a2cef078c508cb0ad4a20aec8bfeb26c8a5e620b29b38
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release history Release notifications | RSS feed

This release

0.1.21 This release

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

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