medicafe 0.250811.4__tar.gz → 0.250812.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.
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediBot/MediBot.bat +10 -4
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediBot/update_medicafe.py +53 -9
- {medicafe-0.250811.4 → medicafe-0.250812.0}/PKG-INFO +1 -1
- {medicafe-0.250811.4 → medicafe-0.250812.0}/medicafe.egg-info/PKG-INFO +1 -1
- {medicafe-0.250811.4 → medicafe-0.250812.0}/setup.py +1 -1
- {medicafe-0.250811.4 → medicafe-0.250812.0}/LICENSE +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MANIFEST.in +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediBot/MediBot.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediBot/MediBot_Charges.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediBot/MediBot_Crosswalk_Library.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediBot/MediBot_Crosswalk_Utils.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediBot/MediBot_Post.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediBot/MediBot_Preprocessor.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediBot/MediBot_Preprocessor_lib.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediBot/MediBot_UI.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediBot/MediBot_dataformat_library.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediBot/MediBot_docx_decoder.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediBot/MediBot_smart_import.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediBot/__init__.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediBot/get_medicafe_version.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediBot/update_json.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediCafe/MediLink_ConfigLoader.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediCafe/__init__.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediCafe/__main__.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediCafe/api_core.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediCafe/api_core_backup.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediCafe/api_factory.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediCafe/api_utils.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediCafe/core_utils.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediCafe/graphql_utils.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediCafe/logging_config.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediCafe/logging_demo.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediCafe/migration_helpers.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediCafe/smart_import.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_837p_cob_library.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_837p_encoder.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_837p_encoder_library.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_837p_utilities.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_API_Generator.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_Azure.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_ClaimStatus.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_DataMgmt.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_Decoder.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_Deductible.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_Deductible_Validator.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_Display_Utils.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_Down.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_Gmail.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_Mailer.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_Parser.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_PatientProcessor.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_Scan.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_Scheduler.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_UI.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_Up.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_insurance_utils.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_main.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/MediLink_smart_import.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/Soumit_api.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/__init__.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/gmail_http_utils.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/gmail_oauth_utils.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/insurance_type_integration_test.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/openssl.cnf +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/test.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/test_cob_library.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/test_timing.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/test_validation.py +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/MediLink/webapp.html +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/medicafe.egg-info/SOURCES.txt +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/medicafe.egg-info/dependency_links.txt +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/medicafe.egg-info/entry_points.txt +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/medicafe.egg-info/not-zip-safe +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/medicafe.egg-info/requires.txt +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/medicafe.egg-info/top_level.txt +0 -0
- {medicafe-0.250811.4 → medicafe-0.250812.0}/setup.cfg +0 -0
@@ -497,7 +497,7 @@ echo rem Wait briefly to ensure the main window has exited and released file loc
|
|
497
497
|
echo ping 127.0.0.1 -n 3 ^>nul>> "%_UPD_RUNNER%"
|
498
498
|
echo echo Starting MediCafe updater...>> "%_UPD_RUNNER%"
|
499
499
|
:: XP-compatible Python presence check
|
500
|
-
echo python --version ^>nul 2
|
500
|
+
echo python --version ^>nul 2^>nul>> "%_UPD_RUNNER%"
|
501
501
|
echo if errorlevel 1 (>> "%_UPD_RUNNER%"
|
502
502
|
echo echo [ERROR] Python not found in PATH. Aborting update.>> "%_UPD_RUNNER%"
|
503
503
|
echo goto :eof>> "%_UPD_RUNNER%"
|
@@ -506,9 +506,15 @@ echo )>> "%_UPD_RUNNER%"
|
|
506
506
|
echo python "%upgrade_medicafe%" >> "%_UPD_RUNNER%"
|
507
507
|
echo set "RET=%%ERRORLEVEL%%" >> "%_UPD_RUNNER%"
|
508
508
|
echo echo Update process exited with code %%RET%%>> "%_UPD_RUNNER%"
|
509
|
-
echo
|
510
|
-
echo
|
511
|
-
echo
|
509
|
+
echo if %%RET%% neq 0 (>> "%_UPD_RUNNER%"
|
510
|
+
echo echo Update failed. Press any key to close...>> "%_UPD_RUNNER%"
|
511
|
+
echo pause ^>nul>> "%_UPD_RUNNER%"
|
512
|
+
echo exit /b %%RET%%>> "%_UPD_RUNNER%"
|
513
|
+
echo ) else (>> "%_UPD_RUNNER%"
|
514
|
+
echo rem Relaunch MediBot on success>> "%_UPD_RUNNER%"
|
515
|
+
echo if exist "%%MEDIBOT_PATH%%" start "MediBot" "%%MEDIBOT_PATH%%" >> "%_UPD_RUNNER%"
|
516
|
+
echo exit>> "%_UPD_RUNNER%"
|
517
|
+
echo )>> "%_UPD_RUNNER%"
|
512
518
|
|
513
519
|
if not exist "%_UPD_RUNNER%" (
|
514
520
|
echo [ERROR] Failed to create updater script at %_UPD_RUNNER%
|
@@ -15,6 +15,17 @@ except ImportError:
|
|
15
15
|
requests = None
|
16
16
|
print("Warning: requests module not available. Some functionality may be limited.")
|
17
17
|
|
18
|
+
# Safe tqdm import with fallback
|
19
|
+
try:
|
20
|
+
from tqdm import tqdm as _real_tqdm
|
21
|
+
def tqdm(iterable, **kwargs):
|
22
|
+
return _real_tqdm(iterable, **kwargs)
|
23
|
+
TQDM_AVAILABLE = True
|
24
|
+
except Exception:
|
25
|
+
TQDM_AVAILABLE = False
|
26
|
+
def tqdm(iterable, **kwargs):
|
27
|
+
return iterable
|
28
|
+
|
18
29
|
# Initialize console output
|
19
30
|
print("="*60)
|
20
31
|
print("MediCafe Update Started")
|
@@ -205,9 +216,9 @@ def clear_python_cache(workspace_path=None):
|
|
205
216
|
]
|
206
217
|
|
207
218
|
cleared_count = 0
|
219
|
+
# First, remove __pycache__ directories (these are few, so prints are acceptable)
|
208
220
|
for cache_dir in cache_dirs:
|
209
221
|
if os.path.exists(cache_dir):
|
210
|
-
# Remove __pycache__ directories
|
211
222
|
pycache_path = os.path.join(cache_dir, '__pycache__')
|
212
223
|
if os.path.exists(pycache_path):
|
213
224
|
try:
|
@@ -216,17 +227,50 @@ def clear_python_cache(workspace_path=None):
|
|
216
227
|
cleared_count += 1
|
217
228
|
except Exception as e:
|
218
229
|
print("Warning: Could not clear cache at {}: {}".format(pycache_path, e))
|
219
|
-
|
220
|
-
|
230
|
+
|
231
|
+
# Next, collect all .pyc files to provide a clean progress indicator
|
232
|
+
pyc_files = []
|
233
|
+
for cache_dir in cache_dirs:
|
234
|
+
if os.path.exists(cache_dir):
|
221
235
|
for root, dirs, files in os.walk(cache_dir):
|
222
236
|
for file in files:
|
223
237
|
if file.endswith('.pyc'):
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
238
|
+
pyc_files.append(os.path.join(root, file))
|
239
|
+
|
240
|
+
# Remove .pyc files with a progress bar (tqdm if available, otherwise a single-line counter)
|
241
|
+
if pyc_files:
|
242
|
+
total_files = len(pyc_files)
|
243
|
+
removed_files = 0
|
244
|
+
|
245
|
+
if TQDM_AVAILABLE:
|
246
|
+
for file_path in tqdm(pyc_files, desc="Removing .pyc files", unit="file"):
|
247
|
+
try:
|
248
|
+
os.remove(file_path)
|
249
|
+
cleared_count += 1
|
250
|
+
removed_files += 1
|
251
|
+
except Exception as e:
|
252
|
+
print("Warning: Could not remove .pyc file {}: {}".format(os.path.basename(file_path), e))
|
253
|
+
else:
|
254
|
+
# Minimal, XP-safe single-line progress indicator
|
255
|
+
for file_path in pyc_files:
|
256
|
+
try:
|
257
|
+
os.remove(file_path)
|
258
|
+
cleared_count += 1
|
259
|
+
removed_files += 1
|
260
|
+
except Exception as e:
|
261
|
+
print("Warning: Could not remove .pyc file {}: {}".format(os.path.basename(file_path), e))
|
262
|
+
# Update progress on one line
|
263
|
+
try:
|
264
|
+
sys.stdout.write("\rRemoving .pyc files: {}/{}".format(removed_files, total_files))
|
265
|
+
sys.stdout.flush()
|
266
|
+
except Exception:
|
267
|
+
pass
|
268
|
+
# Finish the line after completion
|
269
|
+
try:
|
270
|
+
sys.stdout.write("\n")
|
271
|
+
sys.stdout.flush()
|
272
|
+
except Exception:
|
273
|
+
pass
|
230
274
|
|
231
275
|
if cleared_count > 0:
|
232
276
|
print_status("Successfully cleared {} cache items".format(cleared_count), "SUCCESS")
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|