Consolo
Utility for pseudo-mounting an AWS lambda filesystem locally. Supports (as default) hot reloading.
Examples
Start hot syncing
consolo --profile-name dev --function-name myProject --path /src/code/myproject
Upload from local to cloud
consolo --profile-name dev --function-name myProject --path /src/code/myproject --upload
Download from cloud to local
consolo --profile-name dev --function-name myProject --path /src/code/myproject --download
What do I do with my mouth
Pronounced "Con Solo", like "Han Solo".
Installation
Single file
curl -s https://raw.githubusercontent.com/ahonnecke/consolo/main/install.sh | bash
Pip install
pip install consolo
ahonnecke@antonym:~/src/consolo$ pip install --upgrade consolo
Requirement already satisfied: consolo in /home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages (0.2.3)
Collecting consolo
Downloading consolo-0.2.5-py3-none-any.whl (6.6 kB)
Requirement already satisfied: argdantic>=0.3.0 in /home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages (from consolo) (0.3.0)
Requirement already satisfied: requests>=2.28.2 in /home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages (from consolo) (2.28.2)
Requirement already satisfied: watchdog>=2.3.1 in /home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages (from consolo) (2.3.1)
Requirement already satisfied: boto3>=1.26.87 in /home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages (from consolo) (1.26.87)
Requirement already satisfied: pydantic>=1.10.0 in /home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages (from argdantic>=0.3.0->consolo) (1.10.4)
Requirement already satisfied: s3transfer<0.7.0,>=0.6.0 in /home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages (from boto3>=1.26.87->consolo) (0.6.0)
Requirement already satisfied: botocore<1.30.0,>=1.29.87 in /home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages (from boto3>=1.26.87->consolo) (1.29.87)
Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages (from boto3>=1.26.87->consolo) (1.0.1)
Requirement already satisfied: charset-normalizer<4,>=2 in /home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages (from requests>=2.28.2->consolo) (2.1.1)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages (from requests>=2.28.2->consolo) (1.26.14)
Requirement already satisfied: certifi>=2017.4.17 in /home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages (from requests>=2.28.2->consolo) (2022.12.7)
Requirement already satisfied: idna<4,>=2.5 in /home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages (from requests>=2.28.2->consolo) (3.4)
Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in /home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages (from botocore<1.30.0,>=1.29.87->boto3>=1.26.87->consolo) (2.8.2)
Requirement already satisfied: typing-extensions>=4.2.0 in /home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages (from pydantic>=1.10.0->argdantic>=0.3.0->consolo) (4.4.0)
Requirement already satisfied: six>=1.5 in /home/ahonnecke/.pyenv/versions/3.8.13/lib/python3.8/site-packages (from python-dateutil<3.0.0,>=2.1->botocore<1.30.0,>=1.29.87->boto3>=1.26.87->consolo) (1.16.0)
Installing collected packages: consolo
Attempting uninstall: consolo
Found existing installation: consolo 0.2.3
Uninstalling consolo-0.2.3:
Successfully uninstalled consolo-0.2.3
Successfully installed consolo-0.2.5
ahonnecke@antonym:~/src/consolo$ consolo --help
usage: consolo [-h] --profile-name TEXT --function-name TEXT --path TEXT [--upload | --no-upload] [--download | --no-download] [--create | --no-create] [--verbose | --no-verbose]
optional arguments:
-h, --help show this help message and exit
--profile-name TEXT (required)
--function-name TEXT (required)
--path TEXT (required)
--upload
--no-upload
--download
--no-download
--create
--no-create
--verbose
--no-verbose
Known issues (not slated for fix)
- You must hard reload the console to see changes
- You must "deploy" from the console for changes to be effected, if changes are made in the console
- if changes are left in the console, the upload will fail with "ResourceUpdateInProgress", or something
TODO
- TESTING: Capture and deal with rapid multi-file changes
- List available functions
- AST files before upload
- Unit tests
- Follow logs while watching
DONE
- Ignore new files added by pytest
Usage
consolo.py --profile-name dev-power --function-name myLambda --path /home/ahonnecke/src/my_lambda/
examples
ahonnecke@antonym:~/src/v2x-messenger$ consolo.py \
--profile-name dev-power \
--function-name v2x-messenger__cipt-status-ingestion \
--path /home/ahonnecke/src/v2x-messenger/lambdas/cipt_status_ingestion/
- With the profile
dev-power- Against the lambda
- v2x-messenger__cipt-status-ingestion`
- Mapped on top of the local directory
/home/ahonnecke/src/v2x-messenger/lambdas/cipt_status_ingestion/
publish
- Bump version
pdm publish --username $PIP_USERNAME --password $PIP_PW
Metadata
Release files for consolo 0.2.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| consolo-0.2.6.tar.gz | 6.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| consolo-0.2.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.5 kB
Release files / consolo-0.2.6.tar.gz
| Download URL | consolo-0.2.6.tar.gz |
|---|---|
| Size | 6.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cfa1fd04665aa8439d92a138b9b02db81a4b5e2f8f5fcd4e8f3d8b1b3c5ac681
|
|
BLAKE2b-256 checksum How to use checksums |
19f6df219401af6352cf5ea7dc0cd1b78e59e6dc6241606cfe1ac45bb3a7b38b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
pdm/2.4.8 CPython/3.8.13
|
Release files / consolo-0.2.6-py3-none-any.whl
| Download URL | consolo-0.2.6-py3-none-any.whl |
|---|---|
| Size | 7.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c7fb1fe04b350318f267b0a0df1f70a86716ac69b52322f9dc9945b932622a14
|
|
BLAKE2b-256 checksum How to use checksums |
4417c83747f8ac81213104a2504d8f10d3322afd76fd8a4dd00ebd03ad8b87de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
pdm/2.4.8 CPython/3.8.13
|
Security for consolo 0.2.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.