medicafe 0.251017.0__tar.gz → 0.251017.1__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.251017.0 → medicafe-0.251017.1}/MediBot/__init__.py +1 -1
  2. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/__init__.py +1 -1
  3. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Gmail.py +15 -6
  4. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/__init__.py +1 -1
  5. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/gmail_http_utils.py +2 -3
  6. {medicafe-0.251017.0/medicafe.egg-info → medicafe-0.251017.1}/PKG-INFO +1 -1
  7. {medicafe-0.251017.0 → medicafe-0.251017.1/medicafe.egg-info}/PKG-INFO +1 -1
  8. {medicafe-0.251017.0 → medicafe-0.251017.1}/setup.py +1 -1
  9. {medicafe-0.251017.0 → medicafe-0.251017.1}/LICENSE +0 -0
  10. {medicafe-0.251017.0 → medicafe-0.251017.1}/MANIFEST.in +0 -0
  11. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot.bat +0 -0
  12. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot.py +0 -0
  13. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_Charges.py +0 -0
  14. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_Crosswalk_Library.py +0 -0
  15. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_Crosswalk_Utils.py +0 -0
  16. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_Notepad_Utils.py +0 -0
  17. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_Post.py +0 -0
  18. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_Preprocessor.py +0 -0
  19. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_Preprocessor_lib.py +0 -0
  20. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_UI.py +0 -0
  21. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_dataformat_library.py +0 -0
  22. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_debug.bat +0 -0
  23. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_docx_decoder.py +0 -0
  24. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_smart_import.py +0 -0
  25. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/clear_cache.bat +0 -0
  26. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/crash_diagnostic.bat +0 -0
  27. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/f_drive_diagnostic.bat +0 -0
  28. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/full_debug_suite.bat +0 -0
  29. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/get_medicafe_version.py +0 -0
  30. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/process_csvs.bat +0 -0
  31. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/update_json.py +0 -0
  32. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/update_medicafe.py +0 -0
  33. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/MediLink_ConfigLoader.py +0 -0
  34. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/__main__.py +0 -0
  35. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/api_core.py +0 -0
  36. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/api_factory.py +0 -0
  37. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/api_utils.py +0 -0
  38. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/core_utils.py +0 -0
  39. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/deductible_utils.py +0 -0
  40. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/error_reporter.py +0 -0
  41. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/graphql_utils.py +0 -0
  42. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/logging_config.py +0 -0
  43. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/logging_demo.py +0 -0
  44. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/migration_helpers.py +0 -0
  45. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/smart_import.py +0 -0
  46. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/submission_index.py +0 -0
  47. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/InsuranceTypeService.py +0 -0
  48. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_837p_cob_library.py +0 -0
  49. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_837p_encoder.py +0 -0
  50. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_837p_encoder_library.py +0 -0
  51. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_837p_utilities.py +0 -0
  52. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_API_Generator.py +0 -0
  53. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Azure.py +0 -0
  54. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Charges.py +0 -0
  55. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_ClaimStatus.py +0 -0
  56. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_DataMgmt.py +0 -0
  57. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Decoder.py +0 -0
  58. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Deductible.py +0 -0
  59. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Deductible_Validator.py +0 -0
  60. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Display_Utils.py +0 -0
  61. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Down.py +0 -0
  62. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Mailer.py +0 -0
  63. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Parser.py +0 -0
  64. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_PatientProcessor.py +0 -0
  65. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Scan.py +0 -0
  66. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Scheduler.py +0 -0
  67. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_UI.py +0 -0
  68. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Up.py +0 -0
  69. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_insurance_utils.py +0 -0
  70. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_main.py +0 -0
  71. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_smart_import.py +0 -0
  72. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/Soumit_api.py +0 -0
  73. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/gmail_oauth_utils.py +0 -0
  74. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/openssl.cnf +0 -0
  75. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/test.py +0 -0
  76. {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/webapp.html +0 -0
  77. {medicafe-0.251017.0 → medicafe-0.251017.1}/README.md +0 -0
  78. {medicafe-0.251017.0 → medicafe-0.251017.1}/medicafe.egg-info/SOURCES.txt +0 -0
  79. {medicafe-0.251017.0 → medicafe-0.251017.1}/medicafe.egg-info/dependency_links.txt +0 -0
  80. {medicafe-0.251017.0 → medicafe-0.251017.1}/medicafe.egg-info/entry_points.txt +0 -0
  81. {medicafe-0.251017.0 → medicafe-0.251017.1}/medicafe.egg-info/not-zip-safe +0 -0
  82. {medicafe-0.251017.0 → medicafe-0.251017.1}/medicafe.egg-info/requires.txt +0 -0
  83. {medicafe-0.251017.0 → medicafe-0.251017.1}/medicafe.egg-info/top_level.txt +0 -0
  84. {medicafe-0.251017.0 → medicafe-0.251017.1}/setup.cfg +0 -0
@@ -19,7 +19,7 @@ Smart Import Integration:
19
19
  medibot_main = get_components('medibot_main')
20
20
  """
21
21
 
22
- __version__ = "0.251017.0"
22
+ __version__ = "0.251017.1"
23
23
  __author__ = "Daniel Vidaud"
24
24
  __email__ = "daniel@personalizedtransformation.com"
25
25
 
@@ -27,7 +27,7 @@ Smart Import System:
27
27
  api_suite = get_api_access()
28
28
  """
29
29
 
30
- __version__ = "0.251017.0"
30
+ __version__ = "0.251017.1"
31
31
  __author__ = "Daniel Vidaud"
32
32
  __email__ = "daniel@personalizedtransformation.com"
33
33
 
@@ -470,13 +470,22 @@ def handle_post_response(url, payload, headers):
470
470
  else:
471
471
  log("Link retrieval initiated successfully.")
472
472
  elif response.status_code == 401:
473
- log("Unauthorized. Check if the token has the necessary scopes.Response body: {}".format(response.text))
474
- token_info = http_inspect_token(headers['Authorization'].split(' ')[1], log, delete_token_file_fn=delete_token_file, stop_server_fn=stop_server)
475
- log("Token details: {}".format(token_info))
476
- shutdown_event.set()
473
+ # Automatic re-auth: clear token and prompt user to re-consent, keep server up
474
+ log("Unauthorized (401). Clearing cached token and initiating re-authentication flow. Response body: {}".format(response.text))
475
+ delete_token_file()
476
+ auth_url = get_authorization_url()
477
+ print("Your Google session needs to be refreshed to regain permissions. A browser window will open to re-authorize the app with the required scopes.")
478
+ open_browser_with_executable(auth_url)
479
+ # Wait for the OAuth redirect/flow to complete; the server remains running
480
+ shutdown_event.wait()
477
481
  elif response.status_code == 403:
478
- log("Forbidden access. Ensure that the OAuth client has the correct permissions. Response body: {}".format(response.text))
479
- shutdown_event.set()
482
+ # Treat 403 similarly; scopes may be missing/changed. Force a fresh consent.
483
+ log("Forbidden (403). Clearing cached token and prompting for fresh consent. Response body: {}".format(response.text))
484
+ delete_token_file()
485
+ auth_url = get_authorization_url()
486
+ print("Permissions appear insufficient (403). Opening browser to request the correct Google permissions.")
487
+ open_browser_with_executable(auth_url)
488
+ shutdown_event.wait()
480
489
  elif response.status_code == 404:
481
490
  log("Not Found. Verify the URL and ensure the Apps Script is deployed correctly. Response body: {}".format(response.text))
482
491
  shutdown_event.set()
@@ -22,7 +22,7 @@ Smart Import Integration:
22
22
  datamgmt = get_components('medilink_datamgmt')
23
23
  """
24
24
 
25
- __version__ = "0.251017.0"
25
+ __version__ = "0.251017.1"
26
26
  __author__ = "Daniel Vidaud"
27
27
  __email__ = "daniel@personalizedtransformation.com"
28
28
 
@@ -76,11 +76,10 @@ def inspect_token(access_token, log, delete_token_file_fn=None, stop_server_fn=N
76
76
  else:
77
77
  log("Failed to inspect token. Status code: {}, Body: {}".format(response.status_code, response.text))
78
78
  if response.status_code == 400 and "invalid_token" in response.text:
79
- log("Access token is invalid. Deleting token.json and stopping the server.")
79
+ # Token is invalid (revoked/expired). Clear cache and let caller trigger re-auth.
80
+ log("Access token is invalid. Clearing token cache and keeping server running for re-auth.")
80
81
  if delete_token_file_fn:
81
82
  delete_token_file_fn()
82
- if stop_server_fn:
83
- stop_server_fn()
84
83
  return None
85
84
  return None
86
85
  except Exception as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: medicafe
3
- Version: 0.251017.0
3
+ Version: 0.251017.1
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.251017.0
3
+ Version: 0.251017.1
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.251017.0",
57
+ version="0.251017.1",
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