pysodafair 0.1.66__py3-none-any.whl → 0.1.68__py3-none-any.whl

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.
@@ -10,7 +10,7 @@
10
10
  "subject_id": {
11
11
  "type": "string",
12
12
  "description": "Unique identifier for the subject. This should be a unique identifier for the subject within the dataset.",
13
- "minLength": 1
13
+ "pattern": "^(pop-)?sub-[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"
14
14
  },
15
15
  "pool_id": {
16
16
  "type": "string",
@@ -26,11 +26,11 @@
26
26
  },
27
27
  "sex": {
28
28
  "type": "string",
29
- "description": "Sex of the subject."
29
+ "description": "Sex of the subject. Can be represented as freetext or a CURIE or IRI from a standard ontology such as PATO."
30
30
  },
31
31
  "species": {
32
32
  "type": "string",
33
- "description": "Species of the subject. This should be the scientific name of the species."
33
+ "description": "Species of the subject. This should be the scientific name of the species. For example CURIE or IRI from NCBI taxonomy or something free form."
34
34
  },
35
35
  "strain": {
36
36
  "type": "string",
@@ -38,7 +38,8 @@
38
38
  },
39
39
  "rrid_for_strain": {
40
40
  "type": "string",
41
- "description": "RRID for strain. This should be a unique identifier for the strain in the Research Resource Identifier (RRID) database."
41
+ "description": "RRID for strain. This should be a unique identifier for the strain in the Research Resource Identifier (RRID) database.",
42
+ "pattern": "^$|^RRID:"
42
43
  },
43
44
  "age_category": {
44
45
  "type": "string",
@@ -46,7 +47,7 @@
46
47
  },
47
48
  "also_in_dataset": {
48
49
  "type": "string",
49
- "description": "Indicates if the subject is also part of another dataset."
50
+ "description": "Indicates if the subject is also part of another dataset. Should be a DOI or https link to another dataset or an other identifier."
50
51
  },
51
52
  "member_of": {
52
53
  "type": "string",
@@ -56,6 +57,10 @@
56
57
  "type": "string",
57
58
  "description": "Indicates if this entry is metadata only."
58
59
  },
60
+ "number_of_directly_derived_samples": {
61
+ "type": "string",
62
+ "description": "Number of samples directly derived from this sample."
63
+ },
59
64
  "laboratory_internal_id": {
60
65
  "type": "string",
61
66
  "description": "Internal identifier used by the laboratory for the subject."
@@ -73,8 +78,24 @@
73
78
  "description": "Maximum age range of the subject."
74
79
  },
75
80
  "body_mass": {
76
- "type": "string",
77
- "description": "Body mass of the subject."
81
+ "oneOf": [
82
+ {
83
+ "type": "string",
84
+ "description": "Body mass of the subject."
85
+ },
86
+ {
87
+ "type": "number",
88
+ "description": "Body mass of the subject."
89
+ },
90
+ {
91
+ "type": "object",
92
+ "properties": {
93
+ "type": { "type": "string" },
94
+ "value": { "type": "number" },
95
+ "unit": { "type": "string" }
96
+ }
97
+ }
98
+ ]
78
99
  },
79
100
  "genotype": {
80
101
  "type": "string",
@@ -100,7 +121,7 @@
100
121
  "type": "string",
101
122
  "description": "Date of the experiment involving the subject."
102
123
  },
103
- "disease_or_disorder": {
124
+ "disease": {
104
125
  "type": "string",
105
126
  "description": "Disease or disorder associated with the subject."
106
127
  },
@@ -118,10 +139,20 @@
118
139
  },
119
140
  "protocol_url_or_doi": {
120
141
  "type": "string",
121
- "description": "URL or DOI of the protocol used for the subject."
142
+ "description": "URL or DOI of the protocol used for the subject.",
143
+ "anyOf": [
144
+ { "pattern": "^$" },
145
+ {
146
+ "pattern": "^https://[A-Za-z0-9.-]+[A-Za-z0-9](:[0-9]+)?(/.*)?$"
147
+ },
148
+ { "pattern": "^10\\.\\d{4,9}/[-._;()/:A-Za-z0-9]+$" },
149
+ {
150
+ "pattern": "^https://doi\\.org/10\\.\\d{4,9}/[-._;()/:A-Za-z0-9]+$"
151
+ }
152
+ ]
122
153
  }
123
154
  },
124
- "required": ["subject_id"],
155
+ "required": ["subject_id", "species"],
125
156
  "additionalProperties": {
126
157
  "type": "string",
127
158
  "description": "Additional properties for the subject. This can include any other relevant information about the subject that is not covered by the predefined fields."
@@ -4,7 +4,8 @@
4
4
  "properties": {
5
5
  "consortium_data_standard": {
6
6
  "type": "string",
7
- "description": "The consortium data standard used for the submssion. Examples include SDS, BIDS, etc."
7
+ "description": "The consortium data standard used for the submssion. At the moment SPARC is the only supported standard in pysoda. Future support for HEAL is planned.",
8
+ "enum": ["SPARC", "HEAL"]
8
9
  },
9
10
  "funding_consortium": {
10
11
  "type": "string",
@@ -12,7 +13,7 @@
12
13
  },
13
14
  "award_number": {
14
15
  "type": "string",
15
- "description": "The award number associated with the funding. This is typically a unique identifier assigned by the funding agency."
16
+ "description": "The award number associated with the funding. This is typically a unique identifier assigned by the funding agency. TODO: Check regex coverage for RE-JOIN before applying pattern."
16
17
  },
17
18
  "milestone_achieved": {
18
19
  "type": "array",
@@ -21,8 +22,10 @@
21
22
  },
22
23
  "milestone_completion_date": {
23
24
  "type": "string",
24
- "description": "The date when the milestone was completed. This should be in ISO 8601 format."
25
+ "description": "The date when the milestone was completed. This should be in ISO 8601 format.",
26
+ "pattern": "^([0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9]([.,][0-9]{1,9})?)?(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9]))?$"
25
27
  }
26
28
  },
27
- "required": []
29
+ "required": [],
30
+ "description": "TODO: Add funding_consortium, milestone_completion_date, and consortium_data_standard to required fields list once SODA front end has validation page."
28
31
  }
@@ -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
@@ -138,7 +146,7 @@ def validation_error_message(e):
138
146
  input: e (ValidationError): The validation error from the validate library.
139
147
  output: human readable message for the validation error.
140
148
  """
141
- msg = "There following error was found in your metadata:"
149
+ msg = "The following error was found in your metadata:"
142
150
  e_type = e.schema_path.pop().strip()
143
151
  print(e.schema_path)
144
152
  if e_type == "type":
@@ -1,5 +1,5 @@
1
1
  from pennsieve2.pennsieve import Pennsieve
2
- from .exceptions import PennsieveAgentError
2
+ from .exceptions import PennsieveAgentError, PennsieveAgentRPCError, PennsieveAccountInvalid
3
3
 
4
4
  def connect_pennsieve_client(account_name):
5
5
  """
@@ -8,4 +8,13 @@ def connect_pennsieve_client(account_name):
8
8
  try:
9
9
  return Pennsieve(profile_name=account_name)
10
10
  except Exception as e:
11
- raise PennsieveAgentError(f"Could not connect to the Pennsieve agent: {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,17 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pysodafair
3
- Version: 0.1.66
3
+ Version: 0.1.68
4
4
  Summary: Pysoda package for Fairdataihub tools
5
5
  License: MIT
6
6
  License-File: LICENSE
7
7
  Author: Christopher Marroquin
8
8
  Author-email: cmarroquin@calmi2.org
9
- Requires-Python: >=3.6
9
+ Requires-Python: >=3.9
10
10
  Classifier: License :: OSI Approved :: MIT License
11
11
  Classifier: Programming Language :: Python :: 3
12
- Classifier: Programming Language :: Python :: 3.6
13
- Classifier: Programming Language :: Python :: 3.7
14
- Classifier: Programming Language :: Python :: 3.8
15
12
  Classifier: Programming Language :: Python :: 3.9
16
13
  Classifier: Programming Language :: Python :: 3.10
17
14
  Classifier: Programming Language :: Python :: 3.11
@@ -4,13 +4,13 @@ pysoda/core/__init__.py,sha256=bXnu4fYemJ915xId8nwh-Gy2IUEvVuoS9Hk3CXyJp8U,235
4
4
  pysoda/core/dataset_generation/__init__.py,sha256=tisLmJeXLeAINXf7BdNZGi2i9vQwImWGa_S5FNwQFbs,299
5
5
  pysoda/core/dataset_generation/manifestSession/__init__.py,sha256=kqkTAFEhluyQJ9mmMhYQTh1tgowBeJdH-Q9s5ifGkSE,51
6
6
  pysoda/core/dataset_generation/manifestSession/manifest_session.py,sha256=TML_KOJ-1REohqSaHCZNFJrbDR1UDQ9sFcithJRx9t8,4669
7
- pysoda/core/dataset_generation/upload.py,sha256=lnU6od0LtJOjuzNj-VX2HzOp66xUBr1V6nXtpJjkdIg,172804
7
+ pysoda/core/dataset_generation/upload.py,sha256=XC1ELfTKEV9T0HY8xxUa3poGTq9H2sL-VT356IDrXH4,172819
8
8
  pysoda/core/dataset_importing/__init__.py,sha256=NbWs4HAqqydFLACFoVwl6g457dkYvjiZKx9NzB9wFxE,114
9
9
  pysoda/core/dataset_importing/import_dataset.py,sha256=cx8qCQmR_BKdC2G-jzqE4dWg2JhkOS3jM8kpjLIsObk,29487
10
10
  pysoda/core/metadata/__init__.py,sha256=Tkx6vdEQEPwAHmVSc9GfdbDZUkvuAqEgHJOxRDeX5vE,821
11
- pysoda/core/metadata/code_description.py,sha256=sWbRPWPf32txpN048oQ9lT3y7GAoDkrS-GHivwwv55Y,4104
11
+ pysoda/core/metadata/code_description.py,sha256=DlHcbKkegZ_hJ1kYrYX0wUBW0h0P_ew_CCE3Yt0-FiQ,5964
12
12
  pysoda/core/metadata/constants.py,sha256=PR78huqBKdBpzDUGxVKy9YW3pUrJ4ftuF4MfqpNb1bU,1052
13
- pysoda/core/metadata/dataset_description.py,sha256=icIRH2TYXWqrc4gu_RUK0yP_WQmy9BGAkVOEVQ--GfA,10275
13
+ pysoda/core/metadata/dataset_description.py,sha256=KH7koPzGaB7wy3w_jwBfIHior7zZnsn9onsoWpYglq4,10356
14
14
  pysoda/core/metadata/excel_utils.py,sha256=FQ8-DBq2lxFdpDUZeABfFKe284JzRTe6AYPxEw7yzsg,1216
15
15
  pysoda/core/metadata/helpers.py,sha256=jDf4KPTbx4unHT7pDlFEa0jls1OZY-dpdKf3kUGMtvg,10609
16
16
  pysoda/core/metadata/manifest.py,sha256=LO8ZP8oJ0vEjbXU0yPVEYm62MLOZwIYVUaW4VEczO9k,4195
@@ -18,29 +18,30 @@ pysoda/core/metadata/manifest_package/__init__.py,sha256=7qiNT62WsI1LKb-lvnK31lW
18
18
  pysoda/core/metadata/manifest_package/manifest.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  pysoda/core/metadata/manifest_package/manifest_import.py,sha256=5rKOBf-NMt2dVsPJYotk5V855wnmtiMqrpknSOYOEl0,1347
20
20
  pysoda/core/metadata/manifest_package/manifest_writer.py,sha256=AjtKdGYd9e2TS9hpPTPXH0mqer5PH_hLbxvYQPhhFHg,27358
21
- pysoda/core/metadata/performances.py,sha256=s5nPF9il8m73PADK6YMSfWT0JADn-NDpXzB7K7X3X1o,1851
22
- pysoda/core/metadata/resources.py,sha256=v0CUl5Lg-_2DkR0h9NJMBQkCkydQL15qzRZvkFDnMdc,1790
23
- pysoda/core/metadata/samples.py,sha256=sSaHZ0LEYd6oQFKQxoS0xb1m4k1NPNqKxp38CJjzi3U,8389
24
- pysoda/core/metadata/sites.py,sha256=gpmC7_WIi2wtaCa8BpS0eUYJPeBaOxwXyLIjVEXBhJA,1751
25
- pysoda/core/metadata/subjects.py,sha256=kaerhYVUsz2BJSGIvETbl1YSliYAGMPg2-ne8AnsXdU,7968
21
+ pysoda/core/metadata/performances.py,sha256=0DZevDiGJ1Zf493Ayc0f8rSS2-5w32nE2RLKq6-XTyA,2527
22
+ pysoda/core/metadata/resources.py,sha256=6EGR6f70pMj2gOxA9ZvJ78yhPPhafw3UM8aRNsTQCyE,2563
23
+ pysoda/core/metadata/samples.py,sha256=IOUPpRkGI47Cv7wJThFlLzocydqTKI0SQ6uy-f6XHQk,6360
24
+ pysoda/core/metadata/sites.py,sha256=Dh0UTesFj_MFNEmNp_0PeRLR4AQ4prEdRxybkyGfiyI,2427
25
+ pysoda/core/metadata/subjects.py,sha256=vIe29xj3HdMFqh8y4H4-zbTY2xm62h4N4Llv0v-7nVM,9046
26
26
  pysoda/core/metadata/submission.py,sha256=Ym949kEIzdjjyyNWCvtP8OftFKKUBDQy98HOOTUEej4,3002
27
27
  pysoda/core/metadata/text_metadata.py,sha256=GYiRxNiQp5Lw-6na80jcrvQBMF4-KHp3CGK2Mmv6TFI,1846
28
+ pysoda/core/metadata_templates/.dss,sha256=mAgD4xcDXkcAx01ZfZ-vJbD_Klkkgago2s1XyQNNwss,12
28
29
  pysoda/core/metadata_templates/CHANGES,sha256=XIdY2AIWPX8aEtMJeXprL1kHXRH173l5ubTxzMDoCH4,78
29
30
  pysoda/core/metadata_templates/LICENSE,sha256=XIdY2AIWPX8aEtMJeXprL1kHXRH173l5ubTxzMDoCH4,78
30
31
  pysoda/core/metadata_templates/README.md,sha256=rIxGEC2qoPl4YcSj-G64MX5fmM1JdNed1KCDUFVYRnc,129
31
32
  pysoda/core/metadata_templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
33
  pysoda/core/metadata_templates/code_description.xlsx,sha256=hONjq4nmDxtHbMmCTAcrosoIA6rxnlt1fub-EjDFDS0,12007
33
34
  pysoda/core/metadata_templates/code_parameters.xlsx,sha256=vhHX99V7Abye8dN3GkjzFuJ8g9MUOSQDfAMRrR8DehQ,6027
34
- pysoda/core/metadata_templates/dataset_description.xlsx,sha256=qTwz8_J0JeZdm_wGzq6-tMnZbKWJlmYdBSR4JN88Saw,16138
35
+ pysoda/core/metadata_templates/dataset_description.xlsx,sha256=G79X1UKI5LEu30asVWKAQF_9lxXOlX9rOZjDhuln7NA,18417
35
36
  pysoda/core/metadata_templates/manifest.xlsx,sha256=uHUVfmy_jcNeW5qctDLyymOdhyVOwRJCQavungPBR0o,5273
36
37
  pysoda/core/metadata_templates/performances.xlsx,sha256=jjiPBb669FHjC7W8hTo3gChTspX5DluBdrvO6UZhFOk,5184
37
38
  pysoda/core/metadata_templates/resources.xlsx,sha256=mT-KbF1KzZjV3AifENZHkY2nX6AHB6sLO34pX_6xcAI,5155
38
- pysoda/core/metadata_templates/samples.xlsx,sha256=5ramdIEUjk0d5rB6RvE_3aiE4vaKz_cKX7KBI_TE7sc,8448
39
+ pysoda/core/metadata_templates/samples.xlsx,sha256=AQtHRIssRrrPjBSHPX5-bNE0b2rWL3OafaHZhiyp0cY,8462
39
40
  pysoda/core/metadata_templates/sites.xlsx,sha256=C_XehlNXZSUUxjayZr0XW6OvuGRxoFzA8xM6OklXszM,8081
40
- pysoda/core/metadata_templates/subjects.xlsx,sha256=_lFYP2WkTz-n_IfocaBgZWYwFtNdaDIFtYoXAQ4AcQE,8621
41
+ pysoda/core/metadata_templates/subjects.xlsx,sha256=CqhZvmHhwN_JPtr4bFlm9tFkUlOoji959jLl5KaOGOg,8626
41
42
  pysoda/core/metadata_templates/subjects_pools_samples_structure.xlsx,sha256=AXUBNtYBIAN9C3l7-clGFTCnyLkSFhuoFca227jbxgc,12154
42
43
  pysoda/core/metadata_templates/subjects_pools_samples_structure_example.xlsx,sha256=69DcsxOR6H8oTZZq43vOuoyud1D_BOXdzLxJlotdQVk,12154
43
- pysoda/core/metadata_templates/submission.xlsx,sha256=DIVcio7QyR-6-o1esDn1Gl7vu19xSCyGHhwGkW3RaBI,6002
44
+ pysoda/core/metadata_templates/submission.xlsx,sha256=gWQy0_ZnluGcSOwLO8P2jFJLVWSKtXn2DTJx150ZV9w,5039
44
45
  pysoda/core/permissions/__init__.py,sha256=YUoJACCe8SO7_TXrn27jzz5gWx1xvCMPy37cNPmV2Mw,85
45
46
  pysoda/core/permissions/permissions.py,sha256=l8OTNhzjidF7PrL74PYjcpxVYd1YQpgcs202yh4CJyg,1076
46
47
  pysoda/core/pysoda/__init__.py,sha256=gNQ5O-A6wqTc88OGGfLy0UoeFxgPi0T5NMtF7YdUY_U,58
@@ -49,29 +50,29 @@ pysoda/core/pysoda/soda_object.py,sha256=ISkV2uRREp-ScHt5_ZH_4K20O3veVxYGnP-9Avv
49
50
  pysoda/core/upload_manifests/__init__.py,sha256=SOiyflYmZDtkLwWpeu7flyn3J2SAj9WL4y82O6cEpzg,74
50
51
  pysoda/core/upload_manifests/upload_manifests.py,sha256=Hd2XSXYieG-EMcPTLSYXvdtraipp1XBSo5cGpZR-vbA,1223
51
52
  pysoda/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
- pysoda/schema/code_description.json,sha256=FJOyJBC2TKjTTdtew3B4wdq_WIrti-r2F-M6t5OVNB0,17854
53
- pysoda/schema/dataset_description.json,sha256=U725xGDmy4oeJe0IOFcJc7a0oA5pAbpsRVQsjhPEj1k,10069
54
- pysoda/schema/manifest.json,sha256=dClcVIR3IlesjWC9peLAnyuIECwNDHfbIFmCsj9l2Wk,3006
55
- pysoda/schema/performances.json,sha256=TJw7ERC6eMR-9cImOg7xoEVRyOR4xViJqZO8U2X2OXo,1254
56
- pysoda/schema/resources.json,sha256=9-rwCTX523V5XaKmXLTUGzackOl7tk-qijbbBDoeuhY,1232
57
- pysoda/schema/samples.json,sha256=NvuYhskV9QFrkSX4ant9G4KFCe9JLnVG98vDv2Puuvk,3340
58
- pysoda/schema/sites.json,sha256=lMkglgi4R7_qqUHh6uwbZ38TjkUzRKGY9pdF1CpZh4E,1133
53
+ pysoda/schema/code_description.json,sha256=UhZjGNp1LLA035FhBm0ThmKWoQzlYc6R51TTGtba6qM,20607
54
+ pysoda/schema/dataset_description.json,sha256=hhVLzKm4B-WCROkxbV8THsHPjP_1pIJLynBdEH-0uaA,10298
55
+ pysoda/schema/manifest.json,sha256=u78jhXWEmp_fR_2TLyvorWP3fUNTATFj6AgmeYwKwwo,3043
56
+ pysoda/schema/performances.json,sha256=2d8l9SrNVpHlrbHqw6qEwMG0i7DMvFybm5IqcOcg6LA,1927
57
+ pysoda/schema/resources.json,sha256=og4bKPecUp4Z9Iag_EDrs8LRaznfT3XbDW4Anqi0Wj0,1349
58
+ pysoda/schema/samples.json,sha256=sXMxp_8LvvrWTQKm_qraLZPNIb0WO7ZpPaA6fXRIcgk,4255
59
+ pysoda/schema/sites.json,sha256=wmpjuPpwdmqUvh094NUgjhia0aNzKxTgM8MpnIVzecU,1288
59
60
  pysoda/schema/soda_schema.json,sha256=QSe8G39wOMO5wS_MUU0mW6yeM4etufACE6iuAzZMBoA,19290
60
- pysoda/schema/subjects.json,sha256=j5au8ak0Q_Nxs6EDoJ7FJDr0SeS0Y-X40X-XQwSnRts,4799
61
- pysoda/schema/submission_schema.json,sha256=b0FfBP_fDFxU8vT1mDAThbUyYMJA7PJ1S6lOpdPpSkY,1103
61
+ pysoda/schema/subjects.json,sha256=Dmst7DFzrmuZGW6rkBlwR6MWFAAucgGkZrs6EAHYcTA,6062
62
+ pysoda/schema/submission_schema.json,sha256=-ASgTEHjGtBQhrEN5P78DFAEIo8VGstftfcb0sk2F7U,1609
62
63
  pysoda/utils/__init__.py,sha256=cdrc-Ueb7djdA9rPl5FR3nsinCxfOB9lbOhicNCbeCY,1243
63
64
  pysoda/utils/authentication.py,sha256=Ed6xXaCSyi23qGz_LkdDB-Cjum5G5az_tMhSWKBGVSY,11943
64
65
  pysoda/utils/config.py,sha256=8UC0j89ihuMnPCwl9bTVUupC9Kg_39ly9Hju5W4OmWo,2471
65
- pysoda/utils/exceptions.py,sha256=H4_bvp-Zq4e-_GHQ5n3wxg4cH12iVgJZEw8tz8jRGfw,4812
66
+ pysoda/utils/exceptions.py,sha256=mvGgfag0KN7GvSqb75RkY3eZsGSlfCnjxgSNERxsAmc,5068
66
67
  pysoda/utils/logger.py,sha256=fxqJoqxe_wdVTq7IXN5QsWSC-z7mSfsLaJsKU9-UhqA,211
67
68
  pysoda/utils/metadata_utils.py,sha256=nCQc24biSsrpnXbjXiZEtISWkfBS-CV00sv5MMydoww,1804
68
- pysoda/utils/pennsieveAgentUtils.py,sha256=Un0qnVQm1DNg3u5l7PZI-X61sNaJtSmDlcXP_lRbv8Q,422
69
+ pysoda/utils/pennsieveAgentUtils.py,sha256=yoHYBl2EXmLA0Ty-zrYG8LYhofnR8II9OkcE2c6EGqE,1439
69
70
  pysoda/utils/pennsieveUtils.py,sha256=B_L2NicOR3eQin0sd7TsRLWNDSxhSxyGgUJCGoWBVkM,4622
70
71
  pysoda/utils/profile.py,sha256=di4D_IE1rGSfHl0-SRVjrJK2bCdedW4ugp0W-j1HarQ,937
71
72
  pysoda/utils/schema_validation.py,sha256=3w3FRPyn4P3xMhITzItk-jYte8TTlNrgCWmY-s05x9Y,4438
72
73
  pysoda/utils/time_utils.py,sha256=g5848bivtzWj6TDoWo6CcohF-THxShETP4qTyHTjBWw,131
73
74
  pysoda/utils/upload_utils.py,sha256=-BCvfXsJSFqnwEZVCFQX1PLfkdeW0gyGLjLGW6Uxdf8,4607
74
- pysodafair-0.1.66.dist-info/METADATA,sha256=CFPeQYRgKDKEjoreN1iv9vV28KcV8Xbbdsp26H99AeI,7011
75
- pysodafair-0.1.66.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
76
- pysodafair-0.1.66.dist-info/licenses/LICENSE,sha256=Jlt0uGnx87qPRGXPQHsBkg_S7MOsYS2E9Rh1zy47bfw,1082
77
- pysodafair-0.1.66.dist-info/RECORD,,
75
+ pysodafair-0.1.68.dist-info/METADATA,sha256=8qrQ_Rks5WrW_lZifAyehbKo6s-MNhNOWIuGwQZmQuA,6861
76
+ pysodafair-0.1.68.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
77
+ pysodafair-0.1.68.dist-info/licenses/LICENSE,sha256=Jlt0uGnx87qPRGXPQHsBkg_S7MOsYS2E9Rh1zy47bfw,1082
78
+ pysodafair-0.1.68.dist-info/RECORD,,