medicafe 0.250725.7__tar.gz → 0.250725.8__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 (59) hide show
  1. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediBot/MediBot_UI.py +43 -29
  2. {medicafe-0.250725.7 → medicafe-0.250725.8}/PKG-INFO +1 -1
  3. {medicafe-0.250725.7 → medicafe-0.250725.8}/medicafe.egg-info/PKG-INFO +1 -1
  4. {medicafe-0.250725.7 → medicafe-0.250725.8}/setup.py +1 -1
  5. {medicafe-0.250725.7 → medicafe-0.250725.8}/LICENSE +0 -0
  6. {medicafe-0.250725.7 → medicafe-0.250725.8}/MANIFEST.in +0 -0
  7. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediBot/MediBot.bat +0 -0
  8. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediBot/MediBot.py +0 -0
  9. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediBot/MediBot_Charges.py +0 -0
  10. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediBot/MediBot_Crosswalk_Library.py +0 -0
  11. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediBot/MediBot_Post.py +0 -0
  12. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediBot/MediBot_Preprocessor.py +0 -0
  13. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediBot/MediBot_Preprocessor_lib.py +0 -0
  14. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediBot/MediBot_dataformat_library.py +0 -0
  15. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediBot/MediBot_docx_decoder.py +0 -0
  16. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediBot/PDF_to_CSV_Cleaner.py +0 -0
  17. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediBot/__init__.py +0 -0
  18. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediBot/update_json.py +0 -0
  19. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediBot/update_medicafe.py +0 -0
  20. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink.py +0 -0
  21. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_837p_cob_library.py +0 -0
  22. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_837p_encoder.py +0 -0
  23. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_837p_encoder_library.py +0 -0
  24. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_837p_utilities.py +0 -0
  25. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_API_Generator.py +0 -0
  26. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_API_v2.py +0 -0
  27. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_API_v3.py +0 -0
  28. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_APIs.py +0 -0
  29. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_Azure.py +0 -0
  30. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_ClaimStatus.py +0 -0
  31. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_ConfigLoader.py +0 -0
  32. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_DataMgmt.py +0 -0
  33. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_Decoder.py +0 -0
  34. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_Deductible.py +0 -0
  35. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_Deductible_Validator.py +0 -0
  36. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_Down.py +0 -0
  37. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_Gmail.py +0 -0
  38. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_GraphQL.py +0 -0
  39. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_Mailer.py +0 -0
  40. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_Parser.py +0 -0
  41. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_Scan.py +0 -0
  42. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_Scheduler.py +0 -0
  43. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_UI.py +0 -0
  44. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_Up.py +0 -0
  45. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/MediLink_batch.bat +0 -0
  46. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/Soumit_api.py +0 -0
  47. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/__init__.py +0 -0
  48. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/openssl.cnf +0 -0
  49. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/test.py +0 -0
  50. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/test_cob_library.py +0 -0
  51. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/test_validation.py +0 -0
  52. {medicafe-0.250725.7 → medicafe-0.250725.8}/MediLink/webapp.html +0 -0
  53. {medicafe-0.250725.7 → medicafe-0.250725.8}/README.md +0 -0
  54. {medicafe-0.250725.7 → medicafe-0.250725.8}/medicafe.egg-info/SOURCES.txt +0 -0
  55. {medicafe-0.250725.7 → medicafe-0.250725.8}/medicafe.egg-info/dependency_links.txt +0 -0
  56. {medicafe-0.250725.7 → medicafe-0.250725.8}/medicafe.egg-info/not-zip-safe +0 -0
  57. {medicafe-0.250725.7 → medicafe-0.250725.8}/medicafe.egg-info/requires.txt +0 -0
  58. {medicafe-0.250725.7 → medicafe-0.250725.8}/medicafe.egg-info/top_level.txt +0 -0
  59. {medicafe-0.250725.7 → medicafe-0.250725.8}/setup.cfg +0 -0
@@ -27,7 +27,7 @@ def flush_console_input_buffer():
27
27
  if sys.platform != "win32":
28
28
  return # no-op on non-Windows
29
29
 
30
- print("DEBUG: Starting flush_console_input_buffer()")
30
+ print("DEBUG_FLUSH: Starting flush_console_input_buffer()")
31
31
 
32
32
  # Check what's in the buffer before flushing
33
33
  chars_in_buffer = []
@@ -36,29 +36,59 @@ def flush_console_input_buffer():
36
36
  chars_in_buffer.append(ch)
37
37
 
38
38
  if chars_in_buffer:
39
- print("DEBUG: Found {} chars in buffer before flush: {}".format(len(chars_in_buffer), chars_in_buffer))
39
+ print("DEBUG_FLUSH: Found {} chars in buffer before flush: {}".format(len(chars_in_buffer), chars_in_buffer))
40
40
  else:
41
- print("DEBUG: No chars found in buffer before flush")
41
+ print("DEBUG_FLUSH: No chars found in buffer before flush")
42
42
 
43
43
  try:
44
44
  kernel32 = ctypes.WinDLL('kernel32', use_last_error=True)
45
45
  STD_INPUT_HANDLE = -10
46
46
  h_stdin = kernel32.GetStdHandle(STD_INPUT_HANDLE)
47
47
  result = kernel32.FlushConsoleInputBuffer(h_stdin)
48
- print("DEBUG: FlushConsoleInputBuffer API call result: {}".format(result))
48
+ print("DEBUG_FLUSH: FlushConsoleInputBuffer API call result: {}".format(result))
49
49
  except Exception as e:
50
- print("DEBUG: FlushConsoleInputBuffer API failed: {}".format(e))
50
+ print("DEBUG_FLUSH: FlushConsoleInputBuffer API failed: {}".format(e))
51
51
  # Fallback: drain any leading newlines manually
52
52
  fallback_chars = []
53
53
  while msvcrt.kbhit():
54
54
  ch = msvcrt.getch()
55
55
  fallback_chars.append(ch)
56
56
  if fallback_chars:
57
- print("DEBUG: Fallback removed {} chars: {}".format(len(fallback_chars), fallback_chars))
57
+ print("DEBUG_FLUSH: Fallback removed {} chars: {}".format(len(fallback_chars), fallback_chars))
58
58
  else:
59
- print("DEBUG: Fallback found no chars to remove")
59
+ print("DEBUG_FLUSH: Fallback found no chars to remove")
60
60
 
61
- print("DEBUG: flush_console_input_buffer() completed")
61
+ print("DEBUG_FLUSH: flush_console_input_buffer() completed")
62
+
63
+ def robust_input(prompt="", max_retries=3):
64
+ """
65
+ Robust input function that handles Windows XP console timing issues.
66
+ Automatically retries if the first input returns empty.
67
+ """
68
+ print("DEBUG_ROBUST: Starting robust_input with prompt: '{}'".format(prompt))
69
+
70
+ for attempt in range(max_retries):
71
+ if attempt > 0:
72
+ print("DEBUG_ROBUST: Retry attempt {} for input".format(attempt + 1))
73
+ flush_console_input_buffer()
74
+
75
+ # Print prompt only on first attempt, or if it's a retry
76
+ if attempt == 0:
77
+ print("DEBUG_ROBUST: First attempt - calling input(prompt)")
78
+ response = input(prompt).strip()
79
+ else:
80
+ print("DEBUG_ROBUST: Retry attempt - calling input() without prompt")
81
+ response = input().strip()
82
+
83
+ print("DEBUG_ROBUST: Attempt {} got: '{}' (length: {})".format(attempt + 1, response, len(response)))
84
+
85
+ if response:
86
+ print("DEBUG_ROBUST: Success! Returning: '{}'".format(response))
87
+ return response
88
+
89
+ # If all attempts failed, return empty string
90
+ print("DEBUG_ROBUST: All {} attempts failed, returning empty string".format(max_retries))
91
+ return ""
62
92
 
63
93
  def discard_leading_blank():
64
94
  """
@@ -345,29 +375,13 @@ def user_interaction(csv_data, interaction_mode, error_message, reverse_mapping)
345
375
 
346
376
  while True:
347
377
  try:
348
- # Use a more explicit prompt format for Windows XP
349
- print("\nAm I processing Medicare patients? (yes/no): ", end='', flush=True)
350
- # Force flush and wait for Windows XP console buffer synchronization
351
- sys.stdout.flush()
352
- time.sleep(0.2) # Increased delay for Windows XP
353
-
354
- print("DEBUG: About to call input() - waiting for user...")
355
- # Use input() for more reliable input on Windows XP
356
- response = input().lower().strip()
378
+ print("DEBUG_MAIN: About to call robust_input() - waiting for user...")
379
+ # Use robust_input() for more reliable input on Windows XP
380
+ response = robust_input("\nAm I processing Medicare patients? (yes/no): ").lower()
357
381
 
358
382
  # Debug: Print what we actually got
359
- print("DEBUG: Got response: '{}' (length: {})".format(response, len(response)))
360
- print("DEBUG: Response type: {}, repr: {}".format(type(response), repr(response)))
361
-
362
- # If we got an empty response, it means there was a stray newline
363
- # Let's try one more time after clearing the buffer again
364
- if not response:
365
- print("Empty response detected - clearing buffer and trying again...")
366
- print("DEBUG: About to flush buffer again...")
367
- flush_console_input_buffer()
368
- print("DEBUG: About to call input() for second attempt...")
369
- response = input().lower().strip()
370
- print("DEBUG: Second attempt got: '{}' (length: {})".format(response, len(response)))
383
+ print("DEBUG_MAIN: Final response: '{}' (length: {})".format(response, len(response)))
384
+ print("DEBUG_MAIN: Response type: {}, repr: {}".format(type(response), repr(response)))
371
385
 
372
386
  if response:
373
387
  if response in ['yes', 'y']:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: medicafe
3
- Version: 0.250725.7
3
+ Version: 0.250725.8
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.250725.7
3
+ Version: 0.250725.8
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.250725.7",
5
+ version="0.250725.8",
6
6
  description='MediCafe',
7
7
  long_description="""
8
8
  # Project Overview: MediCafe
File without changes
File without changes
File without changes
File without changes