A lighthearted Python package for exploring and discovering movies from the IMDB Top 250 list with fun utilities for movie selection and analysis.
Project description
Arctic Fox Movies
Arctic Fox Movies is a lighthearted Python package for exploring the IMDB Top 250 dataset and discovering what to watch next.
It includes tools to:
- pick a movie based on your constraints,
- generate a movie quiz from random clues,
- search by lead actor,
- find collaboration movies between two people,
- list movies by a director, and
- spin a random pick by genre.
Dataset source: IMDB Top 250 Movies (Kaggle)
PyPI
- Package page: https://pypi.org/project/arctic-fox-movies/
- Install command:
pip install arctic-fox-movies
Example Program
The project uses the package entry point in
src/arcticfoxmovies/__main__.py.
Run the program from the repository root:
pipenv run python -m arcticfoxmovies --help
Function Reference
Import path:
from arcticfoxmovies.movies import (
movie_night_picker,
quiz,
play_quiz,
lead_actor,
find_collabs,
find_movie_by_director,
genre_roulette,
find_shape_of_dataframe,
)
movie_night_picker(genres_to_avoid=None, runtime_max=150, minimum_rating=8.0)
Returns either a movie dictionary or the fallback string "No movies match your criteria!".
movie = movie_night_picker(
genres_to_avoid=["Horror", "War"],
runtime_max=180,
minimum_rating=8.3,
)
print(movie)
quiz(attributes)
Builds a quiz question and returns quiz metadata.
Allowed values in attributes are "director", "runtime", and "year".
q = quiz(["director", "year"])
print(q["question"])
print("Answer:", q["answer"])
play_quiz(attributes)
Interactive wrapper around quiz(...).
play_quiz(["director", "runtime", "year"])
lead_actor(actor)
Returns movies where actor appears as the first listed cast member.
tom_hanks_movies = lead_actor("Tom Hanks")
print(tom_hanks_movies[:5])
find_collabs(person1, person2)
Returns movies where both people appear among directors, writers, or cast.
shared = find_collabs("Morgan Freeman", "Tim Robbins")
print(shared)
find_movie_by_director(director)
Returns all dataset movies directed by director.
nolan_movies = find_movie_by_director("Christopher Nolan")
print(nolan_movies)
genre_roulette(genre, avoid_year=None)
Returns one random movie title for genre, optionally skipping one year.
pick = genre_roulette("Drama", avoid_year=1994)
print(pick)
Developer Setup
1. Prerequisites
- Python 3.9+ (CI currently validates 3.9, 3.10, 3.11)
pippipenv
Install pipenv if needed:
python -m pip install --user pipenv
2. Clone and install dependencies
git clone https://github.com/swe-students-spring2026/3-package-arctic_fox.git
cd 3-package-arctic_fox
pipenv install --dev
pipenv run pip install -e .
3. Run tests
pipenv run pytest
4. Build package artifacts
pipenv run python -m build
Artifacts are produced in dist/.
5. Validate artifacts and upload to PyPI
pipenv run twine check dist/*
pipenv run twine upload dist/*
Configuration and Data
- No local
.envfile is required to run this package. - The dataset ships in the repository at
data/IMDB Top 250 Movies.csv. - No database setup or seed/import step is required.
Teammates
License
Licensed under the MIT License. See LICENSE.
Course Exercise
This repository is part of the package engineering exercise documented in instructions.md.
Project details
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 arctic_fox_movies-0.1.2.tar.gz.
File metadata
- Download URL: arctic_fox_movies-0.1.2.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ffe153dfb14f80a642350ae9cb099c928a0276dcfe2a811551b3304fd500d9e
|
|
| MD5 |
e826715acf109e35401040138504889f
|
|
| BLAKE2b-256 |
d4ac89e0e54a3001015a4247a867a7e91f076776c6c4961935b7503744768b82
|
Provenance
The following attestation bundles were made for arctic_fox_movies-0.1.2.tar.gz:
Publisher:
python-package.yml on swe-students-spring2026/3-package-arctic_fox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
arctic_fox_movies-0.1.2.tar.gz -
Subject digest:
9ffe153dfb14f80a642350ae9cb099c928a0276dcfe2a811551b3304fd500d9e - Sigstore transparency entry: 1201859815
- Sigstore integration time:
-
Permalink:
swe-students-spring2026/3-package-arctic_fox@a6b74c6563c8bfacdd276b0ac27dc869c5d2e770 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/swe-students-spring2026
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-package.yml@a6b74c6563c8bfacdd276b0ac27dc869c5d2e770 -
Trigger Event:
push
-
Statement type:
File details
Details for the file arctic_fox_movies-0.1.2-py3-none-any.whl.
File metadata
- Download URL: arctic_fox_movies-0.1.2-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
427659f72ee7117ef313b676f6ced3ad933128c7edbfa79c5b4da0c89ff1e0db
|
|
| MD5 |
f724ad87e6ecd7042f20094161965d5d
|
|
| BLAKE2b-256 |
3d8c1f371fb6ba256580d157db3708f08ec63dce3bf88917e47caa9ba11b31a0
|
Provenance
The following attestation bundles were made for arctic_fox_movies-0.1.2-py3-none-any.whl:
Publisher:
python-package.yml on swe-students-spring2026/3-package-arctic_fox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
arctic_fox_movies-0.1.2-py3-none-any.whl -
Subject digest:
427659f72ee7117ef313b676f6ced3ad933128c7edbfa79c5b4da0c89ff1e0db - Sigstore transparency entry: 1201859818
- Sigstore integration time:
-
Permalink:
swe-students-spring2026/3-package-arctic_fox@a6b74c6563c8bfacdd276b0ac27dc869c5d2e770 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/swe-students-spring2026
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-package.yml@a6b74c6563c8bfacdd276b0ac27dc869c5d2e770 -
Trigger Event:
push
-
Statement type: