medicafe 0.250725.6__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.6 → medicafe-0.250725.8}/MediBot/MediBot_UI.py +61 -12
  2. {medicafe-0.250725.6 → medicafe-0.250725.8}/PKG-INFO +1 -1
  3. {medicafe-0.250725.6 → medicafe-0.250725.8}/medicafe.egg-info/PKG-INFO +1 -1
  4. {medicafe-0.250725.6 → medicafe-0.250725.8}/setup.py +1 -1
  5. {medicafe-0.250725.6 → medicafe-0.250725.8}/LICENSE +0 -0
  6. {medicafe-0.250725.6 → medicafe-0.250725.8}/MANIFEST.in +0 -0
  7. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediBot/MediBot.bat +0 -0
  8. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediBot/MediBot.py +0 -0
  9. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediBot/MediBot_Charges.py +0 -0
  10. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediBot/MediBot_Crosswalk_Library.py +0 -0
  11. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediBot/MediBot_Post.py +0 -0
  12. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediBot/MediBot_Preprocessor.py +0 -0
  13. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediBot/MediBot_Preprocessor_lib.py +0 -0
  14. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediBot/MediBot_dataformat_library.py +0 -0
  15. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediBot/MediBot_docx_decoder.py +0 -0
  16. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediBot/PDF_to_CSV_Cleaner.py +0 -0
  17. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediBot/__init__.py +0 -0
  18. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediBot/update_json.py +0 -0
  19. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediBot/update_medicafe.py +0 -0
  20. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink.py +0 -0
  21. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_837p_cob_library.py +0 -0
  22. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_837p_encoder.py +0 -0
  23. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_837p_encoder_library.py +0 -0
  24. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_837p_utilities.py +0 -0
  25. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_API_Generator.py +0 -0
  26. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_API_v2.py +0 -0
  27. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_API_v3.py +0 -0
  28. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_APIs.py +0 -0
  29. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_Azure.py +0 -0
  30. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_ClaimStatus.py +0 -0
  31. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_ConfigLoader.py +0 -0
  32. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_DataMgmt.py +0 -0
  33. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_Decoder.py +0 -0
  34. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_Deductible.py +0 -0
  35. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_Deductible_Validator.py +0 -0
  36. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_Down.py +0 -0
  37. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_Gmail.py +0 -0
  38. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_GraphQL.py +0 -0
  39. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_Mailer.py +0 -0
  40. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_Parser.py +0 -0
  41. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_Scan.py +0 -0
  42. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_Scheduler.py +0 -0
  43. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_UI.py +0 -0
  44. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_Up.py +0 -0
  45. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/MediLink_batch.bat +0 -0
  46. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/Soumit_api.py +0 -0
  47. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/__init__.py +0 -0
  48. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/openssl.cnf +0 -0
  49. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/test.py +0 -0
  50. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/test_cob_library.py +0 -0
  51. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/test_validation.py +0 -0
  52. {medicafe-0.250725.6 → medicafe-0.250725.8}/MediLink/webapp.html +0 -0
  53. {medicafe-0.250725.6 → medicafe-0.250725.8}/README.md +0 -0
  54. {medicafe-0.250725.6 → medicafe-0.250725.8}/medicafe.egg-info/SOURCES.txt +0 -0
  55. {medicafe-0.250725.6 → medicafe-0.250725.8}/medicafe.egg-info/dependency_links.txt +0 -0
  56. {medicafe-0.250725.6 → medicafe-0.250725.8}/medicafe.egg-info/not-zip-safe +0 -0
  57. {medicafe-0.250725.6 → medicafe-0.250725.8}/medicafe.egg-info/requires.txt +0 -0
  58. {medicafe-0.250725.6 → medicafe-0.250725.8}/medicafe.egg-info/top_level.txt +0 -0
  59. {medicafe-0.250725.6 → medicafe-0.250725.8}/setup.cfg +0 -0
@@ -27,15 +27,68 @@ def flush_console_input_buffer():
27
27
  if sys.platform != "win32":
28
28
  return # no-op on non-Windows
29
29
 
30
+ print("DEBUG_FLUSH: Starting flush_console_input_buffer()")
31
+
32
+ # Check what's in the buffer before flushing
33
+ chars_in_buffer = []
34
+ while msvcrt.kbhit():
35
+ ch = msvcrt.getch()
36
+ chars_in_buffer.append(ch)
37
+
38
+ if chars_in_buffer:
39
+ print("DEBUG_FLUSH: Found {} chars in buffer before flush: {}".format(len(chars_in_buffer), chars_in_buffer))
40
+ else:
41
+ print("DEBUG_FLUSH: No chars found in buffer before flush")
42
+
30
43
  try:
31
44
  kernel32 = ctypes.WinDLL('kernel32', use_last_error=True)
32
45
  STD_INPUT_HANDLE = -10
33
46
  h_stdin = kernel32.GetStdHandle(STD_INPUT_HANDLE)
34
- kernel32.FlushConsoleInputBuffer(h_stdin)
35
- except Exception:
47
+ result = kernel32.FlushConsoleInputBuffer(h_stdin)
48
+ print("DEBUG_FLUSH: FlushConsoleInputBuffer API call result: {}".format(result))
49
+ except Exception as e:
50
+ print("DEBUG_FLUSH: FlushConsoleInputBuffer API failed: {}".format(e))
36
51
  # Fallback: drain any leading newlines manually
52
+ fallback_chars = []
37
53
  while msvcrt.kbhit():
38
- msvcrt.getch()
54
+ ch = msvcrt.getch()
55
+ fallback_chars.append(ch)
56
+ if fallback_chars:
57
+ print("DEBUG_FLUSH: Fallback removed {} chars: {}".format(len(fallback_chars), fallback_chars))
58
+ else:
59
+ print("DEBUG_FLUSH: Fallback found no chars to remove")
60
+
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 ""
39
92
 
40
93
  def discard_leading_blank():
41
94
  """
@@ -322,17 +375,13 @@ def user_interaction(csv_data, interaction_mode, error_message, reverse_mapping)
322
375
 
323
376
  while True:
324
377
  try:
325
- # Use a more explicit prompt format for Windows XP
326
- print("\nAm I processing Medicare patients? (yes/no): ", end='', flush=True)
327
- # Force flush and wait for Windows XP console buffer synchronization
328
- sys.stdout.flush()
329
- time.sleep(0.2) # Increased delay for Windows XP
330
-
331
- # Use input() for more reliable input on Windows XP
332
- 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()
333
381
 
334
382
  # Debug: Print what we actually got
335
- print("DEBUG: Got response: '{}' (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)))
336
385
 
337
386
  if response:
338
387
  if response in ['yes', 'y']:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: medicafe
3
- Version: 0.250725.6
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.6
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.6",
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