4.7.5.6. Utilities

Utilities and tools.

axonius_api_client.tools.type_str(value, max_len=60, join=', ')[source]

Pass.

Parameters:
Return type:

typing.Union[str, typing.List[str]]

axonius_api_client.tools.pathify(path, path_strict=True, path_encoding='utf-8', resolve=True, expanduser=True, as_file=False, as_dir=False, exts=None)[source]

Convert a str into a fully resolved & expanded Path object.

Parameters:
Return type:

pathlib.Path

axonius_api_client.tools.is_existing_file(path, **kwargs)[source]

Check if the supplied value refers to an existing file.

Parameters:

path (typing.Any) –

Return type:

bool

axonius_api_client.tools.listify(obj=None, split=False, split_max=-1, split_sep=re.compile(','), strip=True, strip_chars=None, encoding='utf-8', errors='replace', dictkeys=False, **kwargs)[source]

Force an object into a list.

Notes

  • list: returns as is

  • tuple: convert to list

  • None: returns as an empty list

  • any of axonius_api_client.constants.general.SIMPLE: return as a list of obj

  • dict: if dictkeys is True, return as list of keys of obj, otherwise return as a list of obj

Parameters:
Return type:

list

axonius_api_client.tools.grouper(iterable, n, fillvalue=None)[source]

Split an iterable into chunks.

Parameters:
Return type:

typing.Iterator

axonius_api_client.tools.coerce_int(obj, max_value=None, min_value=None, allow_none=False, as_none=None, valid_values=None, errmsg=None)[source]

Convert an object into int.

Parameters:
Raises:

ToolsError – if obj is not int

Return type:

typing.Optional[int]

axonius_api_client.tools.coerce_int_float(value, as_float=False, error=True, ret_value=False, as_none=None)[source]

Coerce a value into int or float.

Parameters:
  • value (t.Union[int, float, str, bytes]) – value to coerce

  • as_float (bool, optional) – if value is an integer, coerce to float

  • error (bool, optional) – raise error if value cannot be coerced

  • ret_value (bool, optional) – return value if it can be coerced

  • as_none (t.Any, optional) – value to return if value cannot be coerced

Returns:

float or int if value is int, float, int as str, or float as str; else None

Return type:

t.Optional[t.Union[int, float]]

axonius_api_client.tools.coerce_bool(obj, errmsg=None, error=True, allow_none=False, as_none=None, as_original=False)[source]

Convert an object into bool.

Parameters:
Raises:

ToolsError – obj is not bool

Return type:

bool

axonius_api_client.tools.is_str(value, not_empty=True)[source]

Check if value is non-empty string.

Parameters:
Return type:

bool

axonius_api_client.tools.is_email(value)[source]

Check if a value is a valid email.

Parameters:

value (typing.Any) –

Return type:

bool

axonius_api_client.tools.is_int(obj, digit=False)[source]

Check if obj is int typeable.

Parameters:
  • obj (typing.Any) – object to check

  • digit (bool) – allow checking str/bytes

Return type:

bool

axonius_api_client.tools.join_url(url, *parts)[source]

Join a URL to any number of parts.

Parameters:
  • url (str) – str to add parts to

  • *parts – str(s) to append to url

Return type:

str

axonius_api_client.tools.strip_right(obj, fix)[source]

Strip text from the right side of obj.

Parameters:
Return type:

typing.Union[typing.List[str], str]

axonius_api_client.tools.strip_left(obj, fix)[source]

Strip text from the left side of obj.

Parameters:
Return type:

typing.Union[typing.List[str], str]

class axonius_api_client.tools.AxJSONEncoder(*args, **kwargs)[source]

Bases: JSONEncoder

Pass.

__init__(*args, **kwargs)[source]

Pass.

default(obj)[source]

Pass.

encode(o)

Return a JSON string representation of a Python data structure.

>>> from json.encoder import JSONEncoder
>>> JSONEncoder().encode({"foo": ["bar", "baz"]})
'{"foo": ["bar", "baz"]}'
item_separator = ', '
iterencode(o, _one_shot=False)

Encode the given object and yield each string representation as available.

For example:

for chunk in JSONEncoder().iterencode(bigobject):
    mysocket.write(chunk)
key_separator = ': '
axonius_api_client.tools.has_to_dict(obj)[source]

Pass.

Parameters:

obj (typing.Any) –

Return type:

bool

axonius_api_client.tools.json_dump(obj, indent=2, sort_keys=False, error=True, fallback=<class 'str'>, to_dict=True, cls=<class 'axonius_api_client.tools.AxJSONEncoder'>, **kwargs)[source]

Serialize an object into json str.

Parameters:
Return type:

typing.Any

axonius_api_client.tools.lens(value)[source]

Pass.

Parameters:

value (typing.Any) –

Return type:

typing.Optional[int]

axonius_api_client.tools.tlens(value)[source]

Pass.

Parameters:

value (typing.Any) –

Return type:

typing.Optional[int]

axonius_api_client.tools.json_load(obj, error=True, load_file=True, close_fh=True, **kwargs)[source]

Deserialize a json str into an object.

Parameters:
Return type:

typing.Any

axonius_api_client.tools.is_file_like(value)[source]

Pass.

Parameters:

value (typing.Any) –

Return type:

bool

axonius_api_client.tools.csv_load(value, encoding='utf-8-sig', restkey='extra_columns', close_fh=True, **kwargs)[source]

Pass.

Parameters:
Return type:

csv.DictReader

axonius_api_client.tools.jsonl_loader(item, idx, error=True, **kwargs)[source]

Pass.

Parameters:
Return type:

typing.Any

axonius_api_client.tools.jsonl_load(obj, error=True, close_fh=True, **kwargs)[source]

Deserialize a jsonl str into an object.

Parameters:
Return type:

typing.List[typing.Any]

axonius_api_client.tools.json_log(obj, error=False, trim=100, trim_lines=True, trim_msg='\\nTrimmed {value_len} {trim_type} down to {trim}', **kwargs)[source]

Pass.

Parameters:
Return type:

str

axonius_api_client.tools.json_reload(obj, error=False, trim=None, trim_lines=False, trim_msg='\\nTrimmed {value_len} {trim_type} down to {trim}', **kwargs)[source]

Re-serialize a json str into a pretty json str.

Parameters:
Return type:

str

axonius_api_client.tools.text_load(value, close_fh=True)[source]

Pass.

Parameters:
Return type:

typing.Generator[str, None, None]

axonius_api_client.tools.dt_parse_uuid(value, default_tz_utc=False, allow_none=False, error=False)[source]

Parse the date from an object UUID.

Parameters:
  • value (str) –

  • default_tz_utc (bool) –

  • error (bool) –

Return type:

typing.Optional[datetime.datetime]

axonius_api_client.tools.dt_parse(obj, default_tz_utc=False, allow_none=False, as_none=None, as_tz=datetime.timezone.utc)[source]

Parse a str, datetime, or timedelta into a datetime object.

Parameters:
Return type:

typing.Union[datetime.datetime, typing.List[datetime.datetime], None]

axonius_api_client.tools.dt_parse_tmpl(obj, tmpl='%Y-%m-%d')[source]

Parse a string into the format used by the REST API.

Parameters:
Return type:

str

axonius_api_client.tools.dt_now(delta=None, tz=datetime.timezone.utc)[source]

Get the current datetime in for a specific tz.

Parameters:
Return type:

<module ‘datetime’ from ‘/home/docs/.asdf/installs/python/3.7.17/lib/python3.7/datetime.py’>

axonius_api_client.tools.dt_now_file(fmt='%Y-%m-%dT%H-%M-%S', **kwargs)[source]

Pass.

Parameters:

fmt (str) –

axonius_api_client.tools.dt_sec_ago(obj, exact=False, places=2)[source]

Get number of seconds ago a given datetime was.

Parameters:
Return type:

int

axonius_api_client.tools.dt_days_ago(obj, error=False, from_now=True)[source]

Get number of days ago a given datetime was.

Parameters:
Return type:

typing.Optional[int]

axonius_api_client.tools.dt_min_ago(obj)[source]

Get number of minutes ago a given datetime was.

Parameters:

obj (typing.Union[str, datetime.timedelta, datetime.datetime]) – parsed by dt_sec_ago() into seconds ago

Return type:

int

axonius_api_client.tools.dt_days_left(obj)[source]

Get number of days left until a given datetime.

Parameters:

obj (typing.Union[str, datetime.timedelta, datetime.datetime, None]) – parsed by dt_sec_ago() into days left

Return type:

typing.Optional[int]

axonius_api_client.tools.dt_within_min(obj, n=None)[source]

Check if given datetime is within the past n minutes.

Parameters:
Return type:

bool

axonius_api_client.tools.get_path(obj)[source]

Convert a str into a fully resolved & expanded Path object.

Parameters:

obj (typing.TypeVar(PathLike, pathlib.Path, str, bytes)) – obj to convert into expanded and resolved absolute Path obj

Return type:

pathlib.Path

axonius_api_client.tools.path_read(obj, binary=False, is_json=False, **kwargs)[source]

Read data from a file.

Notes

  • if path filename ends with “.json”, data will be deserialized using json_load()

Parameters:
Raises:

ToolsError – path does not exist as file

Return type:

typing.Union[bytes, str]

axonius_api_client.tools.get_backup_filename(path)[source]

Pass.

Parameters:

path (typing.TypeVar(PathLike, pathlib.Path, str, bytes)) –

Return type:

str

axonius_api_client.tools.get_backup_path(path)[source]

Pass.

Parameters:

path (typing.TypeVar(PathLike, pathlib.Path, str, bytes)) –

Return type:

pathlib.Path

axonius_api_client.tools.check_path_is_not_dir(path)[source]

Pass.

Parameters:

path (typing.TypeVar(PathLike, pathlib.Path, str, bytes)) –

Return type:

pathlib.Path

axonius_api_client.tools.path_create_parent_dir(path, make_parent=True, protect_parent=448)[source]

Pass.

Parameters:
Return type:

pathlib.Path

axonius_api_client.tools.path_backup_file(path, backup_path=None, make_parent=True, protect_parent=448, **kwargs)[source]

Pass.

Parameters:
Return type:

pathlib.Path

axonius_api_client.tools.auto_suffix(path, data, error=False, **kwargs)[source]

Pass.

Parameters:
Return type:

typing.Union[bytes, str]

axonius_api_client.tools.path_write(obj, data, overwrite=False, backup=False, backup_path=None, binary=False, binary_encoding='utf-8', is_json=False, make_parent=True, protect_file=384, protect_parent=448, suffix_auto=True, path_default=None, use_default=False, **kwargs)[source]

Write data to a file.

Notes

  • if obj filename ends with “.json”, serializes data using json_dump().

Parameters:
Raises:
  • ToolsError – path exists as file and overwrite is False

  • ToolsError – if parent path does not exist and make_parent is False

Return type:

typing.Tuple[pathlib.Path, typing.Tuple[int, typing.Optional[pathlib.Path]]]

axonius_api_client.tools.longest_str(obj)[source]

Determine the length of the longest string in a list of strings.

Parameters:

obj (typing.List[str]) – list of strings to calculate length of

Return type:

int

axonius_api_client.tools.split_str(obj, split=',', strip=None, do_strip=True, lower=True, empty=False)[source]

Split a string or list of strings into a list of strings.

Parameters:
  • obj (typing.Union[typing.List[str], str]) – string or list of strings to split

  • split (str) – character to split on

  • strip (typing.Optional[str]) – characters to strip

  • do_strip (bool) – strip each item from the split

  • lower (bool) – lowercase each item from the split

  • empty (bool) – remove empty items post split

Return type:

typing.List[str]

axonius_api_client.tools.echo_debug(msg=None, **kwargs)[source]

Echo a message to console.

Parameters:
axonius_api_client.tools.echo_ok(msg=None, **kwargs)[source]

Echo a message to console.

Parameters:
axonius_api_client.tools.echo_warn(msg=None, **kwargs)[source]

Echo a warning message to console.

Parameters:
axonius_api_client.tools.echo_error(msg=None, abort=True, **kwargs)[source]

Echo an error message to console.

Parameters:
axonius_api_client.tools.echo(msg=None, abort=False, tmpl=True, log=None, log_level='debug', log_method=None, log_args=None, log_fallback=<bound method Logger.debug of <Logger axonius_api_client.tools (DEBUG)>>, style_tmpl=None, style_args=None, joiner='\\n', do_log=True, do_echo=True, abort_code=0, **kwargs)[source]

Pass.

Parameters:
axonius_api_client.tools.sysinfo()[source]

Gather system information.

Return type:

dict

axonius_api_client.tools.calc_percent(part, whole, places=2)[source]

Calculate the percentage of part out of whole.

Parameters:
Return type:

float

axonius_api_client.tools.trim_float(value, places=2)[source]

Trim a float to N places.

Parameters:
  • value (float) – float to trim

  • places (int) – decimal places to trim value to

Return type:

float

axonius_api_client.tools.join_kv(obj, listjoin=', ', tmpl='{k}: {v!r}')[source]

Join a dictionary into key value strings.

Parameters:
  • obj (typing.Union[typing.List[dict], dict]) – dict or list of dicts to stringify

  • listjoin (str) – string to use for joining

  • tmpl (str) – template to format key value pairs of dict

Return type:

typing.List[str]

axonius_api_client.tools.get_type_str(obj)[source]

Get the type name of a class.

Parameters:

obj (typing.Any) – class or tuple of classes to get type name(s) of

axonius_api_client.tools.check_type(value, exp, name='', exp_items=None)[source]

Check that a value is the appropriate type.

Parameters:
  • value (typing.Any) – value to check type of

  • exp (typing.Any) – type(s) that value should be

  • name (str) – identifier of what value is for

  • exp_items (typing.Optional[typing.Any]) – if value is a list, type(s) that list items should be

axonius_api_client.tools.check_empty(value, name='')[source]

Check if a value is empty.

Parameters:
  • value (typing.Any) – value to check type of

  • name (str) – identifier of what value is for

axonius_api_client.tools.get_raw_version(value)[source]

Caclulate the raw bits of a version str.

Parameters:

value (str) – version to calculate

Return type:

str

axonius_api_client.tools.coerce_str_to_csv(value, coerce_list=False, errmsg=None)[source]

Coerce a string into a list of strings.

Parameters:
Return type:

typing.List[str]

axonius_api_client.tools.parse_ip_address(value)[source]

Parse a string into an IP address.

Parameters:

value (str) – ip address

Return type:

typing.Union[ipaddress.IPv4Address, ipaddress.IPv6Address]

axonius_api_client.tools.parse_ip_network(value)[source]

Parse a string into an IP network.

Parameters:

value (str) – ip network

Return type:

typing.Union[ipaddress.IPv4Network, ipaddress.IPv6Network]

axonius_api_client.tools.kv_dump(obj)[source]

Get a string representation of a dictionaries key value pairs.

Parameters:

obj (dict) – dictionary to get string of

Return type:

str

axonius_api_client.tools.bom_strip(content, strip=True, bom=b'\\xef\\xbb\\xbf')[source]

Remove the UTF-8 BOM marker from the beginning of a string.

Parameters:
  • content (typing.Union[str, bytes]) – string to remove BOM marker from if found

  • strip – remove whitespace before & after removing BOM marker

  • bom (bytes) –

Return type:

str

axonius_api_client.tools.read_stream(stream)[source]

Try to read input from a stream.

Parameters:

stream – stdin or a file descriptor to read input from

Return type:

str

axonius_api_client.tools.check_gui_page_size(size=None)[source]

Check page size to see if it one of the valid GUI page sizes.

Parameters:

size (typing.Optional[int]) – page size to check

Raises:

ApiError – if size is not one of axonius_api_client.constants.api.GUI_PAGE_SIZES

Return type:

int

axonius_api_client.tools.calc_gb(value, places=2, is_kb=True)[source]

Convert bytes into GB.

Parameters:
  • value (typing.Union[str, int]) – bytes

  • places (int) – decimal places to trim value to

  • is_kb (bool) – values are in kb or bytes

Return type:

float

axonius_api_client.tools.calc_perc_gb(obj, whole_key, part_key, perc_key=None, places=2, update=True, is_kb=True)[source]

Calculate the GB and percent from a dict.

Parameters:
  • obj (dict) – dict to get whole_key and part_key from

  • whole_key (str) – key to get whole value from and convert to GB and set as whole_key_gb

  • part_key (str) – key to get part value from and convert to GB and set as part_key_gb

  • perc_key (typing.Optional[str]) – key to set percent in

  • is_kb (bool) – values are in kb or bytes

  • places (int) –

  • update (bool) –

Return type:

dict

axonius_api_client.tools.get_subcls(cls, excludes=None)[source]

Get all subclasses of a class.

Parameters:
Return type:

list

axonius_api_client.tools.prettify_obj(obj, indent=0)[source]

Pass.

Parameters:
Return type:

typing.List[str]

axonius_api_client.tools.token_parse(obj)[source]

Pass.

Parameters:

obj (str) –

Return type:

str

axonius_api_client.tools.combo_dicts(*args, **kwargs)[source]

Pass.

Return type:

dict

axonius_api_client.tools.is_url(value)[source]

Pass.

Parameters:

value (str) –

Return type:

bool

axonius_api_client.tools.bytes_to_str(value, encoding='utf-8', ignore=False, strict=False)[source]

Convert value to str if value is bytes.

Parameters:
  • value (t.Any) – value to convert to str

  • encoding (str, optional) – encoding to use

  • ignore (bool, optional) – ignore errors instead of replacing them

  • strict (bool, optional) – raise an exception if there are decoding errors

Returns:

str if value is bytes, else original value

Return type:

t.Any

axonius_api_client.tools.strip_str(value)[source]

Strip a value if it is a string.

Parameters:

value (typing.Any) –

Return type:

typing.Union[str, typing.Any]

axonius_api_client.tools.coerce_str(value, strip=True, none='', trim=None, trim_lines=False, trim_msg='\\nTrimmed {value_len} {trim_type} down to {trim}')[source]

Coerce a value to a string.

Parameters:
Return type:

typing.Union[str, typing.Any]

axonius_api_client.tools.str_trim(value, trim=None, trim_lines=False, trim_msg='\\nTrimmed {value_len} {trim_type} down to {trim}')[source]

Pass.

Parameters:
Return type:

str

axonius_api_client.tools.get_cls_path(value)[source]

Pass.

Parameters:

value (typing.Any) –

Return type:

str

axonius_api_client.tools.csv_writer(rows, columns=None, quotes='nonnumeric', dialect='excel', line_ending='\\n', stream=None, key_extra_error=False, write_headers=True, key_missing_value=None)[source]

Pass.

Parameters:
Return type:

str

axonius_api_client.tools.parse_int_min_max(value, default=0, min_value=None, max_value=None)[source]

Pass.

axonius_api_client.tools.safe_replace(obj, value)[source]

Pass.

Parameters:
Return type:

str

axonius_api_client.tools.safe_format(value, mapping=None, as_path=False, **kwargs)[source]

Pass.

Parameters:
Return type:

typing.TypeVar(PathLike, pathlib.Path, str, bytes)

axonius_api_client.tools.get_paths_format(*args, mapping=None)[source]

Pass.

Parameters:

mapping (typing.Optional[typing.Dict[str, str]]) –

Return type:

typing.Optional[pathlib.Path]

axonius_api_client.tools.int_days_map(value, names=False)[source]

Pass.

Parameters:
Return type:

typing.List[str]

axonius_api_client.tools.lowish(value)[source]

Pass.

Parameters:

value (typing.Any) –

Return type:

typing.Any

axonius_api_client.tools.log_or_exc(msg, error=True, log=<Logger axonius_api_client.tools (DEBUG)>, log_level='exception', log_join='\\n', exc_cls=<class 'axonius_api_client.exceptions.ToolsError'>, exc_args=None, **kwargs)[source]

Pass.

Parameters:
axonius_api_client.tools.coerce_io(value)[source]

Pass.

Parameters:

value (typing.Union[str, bytes, typing.IO]) –

Return type:

typing.IO

axonius_api_client.tools.is_json_dict(value)[source]

Pass.

Return type:

bool

axonius_api_client.tools.extract_kvs_auto(value, **kwargs)[source]

Pass.

Parameters:

value (typing.Union[str, bytes, typing.IO]) –

Return type:

dict

axonius_api_client.tools.trype(value)[source]

Pass.

axonius_api_client.tools.extract_kvs_json(value, **kwargs)[source]

Pass.

Parameters:

value (typing.Union[str, bytes, typing.IO]) –

Return type:

dict

axonius_api_client.tools.is_callable(value, attr=None, default=None)[source]

Pass.

Parameters:
Return type:

bool

axonius_api_client.tools.extract_kvs_csv(value=None, has_headers=False, split_kv='=', delimiter=',', **kwargs)[source]

Pass.

Parameters:
Return type:

dict

axonius_api_client.tools.tilde_re(value)[source]

Pass.

Parameters:

value (typing.Any) –

Return type:

typing.Union[typing.TypeVar(PatternLike, typing.Pattern, str, bytes), typing.Iterable[typing.TypeVar(PatternLike, typing.Pattern, str, bytes)]]

axonius_api_client.tools.coerce_str_re(value, prefix='~')[source]

Convert a str into a pattern if value is str and starts with prefix.

Parameters:
  • value (t.Any) – value to convert to pattern

  • prefix (str, optional) – prefix to use to indicate value should be converted to a pattern

Returns:

t.Pattern if value is str or bytes and starts with prefix, else original value

Return type:

t.Any

axonius_api_client.tools.human_size(value, decimals=2, error=True)[source]

Convert bytes to human-readable.

Parameters:
  • value (t.Union[int, str, bytes, float]) – value to coerce into int/float

  • decimals (int, optional) – number of decimal places to include in str output

  • error (bool) –

Returns:

human-readable size of value if value is int, float, int as str, or float as str

else empty str

Return type:

str

axonius_api_client.tools.is_pattern(value)[source]

Check if value is a pattern.

Parameters:

value (t.Any) – value to check

Returns:

True if value is a re.Pattern; else False

Return type:

bool

axonius_api_client.tools.is_tty(value)[source]

Pass.

Parameters:

value (typing.Any) –

Return type:

bool

axonius_api_client.tools.check_tty(value, errmsg='unable to prompt')[source]

Pass.

Parameters:
axonius_api_client.tools.check_tty_stdin()[source]

Pass.

axonius_api_client.tools.get_secho_args(kwargs=None, key=None, **sargs)[source]

Pass.

Parameters:
axonius_api_client.tools.confirm(msgs=None, text=None, abort=False, default=False, text_confirm='Please confirm', join='\\n', check_stdin=True, **kwargs)[source]

Pass.

Parameters:
axonius_api_client.tools.coerce_prompt_confirm(value=None, prompt=False, **kwargs)[source]

Pass.

Parameters:
Return type:

bool

axonius_api_client.tools.check_confirm_prompt(reason, src, msgs=None, value=None, prompt=False, **kwargs)[source]

Pass.

Parameters:
axonius_api_client.tools.csv_able(value, sep=',')[source]

Pass.

Parameters:
Return type:

typing.List[str]

axonius_api_client.tools.is_list(value)[source]

Pass.

Parameters:

value (typing.Any) –

Return type:

bool

axonius_api_client.tools.style_switch(text, switch=False, args_true={'bold': True, 'fg': 'green'}, args_false={'bold': True, 'fg': 'red'})[source]

Pass.

Parameters:
  • text (str) –

  • switch (bool) –

  • args_true (dict) –

  • args_false (str) –

axonius_api_client.tools.add_source(source, kwargs)[source]

Pass.

Parameters:
  • source (str) –

  • kwargs (dict) –

Return type:

str

axonius_api_client.tools.parse_value_copy(default, value=None, copy_prefix='Copy of', existing=None)[source]

Pass.

Parameters:
Return type:

str

axonius_api_client.tools.parse_refresh(value=60, elapsed=True, refresh_elapsed=None)[source]

Check if an object should be refreshed.

Notes

If the value is bytes, it will be converted to string. If the value is string, it will try to safely coerce to float, int, or bool. If the value is True or False it will be returned as is. If the value is a float or int and refresh_elapsed is a float or int and elapsed is True it will return True if the value is greater than refresh_elapsed.

Parameters:
  • value (typing.Any) – The value to check.

  • elapsed (bool) – If True, check if the value is an int or float and if it is greater than refresh_elapsed if refresh_elapsed is an int or float.

  • refresh_elapsed (typing.Union[int, float, None]) – The elapsed time to check against if elapsed is True.

Return type:

bool

axonius_api_client.tools.get_diff_seconds(start=None, stop=None, places=5)[source]

Pass.

Parameters:
Return type:

typing.Optional[float]

axonius_api_client.tools.score_prefix(value, prefix=None, join='_')[source]

Prefix a value.

Parameters:
Return type:

str

axonius_api_client.tools.get_mm_field(value)[source]

Get the marshmallow field from a dataclasses field.

Parameters:

value (typing.Any) – The field to check.

Returns:

The marshmallow field.

Return type:

marshmallow.fields.Field

axonius_api_client.tools.get_mm_description(value)[source]

Get the marshmallow description from a dataclasses field.

Parameters:

value (dataclasses.Field) – The field to check.

Returns:

The marshmallow description.

Return type:

str

axonius_api_client.tools.is_nested_schema(value)[source]

Check if a marshmallow field is a nested schema.

Parameters:

value (marshmallow.fields.Field) – The field to check.

Returns:

True if the field is a nested schema.

Return type:

bool

axonius_api_client.tools.get_nested_schema(value)[source]

Get the nested schema from a marshmallow field.

Parameters:

value (marshmallow.fields.Field) – The field to check.

Returns:

The nested schema.

Return type:

marshmallow.Schema

axonius_api_client.tools.get_hint_type(value)[source]

Get the type from a type hint.

Parameters:

value (typing.Any) – If type hint, return the type.

Returns:

The type if value is a type hint, else None.

Return type:

Any

axonius_api_client.tools.is_subclass(value, expected_types=None, as_none=False)[source]

Determine if value is a subclass of the type for this field.

Parameters:
Return type:

bool

axonius_api_client.tools.get_query_id(value=None)[source]

Get or build a query id.

Parameters:

value (typing.Union[str, bytes, uuid.UUID, None]) –

Return type:

str

axonius_api_client.tools.jdump(obj, **kwargs)[source]

JSON dump utility.

axonius_api_client.tools.is_subclass_safe(value, expected_type)[source]

Check if value is a subclass of a type.

Parameters:
Return type:

bool

axonius_api_client.tools.trim_value_repr(value, max_length=30, trim_post='... trimmed {trim_count} characters')[source]

Trim the value to a maximum length and appends info about the number of trimmed characters.

Parameters:
Returns:

The trimmed value representation with info about the number of trimmed characters.

Return type:

str

axonius_api_client.tools.coerce_seconds(value=None)[source]

Coerce a value to seconds.

Parameters:

value (typing.Optional[typing.TypeVar(TypeFloat, float, int, str, bytes)]) –

Return type:

typing.Optional[float]

axonius_api_client.tools.coerce_delta(value=None)[source]

Coerce a value to a timedelta.

Parameters:

value (typing.Optional[typing.TypeVar(TypeDelta, str, bytes, float, int, datetime.timedelta)]) – value to coerce - if None or already a timedelta, return as is, otherwise pass to coerce_seconds() and return as a timedelta if it returns a float, otherwise return None

Return type:

typing.Optional[datetime.timedelta]

axonius_api_client.tools.coerce_date_delta(value=None, add=None, subtract=None)[source]

Coerce a value to a date.

Notes

Value will be parsed by dt_parse() into a datetime.datetime or None. If add or subtract are provided, value will be added to or subtracted from the parsed value or now if value not provided.

Parameters:
Returns:

coerced value

Return type:

datetime.datetime