trex-conf 0.0.1__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,13 @@
1
+ Metadata-Version: 2.1
2
+ Name: trex-conf
3
+ Version: 0.0.1
4
+ Summary: TRex Configuration package
5
+ Home-page: https://bitbucket.org/lokjac/trex-conf
6
+ Author: Jack Lok
7
+ Author-email: sglok77@gmail.com
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Description-Content-Type: text/markdown
12
+
13
+ This is configuration project
@@ -0,0 +1 @@
1
+ This is configuration project
@@ -0,0 +1,7 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
5
+ [aliases]
6
+ release = egg_info -Db ''
7
+
@@ -0,0 +1,37 @@
1
+ import setuptools
2
+ with open("README.md", "r") as fh:
3
+ long_description = fh.read()
4
+
5
+ setuptools.setup(
6
+ #Application name and details
7
+ name='trex-conf',
8
+ description="TRex Configuration package",
9
+ long_description=long_description,
10
+ long_description_content_type="text/markdown",
11
+ url="https://bitbucket.org/lokjac/trex-conf",
12
+ version='0.0.1',
13
+
14
+ #Author details
15
+ author="Jack Lok",
16
+ author_email="sglok77@gmail.com",
17
+
18
+ #packages=setuptools.find_packages(),
19
+ packages=setuptools.find_packages(),
20
+
21
+ #include additional files
22
+ #package_data = {
23
+ # # If any package contains *.txt or *.rst files, include them:
24
+ # '': ['*.*'],
25
+ #},
26
+
27
+ include_package_data=True,
28
+
29
+ classifiers=[
30
+ "Programming Language :: Python :: 3",
31
+ "License :: OSI Approved :: MIT License",
32
+ "Operating System :: OS Independent",
33
+ ],
34
+ install_requires=[
35
+ ],
36
+ )
37
+
File without changes
@@ -0,0 +1,354 @@
1
+ '''
2
+ Created on 18 Sep 2020
3
+
4
+ @author: jacklok
5
+ '''
6
+ import logging, os, config_path
7
+ from trexlib.conf import DEPLOYMENT_MODE, PRODUCTION_MODE, DEMO_MODE, LOCAL_MODE
8
+ from trexlib.utils.common.config_util import read_config
9
+
10
+ logger = logging.getLogger('debug')
11
+
12
+
13
+ PRODUCTION_MODE = "PROD"
14
+ DEMO_MODE = "DEMO"
15
+ LOCAL_MODE = "LOCAL"
16
+
17
+ DEPLOYMENT_MODE = os.environ.get('DEPLOYMENT_MODE')
18
+
19
+ SECRET_KEY = os.environ.get('SECRET_KEY')
20
+ MAX_PASSWORD_LENGTH = os.environ.get('MAX_PASSWORD_LENGTH')
21
+
22
+ SYSTEM_TASK_GCLOUD_PROJECT_ID = os.environ.get('SYSTEM_TASK_GCLOUD_PROJECT_ID')
23
+ SYSTEM_TASK_GCLOUD_LOCATION = os.environ.get('SYSTEM_TASK_GCLOUD_LOCATION')
24
+ SYSTEM_TASK_SERVICE_ACCOUNT_KEY = os.environ.get('SYSTEM_TASK_SERVICE_ACCOUNT_KEY')
25
+ SYSTEM_TASK_SERVICE_CREDENTIAL_PATH = os.path.abspath(os.path.dirname(config_path.__file__)) + '/' + SYSTEM_TASK_SERVICE_ACCOUNT_KEY
26
+ SYSTEM_TASK_SERVICE_ACCOUNT_EMAIL = os.environ.get('SYSTEM_TASK_SERVICE_ACCOUNT_EMAIL')
27
+
28
+ SYSTEM_BASE_URL = os.environ.get('SYSTEM_BASE_URL')
29
+
30
+
31
+ STORAGE_SERVICE_ACCOUNT_KEY_FILEPATH = os.environ['CLOUD_STORAGE_SERVICE_ACCOUNT_KEY']
32
+ STORAGE_CREDENTIAL_PATH = os.path.abspath(os.path.dirname(__file__)) + '/../' + STORAGE_SERVICE_ACCOUNT_KEY_FILEPATH
33
+
34
+ CLOUD_STORAGE_BUCKET = os.environ.get('CLOUD_STORAGE_BUCKET')
35
+ CLOUD_STORAGE_PROJECT_ID = os.environ.get('CLOUD_STORAGE_PROJECT_ID')
36
+
37
+
38
+ SMS_GATEWAY_PATH = os.environ.get('SMS_GATEWAY_PATH')
39
+ SMS_GATEWAY_URL = os.environ.get('SMS_GATEWAY_URL')
40
+
41
+ SMS_GATEWAY_USERNAME = os.environ.get('SMS_GATEWAY_USERNAME')
42
+ SMS_GATEWAY_PASSWORD = os.environ.get('SMS_GATEWAY_PASSWORD')
43
+ SMS_GATEWAY_SENDER = os.environ.get('SMS_GATEWAY_SENDER')
44
+
45
+ WHATSAPP_TOKEN = os.environ.get('WHATSAPP_TOKEN')
46
+ WHATSAPP_PHONE_NUMBER_ID = os.environ.get('WHATSAPP_PHONE_NUMBER_ID')
47
+ WHATSAPP_VERIFY_TOKEN = os.environ.get('WHATSAPP_VERIFY_TOKEN')
48
+ FACEBOOK_API_VERSION = os.environ.get('FACEBOOK_API_VERSION')
49
+
50
+ CREDENTIAL_CONFIG = read_config('credential_config.txt')
51
+
52
+ APPLICATION_NAME = os.environ.get('APPLICATION_NAME')
53
+ APPLICATION_TITLE = os.environ.get('APPLICATION_TITLE')
54
+ APPLICATION_DESC = os.environ.get('APPLICATION_DESC')
55
+ APPLICATION_HREF = os.environ.get('APPLICATION_HREF')
56
+ APPLICATION_BASE_URL = os.environ.get('APPLICATION_BASE_URL')
57
+ WEBSITE_BASE_URL = os.environ.get('WEBSITE_BASE_URL')
58
+ IMAGE_BASE_URL = os.environ.get('IMAGE_BASE_URL')
59
+ IMPORT_BASE_URL = os.environ.get('IMPORT_BASE_URL')
60
+ IMAGE_PROD_BASE_URL = os.environ.get('IMAGE_PROD_BASE_URL')
61
+ REFER_BASE_URL = os.environ.get('REFER_BASE_URL')
62
+ MOBILE_APP_PLAY_STORE_URL = os.environ.get('PLAY_STORE_URL')
63
+ MOBILE_APP_ITUNES_STORE_URL = os.environ.get('APPLE_STORE_URL')
64
+ MOBILE_APP_HUAWEI_GALERY_URL = os.environ.get('HUAWEI_STORE_URL')
65
+ MOBILE_APP_INSTALL_URL = os.environ.get('INSTALL_APP_URL')
66
+ DOWNLOAD_URL = os.environ.get('DOWNLOAD_URL')
67
+
68
+
69
+ EMAIL_EXPIRY_LENGTH_IN_MINUTE = os.environ.get('EMAIL_EXPIRY_LENGTH_IN_MINUTE')
70
+ MOBILE_PHONE_EXPIRY_LENGTH_IN_MINUTE = os.environ.get('MOBILE_PHONE_EXPIRY_LENGTH_IN_MINUTE')
71
+
72
+ INSTANT_REWARD_CUSTOM_URL = os.environ.get('INSTANT_REWARD_CUSTOM_URL')
73
+
74
+ REFER_A_FRIEND_CUSTOM_URL = os.environ.get('REFER_A_FRIEND_CUSTOM_URL')
75
+
76
+ TASK_BASE_URL = os.environ.get('TASK_BASE_URL')
77
+
78
+ DEBUG_MODE = os.environ.get('DEBUG_MODE')
79
+
80
+ APPLICATION_SHOW_DASHBOARD_MESSAGE = False
81
+ APPLICATION_SHOW_DASHBOARD_NOTIFICATION = False
82
+
83
+
84
+ PAYMENT_GATEWAY_APP_KEY = ''
85
+ PAYMENT_GATEWAY_SECRET_KEY = ''
86
+
87
+ STRIPE_PAYMENT_GATEWAY_APP_KEY_FOR_LIVE = os.environ.get('STRIPE_PAYMENT_GATEWAY_APP_KEY_FOR_LIVE')
88
+ STRIPE_PAYMENT_GATEWAY_SECRET_KEY_FOR_LIVE = os.environ.get('STRIPE_PAYMENT_GATEWAY_SECRET_KEY_FOR_LIVE')
89
+
90
+ STRIPE_PAYMENT_GATEWAY_APP_KEY_FOR_TEST = os.environ.get('STRIPE_PAYMENT_GATEWAY_APP_KEY_FOR_TEST')
91
+ STRIPE_PAYMENT_GATEWAY_SECRET_KEY_FOR_TEST = os.environ.get('STRIPE_PAYMENT_GATEWAY_SECRET_KEY_FOR_TEST')
92
+
93
+
94
+ CSRF_ENABLED = True
95
+
96
+ CONTENT_WITH_JAVASCRIPT_LINK = True
97
+
98
+ APPLICATION_VERSION_NO = os.environ.get('APPLICATION_VERSION_NO')
99
+
100
+ DEFAULT_LANGUAGE = 'en_us'
101
+
102
+ GCLOUD_PROJECT_ID = os.environ.get('GCLOUD_PROJECT_ID')
103
+
104
+ SUPERUSER_ID = CREDENTIAL_CONFIG.get('SUPERUSER_ID')
105
+ SUPERUSER_EMAIL = CREDENTIAL_CONFIG.get('SUPERUSER_EMAIL')
106
+ SUPERUSER_HASHED_PASSWORD = CREDENTIAL_CONFIG.get('SUPERUSER_HASHED_PASSWORD')
107
+
108
+
109
+ WHATSAPP_TOKEN = os.environ.get('WHATSAPP_TOKEN')
110
+ WHATSAPP_PHONE_NUMBER_ID = os.environ.get('WHATSAPP_PHONE_NUMBER_ID')
111
+ WHATSAPP_VERIFY_TOKEN = os.environ.get('WHATSAPP_VERIFY_TOKEN')
112
+ FACEBOOK_API_VERSION = os.environ.get('FACEBOOK_API_VERSION')
113
+
114
+ STORAGE_SERVICE_ACCOUNT_KEY_FILEPATH = os.environ['CLOUD_STORAGE_SERVICE_ACCOUNT_KEY']
115
+ STORAGE_CREDENTIAL_PATH = os.path.abspath(os.path.dirname(__file__)) + '/../' + STORAGE_SERVICE_ACCOUNT_KEY_FILEPATH
116
+ CLOUD_STORAGE_BUCKET = os.environ.get('CLOUD_STORAGE_BUCKET')
117
+
118
+ DEFAULT_GRAVATAR_URL = 'http://www.gravatar.com/avatar'
119
+ CSRF_PROTECT = True
120
+ MAX_CONTENT_FILE_LENGTH = 20 * 1024 * 1024 #limit all request size to 20 mb
121
+
122
+ IS_PRODUCTION = DEPLOYMENT_MODE==PRODUCTION_MODE
123
+ IS_LOCAL = DEPLOYMENT_MODE==LOCAL_MODE
124
+ #DEBUG_MODE = False
125
+
126
+ if DEPLOYMENT_MODE==PRODUCTION_MODE:
127
+ #DEBUG_MODE = False
128
+ #DEBUG_MODE = True
129
+
130
+ LOGGING_LEVEL = logging.DEBUG
131
+ #LOGGING_LEVEL = logging.WARN
132
+ #LOGGING_LEVEL = logging.INFO
133
+ #LOGGING_LEVEL = logging.ERROR
134
+
135
+ PAYMENT_GATEWAY_APP_KEY = STRIPE_PAYMENT_GATEWAY_APP_KEY_FOR_LIVE
136
+ PAYMENT_GATEWAY_SECRET_KEY = STRIPE_PAYMENT_GATEWAY_SECRET_KEY_FOR_LIVE
137
+
138
+ CSRF_PROTECT = False
139
+
140
+
141
+ elif DEPLOYMENT_MODE==DEMO_MODE:
142
+ #DEBUG_MODE = True
143
+ #DEBUG_MODE = False
144
+
145
+ LOGGING_LEVEL = logging.DEBUG
146
+ #LOGGING_LEVEL = logging.INFO
147
+
148
+ PAYMENT_GATEWAY_APP_KEY = STRIPE_PAYMENT_GATEWAY_APP_KEY_FOR_TEST
149
+ PAYMENT_GATEWAY_SECRET_KEY = STRIPE_PAYMENT_GATEWAY_SECRET_KEY_FOR_TEST
150
+
151
+ CSRF_PROTECT = False
152
+
153
+
154
+ elif DEPLOYMENT_MODE==LOCAL_MODE:
155
+ #DEBUG_MODE = True
156
+
157
+ #LOGGING_LEVEL = logging.DEBUG
158
+ LOGGING_LEVEL = logging.INFO
159
+
160
+ PAYMENT_GATEWAY_APP_KEY = STRIPE_PAYMENT_GATEWAY_APP_KEY_FOR_TEST
161
+ PAYMENT_GATEWAY_SECRET_KEY = STRIPE_PAYMENT_GATEWAY_SECRET_KEY_FOR_TEST
162
+ CSRF_PROTECT = False
163
+
164
+
165
+ SUPPORT_LANGUAGES = ['en','zh']
166
+
167
+ DEFAULT_COUNTRY_PHONE_PREFIX = '+60'
168
+ DEFAULT_COUNTRY_CODE = 'my'
169
+ DEFAULT_CURRENCY_CODE = 'MYR'
170
+ SECRET_KEY = os.environ['SECRET_KEY']
171
+ PAGINATION_SIZE = 10
172
+ VISIBLE_PAGE_COUNT = 10
173
+ SUPPORT_LANGUAGES = ['en','zh']
174
+
175
+ VOUCHER_DEFAULT_IMAGE = '%s/static/app/assets/img/voucher/voucher-sample-image.png' % IMAGE_PROD_BASE_URL
176
+ LUCKY_DRAW_TICKET_DEFAULT_IMAGE = '%s/static/app/assets/img/program/lucky_draw_ticket_default-min.png' % IMAGE_PROD_BASE_URL
177
+ REDEMPTION_CATALOGUE_DEFAULT_IMAGE = '%s/static/app/assets/img/program/redemption-catalogue-default-min.png' % IMAGE_PROD_BASE_URL
178
+ REFERRAL_DEFAULT_PROMOTE_IMAGE = '%s/static/app/assets/img/program/referral-default-promote.png' % IMAGE_PROD_BASE_URL
179
+
180
+
181
+ ROUNDING_TYPE_ROUND_UP = 'roundup'
182
+ ROUNDING_TYPE_ROUND_DOWN = 'rounddown'
183
+
184
+ DEFAULT_CURRENCY = {
185
+ 'code' : 'myr',
186
+ 'currency_display' : 'Malaysia Ringgit',
187
+ 'currency_label' : 'RM',
188
+ 'floating_point' : '2',
189
+ 'decimal_separator' : '.',
190
+ 'thousand_separator' : ',',
191
+ }
192
+
193
+
194
+
195
+ DINNING_ORDER_APP_URL = os.environ.get('DINNING_ORDER_APP_URL')
196
+
197
+
198
+
199
+ CHECK_ENTITLE_REWARD_THRU_TASKQUEUE = False
200
+
201
+ SHOW_DASHBOARD_ANALYTICS_DATA = os.environ.get('SHOW_DASHBOARD_ANALYTICS_DATA')
202
+
203
+ DOCS_URL = os.environ.get('DOCS_URL')
204
+
205
+ SERVICE_HEADER_AUTHENTICATED_PARAM = 'x-service-auth-token'
206
+ SERVICE_HEADER_AUTHENTICATED_TOKEN = os.environ.get('SERVICE_HEADER_AUTHENTICATED_TOKEN')
207
+
208
+ SECRET_HEADER_AUTHENTICATED_PARAM = 'x-secret-token'
209
+ SECRET_HEADER_AUTHENTICATED_TOKEN = os.environ.get('SECRET_HEADER_AUTHENTICATED_TOKEN')
210
+
211
+ DEFAULT_TIMEZONE = 'Asia/Kuala_Lumpur'
212
+
213
+ FIREBASE_SERVICE_ACCOUNT_KEY_PATH = os.environ.get('FIREBASE_SERVICE_ACCOUNT_KEY_PATH')
214
+
215
+ INTERNAL_MAX_FETCH_RECORD = 9999
216
+ MAX_FETCH_RECORD_FULL_TEXT_SEARCH = 1000
217
+ MAX_FETCH_RECORD_FULL_TEXT_SEARCH_PER_PAGE = 10
218
+ MAX_FETCH_RECORD = 99999999
219
+ MAX_FETCH_IMAGE_RECORD = 100
220
+ MAX_CHAR_RANDOM_UUID4 = 20
221
+ PAGINATION_SIZE = 10
222
+ VISIBLE_PAGE_COUNT = 10
223
+
224
+ DEFAULT_GMT_HOURS = 8
225
+
226
+ GENDER_MALE_CODE = 'm'
227
+ GENDER_FEMALE_CODE = 'f'
228
+ GENDER_UNKNOWN_CODE = 'u'
229
+
230
+ APPLICATION_ACCOUNT_PROVIDER = 'app'
231
+
232
+ MODEL_PROJECT_ID = os.environ['GCLOUD_PROJECT_ID']
233
+
234
+ DATASTORE_SERVICE_ACCOUNT_KEY_FILEPATH = os.environ['SERVICE_ACCOUNT_KEY']
235
+
236
+ ACCOUNT_LOCKED_IN_MINUTES = os.environ['ACCOUNT_LOCKED_IN_MINUTES']
237
+
238
+ DATASTORE_CREDENTIAL_PATH = os.path.abspath(os.path.dirname(config_path.__file__)) + '/' + DATASTORE_SERVICE_ACCOUNT_KEY_FILEPATH
239
+
240
+ MERCHANT_STAT_FIGURE_UPDATE_INTERVAL_IN_MINUTES = os.environ.get('MERCHANT_STAT_FIGURE_UPDATE_INTERVAL_IN_MINUTES') or 60
241
+
242
+ MESSAGE_CATEGORY_ANNOUNCEMENT = 'announcement'
243
+ MESSAGE_CATEGORY_ALERT = 'alert'
244
+ MESSAGE_CATEGORY_PROMOTION = 'promotion'
245
+ MESSAGE_CATEGORY_SURVEY = 'survey'
246
+ MESSAGE_CATEGORY_SYSTEM = 'system'
247
+ MESSAGE_CATEGORY_REWARD = 'reward'
248
+ MESSAGE_CATEGORY_REDEEM = 'redeem'
249
+
250
+ MESSAGE_CATEGORIES = (MESSAGE_CATEGORY_ANNOUNCEMENT, MESSAGE_CATEGORY_ALERT, MESSAGE_CATEGORY_PROMOTION, MESSAGE_CATEGORY_SURVEY, MESSAGE_CATEGORY_SYSTEM, MESSAGE_CATEGORY_REWARD, MESSAGE_CATEGORY_REDEEM)
251
+
252
+ MESSAGE_STATUS_NEW = 'n'
253
+ MESSAGE_STATUS_READ = 'r'
254
+
255
+ USER_STATUS_ANONYMOUS = 'anonymous'
256
+ USER_STATUS_REGISTERED = 'registered'
257
+ USER_STATUS_ENTER_BIODATA = 'enterBiodata'
258
+ USER_STATUS_COMPLETED = 'completedRegistration'
259
+
260
+ USER_STATUS_SET = (USER_STATUS_REGISTERED, USER_STATUS_ENTER_BIODATA, USER_STATUS_COMPLETED)
261
+
262
+
263
+ MESSAGE_STATUS_SET = (MESSAGE_STATUS_NEW, MESSAGE_STATUS_READ)
264
+
265
+ PREPAID_REDEEM_URL = os.environ['PREPAID_REDEEM_URL']
266
+
267
+
268
+ #-----------------------------------------------------------------
269
+ # Web Beacon settings
270
+ #-----------------------------------------------------------------
271
+ WEB_BEACON_TRACK_EMAIL_OPEN = 'eo'
272
+
273
+ def task_url(path):
274
+ return '{}{}'.format(SYSTEM_BASE_URL, path)
275
+
276
+ CHECK_CUSTOMER_ENTITLE_REWARD_TASK_URL = task_url('/rewarding/check-entitle-reward')
277
+ SEND_EMAIL_TASK_URL = task_url('/system/send-email')
278
+
279
+
280
+ CRYPTO_SECRET_KEY = os.environ.get('CRYPTO_SECRET_KEY')
281
+
282
+ DEFAULT_COUNTRY_CODE = 'my'
283
+ DEFAULT_GMT = 8
284
+
285
+
286
+ DEFAULT_DATETIME_FORMAT = '%d/%m/%Y %H:%M:%S'
287
+ DEFAULT_DATE_FORMAT = '%d/%m/%Y'
288
+ DEFAULT_TIME_FORMAT = '%H:%M:%S'
289
+
290
+
291
+ DEFAULT_ETAG_VALUE = '68964759a96a7c876b7e'
292
+
293
+ MODEL_CACHE_ENABLED = False
294
+
295
+ INTERNAL_MAX_FETCH_RECORD = 9999
296
+ MAX_FETCH_RECORD_FULL_TEXT_SEARCH = 1000
297
+ MAX_FETCH_RECORD_FULL_TEXT_SEARCH_PER_PAGE = 10
298
+ MAX_FETCH_RECORD = 99999999
299
+ MAX_FETCH_IMAGE_RECORD = 100
300
+ MAX_CHAR_RANDOM_UUID4 = 20
301
+ PAGINATION_SIZE = 10
302
+ VISIBLE_PAGE_COUNT = 10
303
+
304
+ GENDER_MALE_CODE = 'm'
305
+ GENDER_FEMALE_CODE = 'f'
306
+
307
+
308
+
309
+ APPLICATION_ACCOUNT_PROVIDER = 'app'
310
+
311
+ SUPPORT_LANGUAGES = ['en','zh']
312
+
313
+ #-----------------------------------------------------------------
314
+ # Web Beacon settings
315
+ #-----------------------------------------------------------------
316
+ WEB_BEACON_TRACK_EMAIL_OPEN = 'eo'
317
+
318
+ #-----------------------------------------------------------------
319
+ # Miliseconds settings
320
+ #-----------------------------------------------------------------
321
+ MILLISECONDS_ONE_MINUTES = 60
322
+ MILLISECONDS_FIVE_MINUTES = 300
323
+ MILLISECONDS_TEN_MINUTES = 600
324
+ MILLISECONDS_TWENTY_MINUTES = 1200
325
+ MILLISECONDS_THIRTY_MINUTES = 1800
326
+ MILLISECONDS_ONE_HOUR = 3600
327
+ MILLISECONDS_TWO_HOUR = 7200
328
+ MILLISECONDS_FOUR_HOUR = 14400
329
+ MILLISECONDS_EIGHT_HOUR = 28800
330
+ MILLISECONDS_TEN_HOUR = 36000
331
+ MILLISECONDS_TWELVE_HOUR = 43200
332
+ MILLISECONDS_TWENTY_HOUR = 72000
333
+ MILLISECONDS_ONE_WEEK = 604800
334
+ MILLISECONDS_ONE_DAY = 86400
335
+ MILLISECONDS_HALF_DAY = 43200
336
+ MILLISECONDS_ONE_HOUR = 3600
337
+ MILLISECONDS_TWO_HOUR = 7200
338
+ MILLISECONDS_HALF_AN_HOUR = 1800
339
+ MILLISECONDS_QUATER_AN_HOUR = 900
340
+
341
+ #-----------------------------------------------------------------
342
+ # Cache settings
343
+ #-----------------------------------------------------------------
344
+ AGE_TIME_FIVE_MINUTE = 60*5
345
+ AGE_TIME_QUATER_HOUR = AGE_TIME_FIVE_MINUTE * 3
346
+ AGE_TIME_HALF_HOUR = AGE_TIME_QUATER_HOUR * 2
347
+ AGE_TIME_ONE_HOUR = AGE_TIME_HALF_HOUR * 2
348
+ AGE_TIME_TWO_HOUR = AGE_TIME_ONE_HOUR * 2
349
+ AGE_TIME_SIX_HOUR = AGE_TIME_ONE_HOUR * 6
350
+ AGE_TIME_ONE_DAY = AGE_TIME_ONE_HOUR * 24
351
+
352
+
353
+
354
+
@@ -0,0 +1,13 @@
1
+ Metadata-Version: 2.1
2
+ Name: trex-conf
3
+ Version: 0.0.1
4
+ Summary: TRex Configuration package
5
+ Home-page: https://bitbucket.org/lokjac/trex-conf
6
+ Author: Jack Lok
7
+ Author-email: sglok77@gmail.com
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Description-Content-Type: text/markdown
12
+
13
+ This is configuration project
@@ -0,0 +1,9 @@
1
+ README.md
2
+ setup.cfg
3
+ setup.py
4
+ trex-conf/__init__.py
5
+ trex-conf/conf.py
6
+ trex_conf.egg-info/PKG-INFO
7
+ trex_conf.egg-info/SOURCES.txt
8
+ trex_conf.egg-info/dependency_links.txt
9
+ trex_conf.egg-info/top_level.txt
@@ -0,0 +1 @@
1
+ trex-conf