UMCCR Reusable Python modules
Project description
libumccr
UMCCR Reusable Python modules
Usage
- Install through
pip
like so
pip install libumccr[aws]
- Somewhere in your Python code
from libumccr.aws import libssm
ssm_value = libssm.get_ssm_param("my_param_name")
- Crawling S3 Objects from a Bucket, efficiently!
from libumccr.aws import libs3
bucket="my-bucket"
key_prefix="my_prefix"
key_suffix=".csv"
for obj in libs3.get_matching_s3_objects(bucket, prefix=key_prefix, suffix=key_suffix):
print(f"s3://{bucket}/{obj['Key']}")
Transitive Dependencies
Self Service
- Starting from
v0.4
onwards, by default, the libumccr does not mandate any transitive dependencies installation for you. - That is, if you
pip install libumccr
then it just installs the libumccr package itself only. - If you do this, you will have to manage transitive dependencies at your application as end-of-chain requirement as you see fit.
- This depends on which libumccr modules you need to depend on at your code.
- The bare metal libumccr should only have some hundred KB (~180KB) by size. However, in this case, you can only use those modules that leverage built-in Python standard library (that does not require extra 3rd party library). Which might be perfect for use case like libregex - well-known sample ID pattern parser contributed by team member (Alexis). You may contribute here similar and, reuse it at your end...
Feature Flag
- If you would like to have all transitive dependencies requirement along with the libumccr, then do so
pip install libumccr[all]
. - For any aws related module usage with boto3 and botocore, then
pip install libumccr[aws]
. - Similarly, for gspread, gdrive and Pandas dataframe stuff, then
pip install libumccr[libgdrive]
. - Do check out setup.py
extras_require
sections for all available feature flags.
This arrangement is sometime also known as deferring feature flag toggle at runtime requirement. Google for more...
AWS Lambda
- The AWS Lambda runtime for Python environment already contain the boto3 and botocore.
- Hence, if you are bundling your application for AWS Lambda Python runtime environment then you just need to
pip install libumccr
. - The AWS Lambda Python runtime is already satisfied the
libumccr[aws]
feature requirement, and you can still leverage the libumccr.aws modules with the lowest asset bundle footprint. - In this case, you just put
boto3
in your local development environment only; such asreqirements-dev.txt
or equivalent.
Development
- Create Python virtual environment
git clone https://github.com/umccr/libumccr.git
cd libumccr
conda activate libumccr
make install all
make check
make test
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
libumccr-0.4.1.tar.gz
(18.0 kB
view details)
Built Distribution
libumccr-0.4.1-py3-none-any.whl
(18.3 kB
view details)
File details
Details for the file libumccr-0.4.1.tar.gz
.
File metadata
- Download URL: libumccr-0.4.1.tar.gz
- Upload date:
- Size: 18.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c6963bbd164eaf799acdb8cda28ba5b5a49bf06a552978901b49802da4fc5ec |
|
MD5 | d2e7462f7072d9aed878aaaf3b519e0d |
|
BLAKE2b-256 | d96d4a134398b5e27a8116ce6f9ff96419e4c85d28d3500ecc7d9be8219a44e6 |
File details
Details for the file libumccr-0.4.1-py3-none-any.whl
.
File metadata
- Download URL: libumccr-0.4.1-py3-none-any.whl
- Upload date:
- Size: 18.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20e06ec4b99ff6d68f9e21b72da10c16e33933314e20f53abe2983d03f3a080e |
|
MD5 | fda03b95119e90069af5f71f711920a1 |
|
BLAKE2b-256 | 857a47ee2eddaacdd6007b60ec0e8447bc2ec9acdd4b2228e066d213311fabde |