# Awsume's Developer Documentation
Welcome to Awsume's developer documentation. This is where you can find information around how the Awsume code-base is structured, to make development on the project easier.
Awsume is written as a command-line tool in Python, so most conventional Python standards are followed.
# Project Layout
awsume
- the main package for the awsume applicationawsume_autocomplete
- a peripheral package used to make awsume's autocomplete on plugin-supplied profiles a lot fasterdocs
- the VuePress documentation location - what you're reading right now!shell_scripts
- the location of the shell script wrappers that are used to wrap theawsumepy
executable for a given shell. This allowssource
ing the shell script so your active shell's AWS environment variables can be settest
- the location of awsume's test files
Its environment has been described in the Pipfile
, with some scripts that can help facilitate your development.
It's helpful to be familiar with the following when developing for awsume:
- Python development:
- Virtualenvironments (including pipenv (opens new window))
- The
setup.py
file (setuptools) - pytest (opens new window)
- Modules and packages
- Unit testing and module/function mocking
- Plugin Systems
pluggy
(opens new window)- Awsume's plugin development process
- AWS
- IAM users and roles
- STS credentials
- Boto3
- Shared Credentials and Config files (opens new window)