medicafe 0.251027.0__tar.gz → 0.251027.2__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 medicafe might be problematic. Click here for more details.

Files changed (84) hide show
  1. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/MediBot.bat +36 -6
  2. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/__init__.py +1 -1
  3. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediCafe/MediLink_ConfigLoader.py +33 -7
  4. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediCafe/__init__.py +1 -1
  5. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediCafe/__main__.py +6 -4
  6. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediCafe/error_reporter.py +95 -4
  7. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/__init__.py +1 -1
  8. {medicafe-0.251027.0/medicafe.egg-info → medicafe-0.251027.2}/PKG-INFO +1 -1
  9. {medicafe-0.251027.0 → medicafe-0.251027.2/medicafe.egg-info}/PKG-INFO +1 -1
  10. {medicafe-0.251027.0 → medicafe-0.251027.2}/setup.py +1 -1
  11. {medicafe-0.251027.0 → medicafe-0.251027.2}/LICENSE +0 -0
  12. {medicafe-0.251027.0 → medicafe-0.251027.2}/MANIFEST.in +0 -0
  13. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/MediBot.py +0 -0
  14. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/MediBot_Charges.py +0 -0
  15. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/MediBot_Crosswalk_Library.py +0 -0
  16. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/MediBot_Crosswalk_Utils.py +0 -0
  17. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/MediBot_Notepad_Utils.py +0 -0
  18. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/MediBot_Post.py +0 -0
  19. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/MediBot_Preprocessor.py +0 -0
  20. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/MediBot_Preprocessor_lib.py +0 -0
  21. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/MediBot_UI.py +0 -0
  22. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/MediBot_dataformat_library.py +0 -0
  23. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/MediBot_debug.bat +0 -0
  24. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/MediBot_docx_decoder.py +0 -0
  25. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/MediBot_smart_import.py +0 -0
  26. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/clear_cache.bat +0 -0
  27. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/crash_diagnostic.bat +0 -0
  28. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/f_drive_diagnostic.bat +0 -0
  29. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/full_debug_suite.bat +0 -0
  30. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/get_medicafe_version.py +0 -0
  31. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/process_csvs.bat +0 -0
  32. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/update_json.py +0 -0
  33. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediBot/update_medicafe.py +0 -0
  34. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediCafe/api_core.py +0 -0
  35. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediCafe/api_factory.py +0 -0
  36. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediCafe/api_utils.py +0 -0
  37. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediCafe/core_utils.py +0 -0
  38. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediCafe/deductible_utils.py +0 -0
  39. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediCafe/graphql_utils.py +0 -0
  40. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediCafe/logging_config.py +0 -0
  41. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediCafe/logging_demo.py +0 -0
  42. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediCafe/migration_helpers.py +0 -0
  43. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediCafe/smart_import.py +0 -0
  44. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediCafe/submission_index.py +0 -0
  45. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/InsuranceTypeService.py +0 -0
  46. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_837p_cob_library.py +0 -0
  47. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_837p_encoder.py +0 -0
  48. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_837p_encoder_library.py +0 -0
  49. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_837p_utilities.py +0 -0
  50. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_API_Generator.py +0 -0
  51. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_Azure.py +0 -0
  52. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_Charges.py +0 -0
  53. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_ClaimStatus.py +0 -0
  54. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_DataMgmt.py +0 -0
  55. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_Decoder.py +0 -0
  56. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_Deductible.py +0 -0
  57. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_Deductible_Validator.py +0 -0
  58. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_Display_Utils.py +0 -0
  59. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_Down.py +0 -0
  60. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_Gmail.py +0 -0
  61. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_Mailer.py +0 -0
  62. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_Parser.py +0 -0
  63. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_PatientProcessor.py +0 -0
  64. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_Scan.py +0 -0
  65. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_Scheduler.py +0 -0
  66. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_UI.py +0 -0
  67. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_Up.py +0 -0
  68. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_insurance_utils.py +0 -0
  69. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_main.py +0 -0
  70. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/MediLink_smart_import.py +0 -0
  71. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/Soumit_api.py +0 -0
  72. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/gmail_http_utils.py +0 -0
  73. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/gmail_oauth_utils.py +0 -0
  74. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/openssl.cnf +0 -0
  75. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/test.py +0 -0
  76. {medicafe-0.251027.0 → medicafe-0.251027.2}/MediLink/webapp.html +0 -0
  77. {medicafe-0.251027.0 → medicafe-0.251027.2}/README.md +0 -0
  78. {medicafe-0.251027.0 → medicafe-0.251027.2}/medicafe.egg-info/SOURCES.txt +0 -0
  79. {medicafe-0.251027.0 → medicafe-0.251027.2}/medicafe.egg-info/dependency_links.txt +0 -0
  80. {medicafe-0.251027.0 → medicafe-0.251027.2}/medicafe.egg-info/entry_points.txt +0 -0
  81. {medicafe-0.251027.0 → medicafe-0.251027.2}/medicafe.egg-info/not-zip-safe +0 -0
  82. {medicafe-0.251027.0 → medicafe-0.251027.2}/medicafe.egg-info/requires.txt +0 -0
  83. {medicafe-0.251027.0 → medicafe-0.251027.2}/medicafe.egg-info/top_level.txt +0 -0
  84. {medicafe-0.251027.0 → medicafe-0.251027.2}/setup.cfg +0 -0
@@ -729,18 +729,20 @@ echo 1. Open Latest Log File
729
729
  echo 2. Open WinSCP Logs
730
730
  echo 3. Clear Python Cache
731
731
  echo 4. Toggle Performance Logging ^(session^)
732
- echo 5. Forced MediCafe version rollback
733
- echo 6. Process CSV Files
734
- echo 7. Back to Main Menu
732
+ echo 5. Send TEST error report (email)
733
+ echo 6. Forced MediCafe version rollback
734
+ echo 7. Process CSV Files
735
+ echo 8. Back to Main Menu
735
736
  echo.
736
737
  set /p tchoice=Enter your choice:
737
738
  if "%tchoice%"=="1" goto open_latest_log
738
739
  if "%tchoice%"=="2" goto open_winscp_logs
739
740
  if "%tchoice%"=="3" goto clear_cache_menu
740
741
  if "%tchoice%"=="4" goto toggle_perf_logging
741
- if "%tchoice%"=="5" goto forced_version_rollback
742
- if "%tchoice%"=="6" goto process_csvs
743
- if "%tchoice%"=="7" goto main_menu
742
+ if "%tchoice%"=="5" goto send_test_error_report
743
+ if "%tchoice%"=="6" goto forced_version_rollback
744
+ if "%tchoice%"=="7" goto process_csvs
745
+ if "%tchoice%"=="8" goto main_menu
744
746
  echo Invalid choice. Please try again.
745
747
  pause
746
748
  goto troubleshooting_menu
@@ -788,6 +790,34 @@ if "%_winscp_found%"=="0" (
788
790
  pause >nul
789
791
  goto troubleshooting_menu
790
792
 
793
+ :::: Send TEST error report via MediCafe CLI
794
+ :send_test_error_report
795
+ cls
796
+ echo ========================================
797
+ echo Send TEST Error Report (no real traceback)
798
+ echo ========================================
799
+ echo.
800
+ if "!internet_available!"=="0" (
801
+ echo [WARNING] No internet connection available.
802
+ echo This feature requires internet to email the test report.
803
+ pause >nul
804
+ goto troubleshooting_menu
805
+ )
806
+ echo Building and sending test bundle via MediCafe...
807
+ cd /d "%~dp0.."
808
+ python -m MediCafe send_test_error_report
809
+ if errorlevel 1 (
810
+ echo.
811
+ echo [ERROR] Test error report failed to send.
812
+ echo The bundle, if created, remains in reports_queue for manual retry.
813
+ pause >nul
814
+ goto troubleshooting_menu
815
+ )
816
+ echo.
817
+ echo [OK] Test error report sent.
818
+ pause >nul
819
+ goto troubleshooting_menu
820
+
791
821
  ::: End Script
792
822
  :end_script
793
823
  echo Exiting MediBot
@@ -19,7 +19,7 @@ Smart Import Integration:
19
19
  medibot_main = get_components('medibot_main')
20
20
  """
21
21
 
22
- __version__ = "0.251027.0"
22
+ __version__ = "0.251027.2"
23
23
  __author__ = "Daniel Vidaud"
24
24
  __email__ = "daniel@personalizedtransformation.com"
25
25
 
@@ -43,8 +43,7 @@ def get_default_config():
43
43
  'enabled': False,
44
44
  'to': '',
45
45
  'subject_prefix': 'MediCafe Error Report',
46
- 'max_bundle_bytes': 1572864,
47
- 'transport': 'gmail_api'
46
+ 'max_bundle_bytes': 1572864
48
47
  }
49
48
  },
50
49
  # STRATEGIC NOTE (COB Configuration): COB library is fully implemented and ready
@@ -158,16 +157,43 @@ def load_configuration(config_path=os.path.join(os.path.dirname(__file__), '..',
158
157
  print("Using default configurations due to missing files")
159
158
 
160
159
  except ValueError as e:
160
+ # LOUD NOTIFICATION for malformed JSON files
161
+ print("\n" + "="*80)
162
+ print("*** CRITICAL ERROR: MALFORMED JSON CONFIGURATION FILES ***")
163
+ print("="*80)
161
164
  if isinstance(e, UnicodeDecodeError):
162
- print("Error decoding file: {}".format(e))
165
+ print("ERROR: Cannot decode configuration file - invalid character encoding")
166
+ print("DETAILS: {}".format(e))
163
167
  else:
164
- print("Error parsing file: {}".format(e))
165
- print("Falling back to default configurations...")
168
+ print("ERROR: Configuration files contain invalid JSON syntax")
169
+ print("DETAILS: {}".format(e))
170
+ print("\nAFFECTED FILES:")
171
+ print("- Config file: {}".format(config_path))
172
+ print("- Crosswalk file: {}".format(crosswalk_path))
173
+ print("\nACTION REQUIRED:")
174
+ print("1. Check JSON syntax in both files")
175
+ print("2. Validate JSON using an online validator")
176
+ print("3. Fix syntax errors and restart the application")
177
+ print("\nFALLBACK: Using default configurations (may cause issues)")
178
+ print("="*80 + "\n")
179
+
166
180
  config = get_default_config()
167
181
  crosswalk = get_default_crosswalk()
168
182
  except KeyError as e:
169
- print("Critical configuration is missing: {}".format(e))
170
- print("Falling back to default configurations...")
183
+ # LOUD NOTIFICATION for missing required configuration keys
184
+ print("\n" + "="*80)
185
+ print("*** CRITICAL ERROR: MISSING REQUIRED CONFIGURATION ***")
186
+ print("="*80)
187
+ print("ERROR: Required configuration key is missing")
188
+ print("DETAILS: {}".format(e))
189
+ print("\nAFFECTED FILE: {}".format(config_path))
190
+ print("\nACTION REQUIRED:")
191
+ print("1. Ensure 'MediLink_Config' section exists in config.json")
192
+ print("2. Check that all required configuration keys are present")
193
+ print("3. Verify JSON structure matches expected format")
194
+ print("\nFALLBACK: Using default configurations (may cause issues)")
195
+ print("="*80 + "\n")
196
+
171
197
  config = get_default_config()
172
198
  crosswalk = get_default_crosswalk()
173
199
  except Exception as e:
@@ -27,7 +27,7 @@ Smart Import System:
27
27
  api_suite = get_api_access()
28
28
  """
29
29
 
30
- __version__ = "0.251027.0"
30
+ __version__ = "0.251027.2"
31
31
  __author__ = "Daniel Vidaud"
32
32
  __email__ = "daniel@personalizedtransformation.com"
33
33
 
@@ -15,6 +15,7 @@ Commands:
15
15
  claims_status - Run United Claims Status checker
16
16
  deductible - Run United Deductible checker
17
17
  download_emails - Run email download functionality
18
+ send_test_error_report - Create and email a TEST support bundle
18
19
  version - Show MediCafe version information
19
20
 
20
21
  The entry point preserves user choices and navigational flow from the
@@ -252,9 +253,6 @@ def run_download_emails():
252
253
  except ImportError as e:
253
254
  print("Error: Unable to import MediLink_Gmail: {}".format(e))
254
255
  return 1
255
- except Exception as e:
256
- print("Error running email download: {}".format(e))
257
- return 1
258
256
 
259
257
  def show_version():
260
258
  """Show MediCafe version information"""
@@ -280,7 +278,7 @@ def main():
280
278
 
281
279
  parser.add_argument(
282
280
  'command',
283
- choices=['medibot', 'medilink', 'claims_status', 'deductible', 'download_emails', 'version'],
281
+ choices=['medibot', 'medilink', 'claims_status', 'deductible', 'download_emails', 'send_test_error_report', 'version'],
284
282
  help='Command to execute'
285
283
  )
286
284
 
@@ -309,6 +307,10 @@ def main():
309
307
  return run_deductible()
310
308
  elif args.command == 'download_emails':
311
309
  return run_download_emails()
310
+ elif args.command == 'send_test_error_report':
311
+ # Import lazily and call directly to avoid middlemen
312
+ from MediCafe.error_reporter import email_test_error_report_flow
313
+ return email_test_error_report_flow()
312
314
  elif args.command == 'version':
313
315
  return show_version()
314
316
  else:
@@ -1,5 +1,4 @@
1
1
  import base64
2
- import hashlib
3
2
  import json
4
3
  import os
5
4
  import platform
@@ -8,6 +7,7 @@ import time
8
7
  import zipfile
9
8
 
10
9
  import requests
10
+ import traceback
11
11
 
12
12
  from email.mime.application import MIMEApplication
13
13
  from email.mime.multipart import MIMEMultipart
@@ -127,7 +127,7 @@ def collect_support_bundle(include_traceback=True, max_log_lines=500):
127
127
  except Exception:
128
128
  traceback_txt = ''
129
129
 
130
- meta = {
130
+ meta = {
131
131
  'app_version': _safe_ascii(_get_version()),
132
132
  'python_version': _safe_ascii(sys.version.split(' ')[0]),
133
133
  'platform': _safe_ascii(platform.platform()),
@@ -167,6 +167,79 @@ meta = {
167
167
  return zip_path
168
168
 
169
169
 
170
+ def collect_test_support_bundle(max_log_lines=500):
171
+ """
172
+ Build a support bundle using the latest available logs and a placeholder
173
+ (fake) traceback to exercise the reporting pipeline without exposing
174
+ real exception data.
175
+
176
+ Returns absolute path to the created ZIP, or None on failure.
177
+ """
178
+ try:
179
+ config, _ = load_configuration()
180
+ medi = config.get('MediLink_Config', {})
181
+ local_storage_path = medi.get('local_storage_path', '.')
182
+ queue_dir = os.path.join(local_storage_path, 'reports_queue')
183
+ _ensure_dir(queue_dir)
184
+
185
+ stamp = time.strftime('%Y%m%d_%H%M%S')
186
+ bundle_name = 'support_report_TEST_{}.zip'.format(stamp)
187
+ zip_path = os.path.join(queue_dir, bundle_name)
188
+
189
+ # Prepare components
190
+ latest_log = _get_latest_log_path(local_storage_path)
191
+ log_tail = _tail_file(latest_log, max_log_lines) if latest_log else ''
192
+ log_tail = _redact(log_tail)
193
+
194
+ # Build a placeholder traceback - ASCII-only, no real data
195
+ fake_tb = (
196
+ "Traceback (most recent call last):\n"
197
+ " File \"MediCafe/test_runner.py\", line 42, in <module>\n"
198
+ " File \"MediCafe/error_reporter.py\", line 123, in simulate_error\n"
199
+ "Exception: This is a TEST placeholder traceback for pipeline verification only.\n"
200
+ "-- No real patient or PHI data is included. --\n"
201
+ )
202
+ fake_tb = _redact(fake_tb)
203
+
204
+ meta = {
205
+ 'app_version': _safe_ascii(_get_version()),
206
+ 'python_version': _safe_ascii(sys.version.split(' ')[0]),
207
+ 'platform': _safe_ascii(platform.platform()),
208
+ 'timestamp': time.strftime('%Y-%m-%dT%H:%M:%SZ', time.gmtime()),
209
+ 'error_summary': 'TEST: Placeholder traceback',
210
+ 'traceback_present': True,
211
+ 'config_flags': {
212
+ 'console_logging': bool(medi.get('logging', {}).get('console_output', False)),
213
+ 'test_mode': True
214
+ }
215
+ }
216
+
217
+ with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as z:
218
+ z.writestr('meta.json', json.dumps(meta, ensure_ascii=True, indent=2))
219
+ if latest_log and log_tail:
220
+ z.writestr('log_tail.txt', log_tail)
221
+ # Always include the fake traceback for this test bundle
222
+ z.writestr('traceback.txt', fake_tb)
223
+ # Include WinSCP tail if present
224
+ upload_log = os.path.join(local_storage_path, 'winscp_upload.log')
225
+ download_log = os.path.join(local_storage_path, 'winscp_download.log')
226
+ winscp_logs = [(p, os.path.getmtime(p)) for p in [upload_log, download_log] if os.path.exists(p)]
227
+ if winscp_logs:
228
+ latest_winscp = max(winscp_logs, key=lambda x: x[1])[0]
229
+ winscp_tail = _tail_file(latest_winscp, max_log_lines) if latest_winscp else ''
230
+ winscp_tail = _redact(winscp_tail)
231
+ if winscp_tail:
232
+ z.writestr('winscp_log_tail.txt', winscp_tail)
233
+
234
+ return zip_path
235
+ except Exception as e:
236
+ try:
237
+ mc_log('Error creating TEST support bundle: {}'.format(e), level='ERROR')
238
+ except Exception:
239
+ pass
240
+ return None
241
+
242
+
170
243
  def _first_line(text):
171
244
  try:
172
245
  for line in (text or '').splitlines():
@@ -192,12 +265,11 @@ def capture_unhandled_traceback(exc_type, exc_value, exc_traceback):
192
265
  medi = config.get('MediLink_Config', {})
193
266
  local_storage_path = medi.get('local_storage_path', '.')
194
267
  trace_path = os.path.join(local_storage_path, 'traceback.txt')
195
- import traceback
196
268
  text = ''.join(traceback.format_exception(exc_type, exc_value, exc_traceback))
197
269
  text = _redact(text)
198
270
  with open(trace_path, 'w') as f:
199
271
  f.write(text)
200
- print("An error occurred. A traceback was saved to {}".format(trace_path))
272
+ print("An error occurred. A traceback was saved to {}".format(trace_path))
201
273
  except Exception:
202
274
  try:
203
275
  mc_log('Failed to capture traceback to file', level='WARNING')
@@ -356,6 +428,25 @@ def email_error_report_flow():
356
428
  mc_log("[ERROR] Exception during email report flow: {0}".format(e), level="ERROR")
357
429
  return 1
358
430
 
431
+ def email_test_error_report_flow():
432
+ """
433
+ Create and send a TEST error report bundle, containing a placeholder
434
+ traceback and latest log tails. Intended for troubleshooting the
435
+ submission pipeline only.
436
+ """
437
+ try:
438
+ zip_path = collect_test_support_bundle()
439
+ if not zip_path:
440
+ return 1
441
+ sent = submit_support_bundle_email(zip_path=zip_path, include_traceback=False)
442
+ return 0 if sent else 1
443
+ except Exception as e:
444
+ try:
445
+ mc_log("[ERROR] Exception during test email report flow: {0}".format(e), level="ERROR")
446
+ except Exception:
447
+ pass
448
+ return 1
449
+
359
450
  if __name__ == "__main__":
360
451
  raise SystemExit(email_error_report_flow())
361
452
 
@@ -22,7 +22,7 @@ Smart Import Integration:
22
22
  datamgmt = get_components('medilink_datamgmt')
23
23
  """
24
24
 
25
- __version__ = "0.251027.0"
25
+ __version__ = "0.251027.2"
26
26
  __author__ = "Daniel Vidaud"
27
27
  __email__ = "daniel@personalizedtransformation.com"
28
28
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: medicafe
3
- Version: 0.251027.0
3
+ Version: 0.251027.2
4
4
  Summary: MediCafe
5
5
  Home-page: https://github.com/katanada2/MediCafe
6
6
  Author: Daniel Vidaud
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: medicafe
3
- Version: 0.251027.0
3
+ Version: 0.251027.2
4
4
  Summary: MediCafe
5
5
  Home-page: https://github.com/katanada2/MediCafe
6
6
  Author: Daniel Vidaud
@@ -54,7 +54,7 @@ if long_description_text is None:
54
54
 
55
55
  setup(
56
56
  name='medicafe',
57
- version="0.251027.0",
57
+ version="0.251027.2",
58
58
  description='MediCafe',
59
59
  long_description=long_description_text,
60
60
  long_description_content_type='text/markdown',
File without changes
File without changes
File without changes
File without changes