Skip to main content

Pick photos following a given strategy and upload them to various destinations

Project description

Photos Picker

Build Status codecov

This libary allows to pick photos in a folder according to a given strategy (last photos, random photos...) and copy them to a destination (another system folder, Dropbox or Google drive folder...)

Compatibility

This library currently works with Python 2.7, Python 3.4, Python 3.5, Python 3.6 and Python 3.7.

Install

$ pip install photos-picker

Usage

The main class PhotosPicker accepts a "picker", a tuple of "filters" and an "uploader" as arguments. The picker allows to select photos while the filters modify them. At the end of the process, the uploader copy transformed (or not) photos to a given destination. Below the simplest example which copy the 50 lastest photos to another directory:

# Python 2.7 example
from photospicker.exception.abstract_exception import AbstractException
from photospicker.picker.pickers.last_photos_picker import LastPhotosPicker
from photospicker.uploader.uploaders.filesystem_uploader import FilesystemUploader
from photospicker.photos_picker import PhotosPicker

if __name__ == '__main__':
    try:
        picker = LastPhotosPicker('/pictures', 50)
        uploader = FilesystemUploader('/destination')

        photos_picker = PhotosPicker(picker, (), uploader)
        photos_picker.run()
    except AbstractException as err:
        print err.message

Since picking and uloading may take a while, progress events are dispatched. You can see a more complex example which displays work progress here.

Pickers:

  • LastPhotosPicker: pick the n lastest photos.
  • RandomPicker: pick randomly n photos.
  • SmartPicker: pick randomy n photos. Recent photos have more chance to be picked than old ones. It results by a picking of a majority of recent photos and a few old ones.

More details here

Note you can also create your own picker extending the base class AbstractPicker.

Filters:

  • ResizeFilter: resize the photos with the given width and height. The final photos size are computed for avoiding distortion.
  • RotateFilter: Rotate the photos according to EXIF data.

More details here

Note you can also create your own filter extending the base class AbstractFilter.

Uploaders:

Note that uploaders don't append new photos. Either the directory must be empty or the uploader clear it before copying files.

  • FilesystemUploader: copy the photos to a given directory. This directory must exist and be empty.
  • DropBoxUploader: upload the photos to Dropbox. Note that you should limit your token access to application. Creating a full access token is not needed and may induce security issues.
  • GDriveUploader upload the photos to Google Drive.

More details here

Note you can also create your own uploader extending the base class AbstractUploader.

Contributing

The project is currenlty currently shipped with many pickers, filters or uploaders. But others can be developed, you may post an issue for that. Or better, read how to post a pull request :)

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

photos-picker-1.0.0.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

photos_picker-1.0.0-py2-none-any.whl (64.8 kB view details)

Uploaded Python 2

File details

Details for the file photos-picker-1.0.0.tar.gz.

File metadata

  • Download URL: photos-picker-1.0.0.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/2.7.10

File hashes

Hashes for photos-picker-1.0.0.tar.gz
Algorithm Hash digest
SHA256 56bb6c89c306a12628e11623cfa7d8b1c6da9244e7200d020177890916cc34fc
MD5 4cbc4d6fffdfd75bdea7c2d6fada4f2d
BLAKE2b-256 88d087dbda702b2d4dbc1c7498109c53ea194d92199bd00c35e0f72270246142

See more details on using hashes here.

File details

Details for the file photos_picker-1.0.0-py2-none-any.whl.

File metadata

  • Download URL: photos_picker-1.0.0-py2-none-any.whl
  • Upload date:
  • Size: 64.8 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/2.7.10

File hashes

Hashes for photos_picker-1.0.0-py2-none-any.whl
Algorithm Hash digest
SHA256 ad4f1ddeb00605592f44ce8fc9f76d67638784a1aa67fb8b9fd47b5b2018779c
MD5 5af90d23bc63682d422e2759da1a1f2b
BLAKE2b-256 4326ada6a1b4f655b1db78a14461b6bd82342969c30447ee74c3142d2437cfa6

See more details on using hashes here.

Supported by

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