Skip to main content

Collection of simple utils.

Project description

fastutils

Collection of simple utils.

Install

pip install fastutils

Installed Utils

  • aesutils # use cipherutils instead
  • cacheutils
    • get_cached_value
  • cipherutils
    • DecryptFailed
    • ResultEncoderBase # result encoder base
    • RawDataEncoder # result encoder, default result encoder to most ciphers
    • HexlifyEncoder # result encoder
    • Base64Encoder # result encoder
    • SafeBase64Encoder # result encoder
    • Utf8Encoder # result encoder
    • MappingCipherBase # self-designed cipher base, by mapping every byte from 0-255 to random-seeds.
    • S1Cipher # self-designed, based on MappingCipherBase. Can NOT sorting, searching partly.
    • S2Cipher # self-designed, based on MappingCipherBase. Can NOT sorting, searching partly.
    • AesCipher # standard cipher, default to aes-128-ecb with sha1prng_key. Can NOT sorting, searching partly.
    • S12Cipher # self-designed, turn 1 byte data to 2 byte data with random gap.
    • IvCipher # self-designed, trun integer number increase randomly. Can sorting, Can NOT seaching partly, Number stored in number.
    • IvfCipher # self-designed, based on IvCihper, for float number encrypt and decrypt. Can sorting, Can NOT seaching partly. Number stored in string.
  • dictutils
    • deep_merge
    • select
    • update
    • ignore_none_item # None, [], {} will be ignored. 0, False, "" and other empty element will keep.
    • to_object
    • change
    • changes
  • fsutils
    • mkdir
    • rm
    • filecopy
    • treecopy
    • copy
    • readfile
    • write
    • pathjoin
    • get_temp_workspace
    • rename
    • move
    • file_content_replace
  • funcutils
    • get_inject_params
    • call_with_inject
    • classproperty
  • hashutils
    • get_file_md5
    • get_file_sha
    • get_file_sha1
    • get_file_sha224
    • get_file_sha256
    • get_file_sha384
    • get_file_sha512
    • get_md5
    • get_sha
    • get_sha1
    • get_sha224
    • get_sha256
    • get_sha384
    • get_sha512
    • get_md5_base64
    • get_sha_base64
    • get_sha1_base64
    • get_sha224_base64
    • get_sha256_base64
    • get_sha384_base64
    • get_sha512_base64
    • get_pbkdf2_hmac
    • get_pbkdf2_md5
    • get_pbkdf2_sha
    • get_pbkdf2_sha1
    • get_pbkdf2_sha224
    • get_pbkdf2_sha256
    • get_pbkdf2_sha384
    • get_pbkdf2_sha512
    • validate_pbkdf2_hmac
    • validate_pbkdf2_md5
    • validate_pbkdf2_sha
    • validate_pbkdf2_sha1
    • validate_pbkdf2_sha224
    • validate_pbkdf2_sha256
    • validate_pbkdf2_sha384
    • validate_pbkdf2_sha512
  • imageutils
    • get_image_bytes
    • get_base64image
    • parse_base64image
    • resize
  • jsonutils
    • SimpleJsonEncoder
    • simple_json_dumps
    • register_global_encoder
  • listutils
    • int_list_to_bytes # deprecated, see strutils.ints2bytes
    • pad
    • chunk
    • clean_none
    • ignore_none_element # alias of clean_none
    • unique
    • replace
    • append_new
    • group
    • compare
  • randomutils
    • Random
      • random
      • randint
      • get_bytes
      • choice
      • choices
      • shuffle
  • rsautils
    • newkeys
    • load_private_key
    • load_public_key
    • load_public_key_from_private_key
    • encrypt
    • decrypt
    • export_key
  • sixutils
  • strutils
    • random_string
    • char_force_to_int
    • force_bytes
    • force_text
    • force_int
    • force_float
    • force_numeric
    • wholestrip
    • split
    • str_composed_by
    • is_str_composed_by_the_choices (alias of str_composed_by)
    • is_hex_digits
    • join_lines
    • is_urlsafeb64_decodable
    • is_base64_decodable
    • is_unhexlifiable
    • text_display_length
    • text_display_shorten
    • smart_get_binary_data
    • is_chinese_character
    • binarify
    • unbinarify
    • ints2bytes
    • int2bytes
    • substrings
    • combinations
    • clean
    • camel
  • threadutils
    • Service
    • ServiceBase
  • typingutils

Help

Mostly get help by help( ... ) in ipython

Example

In [9]: from fastutils import strutils

In [10]: help(strutils.random_string)
Help on function random_string in module fastutils.strutils:

random_string(length, choices='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')

Some function using *args, **kwargs paramters, see help below.

cipherutils.IvCipher

Instance Init Parameters

  • password: required.

cipherutils.IvfCipher

Instance Init Parameters

  • password: required.
  • result_encoder: default to cipherutils.RawDataEncoder(), choices are: cipherutils.HexlifyEncoder(), cipherutils.Base64Encoder(), cipherutils.SafeBase64Encoder().
  • kwargs: dict type.
    • int_digits: default to 12
    • float_digits: default to 4

Note

  • When float_digits=0, the plain number is treat as integer value.

cipherutils.AesCipher

Instance Init Parameters

  • password: required.
  • result_encoder: default to cipherutils.RawDataEncoder(), choices are: cipherutils.HexlifyEncoder(), cipherutils.Base64Encoder(), cipherutils.SafeBase64Encoder(), cipherutils.Utf8Encoder(),
  • kwargs: dict type.
    • padding: default to cipherutils.aes_padding_pkcs5.
    • key: default to cipherutils.sha1prng_key.
    • mode: default to AES.MODE_ECB (from Crypto.Cipher import AES).

Example

In [1]: from fastutils import cipherutils

In [2]: cipher = cipherutils.AesCipher(password="testpwd", result_encoder=cipherutils.HexlifyEncoder(), kwargs={"key": cipherutils.mysql_aes_key}, force_text=True)
   ...:

In [3]: text1 = "test content"

In [4]: text2 = cipher.encrypt(text1)

In [5]: print(text2)
299aa4e15a40d69e56674a94d9b66cc3

In [6]: text3 = cipher.decrypt(text2)

In [7]: print(text3)
test content

In [8]: text1 == text3
Out[8]: True

In [9]:

Bug report

Please report any issues at https://github.com/zencore-cn/zencore-issues.

Releases

v0.21.0 2020/08/07

  • Add listutils.compare(old_set, new_set).
  • Add dictutils.change(object_instance, data_dict, object_key, dict_key=None) -> bool.
  • Add dictutils.changes(object_instance, data_dict, keys) -> bool:
  • Change listutils.replace, turn the default value of parameter inplace from True to False.
  • Fix Object instance problems.

v0.20.0 2020/08/05

  • Add strutils.clean and change strutils.camel.
  • Add dictutils.to_object.
  • Add pinyinutils.

v0.19.0 2020/07/31

  • Add fsutils.filecopy and fsutils.treecopy. Tips: fsutils.copy combines the function of filecopy and treecopy, if the src is a file then use filecopy, and if the src is a folder then use treecopy.
  • Fix problem in fsutils.copy.

v0.18.0 2020/07/31

  • Add strutils.camel.

v0.17.0 2020/07/31

  • Add fsutils.file_content_replace.
  • Add fsutils.move.
  • Change fsutils.rename's behavior.
  • Change fsutils.copy's behavior.

v0.16.0 2020/07/31

  • Add fsutils.

v0.15.2 2020-07-25

  • Add hostname, seed1, seed4 in domain_template of randomutils.UuidGenerator.

v0.15.1 2020-07-24

  • Add incr-lock for counter incr in randomutils.UuidGenerator.

v0.15.0 2020-07-24

  • Add randomutils.UuidGenerator.

v0.14.0 2020-07-16

  • Add strutils.substrings.
  • Add strutils.combinations.
  • Add cipherutils.Utf8Encoder.
  • Add cipherutils.S1Cipher.
  • Add cipherutils.S2Cipher.
  • Add funcutils.classproperty
  • WARN: Change a cipherutils.CipherBase's parameter name from encoder to result_encoder.

v0.13.4 2020-07-11

  • Use new algorithm to improve randomutils.shuffle's performance.

v0.13.3 2020-07-11

  • Add randomutils.shuffle.
  • Change randomutils.randint parameters from (max, min=0) to (a, b=None).

v0.13.2 2020-07-10

  • Add listutils.group.
  • Add rsautils.export_key. And rsautils use Crypto.PublicKey.RSA for the base engine.

v0.13.1 2020-07-01

  • Add strutils.force_float and strutils.force_numeric.
  • Add typingutils.cast_numeric support.

v0.13.0 2020-06-26

  • IvfCihper accept integer value when float_digits=0.
  • Fix IvfCihper deviation problem which is caused by wrong module used in decrypt.
  • IvfCihper use new algorithm in computing module and max_value, so that result encrypted by version v0.12.0 can not decrypted by version v0.13.0.

v0.12.0 2020-06-25

  • Add IvfCihper for float number encrypt and decrypt. The output of IvfCipher.encrypt is string.

v0.11.1 2020-06-23

  • Use class instead of raw api for s12 and iv ciphers. It's can avoid many times in generating seeds.

v0.11.0 2020-06-20

  • Add cipherutils.
  • Add strutils.binarify and strutils.unbinarify.
  • Add randomutils.Random.
  • Change aesutils functions' return type. Note: use cipherutils instead.

v0.10.1 2020-05-19

  • Add bizerror dependency.

v0.10.0 2020-04-23

  • Add strutils.is_chinese_character to test if the character is a chinese character.
  • Add cacheutils.get_cached_value to get or set cached value.

v0.9.0 2020-03-05

  • Add listutils.append_new to append new value and only new value to the list.

v0.8.0 2020-01-15

  • Add strutils.smart_get_binary_data.
  • Add rsautils.

v0.7.0 2020-01-14

  • Add hashutils.get_file_hash.
  • Add extra install requires for python 2.x.
  • Add imageutils.parse_base64image and imageutils.get_image_bytes.
  • Fix jsonutils.make_simple_json_encoder ignore bases problem.

v0.6.0 2020-01-07

  • Add imageutils, add imageutils.get_base64image to make base64 image that can be rendered by web browser.
  • Add imageutils.resize to scale image size.
  • Add Image-Object-Encode support in jsonutils.
  • Add threadutils, add threadutils.Service to simplify long-run-service programming.
  • Raise bizerror.MissingParameter error in funcutils.get_inject_params while missing required parameter.

v0.5.4 2019-12-10

  • Fix hashutils.get_hash_hexdigest and hashutils.get_hash_base64 problem.

v0.5.3 2019-12-08

  • Using typingutils.smart_cast in funcutils.get_inject_params.

v0.5.2 2019-12-08

  • Add unit test cases for typingutils.
  • Fix cast_list, do strip for every element in comma-separated-list.
  • Fix base64 import missing in typingutils.

v0.5.1 2019-12-08

  • Add typingutils.cast_str.

v0.5.0 2019-12-08

  • Set library property in get_encoder in jsonutils.
  • Add typingutils.

v0.4.0 2019.12.07

  • Add jsonutils, provides simple json encoder register system.

v0.3.2 2019.10.29

  • Fix problems for python 2.7.
  • Fix name error of funcutils.

v0.3.1 2019.10.28

  • Fix problem casued by str.isascii() which is new from python 3.7.

v0.3.0 2019.09.24

  • Add listutils.unique to remove duplicated elements from the list.
  • Add listutils.replace to replace element value in thelist with new_value in collection of map.

v0.2.0 2019.09.10

  • Add functuils.get_inject_params to smartly choose parameters from candidates by determine with the function's signature.
  • Add functuils.call_with_inject to smartly call the function by smartly choose parameters.

v0.1.1 2019.08.27

  • Add strutils.wholestrip function, use to remove all white spaces in text.
  • Fix strutils.is_urlsafeb64_decodable, strutils.is_base64_decodable and strutils.is_unhexlifiable functions, that have problem to test text contains whitespaces.

v0.1.0 2019.08.23

  • Add simple utils about operations of aes, dict, hash, list and str.

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

fastutils-0.21.0.tar.gz (25.7 kB view details)

Uploaded Source

File details

Details for the file fastutils-0.21.0.tar.gz.

File metadata

  • Download URL: fastutils-0.21.0.tar.gz
  • Upload date:
  • Size: 25.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/39.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.8

File hashes

Hashes for fastutils-0.21.0.tar.gz
Algorithm Hash digest
SHA256 48f383eb5fc8fcb47c57a050dcc9f317535fa398eab930aad3f191722a296193
MD5 ccec8b5bd2bca1083237fd582f225ad5
BLAKE2b-256 6eeb84484dcd230d342b29aa24e1c370381efad08fed84aed59f74a5b2bb2c52

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