%global _empty_manifest_terminate_build 0
Name:		python-pino
Version:	0.6.0
Release:	1
Summary:	Python json logger inspired by pino.js
License:	MIT
URL:		https://github.com/CoorpAcademy/pino.py
Source0:	https://mirrors.nju.edu.cn/pypi/web/packages/88/7c/68bc956e96fdc1e76a3bc0b89deb0ab3fcb2ced2af76fd588ed6ac48e4bb/pino-0.6.0.tar.gz
BuildArch:	noarch

Requires:	python3-style

%description
> **Json natural logger for python** inspired by [pino.js](https://github.com/pinojs/pino) :evergreen_tree:
[![PyPI](https://img.shields.io/pypi/v/pino.svg)](https://pypi.org/project/pino/)
[![Supported Python Versions](https://img.shields.io/pypi/pyversions/pino.svg)](https://pypi.python.org/pypi/pino)
[![Build Status](https://travis-ci.com/CoorpAcademy/pino.py.svg?branch=master)](https://travis-ci.com/CoorpAcademy/pino.py)
[![codecov](https://codecov.io/gh/CoorpAcademy/pino.py/branch/master/graph/badge.svg)](https://codecov.io/gh/CoorpAcademy/pino.py)
> In building port of [pinojs](https://github.com/pinojs/pino) logging library to python :snake:
A CHANGELOG will be introduced once it's stable enough and publicized.
Use it at you own risk, but feel free to reach with an issue.
## Basic Example
```python
from pino import pino
logger = pino(
    bindings={"apptype": "prototype", "context": "main"}
)
logger.info("Hello, I just started")
logger.debug({"details": 42}, "Some details that won't be seen")
child_logger = logger.child(context="some_job")
child_logger.info("Job started")
child_logger.info({"duration": 4012}, "Job completed %s", "NOW")
logger.info("Program completed")
```
Which would output:
```
{"level": "info", "time": 1587740056952, "message": "Hello, I just started", "host": "SomeHost", "apptype": "prototype", "context": "main", "millidiff": 0}
{"level": "info", "time": 1587740056952, "message": "Job started", "host": "SomeHost", "context": "some_job", "apptype": "prototype", "millidiff": 0}
{"level": "info", "time": 1587740056952, "message": "Job completed NOW", "host": "SomeHost", "duration": 4012, "context": "some_job", "apptype": "prototype", "millidiff": 0}
{"level": "info", "time": 1587740056952, "message": "Program completed", "host": "SomeHost", "apptype": "prototype", "context": "main", "millidiff": 0}
```
## API
### pino() constructor arguments
- `bindings`: meta attached to the messages by default
- `level`: minimal level to output logs, _default to `info`_
- `enabled`: is logger enabled, _default to true_
- `millidiff`: whether a millidiff is added to message, `ms` since last message, _enabled by default_.
- `stream` : stream to write logs to, default to `sys.stdout`
- `dump_function`: function to be used to serialise object to JSON, _default `json.dumps`_
- `messagekey`: key for message entry,  _default `message`_
### pino logger instance
- log methods: `critical`, `error`, `warn`, `info`, `debug`: (extra_bindings?), message, template value
- `.level`: access or update current log level
- `child(metas)`: create a child logger instance with new metas/bindings attached to it. (metas can be provided either as dict or kwargs)
### Complex examples
You can see more detailed examples in the [**examples** folder](./examples), notably [complex.py](./examples/complex.py)
## Development :hammer_and_wrench:
This library use [***Poetry***](https://python-poetry.org/) for management of the project, it's dependencies, build and else.
You can run test on all supported python version with `poetry run task test` (which will run `tox`),
or you can run on your current python version with `poetry run task pytest`.

%package -n python3-pino
Summary:	Python json logger inspired by pino.js
Provides:	python-pino
BuildRequires:	python3-devel
BuildRequires:	python3-setuptools
BuildRequires:	python3-pip
%description -n python3-pino
> **Json natural logger for python** inspired by [pino.js](https://github.com/pinojs/pino) :evergreen_tree:
[![PyPI](https://img.shields.io/pypi/v/pino.svg)](https://pypi.org/project/pino/)
[![Supported Python Versions](https://img.shields.io/pypi/pyversions/pino.svg)](https://pypi.python.org/pypi/pino)
[![Build Status](https://travis-ci.com/CoorpAcademy/pino.py.svg?branch=master)](https://travis-ci.com/CoorpAcademy/pino.py)
[![codecov](https://codecov.io/gh/CoorpAcademy/pino.py/branch/master/graph/badge.svg)](https://codecov.io/gh/CoorpAcademy/pino.py)
> In building port of [pinojs](https://github.com/pinojs/pino) logging library to python :snake:
A CHANGELOG will be introduced once it's stable enough and publicized.
Use it at you own risk, but feel free to reach with an issue.
## Basic Example
```python
from pino import pino
logger = pino(
    bindings={"apptype": "prototype", "context": "main"}
)
logger.info("Hello, I just started")
logger.debug({"details": 42}, "Some details that won't be seen")
child_logger = logger.child(context="some_job")
child_logger.info("Job started")
child_logger.info({"duration": 4012}, "Job completed %s", "NOW")
logger.info("Program completed")
```
Which would output:
```
{"level": "info", "time": 1587740056952, "message": "Hello, I just started", "host": "SomeHost", "apptype": "prototype", "context": "main", "millidiff": 0}
{"level": "info", "time": 1587740056952, "message": "Job started", "host": "SomeHost", "context": "some_job", "apptype": "prototype", "millidiff": 0}
{"level": "info", "time": 1587740056952, "message": "Job completed NOW", "host": "SomeHost", "duration": 4012, "context": "some_job", "apptype": "prototype", "millidiff": 0}
{"level": "info", "time": 1587740056952, "message": "Program completed", "host": "SomeHost", "apptype": "prototype", "context": "main", "millidiff": 0}
```
## API
### pino() constructor arguments
- `bindings`: meta attached to the messages by default
- `level`: minimal level to output logs, _default to `info`_
- `enabled`: is logger enabled, _default to true_
- `millidiff`: whether a millidiff is added to message, `ms` since last message, _enabled by default_.
- `stream` : stream to write logs to, default to `sys.stdout`
- `dump_function`: function to be used to serialise object to JSON, _default `json.dumps`_
- `messagekey`: key for message entry,  _default `message`_
### pino logger instance
- log methods: `critical`, `error`, `warn`, `info`, `debug`: (extra_bindings?), message, template value
- `.level`: access or update current log level
- `child(metas)`: create a child logger instance with new metas/bindings attached to it. (metas can be provided either as dict or kwargs)
### Complex examples
You can see more detailed examples in the [**examples** folder](./examples), notably [complex.py](./examples/complex.py)
## Development :hammer_and_wrench:
This library use [***Poetry***](https://python-poetry.org/) for management of the project, it's dependencies, build and else.
You can run test on all supported python version with `poetry run task test` (which will run `tox`),
or you can run on your current python version with `poetry run task pytest`.

%package help
Summary:	Development documents and examples for pino
Provides:	python3-pino-doc
%description help
> **Json natural logger for python** inspired by [pino.js](https://github.com/pinojs/pino) :evergreen_tree:
[![PyPI](https://img.shields.io/pypi/v/pino.svg)](https://pypi.org/project/pino/)
[![Supported Python Versions](https://img.shields.io/pypi/pyversions/pino.svg)](https://pypi.python.org/pypi/pino)
[![Build Status](https://travis-ci.com/CoorpAcademy/pino.py.svg?branch=master)](https://travis-ci.com/CoorpAcademy/pino.py)
[![codecov](https://codecov.io/gh/CoorpAcademy/pino.py/branch/master/graph/badge.svg)](https://codecov.io/gh/CoorpAcademy/pino.py)
> In building port of [pinojs](https://github.com/pinojs/pino) logging library to python :snake:
A CHANGELOG will be introduced once it's stable enough and publicized.
Use it at you own risk, but feel free to reach with an issue.
## Basic Example
```python
from pino import pino
logger = pino(
    bindings={"apptype": "prototype", "context": "main"}
)
logger.info("Hello, I just started")
logger.debug({"details": 42}, "Some details that won't be seen")
child_logger = logger.child(context="some_job")
child_logger.info("Job started")
child_logger.info({"duration": 4012}, "Job completed %s", "NOW")
logger.info("Program completed")
```
Which would output:
```
{"level": "info", "time": 1587740056952, "message": "Hello, I just started", "host": "SomeHost", "apptype": "prototype", "context": "main", "millidiff": 0}
{"level": "info", "time": 1587740056952, "message": "Job started", "host": "SomeHost", "context": "some_job", "apptype": "prototype", "millidiff": 0}
{"level": "info", "time": 1587740056952, "message": "Job completed NOW", "host": "SomeHost", "duration": 4012, "context": "some_job", "apptype": "prototype", "millidiff": 0}
{"level": "info", "time": 1587740056952, "message": "Program completed", "host": "SomeHost", "apptype": "prototype", "context": "main", "millidiff": 0}
```
## API
### pino() constructor arguments
- `bindings`: meta attached to the messages by default
- `level`: minimal level to output logs, _default to `info`_
- `enabled`: is logger enabled, _default to true_
- `millidiff`: whether a millidiff is added to message, `ms` since last message, _enabled by default_.
- `stream` : stream to write logs to, default to `sys.stdout`
- `dump_function`: function to be used to serialise object to JSON, _default `json.dumps`_
- `messagekey`: key for message entry,  _default `message`_
### pino logger instance
- log methods: `critical`, `error`, `warn`, `info`, `debug`: (extra_bindings?), message, template value
- `.level`: access or update current log level
- `child(metas)`: create a child logger instance with new metas/bindings attached to it. (metas can be provided either as dict or kwargs)
### Complex examples
You can see more detailed examples in the [**examples** folder](./examples), notably [complex.py](./examples/complex.py)
## Development :hammer_and_wrench:
This library use [***Poetry***](https://python-poetry.org/) for management of the project, it's dependencies, build and else.
You can run test on all supported python version with `poetry run task test` (which will run `tox`),
or you can run on your current python version with `poetry run task pytest`.

%prep
%autosetup -n pino-0.6.0

%build
%py3_build

%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
	find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
	find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
	find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
	find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
	find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .

%files -n python3-pino -f filelist.lst
%dir %{python3_sitelib}/*

%files help -f doclist.lst
%{_docdir}/*

%changelog
* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 0.6.0-1
- Package Spec generated