# 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 theawsumepyexecutable for a given shell. This allowssourceing 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.pyfile (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)