Look up information about photos and collections of photos from Flickr
Project description
flickr-photos-api
This is a library for getting information about photos from the Flickr API.
It's not a general-purpose Flickr API library. Instead, it focuses on providing information about photos and photo collections. It tries to abstract away some of the details of the Flickr API -- for example, licenses are returned as complete dictionaries, rather than as the numeric license IDs returned by Flickr API methods.
Examples:
>>> from flickr_photos_api import FlickrPhotosApi
>>> api = FlickrPhotosApi(api_key="…", user_agent="…")
>>> photo = api.get_single_photo(photo_id="14898030836")
>>> photo
{'id': '14898030836', 'title': 'NASA Scientists Says', …}
>>> photo["license"]
{'id': 'cc-by-2.0', 'label': 'CC BY 2.0', 'url': 'https://creativecommons.org/licenses/by/2.0/'}
>>> photo["url"]
'https://www.flickr.com/photos/lassennps/14898030836/'
This library was created for use in Flinumeratr, Flickypedia, and other Flickr Foundation projects.
Usage
-
Install flickr-photos-api from PyPI:
$ pip install flickr-photos-api
-
Construct an instance of
FlickrPhotosApi
. You need to pass a user-agent that identifies you, and a Flickr API key.from flickr_photos_api import FlickrPhotosApi api = FlickrPhotosApi(api_key="…", user_agent="…")
-
Call methods on FlickrPhotosApi. The methods meant for public use are:
def get_single_photo(photo_id: str) -> SinglePhoto: ... def get_photos_in_album(user_url: str, album_id: str) -> PhotosInAlbum: ... def get_photos_in_gallery(gallery_id: str) -> PhotosInGallery: ... def get_public_photos_by_user(user_url: str) -> CollectionOfPhotos: ... def get_photos_in_group_pool(group_url: str) -> PhotosInGroup: ... def get_photos_with_tag(tag: str) -> CollectionOfPhotos: ...
Methods that return collections of photos also support
page
andper_page
parameters to control pagination.
Development
You can set up a local development environment by cloning the repo and installing dependencies:
$ git clone https://github.com/Flickr-Foundation/flickr-photos-api.git
$ cd flickr-photos-api
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip install -e .
If you want to run tests, install the dev dependencies and run py.test:
$ source .venv/bin/activate
$ pip install -r dev_requirements.txt
$ coverage run -m pytest tests
$ coverage report
To make changes to the library:
- Create a new branch
- Push your changes to GitHub
- Open a pull request
- Fix any issues flagged by GitHub Actions (including tests, code linting, and type checking)
- Ask somebody to review your change
- Merge it!
To create a new version on PyPI:
-
Update the version in
src/flickr_photos_api/__init__.py
-
Add release notes in
CHANGELOG.md
and push a new tag to GitHub -
Deploy the release using twine:
$ python3 -m build $ python3 -m twine upload dist/* --username=__token__
You will need a PyPI API token to publish packages. This token is stored in 1Password.
License
This project is dual-licensed as Apache-2.0 and MIT.
Project details
Release history Release notifications | RSS feed
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
Hashes for flickr_photos_api-1.3.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 722415d04c5a26ffd98f43578844e86981bd41bbaf47d6ac6d1086f6bc687a34 |
|
MD5 | 0a31e6be0757f1da62c382e392dddd76 |
|
BLAKE2b-256 | 7135d57f00a4f800ecc14863ba6ce752d471951986def4a2b1a9345ded996db5 |