Skip to content

jmo7728/3-python-package-team_avalon

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Package Exercise

An exercise to create a Python package, build it, test it, distribute it, and use it. See instructions for details.

eatnyc - NYC Restaurant Recommender

Build and Test

eatnyc is a lightweight Python package that recommends top-rated NYC restaurants based on cuisine, neighborhood, price, and rating.
It’s designed to help users explore the city’s dining scene and discover great places through data-driven recommendations — directly from the command line or in Python.


How to install and use this package

Option 1: Try it from TestPyPI (current test version)

You can try out the latest build of eatnyc from the TestPyPI repository.

  1. Create and Activate a virtual environment
pipenv --python 3.11
pipenv shell
  1. Install from TestPyPI Replace 0.1.0 with your latest version number (see pyproject.toml)
pipenv install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple eatnyc==0.1.0

For now: The --extra-index-url flag ensures dependencies are installed from the real PyPI, while your package is pulled from TestPyPI

  1. Run the package You can use eatnyc either as a CLI app or a Python module.

Command line:

eatnyc -n 5 --sort rating

Python module:

python -m eatnyc

Example Program

from eatnyc import load_data, filter_restaurants, top_n, sample_dish, format_card

data = load_data()

# Filter restaurants by cuisine and neighborhood
italian_manhattan = filter_restaurants(
    data,
    cuisine="Italian",
    neighborhood="Manhattan",
    min_rating=4.0
)

# Get top 5 restaurants by rating
best = top_n(data, n=5, sort_by="rating")

# Show a sample dish recommendation
print(sample_dish(cuisine="Japanese"))

# Print formatted cards
for r in best:
    print(format_card(r, style="ascii", width=48))

Run the example:

pipenv run python examples/demo.py

How to Run Unit Tests

Simple unit tests are included in the 'tests' directory. To run them:

  1. Install 'pytest' inside your virtual environment:
pipenv install pytest
  1. Run the tests from project root:
python3 -m pytest
  1. All tests should pass. Any failed test indicates that the package code is behaving differently from the expected results.

Option 2: Install from PyPI (for users)

pip install eatnyc

Install locally (for developers)

pipenv install -e .

If that set up fails for you, use:

python3 -m pipenv install -e .

Developer Workflow (Building & Publishing)

If you modify the code and want to publish a new version to TestPyPI, follow these steps:

#1. CLEAN old build artifacts
rm -rf dist build src/*.egg-info
pipenv install build

#2. BUMP version number in pyproject.toml (e.g., 0.1.0 → 0.1.1)

#3. BUILD the package
pipenv run python -m build

#4. UPLOAD new version to TestPyPI
pipenv install twine
pipenv run twine upload -r testpypi dist/*
  1. REINSTALL to test it:
pipenv run pip uninstall -y eatnyc
pipenv install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple eatnyc==0.1.1
  1. Once final, UPLOAD to real PyPI (final version) with:
pipenv run twine upload dist/*

Project Links

Contributors

About

software-engineering-fall-2025-3-python-package-python-package-exercise created by GitHub Classroom

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%