medicafe 0.250805.0__tar.gz → 0.250806.0__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 (74) hide show
  1. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediBot/update_medicafe.py +63 -32
  2. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediCafe/__main__.py +109 -17
  3. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_Gmail.py +30 -8
  4. {medicafe-0.250805.0 → medicafe-0.250806.0}/PKG-INFO +1 -1
  5. {medicafe-0.250805.0 → medicafe-0.250806.0}/medicafe.egg-info/PKG-INFO +1 -1
  6. {medicafe-0.250805.0 → medicafe-0.250806.0}/setup.py +1 -1
  7. {medicafe-0.250805.0 → medicafe-0.250806.0}/LICENSE +0 -0
  8. {medicafe-0.250805.0 → medicafe-0.250806.0}/MANIFEST.in +0 -0
  9. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediBot/MediBot.bat +0 -0
  10. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediBot/MediBot.py +0 -0
  11. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediBot/MediBot_Charges.py +0 -0
  12. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediBot/MediBot_Crosswalk_Library.py +0 -0
  13. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediBot/MediBot_Crosswalk_Utils.py +0 -0
  14. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediBot/MediBot_Post.py +0 -0
  15. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediBot/MediBot_Preprocessor.py +0 -0
  16. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediBot/MediBot_Preprocessor_lib.py +0 -0
  17. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediBot/MediBot_UI.py +0 -0
  18. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediBot/MediBot_dataformat_library.py +0 -0
  19. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediBot/MediBot_docx_decoder.py +0 -0
  20. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediBot/MediBot_smart_import.py +0 -0
  21. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediBot/__init__.py +0 -0
  22. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediBot/get_medicafe_version.py +0 -0
  23. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediBot/update_json.py +0 -0
  24. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediCafe/MediLink_ConfigLoader.py +0 -0
  25. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediCafe/__init__.py +0 -0
  26. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediCafe/api_core.py +0 -0
  27. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediCafe/api_core_backup.py +0 -0
  28. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediCafe/api_factory.py +0 -0
  29. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediCafe/api_utils.py +0 -0
  30. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediCafe/core_utils.py +0 -0
  31. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediCafe/graphql_utils.py +0 -0
  32. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediCafe/logging_config.py +0 -0
  33. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediCafe/logging_demo.py +0 -0
  34. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediCafe/migration_helpers.py +0 -0
  35. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediCafe/smart_import.py +0 -0
  36. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_837p_cob_library.py +0 -0
  37. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_837p_encoder.py +0 -0
  38. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_837p_encoder_library.py +0 -0
  39. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_837p_utilities.py +0 -0
  40. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_API_Generator.py +0 -0
  41. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_Azure.py +0 -0
  42. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_ClaimStatus.py +0 -0
  43. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_DataMgmt.py +0 -0
  44. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_Decoder.py +0 -0
  45. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_Deductible.py +0 -0
  46. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_Deductible_Validator.py +0 -0
  47. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_Display_Utils.py +0 -0
  48. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_Down.py +0 -0
  49. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_Mailer.py +0 -0
  50. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_Parser.py +0 -0
  51. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_PatientProcessor.py +0 -0
  52. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_Scan.py +0 -0
  53. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_Scheduler.py +0 -0
  54. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_UI.py +0 -0
  55. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_Up.py +0 -0
  56. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_insurance_utils.py +0 -0
  57. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_main.py +0 -0
  58. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/MediLink_smart_import.py +0 -0
  59. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/Soumit_api.py +0 -0
  60. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/__init__.py +0 -0
  61. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/insurance_type_integration_test.py +0 -0
  62. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/openssl.cnf +0 -0
  63. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/test.py +0 -0
  64. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/test_cob_library.py +0 -0
  65. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/test_timing.py +0 -0
  66. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/test_validation.py +0 -0
  67. {medicafe-0.250805.0 → medicafe-0.250806.0}/MediLink/webapp.html +0 -0
  68. {medicafe-0.250805.0 → medicafe-0.250806.0}/medicafe.egg-info/SOURCES.txt +0 -0
  69. {medicafe-0.250805.0 → medicafe-0.250806.0}/medicafe.egg-info/dependency_links.txt +0 -0
  70. {medicafe-0.250805.0 → medicafe-0.250806.0}/medicafe.egg-info/entry_points.txt +0 -0
  71. {medicafe-0.250805.0 → medicafe-0.250806.0}/medicafe.egg-info/not-zip-safe +0 -0
  72. {medicafe-0.250805.0 → medicafe-0.250806.0}/medicafe.egg-info/requires.txt +0 -0
  73. {medicafe-0.250805.0 → medicafe-0.250806.0}/medicafe.egg-info/top_level.txt +0 -0
  74. {medicafe-0.250805.0 → medicafe-0.250806.0}/setup.cfg +0 -0
@@ -15,6 +15,40 @@ except ImportError:
15
15
  requests = None
16
16
  print("Warning: requests module not available. Some functionality may be limited.")
17
17
 
18
+ def print_status(message, status_type="INFO"):
19
+ """Print formatted status messages with ASCII-only visual indicators."""
20
+ if status_type == "SUCCESS":
21
+ print("\n" + "="*60)
22
+ print("[SUCCESS] {}".format(message))
23
+ print("="*60)
24
+ elif status_type == "ERROR":
25
+ print("\n" + "="*60)
26
+ print("[ERROR] {}".format(message))
27
+ print("="*60)
28
+ elif status_type == "WARNING":
29
+ print("\n" + "-"*60)
30
+ print("[WARNING] {}".format(message))
31
+ print("-"*60)
32
+ elif status_type == "INFO":
33
+ print("\n" + "-"*60)
34
+ print("[INFO] {}".format(message))
35
+ print("-"*60)
36
+ else:
37
+ print(message)
38
+
39
+ def print_final_result(success, message):
40
+ """Print final result with clear visual indication."""
41
+ if success:
42
+ print_status("UPDATE COMPLETED SUCCESSFULLY", "SUCCESS")
43
+ print("Final Status: {}".format(message))
44
+ else:
45
+ print_status("UPDATE FAILED", "ERROR")
46
+ print("Final Status: {}".format(message))
47
+
48
+ print("\nExiting in 5 seconds...")
49
+ time.sleep(5)
50
+ sys.exit(0 if success else 1)
51
+
18
52
  def get_installed_version(package):
19
53
  try:
20
54
  process = subprocess.Popen(
@@ -88,9 +122,8 @@ def upgrade_package(package, retries=3, delay=2): # Updated retries to 3
88
122
  Attempts to upgrade the package multiple times with delays in between.
89
123
  """
90
124
  if not check_internet_connection():
91
- print("Error: No internet connection detected. Please check your internet connection and try again.")
92
- time.sleep(3) # Pause for 3 seconds before exiting
93
- sys.exit(1)
125
+ print_status("No internet connection detected. Please check your internet connection and try again.", "ERROR")
126
+ print_final_result(False, "No internet connection available")
94
127
 
95
128
  for attempt in range(1, retries + 1):
96
129
  print("Attempt {} to upgrade {}...".format(attempt, package))
@@ -110,24 +143,24 @@ def upgrade_package(package, retries=3, delay=2): # Updated retries to 3
110
143
  new_version = get_installed_version(package) # Get new version after upgrade
111
144
  if compare_versions(new_version, get_latest_version(package)) >= 0: # Compare versions
112
145
  if attempt == 1:
113
- print("Upgrade succeeded!")
146
+ print_status("Upgrade succeeded!", "SUCCESS")
114
147
  else:
115
- print("Attempt {}: Upgrade succeeded!".format(attempt))
148
+ print_status("Attempt {}: Upgrade succeeded!".format(attempt), "SUCCESS")
116
149
  time.sleep(delay)
117
150
  return True
118
151
  else:
119
- print("Upgrade failed. Current version remains: {}".format(new_version))
152
+ print_status("Upgrade failed. Current version remains: {}".format(new_version), "WARNING")
120
153
  if attempt < retries:
121
154
  print("Retrying in {} seconds...".format(delay))
122
155
  time.sleep(delay)
123
156
  else:
124
157
  print(stderr.decode().strip())
125
- print("Attempt {}: Upgrade failed.".format(attempt))
158
+ print_status("Attempt {}: Upgrade failed.".format(attempt), "WARNING")
126
159
  if attempt < retries:
127
160
  print("Retrying in {} seconds...".format(delay))
128
161
  time.sleep(delay)
129
162
 
130
- print("Error: All upgrade attempts failed.")
163
+ print_status("All upgrade attempts failed.", "ERROR")
131
164
  return False
132
165
 
133
166
  def ensure_dependencies():
@@ -149,7 +182,7 @@ def ensure_dependencies():
149
182
  is_windows_py34 = sys.version_info[:2] == (3, 4) and platform.system() == 'Windows'
150
183
 
151
184
  if is_windows_py34:
152
- print("Detected Windows with Python 3.4")
185
+ print_status("Detected Windows with Python 3.4", "INFO")
153
186
  print("Please ensure the following packages are installed manually:")
154
187
  for pkg in problematic_packages:
155
188
  package_name, version = pkg.split('==')
@@ -187,7 +220,7 @@ def ensure_dependencies():
187
220
  print("Required version of {}: {}".format(package_name, version))
188
221
  time.sleep(2) # Pause for 2 seconds to allow user to read the output
189
222
  if not upgrade_package(package_name): # Attempt to upgrade/downgrade to the required version
190
- print("Warning: Failed to upgrade/downgrade {} to version {}.".format(package_name, version))
223
+ print_status("Failed to upgrade/downgrade {} to version {}.".format(package_name, version), "WARNING")
191
224
  time.sleep(2) # Pause for 2 seconds after failure message
192
225
  elif version and installed_version == version: # Check if installed version matches required version
193
226
  print("All versions match for {}. No changes needed.".format(package_name))
@@ -199,13 +232,13 @@ def ensure_dependencies():
199
232
  print("Latest version of {}: {}".format(package_name, latest_version))
200
233
  time.sleep(2) # Pause for 2 seconds to allow user to read the output
201
234
  if not upgrade_package(package_name):
202
- print("Warning: Failed to upgrade {}.".format(package_name))
235
+ print_status("Failed to upgrade {}.".format(package_name), "WARNING")
203
236
  time.sleep(2) # Pause for 2 seconds after failure message
204
237
  except pkg_resources.DistributionNotFound:
205
238
  print("Package {} is not installed. Attempting to install...".format(package_name))
206
239
  time.sleep(2) # Pause for 2 seconds before attempting installation
207
240
  if not upgrade_package(package_name):
208
- print("Warning: Failed to install {}.".format(package_name))
241
+ print_status("Failed to install {}.".format(package_name), "WARNING")
209
242
  time.sleep(2) # Pause for 2 seconds after failure message
210
243
 
211
244
  def check_for_updates_only():
@@ -234,56 +267,54 @@ def check_for_updates_only():
234
267
  print("UP_TO_DATE")
235
268
 
236
269
  def main():
270
+ print_status("MediCafe Update Utility", "INFO")
271
+ print("Starting update process...")
272
+
237
273
  # Ensure internet connection before proceeding
238
274
  if not check_internet_connection():
239
- print("Error: No internet connection. Please check your connection and try again.")
240
- time.sleep(3) # Pause for 3 seconds before exiting
241
- sys.exit(1)
275
+ print_status("No internet connection. Please check your connection and try again.", "ERROR")
276
+ print_final_result(False, "No internet connection available")
242
277
 
243
278
  # Ensure all dependencies are met before proceeding
244
279
  response = input("Do you want to check dependencies? (yes/no, default/enter is no): ").strip().lower()
245
280
  if response in ['yes', 'y']:
246
281
  ensure_dependencies()
247
282
  else:
248
- print("Skipping dependency check.")
283
+ print_status("Skipping dependency check.", "INFO")
249
284
  time.sleep(3) # Pause for 3 seconds before proceeding
250
285
 
251
286
  package = "medicafe"
252
287
 
253
288
  current_version = get_installed_version(package)
254
289
  if not current_version:
255
- print("{} is not installed.".format(package))
256
- time.sleep(3) # Pause for 3 seconds before exiting
257
- sys.exit(1)
290
+ print_status("{} is not installed.".format(package), "ERROR")
291
+ print_final_result(False, "Package not installed")
258
292
 
259
293
  latest_version = get_latest_version(package)
260
294
  if not latest_version:
261
- print("Could not retrieve the latest version information.")
262
- time.sleep(3) # Pause for 3 seconds before exiting
263
- sys.exit(1)
295
+ print_status("Could not retrieve the latest version information.", "ERROR")
296
+ print_final_result(False, "Unable to fetch latest version")
264
297
 
265
298
  print("Current version of {}: {}".format(package, current_version))
266
299
  print("Latest version of {}: {}".format(package, latest_version))
267
300
 
268
301
  if compare_versions(latest_version, current_version) > 0:
269
- print("A newer version is available. Proceeding with upgrade.")
302
+ print_status("A newer version is available. Proceeding with upgrade.", "INFO")
270
303
  if upgrade_package(package):
271
304
  # Verify upgrade
272
305
  time.sleep(3)
273
306
  new_version = get_installed_version(package)
274
307
  if compare_versions(new_version, latest_version) >= 0:
275
- print("Upgrade successful. New version: {}".format(new_version))
308
+ print_status("Upgrade successful. New version: {}".format(new_version), "SUCCESS")
309
+ print_final_result(True, "Successfully upgraded to version {}".format(new_version))
276
310
  else:
277
- print("Upgrade failed. Current version remains: {}".format(new_version))
278
- time.sleep(3) # Pause for 3 seconds before exiting
279
- sys.exit(1)
311
+ print_status("Upgrade failed. Current version remains: {}".format(new_version), "ERROR")
312
+ print_final_result(False, "Upgrade verification failed")
280
313
  else:
281
- time.sleep(3) # Pause for 3 seconds before exiting
282
- sys.exit(1)
314
+ print_final_result(False, "Upgrade process failed")
283
315
  else:
284
- print("You already have the latest version installed.")
285
- time.sleep(3) # Pause for 3 seconds before exiting
286
- sys.exit(1)
316
+ print_status("You already have the latest version installed.", "SUCCESS")
317
+ print_final_result(True, "Already running latest version")
287
318
 
288
319
  if __name__ == "__main__":
289
320
  if len(sys.argv) > 1 and sys.argv[1] == "--check-only":
@@ -24,7 +24,7 @@ batch script without adding unnecessary interface layers.
24
24
  import sys
25
25
  import os
26
26
  import argparse
27
- import os
27
+ import subprocess
28
28
 
29
29
  # Set up module paths for proper imports
30
30
  def setup_entry_point_paths():
@@ -90,10 +90,33 @@ def run_medilink():
90
90
  """Run MediLink application"""
91
91
  try:
92
92
  print("Starting MediLink...")
93
- # Import and execute MediLink
94
- import runpy
95
- exit_code = runpy.run_module('MediLink.MediLink_main', run_name='__main__')
96
- return 0
93
+ # Use subprocess.call for Python 3.4.4 compatibility
94
+
95
+ # Get the path to MediLink_main.py
96
+ current_dir = os.path.dirname(os.path.abspath(__file__))
97
+ workspace_root = os.path.dirname(current_dir)
98
+ medilink_main_path = os.path.join(workspace_root, 'MediLink', 'MediLink_main.py')
99
+
100
+ if os.path.exists(medilink_main_path):
101
+ # Set up environment for subprocess to find MediCafe
102
+ env = os.environ.copy()
103
+ python_path = workspace_root
104
+ if 'PYTHONPATH' in env:
105
+ env['PYTHONPATH'] = python_path + os.pathsep + env['PYTHONPATH']
106
+ else:
107
+ env['PYTHONPATH'] = python_path
108
+
109
+ # Set working directory to MediLink directory for proper file paths
110
+ medilink_dir = os.path.dirname(medilink_main_path)
111
+
112
+ # Use subprocess.call for Python 3.4.4 compatibility
113
+ result = subprocess.call([sys.executable, medilink_main_path],
114
+ cwd=medilink_dir,
115
+ env=env)
116
+ return result
117
+ else:
118
+ print("Error: MediLink_main.py not found at {}".format(medilink_main_path))
119
+ return 1
97
120
 
98
121
  except ImportError as e:
99
122
  print("Error: Unable to import MediLink: {}".format(e))
@@ -106,10 +129,33 @@ def run_claims_status():
106
129
  """Run United Claims Status checker"""
107
130
  try:
108
131
  print("Starting United Claims Status...")
109
- # Import and execute Claims Status
110
- import runpy
111
- exit_code = runpy.run_module('MediLink.MediLink_ClaimStatus', run_name='__main__')
112
- return 0
132
+ # Use subprocess.call for Python 3.4.4 compatibility
133
+
134
+ # Get the path to MediLink_ClaimStatus.py
135
+ current_dir = os.path.dirname(os.path.abspath(__file__))
136
+ workspace_root = os.path.dirname(current_dir)
137
+ claims_status_path = os.path.join(workspace_root, 'MediLink', 'MediLink_ClaimStatus.py')
138
+
139
+ if os.path.exists(claims_status_path):
140
+ # Set up environment for subprocess to find MediCafe
141
+ env = os.environ.copy()
142
+ python_path = workspace_root
143
+ if 'PYTHONPATH' in env:
144
+ env['PYTHONPATH'] = python_path + os.pathsep + env['PYTHONPATH']
145
+ else:
146
+ env['PYTHONPATH'] = python_path
147
+
148
+ # Set working directory to MediLink directory for proper file paths
149
+ medilink_dir = os.path.dirname(claims_status_path)
150
+
151
+ # Use subprocess.call for Python 3.4.4 compatibility
152
+ result = subprocess.call([sys.executable, claims_status_path],
153
+ cwd=medilink_dir,
154
+ env=env)
155
+ return result
156
+ else:
157
+ print("Error: MediLink_ClaimStatus.py not found at {}".format(claims_status_path))
158
+ return 1
113
159
 
114
160
  except ImportError as e:
115
161
  print("Error: Unable to import MediLink_ClaimStatus: {}".format(e))
@@ -122,10 +168,33 @@ def run_deductible():
122
168
  """Run United Deductible checker"""
123
169
  try:
124
170
  print("Starting United Deductible...")
125
- # Import and execute Deductible checker
126
- import runpy
127
- exit_code = runpy.run_module('MediLink.MediLink_Deductible', run_name='__main__')
128
- return 0
171
+ # Use subprocess.call for Python 3.4.4 compatibility
172
+
173
+ # Get the path to MediLink_Deductible.py
174
+ current_dir = os.path.dirname(os.path.abspath(__file__))
175
+ workspace_root = os.path.dirname(current_dir)
176
+ deductible_path = os.path.join(workspace_root, 'MediLink', 'MediLink_Deductible.py')
177
+
178
+ if os.path.exists(deductible_path):
179
+ # Set up environment for subprocess to find MediCafe
180
+ env = os.environ.copy()
181
+ python_path = workspace_root
182
+ if 'PYTHONPATH' in env:
183
+ env['PYTHONPATH'] = python_path + os.pathsep + env['PYTHONPATH']
184
+ else:
185
+ env['PYTHONPATH'] = python_path
186
+
187
+ # Set working directory to MediLink directory for proper file paths
188
+ medilink_dir = os.path.dirname(deductible_path)
189
+
190
+ # Use subprocess.call for Python 3.4.4 compatibility
191
+ result = subprocess.call([sys.executable, deductible_path],
192
+ cwd=medilink_dir,
193
+ env=env)
194
+ return result
195
+ else:
196
+ print("Error: MediLink_Deductible.py not found at {}".format(deductible_path))
197
+ return 1
129
198
 
130
199
  except ImportError as e:
131
200
  print("Error: Unable to import MediLink_Deductible: {}".format(e))
@@ -138,10 +207,33 @@ def run_download_emails():
138
207
  """Run email download functionality"""
139
208
  try:
140
209
  print("Starting email download...")
141
- # Import and execute Gmail downloader
142
- import runpy
143
- exit_code = runpy.run_module('MediLink.MediLink_Gmail', run_name='__main__')
144
- return 0
210
+ # Use subprocess.call for Python 3.4.4 compatibility
211
+
212
+ # Get the path to MediLink_Gmail.py
213
+ current_dir = os.path.dirname(os.path.abspath(__file__))
214
+ workspace_root = os.path.dirname(current_dir)
215
+ medilink_gmail_path = os.path.join(workspace_root, 'MediLink', 'MediLink_Gmail.py')
216
+
217
+ if os.path.exists(medilink_gmail_path):
218
+ # Set up environment for subprocess to find MediCafe
219
+ env = os.environ.copy()
220
+ python_path = workspace_root
221
+ if 'PYTHONPATH' in env:
222
+ env['PYTHONPATH'] = python_path + os.pathsep + env['PYTHONPATH']
223
+ else:
224
+ env['PYTHONPATH'] = python_path
225
+
226
+ # Set working directory to MediLink directory for proper file paths
227
+ medilink_dir = os.path.dirname(medilink_gmail_path)
228
+
229
+ # Use subprocess.call for Python 3.4.4 compatibility
230
+ result = subprocess.call([sys.executable, medilink_gmail_path],
231
+ cwd=medilink_dir,
232
+ env=env)
233
+ return result
234
+ else:
235
+ print("Error: MediLink_Gmail.py not found at {}".format(medilink_gmail_path))
236
+ return 1
145
237
 
146
238
  except ImportError as e:
147
239
  print("Error: Unable to import MediLink_Gmail: {}".format(e))
@@ -1,5 +1,19 @@
1
1
  # MediLink_Gmail.py
2
2
  import sys, os, subprocess, time, webbrowser, requests, json, ssl, signal
3
+
4
+ # Set up Python path to find MediCafe when running directly
5
+ def setup_python_path():
6
+ """Set up Python path to find MediCafe package"""
7
+ current_dir = os.path.dirname(os.path.abspath(__file__))
8
+ workspace_root = os.path.dirname(current_dir)
9
+
10
+ # Add workspace root to Python path if not already present
11
+ if workspace_root not in sys.path:
12
+ sys.path.insert(0, workspace_root)
13
+
14
+ # Set up paths before importing MediCafe
15
+ setup_python_path()
16
+
3
17
  from MediCafe.core_utils import get_shared_config_loader
4
18
 
5
19
  # Get shared config loader
@@ -26,18 +40,26 @@ server_port = 8000
26
40
  cert_file = 'server.cert'
27
41
  key_file = 'server.key'
28
42
  # Try to find openssl.cnf in various locations
29
- openssl_cnf = 'MediLink\\openssl.cnf'
43
+ openssl_cnf = 'openssl.cnf' # Use relative path since we're running from MediLink directory
30
44
  if not os.path.exists(openssl_cnf):
31
45
  log("Could not find openssl.cnf at: " + os.path.abspath(openssl_cnf))
32
- # Try one directory up
33
- parent_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
34
- alternative_path = os.path.join(parent_dir, 'MediBot', 'openssl.cnf')
35
- log("Trying alternative path: " + alternative_path)
36
- if os.path.exists(alternative_path):
37
- openssl_cnf = alternative_path
46
+ # Try MediLink directory
47
+ medilink_dir = os.path.dirname(os.path.abspath(__file__))
48
+ medilink_openssl = os.path.join(medilink_dir, 'openssl.cnf')
49
+ log("Trying MediLink directory: " + medilink_openssl)
50
+ if os.path.exists(medilink_openssl):
51
+ openssl_cnf = medilink_openssl
38
52
  log("Found openssl.cnf at: " + openssl_cnf)
39
53
  else:
40
- log("Could not find openssl.cnf at alternative path either")
54
+ # Try one directory up
55
+ parent_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
56
+ alternative_path = os.path.join(parent_dir, 'MediBot', 'openssl.cnf')
57
+ log("Trying alternative path: " + alternative_path)
58
+ if os.path.exists(alternative_path):
59
+ openssl_cnf = alternative_path
60
+ log("Found openssl.cnf at: " + openssl_cnf)
61
+ else:
62
+ log("Could not find openssl.cnf at alternative path either")
41
63
 
42
64
  httpd = None # Global variable for the HTTP server
43
65
  shutdown_event = Event() # Event to signal shutdown
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: medicafe
3
- Version: 0.250805.0
3
+ Version: 0.250806.0
4
4
  Summary: MediCafe
5
5
  Home-page: https://github.com/katanada2
6
6
  Author: Daniel Vidaud
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: medicafe
3
- Version: 0.250805.0
3
+ Version: 0.250806.0
4
4
  Summary: MediCafe
5
5
  Home-page: https://github.com/katanada2
6
6
  Author: Daniel Vidaud
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='medicafe',
5
- version="0.250805.0",
5
+ version="0.250806.0",
6
6
  description='MediCafe',
7
7
  long_description="""
8
8
  # Project Overview: MediCafe
File without changes
File without changes
File without changes