1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-06-17 00:07:37 +02:00
Files
jc/docs/utils.md

256 lines
4.5 KiB
Markdown
Raw Normal View History

2022-01-25 17:07:47 -08:00
<a id="jc.utils"></a>
# jc.utils
2020-07-30 16:20:24 -07:00
2019-11-11 18:30:46 -08:00
jc - JSON CLI output utility utils
2020-07-30 16:20:24 -07:00
2022-01-25 17:07:47 -08:00
<a id="jc.utils.warning_message"></a>
#### warning\_message
2019-11-11 18:30:46 -08:00
```python
2022-01-25 17:07:47 -08:00
def warning_message(message_lines)
2019-11-11 18:30:46 -08:00
```
2019-11-12 14:19:40 -08:00
2022-01-19 11:08:59 -08:00
Prints warning message for non-fatal issues. The first line is
prepended with 'jc: Warning - ' and subsequent lines are indented.
Wraps text as needed based on the terminal width.
2019-11-12 14:19:40 -08:00
2022-01-25 17:07:47 -08:00
**Arguments**:
- `message` - (list) list of string lines
2019-11-12 14:19:40 -08:00
2022-01-25 17:07:47 -08:00
**Returns**:
2019-11-12 14:19:40 -08:00
2022-01-25 17:07:47 -08:00
None - just prints output to STDERR
2019-11-12 14:19:40 -08:00
2022-01-25 17:07:47 -08:00
<a id="jc.utils.error_message"></a>
2019-11-12 14:19:40 -08:00
2022-01-25 17:07:47 -08:00
#### error\_message
2020-07-30 16:20:24 -07:00
2019-11-11 18:30:46 -08:00
```python
2022-01-25 17:07:47 -08:00
def error_message(message_lines)
2019-11-11 18:30:46 -08:00
```
2019-11-12 14:19:40 -08:00
2022-01-19 11:08:59 -08:00
Prints an error message for fatal issues. The first line is
prepended with 'jc: Error - ' and subsequent lines are indented.
Wraps text as needed based on the terminal width.
2019-11-12 14:19:40 -08:00
2022-01-25 17:07:47 -08:00
**Arguments**:
2019-11-12 14:19:40 -08:00
2022-01-25 17:07:47 -08:00
- `message` - (list) list of string lines
2019-11-12 14:19:40 -08:00
2022-01-25 17:07:47 -08:00
**Returns**:
2019-11-12 14:19:40 -08:00
2022-01-25 17:07:47 -08:00
None - just prints output to STDERR
2019-11-12 14:19:40 -08:00
2022-01-25 17:07:47 -08:00
<a id="jc.utils.compatibility"></a>
#### compatibility
2020-07-30 16:20:24 -07:00
2019-11-11 18:30:46 -08:00
```python
2022-01-25 17:07:47 -08:00
def compatibility(mod_name, compatible, quiet=False)
2019-11-11 18:30:46 -08:00
```
2022-01-19 11:08:59 -08:00
Checks for the parser's compatibility with the running OS
platform.
2019-11-11 18:30:46 -08:00
2022-01-25 17:07:47 -08:00
**Arguments**:
2019-11-12 07:08:35 -08:00
2022-01-25 17:07:47 -08:00
- `mod_name` - (string) __name__ of the calling module
- `compatible` - (list) sys.platform name(s) compatible with
the parser. compatible options:
linux, darwin, cygwin, win32, aix, freebsd
- `quiet` - (bool) supress compatibility message if True
2019-11-11 18:30:46 -08:00
2022-01-25 17:07:47 -08:00
**Returns**:
2021-12-01 16:12:51 -08:00
2022-01-25 17:07:47 -08:00
None - just prints output to STDERR
2019-11-12 14:20:59 -08:00
2022-01-25 17:07:47 -08:00
<a id="jc.utils.has_data"></a>
2019-11-12 14:20:59 -08:00
2022-01-25 17:07:47 -08:00
#### has\_data
2020-07-30 16:20:24 -07:00
2020-06-14 17:23:10 -07:00
```python
2022-01-25 17:07:47 -08:00
def has_data(data)
2020-06-14 17:23:10 -07:00
```
2022-01-19 11:08:59 -08:00
Checks if the input contains data. If there are any non-whitespace
characters then return True, else return False.
2020-06-14 17:23:10 -07:00
2022-01-25 17:07:47 -08:00
**Arguments**:
2020-06-14 17:23:10 -07:00
2022-01-25 17:07:47 -08:00
- `data` - (string) input to check whether it contains data
2020-06-14 17:23:10 -07:00
2022-01-25 17:07:47 -08:00
**Returns**:
2020-06-14 17:23:10 -07:00
2022-01-25 17:07:47 -08:00
Boolean True if input string (data) contains non-whitespace
characters, otherwise False
2020-06-14 17:23:10 -07:00
2022-01-25 17:07:47 -08:00
<a id="jc.utils.convert_to_int"></a>
#### convert\_to\_int
2021-03-24 12:47:57 -07:00
2021-04-18 11:46:42 -07:00
```python
2022-01-25 17:07:47 -08:00
def convert_to_int(value)
2021-04-18 11:46:42 -07:00
```
2022-01-19 11:08:59 -08:00
Converts string and float input to int. Strips all non-numeric
characters from strings.
2021-04-18 11:46:42 -07:00
2022-01-25 17:07:47 -08:00
**Arguments**:
- `value` - (string/integer/float) Input value
2021-04-18 11:46:42 -07:00
2022-01-25 17:07:47 -08:00
**Returns**:
2021-04-18 11:46:42 -07:00
2022-01-25 17:07:47 -08:00
integer/None Integer if successful conversion, otherwise None
2021-04-18 11:46:42 -07:00
2022-01-25 17:07:47 -08:00
<a id="jc.utils.convert_to_float"></a>
2021-04-18 11:46:42 -07:00
2022-01-25 17:07:47 -08:00
#### convert\_to\_float
2021-04-18 11:46:42 -07:00
```python
2022-01-25 17:07:47 -08:00
def convert_to_float(value)
2021-04-18 11:46:42 -07:00
```
2022-01-19 11:08:59 -08:00
Converts string and int input to float. Strips all non-numeric
characters from strings.
2021-04-18 11:46:42 -07:00
2022-01-25 17:07:47 -08:00
**Arguments**:
2021-04-18 11:46:42 -07:00
2022-01-25 17:07:47 -08:00
- `value` - (string) Input value
2021-04-18 11:46:42 -07:00
2022-01-25 17:07:47 -08:00
**Returns**:
2021-04-18 11:46:42 -07:00
2022-01-25 17:07:47 -08:00
float/None Float if successful conversion, otherwise None
2021-04-18 11:46:42 -07:00
2022-01-25 17:07:47 -08:00
<a id="jc.utils.convert_to_bool"></a>
#### convert\_to\_bool
2021-04-18 11:46:42 -07:00
```python
2022-01-25 17:07:47 -08:00
def convert_to_bool(value)
2021-04-18 11:46:42 -07:00
```
2022-01-19 11:08:59 -08:00
Converts string, integer, or float input to boolean by checking
for 'truthy' values.
2021-04-18 11:46:42 -07:00
2022-01-25 17:07:47 -08:00
**Arguments**:
- `value` - (string/integer/float) Input value
2021-04-18 11:46:42 -07:00
2022-01-25 17:07:47 -08:00
**Returns**:
2021-04-18 11:46:42 -07:00
2022-01-25 17:07:47 -08:00
True/False False unless a 'truthy' number or string is found
('y', 'yes', 'true', '1', 1, -1, etc.)
2021-04-18 11:46:42 -07:00
2022-01-25 17:07:47 -08:00
<a id="jc.utils.stream_success"></a>
2021-04-18 11:46:42 -07:00
2022-01-25 17:07:47 -08:00
#### stream\_success
2021-04-18 11:46:42 -07:00
```python
2022-01-25 17:07:47 -08:00
def stream_success(output_line, ignore_exceptions)
```
2022-01-25 17:07:47 -08:00
2021-09-25 08:23:46 -07:00
Add `_jc_meta` object to output line if `ignore_exceptions=True`
2022-01-25 17:07:47 -08:00
<a id="jc.utils.stream_error"></a>
#### stream\_error
2021-09-13 21:14:56 -07:00
```python
2022-01-25 17:07:47 -08:00
def stream_error(e, ignore_exceptions, line)
2021-09-13 21:14:56 -07:00
```
2022-01-19 11:08:59 -08:00
Reraise the stream exception with annotation or print an error
`_jc_meta` field if `ignore_exceptions=True`.
2021-09-23 13:08:31 -07:00
2022-01-25 17:07:47 -08:00
<a id="jc.utils.input_type_check"></a>
#### input\_type\_check
2021-09-13 21:14:56 -07:00
2021-12-01 16:12:51 -08:00
```python
2022-01-25 17:07:47 -08:00
def input_type_check(data)
2021-12-01 16:12:51 -08:00
```
2022-01-25 17:07:47 -08:00
2021-12-01 16:12:51 -08:00
Ensure input data is a string
2022-01-25 17:07:47 -08:00
<a id="jc.utils.streaming_input_type_check"></a>
#### streaming\_input\_type\_check
2021-12-01 16:12:51 -08:00
```python
2022-01-25 17:07:47 -08:00
def streaming_input_type_check(data)
2021-12-01 16:12:51 -08:00
```
2022-01-25 17:07:47 -08:00
2021-12-01 16:12:51 -08:00
Ensure input data is an iterable, but not a string or bytes
2022-01-25 17:07:47 -08:00
<a id="jc.utils.streaming_line_input_type_check"></a>
#### streaming\_line\_input\_type\_check
2021-12-01 16:12:51 -08:00
```python
2022-01-25 17:07:47 -08:00
def streaming_line_input_type_check(line)
2021-12-01 16:12:51 -08:00
```
2022-01-25 17:07:47 -08:00
2021-12-01 16:12:51 -08:00
Ensure each line is a string
2022-01-25 17:07:47 -08:00
<a id="jc.utils.timestamp"></a>
## timestamp Objects
2021-03-24 12:47:57 -07:00
```python
2022-01-25 17:07:47 -08:00
class timestamp()
2021-03-24 12:47:57 -07:00
```
2022-01-19 11:08:59 -08:00
Input a date-time text string of several formats and convert to a
naive or timezone-aware epoch timestamp in UTC.
2021-03-24 12:47:57 -07:00
2022-01-25 17:07:47 -08:00
**Arguments**:
- `datetime_string` - (str) a string representation of a
date-time in several supported formats
**Attributes**:
string (str) the input datetime string
format (int) the format rule that was used to
decode the datetime string. None if
conversion fails
naive (int) timestamp based on locally configured
timezone. None if conversion fails
utc (int) aware timestamp only if UTC timezone
detected in datetime string. None if
conversion fails
2021-03-24 12:47:57 -07:00