%global _empty_manifest_terminate_build 0
Name:		python-cron-schedule-triggers
Version:	0.0.11
Release:	1
Summary:	Cron Schedule Triggers ~ A library for determining Quartz Cron schedule trigger dates.
License:	MIT
URL:		https://gitlab.com/dameon.andersen/cstriggers
Source0:	https://mirrors.nju.edu.cn/pypi/web/packages/8b/18/a17e97d1155166f61ac88861302a069bb05e240ca64a3b351391f98129a2/cron-schedule-triggers-0.0.11.tar.gz
BuildArch:	noarch

Requires:	python3-pytz

%description
# CronScheduleTriggers: Quartz Syntax based Cron Trigger library.

[![pipeline status](https://gitlab.com/dameon.andersen/cstriggers/badges/master/pipeline.svg)](https://gitlab.com/dameon.andersen/cstriggers/commits/master) [![coverage report](https://gitlab.com/dameon.andersen/cstriggers/badges/master/coverage.svg)](https://gitlab.com/dameon.andersen/cstriggers/commits/master)

 Cron Schedule Triggers (CSTriggers) is a Python library enabling the ability to determine the next execution of a live schedule. Its syntax is that of [Quartz Job Scheduler](http://www.quartz-scheduler.org). This library is not a scheduling app or a task queue, there are plenty of those in the wild to choose from. When you need advanced customisation of triggers for tasks, and a common and conventional syntax for schedule notation, CSTriggers comes to your aid. 

## This library is for those who

 - Want the ability to generate future task data for visualization purposes.
 - Want to combine their own choice of solutions to build a customizable integrated task queuing/scheduling system at any scale.
 - Do not want to run java, but want to take advantage of the rich _Quartz Cron_ syntax
 - Do not want to drag in many dependencies into their project (Uses standard Python3 libraries only).


## Example usage

Initialize a schedule object with a cron notation string, a start date, and an optional end date. Call `.next_trigger()` for a new date. Notice that when an end_date is given, The schedule terminates at `2022-10-13T00:00:00` and not `2030-03-01T00:00:00` as it would naturally.

```python
from cstriggers.core.trigger import QuartzCron

schedule_string = "0 0 0 1 JAN-MAR ? 2010-2030"
start_date = "2019-10-13T00:00:00"
end_date = "2022-10-13T00:00:00"
cron_obj = QuartzCron(schedule_string=schedule_string, start_date=start_date, end_date=end_date)

print(cron_obj.next_trigger(isoformat=True))
```
```
>> 2020-01-01T00:00:00
```

For multiple sequential dates call either `.next_trigger()` multiple times.

```python
from cstriggers.core.trigger import QuartzCron

schedule_string = "0 0 0 1 JAN-MAR ? 2010-2030"
start_date = "2019-10-13T00:00:00"
end_date = "2022-10-13T00:00:00"
cron_obj = QuartzCron(schedule_string=schedule_string, start_date=start_date, end_date=end_date)

print(cron_obj.next_trigger(isoformat=True))
print(cron_obj.next_trigger(isoformat=True))

```

```
>> 2020-01-01T00:00:00
>> 2020-02-01T00:00:00
```

Or call `.next_triggers()` with the number of triggers needed. 

```python
from cstriggers.core.trigger import QuartzCron

schedule_string = "0 0 0 1 JAN-MAR ? 2010-2030"
start_date = "2019-10-13T00:00:00"
end_date = "2022-10-13T00:00:00"
cron_obj = QuartzCron(schedule_string=schedule_string, start_date=start_date, end_date=end_date)

print(cron_obj.next_triggers(number_of_triggers=10, isoformat=True))
```

```
>> [
    '2020-01-01T00:00:00', 
    '2020-02-01T00:00:00', 
    '2020-03-01T00:00:00', 
    '2021-01-01T00:00:00', 
    '2021-02-01T00:00:00', 
    '2021-03-01T00:00:00', 
    '2022-01-01T00:00:00', 
    '2022-02-01T00:00:00', 
    '2022-03-01T00:00:00', 
    '2023-01-01T00:00:00'
]
```

## Roadmap
- Support for last_trigger(s) to retroactively look at schedule dates.
- Support for AWS Cron Expression syntax.



%package -n python3-cron-schedule-triggers
Summary:	Cron Schedule Triggers ~ A library for determining Quartz Cron schedule trigger dates.
Provides:	python-cron-schedule-triggers
BuildRequires:	python3-devel
BuildRequires:	python3-setuptools
BuildRequires:	python3-pip
%description -n python3-cron-schedule-triggers
# CronScheduleTriggers: Quartz Syntax based Cron Trigger library.

[![pipeline status](https://gitlab.com/dameon.andersen/cstriggers/badges/master/pipeline.svg)](https://gitlab.com/dameon.andersen/cstriggers/commits/master) [![coverage report](https://gitlab.com/dameon.andersen/cstriggers/badges/master/coverage.svg)](https://gitlab.com/dameon.andersen/cstriggers/commits/master)

 Cron Schedule Triggers (CSTriggers) is a Python library enabling the ability to determine the next execution of a live schedule. Its syntax is that of [Quartz Job Scheduler](http://www.quartz-scheduler.org). This library is not a scheduling app or a task queue, there are plenty of those in the wild to choose from. When you need advanced customisation of triggers for tasks, and a common and conventional syntax for schedule notation, CSTriggers comes to your aid. 

## This library is for those who

 - Want the ability to generate future task data for visualization purposes.
 - Want to combine their own choice of solutions to build a customizable integrated task queuing/scheduling system at any scale.
 - Do not want to run java, but want to take advantage of the rich _Quartz Cron_ syntax
 - Do not want to drag in many dependencies into their project (Uses standard Python3 libraries only).


## Example usage

Initialize a schedule object with a cron notation string, a start date, and an optional end date. Call `.next_trigger()` for a new date. Notice that when an end_date is given, The schedule terminates at `2022-10-13T00:00:00` and not `2030-03-01T00:00:00` as it would naturally.

```python
from cstriggers.core.trigger import QuartzCron

schedule_string = "0 0 0 1 JAN-MAR ? 2010-2030"
start_date = "2019-10-13T00:00:00"
end_date = "2022-10-13T00:00:00"
cron_obj = QuartzCron(schedule_string=schedule_string, start_date=start_date, end_date=end_date)

print(cron_obj.next_trigger(isoformat=True))
```
```
>> 2020-01-01T00:00:00
```

For multiple sequential dates call either `.next_trigger()` multiple times.

```python
from cstriggers.core.trigger import QuartzCron

schedule_string = "0 0 0 1 JAN-MAR ? 2010-2030"
start_date = "2019-10-13T00:00:00"
end_date = "2022-10-13T00:00:00"
cron_obj = QuartzCron(schedule_string=schedule_string, start_date=start_date, end_date=end_date)

print(cron_obj.next_trigger(isoformat=True))
print(cron_obj.next_trigger(isoformat=True))

```

```
>> 2020-01-01T00:00:00
>> 2020-02-01T00:00:00
```

Or call `.next_triggers()` with the number of triggers needed. 

```python
from cstriggers.core.trigger import QuartzCron

schedule_string = "0 0 0 1 JAN-MAR ? 2010-2030"
start_date = "2019-10-13T00:00:00"
end_date = "2022-10-13T00:00:00"
cron_obj = QuartzCron(schedule_string=schedule_string, start_date=start_date, end_date=end_date)

print(cron_obj.next_triggers(number_of_triggers=10, isoformat=True))
```

```
>> [
    '2020-01-01T00:00:00', 
    '2020-02-01T00:00:00', 
    '2020-03-01T00:00:00', 
    '2021-01-01T00:00:00', 
    '2021-02-01T00:00:00', 
    '2021-03-01T00:00:00', 
    '2022-01-01T00:00:00', 
    '2022-02-01T00:00:00', 
    '2022-03-01T00:00:00', 
    '2023-01-01T00:00:00'
]
```

## Roadmap
- Support for last_trigger(s) to retroactively look at schedule dates.
- Support for AWS Cron Expression syntax.



%package help
Summary:	Development documents and examples for cron-schedule-triggers
Provides:	python3-cron-schedule-triggers-doc
%description help
# CronScheduleTriggers: Quartz Syntax based Cron Trigger library.

[![pipeline status](https://gitlab.com/dameon.andersen/cstriggers/badges/master/pipeline.svg)](https://gitlab.com/dameon.andersen/cstriggers/commits/master) [![coverage report](https://gitlab.com/dameon.andersen/cstriggers/badges/master/coverage.svg)](https://gitlab.com/dameon.andersen/cstriggers/commits/master)

 Cron Schedule Triggers (CSTriggers) is a Python library enabling the ability to determine the next execution of a live schedule. Its syntax is that of [Quartz Job Scheduler](http://www.quartz-scheduler.org). This library is not a scheduling app or a task queue, there are plenty of those in the wild to choose from. When you need advanced customisation of triggers for tasks, and a common and conventional syntax for schedule notation, CSTriggers comes to your aid. 

## This library is for those who

 - Want the ability to generate future task data for visualization purposes.
 - Want to combine their own choice of solutions to build a customizable integrated task queuing/scheduling system at any scale.
 - Do not want to run java, but want to take advantage of the rich _Quartz Cron_ syntax
 - Do not want to drag in many dependencies into their project (Uses standard Python3 libraries only).


## Example usage

Initialize a schedule object with a cron notation string, a start date, and an optional end date. Call `.next_trigger()` for a new date. Notice that when an end_date is given, The schedule terminates at `2022-10-13T00:00:00` and not `2030-03-01T00:00:00` as it would naturally.

```python
from cstriggers.core.trigger import QuartzCron

schedule_string = "0 0 0 1 JAN-MAR ? 2010-2030"
start_date = "2019-10-13T00:00:00"
end_date = "2022-10-13T00:00:00"
cron_obj = QuartzCron(schedule_string=schedule_string, start_date=start_date, end_date=end_date)

print(cron_obj.next_trigger(isoformat=True))
```
```
>> 2020-01-01T00:00:00
```

For multiple sequential dates call either `.next_trigger()` multiple times.

```python
from cstriggers.core.trigger import QuartzCron

schedule_string = "0 0 0 1 JAN-MAR ? 2010-2030"
start_date = "2019-10-13T00:00:00"
end_date = "2022-10-13T00:00:00"
cron_obj = QuartzCron(schedule_string=schedule_string, start_date=start_date, end_date=end_date)

print(cron_obj.next_trigger(isoformat=True))
print(cron_obj.next_trigger(isoformat=True))

```

```
>> 2020-01-01T00:00:00
>> 2020-02-01T00:00:00
```

Or call `.next_triggers()` with the number of triggers needed. 

```python
from cstriggers.core.trigger import QuartzCron

schedule_string = "0 0 0 1 JAN-MAR ? 2010-2030"
start_date = "2019-10-13T00:00:00"
end_date = "2022-10-13T00:00:00"
cron_obj = QuartzCron(schedule_string=schedule_string, start_date=start_date, end_date=end_date)

print(cron_obj.next_triggers(number_of_triggers=10, isoformat=True))
```

```
>> [
    '2020-01-01T00:00:00', 
    '2020-02-01T00:00:00', 
    '2020-03-01T00:00:00', 
    '2021-01-01T00:00:00', 
    '2021-02-01T00:00:00', 
    '2021-03-01T00:00:00', 
    '2022-01-01T00:00:00', 
    '2022-02-01T00:00:00', 
    '2022-03-01T00:00:00', 
    '2023-01-01T00:00:00'
]
```

## Roadmap
- Support for last_trigger(s) to retroactively look at schedule dates.
- Support for AWS Cron Expression syntax.



%prep
%autosetup -n cron-schedule-triggers-0.0.11

%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-cron-schedule-triggers -f filelist.lst
%dir %{python3_sitelib}/*

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

%changelog
* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.0.11-1
- Package Spec generated