Coder Social home page Coder Social logo

wetransfer-python-sdk's Introduction

WeTransfer Python SDK

A Python SDK for the WeTransfer's Public API

Installation

Use PYPI to install latest stable version:

pip install wetransfer

Checkout the repository and inside the repo's root directory use pip to install latest version to your environment with:

pip install .

Usage

Before starting make sure you have an API key acquired from Developers Portal.

As a first step you need to create a client and fill in your board name:

from wetransfer.client import WTApiClient

kwargs = {"key":  "<my-very-personal-api-key>"}
wt_client = WTApiClient(**kwargs)

After you have the client instance you need to authorize using this client:

wt_client.authorize()

If authorization is successful you should be able to create an new empty transfer

transfer = wt_client.create_transfer(transfer_name="My very first Transfer")

Afterwards you should be able to add items to it

from wetransfer.items import File

f1 = File("~/test.txt")
f2 = File("~/test2.txt")
transfer.add_items([f1, f2])

print(transfer)

After calling add_items method the upload process should start. As soon as it returns you should be able to see details for this transfer and access the url that your transfer is available for download.

The full code snippet is as follows:

import sys
from wetransfer.items import File, Link
from wetransfer.client import WTApiClient

kwargs = {"key":  "<my-very-personal-api-key>"}
wt_client = WTApiClient(**kwargs)

if not wt_client.authorize():
    sys.exit(0)

transfer = wt_client.create_transfer(transfer_name="My very first Transfer")

f1 = File("./test.txt")
l1 = Link("https://wetransfer.com/", "WeTransfer Website")

transfer.add_items([f1, l1])

print(transfer)

which if you run it you should see something like:

Transfer with id: <id>, can be found in short url: <str>, with following items: ['Transfer item, file type, with size 10, name test.txt, and local path /Users/bla/test.txt, has 1 multi parts']

Helper methods

If you need to upload only file you can skip the File objects creation and use a helper function that allows you to specify a list of paths as strings and will add these for you a given Transfer

transfer.add_files(["file1.txt", "file2.txt"])

Similar method exist for URLs:

transfer.add_links(["https://wetransfer.com/", "http://www.visitgreece.gr/"])

Debugging

If you need to debug or investigate weird behaviours you can enable logs for this SDK by enabling the dedicated python logger

import logging

logging.basicConfig()
logging.getLogger("wetransfer-python-sdk").setLevel(logging.DEBUG)

kwargs = {"key":  "<my-very-personal-api-key>"}
wt = WTApiClient(**kwargs)
...

You can set the severity level accordingly depending on the verbosity you desire.

Contributing

See dedicated section.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.