dataflow-core 2.1.14rc1__py3-none-any.whl → 2.1.14rc2__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.

Potentially problematic release.


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

@@ -3,7 +3,7 @@
3
3
  from .role import Role
4
4
  from .user import User
5
5
  from .team import Team
6
- from .environment import (Environment, LocalEnvironment, ArchivedEnvironment, JobLogs)
6
+ from .environment import (Environment, LocalEnvironment, ArchivedEnvironment, JobLogs, PipSource)
7
7
  from .project_details import ProjectDetails
8
8
  from .recent_projects import RecentProjects
9
9
  from .pinned_projects import PinnedProject
@@ -1,4 +1,8 @@
1
- from sqlalchemy import Column, Integer, String, Boolean, Text, ForeignKey, DateTime
1
+ from sqlalchemy import (
2
+ Column, Integer, String, Boolean, Text,
3
+ ForeignKey, DateTime, UniqueConstraint, CheckConstraint
4
+ )
5
+ from sqlalchemy.orm import relationship, Session
2
6
  from sqlalchemy.orm import relationship
3
7
  from sqlalchemy.sql import func
4
8
  from datetime import datetime, timezone
@@ -79,4 +83,41 @@ class LocalEnvironment(Base):
79
83
 
80
84
  class EnvType(str, Enum):
81
85
  dataflow = "dataflow"
82
- local = "local"
86
+ local = "local"
87
+
88
+ class PipSource(Base):
89
+ __tablename__ = "PIP_SOURCE"
90
+
91
+ id = Column(Integer, primary_key=True, autoincrement=True)
92
+
93
+ user_name = Column(String, ForeignKey("USER.user_name", ondelete="CASCADE"), nullable=True, index=True)
94
+
95
+ name = Column(String, nullable=False)
96
+ url = Column(String, nullable=False)
97
+ is_index = Column(Boolean, default=False, nullable=False, server_default='false')
98
+
99
+ created_at = Column(DateTime, default=datetime.now(timezone.utc), nullable=False)
100
+ updated_at = Column(DateTime, default=datetime.now(timezone.utc), onupdate=datetime.now(timezone.utc), nullable=False)
101
+
102
+ __table_args__ = (
103
+ UniqueConstraint("name", "user_name", name="uq_pip_source_per_user"),
104
+ CheckConstraint("NOT (is_index = TRUE AND user_name IS NOT NULL)", name="check_no_user_index_url"),
105
+ )
106
+
107
+ @classmethod
108
+ def get_admin_sources(cls, session: Session):
109
+ """
110
+ Returns all admin/system-wide sources (user_name is NULL).
111
+ """
112
+ return session.query(cls).filter(
113
+ cls.user_name == None
114
+ ).all()
115
+
116
+ @classmethod
117
+ def get_user_sources(cls, session: Session, user_name: str):
118
+ """
119
+ Returns merged sources for a user (admin-level + user-level personal sources).
120
+ """
121
+ return session.query(cls).filter(
122
+ (cls.user_name == None) | (cls.user_name == user_name)
123
+ ).all()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dataflow-core
3
- Version: 2.1.14rc1
3
+ Version: 2.1.14rc2
4
4
  Summary: Dataflow core package
5
5
  Author: Dataflow
6
6
  Author-email:
@@ -8,12 +8,12 @@ dataflow/database_manager.py,sha256=tJHMuOZ9Muskrh9t4uLRlTuFU0VkHAzoHlGP5DORIC4,
8
8
  dataflow/dataflow.py,sha256=0kPDIpFgrEcK81QYeLQGb-rQTrAH-83gLpn566yvBGA,14004
9
9
  dataflow/db.py,sha256=73ojGqpCTRVTlPszD73Ozhjih_BI2KTHmazqxxL6iWk,3780
10
10
  dataflow/environment.py,sha256=qiyuRRPpVLVWiYccRHXnGyWMr_ZBPWzixAyDtAzxQYE,28277
11
- dataflow/models/__init__.py,sha256=5Ai-sUHtT1dtc0l4nL1fuwVbx0GcwaGQg_LXqOzWb4c,981
11
+ dataflow/models/__init__.py,sha256=Z3pf61pq9Gw0c4csDvAYZ-XmQfLpHHDIBezCsCIs8gs,992
12
12
  dataflow/models/app_types.py,sha256=yE_ZB13lhpK7AZ7PyBwnQlf0RlIHYs_-vdMKx7_RMlY,379
13
13
  dataflow/models/blacklist_library.py,sha256=B2oi3Z8GcR_glhLAyinFk0W8c9txXvm3uOER6dY-q7I,991
14
14
  dataflow/models/connection.py,sha256=_VJL3KuIrm8t4lJmtunIL3-AXF9Yvi5wUolzdR3tE0E,1017
15
15
  dataflow/models/dataflow_zone.py,sha256=yFCvQXos5M1cU7ksbVSO338_RkT3hkdw2wr3kCJ_rec,769
16
- dataflow/models/environment.py,sha256=3W-Pvkuiufjw0MWy9F6uWSd0HDPjRNNJe3TnhpHxcGg,2920
16
+ dataflow/models/environment.py,sha256=IpM3aJ4ViS351fmWrj5zKIlg7HM_Jn2hV4EqnEjhhVU,4413
17
17
  dataflow/models/environment_status.py,sha256=lvPDNUsUoTW9D97B07aKqJQHRKp4LvPM28pQDMPH1ac,536
18
18
  dataflow/models/git_ssh.py,sha256=W15SDypxzGOz_aZkHEnVZ6DIMVsjAsbSIXVIEt2mPYU,694
19
19
  dataflow/models/pinned_projects.py,sha256=I-XMQq7__XJJi2lyOdEvQEfhPRz8D6KHA6Cbavbf05o,606
@@ -50,8 +50,8 @@ dataflow/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
50
  dataflow/utils/exceptions.py,sha256=8GRFoYZ5dPGQckVm2znaHpPi0ZAs69fK-RGKukEsapk,4432
51
51
  dataflow/utils/get_current_user.py,sha256=4nSO3SPVMZhW-MsIgxR3f9ZzrFaIZIuyrM6hvfyE7PQ,1202
52
52
  dataflow/utils/logger.py,sha256=7BFrOq5Oiqn8P4XZbgJzMP5O07d2fpdECbbfsjrUuHw,1213
53
- dataflow_core-2.1.14rc1.dist-info/METADATA,sha256=akGTrwmInmlMGEyHbPlFx7lpwLE8l03du5zHb9UxEOc,373
54
- dataflow_core-2.1.14rc1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
55
- dataflow_core-2.1.14rc1.dist-info/entry_points.txt,sha256=ppj_EIbYrJJwCPg1kfdsZk5q1N-Ejfis1neYrnjhO8o,117
56
- dataflow_core-2.1.14rc1.dist-info/top_level.txt,sha256=SZsUOpSCK9ntUy-3Tusxzf5A2e8ebwD8vouPb1dPt_8,23
57
- dataflow_core-2.1.14rc1.dist-info/RECORD,,
53
+ dataflow_core-2.1.14rc2.dist-info/METADATA,sha256=MWna0ZRcAfdy6izPdKov9n_-rX46AG7Ia4UqYtmNT0g,373
54
+ dataflow_core-2.1.14rc2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
55
+ dataflow_core-2.1.14rc2.dist-info/entry_points.txt,sha256=ppj_EIbYrJJwCPg1kfdsZk5q1N-Ejfis1neYrnjhO8o,117
56
+ dataflow_core-2.1.14rc2.dist-info/top_level.txt,sha256=SZsUOpSCK9ntUy-3Tusxzf5A2e8ebwD8vouPb1dPt_8,23
57
+ dataflow_core-2.1.14rc2.dist-info/RECORD,,