compair-core 0.3.4__tar.gz → 0.3.5__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.

Potentially problematic release.


This version of compair-core might be problematic. Click here for more details.

Files changed (42) hide show
  1. {compair_core-0.3.4/compair_core.egg-info → compair_core-0.3.5}/PKG-INFO +1 -1
  2. {compair_core-0.3.4 → compair_core-0.3.5}/compair/models.py +35 -35
  3. compair_core-0.3.5/compair/utils.py +42 -0
  4. {compair_core-0.3.4 → compair_core-0.3.5/compair_core.egg-info}/PKG-INFO +1 -1
  5. {compair_core-0.3.4 → compair_core-0.3.5}/pyproject.toml +1 -1
  6. compair_core-0.3.4/compair/utils.py +0 -61
  7. {compair_core-0.3.4 → compair_core-0.3.5}/LICENSE +0 -0
  8. {compair_core-0.3.4 → compair_core-0.3.5}/README.md +0 -0
  9. {compair_core-0.3.4 → compair_core-0.3.5}/compair/__init__.py +0 -0
  10. {compair_core-0.3.4 → compair_core-0.3.5}/compair/celery_app.py +0 -0
  11. {compair_core-0.3.4 → compair_core-0.3.5}/compair/default_groups.py +0 -0
  12. {compair_core-0.3.4 → compair_core-0.3.5}/compair/embeddings.py +0 -0
  13. {compair_core-0.3.4 → compair_core-0.3.5}/compair/feedback.py +0 -0
  14. {compair_core-0.3.4 → compair_core-0.3.5}/compair/logger.py +0 -0
  15. {compair_core-0.3.4 → compair_core-0.3.5}/compair/main.py +0 -0
  16. {compair_core-0.3.4 → compair_core-0.3.5}/compair/schema.py +0 -0
  17. {compair_core-0.3.4 → compair_core-0.3.5}/compair/tasks.py +0 -0
  18. {compair_core-0.3.4 → compair_core-0.3.5}/compair_core.egg-info/SOURCES.txt +0 -0
  19. {compair_core-0.3.4 → compair_core-0.3.5}/compair_core.egg-info/dependency_links.txt +0 -0
  20. {compair_core-0.3.4 → compair_core-0.3.5}/compair_core.egg-info/requires.txt +0 -0
  21. {compair_core-0.3.4 → compair_core-0.3.5}/compair_core.egg-info/top_level.txt +0 -0
  22. {compair_core-0.3.4 → compair_core-0.3.5}/compair_email/__init__.py +0 -0
  23. {compair_core-0.3.4 → compair_core-0.3.5}/compair_email/email.py +0 -0
  24. {compair_core-0.3.4 → compair_core-0.3.5}/compair_email/email_core.py +0 -0
  25. {compair_core-0.3.4 → compair_core-0.3.5}/compair_email/templates.py +0 -0
  26. {compair_core-0.3.4 → compair_core-0.3.5}/compair_email/templates_core.py +0 -0
  27. {compair_core-0.3.4 → compair_core-0.3.5}/server/__init__.py +0 -0
  28. {compair_core-0.3.4 → compair_core-0.3.5}/server/app.py +0 -0
  29. {compair_core-0.3.4 → compair_core-0.3.5}/server/deps.py +0 -0
  30. {compair_core-0.3.4 → compair_core-0.3.5}/server/local_model/__init__.py +0 -0
  31. {compair_core-0.3.4 → compair_core-0.3.5}/server/local_model/app.py +0 -0
  32. {compair_core-0.3.4 → compair_core-0.3.5}/server/providers/__init__.py +0 -0
  33. {compair_core-0.3.4 → compair_core-0.3.5}/server/providers/console_mailer.py +0 -0
  34. {compair_core-0.3.4 → compair_core-0.3.5}/server/providers/contracts.py +0 -0
  35. {compair_core-0.3.4 → compair_core-0.3.5}/server/providers/local_storage.py +0 -0
  36. {compair_core-0.3.4 → compair_core-0.3.5}/server/providers/noop_analytics.py +0 -0
  37. {compair_core-0.3.4 → compair_core-0.3.5}/server/providers/noop_billing.py +0 -0
  38. {compair_core-0.3.4 → compair_core-0.3.5}/server/providers/noop_ocr.py +0 -0
  39. {compair_core-0.3.4 → compair_core-0.3.5}/server/routers/__init__.py +0 -0
  40. {compair_core-0.3.4 → compair_core-0.3.5}/server/routers/capabilities.py +0 -0
  41. {compair_core-0.3.4 → compair_core-0.3.5}/server/settings.py +0 -0
  42. {compair_core-0.3.4 → compair_core-0.3.5}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: compair-core
3
- Version: 0.3.4
3
+ Version: 0.3.5
4
4
  Summary: Open-source foundation of the Compair collaboration platform.
5
5
  Author: RocketResearch, Inc.
6
6
  License: MIT
@@ -38,7 +38,7 @@ class BaseObject(Base):
38
38
 
39
39
  class User(Base):
40
40
  __tablename__ = "user"
41
- __table_args__ = {"schema": "public"}
41
+
42
42
 
43
43
  user_id: Mapped[str] = mapped_column(String(36), primary_key=True, init=False, default=lambda: str(uuid4()))
44
44
  username: Mapped[str] = mapped_column(String(128))
@@ -108,17 +108,17 @@ class User(Base):
108
108
 
109
109
  class Session(Base):
110
110
  __tablename__ = "session"
111
- __table_args__ = {"schema": "public"}
111
+
112
112
 
113
113
  id: Mapped[str] = mapped_column(String(128), primary_key=True, init=True)
114
- user_id: Mapped[str] = mapped_column(ForeignKey("public.user.user_id", ondelete="CASCADE"), index=True)
114
+ user_id: Mapped[str] = mapped_column(ForeignKey("user.user_id", ondelete="CASCADE"), index=True)
115
115
  datetime_created: Mapped[datetime]
116
116
  datetime_valid_until: Mapped[datetime]
117
117
 
118
118
 
119
119
  class Group(BaseObject):
120
120
  __tablename__ = "group"
121
- __table_args__ = {"schema": "public"}
121
+
122
122
 
123
123
  group_id: Mapped[str] = mapped_column(String(36), primary_key=True, init=False, default=lambda: str(uuid4()))
124
124
  name: Mapped[str] = mapped_column(String(256))
@@ -150,10 +150,10 @@ class Group(BaseObject):
150
150
 
151
151
  class Administrator(Base):
152
152
  __tablename__ = "administrator"
153
- __table_args__ = {"schema": "public"}
153
+
154
154
 
155
155
  admin_id: Mapped[str] = mapped_column(String(36), primary_key=True, init=False, default=lambda: str(uuid4()))
156
- user_id: Mapped[str] = mapped_column(ForeignKey("public.user.user_id", ondelete="CASCADE"), index=True)
156
+ user_id: Mapped[str] = mapped_column(ForeignKey("user.user_id", ondelete="CASCADE"), index=True)
157
157
 
158
158
  user = relationship("User")
159
159
  groups = relationship("Group", secondary="admin_to_group", back_populates="admins")
@@ -161,11 +161,11 @@ class Administrator(Base):
161
161
 
162
162
  class JoinRequest(Base):
163
163
  __tablename__ = "join_request"
164
- __table_args__ = {"schema": "public"}
164
+
165
165
 
166
166
  request_id: Mapped[int] = mapped_column(Identity(), primary_key=True, autoincrement=True, init=False)
167
- user_id: Mapped[str] = mapped_column(ForeignKey("public.user.user_id", ondelete="CASCADE"))
168
- group_id: Mapped[str] = mapped_column(ForeignKey("public.group.group_id", ondelete="CASCADE"))
167
+ user_id: Mapped[str] = mapped_column(ForeignKey("user.user_id", ondelete="CASCADE"))
168
+ group_id: Mapped[str] = mapped_column(ForeignKey("group.group_id", ondelete="CASCADE"))
169
169
  datetime_requested: Mapped[datetime] = mapped_column(default=datetime.now(timezone.utc), init=False)
170
170
 
171
171
  user = relationship("User")
@@ -174,11 +174,11 @@ class JoinRequest(Base):
174
174
 
175
175
  class GroupInvitation(Base):
176
176
  __tablename__ = "group_invitation"
177
- __table_args__ = {"schema": "public"}
177
+
178
178
 
179
179
  invitation_id: Mapped[int] = mapped_column(Integer, Identity(), primary_key=True, autoincrement=True, init=False)
180
- group_id: Mapped[str] = mapped_column(ForeignKey("public.group.group_id", ondelete="CASCADE"))
181
- inviter_id: Mapped[str] = mapped_column(ForeignKey("public.user.user_id", ondelete="CASCADE"))
180
+ group_id: Mapped[str] = mapped_column(ForeignKey("group.group_id", ondelete="CASCADE"))
181
+ inviter_id: Mapped[str] = mapped_column(ForeignKey("user.user_id", ondelete="CASCADE"))
182
182
  token: Mapped[str] = mapped_column(String(64), unique=True, nullable=False)
183
183
  email: Mapped[str | None] = mapped_column(String(256), nullable=True)
184
184
  datetime_expiration: Mapped[datetime]
@@ -191,10 +191,10 @@ class GroupInvitation(Base):
191
191
 
192
192
  class Document(BaseObject):
193
193
  __tablename__ = "document"
194
- __table_args__ = {"schema": "public"}
194
+
195
195
 
196
196
  document_id: Mapped[str] = mapped_column(String(36), primary_key=True, init=False, default=lambda: str(uuid4()))
197
- user_id: Mapped[str] = mapped_column(ForeignKey("public.user.user_id", ondelete="CASCADE"), index=True)
197
+ user_id: Mapped[str] = mapped_column(ForeignKey("user.user_id", ondelete="CASCADE"), index=True)
198
198
  author_id: Mapped[str]
199
199
  title: Mapped[str]
200
200
  content: Mapped[str] = mapped_column(Text)
@@ -230,12 +230,12 @@ class Document(BaseObject):
230
230
 
231
231
  class Note(Base):
232
232
  __tablename__ = "note"
233
- __table_args__ = {"schema": "public"}
233
+
234
234
 
235
235
  note_id: Mapped[str] = mapped_column(String(36), primary_key=True, init=False, default=lambda: str(uuid4()))
236
- document_id: Mapped[str] = mapped_column(ForeignKey("public.document.document_id", ondelete="CASCADE"), index=True)
237
- author_id: Mapped[str] = mapped_column(ForeignKey("public.user.user_id", ondelete="CASCADE"), index=True)
238
- group_id: Mapped[str | None] = mapped_column(ForeignKey("public.group.group_id", ondelete="CASCADE"), index=True, nullable=True)
236
+ document_id: Mapped[str] = mapped_column(ForeignKey("document.document_id", ondelete="CASCADE"), index=True)
237
+ author_id: Mapped[str] = mapped_column(ForeignKey("user.user_id", ondelete="CASCADE"), index=True)
238
+ group_id: Mapped[str | None] = mapped_column(ForeignKey("group.group_id", ondelete="CASCADE"), index=True, nullable=True)
239
239
  content: Mapped[str] = mapped_column(Text)
240
240
  datetime_created: Mapped[datetime] = mapped_column(default=datetime.now(timezone.utc))
241
241
  embedding = mapped_column(Vector(1536))
@@ -259,13 +259,13 @@ class Note(Base):
259
259
 
260
260
  class Chunk(Base):
261
261
  __tablename__ = "chunk"
262
- __table_args__ = {"schema": "public"}
262
+
263
263
 
264
264
  chunk_id: Mapped[str] = mapped_column(String(36), primary_key=True, init=False, default=lambda: str(uuid4()))
265
265
  hash: Mapped[str] = mapped_column(String(32))
266
266
  content: Mapped[str] = mapped_column(Text)
267
- document_id: Mapped[str | None] = mapped_column(ForeignKey("public.document.document_id", ondelete="CASCADE"), index=True, nullable=True)
268
- note_id: Mapped[str | None] = mapped_column(ForeignKey("public.note.note_id", ondelete="CASCADE"), index=True, nullable=True)
267
+ document_id: Mapped[str | None] = mapped_column(ForeignKey("document.document_id", ondelete="CASCADE"), index=True, nullable=True)
268
+ note_id: Mapped[str | None] = mapped_column(ForeignKey("note.note_id", ondelete="CASCADE"), index=True, nullable=True)
269
269
  chunk_type: Mapped[str] = mapped_column(String(16), default="document")
270
270
  embedding = mapped_column(Vector(1536))
271
271
 
@@ -287,12 +287,12 @@ class Chunk(Base):
287
287
 
288
288
  class Reference(Base):
289
289
  __tablename__ = "reference"
290
- __table_args__ = {"schema": "public"}
290
+
291
291
 
292
292
  reference_id: Mapped[str] = mapped_column(String(36), primary_key=True, init=False, default=lambda: str(uuid4()))
293
- source_chunk_id: Mapped[str] = mapped_column(ForeignKey("public.chunk.chunk_id", ondelete="CASCADE"), index=True)
294
- reference_document_id: Mapped[str | None] = mapped_column(ForeignKey("public.document.document_id", ondelete="CASCADE"), index=True, nullable=True)
295
- reference_note_id: Mapped[str | None] = mapped_column(ForeignKey("public.note.note_id", ondelete="CASCADE"), index=True, nullable=True)
293
+ source_chunk_id: Mapped[str] = mapped_column(ForeignKey("chunk.chunk_id", ondelete="CASCADE"), index=True)
294
+ reference_document_id: Mapped[str | None] = mapped_column(ForeignKey("document.document_id", ondelete="CASCADE"), index=True, nullable=True)
295
+ reference_note_id: Mapped[str | None] = mapped_column(ForeignKey("note.note_id", ondelete="CASCADE"), index=True, nullable=True)
296
296
  reference_type: Mapped[str] = mapped_column(String(16), default="document")
297
297
 
298
298
  chunk = relationship("Chunk", back_populates="references")
@@ -302,10 +302,10 @@ class Reference(Base):
302
302
 
303
303
  class Feedback(Base):
304
304
  __tablename__ = "feedback"
305
- __table_args__ = {"schema": "public"}
305
+
306
306
 
307
307
  feedback_id: Mapped[str] = mapped_column(String(36), primary_key=True, init=False, default=lambda: str(uuid4()))
308
- source_chunk_id: Mapped[str] = mapped_column(ForeignKey("public.chunk.chunk_id", ondelete="CASCADE"), index=True)
308
+ source_chunk_id: Mapped[str] = mapped_column(ForeignKey("chunk.chunk_id", ondelete="CASCADE"), index=True)
309
309
  feedback: Mapped[str] = mapped_column(Text)
310
310
  model: Mapped[str] = mapped_column(Text)
311
311
  timestamp: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=datetime.now(timezone.utc))
@@ -318,31 +318,31 @@ class Feedback(Base):
318
318
  user_to_group_table = Table(
319
319
  "user_to_group",
320
320
  Base.metadata,
321
- Column("user_id", ForeignKey("public.user.user_id", ondelete="CASCADE"), primary_key=True),
322
- Column("group_id", ForeignKey("public.group.group_id", ondelete="CASCADE"), primary_key=True),
321
+ Column("user_id", ForeignKey("user.user_id", ondelete="CASCADE"), primary_key=True),
322
+ Column("group_id", ForeignKey("group.group_id", ondelete="CASCADE"), primary_key=True),
323
323
  )
324
324
 
325
325
 
326
326
  admin_to_group_table = Table(
327
327
  "admin_to_group",
328
328
  Base.metadata,
329
- Column("admin_id", ForeignKey("public.administrator.admin_id", ondelete="CASCADE"), primary_key=True),
330
- Column("group_id", ForeignKey("public.group.group_id", ondelete="CASCADE"), primary_key=True),
329
+ Column("admin_id", ForeignKey("administrator.admin_id", ondelete="CASCADE"), primary_key=True),
330
+ Column("group_id", ForeignKey("group.group_id", ondelete="CASCADE"), primary_key=True),
331
331
  )
332
332
 
333
333
 
334
334
  document_to_group_table = Table(
335
335
  "document_to_group",
336
336
  Base.metadata,
337
- Column("document_id", ForeignKey("public.document.document_id", ondelete="CASCADE"), primary_key=True),
338
- Column("group_id", ForeignKey("public.group.group_id", ondelete="CASCADE"), primary_key=True),
337
+ Column("document_id", ForeignKey("document.document_id", ondelete="CASCADE"), primary_key=True),
338
+ Column("group_id", ForeignKey("group.group_id", ondelete="CASCADE"), primary_key=True),
339
339
  )
340
340
 
341
341
  note_to_group_table = Table(
342
342
  "note_to_group",
343
343
  Base.metadata,
344
- Column("note_id", ForeignKey("public.note.note_id", ondelete="CASCADE"), primary_key=True),
345
- Column("group_id", ForeignKey("public.group.group_id", ondelete="CASCADE"), primary_key=True),
344
+ Column("note_id", ForeignKey("note.note_id", ondelete="CASCADE"), primary_key=True),
345
+ Column("group_id", ForeignKey("group.group_id", ondelete="CASCADE"), primary_key=True),
346
346
  )
347
347
 
348
348
 
@@ -0,0 +1,42 @@
1
+ from __future__ import annotations
2
+
3
+ import secrets
4
+ from datetime import datetime, timedelta, timezone
5
+
6
+ from sqlalchemy.orm import Session
7
+
8
+ from compair.models import Activity
9
+
10
+
11
+ def chunk_text(text: str) -> list[str]:
12
+ chunks = text.split("\n\n")
13
+ chunks = [c.strip() for c in chunks]
14
+ return [c for c in chunks if c]
15
+
16
+
17
+ def generate_verification_token() -> tuple[str, datetime]:
18
+ token = secrets.token_urlsafe(32)
19
+ expiration = datetime.now(timezone.utc) + timedelta(hours=24)
20
+ return token, expiration
21
+
22
+
23
+ def log_activity(
24
+ session: Session,
25
+ user_id: str,
26
+ group_id: str,
27
+ action: str,
28
+ object_id: str,
29
+ object_name: str,
30
+ object_type: str,
31
+ ) -> None:
32
+ activity = Activity(
33
+ user_id=user_id,
34
+ group_id=group_id,
35
+ action=action,
36
+ object_id=object_id,
37
+ object_name=object_name,
38
+ object_type=object_type,
39
+ timestamp=datetime.now(timezone.utc),
40
+ )
41
+ session.add(activity)
42
+ session.commit()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: compair-core
3
- Version: 0.3.4
3
+ Version: 0.3.5
4
4
  Summary: Open-source foundation of the Compair collaboration platform.
5
5
  Author: RocketResearch, Inc.
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "compair-core"
7
- version = "0.3.4"
7
+ version = "0.3.5"
8
8
  description = "Open-source foundation of the Compair collaboration platform."
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
@@ -1,61 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import secrets
4
- from datetime import datetime, timedelta, timezone
5
- from typing import Any
6
-
7
- from sqlalchemy.orm import Session
8
-
9
- try:
10
- from compair_cloud.utils import log_activity as cloud_log_activity # type: ignore
11
- except (ImportError, ModuleNotFoundError):
12
- cloud_log_activity = None
13
-
14
-
15
- def chunk_text(text: str) -> list[str]:
16
- chunks = text.split("\n\n")
17
- chunks = [c.strip() for c in chunks]
18
- return [c for c in chunks if c]
19
-
20
-
21
- def generate_verification_token() -> tuple[str, datetime]:
22
- token = secrets.token_urlsafe(32)
23
- expiration = datetime.now(timezone.utc) + timedelta(hours=24)
24
- return token, expiration
25
-
26
-
27
- def log_activity(
28
- session: Session,
29
- user_id: str,
30
- group_id: str,
31
- action: str,
32
- object_id: str,
33
- object_name: str,
34
- object_type: str,
35
- ) -> None:
36
- if cloud_log_activity:
37
- cloud_log_activity(
38
- session=session,
39
- user_id=user_id,
40
- group_id=group_id,
41
- action=action,
42
- object_id=object_id,
43
- object_name=object_name,
44
- object_type=object_type,
45
- )
46
-
47
-
48
- def aggregate_usage_by_user() -> dict[str, Any]:
49
- if cloud_log_activity:
50
- from compair_cloud.utils import aggregate_usage_by_user as cloud_usage # type: ignore
51
-
52
- return cloud_usage()
53
- return {}
54
-
55
-
56
- def aggregate_service_resources() -> dict[str, Any]:
57
- if cloud_log_activity:
58
- from compair_cloud.utils import aggregate_service_resources as cloud_resources # type: ignore
59
-
60
- return cloud_resources()
61
- return {}
File without changes
File without changes
File without changes
File without changes