4.4.6.6. Excel¶
Excel export callbacks class.
-
class
axonius_api_client.api.asset_callbacks.base_xlsx.
Xlsx
(apiobj, store, state=None, getargs=None)[source]¶ Bases:
axonius_api_client.api.asset_callbacks.base.ExportMixins
Callbacks for formatting asset data and exporting it in Excel format.
Examples
Create a
client
usingaxonius_api_client.connect.Connect
and assumeapiobj
is eitherclient.devices
orclient.users
>>> apiobj = client.devices # or client.users
args_map()
for callback generic arguments to format assets.args_map_custom()
for callback specific arguments to format and export data.
- Parameters
store (
dict
) –state (
typing.Optional
[dict
]) –getargs (
typing.Optional
[dict
]) –
-
classmethod
args_map_custom
()[source]¶ Get the custom argument names and their defaults for this callbacks object.
Examples
Export the output to STDOUT. If
export_file
is not supplied, the default is to print the output to STDOUT.>>> assets = apiobj.get(export="xlsx")
Export the output to a file in the default path
axonius_api_client.setup_env.DEFAULT_PATH
.>>> assets = apiobj.get(export="xlsx", export_file="test.xlsx")
Export the output to an absolute path file (ignoring
export_path
) and overwrite the file if it exists.>>> assets = apiobj.get( ... export="xlsx", ... export_file="/tmp/output.xlsx", ... export_overwrite=True, ... )
Export the output to a file in a specific dir.
>>> assets = apiobj.get(export="xlsx", export_file="output.xlsx", export_path="/tmp")
Change the length of columns in the output.
>>> assets = apiobj.get( ... export="xlsx", ... export_file="test.xlsx", ... xlsx_column_length=100, ... )
Provide custom formatting for each cell. See https://xlsxwriter.readthedocs.io/format.html#format-methods-and-format-properties for format properties that can be supplied.
>>> fmt = {"text_wrap": True, "bold": True, "font_color": "red"} >>> assets = apiobj.get( ... export="xlsx", ... export_file="test.xlsx", ... xlsx_cell_format=fmt, ... )
See also
args_map()
for callback generic arguments to format assets.
Notes
If
export_file
does not end with.xlsx
, it will be appended to the filename.This callbacks object forces the following arguments to True in order to make the output usable in the exported format:
field_null
,field_flatten
, andfield_join
These arguments can be supplied as extra kwargs passed to
axonius_api_client.api.assets.users.Users.get()
oraxonius_api_client.api.assets.devices.Devices.get()
- Return type
-
process_row
(row)[source]¶ Write row to dictwriter and delete it.
- Parameters
row (
dict
) –- Return type
-
APIOBJ
= None¶ assets object.
-
CUSTOM_CB_EXC
: List[dict] = None¶ tracker of custom callbacks that have been executed by
do_custom_cbs()
-
FIND_KEYS
: List[str] = ['name', 'name_qual', 'column_title', 'name_base']¶ field schema keys to use when finding a fields schema
-
TAG_ROWS_ADD
: List[dict] = None¶ tracker of assets to add tags to in
do_tagging()
.
-
TAG_ROWS_REMOVE
: List[dict] = None¶ tracker of assets to remove tags from in
do_tagging()
.
-
__init__
(apiobj, store, state=None, getargs=None)¶ Callbacks base class for assets.
- Parameters
apiobj (
axonius_api_client.api.assets.asset_mixin.AssetMixin
) – Asset object that created this callbackstore (
dict
) – store tracker of assets get method that created this callbackstate (
typing.Optional
[dict
]) – state tracker of assets get method that created this callbackgetargs (
typing.Optional
[dict
]) – kwargs passed to assets get method that created this callback
-
_add_report_adapters_missing
(row)¶ Process report: Missing adapters.
- Parameters
row (
dict
) – row being processed
-
_add_report_software_whitelist
(row)¶ Process report: Software whitelist.
- Parameters
row (
dict
) – row being processed
-
_do_add_null_values
(row, schema, key='name_qual')¶ Null out missing fields.
-
_do_change_field_titles
(row)¶ Asset callback to change qual name to title.
- Parameters
row (
dict
) – row being processed
-
_do_excludes
(row)¶ Asset callback to remove fields from row.
- Parameters
row (
dict
) – row being processed
-
_do_explode_field
(row)¶ Explode a field into multiple rows.
- Parameters
row (
dict
) – row being processed- Return type
-
_do_flatten_fields
(row, schema)¶ Asset callback to flatten complex fields.
-
add_report_adapters_missing
(rows)¶ Process report: Missing adapters.
- Parameters
rows (
typing.Union
[typing.List
[dict
],dict
]) – rows to process- Return type
-
add_report_software_whitelist
(rows)¶ Process report: Software whitelist.
- Parameters
rows (
typing.Union
[typing.List
[dict
],dict
]) – rows to process- Return type
-
classmethod
args_map
()¶ Get all of the argument names and their defaults for this callbacks object.
Examples
Create a
client
usingaxonius_api_client.connect.Connect
and assumeapiobj
is eitherclient.devices
orclient.users
>>> apiobj = client.devices # or client.users
Flatten complex fields - Will take all sub fields of complex fields and put them on the root level with their values index correlated to each other.
>>> assets = apiobj.get(fields=["network_interfaces"], field_flatten=True)
Explode a single field - will take that field and create new rows for list item.
>>> assets = apiobj.get(field_explode="hostname")
Exclude fields - Will remove fields from the final output.
>>> assets = apiobj.get(field_excludes=["internal_axon_id", "adapter_list_length"])
Use field titles - Will change internal field names to their titles.
>>> assets = apiobj.get(field_titles=True)
Join fields - Will join multi value fields with carriage returns.
>>> assets = apiobj.get(field_join=True)
Join fields with no trim and custom join value - Will join multi value fields with
;;
and do not trim the joined value to excels maximum cell length.>>> assets = apiobj.get(field_join=True, field_join_value=";;", field_join_trim=0)
Add fields as empty values for fields that did not return.
>>> assets = apiobj.get(field_null=True)
Add fields as empty values for fields that did not return with a custom null value.
>>> assets = apiobj.get( ... field_null=True, ... field_null_value="EMPTY", ... field_null_value_complex="EMPTY LIST", ... )
Add and remove tags to all assets returned.
>>> assets = apiobj.get(tags_add=["tag1", "tag2"], tags_remove=["tag3", "tag4"])
Generate a report of adapters that are missing from each asset.
>>> assets = apiobj.get(report_adapters_missing=True)
Generate a report of installed software that does not match a list of regex for each asset.
>>> assets = apiobj.get(report_software_whitelist=["chrome", "^adobe.*acrobat"])
Echo to STDERR progress messages.
>>> assets = apiobj.get(do_echo=True)
Change the amount of assets that echo page progress if do_echo is true.
>>> assets = apiobj.get(do_echo=True, page_progress=100)
Supply a set of custom callbacks to process each row before all builtin callbacks are run. Custom callbacks receive two arguments:
self
(the current callback object) androws
(the current rows being processed). Custom callbacks must return a list of rows.>>> def custom_cb1(self, rows): ... for row in rows: ... row["internal_axon_id"] = row["internal_axon_id"].upper() ... return rows ... >>> assets = apiobj.get(custom_cbs=[custom_cb1])
See also
args_map_custom()
for callback specific arguments to format and export data.
Notes
These arguments can be supplied as extra kwargs passed to
axonius_api_client.api.assets.users.Users.get()
oraxonius_api_client.api.assets.devices.Devices.get()
- Return type
-
classmethod
args_map_base
()¶ Get the map of arguments that can be supplied to GETARGS.
- Return type
-
classmethod
args_map_export
()¶ Get the export argument names and their defaults for this callbacks object.
See also
args_map_custom()
for the arguments specific to this callback object.args_map()
for the arguments for all callback objects.- Return type
-
property
args_strs
¶ Get a list of strings that describe each arg in
args_map()
.- Return type
-
close_fd
()¶ Close a file descriptor.
-
property
custom_schemas
¶ Get the custom schemas based on GETARGS.
- Return type
-
do_add_null_values
(rows)¶ Null out missing fields.
- Parameters
rows (
typing.Union
[typing.List
[dict
],dict
]) – rows to process- Return type
-
do_change_field_compress
(rows)¶ Asset callback to shorten field names.
- Parameters
rows (
typing.Union
[typing.List
[dict
],dict
]) – rows to process- Return type
-
do_change_field_replace
(rows)¶ Asset callback to replace characters.
- Parameters
rows (
typing.Union
[typing.List
[dict
],dict
]) – rows to process- Return type
-
do_change_field_titles
(rows)¶ Asset callback to change qual name to title.
- Parameters
rows (
typing.Union
[typing.List
[dict
],dict
]) – rows to process- Return type
-
do_custom_cbs
(rows)¶ Execute any custom callbacks for current row.
- Parameters
rows (
typing.Union
[typing.List
[dict
],dict
]) – rows to process- Return type
-
do_excludes
(rows)¶ Asset callback to remove fields from row.
- Parameters
rows (
typing.Union
[typing.List
[dict
],dict
]) – rows to process- Return type
-
do_explode_field
(rows)¶ Explode a field into multiple rows.
- Parameters
row – row being processed
rows (
typing.Union
[typing.List
[dict
],dict
]) –
- Return type
-
do_flatten_fields
(rows)¶ Asset callback to flatten complex fields.
- Parameters
rows (
typing.Union
[typing.List
[dict
],dict
]) – rows to process- Return type
-
do_join_values
(rows)¶ Join values.
- Parameters
rows (
typing.Union
[typing.List
[dict
],dict
]) – rows to process- Return type
-
do_pre_row
(rows)¶ Pre-processing callbacks for current row.
- Parameters
rows (
typing.Union
[typing.List
[dict
],dict
]) – rows to process- Return type
-
do_row
(rows)¶ Execute the callbacks for current row.
- Parameters
rows (
typing.Union
[typing.List
[dict
],dict
]) – rows to process- Return type
-
do_tag_add
()¶ Add tags to assets.
-
do_tag_remove
()¶ Remove tags from assets.
-
do_tagging
()¶ Add or remove tags to assets.
-
echo
(msg, error=False, warning=False, level='info', level_error='error', level_warning='warning', abort=True)¶ Echo a message to console or log it.
- Parameters
msg (
str
) – message to echoerror (
bool
) – message is an errorwarning (
bool
) – message is a warninglevel (
str
) – logging level for non error/non warning messageslevel_error (
str
) – logging level for error messageslevel_warning (
str
) – logging level for warning messagesabort (
bool
) – sys.exit(1) if error is true
-
echo_columns
(**kwargs)¶ Echo the columns of the fields selected.
-
echo_page_progress
()¶ Echo progress per N rows using an echo method.
-
property
excluded_schemas
¶ List of all schemas that should be excluded.
- Return type
-
property
field_replacements
¶ Parse the supplied list of field name replacements.
- Return type
-
property
fields_selected
¶ Get the names of the fields that were selected.
- Return type
-
property
final_columns
¶ Get the columns that will be returned.
- Return type
-
property
final_schemas
¶ Get the schemas that will be returned.
- Return type
-
get_arg_value
(arg)¶ Get an argument value.
- Parameters
arg (
str
) – key to get fromGETARGS
with a default value fromargs_map()
- Return type
typing.Union
[str
,list
,bool
,int
]
-
get_sub_schemas
(schema)¶ Get all the schemas of sub fields for a complex field.
- Parameters
schema (
dict
) – schema of complex field- Return type
-
is_excluded
(schema)¶ Check if a name supplied to field_excludes matches one of FIND_KEYS.
-
open_fd
()¶ Open a file descriptor.
-
open_fd_arg
()¶ Open a file descriptor supplied in GETARGS.
-
open_fd_path
()¶ Open a file descriptor for a path.
-
open_fd_stdout
()¶ Open a file descriptor to STDOUT.
Add assets to tracker for adding tags.
- Parameters
rows (
typing.Union
[typing.List
[dict
],dict
]) – rows to process- Return type
Add assets to tracker for removing tags.
- Parameters
rows (
typing.Union
[typing.List
[dict
],dict
]) – rows to process- Return type
-
property
schemas_selected
¶ Get the schemas of the fields that were selected.
- Return type
-
set_arg_value
(arg, value)¶ Set an argument value.
-
LOG
: logging.Logger¶ logger for this object.