mirror of
https://github.com/kellyjonbrazil/jc.git
synced 2025-06-19 00:17:51 +02:00
56 lines
1.4 KiB
Python
56 lines
1.4 KiB
Python
"""jc - JSON Convert lib module"""
|
|
|
|
import sys
|
|
from datetime import datetime
|
|
from typing import Dict, List, Tuple, Iterator, Optional, Union
|
|
|
|
JSONDictType = Dict[str, Union[str, int, float, bool, List, Dict, None]]
|
|
MetadataType = Dict[str, Optional[Union[str, int, float, List[str], datetime]]]
|
|
StreamingOutputType = Iterator[Union[JSONDictType, Tuple[BaseException, str]]]
|
|
|
|
if sys.version_info >= (3, 8):
|
|
from typing import TypedDict
|
|
|
|
ParserInfoType = TypedDict(
|
|
'ParserInfoType',
|
|
{
|
|
"name": str,
|
|
"argument": str,
|
|
"version": str,
|
|
"description": str,
|
|
"author": str,
|
|
"author_email": str,
|
|
"compatible": List[str],
|
|
"magic_commands": List[str],
|
|
"documentation": str,
|
|
"streaming": bool,
|
|
"plugin": bool,
|
|
"hidden": bool,
|
|
"deprecated": bool
|
|
},
|
|
total=False
|
|
)
|
|
|
|
TimeStampFormatType = TypedDict(
|
|
'TimeStampFormatType',
|
|
{
|
|
'id': int,
|
|
'format': str,
|
|
'locale': Optional[str]
|
|
}
|
|
)
|
|
|
|
else:
|
|
ParserInfoType = Dict
|
|
TimeStampFormatType = Dict
|
|
|
|
AboutJCType = Dict[str, Union[str, int, List[ParserInfoType]]]
|
|
|
|
|
|
try:
|
|
from pygments.token import (Name, Number, String, Keyword)
|
|
CustomColorType = Dict[Union[Name.Tag, Number, String, Keyword], str]
|
|
|
|
except Exception:
|
|
CustomColorType = Dict # type: ignore
|