zenpulse-scheduler 0.1.1__tar.gz → 0.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/PKG-INFO +1 -1
  2. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/pyproject.toml +1 -1
  3. zenpulse_scheduler-0.1.2/zenpulse_scheduler/migrations/0001_initial.py +54 -0
  4. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/zenpulse_scheduler.egg-info/PKG-INFO +1 -1
  5. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/zenpulse_scheduler.egg-info/SOURCES.txt +1 -0
  6. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/README.md +0 -0
  7. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/setup.cfg +0 -0
  8. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/zenpulse_scheduler/__init__.py +0 -0
  9. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/zenpulse_scheduler/admin.py +0 -0
  10. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/zenpulse_scheduler/apps.py +0 -0
  11. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/zenpulse_scheduler/engine.py +0 -0
  12. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/zenpulse_scheduler/listeners.py +0 -0
  13. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/zenpulse_scheduler/locks.py +0 -0
  14. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/zenpulse_scheduler/management/commands/run_zenpulse_scheduler.py +0 -0
  15. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/zenpulse_scheduler/migrations/__init__.py +0 -0
  16. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/zenpulse_scheduler/models.py +0 -0
  17. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/zenpulse_scheduler/registry.py +0 -0
  18. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/zenpulse_scheduler/sync.py +0 -0
  19. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/zenpulse_scheduler/triggers.py +0 -0
  20. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/zenpulse_scheduler.egg-info/dependency_links.txt +0 -0
  21. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/zenpulse_scheduler.egg-info/requires.txt +0 -0
  22. {zenpulse_scheduler-0.1.1 → zenpulse_scheduler-0.1.2}/zenpulse_scheduler.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zenpulse_scheduler
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: A DB-driven APScheduler for Django
5
5
  Classifier: Framework :: Django
6
6
  Classifier: Programming Language :: Python :: 3
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "zenpulse_scheduler"
7
- version = "0.1.1"
7
+ version = "0.1.2"
8
8
  dependencies = [
9
9
  "django>=3.2",
10
10
  "apscheduler>=3.6.3",
@@ -0,0 +1,54 @@
1
+ # Generated by Django 5.2.6 on 2026-02-02 21:06
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ initial = True
9
+
10
+ dependencies = [
11
+ ]
12
+
13
+ operations = [
14
+ migrations.CreateModel(
15
+ name='ScheduleConfig',
16
+ fields=[
17
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18
+ ('job_key', models.CharField(help_text='Unique key identifier for the job (must match the registered job name).', max_length=255, unique=True)),
19
+ ('enabled', models.BooleanField(default=True)),
20
+ ('trigger_type', models.CharField(choices=[('interval', 'Interval'), ('cron', 'Cron')], default='interval', max_length=20)),
21
+ ('interval_value', models.IntegerField(blank=True, help_text='Value for interval trigger.', null=True)),
22
+ ('interval_unit', models.CharField(blank=True, choices=[('seconds', 'Seconds'), ('minutes', 'Minutes'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks')], default='minutes', max_length=20, null=True)),
23
+ ('cron_minute', models.CharField(default='*', help_text='Cron minute (0-59 or *)', max_length=100)),
24
+ ('cron_hour', models.CharField(default='*', help_text='Cron hour (0-23 or *)', max_length=100)),
25
+ ('cron_day', models.CharField(default='*', help_text='Cron day of month (1-31 or *)', max_length=100)),
26
+ ('cron_month', models.CharField(default='*', help_text='Cron month (1-12 or *)', max_length=100)),
27
+ ('cron_day_of_week', models.CharField(default='*', help_text='Cron day of week (0-6 or mon,tue... or *)', max_length=100)),
28
+ ('max_instances', models.IntegerField(default=1, help_text='Maximum number of concurrently running instances allowed.')),
29
+ ('coalesce', models.BooleanField(default=True, help_text='Combine missed runs into one.')),
30
+ ('misfire_grace_time', models.IntegerField(default=60, help_text='Seconds after the designated run time that the job is still allowed to run.')),
31
+ ('log_policy', models.CharField(choices=[('none', 'None'), ('failures', 'Failures Only'), ('all', 'All Executions')], default='failures', max_length=20)),
32
+ ('updated_at', models.DateTimeField(auto_now=True)),
33
+ ],
34
+ ),
35
+ migrations.CreateModel(
36
+ name='JobExecutionLog',
37
+ fields=[
38
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
39
+ ('job_key', models.CharField(db_index=True, max_length=255)),
40
+ ('run_time', models.DateTimeField(auto_now_add=True)),
41
+ ('status', models.CharField(choices=[('success', 'Success'), ('fail', 'Fail')], max_length=10)),
42
+ ('duration_ms', models.FloatField(help_text='Execution duration in milliseconds')),
43
+ ('exception_type', models.CharField(blank=True, max_length=255, null=True)),
44
+ ('exception_message', models.TextField(blank=True, null=True)),
45
+ ('traceback', models.TextField(blank=True, null=True)),
46
+ ('hostname', models.CharField(blank=True, max_length=255, null=True)),
47
+ ('pid', models.IntegerField(blank=True, null=True)),
48
+ ],
49
+ options={
50
+ 'ordering': ['-run_time'],
51
+ 'indexes': [models.Index(fields=['job_key', 'status'], name='zenpulse_sc_job_key_c7a31a_idx'), models.Index(fields=['run_time'], name='zenpulse_sc_run_tim_b5c23a_idx')],
52
+ },
53
+ ),
54
+ ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zenpulse_scheduler
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: A DB-driven APScheduler for Django
5
5
  Classifier: Framework :: Django
6
6
  Classifier: Programming Language :: Python :: 3
@@ -16,4 +16,5 @@ zenpulse_scheduler.egg-info/dependency_links.txt
16
16
  zenpulse_scheduler.egg-info/requires.txt
17
17
  zenpulse_scheduler.egg-info/top_level.txt
18
18
  zenpulse_scheduler/management/commands/run_zenpulse_scheduler.py
19
+ zenpulse_scheduler/migrations/0001_initial.py
19
20
  zenpulse_scheduler/migrations/__init__.py