Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

An object-oriented friendly & pythonic client for Amazon Web Services (AWS)

Project description


Build Status PyPI version

Warning — this project is in early development. Contributions and feedbacks are welcome. Usage in production systems is discouraged

OOWS (oh-owls) is an object-oriented friendly client for Amazon Web Services — AWS. It is based on boto3 official client and aims to provide a cleaner and more Pythonic interface to handle AWS resources.

Currently, Boto3 already provides the Resource Model which is a nicer and more OO-friendly interface over raw JSON, as explained here. Although it works, it does not provide an interface for resources I currently need. This project started by a personal need of mine to ease the current state of programmatic access to ECS resources.


Suppose you want to list all of a cluster's services' task definitions. Using pure boto3, you'd need to write something like:

session = boto3.Session()
ecs_client = session.client('ecs')
services = ecs_client.list_services(cluster="MyCluster")['serviceArns']
for service in services:
    s = ecs_client.describe_services(cluster="MyCluster", services=[service])
    print("The task definition is {}".format(s['services'][0]['taskDefinition']))

But using oows, you can rewrite this code to something like:

cluster = Cluster("MyCluster")

for service in
    print("The task definition is {}".format(service.task_definition))

Quick Start

Currently, OOWS supports only a few ECS components and operations.

First, install it with PIP

pip install boto3 oows

As of now, you'll need to supply a regular boto3 Session

import boto3
from oows import ecs

s = boto3.Session()  # Create a new boto3 Session.

cluster = ecs.Cluster("MyCluster", s)  # Initialize a new cluster object
service = ecs.Service("server", cluster, s)  # Initialize a new service object
task_definition = service.task_definition  # Gets the service's task definition
task_definition.update_env("new_env", "new_value")  # Creates a new task definition with updated env

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for OOWS, version 0.0.4
Filename, size File type Python version Upload date Hashes
Filename, size oows-0.0.4-py3-none-any.whl (6.3 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size oows-0.0.4.tar.gz (4.7 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page