Skip to main content
  1. Projects/

fastly-py

·303 words·2 mins
Jake Roggenbuck
Author
Jake Roggenbuck
I am currently studying Computer Science

Fastly Python Client #

fastly-py is available through pip as the fastly package

There are three simple scripts provided in /bin that can be used for various stand-alone purge operations.

A Note About Authentication #

Authenticating with an API Token is shown in the example below. For more information on API Tokens, please see Fastly’s API Token documentation. For more information about authenticating to our API, please see our Authentication section.

Usage #

import fastly
api = fastly.API()
api.authenticate_by_key('MYKEY')
api.purge_url('www.example.com', '/some/path')

TODO: #

Doc files Docstrings Config file create requirements.txt file

Running Tests #

$ python -m test.api_test

Set up environment configuration #

We use Python’s os and a .env file to manage environment variables in development and test environments. See the list of required environment variables in the .env.example file in the root directory.

To optionally set values for testing, make a copy of .env.example and name it .env.

cp .env.example .env

# Note:
# If using direnv, you can just use it as a `.envrc` file and not have to `source` it manually.

# Using your favorite editor, update the values of the environment variables in `.env` and then

source .env

Distributing a package #

Create a .pypirc file:

$ cat > .pypirc
[distutils]
index-servers =
    pypi

[pypi]
repository: https://upload.python.org/legacy/

Install twine:

$ python3 -m pip install --user --upgrade twine

Create a build:

$ python3 setup.py sdist bdist_wheel

Use twine to publish to Pypi:

$ twine upload dist/* 
Uploading distributions to https://upload.pypi.org/legacy/
Enter your username: [YOUR_USERNAME]
Enter your password:
Uploading fastly-0.2.3-py3-none-any.whl
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 13.2k/13.2k [00:02<00:00, 6.40kB/s]
Uploading fastly-0.1.3-py2.7.egg
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 17.8k/17.8k [00:01<00:00, 12.8kB/s]
Uploading fastly-0.1.3-py3.6.egg
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 18.3k/18.3k [00:01<00:00, 14.2kB/s]
Uploading fastly-0.2.3.tar.gz
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 9.25k/9.25k [00:01<00:00, 9.09kB/s]

Builds and uploads to PyPi. More info on this at the python site. You will need to be granted access to the fastly package in order to push.