Skip to main content

UMCCR Reusable Python modules

Project description

libumccr

Pull Request Build Status PyPI - Downloads PyPI PyPI - License

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 as reqirements-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


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)

Uploaded Source

Built Distribution

libumccr-0.4.1-py3-none-any.whl (18.3 kB view details)

Uploaded Python 3

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

Hashes for libumccr-0.4.1.tar.gz
Algorithm Hash digest
SHA256 0c6963bbd164eaf799acdb8cda28ba5b5a49bf06a552978901b49802da4fc5ec
MD5 d2e7462f7072d9aed878aaaf3b519e0d
BLAKE2b-256 d96d4a134398b5e27a8116ce6f9ff96419e4c85d28d3500ecc7d9be8219a44e6

See more details on using hashes here.

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

Hashes for libumccr-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 20e06ec4b99ff6d68f9e21b72da10c16e33933314e20f53abe2983d03f3a080e
MD5 fda03b95119e90069af5f71f711920a1
BLAKE2b-256 857a47ee2eddaacdd6007b60ec0e8447bc2ec9acdd4b2228e066d213311fabde

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page