Skip to main content

Python client for the Friday Movie Club API

Project description

Friday Movie Club Client

Python client for the Friday Movie Club API.

fmc wraps the FMC REST API in a synchronous, typed client built on httpx and pydantic. Resources are exposed as attributes on a single FMCClient:

Attribute Purpose
client.auth Register, login (email/password or PAT), refresh tokens
client.users Current-user profile and personal access tokens
client.clubs Club CRUD, members, invitations, cover images
client.movies Movie suggestions, rankings, TMDB search
client.events Event CRUD, RSVPs, movie assignment

Requirements

  • Python 3.12+

Installation

pip install python-fmc

Or with uv:

uv add python-fmc

Quickstart

from fmc import FMCClient

with FMCClient(base_url="https://api.example.com/api/v1") as client:
    # Login with email/password (sets the access token on the client)
    client.auth.login(email="user@example.com", password="hunter2")

    # Or login with a Personal Access Token
    # client.auth.login(token="fmc_pat_...")

    # Create a club and list its members
    club = client.clubs.create("Friday Movie Club", description="Weekly hangout")
    members = client.clubs.list_members(club.id)

    for user in members.items:
        print(user.name, user.email)

If you already have an access token, pass it directly:

client = FMCClient(base_url="...", token="eyJhbGciOi...")

Errors

API errors are raised as subclasses of FMCError:

from fmc import FMCClient, NotFoundError, ValidationError

try:
    club = client.clubs.get("00000000-0000-0000-0000-000000000000")
except NotFoundError:
    ...
except ValidationError as e:
    ...

Available exceptions: APIError, AuthenticationError, ForbiddenError, NotFoundError, ConflictError, ValidationError — all inherit from FMCError.

Examples

The examples/ directory contains runnable scripts that read BASE_URL and AUTH_TOKEN from the environment:

  • create-club/ — create a club if it doesn't already exist
  • create-suggestions/ — bulk-suggest movies from a JSON file
  • create-events/ — create movie-night events from a JSON file
export BASE_URL=https://api.example.com/api/v1
export AUTH_TOKEN=fmc_pat_...
python examples/create-club/create-club.py

Development

This project uses uv for dependency management and ruff for linting.

uv sync
uv run ruff check
uv build

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

python_fmc-1.3.0.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_fmc-1.3.0-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file python_fmc-1.3.0.tar.gz.

File metadata

  • Download URL: python_fmc-1.3.0.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for python_fmc-1.3.0.tar.gz
Algorithm Hash digest
SHA256 5b57245faa5775b4073fd81f5e3ef8fa5c8486ffa4344cce1b44aebbc72f396c
MD5 9aabcfb110be1c4f5bd47ce2bc10a3cf
BLAKE2b-256 f773efa23436c369feff11d8c7f81a13b0b84b06e37c51109464835f2b1a311b

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_fmc-1.3.0.tar.gz:

Publisher: publish.yml on friday-movie-club/pyfmc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_fmc-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: python_fmc-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for python_fmc-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ff4c0ad739d45b0c3ead77fa1910771e6427a140e84dbb1df678cc24c975d59
MD5 4ed1e085b5115e4d07ea97ff77e963d2
BLAKE2b-256 490c04a2f149177d81860558ad22b14e1c6c80bc93ae337b6b2fcdd180e207d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_fmc-1.3.0-py3-none-any.whl:

Publisher: publish.yml on friday-movie-club/pyfmc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page