Skip to main content

Common python library for CCCS

This is a common library that will be use by our different project so we can re-use as much code as possible. It includes the following:

  • Utility functions
    • Classification engine
    • String manipulation
    • Date manipulation
    • Dictionary flattening/un-flatening/merging
    • Logging setup
    • Networking validation (IP/Domain)
    • Security related operations (Generating password/username/API keys...)
    • Generate random ID
  • Elastic datastore support
    • Maintain connection with Elasticsearch
    • Easy to use lucene base search/add/remove documents functions
    • Maintain indexes fields using predefined data model
    • Perform bulk operations
    • Perform index repair/re-shard/replication/reindex operations
  • Filestore support
    • Provides easy to use file storage for your project with multiple backends
      • HTTP (read only)
      • FTP/SFTP
      • Amazon S3
      • Azure Blob storage
      • Local storage
    • Has the concept of multiple levels of storage
  • Object data model (ODM) support
    • Validate the data of your project
    • Keep the datastore index fields in sync with the model
  • Remote datatypes
    • Provide datastructures accessible to multiple processes running of different machines for distributed high availability environments
    • Supported data structures are the following:
      • Counters
      • Event dispatcher/handlers
      • Hash
      • Global Locks
      • Sets
      • Quota trackers
      • Queues (Pubsub/Fifo/Priority)

Installation

This library is public and distributed via Pypi:

pip install cccs

Development

If you which to participate to the development of this library, you can setup your environment the folowing way.

Install python 3.9+

We only support newer version of python and will not support older versions. This library was meant to end up running in a container anyway.

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.9

Install VSCode

This is our prefered IDE and the repo is already preconfigured for it.

sudo snap install code

Clone the cccs_common_python repo into your git folder

cd ~/git/
git clone git@github.com:CybercentreCanada/cccs_common_python.git

Create a virtual env in the cccs_common_python folder

cd ~/git/cccs_common_python/
python3.9 -m venv venv

Install required packages and library in your virtual environement

cd ~/git/cccs_common_python/
source ./venv/bin/activate
pip install -e .

Currently used by

  • Assemblyline [https://github.com/CybercentreCanada/assemblyline]

Metadata

Release files for cccs 0.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cccs 0.0.6
File Size Uploaded
cccs-0.0.6.tar.gz 104.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cccs 0.0.6
File Interpreter ABI Platform
cccs-0.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 204.5 kB

Release files / cccs-0.0.6.tar.gz

Download URL cccs-0.0.6.tar.gz
Size 104.4 kB
Tags Source
SHA-256 checksum
How to use checksums
343963c5958fd46e241e52b40ee689f50271cdc24cdd986d7c85dbf7cfd4d028
BLAKE2b-256 checksum
How to use checksums
6c9ebf0c35b6c05a377ded87683fbad2d1086e9249740f0a527723ce230714e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release files / cccs-0.0.6-py3-none-any.whl

Download URL cccs-0.0.6-py3-none-any.whl
Size 100.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a280a9103a55517fc8358a20e25893db8e78c79478eaa31c73a2598d63a8743c
BLAKE2b-256 checksum
How to use checksums
bf97c882f881ada75b5975ea22b52256034e627f2a9a4e78d0ad614b5e6ab93b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release history Release notifications | RSS feed

This release

0.0.6 This release

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page