CCCS common python library
Project description
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
- Provides easy to use file storage for your project with multiple backends
- 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]
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cccs-0.0.6.tar.gz.
File metadata
- Download URL: cccs-0.0.6.tar.gz
- Upload date:
- Size: 104.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
343963c5958fd46e241e52b40ee689f50271cdc24cdd986d7c85dbf7cfd4d028
|
|
| MD5 |
c32499befc9d3581b166283040077790
|
|
| BLAKE2b-256 |
6c9ebf0c35b6c05a377ded87683fbad2d1086e9249740f0a527723ce230714e4
|
File details
Details for the file cccs-0.0.6-py3-none-any.whl.
File metadata
- Download URL: cccs-0.0.6-py3-none-any.whl
- Upload date:
- Size: 100.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a280a9103a55517fc8358a20e25893db8e78c79478eaa31c73a2598d63a8743c
|
|
| MD5 |
ed74493c5ec8f996bbd2c6cfbc90d105
|
|
| BLAKE2b-256 |
bf97c882f881ada75b5975ea22b52256034e627f2a9a4e78d0ad614b5e6ab93b
|