You're Invited: Meet the Socket team at BSidesSF and RSAC - April 27 - May 1.RSVP
Socket
Sign inDemoInstall
Socket

ddeutil

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ddeutil

Core data utility functions and objects

0.4.6
PyPI
Maintainers
1

Core Data Utility

test codecov pypi version python support version size code style: black type check: mypy pre-commit

A core data utility package, this package implements the data utility functions and objects.

I was created this package base on sub-package namespace, ddeutil (This feature use for independent installation). This package able to extend with any sub-extension with this namespace. So, this namespace able to scale-out the requirement with folder level design. You can add any custom features and import it by import ddeutil.{extension}.

[!NOTE] This package provide the base utility functions and objects for any sub-namespace package.

:round_pushpin: Installation

pip install -U ddeutil

Python version supported:

Python VersionInstallationSupport Fixed Bug
>=3.9,<3.14pip install -U ddeutil:heavy_check_mark:

[!NOTE] If you want to install all optional dependencies for this package, you can use pip install -U ddeutil[all]. For optional dependencies that use on this package, it will list on below table;

Optional depsInstallationModules
ujsonpip install -U ddeutil[checksum]hash.checksum
python-dateutilpip install -U ddeutil[dateutil]dtutils.next_date_with_freq, dtutils.calc_data_freq
psutilpip install -U ddeutil[memory]threader.MonitorThread.

:dart: Features

This data package implements all of utility functions and objects that does not re-create again when the sub-namespace package want it because it is a basic utility but has a lot of using require.

ModuleNameDescriptionRemark
baseisinstance_checkReturn True if a data is instance of the respect instance.
import_stringImport a dotted module path and return the attribute/class designated by the last name in the path.no coverage
lazyLazy use import_string function that wrapped with partial function.
round_upRound up the number with decimals precision size.
remove_padRemove zero padding of zero prefix string.
firstReturns the first item in the iterable that satisfies the condition.
onlyoneGet only one element from check list that exists in match list.
hasdotReturn True value if dot searching exists in content data.
getdotReturn the value if dot searching exists in content data.
setdotSet the value if dot searching exists in content data.
filter_dictFilter dict value with excluded and included collections.
random_strRandom string from uppercase ASCII and number 0-9.no coverage
coalesceCoalesce function that is a just naming define function.no coverage
base.checkercan_intCheck an input value that can be integer type or not (but some value does not use int() to convert it such as 0.0 or 3.0)
is_intCheck an input value that be integer type or not.
base.convertmust_boolReturn the boolean value that was converted from string, integer, or boolean value.
must_listReturn the list value that was converted from string or list value.
str2anyConvert an input string value to the real type of that object. Note that this convert function do not force or try-hard to convert type such as a boolean value should be 'True' or 'False' only.
str2argsConvert an input string to args and kwargs values.
str2boolConvert an input string value to boolean (True or False).
str2dictConvert an input string value to dict.
str2int_floatConvert an input string value to int or float.
str2listConvert an input string value to list.
base.hashchecksum
freezeno coverage
freeze_argsno coverage
hash_value
hash_str
base.mergemerge_dict
merge_dict_value
merge_dict_value_listMerge value that be list type of dicts together if it has a same key.
merge_listMerge lists together.
sum_valuesSum all values in an input dict value with start and end index.
zip_equal
base.sortingordered
sort_priority
base.splitterisplit
must_rsplit
must_split
decoratordeepcopyDeep-copy any args and kwargs for func and method.
retryRetry decorator with sequential.
profileProfile the current memory and cpu usage while wrapped function running.
dtutilsreplace_dateReplace datetime matrix that less than an input mode to origin value.
next_dateReturn the next date with specific unit mode.
closest_quarterReturn closest quarter datetime of an input datetime.
last_domGet the latest day of month that relate with an input datetime value.
last_doqGet the latest day of quarter that relate with an input datetime value.
next_date_freqPrepare datetime to next datetime with frequency value.
calc_date_freqPrepare datetime to calculate datetime with frequency value.
threaderThreadWithControlThreading object that can control maximum background agent and result after complete.
MonitorThreadMonitoring threading object that log the current memory and cpu usage.

:beers: Usages

I will show some examples of function in this package. If you want to use complex or adjust some parameter, please see doc-string or real source code (I think it does not complex, and you can see how that function work).

OnlyOne

from ddeutil.core import onlyone

assert 'a' == onlyone(['a', 'b'], ['a', 'b', 'c'])
assert 'c' == onlyone(('a', 'b'), ['c', 'e', 'f'])
assert onlyone(['a', 'b'], ['c', 'e', 'f'], default=False) is None

Instance Check

from ddeutil.core import isinstance_check
from typing import Union, Optional, NoReturn, Any

assert isinstance_check("s", str)
assert isinstance_check(["s"], list[str])
assert isinstance_check(("s", "t"), tuple[str, ...])
assert not isinstance_check(("s", "t"), tuple[str])
assert isinstance_check({"s": 1, "d": "r"}, dict[str, Union[int, str]])
assert isinstance_check("s", Optional[str])
assert isinstance_check(1, Optional[Union[str, int]])
assert not isinstance_check("s", list[str])
assert isinstance_check([1, "2"], list[Union[str, int]])
assert not isinstance_check("s", NoReturn)
assert isinstance_check(None, NoReturn)
assert isinstance_check("A", Any)
assert isinstance_check([1, [1, 2, 3]], list[Union[list[int], int]])
assert not isinstance_check([1], Union[str, int])
assert isinstance_check((1, "foo", True), tuple[int, str, bool])

String to Any

from ddeutil.core import str2any

assert str2any('22') == 22
assert str2any("1245") == 1245
assert str2any('"string"') == "string"
assert str2any("[1, 2, 3]") == [1, 2, 3]
assert str2any('{"key": "value"}') == {"key": "value"}
assert str2any("1245.123") == 1245.123
assert str2any("True")
assert str2any("[1, 2") == "[1, 2"
assert str2any("1.232.1") == "1.232.1"

:speech_balloon: Contribute

I do not think this project will go around the world because it has specific propose, and you can create by your coding without this project dependency for long term solution. So, on this time, you can open the GitHub issue on this project:raised_hands: for fix bug or request new feature if you want it.

Keywords

data

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts