aplos-nca-saas-sdk 0.0.20__tar.gz → 0.0.22__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.
Files changed (70) hide show
  1. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/PKG-INFO +1 -1
  2. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/devops/pypi/build.py +29 -6
  3. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/pyproject.toml +1 -2
  4. aplos_nca_saas_sdk-0.0.22/requirements.dev.txt +8 -0
  5. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/requirements.txt +1 -1
  6. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/configs/nca_execution_config.py +1 -1
  7. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/tests/nca_analysis_test.py +11 -8
  8. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/nca_resources/nca_analysis.py +4 -1
  9. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/version.py +1 -1
  10. aplos_nca_saas_sdk-0.0.20/requirements.dev.txt +0 -1
  11. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/.gitignore +0 -0
  12. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/.pypirc +0 -0
  13. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/.vscode/launch.json +0 -0
  14. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/.vscode/settings.json +0 -0
  15. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/LICENSE +0 -0
  16. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/README.md +0 -0
  17. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/devops/pypi/readme.md +0 -0
  18. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/devops/requirements.txt +0 -0
  19. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/docs/images/API_Configuration_blur.png +0 -0
  20. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/docs/images/aplos-nca-commandline-cropped.png +0 -0
  21. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/docs/images/aplos-nca-commandline.png +0 -0
  22. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/mypy.ini +0 -0
  23. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/mypy_checks.py +0 -0
  24. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/readme.md +0 -0
  25. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/run-checks.sh +0 -0
  26. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/__init__.py +0 -0
  27. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/configs/_config_base.py +0 -0
  28. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/configs/app_settings_config.py +0 -0
  29. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/configs/config_sample.json +0 -0
  30. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/configs/file_upload_config.py +0 -0
  31. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/configs/login_config.py +0 -0
  32. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/configs/nca_validation_config.py +0 -0
  33. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/example_main.py +0 -0
  34. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/files/executions/config1.json +0 -0
  35. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/files/uploads/input1.csv +0 -0
  36. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/files/uploads/input1.dat +0 -0
  37. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/files/uploads/input1.sas7bdat +0 -0
  38. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/files/uploads/input1.xls +0 -0
  39. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/files/uploads/input1.xlsx +0 -0
  40. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/files/uploads/input1.xpt +0 -0
  41. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/integration_test_base.py +0 -0
  42. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/integration_test_configurations.py +0 -0
  43. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/integration_test_factory.py +0 -0
  44. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/integration_test_response.py +0 -0
  45. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/integration_test_suite.py +0 -0
  46. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/readme.md +0 -0
  47. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/tests/app_configuration_test.py +0 -0
  48. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/tests/app_login_test.py +0 -0
  49. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/tests/file_upload_test.py +0 -0
  50. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/integration_testing/tests/nca_analysis_validation_test.py +0 -0
  51. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/nca_resources/_api_base.py +0 -0
  52. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/nca_resources/aws_cognito.py +0 -0
  53. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/nca_resources/aws_s3_presigned_payload.py +0 -0
  54. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/nca_resources/aws_s3_presigned_upload.py +0 -0
  55. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/nca_resources/nca_app_configuration.py +0 -0
  56. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/nca_resources/nca_authenticator.py +0 -0
  57. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/nca_resources/nca_endpoints.py +0 -0
  58. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/nca_resources/nca_file_download.py +0 -0
  59. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/nca_resources/nca_file_upload.py +0 -0
  60. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/nca_resources/nca_validations.py +0 -0
  61. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/run_analysis_execution.py +0 -0
  62. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/sample_files/analysis_files/single_ev/config.json +0 -0
  63. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/sample_files/analysis_files/single_ev/input.csv +0 -0
  64. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/sample_files/analysis_files/single_ev/meta_data.json +0 -0
  65. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/utilities/commandline_args.py +0 -0
  66. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/utilities/environment_services.py +0 -0
  67. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/utilities/environment_vars.py +0 -0
  68. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/utilities/file_utility.py +0 -0
  69. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/src/aplos_nca_saas_sdk/utilities/http_utility.py +0 -0
  70. {aplos_nca_saas_sdk-0.0.20 → aplos_nca_saas_sdk-0.0.22}/tests/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aplos_nca_saas_sdk
3
- Version: 0.0.20
3
+ Version: 0.0.22
4
4
  Summary: Aplos NCA SaaS SDK
5
5
  Project-URL: Homepage, https://aplosanalytics.com/
6
6
  Project-URL: Documentation, https://docs.aplosanalytics.com/
@@ -15,7 +15,7 @@ def main():
15
15
  """build the artifacts"""
16
16
  project_root = Path(__file__).parents[2]
17
17
 
18
- # extact the version
18
+ # extract the version
19
19
  pyproject_toml = os.path.join(project_root, "pyproject.toml")
20
20
  version_file = os.path.join(project_root, "src", "aplos_nca_saas_sdk", "version.py")
21
21
 
@@ -72,7 +72,7 @@ def extract_version_and_write_to_file(pyproject_toml: str, version_file: str):
72
72
 
73
73
  def run_build():
74
74
  """Run python build commands"""
75
- run_commands(["python", "-m", "build"])
75
+ output = run_commands(["python", "-m", "build"], capture_output=True)
76
76
 
77
77
 
78
78
  def run_publish():
@@ -104,25 +104,48 @@ def get_url(payload: str):
104
104
 
105
105
  def run_commands(
106
106
  commands: List[str], capture_output: bool = False, env=None
107
- ) -> str | None:
107
+ ) -> str | int | None:
108
108
  """centralized area for running process commands"""
109
109
  try:
110
110
  # Run the publish command
111
111
  result = subprocess.run(
112
112
  commands,
113
113
  check=True,
114
- capture_output=capture_output,
114
+ # capture_output=capture_output,
115
115
  env=env, # pass any environment vars
116
+ # capture errors
117
+ stderr=subprocess.PIPE,
118
+ # capture output
119
+ stdout=subprocess.PIPE,
120
+ text=True,
116
121
  )
117
122
 
118
123
  if capture_output:
119
- output = result.stdout.decode().strip()
124
+ output = str(result.stdout)
120
125
  print(output)
121
126
  return output
122
127
 
123
128
  except subprocess.CalledProcessError as e:
124
129
  logger.exception(f"An error occurred: {e}")
125
-
130
+ if e.stderr:
131
+ error = str(e.stderr)
132
+ if "401 Error" in error:
133
+ logger.error("401 Error: Invalid credentials")
134
+ if "amazonaws" in error:
135
+ logger.error(
136
+ "Please check your AWS credentials and try again."
137
+ )
138
+ print("🚨 If you this package doesn't use aws code artifact, check your pip config file "
139
+ "and remove the aws code artifact reference "
140
+ "mac: ~./.config/pip/pip.conf"
141
+ )
142
+ else:
143
+ logger.error(
144
+ "Please check your PYPI_API_TOKEN environment variable."
145
+ )
146
+
147
+ logger.error("If you need help, please contact support.")
148
+ return e.returncode
126
149
 
127
150
  if __name__ == "__main__":
128
151
  main()
@@ -7,7 +7,6 @@ packages = ["src/aplos_nca_saas_sdk"]
7
7
 
8
8
  [project]
9
9
  name = "aplos_nca_saas_sdk"
10
- source = "src/aplos_nca_saas_sdk"
11
10
  keywords = [
12
11
  "PK Analysis",
13
12
  "Pharmacokinetics",
@@ -26,7 +25,7 @@ keywords = [
26
25
  "Clinical Trials"
27
26
  ]
28
27
 
29
- version = "0.0.20"
28
+ version = "0.0.22"
30
29
  authors = [
31
30
  { name="Eric Wilson", email="eric.wilson@aplosanalytics.com" }
32
31
  ]
@@ -0,0 +1,8 @@
1
+ mypy
2
+ pytest
3
+ types-python-dateutil
4
+ build
5
+ toml
6
+ twine
7
+ wheel
8
+ pkginfo
@@ -3,5 +3,5 @@ boto3
3
3
  python-dotenv # load env values
4
4
  PyJWT # jwt in the imports
5
5
  requests
6
- boto3-stubs[cognito]
6
+ boto3-stubs
7
7
  mypy_boto3_cognito_idp
@@ -194,7 +194,7 @@ class NCAExecutionConfigs(ConfigBase):
194
194
  raise RuntimeError("Failed to load the config data")
195
195
 
196
196
  meta_data = self.__load_dictionary_data_or_file(key="meta", analysis=analysis, optional=True)
197
- data_cleaning = self.__load_dictionary_data_or_file(key="data_cleaning", analysis=analysis, optional=True)
197
+ data_cleaning = self.__load_dictionary_data_or_file(key="data_processing", analysis=analysis, optional=True)
198
198
  post_processing = self.__load_dictionary_data_or_file(key="post_processing", analysis=analysis, optional=True)
199
199
  wait_for_results =str(analysis.get("wait_for_results", True)).lower() == "true"
200
200
  max_wait_in_seconds = int(analysis.get("max_wait_in_seconds", 600))
@@ -76,14 +76,17 @@ class NCAAnalysisTest(IntegrationTestBase):
76
76
  logger.info(
77
77
  {"message": "Execution complete. Verifying results download."}
78
78
  )
79
-
80
- expected_output_file = execution_response.get("results", {}).get("file")
81
- if expected_output_file is None:
82
- raise RuntimeError(
83
- "Expected populated output_file from NCAExecution was None."
84
- )
85
- elif not Path(expected_output_file).is_file():
86
- raise RuntimeError("Expected downloaded file does not exist.")
79
+ status_code = execution_response.get("results", {}).get("status_code")
80
+ if status_code == 201:
81
+ pass # No output file expected
82
+ else:
83
+ expected_output_file = execution_response.get("results", {}).get("file")
84
+ if expected_output_file is None:
85
+ raise RuntimeError(
86
+ "Expected populated output_file from NCAExecution was None."
87
+ )
88
+ elif not Path(expected_output_file).is_file():
89
+ raise RuntimeError("Expected downloaded file does not exist.")
87
90
 
88
91
  except Exception as e: # pylint: disable=w0718
89
92
  test_response.error = str(e)
@@ -128,7 +128,8 @@ class NCAAnalysis(NCAApiBaseClass):
128
128
  response["results"]["file"] = file_path
129
129
  else:
130
130
  self.log("Bypassed results download.")
131
-
131
+ response["results"]["status_code"] = 201
132
+ response["results"]["message"] = "Waiting for results download bypassed. Running Fast Executions."
132
133
  return response
133
134
 
134
135
  def __add_to_queue(
@@ -165,6 +166,8 @@ class NCAAnalysis(NCAApiBaseClass):
165
166
 
166
167
  if full_payload:
167
168
  submission = full_payload
169
+ # we still need to add the file id at this point
170
+ submission["file"] = {"id": file_id}
168
171
  else:
169
172
  submission = {
170
173
  "file": {"id": file_id},
@@ -1,4 +1,4 @@
1
1
  # Aplos NCA SaaS SDK Version File
2
2
  # This is automatically generated during the build process.
3
3
  # DO NOT UPDATE IT DIRECTLY. IT WILL BE OVERWRITTEN.
4
- __version__ = '0.0.20'
4
+ __version__ = '0.0.22'
@@ -1 +0,0 @@
1
- mypy