cowbird.utils
¶
Module Contents¶
Classes¶
Utility |
|
A metaclass that creates a Singleton base class when called. |
|
Represents a null value to differentiate from None. |
Functions¶
|
Immediately sets the logger level to avoid duplicate log outputs from the root logger and this logger when |
|
Applies the provided logging configuration settings to the logger. |
|
Logs the requested message to the logger and optionally enforce printing to the console according to configuration |
|
Logs the provided message to the logger and raises the corresponding exception afterwards. |
|
Converts |
|
Evaluate if argument is a callable |
|
Generates application configuration with all required utilities and settings configured. |
|
Loads configuration INI settings with additional handling. |
|
Retrieves the ‘JSON’ body of a response using the property/callable according to the response’s implementation. |
|
Retrieves |
|
Converts a |
|
Retrieve application settings from a supported container. |
|
Obtains the |
|
|
|
Subscriber event that logs basic details about the incoming requests. |
|
Tween factory that logs any exception before re-raising it. |
|
|
|
|
Attributes¶
-
cowbird.utils.
get_logger
(name: str, level: Optional[int] = None, force_stdout: bool = None, message_format: Optional[str] = None, datetime_format: Optional[str] = None) → logging.Logger[source]¶ Immediately sets the logger level to avoid duplicate log outputs from the root logger and this logger when level is
logging.NOTSET
.
-
cowbird.utils.
set_logger_config
(logger: logging.Logger, force_stdout: bool = False, message_format: Optional[str] = None, datetime_format: Optional[str] = None) → logging.Logger[source]¶ Applies the provided logging configuration settings to the logger.
-
cowbird.utils.
print_log
(msg: str, logger: Optional[logging.Logger] = None, level: int = logging.INFO, **kwargs: Any) → None[source]¶ Logs the requested message to the logger and optionally enforce printing to the console according to configuration value defined by
COWBIRD_LOG_PRINT
.
-
cowbird.utils.
raise_log
(msg: str, exception: Type[Exception] = Exception, logger: Optional[logging.Logger] = None, level: int = logging.ERROR) → NoReturn[source]¶ Logs the provided message to the logger and raises the corresponding exception afterwards.
- Raises
exception – whichever exception provided is raised systematically after logging.
-
cowbird.utils.
bool2str
(value: Any) → str[source]¶ Converts
value
to explicit"true"
or"false"
str
with permissive variants comparison that can represent common falsy or truthy values.
-
cowbird.utils.
islambda
(func: Any) → bool[source]¶ Evaluate if argument is a callable
lambda
expression.
-
cowbird.utils.
get_app_config
(container: cowbird.typedefs.AnySettingsContainer) → pyramid.config.Configurator[source]¶ Generates application configuration with all required utilities and settings configured.
-
cowbird.utils.
get_settings_from_config_ini
(config_ini_path, section=None)[source]¶ Loads configuration INI settings with additional handling.
-
cowbird.utils.
get_json
(response)[source]¶ Retrieves the ‘JSON’ body of a response using the property/callable according to the response’s implementation.
-
cowbird.utils.
get_header
(header_name: str, header_container: cowbird.typedefs.AnyHeadersType, default: Optional[str] = None, split: Optional[Union[str, List[str]]] = None) → Optional[str][source]¶ Retrieves
header_name
by fuzzy match (independently of upper/lower-case and underscore/dash) from various framework implementations ofHeaders
.If
split
is specified, the matchedheader_name
is first split with it and the first item is returned. This allows to parse complex headers (e.g.:text/plain; charset=UTF-8
totext/plain
withsplit=';'
).- Parameters
header_name – header to find.
header_container – where to look for header_name.
default – value to returned if header_container is invalid or header_name could not be found.
split – character(s) to use to split the found header_name.
-
cowbird.utils.
convert_response
(response: cowbird.typedefs.AnyResponseType) → pyramid.response.Response[source]¶ Converts a
requests.Response
object to an equivalentpyramid.response.Response
object.Content of the
response
is expected to be JSON.- Parameters
response – response to be converted
- Returns
converted response
-
cowbird.utils.
get_settings
(container: Optional[cowbird.typedefs.AnySettingsContainer], app: bool = False) → cowbird.typedefs.SettingsType[source]¶ Retrieve application settings from a supported container.
- Parameters
container – supported container with an handle to application settings.
app – allow retrieving from current thread registry if no container was defined.
- Returns
found application settings dictionary.
- Raises
TypeError – when no application settings could be found or unsupported container.
-
cowbird.utils.
fully_qualified_name
(obj: Union[Any, Type[Any]]) → str[source]¶ Obtains the
'<module>.<name>'
full path definition of the object to allow finding and importing it.
-
cowbird.utils.
log_request
(event: pyramid.events.NewRequest) → None[source]¶ Subscriber event that logs basic details about the incoming requests.
-
cowbird.utils.
log_exception_tween
(handler, registry)[source]¶ Tween factory that logs any exception before re-raising it.
Application errors are marked as
ERROR
while non critical HTTP errors are marked asWARNING
.
-
class
cowbird.utils.
ExtendedEnum
[source]¶ Bases:
enum.Enum
Utility
enum.Enum
methods.Create an extended enum with these utilities as follows:
class CustomEnum(ExtendedEnum): ItemA = "A" ItemB = "B"
-
classmethod
names
(cls) → List[str][source]¶ Returns the member names assigned to corresponding enum elements.
-
classmethod
-
class
cowbird.utils.
SingletonMeta
[source]¶ Bases:
type
A metaclass that creates a Singleton base class when called.
Create a class such that.
class A(object, metaclass=SingletonMeta): pass class B(object, metaclass=SingletonMeta): pass a1 = A() a2 = A() b1 = B() b2 = B() a1 is a2 # True b1 is b2 # True a1 is b1 # False