simple-mongo-2 0.1.0__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.
@@ -0,0 +1,9 @@
1
+ Metadata-Version: 2.3
2
+ Name: simple-mongo-2
3
+ Version: 0.1.0
4
+ Summary: Add your description here
5
+ Author: marjon
6
+ Author-email: marjon <marjongodito@gmanmi.com>
7
+ Requires-Python: >=3.14
8
+ Description-Content-Type: text/markdown
9
+
File without changes
@@ -0,0 +1,18 @@
1
+ [project]
2
+ name = "simple-mongo-2"
3
+ version = "0.1.0"
4
+ description = "Add your description here"
5
+ readme = "README.md"
6
+ requires-python = ">=3.14"
7
+ dependencies = []
8
+
9
+ [[project.authors]]
10
+ name = "marjon"
11
+ email = "marjongodito@gmanmi.com"
12
+
13
+ [project.scripts]
14
+ simple-mongo-2 = "simple_mongo_2:main"
15
+
16
+ [build-system]
17
+ requires = ["uv_build>=0.12.9,<0.13.0"]
18
+ build-backend = "uv_build"
@@ -0,0 +1,17 @@
1
+ [project]
2
+ name = "simple-mongo-2"
3
+ version = "0.1.0"
4
+ description = "Add your description here"
5
+ readme = "README.md"
6
+ authors = [
7
+ { name = "marjon", email = "marjongodito@gmanmi.com" }
8
+ ]
9
+ requires-python = ">=3.14"
10
+ dependencies = []
11
+
12
+ [project.scripts]
13
+ simple-mongo-2 = "simple_mongo_2:main"
14
+
15
+ [build-system]
16
+ requires = ["uv_build>=0.12.9,<0.13.0"]
17
+ build-backend = "uv_build"
@@ -0,0 +1,11 @@
1
+ from .aggregation_factory import AggregationPipeline, AggregationFactory, AggregationStage
2
+ from .db import Client as SimpleMongo
3
+ from .aggregation_pipeline_builder import PipelineBuilder
4
+
5
+ __all__ = [
6
+ 'AggregationPipeline',
7
+ 'AggregationStage',
8
+ 'AggregationFactory',
9
+ 'SimpleMongo',
10
+ 'PipelineBuilder'
11
+ ]
@@ -0,0 +1,183 @@
1
+ from typing import List
2
+
3
+ from .aggregation_pipeline import *
4
+
5
+ # ---------------------------------------------------------------------------
6
+ # Aggregation Factory wrapper
7
+ # ---------------------------------------------------------------------------
8
+
9
+ from pymongo.collection import Collection
10
+ from .aggregation_pipeline import AggregationPipeline
11
+
12
+ class AggregationFactory:
13
+ def __init__(self, collection : Collection) -> None:
14
+ self.collection = collection
15
+ self._pipelines : AggregationPipeline = []
16
+
17
+ def execute(self):
18
+ return self.collection.aggregate(self._pipelines)
19
+
20
+ def match(self, pipeline : MatchStage):
21
+ self._pipelines.append(pipeline)
22
+ return self
23
+
24
+ def sort(self, pipeline : SortStage):
25
+ self._pipelines.append(pipeline)
26
+ return self
27
+
28
+ def limit(self, pipeline : LimitStage):
29
+ self._pipelines.append(pipeline)
30
+ return self
31
+
32
+ def project(self, pipeline: ProjectStage):
33
+ self._pipelines.append(pipeline)
34
+ return self
35
+
36
+ def skip(self, pipeline: SkipStage):
37
+ self._pipelines.append(pipeline)
38
+ return self
39
+
40
+ def unset(self, pipeline: UnsetStage):
41
+ self._pipelines.append(pipeline)
42
+
43
+
44
+ def group(self, pipeline: GroupStage):
45
+ self._pipelines.append(pipeline)
46
+ return self
47
+
48
+ def unwind(self, pipeline: UnwindStage):
49
+ self._pipelines.append(pipeline)
50
+ return self
51
+
52
+ def vector_search(self, pipeline: VectorSearchStage):
53
+ self._pipelines.append(pipeline)
54
+ return self
55
+
56
+ def lookup(self, pipeline: LookupStage):
57
+ self._pipelines.append(pipeline)
58
+ return self
59
+
60
+ def add_fields(self, pipeline: AddFieldsStage):
61
+ self._pipelines.append(pipeline)
62
+ return self
63
+
64
+ def set(self, pipeline: SetStage):
65
+ self._pipelines.append(pipeline)
66
+ return self
67
+
68
+ def bucket(self, pipeline: BucketStage):
69
+ self._pipelines.append(pipeline)
70
+ return self
71
+
72
+ def bucket_auto(self, pipeline: BucketAutoStage):
73
+ self._pipelines.append(pipeline)
74
+ return self
75
+
76
+ def count(self, pipeline: CountStage):
77
+ self._pipelines.append(pipeline)
78
+ return self
79
+
80
+ def densify(self, pipeline: DensifyStage):
81
+ self._pipelines.append(pipeline)
82
+ return self
83
+
84
+ def documents(self, pipeline: DocumentsStage):
85
+ self._pipelines.append(pipeline)
86
+ return self
87
+
88
+ def facet(self, pipeline: FacetStage):
89
+ self._pipelines.append(pipeline)
90
+ return self
91
+
92
+ def fill(self, pipeline: FillStage):
93
+ self._pipelines.append(pipeline)
94
+ return self
95
+
96
+ def geo_near(self, pipeline: GeoNearStage):
97
+ self._pipelines.append(pipeline)
98
+ return self
99
+
100
+ def graph_lookup(self, pipeline: GraphLookupStage):
101
+ self._pipelines.append(pipeline)
102
+ return self
103
+
104
+ def replace_root(self, pipeline: ReplaceRootStage):
105
+ self._pipelines.append(pipeline)
106
+ return self
107
+
108
+ def replace_with(self, pipeline: ReplaceWithStage):
109
+ self._pipelines.append(pipeline)
110
+ return self
111
+
112
+ def sample(self, pipeline: SampleStage):
113
+ self._pipelines.append(pipeline)
114
+ return self
115
+
116
+ def sort_by_count(self, pipeline: SortByCountStage):
117
+ self._pipelines.append(pipeline)
118
+ return self
119
+
120
+ def set_window_fields(self, pipeline: SetWindowFieldsStage):
121
+ self._pipelines.append(pipeline)
122
+ return self
123
+
124
+ def union_with(self, pipeline: UnionWithStage):
125
+ self._pipelines.append(pipeline)
126
+ return self
127
+
128
+ def merge(self, pipeline: MergeStage):
129
+ self._pipelines.append(pipeline)
130
+ return self
131
+
132
+ def out(self, pipeline: OutStage):
133
+ self._pipelines.append(pipeline)
134
+ return self
135
+
136
+ def search(self, pipeline: SearchStage):
137
+ self._pipelines.append(pipeline)
138
+ return self
139
+
140
+ def search_meta(self, pipeline: SearchMetaStage):
141
+ self._pipelines.append(pipeline)
142
+ return self
143
+
144
+ def list_search_indexes(self, pipeline: ListSearchIndexesStage):
145
+ self._pipelines.append(pipeline)
146
+ return self
147
+
148
+ def change_stream(self, pipeline: ChangeStreamStage):
149
+ self._pipelines.append(pipeline)
150
+ return self
151
+
152
+ def change_stream_split_large_event(self, pipeline: ChangeStreamSplitLargeEventStage):
153
+ self._pipelines.append(pipeline)
154
+ return self
155
+
156
+ def coll_stats(self, pipeline: CollStatsStage):
157
+ self._pipelines.append(pipeline)
158
+ return self
159
+
160
+ def current_op(self, pipeline: CurrentOpStage):
161
+ self._pipelines.append(pipeline)
162
+ return self
163
+
164
+ def index_stats(self, pipeline: IndexStatsStage):
165
+ self._pipelines.append(pipeline)
166
+ return self
167
+
168
+ def list_local_sessions(self, pipeline: ListLocalSessionsStage):
169
+ self._pipelines.append(pipeline)
170
+ return self
171
+
172
+ def list_sessions(self, pipeline: ListSessionsStage):
173
+ self._pipelines.append(pipeline)
174
+ return self
175
+
176
+ def plan_cache_stats(self, pipeline: PlanCacheStatsStage):
177
+ self._pipelines.append(pipeline)
178
+ return self
179
+
180
+ def query_stats(self, pipeline: QueryStatsStage):
181
+ self._pipelines.append(pipeline)
182
+ return self
183
+