FlowerPower 0.11.6.19__py3-none-any.whl → 0.20.0__py3-none-any.whl

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 (80) hide show
  1. flowerpower/cfg/__init__.py +3 -3
  2. flowerpower/cfg/pipeline/__init__.py +5 -3
  3. flowerpower/cfg/project/__init__.py +3 -3
  4. flowerpower/cfg/project/job_queue.py +1 -128
  5. flowerpower/cli/__init__.py +5 -5
  6. flowerpower/cli/cfg.py +0 -3
  7. flowerpower/cli/job_queue.py +401 -133
  8. flowerpower/cli/pipeline.py +14 -413
  9. flowerpower/cli/utils.py +0 -1
  10. flowerpower/flowerpower.py +537 -28
  11. flowerpower/job_queue/__init__.py +5 -94
  12. flowerpower/job_queue/base.py +201 -3
  13. flowerpower/job_queue/rq/concurrent_workers/thread_worker.py +0 -3
  14. flowerpower/job_queue/rq/manager.py +388 -77
  15. flowerpower/pipeline/__init__.py +2 -0
  16. flowerpower/pipeline/base.py +2 -2
  17. flowerpower/pipeline/io.py +14 -16
  18. flowerpower/pipeline/manager.py +21 -642
  19. flowerpower/pipeline/pipeline.py +571 -0
  20. flowerpower/pipeline/registry.py +242 -10
  21. flowerpower/pipeline/visualizer.py +1 -2
  22. flowerpower/plugins/_io/__init__.py +8 -0
  23. flowerpower/plugins/mqtt/manager.py +6 -6
  24. flowerpower/settings/backend.py +0 -2
  25. flowerpower/settings/job_queue.py +1 -57
  26. flowerpower/utils/misc.py +0 -256
  27. flowerpower/utils/monkey.py +1 -83
  28. {flowerpower-0.11.6.19.dist-info → flowerpower-0.20.0.dist-info}/METADATA +308 -152
  29. flowerpower-0.20.0.dist-info/RECORD +58 -0
  30. flowerpower/fs/__init__.py +0 -29
  31. flowerpower/fs/base.py +0 -662
  32. flowerpower/fs/ext.py +0 -2143
  33. flowerpower/fs/storage_options.py +0 -1420
  34. flowerpower/job_queue/apscheduler/__init__.py +0 -11
  35. flowerpower/job_queue/apscheduler/_setup/datastore.py +0 -110
  36. flowerpower/job_queue/apscheduler/_setup/eventbroker.py +0 -93
  37. flowerpower/job_queue/apscheduler/manager.py +0 -1051
  38. flowerpower/job_queue/apscheduler/setup.py +0 -554
  39. flowerpower/job_queue/apscheduler/trigger.py +0 -169
  40. flowerpower/job_queue/apscheduler/utils.py +0 -311
  41. flowerpower/pipeline/job_queue.py +0 -583
  42. flowerpower/pipeline/runner.py +0 -603
  43. flowerpower/plugins/io/base.py +0 -2520
  44. flowerpower/plugins/io/helpers/datetime.py +0 -298
  45. flowerpower/plugins/io/helpers/polars.py +0 -875
  46. flowerpower/plugins/io/helpers/pyarrow.py +0 -570
  47. flowerpower/plugins/io/helpers/sql.py +0 -202
  48. flowerpower/plugins/io/loader/__init__.py +0 -28
  49. flowerpower/plugins/io/loader/csv.py +0 -37
  50. flowerpower/plugins/io/loader/deltatable.py +0 -190
  51. flowerpower/plugins/io/loader/duckdb.py +0 -19
  52. flowerpower/plugins/io/loader/json.py +0 -37
  53. flowerpower/plugins/io/loader/mqtt.py +0 -159
  54. flowerpower/plugins/io/loader/mssql.py +0 -26
  55. flowerpower/plugins/io/loader/mysql.py +0 -26
  56. flowerpower/plugins/io/loader/oracle.py +0 -26
  57. flowerpower/plugins/io/loader/parquet.py +0 -35
  58. flowerpower/plugins/io/loader/postgres.py +0 -26
  59. flowerpower/plugins/io/loader/pydala.py +0 -19
  60. flowerpower/plugins/io/loader/sqlite.py +0 -23
  61. flowerpower/plugins/io/metadata.py +0 -244
  62. flowerpower/plugins/io/saver/__init__.py +0 -28
  63. flowerpower/plugins/io/saver/csv.py +0 -36
  64. flowerpower/plugins/io/saver/deltatable.py +0 -186
  65. flowerpower/plugins/io/saver/duckdb.py +0 -19
  66. flowerpower/plugins/io/saver/json.py +0 -36
  67. flowerpower/plugins/io/saver/mqtt.py +0 -28
  68. flowerpower/plugins/io/saver/mssql.py +0 -26
  69. flowerpower/plugins/io/saver/mysql.py +0 -26
  70. flowerpower/plugins/io/saver/oracle.py +0 -26
  71. flowerpower/plugins/io/saver/parquet.py +0 -36
  72. flowerpower/plugins/io/saver/postgres.py +0 -26
  73. flowerpower/plugins/io/saver/pydala.py +0 -20
  74. flowerpower/plugins/io/saver/sqlite.py +0 -24
  75. flowerpower/utils/scheduler.py +0 -311
  76. flowerpower-0.11.6.19.dist-info/RECORD +0 -102
  77. {flowerpower-0.11.6.19.dist-info → flowerpower-0.20.0.dist-info}/WHEEL +0 -0
  78. {flowerpower-0.11.6.19.dist-info → flowerpower-0.20.0.dist-info}/entry_points.txt +0 -0
  79. {flowerpower-0.11.6.19.dist-info → flowerpower-0.20.0.dist-info}/licenses/LICENSE +0 -0
  80. {flowerpower-0.11.6.19.dist-info → flowerpower-0.20.0.dist-info}/top_level.txt +0 -0
@@ -1,85 +1,3 @@
1
- import importlib
2
- import sys
1
+ # Placeholder file - APScheduler monkey patches removed
3
2
 
4
- from dill import dumps, loads
5
3
 
6
-
7
- def patch_pickle():
8
- """
9
- Patch the pickle serializer in the apscheduler module.
10
-
11
- This function replaces the `dumps` and `loads` functions in the `apscheduler.serializers.pickle` module
12
- with custom implementations.
13
-
14
- This is useful when you want to modify the behavior of the pickle serializer used by the apscheduler module.
15
-
16
- Example usage:
17
- patch_pickle()
18
-
19
- """
20
- sys.modules["apscheduler.serializers.pickle"].dumps = dumps
21
- sys.modules["apscheduler.serializers.pickle"].loads = loads
22
-
23
-
24
- if importlib.util.find_spec("apscheduler"):
25
- from apscheduler._structures import Job, Schedule, Task
26
-
27
- def job_to_dict(job):
28
- return {
29
- "id": str(job.id),
30
- "task_id": job.task_id,
31
- "args": [str(arg) for arg in job.args],
32
- "kwargs": job.kwargs,
33
- "schedule_id": job.schedule_id,
34
- "scheduled_fire_time": (
35
- job.scheduled_fire_time.isoformat() if job.scheduled_fire_time else None
36
- ),
37
- "jitter": job.jitter.total_seconds(),
38
- "start_deadline": (
39
- job.start_deadline.isoformat() if job.start_deadline else None
40
- ),
41
- "result_expiration_time": job.result_expiration_time.total_seconds(),
42
- "created_at": job.created_at.isoformat(),
43
- "acquired_by": job.acquired_by,
44
- "acquired_until": (
45
- job.acquired_until.isoformat() if job.acquired_until else None
46
- ),
47
- }
48
-
49
- Job.to_dict = job_to_dict
50
-
51
- def task_to_dict(task):
52
- return {
53
- "id": task.id,
54
- "func": task.func,
55
- "job_executor": task.job_executor,
56
- "max_running_jobs": task.max_running_jobs,
57
- "misfire_grace_time": task.misfire_grace_time,
58
- }
59
-
60
- Task.to_dict = task_to_dict
61
-
62
- def schedule_to_dict(schedule):
63
- return {
64
- "id": schedule.id,
65
- "task_id": schedule.task_id,
66
- "trigger": str(schedule.trigger),
67
- "args": [str(arg) for arg in schedule.args],
68
- "kwargs": schedule.kwargs,
69
- "paused": schedule.paused,
70
- "coalesce": schedule.coalesce.name if schedule.coalesce else None,
71
- "misfire_grace_time": schedule.misfire_grace_time,
72
- "max_jitter": schedule.max_jitter,
73
- "next_fire_time": (
74
- schedule.next_fire_time.isoformat() if schedule.next_fire_time else None
75
- ),
76
- "last_fire_time": (
77
- schedule.last_fire_time.isoformat() if schedule.last_fire_time else None
78
- ),
79
- "acquired_by": schedule.acquired_by,
80
- "acquired_until": (
81
- schedule.acquired_until.isoformat() if schedule.acquired_until else None
82
- ),
83
- }
84
-
85
- Schedule.to_dict = schedule_to_dict