pysodafair 0.1.66__tar.gz → 0.1.67__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 (78) hide show
  1. {pysodafair-0.1.66 → pysodafair-0.1.67}/PKG-INFO +1 -1
  2. {pysodafair-0.1.66 → pysodafair-0.1.67}/pyproject.toml +1 -1
  3. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/dataset_generation/upload.py +1 -4
  4. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/schema/dataset_description.json +2 -1
  5. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/utils/exceptions.py +9 -1
  6. pysodafair-0.1.67/pysoda/utils/pennsieveAgentUtils.py +20 -0
  7. pysodafair-0.1.66/pysoda/utils/pennsieveAgentUtils.py +0 -11
  8. {pysodafair-0.1.66 → pysodafair-0.1.67}/LICENSE +0 -0
  9. {pysodafair-0.1.66 → pysodafair-0.1.67}/README.md +0 -0
  10. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/__init__.py +0 -0
  11. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/constants.py +0 -0
  12. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/__init__.py +0 -0
  13. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/dataset_generation/__init__.py +0 -0
  14. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/dataset_generation/manifestSession/__init__.py +0 -0
  15. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/dataset_generation/manifestSession/manifest_session.py +0 -0
  16. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/dataset_importing/__init__.py +0 -0
  17. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/dataset_importing/import_dataset.py +0 -0
  18. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata/__init__.py +0 -0
  19. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata/code_description.py +0 -0
  20. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata/constants.py +0 -0
  21. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata/dataset_description.py +0 -0
  22. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata/excel_utils.py +0 -0
  23. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata/helpers.py +0 -0
  24. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata/manifest.py +0 -0
  25. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata/manifest_package/__init__.py +0 -0
  26. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata/manifest_package/manifest.py +0 -0
  27. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata/manifest_package/manifest_import.py +0 -0
  28. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata/manifest_package/manifest_writer.py +0 -0
  29. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata/performances.py +0 -0
  30. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata/resources.py +0 -0
  31. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata/samples.py +0 -0
  32. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata/sites.py +0 -0
  33. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata/subjects.py +0 -0
  34. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata/submission.py +0 -0
  35. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata/text_metadata.py +0 -0
  36. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata_templates/CHANGES +0 -0
  37. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata_templates/LICENSE +0 -0
  38. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata_templates/README.md +0 -0
  39. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata_templates/__init__.py +0 -0
  40. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata_templates/code_description.xlsx +0 -0
  41. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata_templates/code_parameters.xlsx +0 -0
  42. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata_templates/dataset_description.xlsx +0 -0
  43. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata_templates/manifest.xlsx +0 -0
  44. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata_templates/performances.xlsx +0 -0
  45. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata_templates/resources.xlsx +0 -0
  46. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata_templates/samples.xlsx +0 -0
  47. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata_templates/sites.xlsx +0 -0
  48. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata_templates/subjects.xlsx +0 -0
  49. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata_templates/subjects_pools_samples_structure.xlsx +0 -0
  50. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata_templates/subjects_pools_samples_structure_example.xlsx +0 -0
  51. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/metadata_templates/submission.xlsx +0 -0
  52. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/permissions/__init__.py +0 -0
  53. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/permissions/permissions.py +0 -0
  54. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/pysoda/__init__.py +0 -0
  55. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/pysoda/soda.py +0 -0
  56. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/pysoda/soda_object.py +0 -0
  57. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/upload_manifests/__init__.py +0 -0
  58. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/core/upload_manifests/upload_manifests.py +0 -0
  59. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/schema/__init__.py +0 -0
  60. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/schema/code_description.json +0 -0
  61. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/schema/manifest.json +0 -0
  62. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/schema/performances.json +0 -0
  63. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/schema/resources.json +0 -0
  64. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/schema/samples.json +0 -0
  65. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/schema/sites.json +0 -0
  66. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/schema/soda_schema.json +0 -0
  67. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/schema/subjects.json +0 -0
  68. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/schema/submission_schema.json +0 -0
  69. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/utils/__init__.py +0 -0
  70. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/utils/authentication.py +0 -0
  71. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/utils/config.py +0 -0
  72. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/utils/logger.py +0 -0
  73. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/utils/metadata_utils.py +0 -0
  74. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/utils/pennsieveUtils.py +0 -0
  75. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/utils/profile.py +0 -0
  76. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/utils/schema_validation.py +0 -0
  77. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/utils/time_utils.py +0 -0
  78. {pysodafair-0.1.66 → pysodafair-0.1.67}/pysoda/utils/upload_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pysodafair
3
- Version: 0.1.66
3
+ Version: 0.1.67
4
4
  Summary: Pysoda package for Fairdataihub tools
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pysodafair"
3
- version = "0.1.66"
3
+ version = "0.1.67"
4
4
  description = "Pysoda package for Fairdataihub tools"
5
5
  authors = ["Christopher Marroquin <cmarroquin@calmi2.org>"]
6
6
  license = "MIT"
@@ -3460,10 +3460,7 @@ def validate_dataset_structure(soda, resume):
3460
3460
  connect_pennsieve_client(accountname)
3461
3461
  except Exception as e:
3462
3462
  main_curate_status = "Done"
3463
- if isinstance(e, AttributeError):
3464
- raise Exception("The Pennsieve Agent cannot access datasets but needs to in order to work. Please try again. If the issue persists, please contact the SODA team. The SODA team will contact Pennsieve to help resolve this issue.")
3465
- else:
3466
- raise PennsieveAccountInvalid("Please select a valid Pennsieve account.")
3463
+ raise e
3467
3464
 
3468
3465
  if uploading_to_existing_ps_dataset(soda):
3469
3466
  # check that the Pennsieve dataset is valid
@@ -4,7 +4,8 @@
4
4
  "properties": {
5
5
  "metadata_version": {
6
6
  "type": "string",
7
- "description": "The version of the metadata schema used."
7
+ "description": "The version of the metadata schema used.",
8
+ "enum": ["3.0.0", "3.0.1", "3.0.2"]
8
9
  },
9
10
  "type": {
10
11
  "type": "string",
@@ -17,6 +17,14 @@ class PennsieveAgentError(Exception):
17
17
  def __str__(self):
18
18
  return self.error_message
19
19
 
20
+
21
+ class PennsieveAgentRPCError(Exception):
22
+ def __init__(self, error_message):
23
+ self.error_message = error_message
24
+
25
+ def __str__(self):
26
+ return self.error_message
27
+
20
28
  class FailedToFetchPennsieveDatasets(Exception):
21
29
  def __init__(self, error_message):
22
30
  self.error_message = error_message
@@ -120,7 +128,7 @@ class PennsieveDatasetNameInvalid(Exception):
120
128
  class PennsieveAccountInvalid(Exception):
121
129
  def __init__(self, account_name):
122
130
  self.account_name = account_name
123
- self.error_message = f"The Pennsieve account name {self.account_name} is invalid."
131
+ self.error_message = f"The Pennsieve account name {self.account_name} is invalid. Please try again. If the issue persists, please contact the SODA team."
124
132
 
125
133
  def __str__(self):
126
134
  return self.error_message
@@ -0,0 +1,20 @@
1
+ from pennsieve2.pennsieve import Pennsieve
2
+ from .exceptions import PennsieveAgentError, PennsieveAgentRPCError, PennsieveAccountInvalid
3
+
4
+ def connect_pennsieve_client(account_name):
5
+ """
6
+ Connects to Pennsieve Python client to the Agent and returns the initialized Pennsieve object.
7
+ """
8
+ try:
9
+ return Pennsieve(profile_name=account_name)
10
+ except Exception as e:
11
+ if "End of TCP stream" in str(e):
12
+ raise PennsieveAgentRPCError(f"Could not connect to the Pennsieve Agent error coming from the Agent. This can likely be resolved by retrying. If the issue persists, please contact the SODA team and they will reach out to Pennsieve to help resolve this.") from e
13
+ elif isinstance(e, AttributeError):
14
+ raise Exception("The Pennsieve Agent cannot access datasets but needs to in order to work. Please try again. If the issue persists, please contact the SODA team. The SODA team will contact Pennsieve to help resolve this issue.") from e
15
+ elif "Profile not found" in str(e):
16
+ raise PennsieveAccountInvalid(account_name) from e
17
+ elif "Error connecting to server" in str(e):
18
+ raise PennsieveAgentError(f"Could not connect to the Pennsieve agent: {e}") from e
19
+ else:
20
+ raise PennsieveAgentError("An unknown error occurred when trying to connect to the Pennsieve Agent. If this issue persists, please contact the SODA team.") from e
@@ -1,11 +0,0 @@
1
- from pennsieve2.pennsieve import Pennsieve
2
- from .exceptions import PennsieveAgentError
3
-
4
- def connect_pennsieve_client(account_name):
5
- """
6
- Connects to Pennsieve Python client to the Agent and returns the initialized Pennsieve object.
7
- """
8
- try:
9
- return Pennsieve(profile_name=account_name)
10
- except Exception as e:
11
- raise PennsieveAgentError(f"Could not connect to the Pennsieve agent: {e}")
File without changes
File without changes