Skip to main content

CPP-Utils Python Package for string and file operations

Project description

CPP-Utils Python Package

cpputils

Information

This package was created by starting C ++ methods to incorporate into my python implementations.

To make things easier for me, lightweight public libraries were included (especially to carry out string operations):

  • hash-library
  • strtk

The following methods have currently been implemented:

  • ini_load (flexible and ligthweigh ini to dict parser, Faster Than Configparser)
  • eval_type (method to parse strings in python-types e.g. int | bool | timestamp
  • simple_hmac (vectorized c++ hmac implementation)
  • default_ca_path (python function to find a default ssl / ca certificate path)

In the future the following will be implemented:

  • more hash methods
  • c++ optimized grep methods
  • c++ optimized url-tools methods

Currently, the package was only tested for Linux

Usage

from cpputils import ini_load, default_ca_path, eval_type

ini_load(files={"s3_configs": ["examples/config/aws_config",
                               "examples/config/aws_credentials",
                               "examples/config/.s3cfg"]},
         sections=["default", "qa"],
         keys={"signurl_use_https": ["signurl_use_https"],
               "aws_access_key_id": ["access_key"],
               "aws_secret_access_key": ["secret_key"],
               "endpoint_url": ["endpoint-url", "host_base"],
               "region_name": ["bucket_location", "region", "aws_default_region"],
               "service_name": ["service_name"],
               "verify": ["ca_certs", "aws_ca_bundle", "ca_bundle"],},
         defaults={
             "region_name": "us-east-1",
             "signurl_use_https": True,
             "verify": default_ca_path(),
             "service_name": "s3",
         })

Installation

pip install cpputils

Development

Prerequisites

  • A compiler with C++17 support
  • Pip 10+ or CMake >= 3.4 (or 3.8+ on Windows, which was the first version to support VS 2015)
  • Ninja or Pip 3.8+

Installation

Just clone this repository and pip install. Note the --recursive option which is needed for the pybind11 submodule:

git clone --recursive https://gitlab.blubblub.tech/sgeist/cpputils.git
pip install .

Publish

twine upload -r pypi $(ls dist/cpputils-1.0.0-*.whl) --verbose

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

cpputils-1.4.2.tar.gz (437.6 kB view details)

Uploaded Source

Built Distributions

cpputils-1.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (202.8 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

cpputils-1.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (202.8 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

cpputils-1.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (202.6 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

File details

Details for the file cpputils-1.4.2.tar.gz.

File metadata

  • Download URL: cpputils-1.4.2.tar.gz
  • Upload date:
  • Size: 437.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.7

File hashes

Hashes for cpputils-1.4.2.tar.gz
Algorithm Hash digest
SHA256 62fc844c67bfeae06e15d135e25c808f1bdb4fbeb9597d1887f9c7a7f293cbc8
MD5 1672339acc289c72f114070ad305200d
BLAKE2b-256 cba48c80a744de7f459a13364793d531727cf33ede6eef54699e7857f4572fdc

See more details on using hashes here.

File details

Details for the file cpputils-1.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cpputils-1.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ec447d1b7b5d23f3fb62a0a28b1732b22262b5a88c1389390c620528f3c65924
MD5 a80d773cd600519e2e86f4d7c5c1b315
BLAKE2b-256 50fafd5b865cabc070dc473fa9dc7367ae7b834449111accd814183c007546fe

See more details on using hashes here.

File details

Details for the file cpputils-1.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cpputils-1.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9f874e8e101adcc1b5b498a08cbf39845b8a2ceb2b6e3005c4bdd7a4b0cc0ff3
MD5 e07892fad7aac9aa68540d1024776ab8
BLAKE2b-256 07a852caf26fefd33954c6410efb2303e57fa010a138ecc79f4672ab78a77f5e

See more details on using hashes here.

File details

Details for the file cpputils-1.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cpputils-1.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f54732893d6181d665c649e1b03fca027524be3bb89a1de785a5ddc46de9cd86
MD5 1b608551f53f77c381f938d2fa4065f6
BLAKE2b-256 ab5b57333afb1c7ef2fdf35f537d36836b23c2e27865ec6f5bcf306dcd350e0f

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