MCPcopy Index your code
hub / github.com/diffgram/diffgram / FeatureChecker

Class FeatureChecker

shared/feature_flags/feature_checker.py:13–154  ·  view source on GitHub ↗

This class will check if any of the feature flags are available for a given user on a give Diffgram Installation. Eventually this class will be using an external feature flag system SDK.

Source from the content-addressed store, hash-verified

11
12
13class FeatureChecker:
14 """
15 This class will check if any of the feature flags are available for a given
16 user on a give Diffgram Installation.
17
18 Eventually this class will be using an external feature flag system SDK.
19 """
20
21 user: User
22 session: Session
23 project: Project
24 install_fingerprint: str
25 FEATURE_FLAGS: list # Temp list while feature flag system is implemented.
26 log: dict
27
28 def __init__(self, session: Session, user: User, project: Project):
29 self.user = user
30 self.project = project
31 self.session = session
32 self.log = regular_log.default_api_log()
33 self.install_finger_print = settings.DIFFGRAM_INSTALL_FINGERPRINT
34 # This Dict will eventually be replaced by calls to our feature flag system.
35 self.FEATURE_FLAGS = [
36 'MAX_VIDEOS_PER_DATASET',
37 'MAX_USERS_PER_PROJECT',
38 'MAX_IMAGES_PER_DATASET',
39 'MAX_TEXT_FILES_PER_DATASET',
40 'MAX_SENSOR_FUSION_FILES_PER_DATASET',
41 'MAX_FRAMES_PER_VIDEO',
42 'MAX_INSTANCES_PER_EXPORT',
43 'MAX_PROJECTS',
44 ]
45
46
47 def get_free_plan_template(self):
48 if settings.IS_OPEN_SOURCE:
49 return PlanTemplate.get_by_internal_name(
50 session = self.session,
51 internal_name = 'open_source_free_plan'
52 )
53 else:
54 return PlanTemplate.get_by_internal_name(
55 session = self.session,
56 internal_name = 'default_free_plan'
57 )
58
59 def get_or_create_free_plan(self):
60 plan_template = self.get_free_plan_template()
61 if not plan_template:
62 plan_template = PlanTemplate.create_free_plan(session = self.session)
63
64 PlanTemplate.update_default_free_plan_values(session = self.session, plan_template = plan_template)
65
66 plan = Plan.new(
67 session = self.session,
68 member = self.user.member if self.user else None,
69 plan_template = plan_template,
70 premium_plan_user_count = -1,

Callers 4

check_export_billingFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected