diff --git a/docker/swarm/README_zeke_stack_on_linux.md b/docker/swarm/README_zeke_stack_on_linux.md index 97b7d0bf65..4fe974eb78 100644 --- a/docker/swarm/README_zeke_stack_on_linux.md +++ b/docker/swarm/README_zeke_stack_on_linux.md @@ -14,6 +14,11 @@ ./build.sh --skip-maven --skip-sudo all localhost:5000/virtualcell dev_zeke popd ``` + 3. ```bash + pushd ../build + ./build.sh --skip-maven --skip-sudo rest localhost:5000/virtualcell dev_zeke + popd + ``` 3. Run Quarkus in Terminal ``` bash diff --git a/python-restclient/.github/workflows/python.yml b/python-restclient/.github/workflows/python.yml index 2c82355c84..33681d21d7 100644 --- a/python-restclient/.github/workflows/python.yml +++ b/python-restclient/.github/workflows/python.yml @@ -16,9 +16,9 @@ jobs: python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies diff --git a/python-restclient/.openapi-generator/FILES b/python-restclient/.openapi-generator/FILES index 8586892bc2..0da7ec2a2d 100644 --- a/python-restclient/.openapi-generator/FILES +++ b/python-restclient/.openapi-generator/FILES @@ -3,17 +3,28 @@ README.md docs/AccesTokenRepresentationRecord.md docs/AdminResourceApi.md +docs/AnalyzedResultsFromFieldData.md docs/BatchSystemType.md docs/BioModel.md docs/BioModelResourceApi.md docs/BiomodelRef.md +docs/DataIdentifier.md docs/DetailedState.md +docs/Domain.md +docs/Extent.md +docs/ExternalDataIdentifier.md +docs/FieldDataReference.md +docs/FieldDataResourceApi.md +docs/FieldDataSaveResults.md +docs/FieldDataShape.md docs/HelloWorldApi.md docs/HelloWorldMessage.md docs/HtcJobID.md +docs/ISize.md docs/Identity.md docs/KeyValue.md docs/MathmodelRef.md +docs/Origin.md docs/Publication.md docs/PublicationResourceApi.md docs/SchedulerStatus.md @@ -32,6 +43,8 @@ docs/UserLoginInfoForMapping.md docs/UserRegistrationInfo.md docs/UsersResourceApi.md docs/VCSimulationIdentifier.md +docs/VariableDomain.md +docs/VariableType.md pyproject.toml test/__init__.py tox.ini @@ -39,6 +52,7 @@ vcell_client/__init__.py vcell_client/api/__init__.py vcell_client/api/admin_resource_api.py vcell_client/api/bio_model_resource_api.py +vcell_client/api/field_data_resource_api.py vcell_client/api/hello_world_api.py vcell_client/api/publication_resource_api.py vcell_client/api/simulation_resource_api.py @@ -49,15 +63,25 @@ vcell_client/configuration.py vcell_client/exceptions.py vcell_client/models/__init__.py vcell_client/models/acces_token_representation_record.py +vcell_client/models/analyzed_results_from_field_data.py vcell_client/models/batch_system_type.py vcell_client/models/bio_model.py vcell_client/models/biomodel_ref.py +vcell_client/models/data_identifier.py vcell_client/models/detailed_state.py +vcell_client/models/domain.py +vcell_client/models/extent.py +vcell_client/models/external_data_identifier.py +vcell_client/models/field_data_reference.py +vcell_client/models/field_data_save_results.py +vcell_client/models/field_data_shape.py vcell_client/models/hello_world_message.py vcell_client/models/htc_job_id.py +vcell_client/models/i_size.py vcell_client/models/identity.py vcell_client/models/key_value.py vcell_client/models/mathmodel_ref.py +vcell_client/models/origin.py vcell_client/models/publication.py vcell_client/models/scheduler_status.py vcell_client/models/simulation_execution_status_record.py @@ -72,6 +96,8 @@ vcell_client/models/user.py vcell_client/models/user_identity_json_safe.py vcell_client/models/user_login_info_for_mapping.py vcell_client/models/user_registration_info.py +vcell_client/models/variable_domain.py +vcell_client/models/variable_type.py vcell_client/models/vc_simulation_identifier.py vcell_client/py.typed vcell_client/rest.py diff --git a/python-restclient/README.md b/python-restclient/README.md index 2acb9c319c..835d131595 100644 --- a/python-restclient/README.md +++ b/python-restclient/README.md @@ -89,6 +89,11 @@ Class | Method | HTTP request | Description *BioModelResourceApi* | [**delete_bio_model**](docs/BioModelResourceApi.md#delete_bio_model) | **DELETE** /api/v1/bioModel/{bioModelID} | Delete the BioModel from VCell's database. *BioModelResourceApi* | [**get_biomodel_by_id**](docs/BioModelResourceApi.md#get_biomodel_by_id) | **GET** /api/v1/bioModel/{bioModelID} | Get BioModel information in JSON format by ID. *BioModelResourceApi* | [**upload_bio_model**](docs/BioModelResourceApi.md#upload_bio_model) | **POST** /api/v1/bioModel/upload_bioModel | Upload the BioModel to VCell database. Returns BioModel ID. +*FieldDataResourceApi* | [**analyze_field_data_file**](docs/FieldDataResourceApi.md#analyze_field_data_file) | **POST** /api/v1/fieldData/analyzeFieldDataFile | Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. +*FieldDataResourceApi* | [**create_field_data_from_analyzed_file**](docs/FieldDataResourceApi.md#create_field_data_from_analyzed_file) | **POST** /api/v1/fieldData/createFieldDataFromAnalyzedFile | Take the analyzed results of the field data, modify it to your liking, then save it on the server. +*FieldDataResourceApi* | [**delete_field_data**](docs/FieldDataResourceApi.md#delete_field_data) | **DELETE** /api/v1/fieldData/delete/{fieldDataID} | Delete the selected field data. +*FieldDataResourceApi* | [**get_all_field_data_ids**](docs/FieldDataResourceApi.md#get_all_field_data_ids) | **GET** /api/v1/fieldData/IDs | Get all of the ids used to identify, and retrieve field data. +*FieldDataResourceApi* | [**get_field_data_shape_from_id**](docs/FieldDataResourceApi.md#get_field_data_shape_from_id) | **GET** /api/v1/fieldData/fieldDataShape/{fieldDataID} | Get the shape of the field data. That is it's size, origin, extent, and data identifiers. *HelloWorldApi* | [**get_hello_world**](docs/HelloWorldApi.md#get_hello_world) | **GET** /api/v1/helloworld | Get hello world message. *PublicationResourceApi* | [**create_publication**](docs/PublicationResourceApi.md#create_publication) | **POST** /api/v1/publications | Create publication *PublicationResourceApi* | [**delete_publication**](docs/PublicationResourceApi.md#delete_publication) | **DELETE** /api/v1/publications/{id} | Delete publication @@ -113,15 +118,25 @@ Class | Method | HTTP request | Description ## Documentation For Models - [AccesTokenRepresentationRecord](docs/AccesTokenRepresentationRecord.md) + - [AnalyzedResultsFromFieldData](docs/AnalyzedResultsFromFieldData.md) - [BatchSystemType](docs/BatchSystemType.md) - [BioModel](docs/BioModel.md) - [BiomodelRef](docs/BiomodelRef.md) + - [DataIdentifier](docs/DataIdentifier.md) - [DetailedState](docs/DetailedState.md) + - [Domain](docs/Domain.md) + - [Extent](docs/Extent.md) + - [ExternalDataIdentifier](docs/ExternalDataIdentifier.md) + - [FieldDataReference](docs/FieldDataReference.md) + - [FieldDataSaveResults](docs/FieldDataSaveResults.md) + - [FieldDataShape](docs/FieldDataShape.md) - [HelloWorldMessage](docs/HelloWorldMessage.md) - [HtcJobID](docs/HtcJobID.md) + - [ISize](docs/ISize.md) - [Identity](docs/Identity.md) - [KeyValue](docs/KeyValue.md) - [MathmodelRef](docs/MathmodelRef.md) + - [Origin](docs/Origin.md) - [Publication](docs/Publication.md) - [SchedulerStatus](docs/SchedulerStatus.md) - [SimulationExecutionStatusRecord](docs/SimulationExecutionStatusRecord.md) @@ -137,6 +152,8 @@ Class | Method | HTTP request | Description - [UserLoginInfoForMapping](docs/UserLoginInfoForMapping.md) - [UserRegistrationInfo](docs/UserRegistrationInfo.md) - [VCSimulationIdentifier](docs/VCSimulationIdentifier.md) + - [VariableDomain](docs/VariableDomain.md) + - [VariableType](docs/VariableType.md) diff --git a/python-restclient/docs/AccessTokenRepresentation.md b/python-restclient/docs/AccessTokenRepresentation.md deleted file mode 100644 index 40fb2223b5..0000000000 --- a/python-restclient/docs/AccessTokenRepresentation.md +++ /dev/null @@ -1,32 +0,0 @@ -# AccessTokenRepresentation - - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**token** | **str** | | [optional] -**creation_date_seconds** | **int** | | [optional] -**expire_date_seconds** | **int** | | [optional] -**user_id** | **str** | | [optional] -**user_key** | **str** | | [optional] - -## Example - -```python -from vcell_client.models.access_token_representation import AccessTokenRepresentation - -# TODO update the JSON string below -json = "{}" -# create an instance of AccessTokenRepresentation from a JSON string -access_token_representation_instance = AccessTokenRepresentation.from_json(json) -# print the JSON string representation of the object -print AccessTokenRepresentation.to_json() - -# convert the object into a dict -access_token_representation_dict = access_token_representation_instance.to_dict() -# create an instance of AccessTokenRepresentation from a dict -access_token_representation_form_dict = access_token_representation.from_dict(access_token_representation_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/python-restclient/docs/AnalyzedResultsFromFieldData.md b/python-restclient/docs/AnalyzedResultsFromFieldData.md new file mode 100644 index 0000000000..3a5a347df8 --- /dev/null +++ b/python-restclient/docs/AnalyzedResultsFromFieldData.md @@ -0,0 +1,35 @@ +# AnalyzedResultsFromFieldData + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**short_spec_data** | **List[List[List[int]]]** | | [optional] +**var_names** | **List[str]** | | [optional] +**times** | **List[float]** | | [optional] +**origin** | [**Origin**](Origin.md) | | [optional] +**extent** | [**Extent**](Extent.md) | | [optional] +**isize** | [**ISize**](ISize.md) | | [optional] +**annotation** | **str** | | [optional] +**name** | **str** | | [optional] + +## Example + +```python +from vcell_client.models.analyzed_results_from_field_data import AnalyzedResultsFromFieldData + +# TODO update the JSON string below +json = "{}" +# create an instance of AnalyzedResultsFromFieldData from a JSON string +analyzed_results_from_field_data_instance = AnalyzedResultsFromFieldData.from_json(json) +# print the JSON string representation of the object +print AnalyzedResultsFromFieldData.to_json() + +# convert the object into a dict +analyzed_results_from_field_data_dict = analyzed_results_from_field_data_instance.to_dict() +# create an instance of AnalyzedResultsFromFieldData from a dict +analyzed_results_from_field_data_form_dict = analyzed_results_from_field_data.from_dict(analyzed_results_from_field_data_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/python-restclient/docs/BioModelResourceApi.md b/python-restclient/docs/BioModelResourceApi.md index 5f1a6b4969..7fb0b2e4b9 100644 --- a/python-restclient/docs/BioModelResourceApi.md +++ b/python-restclient/docs/BioModelResourceApi.md @@ -132,7 +132,8 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -**200** | OK | - | +**200** | return BioModel information in JSON format | - | +**404** | BioModel not found | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/python-restclient/docs/DataIdentifier.md b/python-restclient/docs/DataIdentifier.md new file mode 100644 index 0000000000..703055bd97 --- /dev/null +++ b/python-restclient/docs/DataIdentifier.md @@ -0,0 +1,34 @@ +# DataIdentifier + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | | [optional] +**display_name** | **str** | | [optional] +**variable_type** | [**VariableType**](VariableType.md) | | [optional] +**domain** | [**Domain**](Domain.md) | | [optional] +**b_function** | **bool** | | [optional] +**function** | **bool** | | [optional] +**visible** | **bool** | | [optional] + +## Example + +```python +from vcell_client.models.data_identifier import DataIdentifier + +# TODO update the JSON string below +json = "{}" +# create an instance of DataIdentifier from a JSON string +data_identifier_instance = DataIdentifier.from_json(json) +# print the JSON string representation of the object +print DataIdentifier.to_json() + +# convert the object into a dict +data_identifier_dict = data_identifier_instance.to_dict() +# create an instance of DataIdentifier from a dict +data_identifier_form_dict = data_identifier.from_dict(data_identifier_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/python-restclient/docs/Simulation.md b/python-restclient/docs/Domain.md similarity index 57% rename from python-restclient/docs/Simulation.md rename to python-restclient/docs/Domain.md index 0d1753ab86..ddcfffc546 100644 --- a/python-restclient/docs/Simulation.md +++ b/python-restclient/docs/Domain.md @@ -1,4 +1,4 @@ -# Simulation +# Domain ## Properties @@ -9,19 +9,19 @@ Name | Type | Description | Notes ## Example ```python -from vcell_client.models.simulation import Simulation +from vcell_client.models.domain import Domain # TODO update the JSON string below json = "{}" -# create an instance of Simulation from a JSON string -simulation_instance = Simulation.from_json(json) +# create an instance of Domain from a JSON string +domain_instance = Domain.from_json(json) # print the JSON string representation of the object -print Simulation.to_json() +print Domain.to_json() # convert the object into a dict -simulation_dict = simulation_instance.to_dict() -# create an instance of Simulation from a dict -simulation_form_dict = simulation.from_dict(simulation_dict) +domain_dict = domain_instance.to_dict() +# create an instance of Domain from a dict +domain_form_dict = domain.from_dict(domain_dict) ``` [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/python-restclient/docs/Extent.md b/python-restclient/docs/Extent.md new file mode 100644 index 0000000000..3f6be0783c --- /dev/null +++ b/python-restclient/docs/Extent.md @@ -0,0 +1,30 @@ +# Extent + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**x** | **float** | | [optional] +**y** | **float** | | [optional] +**z** | **float** | | [optional] + +## Example + +```python +from vcell_client.models.extent import Extent + +# TODO update the JSON string below +json = "{}" +# create an instance of Extent from a JSON string +extent_instance = Extent.from_json(json) +# print the JSON string representation of the object +print Extent.to_json() + +# convert the object into a dict +extent_dict = extent_instance.to_dict() +# create an instance of Extent from a dict +extent_form_dict = extent.from_dict(extent_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/python-restclient/docs/ExternalDataIdentifier.md b/python-restclient/docs/ExternalDataIdentifier.md new file mode 100644 index 0000000000..72fd3bbbac --- /dev/null +++ b/python-restclient/docs/ExternalDataIdentifier.md @@ -0,0 +1,34 @@ +# ExternalDataIdentifier + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**key** | [**KeyValue**](KeyValue.md) | | [optional] +**owner** | [**User**](User.md) | | [optional] +**name** | **str** | | [optional] +**job_index** | **int** | | [optional] +**simulation_key** | [**KeyValue**](KeyValue.md) | | [optional] +**parameter_scan_type** | **bool** | | [optional] +**data_key** | [**KeyValue**](KeyValue.md) | | [optional] + +## Example + +```python +from vcell_client.models.external_data_identifier import ExternalDataIdentifier + +# TODO update the JSON string below +json = "{}" +# create an instance of ExternalDataIdentifier from a JSON string +external_data_identifier_instance = ExternalDataIdentifier.from_json(json) +# print the JSON string representation of the object +print ExternalDataIdentifier.to_json() + +# convert the object into a dict +external_data_identifier_dict = external_data_identifier_instance.to_dict() +# create an instance of ExternalDataIdentifier from a dict +external_data_identifier_form_dict = external_data_identifier.from_dict(external_data_identifier_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/python-restclient/docs/FieldDataReference.md b/python-restclient/docs/FieldDataReference.md new file mode 100644 index 0000000000..7643b4772a --- /dev/null +++ b/python-restclient/docs/FieldDataReference.md @@ -0,0 +1,30 @@ +# FieldDataReference + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**external_data_identifier** | [**ExternalDataIdentifier**](ExternalDataIdentifier.md) | | [optional] +**external_data_annotation** | **str** | | [optional] +**external_data_id_sim_refs** | [**List[KeyValue]**](KeyValue.md) | | [optional] + +## Example + +```python +from vcell_client.models.field_data_reference import FieldDataReference + +# TODO update the JSON string below +json = "{}" +# create an instance of FieldDataReference from a JSON string +field_data_reference_instance = FieldDataReference.from_json(json) +# print the JSON string representation of the object +print FieldDataReference.to_json() + +# convert the object into a dict +field_data_reference_dict = field_data_reference_instance.to_dict() +# create an instance of FieldDataReference from a dict +field_data_reference_form_dict = field_data_reference.from_dict(field_data_reference_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/python-restclient/docs/FieldDataResourceApi.md b/python-restclient/docs/FieldDataResourceApi.md new file mode 100644 index 0000000000..773ae5c8b2 --- /dev/null +++ b/python-restclient/docs/FieldDataResourceApi.md @@ -0,0 +1,334 @@ +# vcell_client.FieldDataResourceApi + +All URIs are relative to *https://vcell-dev.cam.uchc.edu* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**analyze_field_data_file**](FieldDataResourceApi.md#analyze_field_data_file) | **POST** /api/v1/fieldData/analyzeFieldDataFile | Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. +[**create_field_data_from_analyzed_file**](FieldDataResourceApi.md#create_field_data_from_analyzed_file) | **POST** /api/v1/fieldData/createFieldDataFromAnalyzedFile | Take the analyzed results of the field data, modify it to your liking, then save it on the server. +[**delete_field_data**](FieldDataResourceApi.md#delete_field_data) | **DELETE** /api/v1/fieldData/delete/{fieldDataID} | Delete the selected field data. +[**get_all_field_data_ids**](FieldDataResourceApi.md#get_all_field_data_ids) | **GET** /api/v1/fieldData/IDs | Get all of the ids used to identify, and retrieve field data. +[**get_field_data_shape_from_id**](FieldDataResourceApi.md#get_field_data_shape_from_id) | **GET** /api/v1/fieldData/fieldDataShape/{fieldDataID} | Get the shape of the field data. That is it's size, origin, extent, and data identifiers. + + +# **analyze_field_data_file** +> AnalyzedResultsFromFieldData analyze_field_data_file(file=file, file_name=file_name) + +Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. + +### Example + +```python +import time +import os +import vcell_client +from vcell_client.models.analyzed_results_from_field_data import AnalyzedResultsFromFieldData +from vcell_client.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://vcell-dev.cam.uchc.edu +# See configuration.py for a list of all supported configuration parameters. +configuration = vcell_client.Configuration( + host = "https://vcell-dev.cam.uchc.edu" +) + + +# Enter a context with an instance of the API client +with vcell_client.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = vcell_client.FieldDataResourceApi(api_client) + file = None # bytearray | (optional) + file_name = 'file_name_example' # str | (optional) + + try: + # Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. + api_response = api_instance.analyze_field_data_file(file=file, file_name=file_name) + print("The response of FieldDataResourceApi->analyze_field_data_file:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling FieldDataResourceApi->analyze_field_data_file: %s\n" % e) +``` + + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **file** | **bytearray**| | [optional] + **file_name** | **str**| | [optional] + +### Return type + +[**AnalyzedResultsFromFieldData**](AnalyzedResultsFromFieldData.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: multipart/form-data + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | OK | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **create_field_data_from_analyzed_file** +> FieldDataSaveResults create_field_data_from_analyzed_file(analyzed_results_from_field_data=analyzed_results_from_field_data) + +Take the analyzed results of the field data, modify it to your liking, then save it on the server. + +### Example + +```python +import time +import os +import vcell_client +from vcell_client.models.analyzed_results_from_field_data import AnalyzedResultsFromFieldData +from vcell_client.models.field_data_save_results import FieldDataSaveResults +from vcell_client.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://vcell-dev.cam.uchc.edu +# See configuration.py for a list of all supported configuration parameters. +configuration = vcell_client.Configuration( + host = "https://vcell-dev.cam.uchc.edu" +) + + +# Enter a context with an instance of the API client +with vcell_client.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = vcell_client.FieldDataResourceApi(api_client) + analyzed_results_from_field_data = vcell_client.AnalyzedResultsFromFieldData() # AnalyzedResultsFromFieldData | (optional) + + try: + # Take the analyzed results of the field data, modify it to your liking, then save it on the server. + api_response = api_instance.create_field_data_from_analyzed_file(analyzed_results_from_field_data=analyzed_results_from_field_data) + print("The response of FieldDataResourceApi->create_field_data_from_analyzed_file:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling FieldDataResourceApi->create_field_data_from_analyzed_file: %s\n" % e) +``` + + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **analyzed_results_from_field_data** | [**AnalyzedResultsFromFieldData**](AnalyzedResultsFromFieldData.md)| | [optional] + +### Return type + +[**FieldDataSaveResults**](FieldDataSaveResults.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | OK | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_field_data** +> delete_field_data(field_data_id) + +Delete the selected field data. + +### Example + +```python +import time +import os +import vcell_client +from vcell_client.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://vcell-dev.cam.uchc.edu +# See configuration.py for a list of all supported configuration parameters. +configuration = vcell_client.Configuration( + host = "https://vcell-dev.cam.uchc.edu" +) + + +# Enter a context with an instance of the API client +with vcell_client.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = vcell_client.FieldDataResourceApi(api_client) + field_data_id = 'field_data_id_example' # str | + + try: + # Delete the selected field data. + api_instance.delete_field_data(field_data_id) + except Exception as e: + print("Exception when calling FieldDataResourceApi->delete_field_data: %s\n" % e) +``` + + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **field_data_id** | **str**| | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**204** | No Content | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_all_field_data_ids** +> List[FieldDataReference] get_all_field_data_ids() + +Get all of the ids used to identify, and retrieve field data. + +### Example + +```python +import time +import os +import vcell_client +from vcell_client.models.field_data_reference import FieldDataReference +from vcell_client.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://vcell-dev.cam.uchc.edu +# See configuration.py for a list of all supported configuration parameters. +configuration = vcell_client.Configuration( + host = "https://vcell-dev.cam.uchc.edu" +) + + +# Enter a context with an instance of the API client +with vcell_client.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = vcell_client.FieldDataResourceApi(api_client) + + try: + # Get all of the ids used to identify, and retrieve field data. + api_response = api_instance.get_all_field_data_ids() + print("The response of FieldDataResourceApi->get_all_field_data_ids:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling FieldDataResourceApi->get_all_field_data_ids: %s\n" % e) +``` + + + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List[FieldDataReference]**](FieldDataReference.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | OK | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_field_data_shape_from_id** +> FieldDataShape get_field_data_shape_from_id(field_data_id) + +Get the shape of the field data. That is it's size, origin, extent, and data identifiers. + +### Example + +```python +import time +import os +import vcell_client +from vcell_client.models.field_data_shape import FieldDataShape +from vcell_client.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://vcell-dev.cam.uchc.edu +# See configuration.py for a list of all supported configuration parameters. +configuration = vcell_client.Configuration( + host = "https://vcell-dev.cam.uchc.edu" +) + + +# Enter a context with an instance of the API client +with vcell_client.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = vcell_client.FieldDataResourceApi(api_client) + field_data_id = 'field_data_id_example' # str | + + try: + # Get the shape of the field data. That is it's size, origin, extent, and data identifiers. + api_response = api_instance.get_field_data_shape_from_id(field_data_id) + print("The response of FieldDataResourceApi->get_field_data_shape_from_id:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling FieldDataResourceApi->get_field_data_shape_from_id: %s\n" % e) +``` + + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **field_data_id** | **str**| | + +### Return type + +[**FieldDataShape**](FieldDataShape.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | OK | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/python-restclient/docs/FieldDataSaveResults.md b/python-restclient/docs/FieldDataSaveResults.md new file mode 100644 index 0000000000..1604a73529 --- /dev/null +++ b/python-restclient/docs/FieldDataSaveResults.md @@ -0,0 +1,29 @@ +# FieldDataSaveResults + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**field_data_name** | **str** | | [optional] +**field_data_id** | **str** | | [optional] + +## Example + +```python +from vcell_client.models.field_data_save_results import FieldDataSaveResults + +# TODO update the JSON string below +json = "{}" +# create an instance of FieldDataSaveResults from a JSON string +field_data_save_results_instance = FieldDataSaveResults.from_json(json) +# print the JSON string representation of the object +print FieldDataSaveResults.to_json() + +# convert the object into a dict +field_data_save_results_dict = field_data_save_results_instance.to_dict() +# create an instance of FieldDataSaveResults from a dict +field_data_save_results_form_dict = field_data_save_results.from_dict(field_data_save_results_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/python-restclient/docs/FieldDataShape.md b/python-restclient/docs/FieldDataShape.md new file mode 100644 index 0000000000..e02c7c2ed4 --- /dev/null +++ b/python-restclient/docs/FieldDataShape.md @@ -0,0 +1,32 @@ +# FieldDataShape + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**extent** | [**Extent**](Extent.md) | | [optional] +**origin** | [**Origin**](Origin.md) | | [optional] +**isize** | [**ISize**](ISize.md) | | [optional] +**data_identifier** | [**List[DataIdentifier]**](DataIdentifier.md) | | [optional] +**times** | **List[float]** | | [optional] + +## Example + +```python +from vcell_client.models.field_data_shape import FieldDataShape + +# TODO update the JSON string below +json = "{}" +# create an instance of FieldDataShape from a JSON string +field_data_shape_instance = FieldDataShape.from_json(json) +# print the JSON string representation of the object +print FieldDataShape.to_json() + +# convert the object into a dict +field_data_shape_dict = field_data_shape_instance.to_dict() +# create an instance of FieldDataShape from a dict +field_data_shape_form_dict = field_data_shape.from_dict(field_data_shape_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/python-restclient/docs/MapUser.md b/python-restclient/docs/ISize.md similarity index 52% rename from python-restclient/docs/MapUser.md rename to python-restclient/docs/ISize.md index 8145afae0b..adca67e859 100644 --- a/python-restclient/docs/MapUser.md +++ b/python-restclient/docs/ISize.md @@ -1,28 +1,29 @@ -# MapUser +# ISize ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**user_id** | **str** | | [optional] -**password** | **str** | | [optional] +**x** | **int** | | [optional] +**y** | **int** | | [optional] +**z** | **int** | | [optional] ## Example ```python -from vcell_client.models.map_user import MapUser +from vcell_client.models.i_size import ISize # TODO update the JSON string below json = "{}" -# create an instance of MapUser from a JSON string -map_user_instance = MapUser.from_json(json) +# create an instance of ISize from a JSON string +i_size_instance = ISize.from_json(json) # print the JSON string representation of the object -print MapUser.to_json() +print ISize.to_json() # convert the object into a dict -map_user_dict = map_user_instance.to_dict() -# create an instance of MapUser from a dict -map_user_form_dict = map_user.from_dict(map_user_dict) +i_size_dict = i_size_instance.to_dict() +# create an instance of ISize from a dict +i_size_form_dict = i_size.from_dict(i_size_dict) ``` [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/python-restclient/docs/Origin.md b/python-restclient/docs/Origin.md new file mode 100644 index 0000000000..9179fbb34f --- /dev/null +++ b/python-restclient/docs/Origin.md @@ -0,0 +1,30 @@ +# Origin + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**x** | **float** | | [optional] +**y** | **float** | | [optional] +**z** | **float** | | [optional] + +## Example + +```python +from vcell_client.models.origin import Origin + +# TODO update the JSON string below +json = "{}" +# create an instance of Origin from a JSON string +origin_instance = Origin.from_json(json) +# print the JSON string representation of the object +print Origin.to_json() + +# convert the object into a dict +origin_dict = origin_instance.to_dict() +# create an instance of Origin from a dict +origin_form_dict = origin.from_dict(origin_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/python-restclient/docs/OverrideRepresentation.md b/python-restclient/docs/OverrideRepresentation.md deleted file mode 100644 index 6864eddf9b..0000000000 --- a/python-restclient/docs/OverrideRepresentation.md +++ /dev/null @@ -1,32 +0,0 @@ -# OverrideRepresentation - - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | | [optional] -**type** | **str** | | [optional] -**expression** | **str** | | [optional] -**values** | **List[str]** | | [optional] -**cardinality** | **int** | | [optional] - -## Example - -```python -from vcell_client.models.override_representation import OverrideRepresentation - -# TODO update the JSON string below -json = "{}" -# create an instance of OverrideRepresentation from a JSON string -override_representation_instance = OverrideRepresentation.from_json(json) -# print the JSON string representation of the object -print OverrideRepresentation.to_json() - -# convert the object into a dict -override_representation_dict = override_representation_instance.to_dict() -# create an instance of OverrideRepresentation from a dict -override_representation_form_dict = override_representation.from_dict(override_representation_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/python-restclient/docs/SimulationExecutionStatus.md b/python-restclient/docs/SimulationExecutionStatus.md deleted file mode 100644 index d664fc0592..0000000000 --- a/python-restclient/docs/SimulationExecutionStatus.md +++ /dev/null @@ -1,38 +0,0 @@ -# SimulationExecutionStatus - - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**field_start_date** | **date** | | [optional] -**field_latest_update_date** | **date** | | [optional] -**field_end_date** | **date** | | [optional] -**field_compute_host** | **str** | | [optional] -**field_has_data** | **bool** | | [optional] -**field_htc_job_id** | [**HtcJobID**](HtcJobID.md) | | [optional] -**compute_host** | **str** | | [optional] -**end_date** | **date** | | [optional] -**latest_update_date** | **date** | | [optional] -**start_date** | **date** | | [optional] -**htc_job_id** | [**HtcJobID**](HtcJobID.md) | | [optional] - -## Example - -```python -from vcell_client.models.simulation_execution_status import SimulationExecutionStatus - -# TODO update the JSON string below -json = "{}" -# create an instance of SimulationExecutionStatus from a JSON string -simulation_execution_status_instance = SimulationExecutionStatus.from_json(json) -# print the JSON string representation of the object -print SimulationExecutionStatus.to_json() - -# convert the object into a dict -simulation_execution_status_dict = simulation_execution_status_instance.to_dict() -# create an instance of SimulationExecutionStatus from a dict -simulation_execution_status_form_dict = simulation_execution_status.from_dict(simulation_execution_status_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/python-restclient/docs/SimulationJobStatus.md b/python-restclient/docs/SimulationJobStatus.md deleted file mode 100644 index 25fa022403..0000000000 --- a/python-restclient/docs/SimulationJobStatus.md +++ /dev/null @@ -1,50 +0,0 @@ -# SimulationJobStatus - - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**field_time_date_stamp** | **date** | | [optional] -**field_vc_sim_id** | [**VCSimulationIdentifier**](VCSimulationIdentifier.md) | | [optional] -**field_submit_date** | **date** | | [optional] -**field_scheduler_status** | [**SchedulerStatus**](SchedulerStatus.md) | | [optional] -**field_task_id** | **int** | | [optional] -**field_simulation_message** | [**SimulationMessage**](SimulationMessage.md) | | [optional] -**field_server_id** | [**VCellServerID**](VCellServerID.md) | | [optional] -**field_job_index** | **int** | | [optional] -**field_simulation_queue_entry_status** | [**SimulationQueueEntryStatus**](SimulationQueueEntryStatus.md) | | [optional] -**field_simulation_execution_status** | [**SimulationExecutionStatus**](SimulationExecutionStatus.md) | | [optional] -**compute_host** | **str** | | [optional] -**end_date** | **date** | | [optional] -**job_index** | **int** | | [optional] -**scheduler_status** | [**SchedulerStatus**](SchedulerStatus.md) | | [optional] -**server_id** | [**VCellServerID**](VCellServerID.md) | | [optional] -**simulation_execution_status** | [**SimulationExecutionStatus**](SimulationExecutionStatus.md) | | [optional] -**simulation_queue_entry_status** | [**SimulationQueueEntryStatus**](SimulationQueueEntryStatus.md) | | [optional] -**start_date** | **date** | | [optional] -**simulation_message** | [**SimulationMessage**](SimulationMessage.md) | | [optional] -**submit_date** | **date** | | [optional] -**task_id** | **int** | | [optional] -**time_date_stamp** | **date** | | [optional] -**v_c_simulation_identifier** | [**VCSimulationIdentifier**](VCSimulationIdentifier.md) | | [optional] - -## Example - -```python -from vcell_client.models.simulation_job_status import SimulationJobStatus - -# TODO update the JSON string below -json = "{}" -# create an instance of SimulationJobStatus from a JSON string -simulation_job_status_instance = SimulationJobStatus.from_json(json) -# print the JSON string representation of the object -print SimulationJobStatus.to_json() - -# convert the object into a dict -simulation_job_status_dict = simulation_job_status_instance.to_dict() -# create an instance of SimulationJobStatus from a dict -simulation_job_status_form_dict = simulation_job_status.from_dict(simulation_job_status_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/python-restclient/docs/SimulationQueueEntryStatus.md b/python-restclient/docs/SimulationQueueEntryStatus.md deleted file mode 100644 index 28b15d948e..0000000000 --- a/python-restclient/docs/SimulationQueueEntryStatus.md +++ /dev/null @@ -1,33 +0,0 @@ -# SimulationQueueEntryStatus - - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**field_queue_priority** | **int** | | [optional] -**field_queue_date** | **date** | | [optional] -**field_queue_id** | [**SimulationQueueID**](SimulationQueueID.md) | | [optional] -**queue_date** | **date** | | [optional] -**queue_id** | [**SimulationQueueID**](SimulationQueueID.md) | | [optional] -**queue_priority** | **int** | | [optional] - -## Example - -```python -from vcell_client.models.simulation_queue_entry_status import SimulationQueueEntryStatus - -# TODO update the JSON string below -json = "{}" -# create an instance of SimulationQueueEntryStatus from a JSON string -simulation_queue_entry_status_instance = SimulationQueueEntryStatus.from_json(json) -# print the JSON string representation of the object -print SimulationQueueEntryStatus.to_json() - -# convert the object into a dict -simulation_queue_entry_status_dict = simulation_queue_entry_status_instance.to_dict() -# create an instance of SimulationQueueEntryStatus from a dict -simulation_queue_entry_status_form_dict = simulation_queue_entry_status.from_dict(simulation_queue_entry_status_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/python-restclient/docs/User.md b/python-restclient/docs/User.md index c08eb10e92..4cdbaa42b6 100644 --- a/python-restclient/docs/User.md +++ b/python-restclient/docs/User.md @@ -6,7 +6,6 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **user_name** | **str** | | [optional] **key** | [**KeyValue**](KeyValue.md) | | [optional] -**i_d** | [**KeyValue**](KeyValue.md) | | [optional] **name** | **str** | | [optional] **test_account** | **bool** | | [optional] diff --git a/python-restclient/docs/User1.md b/python-restclient/docs/User1.md deleted file mode 100644 index 6645ab4fe7..0000000000 --- a/python-restclient/docs/User1.md +++ /dev/null @@ -1,33 +0,0 @@ -# User1 - - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**user_name** | **str** | | [optional] -**key** | [**KeyValue**](KeyValue.md) | | [optional] -**i_d** | [**KeyValue**](KeyValue.md) | | [optional] -**name** | **str** | | [optional] -**publisher** | **bool** | | [optional] -**test_account** | **bool** | | [optional] - -## Example - -```python -from vcell_client.models.user1 import User1 - -# TODO update the JSON string below -json = "{}" -# create an instance of User1 from a JSON string -user1_instance = User1.from_json(json) -# print the JSON string representation of the object -print User1.to_json() - -# convert the object into a dict -user1_dict = user1_instance.to_dict() -# create an instance of User1 from a dict -user1_form_dict = user1.from_dict(user1_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/python-restclient/docs/UserIdentity.md b/python-restclient/docs/UserIdentity.md deleted file mode 100644 index 067b0609ba..0000000000 --- a/python-restclient/docs/UserIdentity.md +++ /dev/null @@ -1,31 +0,0 @@ -# UserIdentity - - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **float** | | [optional] -**user_name** | **str** | | [optional] -**subject** | **str** | | [optional] -**insert_date** | **datetime** | | [optional] - -## Example - -```python -from vcell_client.models.user_identity import UserIdentity - -# TODO update the JSON string below -json = "{}" -# create an instance of UserIdentity from a JSON string -user_identity_instance = UserIdentity.from_json(json) -# print the JSON string representation of the object -print UserIdentity.to_json() - -# convert the object into a dict -user_identity_dict = user_identity_instance.to_dict() -# create an instance of UserIdentity from a dict -user_identity_form_dict = user_identity.from_dict(user_identity_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/python-restclient/docs/UsersResourceApi.md b/python-restclient/docs/UsersResourceApi.md index e327c19035..4260e1d68a 100644 --- a/python-restclient/docs/UsersResourceApi.md +++ b/python-restclient/docs/UsersResourceApi.md @@ -611,8 +611,8 @@ void (empty response body) |-------------|-------------|------------------| **200** | magic link sent in email if appropriate | - | **400** | unable to process request | - | -**403** | Not Allowed | - | **401** | Not Authorized | - | +**403** | Not Allowed | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/python-restclient/docs/VCellServerID.md b/python-restclient/docs/VCellServerID.md deleted file mode 100644 index c1c3d8636d..0000000000 --- a/python-restclient/docs/VCellServerID.md +++ /dev/null @@ -1,28 +0,0 @@ -# VCellServerID - - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**server_id** | **str** | | [optional] - -## Example - -```python -from vcell_client.models.v_cell_server_id import VCellServerID - -# TODO update the JSON string below -json = "{}" -# create an instance of VCellServerID from a JSON string -v_cell_server_id_instance = VCellServerID.from_json(json) -# print the JSON string representation of the object -print VCellServerID.to_json() - -# convert the object into a dict -v_cell_server_id_dict = v_cell_server_id_instance.to_dict() -# create an instance of VCellServerID from a dict -v_cell_server_id_form_dict = v_cell_server_id.from_dict(v_cell_server_id_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/python-restclient/docs/IdentityProvider.md b/python-restclient/docs/VariableDomain.md similarity index 93% rename from python-restclient/docs/IdentityProvider.md rename to python-restclient/docs/VariableDomain.md index 15580c3542..1d41048812 100644 --- a/python-restclient/docs/IdentityProvider.md +++ b/python-restclient/docs/VariableDomain.md @@ -1,4 +1,4 @@ -# IdentityProvider +# VariableDomain ## Properties diff --git a/python-restclient/docs/VariableType.md b/python-restclient/docs/VariableType.md new file mode 100644 index 0000000000..eea17d04c2 --- /dev/null +++ b/python-restclient/docs/VariableType.md @@ -0,0 +1,36 @@ +# VariableType + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**type** | **int** | | [optional] +**variable_domain** | [**VariableDomain**](VariableDomain.md) | | [optional] +**name** | **str** | | [optional] +**units** | **str** | | [optional] +**label** | **str** | | [optional] +**legacy_warn** | **bool** | | [optional] +**default_label** | **str** | | [optional] +**default_units** | **str** | | [optional] +**type_name** | **str** | | [optional] + +## Example + +```python +from vcell_client.models.variable_type import VariableType + +# TODO update the JSON string below +json = "{}" +# create an instance of VariableType from a JSON string +variable_type_instance = VariableType.from_json(json) +# print the JSON string representation of the object +print VariableType.to_json() + +# convert the object into a dict +variable_type_dict = variable_type_instance.to_dict() +# create an instance of VariableType from a dict +variable_type_form_dict = variable_type.from_dict(variable_type_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/python-restclient/examples/FieldDataScratch.py b/python-restclient/examples/FieldDataScratch.py new file mode 100644 index 0000000000..308fb02d38 --- /dev/null +++ b/python-restclient/examples/FieldDataScratch.py @@ -0,0 +1,39 @@ +from vcell_client.auth.auth_utils import login_interactive +from vcell_client.api.field_data_resource_api import FieldDataResourceApi + +################# +# Create Client # +################# + +api_url = "https://minikube.island" # local vcell-rest service - use `quarkus dev` in vcell-rest folder to start +# api_url = "http://localhost:9000" +api_client = login_interactive(api_base_url=api_url, insecure=True) +field_data_api = FieldDataResourceApi(api_client=api_client) + +########################## +# Get Current Field Data # +########################## +ids = field_data_api.get_all_field_data_ids() +oldLenOfIDs = len(ids) + +# ##################### +# # Create Field Data # +# ##################### +analyzed = field_data_api.analyze_field_data_file("/Users/evalencia/Downloads/file_example_TIFF_1MB.tiff", "test_file2") +results = field_data_api.create_field_data_from_analyzed_file(analyzed) + +################################ +# Retrieve Shape of Field Data # +################################ +fd_shape = field_data_api.get_field_data_shape_from_id(results.field_data_id) +print(fd_shape) + +##################### +# Delete Field Data # +##################### +ids = field_data_api.get_all_field_data_ids() +assert len(ids) == oldLenOfIDs + 1 +field_data_api.delete_field_data(results.field_data_id) +ids = field_data_api.get_all_field_data_ids() +assert len(ids) == oldLenOfIDs + diff --git a/python-restclient/examples/__init__.py b/python-restclient/examples/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-restclient/example_latest.ipynb b/python-restclient/examples/example_latest.ipynb similarity index 100% rename from python-restclient/example_latest.ipynb rename to python-restclient/examples/example_latest.ipynb diff --git a/python-restclient/scratch.py b/python-restclient/examples/scratch.py similarity index 100% rename from python-restclient/scratch.py rename to python-restclient/examples/scratch.py diff --git a/python-restclient/poetry.lock b/python-restclient/poetry.lock index 10bfaeb215..57d083f018 100644 --- a/python-restclient/poetry.lock +++ b/python-restclient/poetry.lock @@ -1,37 +1,37 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. [[package]] name = "annotated-types" -version = "0.6.0" +version = "0.7.0" description = "Reusable constraint types to use with typing.Annotated" optional = false python-versions = ">=3.8" files = [ - {file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"}, - {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"}, + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, ] [[package]] name = "anyio" -version = "4.3.0" +version = "4.7.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"}, - {file = "anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"}, + {file = "anyio-4.7.0-py3-none-any.whl", hash = "sha256:ea60c3723ab42ba6fff7e8ccb0488c898ec538ff4df1f1d5e642c3601d07e352"}, + {file = "anyio-4.7.0.tar.gz", hash = "sha256:2f834749c602966b7d456a7567cafcb309f96482b5081d14ac93ccd457f9dd48"}, ] [package.dependencies] exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} idna = ">=2.8" sniffio = ">=1.1" -typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} +typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} [package.extras] -doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] -trio = ["trio (>=0.23)"] +doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"] +trio = ["trio (>=0.26.1)"] [[package]] name = "appnope" @@ -122,21 +122,18 @@ test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock [[package]] name = "asttokens" -version = "2.4.1" +version = "3.0.0" description = "Annotate AST trees with source code positions" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, - {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, + {file = "asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2"}, + {file = "asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7"}, ] -[package.dependencies] -six = ">=1.12.0" - [package.extras] -astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] -test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] +astroid = ["astroid (>=2,<4)"] +test = ["astroid (>=2,<4)", "pytest", "pytest-cov", "pytest-xdist"] [[package]] name = "async-lru" @@ -154,32 +151,32 @@ typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} [[package]] name = "attrs" -version = "23.2.0" +version = "24.3.0" description = "Classes Without Boilerplate" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"}, - {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, + {file = "attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308"}, + {file = "attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff"}, ] [package.extras] -cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] -dev = ["attrs[tests]", "pre-commit"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] -tests = ["attrs[tests-no-zope]", "zope-interface"] -tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] -tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] [[package]] name = "babel" -version = "2.14.0" +version = "2.16.0" description = "Internationalization utilities" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, - {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, + {file = "babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b"}, + {file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"}, ] [package.extras] @@ -222,103 +219,118 @@ typing-extensions = ">=4.3.0" [[package]] name = "bleach" -version = "6.1.0" +version = "6.2.0" description = "An easy safelist-based HTML-sanitizing tool." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "bleach-6.1.0-py3-none-any.whl", hash = "sha256:3225f354cfc436b9789c66c4ee030194bee0568fbf9cbdad3bc8b5c26c5f12b6"}, - {file = "bleach-6.1.0.tar.gz", hash = "sha256:0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe"}, + {file = "bleach-6.2.0-py3-none-any.whl", hash = "sha256:117d9c6097a7c3d22fd578fcd8d35ff1e125df6736f554da4e432fdd63f31e5e"}, + {file = "bleach-6.2.0.tar.gz", hash = "sha256:123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f"}, ] [package.dependencies] -six = ">=1.9.0" +tinycss2 = {version = ">=1.1.0,<1.5", optional = true, markers = "extra == \"css\""} webencodings = "*" [package.extras] -css = ["tinycss2 (>=1.1.0,<1.3)"] +css = ["tinycss2 (>=1.1.0,<1.5)"] [[package]] name = "cachetools" -version = "5.3.3" +version = "5.5.0" description = "Extensible memoizing collections and decorators" optional = false python-versions = ">=3.7" files = [ - {file = "cachetools-5.3.3-py3-none-any.whl", hash = "sha256:0abad1021d3f8325b2fc1d2e9c8b9c9d57b04c3932657a72465447332c24d945"}, - {file = "cachetools-5.3.3.tar.gz", hash = "sha256:ba29e2dfa0b8b556606f097407ed1aa62080ee108ab0dc5ec9d6a723a007d105"}, + {file = "cachetools-5.5.0-py3-none-any.whl", hash = "sha256:02134e8439cdc2ffb62023ce1debca2944c3f289d66bb17ead3ab3dede74b292"}, + {file = "cachetools-5.5.0.tar.gz", hash = "sha256:2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a"}, ] [[package]] name = "certifi" -version = "2024.2.2" +version = "2024.12.14" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, - {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, + {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, + {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, ] [[package]] name = "cffi" -version = "1.16.0" +version = "1.17.1" description = "Foreign Function Interface for Python calling C code." optional = false python-versions = ">=3.8" files = [ - {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, - {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, - {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, - {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, - {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, - {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, - {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, - {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, - {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, - {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, - {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, - {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, - {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, - {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, - {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, - {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, - {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, - {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, - {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, - {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, - {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, - {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, - {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, - {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, - {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, - {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, - {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, ] [package.dependencies] @@ -337,101 +349,103 @@ files = [ [[package]] name = "charset-normalizer" -version = "3.3.2" +version = "3.4.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false -python-versions = ">=3.7.0" +python-versions = ">=3.7" files = [ - {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, - {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, + {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, + {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, ] [[package]] @@ -464,87 +478,86 @@ test = ["pytest"] [[package]] name = "cryptography" -version = "42.0.5" +version = "44.0.0" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false -python-versions = ">=3.7" -files = [ - {file = "cryptography-42.0.5-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:a30596bae9403a342c978fb47d9b0ee277699fa53bbafad14706af51fe543d16"}, - {file = "cryptography-42.0.5-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:b7ffe927ee6531c78f81aa17e684e2ff617daeba7f189f911065b2ea2d526dec"}, - {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2424ff4c4ac7f6b8177b53c17ed5d8fa74ae5955656867f5a8affaca36a27abb"}, - {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:329906dcc7b20ff3cad13c069a78124ed8247adcac44b10bea1130e36caae0b4"}, - {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:b03c2ae5d2f0fc05f9a2c0c997e1bc18c8229f392234e8a0194f202169ccd278"}, - {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f8837fe1d6ac4a8052a9a8ddab256bc006242696f03368a4009be7ee3075cdb7"}, - {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:0270572b8bd2c833c3981724b8ee9747b3ec96f699a9665470018594301439ee"}, - {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:b8cac287fafc4ad485b8a9b67d0ee80c66bf3574f655d3b97ef2e1082360faf1"}, - {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:16a48c23a62a2f4a285699dba2e4ff2d1cff3115b9df052cdd976a18856d8e3d"}, - {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2bce03af1ce5a5567ab89bd90d11e7bbdff56b8af3acbbec1faded8f44cb06da"}, - {file = "cryptography-42.0.5-cp37-abi3-win32.whl", hash = "sha256:b6cd2203306b63e41acdf39aa93b86fb566049aeb6dc489b70e34bcd07adca74"}, - {file = "cryptography-42.0.5-cp37-abi3-win_amd64.whl", hash = "sha256:98d8dc6d012b82287f2c3d26ce1d2dd130ec200c8679b6213b3c73c08b2b7940"}, - {file = "cryptography-42.0.5-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:5e6275c09d2badf57aea3afa80d975444f4be8d3bc58f7f80d2a484c6f9485c8"}, - {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4985a790f921508f36f81831817cbc03b102d643b5fcb81cd33df3fa291a1a1"}, - {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cde5f38e614f55e28d831754e8a3bacf9ace5d1566235e39d91b35502d6936e"}, - {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7367d7b2eca6513681127ebad53b2582911d1736dc2ffc19f2c3ae49997496bc"}, - {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cd2030f6650c089aeb304cf093f3244d34745ce0cfcc39f20c6fbfe030102e2a"}, - {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a2913c5375154b6ef2e91c10b5720ea6e21007412f6437504ffea2109b5a33d7"}, - {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:c41fb5e6a5fe9ebcd58ca3abfeb51dffb5d83d6775405305bfa8715b76521922"}, - {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3eaafe47ec0d0ffcc9349e1708be2aaea4c6dd4978d76bf6eb0cb2c13636c6fc"}, - {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1b95b98b0d2af784078fa69f637135e3c317091b615cd0905f8b8a087e86fa30"}, - {file = "cryptography-42.0.5-cp39-abi3-win32.whl", hash = "sha256:1f71c10d1e88467126f0efd484bd44bca5e14c664ec2ede64c32f20875c0d413"}, - {file = "cryptography-42.0.5-cp39-abi3-win_amd64.whl", hash = "sha256:a011a644f6d7d03736214d38832e030d8268bcff4a41f728e6030325fea3e400"}, - {file = "cryptography-42.0.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9481ffe3cf013b71b2428b905c4f7a9a4f76ec03065b05ff499bb5682a8d9ad8"}, - {file = "cryptography-42.0.5-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:ba334e6e4b1d92442b75ddacc615c5476d4ad55cc29b15d590cc6b86efa487e2"}, - {file = "cryptography-42.0.5-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:ba3e4a42397c25b7ff88cdec6e2a16c2be18720f317506ee25210f6d31925f9c"}, - {file = "cryptography-42.0.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:111a0d8553afcf8eb02a4fea6ca4f59d48ddb34497aa8706a6cf536f1a5ec576"}, - {file = "cryptography-42.0.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cd65d75953847815962c84a4654a84850b2bb4aed3f26fadcc1c13892e1e29f6"}, - {file = "cryptography-42.0.5-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:e807b3188f9eb0eaa7bbb579b462c5ace579f1cedb28107ce8b48a9f7ad3679e"}, - {file = "cryptography-42.0.5-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f12764b8fffc7a123f641d7d049d382b73f96a34117e0b637b80643169cec8ac"}, - {file = "cryptography-42.0.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:37dd623507659e08be98eec89323469e8c7b4c1407c85112634ae3dbdb926fdd"}, - {file = "cryptography-42.0.5.tar.gz", hash = "sha256:6fe07eec95dfd477eb9530aef5bead34fec819b3aaf6c5bd6d20565da607bfe1"}, +python-versions = "!=3.9.0,!=3.9.1,>=3.7" +files = [ + {file = "cryptography-44.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:84111ad4ff3f6253820e6d3e58be2cc2a00adb29335d4cacb5ab4d4d34f2a123"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15492a11f9e1b62ba9d73c210e2416724633167de94607ec6069ef724fad092"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:831c3c4d0774e488fdc83a1923b49b9957d33287de923d58ebd3cec47a0ae43f"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:761817a3377ef15ac23cd7834715081791d4ec77f9297ee694ca1ee9c2c7e5eb"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3c672a53c0fb4725a29c303be906d3c1fa99c32f58abe008a82705f9ee96f40b"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:4ac4c9f37eba52cb6fbeaf5b59c152ea976726b865bd4cf87883a7e7006cc543"}, + {file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ed3534eb1090483c96178fcb0f8893719d96d5274dfde98aa6add34614e97c8e"}, + {file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f3f6fdfa89ee2d9d496e2c087cebef9d4fcbb0ad63c40e821b39f74bf48d9c5e"}, + {file = "cryptography-44.0.0-cp37-abi3-win32.whl", hash = "sha256:eb33480f1bad5b78233b0ad3e1b0be21e8ef1da745d8d2aecbb20671658b9053"}, + {file = "cryptography-44.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:abc998e0c0eee3c8a1904221d3f67dcfa76422b23620173e28c11d3e626c21bd"}, + {file = "cryptography-44.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:660cb7312a08bc38be15b696462fa7cc7cd85c3ed9c576e81f4dc4d8b2b31591"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1923cb251c04be85eec9fda837661c67c1049063305d6be5721643c22dd4e2b7"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:404fdc66ee5f83a1388be54300ae978b2efd538018de18556dde92575e05defc"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:c5eb858beed7835e5ad1faba59e865109f3e52b3783b9ac21e7e47dc5554e289"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f53c2c87e0fb4b0c00fa9571082a057e37690a8f12233306161c8f4b819960b7"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:9e6fc8a08e116fb7c7dd1f040074c9d7b51d74a8ea40d4df2fc7aa08b76b9e6c"}, + {file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d2436114e46b36d00f8b72ff57e598978b37399d2786fd39793c36c6d5cb1c64"}, + {file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a01956ddfa0a6790d594f5b34fc1bfa6098aca434696a03cfdbe469b8ed79285"}, + {file = "cryptography-44.0.0-cp39-abi3-win32.whl", hash = "sha256:eca27345e1214d1b9f9490d200f9db5a874479be914199194e746c893788d417"}, + {file = "cryptography-44.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:708ee5f1bafe76d041b53a4f95eb28cdeb8d18da17e597d46d7833ee59b97ede"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:37d76e6863da3774cd9db5b409a9ecfd2c71c981c38788d3fcfaf177f447b731"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:f677e1268c4e23420c3acade68fac427fffcb8d19d7df95ed7ad17cdef8404f4"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f5e7cb1e5e56ca0933b4873c0220a78b773b24d40d186b6738080b73d3d0a756"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:8b3e6eae66cf54701ee7d9c83c30ac0a1e3fa17be486033000f2a73a12ab507c"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:be4ce505894d15d5c5037167ffb7f0ae90b7be6f2a98f9a5c3442395501c32fa"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:62901fb618f74d7d81bf408c8719e9ec14d863086efe4185afd07c352aee1d2c"}, + {file = "cryptography-44.0.0.tar.gz", hash = "sha256:cd4e834f340b4293430701e772ec543b0fbe6c2dea510a5286fe0acabe153a02"}, ] [package.dependencies] cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} [package.extras] -docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] -docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] -nox = ["nox"] -pep8test = ["check-sdist", "click", "mypy", "ruff"] -sdist = ["build"] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=3.0.0)"] +docstest = ["pyenchant (>=3)", "readme-renderer (>=30.0)", "sphinxcontrib-spelling (>=7.3.1)"] +nox = ["nox (>=2024.4.15)", "nox[uv] (>=2024.3.2)"] +pep8test = ["check-sdist", "click (>=8.0.1)", "mypy (>=1.4)", "ruff (>=0.3.6)"] +sdist = ["build (>=1.0.0)"] ssh = ["bcrypt (>=3.1.5)"] -test = ["certifi", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test = ["certifi (>=2024)", "cryptography-vectors (==44.0.0)", "pretend (>=0.7)", "pytest (>=7.4.0)", "pytest-benchmark (>=4.0)", "pytest-cov (>=2.10.1)", "pytest-xdist (>=3.5.0)"] test-randomorder = ["pytest-randomly"] [[package]] name = "debugpy" -version = "1.8.1" +version = "1.8.11" description = "An implementation of the Debug Adapter Protocol for Python" optional = false python-versions = ">=3.8" files = [ - {file = "debugpy-1.8.1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:3bda0f1e943d386cc7a0e71bfa59f4137909e2ed947fb3946c506e113000f741"}, - {file = "debugpy-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dda73bf69ea479c8577a0448f8c707691152e6c4de7f0c4dec5a4bc11dee516e"}, - {file = "debugpy-1.8.1-cp310-cp310-win32.whl", hash = "sha256:3a79c6f62adef994b2dbe9fc2cc9cc3864a23575b6e387339ab739873bea53d0"}, - {file = "debugpy-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:7eb7bd2b56ea3bedb009616d9e2f64aab8fc7000d481faec3cd26c98a964bcdd"}, - {file = "debugpy-1.8.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:016a9fcfc2c6b57f939673c874310d8581d51a0fe0858e7fac4e240c5eb743cb"}, - {file = "debugpy-1.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd97ed11a4c7f6d042d320ce03d83b20c3fb40da892f994bc041bbc415d7a099"}, - {file = "debugpy-1.8.1-cp311-cp311-win32.whl", hash = "sha256:0de56aba8249c28a300bdb0672a9b94785074eb82eb672db66c8144fff673146"}, - {file = "debugpy-1.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:1a9fe0829c2b854757b4fd0a338d93bc17249a3bf69ecf765c61d4c522bb92a8"}, - {file = "debugpy-1.8.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3ebb70ba1a6524d19fa7bb122f44b74170c447d5746a503e36adc244a20ac539"}, - {file = "debugpy-1.8.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2e658a9630f27534e63922ebf655a6ab60c370f4d2fc5c02a5b19baf4410ace"}, - {file = "debugpy-1.8.1-cp312-cp312-win32.whl", hash = "sha256:caad2846e21188797a1f17fc09c31b84c7c3c23baf2516fed5b40b378515bbf0"}, - {file = "debugpy-1.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:edcc9f58ec0fd121a25bc950d4578df47428d72e1a0d66c07403b04eb93bcf98"}, - {file = "debugpy-1.8.1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:7a3afa222f6fd3d9dfecd52729bc2e12c93e22a7491405a0ecbf9e1d32d45b39"}, - {file = "debugpy-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d915a18f0597ef685e88bb35e5d7ab968964b7befefe1aaea1eb5b2640b586c7"}, - {file = "debugpy-1.8.1-cp38-cp38-win32.whl", hash = "sha256:92116039b5500633cc8d44ecc187abe2dfa9b90f7a82bbf81d079fcdd506bae9"}, - {file = "debugpy-1.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:e38beb7992b5afd9d5244e96ad5fa9135e94993b0c551ceebf3fe1a5d9beb234"}, - {file = "debugpy-1.8.1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:bfb20cb57486c8e4793d41996652e5a6a885b4d9175dd369045dad59eaacea42"}, - {file = "debugpy-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efd3fdd3f67a7e576dd869c184c5dd71d9aaa36ded271939da352880c012e703"}, - {file = "debugpy-1.8.1-cp39-cp39-win32.whl", hash = "sha256:58911e8521ca0c785ac7a0539f1e77e0ce2df753f786188f382229278b4cdf23"}, - {file = "debugpy-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:6df9aa9599eb05ca179fb0b810282255202a66835c6efb1d112d21ecb830ddd3"}, - {file = "debugpy-1.8.1-py2.py3-none-any.whl", hash = "sha256:28acbe2241222b87e255260c76741e1fbf04fdc3b6d094fcf57b6c6f75ce1242"}, - {file = "debugpy-1.8.1.zip", hash = "sha256:f696d6be15be87aef621917585f9bb94b1dc9e8aced570db1b8a6fc14e8f9b42"}, + {file = "debugpy-1.8.11-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:2b26fefc4e31ff85593d68b9022e35e8925714a10ab4858fb1b577a8a48cb8cd"}, + {file = "debugpy-1.8.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61bc8b3b265e6949855300e84dc93d02d7a3a637f2aec6d382afd4ceb9120c9f"}, + {file = "debugpy-1.8.11-cp310-cp310-win32.whl", hash = "sha256:c928bbf47f65288574b78518449edaa46c82572d340e2750889bbf8cd92f3737"}, + {file = "debugpy-1.8.11-cp310-cp310-win_amd64.whl", hash = "sha256:8da1db4ca4f22583e834dcabdc7832e56fe16275253ee53ba66627b86e304da1"}, + {file = "debugpy-1.8.11-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:85de8474ad53ad546ff1c7c7c89230db215b9b8a02754d41cb5a76f70d0be296"}, + {file = "debugpy-1.8.11-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ffc382e4afa4aee367bf413f55ed17bd91b191dcaf979890af239dda435f2a1"}, + {file = "debugpy-1.8.11-cp311-cp311-win32.whl", hash = "sha256:40499a9979c55f72f4eb2fc38695419546b62594f8af194b879d2a18439c97a9"}, + {file = "debugpy-1.8.11-cp311-cp311-win_amd64.whl", hash = "sha256:987bce16e86efa86f747d5151c54e91b3c1e36acc03ce1ddb50f9d09d16ded0e"}, + {file = "debugpy-1.8.11-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:84e511a7545d11683d32cdb8f809ef63fc17ea2a00455cc62d0a4dbb4ed1c308"}, + {file = "debugpy-1.8.11-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce291a5aca4985d82875d6779f61375e959208cdf09fcec40001e65fb0a54768"}, + {file = "debugpy-1.8.11-cp312-cp312-win32.whl", hash = "sha256:28e45b3f827d3bf2592f3cf7ae63282e859f3259db44ed2b129093ca0ac7940b"}, + {file = "debugpy-1.8.11-cp312-cp312-win_amd64.whl", hash = "sha256:44b1b8e6253bceada11f714acf4309ffb98bfa9ac55e4fce14f9e5d4484287a1"}, + {file = "debugpy-1.8.11-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:8988f7163e4381b0da7696f37eec7aca19deb02e500245df68a7159739bbd0d3"}, + {file = "debugpy-1.8.11-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c1f6a173d1140e557347419767d2b14ac1c9cd847e0b4c5444c7f3144697e4e"}, + {file = "debugpy-1.8.11-cp313-cp313-win32.whl", hash = "sha256:bb3b15e25891f38da3ca0740271e63ab9db61f41d4d8541745cfc1824252cb28"}, + {file = "debugpy-1.8.11-cp313-cp313-win_amd64.whl", hash = "sha256:d8768edcbeb34da9e11bcb8b5c2e0958d25218df7a6e56adf415ef262cd7b6d1"}, + {file = "debugpy-1.8.11-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:ad7efe588c8f5cf940f40c3de0cd683cc5b76819446abaa50dc0829a30c094db"}, + {file = "debugpy-1.8.11-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:189058d03a40103a57144752652b3ab08ff02b7595d0ce1f651b9acc3a3a35a0"}, + {file = "debugpy-1.8.11-cp38-cp38-win32.whl", hash = "sha256:32db46ba45849daed7ccf3f2e26f7a386867b077f39b2a974bb5c4c2c3b0a280"}, + {file = "debugpy-1.8.11-cp38-cp38-win_amd64.whl", hash = "sha256:116bf8342062246ca749013df4f6ea106f23bc159305843491f64672a55af2e5"}, + {file = "debugpy-1.8.11-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:654130ca6ad5de73d978057eaf9e582244ff72d4574b3e106fb8d3d2a0d32458"}, + {file = "debugpy-1.8.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23dc34c5e03b0212fa3c49a874df2b8b1b8fda95160bd79c01eb3ab51ea8d851"}, + {file = "debugpy-1.8.11-cp39-cp39-win32.whl", hash = "sha256:52d8a3166c9f2815bfae05f386114b0b2d274456980d41f320299a8d9a5615a7"}, + {file = "debugpy-1.8.11-cp39-cp39-win_amd64.whl", hash = "sha256:52c3cf9ecda273a19cc092961ee34eb9ba8687d67ba34cc7b79a521c1c64c4c0"}, + {file = "debugpy-1.8.11-py2.py3-none-any.whl", hash = "sha256:0e22f846f4211383e6a416d04b4c13ed174d24cc5d43f5fd52e7821d0ebc8920"}, + {file = "debugpy-1.8.11.tar.gz", hash = "sha256:6ad2688b69235c43b020e04fecccdf6a96c8943ca9c2fb340b8adc103c655e57"}, ] [[package]] @@ -571,24 +584,24 @@ files = [ [[package]] name = "distlib" -version = "0.3.8" +version = "0.3.9" description = "Distribution utilities" optional = false python-versions = "*" files = [ - {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, - {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, + {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, + {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, ] [[package]] name = "exceptiongroup" -version = "1.2.1" +version = "1.2.2" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.2.1-py3-none-any.whl", hash = "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad"}, - {file = "exceptiongroup-1.2.1.tar.gz", hash = "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"}, + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, ] [package.extras] @@ -596,13 +609,13 @@ test = ["pytest (>=6)"] [[package]] name = "executing" -version = "2.0.1" +version = "2.1.0" description = "Get the currently executing AST node of a frame, and other information" optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" files = [ - {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, - {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, + {file = "executing-2.1.0-py2.py3-none-any.whl", hash = "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf"}, + {file = "executing-2.1.0.tar.gz", hash = "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab"}, ] [package.extras] @@ -610,13 +623,13 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth [[package]] name = "fastjsonschema" -version = "2.19.1" +version = "2.21.1" description = "Fastest Python implementation of JSON schema" optional = false python-versions = "*" files = [ - {file = "fastjsonschema-2.19.1-py3-none-any.whl", hash = "sha256:3672b47bc94178c9f23dbb654bf47440155d4db9df5f7bc47643315f9c405cd0"}, - {file = "fastjsonschema-2.19.1.tar.gz", hash = "sha256:e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d"}, + {file = "fastjsonschema-2.21.1-py3-none-any.whl", hash = "sha256:c9e5b7e908310918cf494a434eeb31384dd84a98b57a30bcb1f535015b554667"}, + {file = "fastjsonschema-2.21.1.tar.gz", hash = "sha256:794d4f0a58f848961ba16af7b9c85a3e88cd360df008c59aac6fc5ae9323b5d4"}, ] [package.extras] @@ -624,34 +637,34 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc [[package]] name = "filelock" -version = "3.13.4" +version = "3.16.1" description = "A platform independent file lock." optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.13.4-py3-none-any.whl", hash = "sha256:404e5e9253aa60ad457cae1be07c0f0ca90a63931200a47d9b6a6af84fd7b45f"}, - {file = "filelock-3.13.4.tar.gz", hash = "sha256:d13f466618bfde72bd2c18255e269f72542c6e70e7bac83a0232d6b1cc5c8cf4"}, + {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, + {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, ] [package.extras] -docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] -typing = ["typing-extensions (>=4.8)"] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] +typing = ["typing-extensions (>=4.12.2)"] [[package]] name = "flake8" -version = "7.0.0" +version = "7.1.1" description = "the modular source code checker: pep8 pyflakes and co" optional = false python-versions = ">=3.8.1" files = [ - {file = "flake8-7.0.0-py2.py3-none-any.whl", hash = "sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3"}, - {file = "flake8-7.0.0.tar.gz", hash = "sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132"}, + {file = "flake8-7.1.1-py2.py3-none-any.whl", hash = "sha256:597477df7860daa5aa0fdd84bf5208a043ab96b8e96ab708770ae0364dd03213"}, + {file = "flake8-7.1.1.tar.gz", hash = "sha256:049d058491e228e03e67b390f311bbf88fce2dbaa8fa673e7aea87b7198b8d38"}, ] [package.dependencies] mccabe = ">=0.7.0,<0.8.0" -pycodestyle = ">=2.11.0,<2.12.0" +pycodestyle = ">=2.12.0,<2.13.0" pyflakes = ">=3.2.0,<3.3.0" [[package]] @@ -693,13 +706,13 @@ files = [ [[package]] name = "httpcore" -version = "1.0.5" +version = "1.0.7" description = "A minimal low-level HTTP client." optional = false python-versions = ">=3.8" files = [ - {file = "httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5"}, - {file = "httpcore-1.0.5.tar.gz", hash = "sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61"}, + {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, + {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, ] [package.dependencies] @@ -710,17 +723,17 @@ h11 = ">=0.13,<0.15" asyncio = ["anyio (>=4.0,<5.0)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] -trio = ["trio (>=0.22.0,<0.26.0)"] +trio = ["trio (>=0.22.0,<1.0)"] [[package]] name = "httpx" -version = "0.27.0" +version = "0.28.1" description = "The next generation HTTP client." optional = false python-versions = ">=3.8" files = [ - {file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"}, - {file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"}, + {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, + {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, ] [package.dependencies] @@ -728,43 +741,27 @@ anyio = "*" certifi = "*" httpcore = "==1.*" idna = "*" -sniffio = "*" [package.extras] brotli = ["brotli", "brotlicffi"] cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] +zstd = ["zstandard (>=0.18.0)"] [[package]] name = "idna" -version = "3.7" +version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" optional = false -python-versions = ">=3.5" -files = [ - {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, - {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, -] - -[[package]] -name = "importlib-metadata" -version = "7.1.0" -description = "Read metadata from Python packages" -optional = false -python-versions = ">=3.8" +python-versions = ">=3.6" files = [ - {file = "importlib_metadata-7.1.0-py3-none-any.whl", hash = "sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570"}, - {file = "importlib_metadata-7.1.0.tar.gz", hash = "sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2"}, + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, ] -[package.dependencies] -zipp = ">=0.5" - [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] [[package]] name = "iniconfig" @@ -779,13 +776,13 @@ files = [ [[package]] name = "ipykernel" -version = "6.29.4" +version = "6.29.5" description = "IPython Kernel for Jupyter" optional = false python-versions = ">=3.8" files = [ - {file = "ipykernel-6.29.4-py3-none-any.whl", hash = "sha256:1181e653d95c6808039c509ef8e67c4126b3b3af7781496c7cbfb5ed938a27da"}, - {file = "ipykernel-6.29.4.tar.gz", hash = "sha256:3d44070060f9475ac2092b760123fadf105d2e2493c24848b6691a7c4f42af5c"}, + {file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"}, + {file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"}, ] [package.dependencies] @@ -832,7 +829,6 @@ prompt-toolkit = ">=3.0.41,<3.1.0" pygments = ">=2.4.0" stack-data = "*" traitlets = ">=5" -typing-extensions = {version = "*", markers = "python_version < \"3.10\""} [package.extras] all = ["black", "curio", "docrepr", "exceptiongroup", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.22)", "pandas", "pickleshare", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio (<0.22)", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] @@ -849,21 +845,21 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.22)", "pa [[package]] name = "ipywidgets" -version = "8.1.2" +version = "8.1.5" description = "Jupyter interactive widgets" optional = false python-versions = ">=3.7" files = [ - {file = "ipywidgets-8.1.2-py3-none-any.whl", hash = "sha256:bbe43850d79fb5e906b14801d6c01402857996864d1e5b6fa62dd2ee35559f60"}, - {file = "ipywidgets-8.1.2.tar.gz", hash = "sha256:d0b9b41e49bae926a866e613a39b0f0097745d2b9f1f3dd406641b4a57ec42c9"}, + {file = "ipywidgets-8.1.5-py3-none-any.whl", hash = "sha256:3290f526f87ae6e77655555baba4f36681c555b8bdbbff430b70e52c34c86245"}, + {file = "ipywidgets-8.1.5.tar.gz", hash = "sha256:870e43b1a35656a80c18c9503bbf2d16802db1cb487eec6fab27d683381dde17"}, ] [package.dependencies] comm = ">=0.1.3" ipython = ">=6.1.0" -jupyterlab-widgets = ">=3.0.10,<3.1.0" +jupyterlab-widgets = ">=3.0.12,<3.1.0" traitlets = ">=4.3.1" -widgetsnbextension = ">=4.0.10,<4.1.0" +widgetsnbextension = ">=4.0.12,<4.1.0" [package.extras] test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] @@ -884,32 +880,32 @@ arrow = ">=0.15.0" [[package]] name = "jedi" -version = "0.19.1" +version = "0.19.2" description = "An autocompletion tool for Python that can be used for text editors." optional = false python-versions = ">=3.6" files = [ - {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"}, - {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"}, + {file = "jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9"}, + {file = "jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0"}, ] [package.dependencies] -parso = ">=0.8.3,<0.9.0" +parso = ">=0.8.4,<0.9.0" [package.extras] docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] -testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<9.0.0)"] [[package]] name = "jinja2" -version = "3.1.3" +version = "3.1.5" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, - {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, + {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, + {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, ] [package.dependencies] @@ -920,35 +916,38 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "json5" -version = "0.9.25" +version = "0.10.0" description = "A Python implementation of the JSON5 data format." optional = false -python-versions = ">=3.8" +python-versions = ">=3.8.0" files = [ - {file = "json5-0.9.25-py3-none-any.whl", hash = "sha256:34ed7d834b1341a86987ed52f3f76cd8ee184394906b6e22a1e0deb9ab294e8f"}, - {file = "json5-0.9.25.tar.gz", hash = "sha256:548e41b9be043f9426776f05df8635a00fe06104ea51ed24b67f908856e151ae"}, + {file = "json5-0.10.0-py3-none-any.whl", hash = "sha256:19b23410220a7271e8377f81ba8aacba2fdd56947fbb137ee5977cbe1f5e8dfa"}, + {file = "json5-0.10.0.tar.gz", hash = "sha256:e66941c8f0a02026943c52c2eb34ebeb2a6f819a0be05920a6f5243cd30fd559"}, ] +[package.extras] +dev = ["build (==1.2.2.post1)", "coverage (==7.5.3)", "mypy (==1.13.0)", "pip (==24.3.1)", "pylint (==3.2.3)", "ruff (==0.7.3)", "twine (==5.1.1)", "uv (==0.5.1)"] + [[package]] name = "jsonpointer" -version = "2.4" +version = "3.0.0" description = "Identify specific nodes in a JSON document (RFC 6901)" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +python-versions = ">=3.7" files = [ - {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, - {file = "jsonpointer-2.4.tar.gz", hash = "sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"}, + {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, + {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, ] [[package]] name = "jsonschema" -version = "4.21.1" +version = "4.23.0" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.21.1-py3-none-any.whl", hash = "sha256:7996507afae316306f9e2290407761157c6f78002dcf7419acb99822143d1c6f"}, - {file = "jsonschema-4.21.1.tar.gz", hash = "sha256:85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5"}, + {file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"}, + {file = "jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4"}, ] [package.dependencies] @@ -963,21 +962,21 @@ rfc3339-validator = {version = "*", optional = true, markers = "extra == \"forma rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} rpds-py = ">=0.7.1" uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} -webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format-nongpl\""} +webcolors = {version = ">=24.6.0", optional = true, markers = "extra == \"format-nongpl\""} [package.extras] format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] -format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=24.6.0)"] [[package]] name = "jsonschema-specifications" -version = "2023.12.1" +version = "2024.10.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "jsonschema_specifications-2023.12.1-py3-none-any.whl", hash = "sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c"}, - {file = "jsonschema_specifications-2023.12.1.tar.gz", hash = "sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc"}, + {file = "jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf"}, + {file = "jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272"}, ] [package.dependencies] @@ -985,37 +984,35 @@ referencing = ">=0.31.0" [[package]] name = "jupyter" -version = "1.0.0" +version = "1.1.1" description = "Jupyter metapackage. Install all the Jupyter components in one go." optional = false python-versions = "*" files = [ - {file = "jupyter-1.0.0-py2.py3-none-any.whl", hash = "sha256:5b290f93b98ffbc21c0c7e749f054b3267782166d72fa5e3ed1ed4eaf34a2b78"}, - {file = "jupyter-1.0.0.tar.gz", hash = "sha256:d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f"}, - {file = "jupyter-1.0.0.zip", hash = "sha256:3e1f86076bbb7c8c207829390305a2b1fe836d471ed54be66a3b8c41e7f46cc7"}, + {file = "jupyter-1.1.1-py2.py3-none-any.whl", hash = "sha256:7a59533c22af65439b24bbe60373a4e95af8f16ac65a6c00820ad378e3f7cc83"}, + {file = "jupyter-1.1.1.tar.gz", hash = "sha256:d55467bceabdea49d7e3624af7e33d59c37fff53ed3a350e1ac957bed731de7a"}, ] [package.dependencies] ipykernel = "*" ipywidgets = "*" jupyter-console = "*" +jupyterlab = "*" nbconvert = "*" notebook = "*" -qtconsole = "*" [[package]] name = "jupyter-client" -version = "8.6.1" +version = "8.6.3" description = "Jupyter protocol implementation and client libraries" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_client-8.6.1-py3-none-any.whl", hash = "sha256:3b7bd22f058434e3b9a7ea4b1500ed47de2713872288c0d511d19926f99b459f"}, - {file = "jupyter_client-8.6.1.tar.gz", hash = "sha256:e842515e2bab8e19186d89fdfea7abd15e39dd581f94e399f00e2af5a1652d3f"}, + {file = "jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f"}, + {file = "jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419"}, ] [package.dependencies] -importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" python-dateutil = ">=2.8.2" pyzmq = ">=23.0" @@ -1024,7 +1021,7 @@ traitlets = ">=5.3" [package.extras] docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] -test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] +test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest (<8.2.0)", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] [[package]] name = "jupyter-console" @@ -1072,13 +1069,13 @@ test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout" [[package]] name = "jupyter-events" -version = "0.10.0" +version = "0.11.0" description = "Jupyter Event System library" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "jupyter_events-0.10.0-py3-none-any.whl", hash = "sha256:4b72130875e59d57716d327ea70d3ebc3af1944d3717e5a498b8a06c6c159960"}, - {file = "jupyter_events-0.10.0.tar.gz", hash = "sha256:670b8229d3cc882ec782144ed22e0d29e1c2d639263f92ca8383e66682845e22"}, + {file = "jupyter_events-0.11.0-py3-none-any.whl", hash = "sha256:36399b41ce1ca45fe8b8271067d6a140ffa54cec4028e95491c93b78a855cacf"}, + {file = "jupyter_events-0.11.0.tar.gz", hash = "sha256:c0bc56a37aac29c1fbc3bcfbddb8c8c49533f9cf11f1c4e6adadba936574ab90"}, ] [package.dependencies] @@ -1092,7 +1089,7 @@ traitlets = ">=5.3" [package.extras] cli = ["click", "rich"] -docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme", "sphinxcontrib-spelling"] +docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme (>=0.16)", "sphinx (>=8)", "sphinxcontrib-spelling"] test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "rich"] [[package]] @@ -1107,18 +1104,17 @@ files = [ ] [package.dependencies] -importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} jupyter-server = ">=1.1.2" [[package]] name = "jupyter-server" -version = "2.14.0" +version = "2.15.0" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "jupyter_server-2.14.0-py3-none-any.whl", hash = "sha256:fb6be52c713e80e004fac34b35a0990d6d36ba06fd0a2b2ed82b899143a64210"}, - {file = "jupyter_server-2.14.0.tar.gz", hash = "sha256:659154cea512083434fd7c93b7fe0897af7a2fd0b9dd4749282b42eaac4ae677"}, + {file = "jupyter_server-2.15.0-py3-none-any.whl", hash = "sha256:872d989becf83517012ee669f09604aa4a28097c0bd90b2f424310156c2cdae3"}, + {file = "jupyter_server-2.15.0.tar.gz", hash = "sha256:9d446b8697b4f7337a1b7cdcac40778babdd93ba614b6d68ab1c0c918f1c4084"}, ] [package.dependencies] @@ -1127,7 +1123,7 @@ argon2-cffi = ">=21.1" jinja2 = ">=3.0.3" jupyter-client = ">=7.4.4" jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" -jupyter-events = ">=0.9.0" +jupyter-events = ">=0.11.0" jupyter-server-terminals = ">=0.4.4" nbconvert = ">=6.4.4" nbformat = ">=5.3.0" @@ -1143,7 +1139,7 @@ traitlets = ">=5.6.0" websocket-client = ">=1.7" [package.extras] -docs = ["ipykernel", "jinja2", "jupyter-client", "jupyter-server", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] +docs = ["ipykernel", "jinja2", "jupyter-client", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0,<9)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.7)", "pytest-timeout", "requests"] [[package]] @@ -1167,37 +1163,37 @@ test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (> [[package]] name = "jupyterlab" -version = "4.1.6" +version = "4.3.4" description = "JupyterLab computational environment" optional = false python-versions = ">=3.8" files = [ - {file = "jupyterlab-4.1.6-py3-none-any.whl", hash = "sha256:cf3e862bc10dbf4331e4eb37438634f813c238cfc62c71c640b3b3b2caa089a8"}, - {file = "jupyterlab-4.1.6.tar.gz", hash = "sha256:7935f36ba26eb615183a4f5c2bbca5791b5108ce2a00b5505f8cfd100d53648e"}, + {file = "jupyterlab-4.3.4-py3-none-any.whl", hash = "sha256:b754c2601c5be6adf87cb5a1d8495d653ffb945f021939f77776acaa94dae952"}, + {file = "jupyterlab-4.3.4.tar.gz", hash = "sha256:f0bb9b09a04766e3423cccc2fc23169aa2ffedcdf8713e9e0fb33cac0b6859d0"}, ] [package.dependencies] async-lru = ">=1.0.0" httpx = ">=0.25.0" -importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} ipykernel = ">=6.5.0" jinja2 = ">=3.0.3" jupyter-core = "*" jupyter-lsp = ">=2.0.0" jupyter-server = ">=2.4.0,<3" -jupyterlab-server = ">=2.19.0,<3" +jupyterlab-server = ">=2.27.1,<3" notebook-shim = ">=0.2" packaging = "*" +setuptools = ">=40.8.0" tomli = {version = ">=1.2.2", markers = "python_version < \"3.11\""} tornado = ">=6.2.0" traitlets = "*" [package.extras] -dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.2.0)"] -docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<7.3.0)", "sphinx-copybutton"] -docs-screenshots = ["altair (==5.2.0)", "ipython (==8.16.1)", "ipywidgets (==8.1.1)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.0.post6)", "matplotlib (==3.8.2)", "nbconvert (>=7.0.0)", "pandas (==2.2.0)", "scipy (==1.12.0)", "vega-datasets (==0.9.0)"] +dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.6.9)"] +docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<8.1.0)", "sphinx-copybutton"] +docs-screenshots = ["altair (==5.4.1)", "ipython (==8.16.1)", "ipywidgets (==8.1.5)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.2.post3)", "matplotlib (==3.9.2)", "nbconvert (>=7.0.0)", "pandas (==2.2.3)", "scipy (==1.14.1)", "vega-datasets (==0.9.0)"] test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"] -upgrade-extension = ["copier (>=8.0,<9.0)", "jinja2-time (<0.3)", "pydantic (<2.0)", "pyyaml-include (<2.0)", "tomli-w (<2.0)"] +upgrade-extension = ["copier (>=9,<10)", "jinja2-time (<0.3)", "pydantic (<3.0)", "pyyaml-include (<3.0)", "tomli-w (<2.0)"] [[package]] name = "jupyterlab-pygments" @@ -1212,18 +1208,17 @@ files = [ [[package]] name = "jupyterlab-server" -version = "2.26.0" +version = "2.27.3" description = "A set of server components for JupyterLab and JupyterLab like applications." optional = false python-versions = ">=3.8" files = [ - {file = "jupyterlab_server-2.26.0-py3-none-any.whl", hash = "sha256:54622cbd330526a385ee0c1fdccdff3a1e7219bf3e864a335284a1270a1973df"}, - {file = "jupyterlab_server-2.26.0.tar.gz", hash = "sha256:9b3ba91cf2837f7f124fca36d63f3ca80ace2bed4898a63dd47e6598c1ab006f"}, + {file = "jupyterlab_server-2.27.3-py3-none-any.whl", hash = "sha256:e697488f66c3db49df675158a77b3b017520d772c6e1548c7d9bcc5df7944ee4"}, + {file = "jupyterlab_server-2.27.3.tar.gz", hash = "sha256:eb36caca59e74471988f0ae25c77945610b887f777255aa21f8065def9e51ed4"}, ] [package.dependencies] babel = ">=2.10" -importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} jinja2 = ">=3.0.3" json5 = ">=0.9.0" jsonschema = ">=4.18.0" @@ -1238,13 +1233,13 @@ test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-v [[package]] name = "jupyterlab-widgets" -version = "3.0.10" +version = "3.0.13" description = "Jupyter interactive widgets for JupyterLab" optional = false python-versions = ">=3.7" files = [ - {file = "jupyterlab_widgets-3.0.10-py3-none-any.whl", hash = "sha256:dd61f3ae7a5a7f80299e14585ce6cf3d6925a96c9103c978eda293197730cb64"}, - {file = "jupyterlab_widgets-3.0.10.tar.gz", hash = "sha256:04f2ac04976727e4f9d0fa91cdc2f1ab860f965e504c29dbd6a65c882c9d04c0"}, + {file = "jupyterlab_widgets-3.0.13-py3-none-any.whl", hash = "sha256:e3cda2c233ce144192f1e29914ad522b2f4c40e77214b0cc97377ca3d323db54"}, + {file = "jupyterlab_widgets-3.0.13.tar.gz", hash = "sha256:a2966d385328c1942b683a8cd96b89b8dd82c8b8f81dda902bb2bc06d46f5bed"}, ] [[package]] @@ -1265,71 +1260,72 @@ typing-extensions = ">=4.3" [[package]] name = "markupsafe" -version = "2.1.5" +version = "3.0.2" description = "Safely add untrusted strings to HTML/XML markup." optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" files = [ - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, - {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, ] [[package]] @@ -1359,24 +1355,27 @@ files = [ [[package]] name = "mistune" -version = "3.0.2" +version = "3.1.0" description = "A sane and fast Markdown parser with useful plugins and renderers" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "mistune-3.0.2-py3-none-any.whl", hash = "sha256:71481854c30fdbc938963d3605b72501f5c10a9320ecd412c121c163a1c7d205"}, - {file = "mistune-3.0.2.tar.gz", hash = "sha256:fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8"}, + {file = "mistune-3.1.0-py3-none-any.whl", hash = "sha256:b05198cf6d671b3deba6c87ec6cf0d4eb7b72c524636eddb6dbf13823b52cee1"}, + {file = "mistune-3.1.0.tar.gz", hash = "sha256:dbcac2f78292b9dc066cd03b7a3a26b62d85f8159f2ea5fd28e55df79908d667"}, ] +[package.dependencies] +typing-extensions = {version = "*", markers = "python_version < \"3.11\""} + [[package]] name = "nbclient" -version = "0.10.0" +version = "0.10.2" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." optional = false -python-versions = ">=3.8.0" +python-versions = ">=3.9.0" files = [ - {file = "nbclient-0.10.0-py3-none-any.whl", hash = "sha256:f13e3529332a1f1f81d82a53210322476a168bb7090a0289c795fe9cc11c9d3f"}, - {file = "nbclient-0.10.0.tar.gz", hash = "sha256:4b3f1b7dba531e498449c4db4f53da339c91d449dc11e9af3a43b4eb5c5abb09"}, + {file = "nbclient-0.10.2-py3-none-any.whl", hash = "sha256:4ffee11e788b4a27fabeb7955547e4318a5298f34342a4bfd01f2e1faaeadc3d"}, + {file = "nbclient-0.10.2.tar.gz", hash = "sha256:90b7fc6b810630db87a6d0c2250b1f0ab4cf4d3c27a299b0cde78a4ed3fd9193"}, ] [package.dependencies] @@ -1387,25 +1386,24 @@ traitlets = ">=5.4" [package.extras] dev = ["pre-commit"] -docs = ["autodoc-traits", "mock", "moto", "myst-parser", "nbclient[test]", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling"] -test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] +docs = ["autodoc-traits", "flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "mock", "moto", "myst-parser", "nbconvert (>=7.1.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling", "testpath", "xmltodict"] +test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.1.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] [[package]] name = "nbconvert" -version = "7.16.3" +version = "7.16.5" description = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)." optional = false python-versions = ">=3.8" files = [ - {file = "nbconvert-7.16.3-py3-none-any.whl", hash = "sha256:ddeff14beeeedf3dd0bc506623e41e4507e551736de59df69a91f86700292b3b"}, - {file = "nbconvert-7.16.3.tar.gz", hash = "sha256:a6733b78ce3d47c3f85e504998495b07e6ea9cf9bf6ec1c98dda63ec6ad19142"}, + {file = "nbconvert-7.16.5-py3-none-any.whl", hash = "sha256:e12eac052d6fd03040af4166c563d76e7aeead2e9aadf5356db552a1784bd547"}, + {file = "nbconvert-7.16.5.tar.gz", hash = "sha256:c83467bb5777fdfaac5ebbb8e864f300b277f68692ecc04d6dab72f2d8442344"}, ] [package.dependencies] beautifulsoup4 = "*" -bleach = "!=5.0.0" +bleach = {version = "!=5.0.0", extras = ["css"]} defusedxml = "*" -importlib-metadata = {version = ">=3.6", markers = "python_version < \"3.10\""} jinja2 = ">=3.0" jupyter-core = ">=4.7" jupyterlab-pygments = "*" @@ -1416,13 +1414,12 @@ nbformat = ">=5.7" packaging = "*" pandocfilters = ">=1.4.1" pygments = ">=2.4.1" -tinycss2 = "*" traitlets = ">=5.1" [package.extras] -all = ["nbconvert[docs,qtpdf,serve,test,webpdf]"] +all = ["flaky", "ipykernel", "ipython", "ipywidgets (>=7.5)", "myst-parser", "nbsphinx (>=0.2.12)", "playwright", "pydata-sphinx-theme", "pyqtwebengine (>=5.15)", "pytest (>=7)", "sphinx (==5.0.2)", "sphinxcontrib-spelling", "tornado (>=6.1)"] docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sphinx-theme", "sphinx (==5.0.2)", "sphinxcontrib-spelling"] -qtpdf = ["nbconvert[qtpng]"] +qtpdf = ["pyqtwebengine (>=5.15)"] qtpng = ["pyqtwebengine (>=5.15)"] serve = ["tornado (>=6.1)"] test = ["flaky", "ipykernel", "ipywidgets (>=7.5)", "pytest (>=7)"] @@ -1462,26 +1459,26 @@ files = [ [[package]] name = "notebook" -version = "7.1.3" +version = "7.3.2" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" optional = false python-versions = ">=3.8" files = [ - {file = "notebook-7.1.3-py3-none-any.whl", hash = "sha256:919b911e59f41f6e3857ce93c9d93535ba66bb090059712770e5968c07e1004d"}, - {file = "notebook-7.1.3.tar.gz", hash = "sha256:41fcebff44cf7bb9377180808bcbae066629b55d8c7722f1ebbe75ca44f9cfc1"}, + {file = "notebook-7.3.2-py3-none-any.whl", hash = "sha256:e5f85fc59b69d3618d73cf27544418193ff8e8058d5bf61d315ce4f473556288"}, + {file = "notebook-7.3.2.tar.gz", hash = "sha256:705e83a1785f45b383bf3ee13cb76680b92d24f56fb0c7d2136fe1d850cd3ca8"}, ] [package.dependencies] jupyter-server = ">=2.4.0,<3" -jupyterlab = ">=4.1.1,<4.2" -jupyterlab-server = ">=2.22.1,<3" +jupyterlab = ">=4.3.4,<4.4" +jupyterlab-server = ">=2.27.1,<3" notebook-shim = ">=0.2,<0.3" tornado = ">=6.2.0" [package.extras] dev = ["hatch", "pre-commit"] docs = ["myst-parser", "nbsphinx", "pydata-sphinx-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] -test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.22.1,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"] +test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.27.1,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"] [[package]] name = "notebook-shim" @@ -1500,6 +1497,70 @@ jupyter-server = ">=1.8,<3" [package.extras] test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] +[[package]] +name = "numpy" +version = "2.2.1" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.10" +files = [ + {file = "numpy-2.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5edb4e4caf751c1518e6a26a83501fda79bff41cc59dac48d70e6d65d4ec4440"}, + {file = "numpy-2.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aa3017c40d513ccac9621a2364f939d39e550c542eb2a894b4c8da92b38896ab"}, + {file = "numpy-2.2.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:61048b4a49b1c93fe13426e04e04fdf5a03f456616f6e98c7576144677598675"}, + {file = "numpy-2.2.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:7671dc19c7019103ca44e8d94917eba8534c76133523ca8406822efdd19c9308"}, + {file = "numpy-2.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4250888bcb96617e00bfa28ac24850a83c9f3a16db471eca2ee1f1714df0f957"}, + {file = "numpy-2.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7746f235c47abc72b102d3bce9977714c2444bdfaea7888d241b4c4bb6a78bf"}, + {file = "numpy-2.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:059e6a747ae84fce488c3ee397cee7e5f905fd1bda5fb18c66bc41807ff119b2"}, + {file = "numpy-2.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f62aa6ee4eb43b024b0e5a01cf65a0bb078ef8c395e8713c6e8a12a697144528"}, + {file = "numpy-2.2.1-cp310-cp310-win32.whl", hash = "sha256:48fd472630715e1c1c89bf1feab55c29098cb403cc184b4859f9c86d4fcb6a95"}, + {file = "numpy-2.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:b541032178a718c165a49638d28272b771053f628382d5e9d1c93df23ff58dbf"}, + {file = "numpy-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:40f9e544c1c56ba8f1cf7686a8c9b5bb249e665d40d626a23899ba6d5d9e1484"}, + {file = "numpy-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f9b57eaa3b0cd8db52049ed0330747b0364e899e8a606a624813452b8203d5f7"}, + {file = "numpy-2.2.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:bc8a37ad5b22c08e2dbd27df2b3ef7e5c0864235805b1e718a235bcb200cf1cb"}, + {file = "numpy-2.2.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:9036d6365d13b6cbe8f27a0eaf73ddcc070cae584e5ff94bb45e3e9d729feab5"}, + {file = "numpy-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51faf345324db860b515d3f364eaa93d0e0551a88d6218a7d61286554d190d73"}, + {file = "numpy-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38efc1e56b73cc9b182fe55e56e63b044dd26a72128fd2fbd502f75555d92591"}, + {file = "numpy-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:31b89fa67a8042e96715c68e071a1200c4e172f93b0fbe01a14c0ff3ff820fc8"}, + {file = "numpy-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4c86e2a209199ead7ee0af65e1d9992d1dce7e1f63c4b9a616500f93820658d0"}, + {file = "numpy-2.2.1-cp311-cp311-win32.whl", hash = "sha256:b34d87e8a3090ea626003f87f9392b3929a7bbf4104a05b6667348b6bd4bf1cd"}, + {file = "numpy-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:360137f8fb1b753c5cde3ac388597ad680eccbbbb3865ab65efea062c4a1fd16"}, + {file = "numpy-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:694f9e921a0c8f252980e85bce61ebbd07ed2b7d4fa72d0e4246f2f8aa6642ab"}, + {file = "numpy-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3683a8d166f2692664262fd4900f207791d005fb088d7fdb973cc8d663626faa"}, + {file = "numpy-2.2.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:780077d95eafc2ccc3ced969db22377b3864e5b9a0ea5eb347cc93b3ea900315"}, + {file = "numpy-2.2.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:55ba24ebe208344aa7a00e4482f65742969a039c2acfcb910bc6fcd776eb4355"}, + {file = "numpy-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b1d07b53b78bf84a96898c1bc139ad7f10fda7423f5fd158fd0f47ec5e01ac7"}, + {file = "numpy-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5062dc1a4e32a10dc2b8b13cedd58988261416e811c1dc4dbdea4f57eea61b0d"}, + {file = "numpy-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:fce4f615f8ca31b2e61aa0eb5865a21e14f5629515c9151850aa936c02a1ee51"}, + {file = "numpy-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:67d4cda6fa6ffa073b08c8372aa5fa767ceb10c9a0587c707505a6d426f4e046"}, + {file = "numpy-2.2.1-cp312-cp312-win32.whl", hash = "sha256:32cb94448be47c500d2c7a95f93e2f21a01f1fd05dd2beea1ccd049bb6001cd2"}, + {file = "numpy-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:ba5511d8f31c033a5fcbda22dd5c813630af98c70b2661f2d2c654ae3cdfcfc8"}, + {file = "numpy-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f1d09e520217618e76396377c81fba6f290d5f926f50c35f3a5f72b01a0da780"}, + {file = "numpy-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3ecc47cd7f6ea0336042be87d9e7da378e5c7e9b3c8ad0f7c966f714fc10d821"}, + {file = "numpy-2.2.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f419290bc8968a46c4933158c91a0012b7a99bb2e465d5ef5293879742f8797e"}, + {file = "numpy-2.2.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:5b6c390bfaef8c45a260554888966618328d30e72173697e5cabe6b285fb2348"}, + {file = "numpy-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:526fc406ab991a340744aad7e25251dd47a6720a685fa3331e5c59fef5282a59"}, + {file = "numpy-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f74e6fdeb9a265624ec3a3918430205dff1df7e95a230779746a6af78bc615af"}, + {file = "numpy-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:53c09385ff0b72ba79d8715683c1168c12e0b6e84fb0372e97553d1ea91efe51"}, + {file = "numpy-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f3eac17d9ec51be534685ba877b6ab5edc3ab7ec95c8f163e5d7b39859524716"}, + {file = "numpy-2.2.1-cp313-cp313-win32.whl", hash = "sha256:9ad014faa93dbb52c80d8f4d3dcf855865c876c9660cb9bd7553843dd03a4b1e"}, + {file = "numpy-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:164a829b6aacf79ca47ba4814b130c4020b202522a93d7bff2202bfb33b61c60"}, + {file = "numpy-2.2.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4dfda918a13cc4f81e9118dea249e192ab167a0bb1966272d5503e39234d694e"}, + {file = "numpy-2.2.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:733585f9f4b62e9b3528dd1070ec4f52b8acf64215b60a845fa13ebd73cd0712"}, + {file = "numpy-2.2.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:89b16a18e7bba224ce5114db863e7029803c179979e1af6ad6a6b11f70545008"}, + {file = "numpy-2.2.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:676f4eebf6b2d430300f1f4f4c2461685f8269f94c89698d832cdf9277f30b84"}, + {file = "numpy-2.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27f5cdf9f493b35f7e41e8368e7d7b4bbafaf9660cba53fb21d2cd174ec09631"}, + {file = "numpy-2.2.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1ad395cf254c4fbb5b2132fee391f361a6e8c1adbd28f2cd8e79308a615fe9d"}, + {file = "numpy-2.2.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:08ef779aed40dbc52729d6ffe7dd51df85796a702afbf68a4f4e41fafdc8bda5"}, + {file = "numpy-2.2.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:26c9c4382b19fcfbbed3238a14abf7ff223890ea1936b8890f058e7ba35e8d71"}, + {file = "numpy-2.2.1-cp313-cp313t-win32.whl", hash = "sha256:93cf4e045bae74c90ca833cba583c14b62cb4ba2cba0abd2b141ab52548247e2"}, + {file = "numpy-2.2.1-cp313-cp313t-win_amd64.whl", hash = "sha256:bff7d8ec20f5f42607599f9994770fa65d76edca264a87b5e4ea5629bce12268"}, + {file = "numpy-2.2.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7ba9cc93a91d86365a5d270dee221fdc04fb68d7478e6bf6af650de78a8339e3"}, + {file = "numpy-2.2.1-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:3d03883435a19794e41f147612a77a8f56d4e52822337844fff3d4040a142964"}, + {file = "numpy-2.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4511d9e6071452b944207c8ce46ad2f897307910b402ea5fa975da32e0102800"}, + {file = "numpy-2.2.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5c5cc0cbabe9452038ed984d05ac87910f89370b9242371bd9079cb4af61811e"}, + {file = "numpy-2.2.1.tar.gz", hash = "sha256:45681fd7128c8ad1c379f0ca0776a8b0c6583d2f69889ddac01559dfe4390918"}, +] + [[package]] name = "orderedmultidict" version = "1.0.1" @@ -1527,15 +1588,97 @@ files = [ [[package]] name = "packaging" -version = "24.0" +version = "24.2" description = "Core utilities for Python packages" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, - {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, ] +[[package]] +name = "pandas" +version = "2.2.3" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, + {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"}, + {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, + {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"}, + {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"}, + {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, + {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, + {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, +] + +[package.dependencies] +numpy = {version = ">=1.22.4", markers = "python_version < \"3.11\""} +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] + [[package]] name = "pandocfilters" version = "1.5.1" @@ -1578,18 +1721,19 @@ ptyprocess = ">=0.5" [[package]] name = "platformdirs" -version = "4.2.0" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +version = "4.3.6" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" files = [ - {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, - {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, ] [package.extras] -docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] [[package]] name = "pluggy" @@ -1608,13 +1752,13 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "prometheus-client" -version = "0.20.0" +version = "0.21.1" description = "Python client for the Prometheus monitoring system." optional = false python-versions = ">=3.8" files = [ - {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"}, - {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"}, + {file = "prometheus_client-0.21.1-py3-none-any.whl", hash = "sha256:594b45c410d6f4f8888940fe80b5cc2521b305a1fafe1c58609ef715a001f301"}, + {file = "prometheus_client-0.21.1.tar.gz", hash = "sha256:252505a722ac04b0456be05c05f75f45d760c2911ffc45f2a06bcaed9f3ae3fb"}, ] [package.extras] @@ -1622,13 +1766,13 @@ twisted = ["twisted"] [[package]] name = "prompt-toolkit" -version = "3.0.43" +version = "3.0.48" description = "Library for building powerful interactive command lines in Python" optional = false python-versions = ">=3.7.0" files = [ - {file = "prompt_toolkit-3.0.43-py3-none-any.whl", hash = "sha256:a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6"}, - {file = "prompt_toolkit-3.0.43.tar.gz", hash = "sha256:3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d"}, + {file = "prompt_toolkit-3.0.48-py3-none-any.whl", hash = "sha256:f49a827f90062e411f1ce1f854f2aedb3c23353244f8108b89283587397ac10e"}, + {file = "prompt_toolkit-3.0.48.tar.gz", hash = "sha256:d6623ab0477a80df74e646bdbc93621143f5caf104206aa29294d53de1a03d90"}, ] [package.dependencies] @@ -1636,31 +1780,33 @@ wcwidth = "*" [[package]] name = "psutil" -version = "5.9.8" +version = "6.1.1" description = "Cross-platform lib for process and system monitoring in Python." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" -files = [ - {file = "psutil-5.9.8-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8"}, - {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73"}, - {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7"}, - {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36"}, - {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d"}, - {file = "psutil-5.9.8-cp27-none-win32.whl", hash = "sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e"}, - {file = "psutil-5.9.8-cp27-none-win_amd64.whl", hash = "sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631"}, - {file = "psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81"}, - {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421"}, - {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4"}, - {file = "psutil-5.9.8-cp36-cp36m-win32.whl", hash = "sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee"}, - {file = "psutil-5.9.8-cp36-cp36m-win_amd64.whl", hash = "sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2"}, - {file = "psutil-5.9.8-cp37-abi3-win32.whl", hash = "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0"}, - {file = "psutil-5.9.8-cp37-abi3-win_amd64.whl", hash = "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf"}, - {file = "psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8"}, - {file = "psutil-5.9.8.tar.gz", hash = "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c"}, +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "psutil-6.1.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:9ccc4316f24409159897799b83004cb1e24f9819b0dcf9c0b68bdcb6cefee6a8"}, + {file = "psutil-6.1.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ca9609c77ea3b8481ab005da74ed894035936223422dc591d6772b147421f777"}, + {file = "psutil-6.1.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:8df0178ba8a9e5bc84fed9cfa61d54601b371fbec5c8eebad27575f1e105c0d4"}, + {file = "psutil-6.1.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:1924e659d6c19c647e763e78670a05dbb7feaf44a0e9c94bf9e14dfc6ba50468"}, + {file = "psutil-6.1.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:018aeae2af92d943fdf1da6b58665124897cfc94faa2ca92098838f83e1b1bca"}, + {file = "psutil-6.1.1-cp27-none-win32.whl", hash = "sha256:6d4281f5bbca041e2292be3380ec56a9413b790579b8e593b1784499d0005dac"}, + {file = "psutil-6.1.1-cp27-none-win_amd64.whl", hash = "sha256:c777eb75bb33c47377c9af68f30e9f11bc78e0f07fbf907be4a5d70b2fe5f030"}, + {file = "psutil-6.1.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fc0ed7fe2231a444fc219b9c42d0376e0a9a1a72f16c5cfa0f68d19f1a0663e8"}, + {file = "psutil-6.1.1-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0bdd4eab935276290ad3cb718e9809412895ca6b5b334f5a9111ee6d9aff9377"}, + {file = "psutil-6.1.1-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6e06c20c05fe95a3d7302d74e7097756d4ba1247975ad6905441ae1b5b66003"}, + {file = "psutil-6.1.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97f7cb9921fbec4904f522d972f0c0e1f4fabbdd4e0287813b21215074a0f160"}, + {file = "psutil-6.1.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33431e84fee02bc84ea36d9e2c4a6d395d479c9dd9bba2376c1f6ee8f3a4e0b3"}, + {file = "psutil-6.1.1-cp36-cp36m-win32.whl", hash = "sha256:384636b1a64b47814437d1173be1427a7c83681b17a450bfc309a1953e329603"}, + {file = "psutil-6.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:8be07491f6ebe1a693f17d4f11e69d0dc1811fa082736500f649f79df7735303"}, + {file = "psutil-6.1.1-cp37-abi3-win32.whl", hash = "sha256:eaa912e0b11848c4d9279a93d7e2783df352b082f40111e078388701fd479e53"}, + {file = "psutil-6.1.1-cp37-abi3-win_amd64.whl", hash = "sha256:f35cfccb065fff93529d2afb4a2e89e363fe63ca1e4a5da22b603a85833c2649"}, + {file = "psutil-6.1.1.tar.gz", hash = "sha256:cf8496728c18f2d0b45198f06895be52f36611711746b7f30c464b422b50e2f5"}, ] [package.extras] -test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] +dev = ["abi3audit", "black", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pytest-cov", "requests", "rstcheck", "ruff", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "virtualenv", "vulture", "wheel"] +test = ["pytest", "pytest-xdist", "setuptools"] [[package]] name = "ptyprocess" @@ -1675,13 +1821,13 @@ files = [ [[package]] name = "pure-eval" -version = "0.2.2" +version = "0.2.3" description = "Safely evaluate AST nodes without side effects" optional = false python-versions = "*" files = [ - {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, - {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, + {file = "pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0"}, + {file = "pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"}, ] [package.extras] @@ -1689,13 +1835,13 @@ tests = ["pytest"] [[package]] name = "pycodestyle" -version = "2.11.1" +version = "2.12.1" description = "Python style guide checker" optional = false python-versions = ">=3.8" files = [ - {file = "pycodestyle-2.11.1-py2.py3-none-any.whl", hash = "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"}, - {file = "pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"}, + {file = "pycodestyle-2.12.1-py2.py3-none-any.whl", hash = "sha256:46f0fb92069a7c28ab7bb558f05bfc0110dac69a0cd23c61ea0040283a9d78b3"}, + {file = "pycodestyle-2.12.1.tar.gz", hash = "sha256:6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521"}, ] [[package]] @@ -1711,109 +1857,131 @@ files = [ [[package]] name = "pydantic" -version = "2.7.0" +version = "2.10.4" description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic-2.7.0-py3-none-any.whl", hash = "sha256:9dee74a271705f14f9a1567671d144a851c675b072736f0a7b2608fd9e495352"}, - {file = "pydantic-2.7.0.tar.gz", hash = "sha256:b5ecdd42262ca2462e2624793551e80911a1e989f462910bb81aef974b4bb383"}, + {file = "pydantic-2.10.4-py3-none-any.whl", hash = "sha256:597e135ea68be3a37552fb524bc7d0d66dcf93d395acd93a00682f1efcb8ee3d"}, + {file = "pydantic-2.10.4.tar.gz", hash = "sha256:82f12e9723da6de4fe2ba888b5971157b3be7ad914267dea8f05f82b28254f06"}, ] [package.dependencies] -annotated-types = ">=0.4.0" -pydantic-core = "2.18.1" -typing-extensions = ">=4.6.1" +annotated-types = ">=0.6.0" +pydantic-core = "2.27.2" +typing-extensions = ">=4.12.2" [package.extras] email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata"] [[package]] name = "pydantic-core" -version = "2.18.1" +version = "2.27.2" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic_core-2.18.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ee9cf33e7fe14243f5ca6977658eb7d1042caaa66847daacbd2117adb258b226"}, - {file = "pydantic_core-2.18.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6b7bbb97d82659ac8b37450c60ff2e9f97e4eb0f8a8a3645a5568b9334b08b50"}, - {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df4249b579e75094f7e9bb4bd28231acf55e308bf686b952f43100a5a0be394c"}, - {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d0491006a6ad20507aec2be72e7831a42efc93193d2402018007ff827dc62926"}, - {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ae80f72bb7a3e397ab37b53a2b49c62cc5496412e71bc4f1277620a7ce3f52b"}, - {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:58aca931bef83217fca7a390e0486ae327c4af9c3e941adb75f8772f8eeb03a1"}, - {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1be91ad664fc9245404a789d60cba1e91c26b1454ba136d2a1bf0c2ac0c0505a"}, - {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:667880321e916a8920ef49f5d50e7983792cf59f3b6079f3c9dac2b88a311d17"}, - {file = "pydantic_core-2.18.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f7054fdc556f5421f01e39cbb767d5ec5c1139ea98c3e5b350e02e62201740c7"}, - {file = "pydantic_core-2.18.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:030e4f9516f9947f38179249778709a460a3adb516bf39b5eb9066fcfe43d0e6"}, - {file = "pydantic_core-2.18.1-cp310-none-win32.whl", hash = "sha256:2e91711e36e229978d92642bfc3546333a9127ecebb3f2761372e096395fc649"}, - {file = "pydantic_core-2.18.1-cp310-none-win_amd64.whl", hash = "sha256:9a29726f91c6cb390b3c2338f0df5cd3e216ad7a938762d11c994bb37552edb0"}, - {file = "pydantic_core-2.18.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:9ece8a49696669d483d206b4474c367852c44815fca23ac4e48b72b339807f80"}, - {file = "pydantic_core-2.18.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7a5d83efc109ceddb99abd2c1316298ced2adb4570410defe766851a804fcd5b"}, - {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f7973c381283783cd1043a8c8f61ea5ce7a3a58b0369f0ee0ee975eaf2f2a1b"}, - {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:54c7375c62190a7845091f521add19b0f026bcf6ae674bdb89f296972272e86d"}, - {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd63cec4e26e790b70544ae5cc48d11b515b09e05fdd5eff12e3195f54b8a586"}, - {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:561cf62c8a3498406495cfc49eee086ed2bb186d08bcc65812b75fda42c38294"}, - {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68717c38a68e37af87c4da20e08f3e27d7e4212e99e96c3d875fbf3f4812abfc"}, - {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d5728e93d28a3c63ee513d9ffbac9c5989de8c76e049dbcb5bfe4b923a9739d"}, - {file = "pydantic_core-2.18.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f0f17814c505f07806e22b28856c59ac80cee7dd0fbb152aed273e116378f519"}, - {file = "pydantic_core-2.18.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d816f44a51ba5175394bc6c7879ca0bd2be560b2c9e9f3411ef3a4cbe644c2e9"}, - {file = "pydantic_core-2.18.1-cp311-none-win32.whl", hash = "sha256:09f03dfc0ef8c22622eaa8608caa4a1e189cfb83ce847045eca34f690895eccb"}, - {file = "pydantic_core-2.18.1-cp311-none-win_amd64.whl", hash = "sha256:27f1009dc292f3b7ca77feb3571c537276b9aad5dd4efb471ac88a8bd09024e9"}, - {file = "pydantic_core-2.18.1-cp311-none-win_arm64.whl", hash = "sha256:48dd883db92e92519201f2b01cafa881e5f7125666141a49ffba8b9facc072b0"}, - {file = "pydantic_core-2.18.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b6b0e4912030c6f28bcb72b9ebe4989d6dc2eebcd2a9cdc35fefc38052dd4fe8"}, - {file = "pydantic_core-2.18.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f3202a429fe825b699c57892d4371c74cc3456d8d71b7f35d6028c96dfecad31"}, - {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3982b0a32d0a88b3907e4b0dc36809fda477f0757c59a505d4e9b455f384b8b"}, - {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25595ac311f20e5324d1941909b0d12933f1fd2171075fcff763e90f43e92a0d"}, - {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:14fe73881cf8e4cbdaded8ca0aa671635b597e42447fec7060d0868b52d074e6"}, - {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca976884ce34070799e4dfc6fbd68cb1d181db1eefe4a3a94798ddfb34b8867f"}, - {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:684d840d2c9ec5de9cb397fcb3f36d5ebb6fa0d94734f9886032dd796c1ead06"}, - {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:54764c083bbe0264f0f746cefcded6cb08fbbaaf1ad1d78fb8a4c30cff999a90"}, - {file = "pydantic_core-2.18.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:201713f2f462e5c015b343e86e68bd8a530a4f76609b33d8f0ec65d2b921712a"}, - {file = "pydantic_core-2.18.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fd1a9edb9dd9d79fbeac1ea1f9a8dd527a6113b18d2e9bcc0d541d308dae639b"}, - {file = "pydantic_core-2.18.1-cp312-none-win32.whl", hash = "sha256:d5e6b7155b8197b329dc787356cfd2684c9d6a6b1a197f6bbf45f5555a98d411"}, - {file = "pydantic_core-2.18.1-cp312-none-win_amd64.whl", hash = "sha256:9376d83d686ec62e8b19c0ac3bf8d28d8a5981d0df290196fb6ef24d8a26f0d6"}, - {file = "pydantic_core-2.18.1-cp312-none-win_arm64.whl", hash = "sha256:c562b49c96906b4029b5685075fe1ebd3b5cc2601dfa0b9e16c2c09d6cbce048"}, - {file = "pydantic_core-2.18.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:3e352f0191d99fe617371096845070dee295444979efb8f27ad941227de6ad09"}, - {file = "pydantic_core-2.18.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c0295d52b012cbe0d3059b1dba99159c3be55e632aae1999ab74ae2bd86a33d7"}, - {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56823a92075780582d1ffd4489a2e61d56fd3ebb4b40b713d63f96dd92d28144"}, - {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dd3f79e17b56741b5177bcc36307750d50ea0698df6aa82f69c7db32d968c1c2"}, - {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38a5024de321d672a132b1834a66eeb7931959c59964b777e8f32dbe9523f6b1"}, - {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d2ce426ee691319d4767748c8e0895cfc56593d725594e415f274059bcf3cb76"}, - {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2adaeea59849ec0939af5c5d476935f2bab4b7f0335b0110f0f069a41024278e"}, - {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9b6431559676a1079eac0f52d6d0721fb8e3c5ba43c37bc537c8c83724031feb"}, - {file = "pydantic_core-2.18.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:85233abb44bc18d16e72dc05bf13848a36f363f83757541f1a97db2f8d58cfd9"}, - {file = "pydantic_core-2.18.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:641a018af4fe48be57a2b3d7a1f0f5dbca07c1d00951d3d7463f0ac9dac66622"}, - {file = "pydantic_core-2.18.1-cp38-none-win32.whl", hash = "sha256:63d7523cd95d2fde0d28dc42968ac731b5bb1e516cc56b93a50ab293f4daeaad"}, - {file = "pydantic_core-2.18.1-cp38-none-win_amd64.whl", hash = "sha256:907a4d7720abfcb1c81619863efd47c8a85d26a257a2dbebdb87c3b847df0278"}, - {file = "pydantic_core-2.18.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:aad17e462f42ddbef5984d70c40bfc4146c322a2da79715932cd8976317054de"}, - {file = "pydantic_core-2.18.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:94b9769ba435b598b547c762184bcfc4783d0d4c7771b04a3b45775c3589ca44"}, - {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80e0e57cc704a52fb1b48f16d5b2c8818da087dbee6f98d9bf19546930dc64b5"}, - {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:76b86e24039c35280ceee6dce7e62945eb93a5175d43689ba98360ab31eebc4a"}, - {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12a05db5013ec0ca4a32cc6433f53faa2a014ec364031408540ba858c2172bb0"}, - {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:250ae39445cb5475e483a36b1061af1bc233de3e9ad0f4f76a71b66231b07f88"}, - {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a32204489259786a923e02990249c65b0f17235073149d0033efcebe80095570"}, - {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6395a4435fa26519fd96fdccb77e9d00ddae9dd6c742309bd0b5610609ad7fb2"}, - {file = "pydantic_core-2.18.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2533ad2883f001efa72f3d0e733fb846710c3af6dcdd544fe5bf14fa5fe2d7db"}, - {file = "pydantic_core-2.18.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b560b72ed4816aee52783c66854d96157fd8175631f01ef58e894cc57c84f0f6"}, - {file = "pydantic_core-2.18.1-cp39-none-win32.whl", hash = "sha256:582cf2cead97c9e382a7f4d3b744cf0ef1a6e815e44d3aa81af3ad98762f5a9b"}, - {file = "pydantic_core-2.18.1-cp39-none-win_amd64.whl", hash = "sha256:ca71d501629d1fa50ea7fa3b08ba884fe10cefc559f5c6c8dfe9036c16e8ae89"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e178e5b66a06ec5bf51668ec0d4ac8cfb2bdcb553b2c207d58148340efd00143"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:72722ce529a76a4637a60be18bd789d8fb871e84472490ed7ddff62d5fed620d"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fe0c1ce5b129455e43f941f7a46f61f3d3861e571f2905d55cdbb8b5c6f5e2c"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4284c621f06a72ce2cb55f74ea3150113d926a6eb78ab38340c08f770eb9b4d"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a0c3e718f4e064efde68092d9d974e39572c14e56726ecfaeebbe6544521f47"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:2027493cc44c23b598cfaf200936110433d9caa84e2c6cf487a83999638a96ac"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:76909849d1a6bffa5a07742294f3fa1d357dc917cb1fe7b470afbc3a7579d539"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ee7ccc7fb7e921d767f853b47814c3048c7de536663e82fbc37f5eb0d532224b"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ee2794111c188548a4547eccc73a6a8527fe2af6cf25e1a4ebda2fd01cdd2e60"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a139fe9f298dc097349fb4f28c8b81cc7a202dbfba66af0e14be5cfca4ef7ce5"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d074b07a10c391fc5bbdcb37b2f16f20fcd9e51e10d01652ab298c0d07908ee2"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c69567ddbac186e8c0aadc1f324a60a564cfe25e43ef2ce81bcc4b8c3abffbae"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:baf1c7b78cddb5af00971ad5294a4583188bda1495b13760d9f03c9483bb6203"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:2684a94fdfd1b146ff10689c6e4e815f6a01141781c493b97342cdc5b06f4d5d"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:73c1bc8a86a5c9e8721a088df234265317692d0b5cd9e86e975ce3bc3db62a59"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e60defc3c15defb70bb38dd605ff7e0fae5f6c9c7cbfe0ad7868582cb7e844a6"}, - {file = "pydantic_core-2.18.1.tar.gz", hash = "sha256:de9d3e8717560eb05e28739d1b35e4eac2e458553a52a301e51352a7ffc86a35"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, + {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, ] [package.dependencies] @@ -1832,47 +2000,46 @@ files = [ [[package]] name = "pygments" -version = "2.17.2" +version = "2.18.0" description = "Pygments is a syntax highlighting package written in Python." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, - {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, ] [package.extras] -plugins = ["importlib-metadata"] windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pyproject-api" -version = "1.6.1" +version = "1.8.0" description = "API to interact with the python pyproject.toml based projects" optional = false python-versions = ">=3.8" files = [ - {file = "pyproject_api-1.6.1-py3-none-any.whl", hash = "sha256:4c0116d60476b0786c88692cf4e325a9814965e2469c5998b830bba16b183675"}, - {file = "pyproject_api-1.6.1.tar.gz", hash = "sha256:1817dc018adc0d1ff9ca1ed8c60e1623d5aaca40814b953af14a9cf9a5cae538"}, + {file = "pyproject_api-1.8.0-py3-none-any.whl", hash = "sha256:3d7d347a047afe796fd5d1885b1e391ba29be7169bd2f102fcd378f04273d228"}, + {file = "pyproject_api-1.8.0.tar.gz", hash = "sha256:77b8049f2feb5d33eefcc21b57f1e279636277a8ac8ad6b5871037b243778496"}, ] [package.dependencies] -packaging = ">=23.1" +packaging = ">=24.1" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} [package.extras] -docs = ["furo (>=2023.8.19)", "sphinx (<7.2)", "sphinx-autodoc-typehints (>=1.24)"] -testing = ["covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "setuptools (>=68.1.2)", "wheel (>=0.41.2)"] +docs = ["furo (>=2024.8.6)", "sphinx-autodoc-typehints (>=2.4.1)"] +testing = ["covdefaults (>=2.3)", "pytest (>=8.3.3)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "setuptools (>=75.1)"] [[package]] name = "pytest" -version = "8.1.1" +version = "8.3.4" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.8" files = [ - {file = "pytest-8.1.1-py3-none-any.whl", hash = "sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7"}, - {file = "pytest-8.1.1.tar.gz", hash = "sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044"}, + {file = "pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6"}, + {file = "pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761"}, ] [package.dependencies] @@ -1880,11 +2047,11 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=1.4,<2.0" +pluggy = ">=1.5,<2" tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "python-dateutil" @@ -1902,263 +2069,263 @@ six = ">=1.5" [[package]] name = "python-json-logger" -version = "2.0.7" -description = "A python library adding a json log formatter" +version = "3.2.1" +description = "JSON Log Formatter for the Python Logging Package" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" +files = [ + {file = "python_json_logger-3.2.1-py3-none-any.whl", hash = "sha256:cdc17047eb5374bd311e748b42f99d71223f3b0e186f4206cc5d52aefe85b090"}, + {file = "python_json_logger-3.2.1.tar.gz", hash = "sha256:8eb0554ea17cb75b05d2848bc14fb02fbdbd9d6972120781b974380bfa162008"}, +] + +[package.extras] +dev = ["backports.zoneinfo", "black", "build", "freezegun", "mdx_truly_sane_lists", "mike", "mkdocs", "mkdocs-awesome-pages-plugin", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-material (>=8.5)", "mkdocstrings[python]", "msgspec", "msgspec-python313-pre", "mypy", "orjson", "pylint", "pytest", "tzdata", "validate-pyproject[all]"] + +[[package]] +name = "pytz" +version = "2024.2" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" files = [ - {file = "python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c"}, - {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"}, + {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, + {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, ] [[package]] name = "pywin32" -version = "306" +version = "308" description = "Python for Window Extensions" optional = false python-versions = "*" files = [ - {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, - {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, - {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, - {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, - {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, - {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, - {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, - {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, - {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, - {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, - {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, - {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, - {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, - {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, + {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, + {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, + {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, + {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, + {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, + {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, + {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, + {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, + {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, + {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, + {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, + {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, + {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, + {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, + {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, + {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, + {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, + {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, ] [[package]] name = "pywinpty" -version = "2.0.13" +version = "2.0.14" description = "Pseudo terminal support for Windows from Python." optional = false python-versions = ">=3.8" files = [ - {file = "pywinpty-2.0.13-cp310-none-win_amd64.whl", hash = "sha256:697bff211fb5a6508fee2dc6ff174ce03f34a9a233df9d8b5fe9c8ce4d5eaf56"}, - {file = "pywinpty-2.0.13-cp311-none-win_amd64.whl", hash = "sha256:b96fb14698db1284db84ca38c79f15b4cfdc3172065b5137383910567591fa99"}, - {file = "pywinpty-2.0.13-cp312-none-win_amd64.whl", hash = "sha256:2fd876b82ca750bb1333236ce98488c1be96b08f4f7647cfdf4129dfad83c2d4"}, - {file = "pywinpty-2.0.13-cp38-none-win_amd64.whl", hash = "sha256:61d420c2116c0212808d31625611b51caf621fe67f8a6377e2e8b617ea1c1f7d"}, - {file = "pywinpty-2.0.13-cp39-none-win_amd64.whl", hash = "sha256:71cb613a9ee24174730ac7ae439fd179ca34ccb8c5349e8d7b72ab5dea2c6f4b"}, - {file = "pywinpty-2.0.13.tar.gz", hash = "sha256:c34e32351a3313ddd0d7da23d27f835c860d32fe4ac814d372a3ea9594f41dde"}, + {file = "pywinpty-2.0.14-cp310-none-win_amd64.whl", hash = "sha256:0b149c2918c7974f575ba79f5a4aad58bd859a52fa9eb1296cc22aa412aa411f"}, + {file = "pywinpty-2.0.14-cp311-none-win_amd64.whl", hash = "sha256:cf2a43ac7065b3e0dc8510f8c1f13a75fb8fde805efa3b8cff7599a1ef497bc7"}, + {file = "pywinpty-2.0.14-cp312-none-win_amd64.whl", hash = "sha256:55dad362ef3e9408ade68fd173e4f9032b3ce08f68cfe7eacb2c263ea1179737"}, + {file = "pywinpty-2.0.14-cp313-none-win_amd64.whl", hash = "sha256:074fb988a56ec79ca90ed03a896d40707131897cefb8f76f926e3834227f2819"}, + {file = "pywinpty-2.0.14-cp39-none-win_amd64.whl", hash = "sha256:5725fd56f73c0531ec218663bd8c8ff5acc43c78962fab28564871b5fce053fd"}, + {file = "pywinpty-2.0.14.tar.gz", hash = "sha256:18bd9529e4a5daf2d9719aa17788ba6013e594ae94c5a0c27e83df3278b0660e"}, ] [[package]] name = "pyyaml" -version = "6.0.1" +version = "6.0.2" description = "YAML parser and emitter for Python" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, - {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, - {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, - {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, - {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, - {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, - {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, - {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, - {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, - {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, - {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, - {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, - {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, - {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, - {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, - {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, - {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, - {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, - {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, - {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, ] [[package]] name = "pyzmq" -version = "26.0.2" +version = "26.2.0" description = "Python bindings for 0MQ" optional = false python-versions = ">=3.7" files = [ - {file = "pyzmq-26.0.2-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:1a60a03b01e8c9c58932ec0cca15b1712d911c2800eb82d4281bc1ae5b6dad50"}, - {file = "pyzmq-26.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:949067079e14ea1973bd740255e0840118c163d4bce8837f539d749f145cf5c3"}, - {file = "pyzmq-26.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37e7edfa6cf96d036a403775c96afa25058d1bb940a79786a9a2fc94a783abe3"}, - {file = "pyzmq-26.0.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:903cc7a84a7d4326b43755c368780800e035aa3d711deae84a533fdffa8755b0"}, - {file = "pyzmq-26.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6cb2e41af165e5f327d06fbdd79a42a4e930267fade4e9f92d17f3ccce03f3a7"}, - {file = "pyzmq-26.0.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:55353b8189adcfc4c125fc4ce59d477744118e9c0ec379dd0999c5fa120ac4f5"}, - {file = "pyzmq-26.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f961423ff6236a752ced80057a20e623044df95924ed1009f844cde8b3a595f9"}, - {file = "pyzmq-26.0.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ba77fe84fe4f5f3dc0ef681a6d366685c8ffe1c8439c1d7530997b05ac06a04b"}, - {file = "pyzmq-26.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:52589f0a745ef61b9c75c872cf91f8c1f7c0668eb3dd99d7abd639d8c0fb9ca7"}, - {file = "pyzmq-26.0.2-cp310-cp310-win32.whl", hash = "sha256:b7b6d2a46c7afe2ad03ec8faf9967090c8ceae85c4d8934d17d7cae6f9062b64"}, - {file = "pyzmq-26.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:86531e20de249d9204cc6d8b13d5a30537748c78820215161d8a3b9ea58ca111"}, - {file = "pyzmq-26.0.2-cp310-cp310-win_arm64.whl", hash = "sha256:f26a05029ecd2bd306b941ff8cb80f7620b7901421052bc429d238305b1cbf2f"}, - {file = "pyzmq-26.0.2-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:70770e296a9cb03d955540c99360aab861cbb3cba29516abbd106a15dbd91268"}, - {file = "pyzmq-26.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2740fd7161b39e178554ebf21aa5667a1c9ef0cd2cb74298fd4ef017dae7aec4"}, - {file = "pyzmq-26.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5e3706c32dea077faa42b1c92d825b7f86c866f72532d342e0be5e64d14d858"}, - {file = "pyzmq-26.0.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fa1416876194927f7723d6b7171b95e1115602967fc6bfccbc0d2d51d8ebae1"}, - {file = "pyzmq-26.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ef9a79a48794099c57dc2df00340b5d47c5caa1792f9ddb8c7a26b1280bd575"}, - {file = "pyzmq-26.0.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:1c60fcdfa3229aeee4291c5d60faed3a813b18bdadb86299c4bf49e8e51e8605"}, - {file = "pyzmq-26.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e943c39c206b04df2eb5d71305761d7c3ca75fd49452115ea92db1b5b98dbdef"}, - {file = "pyzmq-26.0.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8da0ed8a598693731c76659880a668f4748b59158f26ed283a93f7f04d47447e"}, - {file = "pyzmq-26.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7bf51970b11d67096bede97cdbad0f4333f7664f4708b9b2acb352bf4faa3140"}, - {file = "pyzmq-26.0.2-cp311-cp311-win32.whl", hash = "sha256:6f8e6bd5d066be605faa9fe5ec10aa1a46ad9f18fc8646f2b9aaefc8fb575742"}, - {file = "pyzmq-26.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:6d03da3a0ae691b361edcb39530075461202f699ce05adbb15055a0e1c9bcaa4"}, - {file = "pyzmq-26.0.2-cp311-cp311-win_arm64.whl", hash = "sha256:f84e33321b68ff00b60e9dbd1a483e31ab6022c577c8de525b8e771bd274ce68"}, - {file = "pyzmq-26.0.2-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:44c33ebd1c62a01db7fbc24e18bdda569d6639217d13d5929e986a2b0f69070d"}, - {file = "pyzmq-26.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ac04f904b4fce4afea9cdccbb78e24d468cb610a839d5a698853e14e2a3f9ecf"}, - {file = "pyzmq-26.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2133de5ba9adc5f481884ccb699eac9ce789708292945c05746880f95b241c0"}, - {file = "pyzmq-26.0.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7753c67c570d7fc80c2dc59b90ca1196f1224e0e2e29a548980c95fe0fe27fc1"}, - {file = "pyzmq-26.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d4e51632e6b12e65e8d9d7612446ecda2eda637a868afa7bce16270194650dd"}, - {file = "pyzmq-26.0.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d6c38806f6ecd0acf3104b8d7e76a206bcf56dadd6ce03720d2fa9d9157d5718"}, - {file = "pyzmq-26.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:48f496bbe14686b51cec15406323ae6942851e14022efd7fc0e2ecd092c5982c"}, - {file = "pyzmq-26.0.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:e84a3161149c75bb7a7dc8646384186c34033e286a67fec1ad1bdedea165e7f4"}, - {file = "pyzmq-26.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:dabf796c67aa9f5a4fcc956d47f0d48b5c1ed288d628cf53aa1cf08e88654343"}, - {file = "pyzmq-26.0.2-cp312-cp312-win32.whl", hash = "sha256:3eee4c676af1b109f708d80ef0cf57ecb8aaa5900d1edaf90406aea7e0e20e37"}, - {file = "pyzmq-26.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:26721fec65846b3e4450dad050d67d31b017f97e67f7e0647b5f98aa47f828cf"}, - {file = "pyzmq-26.0.2-cp312-cp312-win_arm64.whl", hash = "sha256:653955c6c233e90de128a1b8e882abc7216f41f44218056bd519969c8c413a15"}, - {file = "pyzmq-26.0.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:becd8d8fb068fbb5a52096efd83a2d8e54354383f691781f53a4c26aee944542"}, - {file = "pyzmq-26.0.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:7a15e5465e7083c12517209c9dd24722b25e9b63c49a563922922fc03554eb35"}, - {file = "pyzmq-26.0.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e8158ac8616941f874841f9fa0f6d2f1466178c2ff91ea08353fdc19de0d40c2"}, - {file = "pyzmq-26.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea2c6a53e28c7066ea7db86fcc0b71d78d01b818bb11d4a4341ec35059885295"}, - {file = "pyzmq-26.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:bdbc7dab0b0e9c62c97b732899c4242e3282ba803bad668e03650b59b165466e"}, - {file = "pyzmq-26.0.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:e74b6d5ef57bb65bf1b4a37453d8d86d88550dde3fb0f23b1f1a24e60c70af5b"}, - {file = "pyzmq-26.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ed4c6ee624ecbc77b18aeeb07bf0700d26571ab95b8f723f0d02e056b5bce438"}, - {file = "pyzmq-26.0.2-cp37-cp37m-win32.whl", hash = "sha256:8a98b3cb0484b83c19d8fb5524c8a469cd9f10e743f5904ac285d92678ee761f"}, - {file = "pyzmq-26.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:aa5f95d71b6eca9cec28aa0a2f8310ea53dea313b63db74932879ff860c1fb8d"}, - {file = "pyzmq-26.0.2-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:5ff56c76ce77b9805378a7a73032c17cbdb1a5b84faa1df03c5d3e306e5616df"}, - {file = "pyzmq-26.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bab697fc1574fee4b81da955678708567c43c813c84c91074e452bda5346c921"}, - {file = "pyzmq-26.0.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0c0fed8aa9ba0488ee1cbdaa304deea92d52fab43d373297002cfcc69c0a20c5"}, - {file = "pyzmq-26.0.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:606b922699fcec472ed814dda4dc3ff7c748254e0b26762a0ba21a726eb1c107"}, - {file = "pyzmq-26.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45f0fd82bad4d199fa993fbf0ac586a7ac5879addbe436a35a389df7e0eb4c91"}, - {file = "pyzmq-26.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:166c5e41045939a52c01e6f374e493d9a6a45dfe677360d3e7026e38c42e8906"}, - {file = "pyzmq-26.0.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:d566e859e8b8d5bca08467c093061774924b3d78a5ba290e82735b2569edc84b"}, - {file = "pyzmq-26.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:264ee0e72b72ca59279dc320deab5ae0fac0d97881aed1875ce4bde2e56ffde0"}, - {file = "pyzmq-26.0.2-cp38-cp38-win32.whl", hash = "sha256:3152bbd3a4744cbdd83dfb210ed701838b8b0c9065cef14671d6d91df12197d0"}, - {file = "pyzmq-26.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:bf77601d75ca692c179154b7e5943c286a4aaffec02c491afe05e60493ce95f2"}, - {file = "pyzmq-26.0.2-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:c770a7545b3deca2db185b59175e710a820dd4ed43619f4c02e90b0e227c6252"}, - {file = "pyzmq-26.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d47175f0a380bfd051726bc5c0054036ae4a5d8caf922c62c8a172ccd95c1a2a"}, - {file = "pyzmq-26.0.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9bce298c1ce077837e110367c321285dc4246b531cde1abfc27e4a5bbe2bed4d"}, - {file = "pyzmq-26.0.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c40b09b7e184d6e3e1be1c8af2cc320c0f9f610d8a5df3dd866e6e6e4e32b235"}, - {file = "pyzmq-26.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d420d856bf728713874cefb911398efe69e1577835851dd297a308a78c14c249"}, - {file = "pyzmq-26.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d792d3cab987058451e55c70c5926e93e2ceb68ca5a2334863bb903eb860c9cb"}, - {file = "pyzmq-26.0.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:83ec17729cf6d3464dab98a11e98294fcd50e6b17eaabd3d841515c23f6dbd3a"}, - {file = "pyzmq-26.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47c17d5ebfa88ae90f08960c97b49917098665b8cd8be31f2c24e177bcf37a0f"}, - {file = "pyzmq-26.0.2-cp39-cp39-win32.whl", hash = "sha256:d509685d1cd1d018705a811c5f9d5bc237790936ead6d06f6558b77e16cc7235"}, - {file = "pyzmq-26.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:c7cc8cc009e8f6989a6d86c96f87dae5f5fb07d6c96916cdc7719d546152c7db"}, - {file = "pyzmq-26.0.2-cp39-cp39-win_arm64.whl", hash = "sha256:3ada31cb879cd7532f4a85b501f4255c747d4813ab76b35c49ed510ce4865b45"}, - {file = "pyzmq-26.0.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0a6ceaddc830dd3ca86cb8451cf373d1f05215368e11834538c2902ed5205139"}, - {file = "pyzmq-26.0.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a967681463aa7a99eb9a62bb18229b653b45c10ff0947b31cc0837a83dfb86f"}, - {file = "pyzmq-26.0.2-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6472a73bc115bc40a2076609a90894775abe6faf19a78375675a2f889a613071"}, - {file = "pyzmq-26.0.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d6aea92bcccfe5e5524d3c70a6f16ffdae548390ddad26f4207d55c55a40593"}, - {file = "pyzmq-26.0.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e025f6351e49d48a5aa2f5a09293aa769b0ee7369c25bed551647234b7fa0c75"}, - {file = "pyzmq-26.0.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:40bd7ebe4dbb37d27f0c56e2a844f360239343a99be422085e13e97da13f73f9"}, - {file = "pyzmq-26.0.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1dd40d586ad6f53764104df6e01810fe1b4e88fd353774629a5e6fe253813f79"}, - {file = "pyzmq-26.0.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f2aca15e9ad8c8657b5b3d7ae3d1724dc8c1c1059c06b4b674c3aa36305f4930"}, - {file = "pyzmq-26.0.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:450ec234736732eb0ebeffdb95a352450d4592f12c3e087e2a9183386d22c8bf"}, - {file = "pyzmq-26.0.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:f43be2bebbd09360a2f23af83b243dc25ffe7b583ea8c722e6df03e03a55f02f"}, - {file = "pyzmq-26.0.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:867f55e54aff254940bcec5eec068e7c0ac1e6bf360ab91479394a8bf356b0e6"}, - {file = "pyzmq-26.0.2-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b4dbc033c5ad46f8c429bf238c25a889b8c1d86bfe23a74e1031a991cb3f0000"}, - {file = "pyzmq-26.0.2-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6e8dd2961462e337e21092ec2da0c69d814dcb1b6e892955a37444a425e9cfb8"}, - {file = "pyzmq-26.0.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35391e72df6c14a09b697c7b94384947c1dd326aca883ff98ff137acdf586c33"}, - {file = "pyzmq-26.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:1c3d3c92fa54eda94ab369ca5b8d35059987c326ba5e55326eb068862f64b1fc"}, - {file = "pyzmq-26.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e7aa61a9cc4f0523373e31fc9255bf4567185a099f85ca3598e64de484da3ab2"}, - {file = "pyzmq-26.0.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee53a8191271f144cc20b12c19daa9f1546adc84a2f33839e3338039b55c373c"}, - {file = "pyzmq-26.0.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac60a980f07fa988983f7bfe6404ef3f1e4303f5288a01713bc1266df6d18783"}, - {file = "pyzmq-26.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88896b1b4817d7b2fe1ec7205c4bbe07bf5d92fb249bf2d226ddea8761996068"}, - {file = "pyzmq-26.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:18dfffe23751edee917764ffa133d5d3fef28dfd1cf3adebef8c90bc854c74c4"}, - {file = "pyzmq-26.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:6926dd14cfe6967d3322640b6d5c3c3039db71716a5e43cca6e3b474e73e0b36"}, - {file = "pyzmq-26.0.2.tar.gz", hash = "sha256:f0f9bb370449158359bb72a3e12c658327670c0ffe6fbcd1af083152b64f9df0"}, + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:ddf33d97d2f52d89f6e6e7ae66ee35a4d9ca6f36eda89c24591b0c40205a3629"}, + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dacd995031a01d16eec825bf30802fceb2c3791ef24bcce48fa98ce40918c27b"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89289a5ee32ef6c439086184529ae060c741334b8970a6855ec0b6ad3ff28764"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5506f06d7dc6ecf1efacb4a013b1f05071bb24b76350832c96449f4a2d95091c"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ea039387c10202ce304af74def5021e9adc6297067f3441d348d2b633e8166a"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a2224fa4a4c2ee872886ed00a571f5e967c85e078e8e8c2530a2fb01b3309b88"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:28ad5233e9c3b52d76196c696e362508959741e1a005fb8fa03b51aea156088f"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1c17211bc037c7d88e85ed8b7d8f7e52db6dc8eca5590d162717c654550f7282"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b8f86dd868d41bea9a5f873ee13bf5551c94cf6bc51baebc6f85075971fe6eea"}, + {file = "pyzmq-26.2.0-cp310-cp310-win32.whl", hash = "sha256:46a446c212e58456b23af260f3d9fb785054f3e3653dbf7279d8f2b5546b21c2"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:49d34ab71db5a9c292a7644ce74190b1dd5a3475612eefb1f8be1d6961441971"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:bfa832bfa540e5b5c27dcf5de5d82ebc431b82c453a43d141afb1e5d2de025fa"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:8f7e66c7113c684c2b3f1c83cdd3376103ee0ce4c49ff80a648643e57fb22218"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3a495b30fc91db2db25120df5847d9833af237546fd59170701acd816ccc01c4"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77eb0968da535cba0470a5165468b2cac7772cfb569977cff92e240f57e31bef"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ace4f71f1900a548f48407fc9be59c6ba9d9aaf658c2eea6cf2779e72f9f317"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92a78853d7280bffb93df0a4a6a2498cba10ee793cc8076ef797ef2f74d107cf"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:689c5d781014956a4a6de61d74ba97b23547e431e9e7d64f27d4922ba96e9d6e"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0aca98bc423eb7d153214b2df397c6421ba6373d3397b26c057af3c904452e37"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f3496d76b89d9429a656293744ceca4d2ac2a10ae59b84c1da9b5165f429ad3"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5c2b3bfd4b9689919db068ac6c9911f3fcb231c39f7dd30e3138be94896d18e6"}, + {file = "pyzmq-26.2.0-cp311-cp311-win32.whl", hash = "sha256:eac5174677da084abf378739dbf4ad245661635f1600edd1221f150b165343f4"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:5a509df7d0a83a4b178d0f937ef14286659225ef4e8812e05580776c70e155d5"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:c0e6091b157d48cbe37bd67233318dbb53e1e6327d6fc3bb284afd585d141003"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:ded0fc7d90fe93ae0b18059930086c51e640cdd3baebdc783a695c77f123dcd9"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:17bf5a931c7f6618023cdacc7081f3f266aecb68ca692adac015c383a134ca52"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55cf66647e49d4621a7e20c8d13511ef1fe1efbbccf670811864452487007e08"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4661c88db4a9e0f958c8abc2b97472e23061f0bc737f6f6179d7a27024e1faa5"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea7f69de383cb47522c9c208aec6dd17697db7875a4674c4af3f8cfdac0bdeae"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:7f98f6dfa8b8ccaf39163ce872bddacca38f6a67289116c8937a02e30bbe9711"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e3e0210287329272539eea617830a6a28161fbbd8a3271bf4150ae3e58c5d0e6"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6b274e0762c33c7471f1a7471d1a2085b1a35eba5cdc48d2ae319f28b6fc4de3"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:29c6a4635eef69d68a00321e12a7d2559fe2dfccfa8efae3ffb8e91cd0b36a8b"}, + {file = "pyzmq-26.2.0-cp312-cp312-win32.whl", hash = "sha256:989d842dc06dc59feea09e58c74ca3e1678c812a4a8a2a419046d711031f69c7"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:2a50625acdc7801bc6f74698c5c583a491c61d73c6b7ea4dee3901bb99adb27a"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:4d29ab8592b6ad12ebbf92ac2ed2bedcfd1cec192d8e559e2e099f648570e19b"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9dd8cd1aeb00775f527ec60022004d030ddc51d783d056e3e23e74e623e33726"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:28c812d9757fe8acecc910c9ac9dafd2ce968c00f9e619db09e9f8f54c3a68a3"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d80b1dd99c1942f74ed608ddb38b181b87476c6a966a88a950c7dee118fdf50"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c997098cc65e3208eca09303630e84d42718620e83b733d0fd69543a9cab9cb"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ad1bc8d1b7a18497dda9600b12dc193c577beb391beae5cd2349184db40f187"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:bea2acdd8ea4275e1278350ced63da0b166421928276c7c8e3f9729d7402a57b"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:23f4aad749d13698f3f7b64aad34f5fc02d6f20f05999eebc96b89b01262fb18"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a4f96f0d88accc3dbe4a9025f785ba830f968e21e3e2c6321ccdfc9aef755115"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ced65e5a985398827cc9276b93ef6dfabe0273c23de8c7931339d7e141c2818e"}, + {file = "pyzmq-26.2.0-cp313-cp313-win32.whl", hash = "sha256:31507f7b47cc1ead1f6e86927f8ebb196a0bab043f6345ce070f412a59bf87b5"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:70fc7fcf0410d16ebdda9b26cbd8bf8d803d220a7f3522e060a69a9c87bf7bad"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:c3789bd5768ab5618ebf09cef6ec2b35fed88709b104351748a63045f0ff9797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:034da5fc55d9f8da09015d368f519478a52675e558c989bfcb5cf6d4e16a7d2a"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c92d73464b886931308ccc45b2744e5968cbaade0b1d6aeb40d8ab537765f5bc"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:794a4562dcb374f7dbbfb3f51d28fb40123b5a2abadee7b4091f93054909add5"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aee22939bb6075e7afededabad1a56a905da0b3c4e3e0c45e75810ebe3a52672"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ae90ff9dad33a1cfe947d2c40cb9cb5e600d759ac4f0fd22616ce6540f72797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:43a47408ac52647dfabbc66a25b05b6a61700b5165807e3fbd40063fcaf46386"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:25bf2374a2a8433633c65ccb9553350d5e17e60c8eb4de4d92cc6bd60f01d306"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:007137c9ac9ad5ea21e6ad97d3489af654381324d5d3ba614c323f60dab8fae6"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:470d4a4f6d48fb34e92d768b4e8a5cc3780db0d69107abf1cd7ff734b9766eb0"}, + {file = "pyzmq-26.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3b55a4229ce5da9497dd0452b914556ae58e96a4381bb6f59f1305dfd7e53fc8"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9cb3a6460cdea8fe8194a76de8895707e61ded10ad0be97188cc8463ffa7e3a8"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8ab5cad923cc95c87bffee098a27856c859bd5d0af31bd346035aa816b081fe1"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ed69074a610fad1c2fda66180e7b2edd4d31c53f2d1872bc2d1211563904cd9"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cccba051221b916a4f5e538997c45d7d136a5646442b1231b916d0164067ea27"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:0eaa83fc4c1e271c24eaf8fb083cbccef8fde77ec8cd45f3c35a9a123e6da097"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:9edda2df81daa129b25a39b86cb57dfdfe16f7ec15b42b19bfac503360d27a93"}, + {file = "pyzmq-26.2.0-cp37-cp37m-win32.whl", hash = "sha256:ea0eb6af8a17fa272f7b98d7bebfab7836a0d62738e16ba380f440fceca2d951"}, + {file = "pyzmq-26.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4ff9dc6bc1664bb9eec25cd17506ef6672d506115095411e237d571e92a58231"}, + {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2eb7735ee73ca1b0d71e0e67c3739c689067f055c764f73aac4cc8ecf958ee3f"}, + {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a534f43bc738181aa7cbbaf48e3eca62c76453a40a746ab95d4b27b1111a7d2"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:aedd5dd8692635813368e558a05266b995d3d020b23e49581ddd5bbe197a8ab6"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8be4700cd8bb02cc454f630dcdf7cfa99de96788b80c51b60fe2fe1dac480289"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fcc03fa4997c447dce58264e93b5aa2d57714fbe0f06c07b7785ae131512732"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:402b190912935d3db15b03e8f7485812db350d271b284ded2b80d2e5704be780"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8685fa9c25ff00f550c1fec650430c4b71e4e48e8d852f7ddcf2e48308038640"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:76589c020680778f06b7e0b193f4b6dd66d470234a16e1df90329f5e14a171cd"}, + {file = "pyzmq-26.2.0-cp38-cp38-win32.whl", hash = "sha256:8423c1877d72c041f2c263b1ec6e34360448decfb323fa8b94e85883043ef988"}, + {file = "pyzmq-26.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:76589f2cd6b77b5bdea4fca5992dc1c23389d68b18ccc26a53680ba2dc80ff2f"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:b1d464cb8d72bfc1a3adc53305a63a8e0cac6bc8c5a07e8ca190ab8d3faa43c2"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4da04c48873a6abdd71811c5e163bd656ee1b957971db7f35140a2d573f6949c"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d049df610ac811dcffdc147153b414147428567fbbc8be43bb8885f04db39d98"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05590cdbc6b902101d0e65d6a4780af14dc22914cc6ab995d99b85af45362cc9"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c811cfcd6a9bf680236c40c6f617187515269ab2912f3d7e8c0174898e2519db"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6835dd60355593de10350394242b5757fbbd88b25287314316f266e24c61d073"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc6bee759a6bddea5db78d7dcd609397449cb2d2d6587f48f3ca613b19410cfc"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c530e1eecd036ecc83c3407f77bb86feb79916d4a33d11394b8234f3bd35b940"}, + {file = "pyzmq-26.2.0-cp39-cp39-win32.whl", hash = "sha256:367b4f689786fca726ef7a6c5ba606958b145b9340a5e4808132cc65759abd44"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:e6fa2e3e683f34aea77de8112f6483803c96a44fd726d7358b9888ae5bb394ec"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:7445be39143a8aa4faec43b076e06944b8f9d0701b669df4af200531b21e40bb"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:706e794564bec25819d21a41c31d4df2d48e1cc4b061e8d345d7fb4dd3e94072"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b435f2753621cd36e7c1762156815e21c985c72b19135dac43a7f4f31d28dd1"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:160c7e0a5eb178011e72892f99f918c04a131f36056d10d9c1afb223fc952c2d"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c4a71d5d6e7b28a47a394c0471b7e77a0661e2d651e7ae91e0cab0a587859ca"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:90412f2db8c02a3864cbfc67db0e3dcdbda336acf1c469526d3e869394fe001c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2ea4ad4e6a12e454de05f2949d4beddb52460f3de7c8b9d5c46fbb7d7222e02c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fc4f7a173a5609631bb0c42c23d12c49df3966f89f496a51d3eb0ec81f4519d6"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:878206a45202247781472a2d99df12a176fef806ca175799e1c6ad263510d57c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17c412bad2eb9468e876f556eb4ee910e62d721d2c7a53c7fa31e643d35352e6"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:0d987a3ae5a71c6226b203cfd298720e0086c7fe7c74f35fa8edddfbd6597eed"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:39887ac397ff35b7b775db7201095fc6310a35fdbae85bac4523f7eb3b840e20"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fdb5b3e311d4d4b0eb8b3e8b4d1b0a512713ad7e6a68791d0923d1aec433d919"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:226af7dcb51fdb0109f0016449b357e182ea0ceb6b47dfb5999d569e5db161d5"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bed0e799e6120b9c32756203fb9dfe8ca2fb8467fed830c34c877e25638c3fc"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:29c7947c594e105cb9e6c466bace8532dc1ca02d498684128b339799f5248277"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cdeabcff45d1c219636ee2e54d852262e5c2e085d6cb476d938aee8d921356b3"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35cffef589bcdc587d06f9149f8d5e9e8859920a071df5a2671de2213bef592a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18c8dc3b7468d8b4bdf60ce9d7141897da103c7a4690157b32b60acb45e333e6"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7133d0a1677aec369d67dd78520d3fa96dd7f3dcec99d66c1762870e5ea1a50a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6a96179a24b14fa6428cbfc08641c779a53f8fcec43644030328f44034c7f1f4"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4f78c88905461a9203eac9faac157a2a0dbba84a0fd09fd29315db27be40af9f"}, + {file = "pyzmq-26.2.0.tar.gz", hash = "sha256:070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f"}, ] [package.dependencies] cffi = {version = "*", markers = "implementation_name == \"pypy\""} -[[package]] -name = "qtconsole" -version = "5.5.1" -description = "Jupyter Qt console" -optional = false -python-versions = ">= 3.8" -files = [ - {file = "qtconsole-5.5.1-py3-none-any.whl", hash = "sha256:8c75fa3e9b4ed884880ff7cea90a1b67451219279ec33deaee1d59e3df1a5d2b"}, - {file = "qtconsole-5.5.1.tar.gz", hash = "sha256:a0e806c6951db9490628e4df80caec9669b65149c7ba40f9bf033c025a5b56bc"}, -] - -[package.dependencies] -ipykernel = ">=4.1" -jupyter-client = ">=4.1" -jupyter-core = "*" -packaging = "*" -pygments = "*" -pyzmq = ">=17.1" -qtpy = ">=2.4.0" -traitlets = "<5.2.1 || >5.2.1,<5.2.2 || >5.2.2" - -[package.extras] -doc = ["Sphinx (>=1.3)"] -test = ["flaky", "pytest", "pytest-qt"] - -[[package]] -name = "qtpy" -version = "2.4.1" -description = "Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6)." -optional = false -python-versions = ">=3.7" -files = [ - {file = "QtPy-2.4.1-py3-none-any.whl", hash = "sha256:1c1d8c4fa2c884ae742b069151b0abe15b3f70491f3972698c683b8e38de839b"}, - {file = "QtPy-2.4.1.tar.gz", hash = "sha256:a5a15ffd519550a1361bdc56ffc07fda56a6af7292f17c7b395d4083af632987"}, -] - -[package.dependencies] -packaging = "*" - -[package.extras] -test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] - [[package]] name = "referencing" -version = "0.34.0" +version = "0.35.1" description = "JSON Referencing + Python" optional = false python-versions = ">=3.8" files = [ - {file = "referencing-0.34.0-py3-none-any.whl", hash = "sha256:d53ae300ceddd3169f1ffa9caf2cb7b769e92657e4fafb23d34b93679116dfd4"}, - {file = "referencing-0.34.0.tar.gz", hash = "sha256:5773bd84ef41799a5a8ca72dc34590c041eb01bf9aa02632b4a973fb0181a844"}, + {file = "referencing-0.35.1-py3-none-any.whl", hash = "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de"}, + {file = "referencing-0.35.1.tar.gz", hash = "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c"}, ] [package.dependencies] @@ -2167,13 +2334,13 @@ rpds-py = ">=0.7.0" [[package]] name = "requests" -version = "2.31.0" +version = "2.32.3" description = "Python HTTP for Humans." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, - {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, ] [package.dependencies] @@ -2188,13 +2355,13 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "requests-oauth2client" -version = "1.5.2" +version = "1.6.0" description = "An OAuth2.x client based on `requests`." optional = false python-versions = ">=3.8" files = [ - {file = "requests_oauth2client-1.5.2-py3-none-any.whl", hash = "sha256:85576a28d74e6bb97a7a9a907232c3964f5cbb23a58fecbabc22d0ffa8be35be"}, - {file = "requests_oauth2client-1.5.2.tar.gz", hash = "sha256:ca4b87323959cea8b3896200880a720f34bf4684fe8e8903de98432d97ee0e04"}, + {file = "requests_oauth2client-1.6.0-py3-none-any.whl", hash = "sha256:fa702619409cc93ab6433871d1ccec58140a70d86923fd742983fac47b334881"}, + {file = "requests_oauth2client-1.6.0.tar.gz", hash = "sha256:53f4a82b566d21707ecd7e4b8cdab019e6eb0965f26c4ac0484b9e28ffd221ee"}, ] [package.dependencies] @@ -2231,110 +2398,114 @@ files = [ [[package]] name = "rpds-py" -version = "0.18.0" +version = "0.22.3" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "rpds_py-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e"}, - {file = "rpds_py-0.18.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434"}, - {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3"}, - {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e"}, - {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88"}, - {file = "rpds_py-0.18.0-cp310-none-win32.whl", hash = "sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337"}, - {file = "rpds_py-0.18.0-cp310-none-win_amd64.whl", hash = "sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66"}, - {file = "rpds_py-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3a96e0c6a41dcdba3a0a581bbf6c44bb863f27c541547fb4b9711fd8cf0ffad4"}, - {file = "rpds_py-0.18.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30f43887bbae0d49113cbaab729a112251a940e9b274536613097ab8b4899cf6"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fcb25daa9219b4cf3a0ab24b0eb9a5cc8949ed4dc72acb8fa16b7e1681aa3c58"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d68c93e381010662ab873fea609bf6c0f428b6d0bb00f2c6939782e0818d37bf"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b34b7aa8b261c1dbf7720b5d6f01f38243e9b9daf7e6b8bc1fd4657000062f2c"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e6d75ab12b0bbab7215e5d40f1e5b738aa539598db27ef83b2ec46747df90e1"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8612cd233543a3781bc659c731b9d607de65890085098986dfd573fc2befe5"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aec493917dd45e3c69d00a8874e7cbed844efd935595ef78a0f25f14312e33c6"}, - {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:661d25cbffaf8cc42e971dd570d87cb29a665f49f4abe1f9e76be9a5182c4688"}, - {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1df3659d26f539ac74fb3b0c481cdf9d725386e3552c6fa2974f4d33d78e544b"}, - {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1ce3ba137ed54f83e56fb983a5859a27d43a40188ba798993812fed73c70836"}, - {file = "rpds_py-0.18.0-cp311-none-win32.whl", hash = "sha256:69e64831e22a6b377772e7fb337533c365085b31619005802a79242fee620bc1"}, - {file = "rpds_py-0.18.0-cp311-none-win_amd64.whl", hash = "sha256:998e33ad22dc7ec7e030b3df701c43630b5bc0d8fbc2267653577e3fec279afa"}, - {file = "rpds_py-0.18.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:7f2facbd386dd60cbbf1a794181e6aa0bd429bd78bfdf775436020172e2a23f0"}, - {file = "rpds_py-0.18.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d9a5be316c15ffb2b3c405c4ff14448c36b4435be062a7f578ccd8b01f0c4d8"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd5bf1af8efe569654bbef5a3e0a56eca45f87cfcffab31dd8dde70da5982475"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5417558f6887e9b6b65b4527232553c139b57ec42c64570569b155262ac0754f"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:56a737287efecafc16f6d067c2ea0117abadcd078d58721f967952db329a3e5c"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8f03bccbd8586e9dd37219bce4d4e0d3ab492e6b3b533e973fa08a112cb2ffc9"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4457a94da0d5c53dc4b3e4de1158bdab077db23c53232f37a3cb7afdb053a4e3"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0ab39c1ba9023914297dd88ec3b3b3c3f33671baeb6acf82ad7ce883f6e8e157"}, - {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9d54553c1136b50fd12cc17e5b11ad07374c316df307e4cfd6441bea5fb68496"}, - {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0af039631b6de0397ab2ba16eaf2872e9f8fca391b44d3d8cac317860a700a3f"}, - {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:84ffab12db93b5f6bad84c712c92060a2d321b35c3c9960b43d08d0f639d60d7"}, - {file = "rpds_py-0.18.0-cp312-none-win32.whl", hash = "sha256:685537e07897f173abcf67258bee3c05c374fa6fff89d4c7e42fb391b0605e98"}, - {file = "rpds_py-0.18.0-cp312-none-win_amd64.whl", hash = "sha256:e003b002ec72c8d5a3e3da2989c7d6065b47d9eaa70cd8808b5384fbb970f4ec"}, - {file = "rpds_py-0.18.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:08f9ad53c3f31dfb4baa00da22f1e862900f45908383c062c27628754af2e88e"}, - {file = "rpds_py-0.18.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c0013fe6b46aa496a6749c77e00a3eb07952832ad6166bd481c74bda0dcb6d58"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e32a92116d4f2a80b629778280103d2a510a5b3f6314ceccd6e38006b5e92dcb"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e541ec6f2ec456934fd279a3120f856cd0aedd209fc3852eca563f81738f6861"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bed88b9a458e354014d662d47e7a5baafd7ff81c780fd91584a10d6ec842cb73"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2644e47de560eb7bd55c20fc59f6daa04682655c58d08185a9b95c1970fa1e07"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e8916ae4c720529e18afa0b879473049e95949bf97042e938530e072fde061d"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:465a3eb5659338cf2a9243e50ad9b2296fa15061736d6e26240e713522b6235c"}, - {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ea7d4a99f3b38c37eac212dbd6ec42b7a5ec51e2c74b5d3223e43c811609e65f"}, - {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:67071a6171e92b6da534b8ae326505f7c18022c6f19072a81dcf40db2638767c"}, - {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:41ef53e7c58aa4ef281da975f62c258950f54b76ec8e45941e93a3d1d8580594"}, - {file = "rpds_py-0.18.0-cp38-none-win32.whl", hash = "sha256:fdea4952db2793c4ad0bdccd27c1d8fdd1423a92f04598bc39425bcc2b8ee46e"}, - {file = "rpds_py-0.18.0-cp38-none-win_amd64.whl", hash = "sha256:7cd863afe7336c62ec78d7d1349a2f34c007a3cc6c2369d667c65aeec412a5b1"}, - {file = "rpds_py-0.18.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:5307def11a35f5ae4581a0b658b0af8178c65c530e94893345bebf41cc139d33"}, - {file = "rpds_py-0.18.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:77f195baa60a54ef9d2de16fbbfd3ff8b04edc0c0140a761b56c267ac11aa467"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39f5441553f1c2aed4de4377178ad8ff8f9d733723d6c66d983d75341de265ab"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a00312dea9310d4cb7dbd7787e722d2e86a95c2db92fbd7d0155f97127bcb40"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f2fc11e8fe034ee3c34d316d0ad8808f45bc3b9ce5857ff29d513f3ff2923a1"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:586f8204935b9ec884500498ccc91aa869fc652c40c093bd9e1471fbcc25c022"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddc2f4dfd396c7bfa18e6ce371cba60e4cf9d2e5cdb71376aa2da264605b60b9"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ddcba87675b6d509139d1b521e0c8250e967e63b5909a7e8f8944d0f90ff36f"}, - {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7bd339195d84439cbe5771546fe8a4e8a7a045417d8f9de9a368c434e42a721e"}, - {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:d7c36232a90d4755b720fbd76739d8891732b18cf240a9c645d75f00639a9024"}, - {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6b0817e34942b2ca527b0e9298373e7cc75f429e8da2055607f4931fded23e20"}, - {file = "rpds_py-0.18.0-cp39-none-win32.whl", hash = "sha256:99f70b740dc04d09e6b2699b675874367885217a2e9f782bdf5395632ac663b7"}, - {file = "rpds_py-0.18.0-cp39-none-win_amd64.whl", hash = "sha256:6ef687afab047554a2d366e112dd187b62d261d49eb79b77e386f94644363294"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f"}, - {file = "rpds_py-0.18.0.tar.gz", hash = "sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d"}, + {file = "rpds_py-0.22.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:6c7b99ca52c2c1752b544e310101b98a659b720b21db00e65edca34483259967"}, + {file = "rpds_py-0.22.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:be2eb3f2495ba669d2a985f9b426c1797b7d48d6963899276d22f23e33d47e37"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70eb60b3ae9245ddea20f8a4190bd79c705a22f8028aaf8bbdebe4716c3fab24"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4041711832360a9b75cfb11b25a6a97c8fb49c07b8bd43d0d02b45d0b499a4ff"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64607d4cbf1b7e3c3c8a14948b99345eda0e161b852e122c6bb71aab6d1d798c"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e69b0a0e2537f26d73b4e43ad7bc8c8efb39621639b4434b76a3de50c6966e"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc27863442d388870c1809a87507727b799c8460573cfbb6dc0eeaef5a11b5ec"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e79dd39f1e8c3504be0607e5fc6e86bb60fe3584bec8b782578c3b0fde8d932c"}, + {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e0fa2d4ec53dc51cf7d3bb22e0aa0143966119f42a0c3e4998293a3dd2856b09"}, + {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fda7cb070f442bf80b642cd56483b5548e43d366fe3f39b98e67cce780cded00"}, + {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cff63a0272fcd259dcc3be1657b07c929c466b067ceb1c20060e8d10af56f5bf"}, + {file = "rpds_py-0.22.3-cp310-cp310-win32.whl", hash = "sha256:9bd7228827ec7bb817089e2eb301d907c0d9827a9e558f22f762bb690b131652"}, + {file = "rpds_py-0.22.3-cp310-cp310-win_amd64.whl", hash = "sha256:9beeb01d8c190d7581a4d59522cd3d4b6887040dcfc744af99aa59fef3e041a8"}, + {file = "rpds_py-0.22.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d20cfb4e099748ea39e6f7b16c91ab057989712d31761d3300d43134e26e165f"}, + {file = "rpds_py-0.22.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:68049202f67380ff9aa52f12e92b1c30115f32e6895cd7198fa2a7961621fc5a"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb4f868f712b2dd4bcc538b0a0c1f63a2b1d584c925e69a224d759e7070a12d5"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bc51abd01f08117283c5ebf64844a35144a0843ff7b2983e0648e4d3d9f10dbb"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0f3cec041684de9a4684b1572fe28c7267410e02450f4561700ca5a3bc6695a2"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7ef9d9da710be50ff6809fed8f1963fecdfecc8b86656cadfca3bc24289414b0"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59f4a79c19232a5774aee369a0c296712ad0e77f24e62cad53160312b1c1eaa1"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a60bce91f81ddaac922a40bbb571a12c1070cb20ebd6d49c48e0b101d87300d"}, + {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e89391e6d60251560f0a8f4bd32137b077a80d9b7dbe6d5cab1cd80d2746f648"}, + {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e3fb866d9932a3d7d0c82da76d816996d1667c44891bd861a0f97ba27e84fc74"}, + {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1352ae4f7c717ae8cba93421a63373e582d19d55d2ee2cbb184344c82d2ae55a"}, + {file = "rpds_py-0.22.3-cp311-cp311-win32.whl", hash = "sha256:b0b4136a252cadfa1adb705bb81524eee47d9f6aab4f2ee4fa1e9d3cd4581f64"}, + {file = "rpds_py-0.22.3-cp311-cp311-win_amd64.whl", hash = "sha256:8bd7c8cfc0b8247c8799080fbff54e0b9619e17cdfeb0478ba7295d43f635d7c"}, + {file = "rpds_py-0.22.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:27e98004595899949bd7a7b34e91fa7c44d7a97c40fcaf1d874168bb652ec67e"}, + {file = "rpds_py-0.22.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1978d0021e943aae58b9b0b196fb4895a25cc53d3956b8e35e0b7682eefb6d56"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:655ca44a831ecb238d124e0402d98f6212ac527a0ba6c55ca26f616604e60a45"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:feea821ee2a9273771bae61194004ee2fc33f8ec7db08117ef9147d4bbcbca8e"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22bebe05a9ffc70ebfa127efbc429bc26ec9e9b4ee4d15a740033efda515cf3d"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3af6e48651c4e0d2d166dc1b033b7042ea3f871504b6805ba5f4fe31581d8d38"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e67ba3c290821343c192f7eae1d8fd5999ca2dc99994114643e2f2d3e6138b15"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:02fbb9c288ae08bcb34fb41d516d5eeb0455ac35b5512d03181d755d80810059"}, + {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f56a6b404f74ab372da986d240e2e002769a7d7102cc73eb238a4f72eec5284e"}, + {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0a0461200769ab3b9ab7e513f6013b7a97fdeee41c29b9db343f3c5a8e2b9e61"}, + {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8633e471c6207a039eff6aa116e35f69f3156b3989ea3e2d755f7bc41754a4a7"}, + {file = "rpds_py-0.22.3-cp312-cp312-win32.whl", hash = "sha256:593eba61ba0c3baae5bc9be2f5232430453fb4432048de28399ca7376de9c627"}, + {file = "rpds_py-0.22.3-cp312-cp312-win_amd64.whl", hash = "sha256:d115bffdd417c6d806ea9069237a4ae02f513b778e3789a359bc5856e0404cc4"}, + {file = "rpds_py-0.22.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ea7433ce7e4bfc3a85654aeb6747babe3f66eaf9a1d0c1e7a4435bbdf27fea84"}, + {file = "rpds_py-0.22.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6dd9412824c4ce1aca56c47b0991e65bebb7ac3f4edccfd3f156150c96a7bf25"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20070c65396f7373f5df4005862fa162db5d25d56150bddd0b3e8214e8ef45b4"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0b09865a9abc0ddff4e50b5ef65467cd94176bf1e0004184eb915cbc10fc05c5"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3453e8d41fe5f17d1f8e9c383a7473cd46a63661628ec58e07777c2fff7196dc"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f5d36399a1b96e1a5fdc91e0522544580dbebeb1f77f27b2b0ab25559e103b8b"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009de23c9c9ee54bf11303a966edf4d9087cd43a6003672e6aa7def643d06518"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1aef18820ef3e4587ebe8b3bc9ba6e55892a6d7b93bac6d29d9f631a3b4befbd"}, + {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f60bd8423be1d9d833f230fdbccf8f57af322d96bcad6599e5a771b151398eb2"}, + {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:62d9cfcf4948683a18a9aff0ab7e1474d407b7bab2ca03116109f8464698ab16"}, + {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9253fc214112405f0afa7db88739294295f0e08466987f1d70e29930262b4c8f"}, + {file = "rpds_py-0.22.3-cp313-cp313-win32.whl", hash = "sha256:fb0ba113b4983beac1a2eb16faffd76cb41e176bf58c4afe3e14b9c681f702de"}, + {file = "rpds_py-0.22.3-cp313-cp313-win_amd64.whl", hash = "sha256:c58e2339def52ef6b71b8f36d13c3688ea23fa093353f3a4fee2556e62086ec9"}, + {file = "rpds_py-0.22.3-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:f82a116a1d03628a8ace4859556fb39fd1424c933341a08ea3ed6de1edb0283b"}, + {file = "rpds_py-0.22.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3dfcbc95bd7992b16f3f7ba05af8a64ca694331bd24f9157b49dadeeb287493b"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59259dc58e57b10e7e18ce02c311804c10c5a793e6568f8af4dead03264584d1"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5725dd9cc02068996d4438d397e255dcb1df776b7ceea3b9cb972bdb11260a83"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99b37292234e61325e7a5bb9689e55e48c3f5f603af88b1642666277a81f1fbd"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:27b1d3b3915a99208fee9ab092b8184c420f2905b7d7feb4aeb5e4a9c509b8a1"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f612463ac081803f243ff13cccc648578e2279295048f2a8d5eb430af2bae6e3"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f73d3fef726b3243a811121de45193c0ca75f6407fe66f3f4e183c983573e130"}, + {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3f21f0495edea7fdbaaa87e633a8689cd285f8f4af5c869f27bc8074638ad69c"}, + {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:1e9663daaf7a63ceccbbb8e3808fe90415b0757e2abddbfc2e06c857bf8c5e2b"}, + {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a76e42402542b1fae59798fab64432b2d015ab9d0c8c47ba7addddbaf7952333"}, + {file = "rpds_py-0.22.3-cp313-cp313t-win32.whl", hash = "sha256:69803198097467ee7282750acb507fba35ca22cc3b85f16cf45fb01cb9097730"}, + {file = "rpds_py-0.22.3-cp313-cp313t-win_amd64.whl", hash = "sha256:f5cf2a0c2bdadf3791b5c205d55a37a54025c6e18a71c71f82bb536cf9a454bf"}, + {file = "rpds_py-0.22.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:378753b4a4de2a7b34063d6f95ae81bfa7b15f2c1a04a9518e8644e81807ebea"}, + {file = "rpds_py-0.22.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3445e07bf2e8ecfeef6ef67ac83de670358abf2996916039b16a218e3d95e97e"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b2513ba235829860b13faa931f3b6846548021846ac808455301c23a101689d"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eaf16ae9ae519a0e237a0f528fd9f0197b9bb70f40263ee57ae53c2b8d48aeb3"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:583f6a1993ca3369e0f80ba99d796d8e6b1a3a2a442dd4e1a79e652116413091"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4617e1915a539a0d9a9567795023de41a87106522ff83fbfaf1f6baf8e85437e"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c150c7a61ed4a4f4955a96626574e9baf1adf772c2fb61ef6a5027e52803543"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2fa4331c200c2521512595253f5bb70858b90f750d39b8cbfd67465f8d1b596d"}, + {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:214b7a953d73b5e87f0ebece4a32a5bd83c60a3ecc9d4ec8f1dca968a2d91e99"}, + {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f47ad3d5f3258bd7058d2d506852217865afefe6153a36eb4b6928758041d831"}, + {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f276b245347e6e36526cbd4a266a417796fc531ddf391e43574cf6466c492520"}, + {file = "rpds_py-0.22.3-cp39-cp39-win32.whl", hash = "sha256:bbb232860e3d03d544bc03ac57855cd82ddf19c7a07651a7c0fdb95e9efea8b9"}, + {file = "rpds_py-0.22.3-cp39-cp39-win_amd64.whl", hash = "sha256:cfbc454a2880389dbb9b5b398e50d439e2e58669160f27b60e5eca11f68ae17c"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d48424e39c2611ee1b84ad0f44fb3b2b53d473e65de061e3f460fc0be5f1939d"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:24e8abb5878e250f2eb0d7859a8e561846f98910326d06c0d51381fed59357bd"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b232061ca880db21fa14defe219840ad9b74b6158adb52ddf0e87bead9e8493"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac0a03221cdb5058ce0167ecc92a8c89e8d0decdc9e99a2ec23380793c4dcb96"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb0c341fa71df5a4595f9501df4ac5abfb5a09580081dffbd1ddd4654e6e9123"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf9db5488121b596dbfc6718c76092fda77b703c1f7533a226a5a9f65248f8ad"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8db6b5b2d4491ad5b6bdc2bc7c017eec108acbf4e6785f42a9eb0ba234f4c9"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b3d504047aba448d70cf6fa22e06cb09f7cbd761939fdd47604f5e007675c24e"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:e61b02c3f7a1e0b75e20c3978f7135fd13cb6cf551bf4a6d29b999a88830a338"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:e35ba67d65d49080e8e5a1dd40101fccdd9798adb9b050ff670b7d74fa41c566"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:26fd7cac7dd51011a245f29a2cc6489c4608b5a8ce8d75661bb4a1066c52dfbe"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:177c7c0fce2855833819c98e43c262007f42ce86651ffbb84f37883308cb0e7d"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bb47271f60660803ad11f4c61b42242b8c1312a31c98c578f79ef9387bbde21c"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:70fb28128acbfd264eda9bf47015537ba3fe86e40d046eb2963d75024be4d055"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44d61b4b7d0c2c9ac019c314e52d7cbda0ae31078aabd0f22e583af3e0d79723"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f0e260eaf54380380ac3808aa4ebe2d8ca28b9087cf411649f96bad6900c728"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b25bc607423935079e05619d7de556c91fb6adeae9d5f80868dde3468657994b"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fb6116dfb8d1925cbdb52595560584db42a7f664617a1f7d7f6e32f138cdf37d"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a63cbdd98acef6570c62b92a1e43266f9e8b21e699c363c0fef13bd530799c11"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b8f60e1b739a74bab7e01fcbe3dddd4657ec685caa04681df9d562ef15b625f"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:2e8b55d8517a2fda8d95cb45d62a5a8bbf9dd0ad39c5b25c8833efea07b880ca"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:2de29005e11637e7a2361fa151f780ff8eb2543a0da1413bb951e9f14b699ef3"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:666ecce376999bf619756a24ce15bb14c5bfaf04bf00abc7e663ce17c3f34fe7"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5246b14ca64a8675e0a7161f7af68fe3e910e6b90542b4bfb5439ba752191df6"}, + {file = "rpds_py-0.22.3.tar.gz", hash = "sha256:e32fee8ab45d3c2db6da19a5323bc3362237c8b653c70194414b892fd06a080d"}, ] [[package]] @@ -2353,15 +2524,35 @@ nativelib = ["pyobjc-framework-Cocoa", "pywin32"] objc = ["pyobjc-framework-Cocoa"] win32 = ["pywin32"] +[[package]] +name = "setuptools" +version = "75.6.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.9" +files = [ + {file = "setuptools-75.6.0-py3-none-any.whl", hash = "sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d"}, + {file = "setuptools-75.6.0.tar.gz", hash = "sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.7.0)"] +core = ["importlib_metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (>=1.12,<1.14)", "pytest-mypy"] + [[package]] name = "six" -version = "1.16.0" +version = "1.17.0" description = "Python 2 and 3 compatibility utilities" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, ] [[package]] @@ -2377,13 +2568,13 @@ files = [ [[package]] name = "soupsieve" -version = "2.5" +version = "2.6" description = "A modern CSS selector implementation for Beautiful Soup." optional = false python-versions = ">=3.8" files = [ - {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, - {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, + {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, + {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, ] [[package]] @@ -2428,13 +2619,13 @@ typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] [[package]] name = "tinycss2" -version = "1.2.1" +version = "1.4.0" description = "A tiny CSS parser" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "tinycss2-1.2.1-py3-none-any.whl", hash = "sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847"}, - {file = "tinycss2-1.2.1.tar.gz", hash = "sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627"}, + {file = "tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289"}, + {file = "tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7"}, ] [package.dependencies] @@ -2442,65 +2633,95 @@ webencodings = ">=0.4" [package.extras] doc = ["sphinx", "sphinx_rtd_theme"] -test = ["flake8", "isort", "pytest"] +test = ["pytest", "ruff"] [[package]] name = "tomli" -version = "2.0.1" +version = "2.2.1" description = "A lil' TOML parser" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, + {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, + {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, + {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, + {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, + {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, + {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, + {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, + {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, ] [[package]] name = "tornado" -version = "6.4" +version = "6.4.2" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." optional = false -python-versions = ">= 3.8" +python-versions = ">=3.8" files = [ - {file = "tornado-6.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:02ccefc7d8211e5a7f9e8bc3f9e5b0ad6262ba2fbb683a6443ecc804e5224ce0"}, - {file = "tornado-6.4-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:27787de946a9cffd63ce5814c33f734c627a87072ec7eed71f7fc4417bb16263"}, - {file = "tornado-6.4-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7894c581ecdcf91666a0912f18ce5e757213999e183ebfc2c3fdbf4d5bd764e"}, - {file = "tornado-6.4-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e43bc2e5370a6a8e413e1e1cd0c91bedc5bd62a74a532371042a18ef19e10579"}, - {file = "tornado-6.4-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0251554cdd50b4b44362f73ad5ba7126fc5b2c2895cc62b14a1c2d7ea32f212"}, - {file = "tornado-6.4-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fd03192e287fbd0899dd8f81c6fb9cbbc69194d2074b38f384cb6fa72b80e9c2"}, - {file = "tornado-6.4-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:88b84956273fbd73420e6d4b8d5ccbe913c65d31351b4c004ae362eba06e1f78"}, - {file = "tornado-6.4-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:71ddfc23a0e03ef2df1c1397d859868d158c8276a0603b96cf86892bff58149f"}, - {file = "tornado-6.4-cp38-abi3-win32.whl", hash = "sha256:6f8a6c77900f5ae93d8b4ae1196472d0ccc2775cc1dfdc9e7727889145c45052"}, - {file = "tornado-6.4-cp38-abi3-win_amd64.whl", hash = "sha256:10aeaa8006333433da48dec9fe417877f8bcc21f48dda8d661ae79da357b2a63"}, - {file = "tornado-6.4.tar.gz", hash = "sha256:72291fa6e6bc84e626589f1c29d90a5a6d593ef5ae68052ee2ef000dfd273dee"}, + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1"}, + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a017d239bd1bb0919f72af256a970624241f070496635784d9bf0db640d3fec"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36e62ce8f63409301537222faffcef7dfc5284f27eec227389f2ad11b09d946"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca9eb02196e789c9cb5c3c7c0f04fb447dc2adffd95265b2c7223a8a615ccbf"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:304463bd0772442ff4d0f5149c6f1c2135a1fae045adf070821c6cdc76980634"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c82c46813ba483a385ab2a99caeaedf92585a1f90defb5693351fa7e4ea0bf73"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:932d195ca9015956fa502c6b56af9eb06106140d844a335590c1ec7f5277d10c"}, + {file = "tornado-6.4.2-cp38-abi3-win32.whl", hash = "sha256:2876cef82e6c5978fde1e0d5b1f919d756968d5b4282418f3146b79b58556482"}, + {file = "tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38"}, + {file = "tornado-6.4.2.tar.gz", hash = "sha256:92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b"}, ] [[package]] name = "tox" -version = "4.14.2" +version = "4.23.2" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.8" files = [ - {file = "tox-4.14.2-py3-none-any.whl", hash = "sha256:2900c4eb7b716af4a928a7fdc2ed248ad6575294ed7cfae2ea41203937422847"}, - {file = "tox-4.14.2.tar.gz", hash = "sha256:0defb44f6dafd911b61788325741cc6b2e12ea71f987ac025ad4d649f1f1a104"}, + {file = "tox-4.23.2-py3-none-any.whl", hash = "sha256:452bc32bb031f2282881a2118923176445bac783ab97c874b8770ab4c3b76c38"}, + {file = "tox-4.23.2.tar.gz", hash = "sha256:86075e00e555df6e82e74cfc333917f91ecb47ffbc868dcafbd2672e332f4a2c"}, ] [package.dependencies] -cachetools = ">=5.3.2" +cachetools = ">=5.5" chardet = ">=5.2" colorama = ">=0.4.6" -filelock = ">=3.13.1" -packaging = ">=23.2" -platformdirs = ">=4.1" -pluggy = ">=1.3" -pyproject-api = ">=1.6.1" +filelock = ">=3.16.1" +packaging = ">=24.1" +platformdirs = ">=4.3.6" +pluggy = ">=1.5" +pyproject-api = ">=1.8" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} -virtualenv = ">=20.25" +typing-extensions = {version = ">=4.12.2", markers = "python_version < \"3.11\""} +virtualenv = ">=20.26.6" [package.extras] -docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-argparse-cli (>=1.11.1)", "sphinx-autodoc-typehints (>=1.25.2)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.11)"] -testing = ["build[virtualenv] (>=1.0.3)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.2)", "devpi-process (>=1)", "diff-cover (>=8.0.2)", "distlib (>=0.3.8)", "flaky (>=3.7)", "hatch-vcs (>=0.4)", "hatchling (>=1.21)", "psutil (>=5.9.7)", "pytest (>=7.4.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-xdist (>=3.5)", "re-assert (>=1.1)", "time-machine (>=2.13)", "wheel (>=0.42)"] +test = ["devpi-process (>=1.0.2)", "pytest (>=8.3.3)", "pytest-mock (>=3.14)"] [[package]] name = "traitlets" @@ -2519,24 +2740,35 @@ test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0, [[package]] name = "types-python-dateutil" -version = "2.9.0.20240316" +version = "2.9.0.20241206" description = "Typing stubs for python-dateutil" optional = false python-versions = ">=3.8" files = [ - {file = "types-python-dateutil-2.9.0.20240316.tar.gz", hash = "sha256:5d2f2e240b86905e40944dd787db6da9263f0deabef1076ddaed797351ec0202"}, - {file = "types_python_dateutil-2.9.0.20240316-py3-none-any.whl", hash = "sha256:6b8cb66d960771ce5ff974e9dd45e38facb81718cc1e208b10b1baccbfdbee3b"}, + {file = "types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53"}, + {file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"}, ] [[package]] name = "typing-extensions" -version = "4.11.0" +version = "4.12.2" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"}, - {file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"}, + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "tzdata" +version = "2024.2" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +files = [ + {file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"}, + {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"}, ] [[package]] @@ -2555,13 +2787,13 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake [[package]] name = "urllib3" -version = "2.2.1" +version = "2.3.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, - {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, + {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, + {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, ] [package.extras] @@ -2572,13 +2804,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.25.3" +version = "20.28.1" description = "Virtual Python Environment builder" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "virtualenv-20.25.3-py3-none-any.whl", hash = "sha256:8aac4332f2ea6ef519c648d0bc48a5b1d324994753519919bddbb1aff25a104e"}, - {file = "virtualenv-20.25.3.tar.gz", hash = "sha256:7bb554bbdfeaacc3349fa614ea5bff6ac300fc7c335e9facf3a3bcfc703f45be"}, + {file = "virtualenv-20.28.1-py3-none-any.whl", hash = "sha256:412773c85d4dab0409b83ec36f7a6499e72eaf08c80e81e9576bca61831c71cb"}, + {file = "virtualenv-20.28.1.tar.gz", hash = "sha256:5d34ab240fdb5d21549b76f9e8ff3af28252f5499fb6d6f031adac4e5a8c5329"}, ] [package.dependencies] @@ -2603,19 +2835,15 @@ files = [ [[package]] name = "webcolors" -version = "1.13" +version = "24.11.1" description = "A library for working with the color formats defined by HTML and CSS." optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" files = [ - {file = "webcolors-1.13-py3-none-any.whl", hash = "sha256:29bc7e8752c0a1bd4a1f03c14d6e6a72e93d82193738fa860cbff59d0fcc11bf"}, - {file = "webcolors-1.13.tar.gz", hash = "sha256:c225b674c83fa923be93d235330ce0300373d02885cef23238813b0d5668304a"}, + {file = "webcolors-24.11.1-py3-none-any.whl", hash = "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9"}, + {file = "webcolors-24.11.1.tar.gz", hash = "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6"}, ] -[package.extras] -docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"] -tests = ["pytest", "pytest-cov"] - [[package]] name = "webencodings" version = "0.5.1" @@ -2629,47 +2857,32 @@ files = [ [[package]] name = "websocket-client" -version = "1.7.0" +version = "1.8.0" description = "WebSocket client for Python with low level API options" optional = false python-versions = ">=3.8" files = [ - {file = "websocket-client-1.7.0.tar.gz", hash = "sha256:10e511ea3a8c744631d3bd77e61eb17ed09304c413ad42cf6ddfa4c7787e8fe6"}, - {file = "websocket_client-1.7.0-py3-none-any.whl", hash = "sha256:f4c3d22fec12a2461427a29957ff07d35098ee2d976d3ba244e688b8b4057588"}, + {file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"}, + {file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"}, ] [package.extras] -docs = ["Sphinx (>=6.0)", "sphinx-rtd-theme (>=1.1.0)"] +docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"] optional = ["python-socks", "wsaccel"] test = ["websockets"] [[package]] name = "widgetsnbextension" -version = "4.0.10" +version = "4.0.13" description = "Jupyter interactive widgets for Jupyter Notebook" optional = false python-versions = ">=3.7" files = [ - {file = "widgetsnbextension-4.0.10-py3-none-any.whl", hash = "sha256:d37c3724ec32d8c48400a435ecfa7d3e259995201fbefa37163124a9fcb393cc"}, - {file = "widgetsnbextension-4.0.10.tar.gz", hash = "sha256:64196c5ff3b9a9183a8e699a4227fb0b7002f252c814098e66c4d1cd0644688f"}, + {file = "widgetsnbextension-4.0.13-py3-none-any.whl", hash = "sha256:74b2692e8500525cc38c2b877236ba51d34541e6385eeed5aec15a70f88a6c71"}, + {file = "widgetsnbextension-4.0.13.tar.gz", hash = "sha256:ffcb67bc9febd10234a362795f643927f4e0c05d9342c727b65d2384f8feacb6"}, ] -[[package]] -name = "zipp" -version = "3.18.1" -description = "Backport of pathlib-compatible object wrapper for zip files" -optional = false -python-versions = ">=3.8" -files = [ - {file = "zipp-3.18.1-py3-none-any.whl", hash = "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b"}, - {file = "zipp-3.18.1.tar.gz", hash = "sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715"}, -] - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] - [metadata] lock-version = "2.0" -python-versions = "^3.9" -content-hash = "740ed973f7a4af20f6ad47502b25c082943e1b04f2d7ca97b16bb502c65d2ceb" +python-versions = "3.10.*" +content-hash = "a4331a70000ffcba2e61a09e5909c52014444d5b3c77c6ea19bc70606cfe105d" diff --git a/python-restclient/pyproject.toml b/python-restclient/pyproject.toml index 29c773bec0..6af8dcc9dd 100644 --- a/python-restclient/pyproject.toml +++ b/python-restclient/pyproject.toml @@ -10,14 +10,15 @@ keywords = ["OpenAPI", "OpenAPI-Generator", "VCell API"] include = ["vcell_client/py.typed"] [tool.poetry.dependencies] -python = "^3.9" +python = "3.10.*" urllib3 = ">= 1.25.3" python-dateutil = ">=2.8.2" -pydantic = ">=2" -typing-extensions = ">=4.7.1" -requests-oauth2client = "^1.5.1" -jupyter = "^1.0.0" +pydantic = ">=2.10.4" +typing-extensions = ">=4.6.0" +pandas = ">=2" +jupyter = "^1.1.1" +requests_oauth2client = ">=1.6.0" [tool.poetry.dev-dependencies] pytest = ">=7.2.1" @@ -29,4 +30,4 @@ requires = ["setuptools"] build-backend = "setuptools.build_meta" [tool.pylint.'MESSAGES CONTROL'] -extension-pkg-whitelist = "pydantic" \ No newline at end of file +extension-pkg-whitelist = "pydantic" diff --git a/python-restclient/test/test_access_token_representation.py b/python-restclient/test/test_access_token_representation.py deleted file mode 100644 index 990a8cf968..0000000000 --- a/python-restclient/test/test_access_token_representation.py +++ /dev/null @@ -1,57 +0,0 @@ -# coding: utf-8 - -""" - VCell API - - VCell API - - The version of the OpenAPI document: 1.0.1 - Contact: vcell_support@uchc.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -import unittest -import datetime - -from vcell_client.models.access_token_representation import AccessTokenRepresentation - -class TestAccessTokenRepresentation(unittest.TestCase): - """AccessTokenRepresentation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AccessTokenRepresentation: - """Test AccessTokenRepresentation - include_option is a boolean, when False only required - params are included, when True both required and - optional params are included """ - # uncomment below to create an instance of `AccessTokenRepresentation` - """ - model = AccessTokenRepresentation() - if include_optional: - return AccessTokenRepresentation( - token = '', - creation_date_seconds = 56, - expire_date_seconds = 56, - user_id = '', - user_key = '' - ) - else: - return AccessTokenRepresentation( - ) - """ - - def testAccessTokenRepresentation(self): - """Test AccessTokenRepresentation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - -if __name__ == '__main__': - unittest.main() diff --git a/python-restclient/test/test_analyzed_results_from_field_data.py b/python-restclient/test/test_analyzed_results_from_field_data.py new file mode 100644 index 0000000000..1d6a48aec4 --- /dev/null +++ b/python-restclient/test/test_analyzed_results_from_field_data.py @@ -0,0 +1,79 @@ +# coding: utf-8 + +""" + VCell API + + VCell API + + The version of the OpenAPI document: 1.0.1 + Contact: vcell_support@uchc.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest +import datetime + +from vcell_client.models.analyzed_results_from_field_data import AnalyzedResultsFromFieldData + +class TestAnalyzedResultsFromFieldData(unittest.TestCase): + """AnalyzedResultsFromFieldData unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> AnalyzedResultsFromFieldData: + """Test AnalyzedResultsFromFieldData + include_option is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `AnalyzedResultsFromFieldData` + """ + model = AnalyzedResultsFromFieldData() + if include_optional: + return AnalyzedResultsFromFieldData( + short_spec_data = [ + [ + [ + 56 + ] + ] + ], + var_names = [ + '' + ], + times = [ + 1.337 + ], + origin = vcell_client.models.origin.Origin( + x = 1.337, + y = 1.337, + z = 1.337, ), + extent = vcell_client.models.extent.Extent( + x = 1.337, + y = 1.337, + z = 1.337, ), + isize = vcell_client.models.i_size.ISize( + x = 56, + y = 56, + z = 56, ), + annotation = '', + name = '' + ) + else: + return AnalyzedResultsFromFieldData( + ) + """ + + def testAnalyzedResultsFromFieldData(self): + """Test AnalyzedResultsFromFieldData""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/python-restclient/test/test_bio_model.py b/python-restclient/test/test_bio_model.py index 1e99c4c553..5232c011f8 100644 --- a/python-restclient/test/test_bio_model.py +++ b/python-restclient/test/test_bio_model.py @@ -46,12 +46,12 @@ def make_instance(self, include_optional) -> BioModel: saved_date = 56, annot = '', branch_id = '', - model_key = '', + phys_model_key = '', owner_name = '', owner_key = '', - simulations = [ - vcell_client.models.simulation.Simulation( - name = '', ) + simulation_key_list = [ + vcell_client.models.key_value.KeyValue( + value = 1.337, ) ], applications = [ vcell_client.models.application.Application() diff --git a/python-restclient/test/test_bio_model_resource_api.py b/python-restclient/test/test_bio_model_resource_api.py index d1aa4c6bb7..fea6ab89d1 100644 --- a/python-restclient/test/test_bio_model_resource_api.py +++ b/python-restclient/test/test_bio_model_resource_api.py @@ -34,41 +34,6 @@ def test_delete_bio_model(self) -> None: """ pass - def test_get_bio_model_bngl(self) -> None: - """Test case for get_bio_model_bngl - - Get the BioModel in BNGL format. - """ - pass - - def test_get_bio_model_diagram(self) -> None: - """Test case for get_bio_model_diagram - - Get the BioModels diagram. - """ - pass - - def test_get_bio_model_omex(self) -> None: - """Test case for get_bio_model_omex - - Get the BioModel in OMEX format. - """ - pass - - def test_get_bio_model_sbml(self) -> None: - """Test case for get_bio_model_sbml - - Get the BioModel in SBML format. - """ - pass - - def test_get_bio_model_vcml(self) -> None: - """Test case for get_bio_model_vcml - - Get the BioModel in VCML format. - """ - pass - def test_get_biomodel_by_id(self) -> None: """Test case for get_biomodel_by_id diff --git a/python-restclient/test/test_biomodel_ref.py b/python-restclient/test/test_biomodel_ref.py index 6488da0a94..26a1cc76e6 100644 --- a/python-restclient/test/test_biomodel_ref.py +++ b/python-restclient/test/test_biomodel_ref.py @@ -1,7 +1,7 @@ # coding: utf-8 """ - VCell API (development) + VCell API VCell API diff --git a/python-restclient/test/test_data_identifier.py b/python-restclient/test/test_data_identifier.py new file mode 100644 index 0000000000..87851e6279 --- /dev/null +++ b/python-restclient/test/test_data_identifier.py @@ -0,0 +1,69 @@ +# coding: utf-8 + +""" + VCell API + + VCell API + + The version of the OpenAPI document: 1.0.1 + Contact: vcell_support@uchc.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest +import datetime + +from vcell_client.models.data_identifier import DataIdentifier + +class TestDataIdentifier(unittest.TestCase): + """DataIdentifier unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> DataIdentifier: + """Test DataIdentifier + include_option is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `DataIdentifier` + """ + model = DataIdentifier() + if include_optional: + return DataIdentifier( + name = '', + display_name = '', + variable_type = vcell_client.models.variable_type.VariableType( + type = 56, + variable_domain = 'VARIABLEDOMAIN_POSTPROCESSING', + name = '', + units = '', + label = '', + legacy_warn = True, + default_label = '', + default_units = '', + type_name = '', ), + domain = vcell_client.models.domain.Domain( + name = '', ), + b_function = True, + function = True, + visible = True + ) + else: + return DataIdentifier( + ) + """ + + def testDataIdentifier(self): + """Test DataIdentifier""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/python-restclient/test/test_simulation.py b/python-restclient/test/test_domain.py similarity index 66% rename from python-restclient/test/test_simulation.py rename to python-restclient/test/test_domain.py index 38c11e8030..f5e6507dd1 100644 --- a/python-restclient/test/test_simulation.py +++ b/python-restclient/test/test_domain.py @@ -16,10 +16,10 @@ import unittest import datetime -from vcell_client.models.simulation import Simulation +from vcell_client.models.domain import Domain -class TestSimulation(unittest.TestCase): - """Simulation unit test stubs""" +class TestDomain(unittest.TestCase): + """Domain unit test stubs""" def setUp(self): pass @@ -27,25 +27,25 @@ def setUp(self): def tearDown(self): pass - def make_instance(self, include_optional) -> Simulation: - """Test Simulation + def make_instance(self, include_optional) -> Domain: + """Test Domain include_option is a boolean, when False only required params are included, when True both required and optional params are included """ - # uncomment below to create an instance of `Simulation` + # uncomment below to create an instance of `Domain` """ - model = Simulation() + model = Domain() if include_optional: - return Simulation( + return Domain( name = '' ) else: - return Simulation( + return Domain( ) """ - def testSimulation(self): - """Test Simulation""" + def testDomain(self): + """Test Domain""" # inst_req_only = self.make_instance(include_optional=False) # inst_req_and_optional = self.make_instance(include_optional=True) diff --git a/python-restclient/test/test_map_user.py b/python-restclient/test/test_extent.py similarity index 62% rename from python-restclient/test/test_map_user.py rename to python-restclient/test/test_extent.py index 61a79fb348..5bb8ef6a3f 100644 --- a/python-restclient/test/test_map_user.py +++ b/python-restclient/test/test_extent.py @@ -1,7 +1,7 @@ # coding: utf-8 """ - VCell API (development) + VCell API VCell API @@ -16,10 +16,10 @@ import unittest import datetime -from vcell_client.models.map_user import MapUser +from vcell_client.models.extent import Extent -class TestMapUser(unittest.TestCase): - """MapUser unit test stubs""" +class TestExtent(unittest.TestCase): + """Extent unit test stubs""" def setUp(self): pass @@ -27,26 +27,27 @@ def setUp(self): def tearDown(self): pass - def make_instance(self, include_optional) -> MapUser: - """Test MapUser + def make_instance(self, include_optional) -> Extent: + """Test Extent include_option is a boolean, when False only required params are included, when True both required and optional params are included """ - # uncomment below to create an instance of `MapUser` + # uncomment below to create an instance of `Extent` """ - model = MapUser() + model = Extent() if include_optional: - return MapUser( - user_id = '', - password = '' + return Extent( + x = 1.337, + y = 1.337, + z = 1.337 ) else: - return MapUser( + return Extent( ) """ - def testMapUser(self): - """Test MapUser""" + def testExtent(self): + """Test Extent""" # inst_req_only = self.make_instance(include_optional=False) # inst_req_and_optional = self.make_instance(include_optional=True) diff --git a/python-restclient/test/test_user_identity.py b/python-restclient/test/test_external_data_identifier.py similarity index 51% rename from python-restclient/test/test_user_identity.py rename to python-restclient/test/test_external_data_identifier.py index a535d3343b..b6f749ab0d 100644 --- a/python-restclient/test/test_user_identity.py +++ b/python-restclient/test/test_external_data_identifier.py @@ -16,10 +16,10 @@ import unittest import datetime -from vcell_client.models.user_identity import UserIdentity +from vcell_client.models.external_data_identifier import ExternalDataIdentifier -class TestUserIdentity(unittest.TestCase): - """UserIdentity unit test stubs""" +class TestExternalDataIdentifier(unittest.TestCase): + """ExternalDataIdentifier unit test stubs""" def setUp(self): pass @@ -27,37 +27,39 @@ def setUp(self): def tearDown(self): pass - def make_instance(self, include_optional) -> UserIdentity: - """Test UserIdentity + def make_instance(self, include_optional) -> ExternalDataIdentifier: + """Test ExternalDataIdentifier include_option is a boolean, when False only required params are included, when True both required and optional params are included """ - # uncomment below to create an instance of `UserIdentity` + # uncomment below to create an instance of `ExternalDataIdentifier` """ - model = UserIdentity() + model = ExternalDataIdentifier() if include_optional: - return UserIdentity( - id = vcell_client.models.key_value.KeyValue( + return ExternalDataIdentifier( + key = vcell_client.models.key_value.KeyValue( value = 1.337, ), - user = vcell_client.models.user1.User1( + owner = vcell_client.models.user.User( user_name = '', key = vcell_client.models.key_value.KeyValue( value = 1.337, ), - i_d = vcell_client.models.key_value.KeyValue( - value = 1.337, ), name = '', - publisher = True, test_account = True, ), - subject = '', - insert_date = 'Thu Mar 10 00:00:00 UTC 2022' + name = '', + job_index = 56, + simulation_key = vcell_client.models.key_value.KeyValue( + value = 1.337, ), + parameter_scan_type = True, + data_key = vcell_client.models.key_value.KeyValue( + value = 1.337, ) ) else: - return UserIdentity( + return ExternalDataIdentifier( ) """ - def testUserIdentity(self): - """Test UserIdentity""" + def testExternalDataIdentifier(self): + """Test ExternalDataIdentifier""" # inst_req_only = self.make_instance(include_optional=False) # inst_req_and_optional = self.make_instance(include_optional=True) diff --git a/python-restclient/test/test_field_data_reference.py b/python-restclient/test/test_field_data_reference.py new file mode 100644 index 0000000000..a2db444a9a --- /dev/null +++ b/python-restclient/test/test_field_data_reference.py @@ -0,0 +1,70 @@ +# coding: utf-8 + +""" + VCell API + + VCell API + + The version of the OpenAPI document: 1.0.1 + Contact: vcell_support@uchc.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest +import datetime + +from vcell_client.models.field_data_reference import FieldDataReference + +class TestFieldDataReference(unittest.TestCase): + """FieldDataReference unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> FieldDataReference: + """Test FieldDataReference + include_option is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `FieldDataReference` + """ + model = FieldDataReference() + if include_optional: + return FieldDataReference( + external_data_identifier = vcell_client.models.external_data_identifier.ExternalDataIdentifier( + key = vcell_client.models.key_value.KeyValue( + value = 1.337, ), + owner = vcell_client.models.user.User( + user_name = '', + name = '', + test_account = True, ), + name = '', + job_index = 56, + simulation_key = vcell_client.models.key_value.KeyValue( + value = 1.337, ), + parameter_scan_type = True, + data_key = , ), + external_data_annotation = '', + external_data_id_sim_ref = [ + vcell_client.models.key_value.KeyValue( + value = 1.337, ) + ] + ) + else: + return FieldDataReference( + ) + """ + + def testFieldDataReference(self): + """Test FieldDataReference""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/python-restclient/test/test_field_data_resource_api.py b/python-restclient/test/test_field_data_resource_api.py new file mode 100644 index 0000000000..223c7efcba --- /dev/null +++ b/python-restclient/test/test_field_data_resource_api.py @@ -0,0 +1,67 @@ +# coding: utf-8 + +""" + VCell API + + VCell API + + The version of the OpenAPI document: 1.0.1 + Contact: vcell_support@uchc.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from vcell_client.api.field_data_resource_api import FieldDataResourceApi + + +class TestFieldDataResourceApi(unittest.TestCase): + """FieldDataResourceApi unit test stubs""" + + def setUp(self) -> None: + self.api = FieldDataResourceApi() + + def tearDown(self) -> None: + pass + + def test_analyze_field_data_file(self) -> None: + """Test case for analyze_field_data_file + + Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. + """ + pass + + def test_create_field_data_from_analyzed_file(self) -> None: + """Test case for create_field_data_from_analyzed_file + + Take the analyzed results of the field data, modify it to your liking, then save it on the server. + """ + pass + + def test_delete_field_data(self) -> None: + """Test case for delete_field_data + + Delete the selected field data. + """ + pass + + def test_get_all_field_data_ids(self) -> None: + """Test case for get_all_field_data_ids + + Get all of the ids used to identify, and retrieve field data. + """ + pass + + def test_get_field_data_shape_from_id(self) -> None: + """Test case for get_field_data_shape_from_id + + Get the shape of the field data. That is it's size, origin, extent, and data identifiers. + """ + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/python-restclient/test/test_user1.py b/python-restclient/test/test_field_data_save_results.py similarity index 53% rename from python-restclient/test/test_user1.py rename to python-restclient/test/test_field_data_save_results.py index 5c83f48788..487181bb30 100644 --- a/python-restclient/test/test_user1.py +++ b/python-restclient/test/test_field_data_save_results.py @@ -16,10 +16,10 @@ import unittest import datetime -from vcell_client.models.user1 import User1 +from vcell_client.models.field_data_save_results import FieldDataSaveResults -class TestUser1(unittest.TestCase): - """User1 unit test stubs""" +class TestFieldDataSaveResults(unittest.TestCase): + """FieldDataSaveResults unit test stubs""" def setUp(self): pass @@ -27,32 +27,26 @@ def setUp(self): def tearDown(self): pass - def make_instance(self, include_optional) -> User1: - """Test User1 + def make_instance(self, include_optional) -> FieldDataSaveResults: + """Test FieldDataSaveResults include_option is a boolean, when False only required params are included, when True both required and optional params are included """ - # uncomment below to create an instance of `User1` + # uncomment below to create an instance of `FieldDataSaveResults` """ - model = User1() + model = FieldDataSaveResults() if include_optional: - return User1( - user_name = '', - key = vcell_client.models.key_value.KeyValue( - value = 1.337, ), - i_d = vcell_client.models.key_value.KeyValue( - value = 1.337, ), - name = '', - publisher = True, - test_account = True + return FieldDataSaveResults( + field_data_name = '', + field_data_id = '' ) else: - return User1( + return FieldDataSaveResults( ) """ - def testUser1(self): - """Test User1""" + def testFieldDataSaveResults(self): + """Test FieldDataSaveResults""" # inst_req_only = self.make_instance(include_optional=False) # inst_req_and_optional = self.make_instance(include_optional=True) diff --git a/python-restclient/test/test_field_data_shape.py b/python-restclient/test/test_field_data_shape.py new file mode 100644 index 0000000000..27397f960c --- /dev/null +++ b/python-restclient/test/test_field_data_shape.py @@ -0,0 +1,87 @@ +# coding: utf-8 + +""" + VCell API + + VCell API + + The version of the OpenAPI document: 1.0.1 + Contact: vcell_support@uchc.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest +import datetime + +from vcell_client.models.field_data_shape import FieldDataShape + +class TestFieldDataShape(unittest.TestCase): + """FieldDataShape unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> FieldDataShape: + """Test FieldDataShape + include_option is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `FieldDataShape` + """ + model = FieldDataShape() + if include_optional: + return FieldDataShape( + extent = vcell_client.models.extent.Extent( + x = 1.337, + y = 1.337, + z = 1.337, ), + origin = vcell_client.models.origin.Origin( + x = 1.337, + y = 1.337, + z = 1.337, ), + isize = vcell_client.models.i_size.ISize( + x = 56, + y = 56, + z = 56, ), + data_identifier = [ + vcell_client.models.data_identifier.DataIdentifier( + name = '', + display_name = '', + variable_type = vcell_client.models.variable_type.VariableType( + type = 56, + variable_domain = 'VARIABLEDOMAIN_POSTPROCESSING', + name = '', + units = '', + label = '', + legacy_warn = True, + default_label = '', + default_units = '', + type_name = '', ), + domain = vcell_client.models.domain.Domain( + name = '', ), + b_function = True, + function = True, + visible = True, ) + ], + times = [ + 1.337 + ] + ) + else: + return FieldDataShape( + ) + """ + + def testFieldDataShape(self): + """Test FieldDataShape""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/python-restclient/test/test_hello_world_api.py b/python-restclient/test/test_hello_world_api.py index 0392ac752e..d1ce89f48f 100644 --- a/python-restclient/test/test_hello_world_api.py +++ b/python-restclient/test/test_hello_world_api.py @@ -1,7 +1,7 @@ # coding: utf-8 """ - VCell API (test) + VCell API VCell API diff --git a/python-restclient/test/test_hello_world_message.py b/python-restclient/test/test_hello_world_message.py index 6dcfd79b5e..7bb6da06ae 100644 --- a/python-restclient/test/test_hello_world_message.py +++ b/python-restclient/test/test_hello_world_message.py @@ -1,7 +1,7 @@ # coding: utf-8 """ - VCell API (test) + VCell API VCell API diff --git a/python-restclient/test/test_v_cell_server_id.py b/python-restclient/test/test_i_size.py similarity index 62% rename from python-restclient/test/test_v_cell_server_id.py rename to python-restclient/test/test_i_size.py index e0bea7b3dc..58fc58840f 100644 --- a/python-restclient/test/test_v_cell_server_id.py +++ b/python-restclient/test/test_i_size.py @@ -16,10 +16,10 @@ import unittest import datetime -from vcell_client.models.v_cell_server_id import VCellServerID +from vcell_client.models.i_size import ISize -class TestVCellServerID(unittest.TestCase): - """VCellServerID unit test stubs""" +class TestISize(unittest.TestCase): + """ISize unit test stubs""" def setUp(self): pass @@ -27,25 +27,27 @@ def setUp(self): def tearDown(self): pass - def make_instance(self, include_optional) -> VCellServerID: - """Test VCellServerID + def make_instance(self, include_optional) -> ISize: + """Test ISize include_option is a boolean, when False only required params are included, when True both required and optional params are included """ - # uncomment below to create an instance of `VCellServerID` + # uncomment below to create an instance of `ISize` """ - model = VCellServerID() + model = ISize() if include_optional: - return VCellServerID( - server_id = '' + return ISize( + x = 56, + y = 56, + z = 56 ) else: - return VCellServerID( + return ISize( ) """ - def testVCellServerID(self): - """Test VCellServerID""" + def testISize(self): + """Test ISize""" # inst_req_only = self.make_instance(include_optional=False) # inst_req_and_optional = self.make_instance(include_optional=True) diff --git a/python-restclient/test/test_mathmodel_ref.py b/python-restclient/test/test_mathmodel_ref.py index be7d704a15..4234b69e78 100644 --- a/python-restclient/test/test_mathmodel_ref.py +++ b/python-restclient/test/test_mathmodel_ref.py @@ -1,7 +1,7 @@ # coding: utf-8 """ - VCell API (development) + VCell API VCell API diff --git a/python-restclient/test/test_origin.py b/python-restclient/test/test_origin.py new file mode 100644 index 0000000000..0b90b202c8 --- /dev/null +++ b/python-restclient/test/test_origin.py @@ -0,0 +1,55 @@ +# coding: utf-8 + +""" + VCell API + + VCell API + + The version of the OpenAPI document: 1.0.1 + Contact: vcell_support@uchc.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest +import datetime + +from vcell_client.models.origin import Origin + +class TestOrigin(unittest.TestCase): + """Origin unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> Origin: + """Test Origin + include_option is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `Origin` + """ + model = Origin() + if include_optional: + return Origin( + x = 1.337, + y = 1.337, + z = 1.337 + ) + else: + return Origin( + ) + """ + + def testOrigin(self): + """Test Origin""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/python-restclient/test/test_publication.py b/python-restclient/test/test_publication.py index 540df5e5c9..ea68d991ac 100644 --- a/python-restclient/test/test_publication.py +++ b/python-restclient/test/test_publication.py @@ -1,7 +1,7 @@ # coding: utf-8 """ - VCell API (development) + VCell API VCell API diff --git a/python-restclient/test/test_publication_resource_api.py b/python-restclient/test/test_publication_resource_api.py index cf6bef21d3..1cb44ec008 100644 --- a/python-restclient/test/test_publication_resource_api.py +++ b/python-restclient/test/test_publication_resource_api.py @@ -1,7 +1,7 @@ # coding: utf-8 """ - VCell API (development) + VCell API VCell API @@ -27,21 +27,38 @@ def setUp(self) -> None: def tearDown(self) -> None: pass - def test_api_publications_delete(self) -> None: - """Test case for api_publications_delete + def test_create_publication(self) -> None: + """Test case for create_publication + + Create publication + """ + pass + + def test_delete_publication(self) -> None: + """Test case for delete_publication + + Delete publication + """ + pass + + def test_get_publication_by_id(self) -> None: + """Test case for get_publication_by_id + Get publication by ID """ pass - def test_api_publications_get(self) -> None: - """Test case for api_publications_get + def test_get_publications(self) -> None: + """Test case for get_publications + Get all publications """ pass - def test_api_publications_post(self) -> None: - """Test case for api_publications_post + def test_update_publication(self) -> None: + """Test case for update_publication + Create publication """ pass diff --git a/python-restclient/test/test_simulation_execution_status.py b/python-restclient/test/test_simulation_execution_status.py deleted file mode 100644 index 22b72b774d..0000000000 --- a/python-restclient/test/test_simulation_execution_status.py +++ /dev/null @@ -1,69 +0,0 @@ -# coding: utf-8 - -""" - VCell API - - VCell API - - The version of the OpenAPI document: 1.0.1 - Contact: vcell_support@uchc.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -import unittest -import datetime - -from vcell_client.models.simulation_execution_status import SimulationExecutionStatus - -class TestSimulationExecutionStatus(unittest.TestCase): - """SimulationExecutionStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SimulationExecutionStatus: - """Test SimulationExecutionStatus - include_option is a boolean, when False only required - params are included, when True both required and - optional params are included """ - # uncomment below to create an instance of `SimulationExecutionStatus` - """ - model = SimulationExecutionStatus() - if include_optional: - return SimulationExecutionStatus( - field_start_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_latest_update_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_end_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_compute_host = '', - field_has_data = True, - field_htc_job_id = vcell_client.models.htc_job_id.HtcJobID( - job_number = 56, - server = '', - batch_system_type = 'PBS', ), - compute_host = '', - end_date = 'Thu Mar 10 00:00:00 UTC 2022', - latest_update_date = 'Thu Mar 10 00:00:00 UTC 2022', - start_date = 'Thu Mar 10 00:00:00 UTC 2022', - htc_job_id = vcell_client.models.htc_job_id.HtcJobID( - job_number = 56, - server = '', - batch_system_type = 'PBS', ) - ) - else: - return SimulationExecutionStatus( - ) - """ - - def testSimulationExecutionStatus(self): - """Test SimulationExecutionStatus""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - -if __name__ == '__main__': - unittest.main() diff --git a/python-restclient/test/test_simulation_job_status.py b/python-restclient/test/test_simulation_job_status.py deleted file mode 100644 index 052963b8ff..0000000000 --- a/python-restclient/test/test_simulation_job_status.py +++ /dev/null @@ -1,155 +0,0 @@ -# coding: utf-8 - -""" - VCell API - - VCell API - - The version of the OpenAPI document: 1.0.1 - Contact: vcell_support@uchc.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -import unittest -import datetime - -from vcell_client.models.simulation_job_status import SimulationJobStatus - -class TestSimulationJobStatus(unittest.TestCase): - """SimulationJobStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SimulationJobStatus: - """Test SimulationJobStatus - include_option is a boolean, when False only required - params are included, when True both required and - optional params are included """ - # uncomment below to create an instance of `SimulationJobStatus` - """ - model = SimulationJobStatus() - if include_optional: - return SimulationJobStatus( - field_time_date_stamp = 'Thu Mar 10 00:00:00 UTC 2022', - field_vc_sim_id = vcell_client.models.vc_simulation_identifier.VCSimulationIdentifier( - simulation_key = vcell_client.models.key_value.KeyValue( - value = 1.337, ), - owner = vcell_client.models.user.User( - user_name = '', - key = vcell_client.models.key_value.KeyValue( - value = 1.337, ), - i_d = , - name = '', - test_account = True, ), - i_d = '', ), - field_submit_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_scheduler_status = 'WAITING', - field_task_id = 56, - field_simulation_message = vcell_client.models.simulation_message.SimulationMessage( - detailed_state = 'UNKNOWN', - message = '', - htc_job_id = vcell_client.models.htc_job_id.HtcJobID( - job_number = 56, - server = '', - batch_system_type = 'PBS', ), - display_message = '', ), - field_server_id = vcell_client.models.v_cell_server_id.VCellServerID( - server_id = '', ), - field_job_index = 56, - field_simulation_queue_entry_status = vcell_client.models.simulation_queue_entry_status.SimulationQueueEntryStatus( - field_queue_priority = 56, - field_queue_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_queue_id = 'QUEUE_ID_WAITING', - queue_date = 'Thu Mar 10 00:00:00 UTC 2022', - queue_id = 'QUEUE_ID_WAITING', - queue_priority = 56, ), - field_simulation_execution_status = vcell_client.models.simulation_execution_status.SimulationExecutionStatus( - field_start_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_latest_update_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_end_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_compute_host = '', - field_has_data = True, - field_htc_job_id = vcell_client.models.htc_job_id.HtcJobID( - job_number = 56, - server = '', - batch_system_type = 'PBS', ), - compute_host = '', - end_date = 'Thu Mar 10 00:00:00 UTC 2022', - latest_update_date = 'Thu Mar 10 00:00:00 UTC 2022', - start_date = 'Thu Mar 10 00:00:00 UTC 2022', - htc_job_id = vcell_client.models.htc_job_id.HtcJobID( - job_number = 56, - server = '', ), ), - compute_host = '', - end_date = 'Thu Mar 10 00:00:00 UTC 2022', - job_index = 56, - scheduler_status = 'WAITING', - server_id = vcell_client.models.v_cell_server_id.VCellServerID( - server_id = '', ), - simulation_execution_status = vcell_client.models.simulation_execution_status.SimulationExecutionStatus( - field_start_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_latest_update_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_end_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_compute_host = '', - field_has_data = True, - field_htc_job_id = vcell_client.models.htc_job_id.HtcJobID( - job_number = 56, - server = '', - batch_system_type = 'PBS', ), - compute_host = '', - end_date = 'Thu Mar 10 00:00:00 UTC 2022', - latest_update_date = 'Thu Mar 10 00:00:00 UTC 2022', - start_date = 'Thu Mar 10 00:00:00 UTC 2022', - htc_job_id = vcell_client.models.htc_job_id.HtcJobID( - job_number = 56, - server = '', ), ), - simulation_queue_entry_status = vcell_client.models.simulation_queue_entry_status.SimulationQueueEntryStatus( - field_queue_priority = 56, - field_queue_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_queue_id = 'QUEUE_ID_WAITING', - queue_date = 'Thu Mar 10 00:00:00 UTC 2022', - queue_id = 'QUEUE_ID_WAITING', - queue_priority = 56, ), - start_date = 'Thu Mar 10 00:00:00 UTC 2022', - simulation_message = vcell_client.models.simulation_message.SimulationMessage( - detailed_state = 'UNKNOWN', - message = '', - htc_job_id = vcell_client.models.htc_job_id.HtcJobID( - job_number = 56, - server = '', - batch_system_type = 'PBS', ), - display_message = '', ), - submit_date = 'Thu Mar 10 00:00:00 UTC 2022', - task_id = 56, - time_date_stamp = 'Thu Mar 10 00:00:00 UTC 2022', - v_c_simulation_identifier = vcell_client.models.vc_simulation_identifier.VCSimulationIdentifier( - simulation_key = vcell_client.models.key_value.KeyValue( - value = 1.337, ), - owner = vcell_client.models.user.User( - user_name = '', - key = vcell_client.models.key_value.KeyValue( - value = 1.337, ), - i_d = , - name = '', - test_account = True, ), - i_d = '', ) - ) - else: - return SimulationJobStatus( - ) - """ - - def testSimulationJobStatus(self): - """Test SimulationJobStatus""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - -if __name__ == '__main__': - unittest.main() diff --git a/python-restclient/test/test_simulation_job_status_record.py b/python-restclient/test/test_simulation_job_status_record.py index 0a638b01f7..b1d727596e 100644 --- a/python-restclient/test/test_simulation_job_status_record.py +++ b/python-restclient/test/test_simulation_job_status_record.py @@ -37,7 +37,7 @@ def make_instance(self, include_optional) -> SimulationJobStatusRecord: model = SimulationJobStatusRecord() if include_optional: return SimulationJobStatusRecord( - field_time_data_stamp = 'Thu Mar 10 00:00:00 UTC 2022', + field_time_data_stamp = '2022-03-10T16:15:50Z', field_vc_sim_id = vcell_client.models.vc_simulation_identifier.VCSimulationIdentifier( simulation_key = vcell_client.models.key_value.KeyValue( value = 1.337, ), @@ -45,11 +45,10 @@ def make_instance(self, include_optional) -> SimulationJobStatusRecord: user_name = '', key = vcell_client.models.key_value.KeyValue( value = 1.337, ), - i_d = , name = '', test_account = True, ), i_d = '', ), - field_submit_date = 'Thu Mar 10 00:00:00 UTC 2022', + field_submit_date = '2022-03-10T16:15:50Z', field_scheduler_status = 'WAITING', field_simulation_message = vcell_client.models.simulation_message.SimulationMessage( detailed_state = 'UNKNOWN', @@ -62,30 +61,20 @@ def make_instance(self, include_optional) -> SimulationJobStatusRecord: field_task_id = 56, field_server_id = '', field_job_index = 56, - field_simulation_execution_status = vcell_client.models.simulation_execution_status.SimulationExecutionStatus( - field_start_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_latest_update_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_end_date = 'Thu Mar 10 00:00:00 UTC 2022', + field_simulation_execution_status = vcell_client.models.simulation_execution_status_record.SimulationExecutionStatusRecord( + field_start_date = '2022-03-10T16:15:50Z', + field_latest_update_date = '2022-03-10T16:15:50Z', + field_end_date = '2022-03-10T16:15:50Z', field_compute_host = '', field_has_data = True, field_htc_job_id = vcell_client.models.htc_job_id.HtcJobID( job_number = 56, server = '', - batch_system_type = 'PBS', ), - compute_host = '', - end_date = 'Thu Mar 10 00:00:00 UTC 2022', - latest_update_date = 'Thu Mar 10 00:00:00 UTC 2022', - start_date = 'Thu Mar 10 00:00:00 UTC 2022', - htc_job_id = vcell_client.models.htc_job_id.HtcJobID( - job_number = 56, - server = '', ), ), - field_simulation_queue_entry_status = vcell_client.models.simulation_queue_entry_status.SimulationQueueEntryStatus( + batch_system_type = 'PBS', ), ), + field_simulation_queue_entry_status = vcell_client.models.simulation_queue_entry_status_record.SimulationQueueEntryStatusRecord( field_queue_priority = 56, - field_queue_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_queue_id = 'QUEUE_ID_WAITING', - queue_date = 'Thu Mar 10 00:00:00 UTC 2022', - queue_id = 'QUEUE_ID_WAITING', - queue_priority = 56, ) + field_queue_date = '2022-03-10T16:15:50Z', + field_queue_id = 'QUEUE_ID_WAITING', ) ) else: return SimulationJobStatusRecord( diff --git a/python-restclient/test/test_simulation_queue_entry_status.py b/python-restclient/test/test_simulation_queue_entry_status.py deleted file mode 100644 index 81f36c8d92..0000000000 --- a/python-restclient/test/test_simulation_queue_entry_status.py +++ /dev/null @@ -1,58 +0,0 @@ -# coding: utf-8 - -""" - VCell API - - VCell API - - The version of the OpenAPI document: 1.0.1 - Contact: vcell_support@uchc.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -import unittest -import datetime - -from vcell_client.models.simulation_queue_entry_status import SimulationQueueEntryStatus - -class TestSimulationQueueEntryStatus(unittest.TestCase): - """SimulationQueueEntryStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SimulationQueueEntryStatus: - """Test SimulationQueueEntryStatus - include_option is a boolean, when False only required - params are included, when True both required and - optional params are included """ - # uncomment below to create an instance of `SimulationQueueEntryStatus` - """ - model = SimulationQueueEntryStatus() - if include_optional: - return SimulationQueueEntryStatus( - field_queue_priority = 56, - field_queue_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_queue_id = 'QUEUE_ID_WAITING', - queue_date = 'Thu Mar 10 00:00:00 UTC 2022', - queue_id = 'QUEUE_ID_WAITING', - queue_priority = 56 - ) - else: - return SimulationQueueEntryStatus( - ) - """ - - def testSimulationQueueEntryStatus(self): - """Test SimulationQueueEntryStatus""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - -if __name__ == '__main__': - unittest.main() diff --git a/python-restclient/test/test_simulation_resource_api.py b/python-restclient/test/test_simulation_resource_api.py index aa62ff7aaa..cdbb07462e 100644 --- a/python-restclient/test/test_simulation_resource_api.py +++ b/python-restclient/test/test_simulation_resource_api.py @@ -27,10 +27,10 @@ def setUp(self) -> None: def tearDown(self) -> None: pass - def test_save_simulation(self) -> None: - """Test case for save_simulation + def test_get_simulation_status(self) -> None: + """Test case for get_simulation_status - Save a simulation. + Get the status of simulation running """ pass diff --git a/python-restclient/test/test_simulation_status_persistent_record.py b/python-restclient/test/test_simulation_status_persistent_record.py index 2fe9f6005d..6fe3582d8e 100644 --- a/python-restclient/test/test_simulation_status_persistent_record.py +++ b/python-restclient/test/test_simulation_status_persistent_record.py @@ -38,9 +38,6 @@ def make_instance(self, include_optional) -> SimulationStatusPersistentRecord: if include_optional: return SimulationStatusPersistentRecord( status = 'UNKNOWN', - progress_hash = { - 'key' : 1.337 - }, details = '', has_data = True ) diff --git a/python-restclient/test/test_status_message.py b/python-restclient/test/test_status_message.py index 4d6264786d..48f6fa991a 100644 --- a/python-restclient/test/test_status_message.py +++ b/python-restclient/test/test_status_message.py @@ -37,8 +37,8 @@ def make_instance(self, include_optional) -> StatusMessage: model = StatusMessage() if include_optional: return StatusMessage( - job_status = vcell_client.models.simulation_job_status.SimulationJobStatus( - field_time_date_stamp = 'Thu Mar 10 00:00:00 UTC 2022', + job_status = vcell_client.models.simulation_job_status_record.SimulationJobStatusRecord( + field_time_data_stamp = '2022-03-10T16:15:50Z', field_vc_sim_id = vcell_client.models.vc_simulation_identifier.VCSimulationIdentifier( simulation_key = vcell_client.models.key_value.KeyValue( value = 1.337, ), @@ -46,13 +46,11 @@ def make_instance(self, include_optional) -> StatusMessage: user_name = '', key = vcell_client.models.key_value.KeyValue( value = 1.337, ), - i_d = , name = '', test_account = True, ), i_d = '', ), - field_submit_date = 'Thu Mar 10 00:00:00 UTC 2022', + field_submit_date = '2022-03-10T16:15:50Z', field_scheduler_status = 'WAITING', - field_task_id = 56, field_simulation_message = vcell_client.models.simulation_message.SimulationMessage( detailed_state = 'UNKNOWN', message = '', @@ -61,58 +59,22 @@ def make_instance(self, include_optional) -> StatusMessage: server = '', batch_system_type = 'PBS', ), display_message = '', ), - field_server_id = vcell_client.models.v_cell_server_id.VCellServerID( - server_id = '', ), + field_task_id = 56, + field_server_id = '', field_job_index = 56, - field_simulation_queue_entry_status = vcell_client.models.simulation_queue_entry_status.SimulationQueueEntryStatus( - field_queue_priority = 56, - field_queue_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_queue_id = 'QUEUE_ID_WAITING', - queue_date = 'Thu Mar 10 00:00:00 UTC 2022', - queue_id = 'QUEUE_ID_WAITING', - queue_priority = 56, ), - field_simulation_execution_status = vcell_client.models.simulation_execution_status.SimulationExecutionStatus( - field_start_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_latest_update_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_end_date = 'Thu Mar 10 00:00:00 UTC 2022', + field_simulation_execution_status = vcell_client.models.simulation_execution_status_record.SimulationExecutionStatusRecord( + field_start_date = '2022-03-10T16:15:50Z', + field_latest_update_date = '2022-03-10T16:15:50Z', + field_end_date = '2022-03-10T16:15:50Z', field_compute_host = '', field_has_data = True, field_htc_job_id = vcell_client.models.htc_job_id.HtcJobID( job_number = 56, - server = '', ), - compute_host = '', - end_date = 'Thu Mar 10 00:00:00 UTC 2022', - latest_update_date = 'Thu Mar 10 00:00:00 UTC 2022', - start_date = 'Thu Mar 10 00:00:00 UTC 2022', - htc_job_id = , ), - compute_host = '', - end_date = 'Thu Mar 10 00:00:00 UTC 2022', - job_index = 56, - scheduler_status = 'WAITING', - server_id = vcell_client.models.v_cell_server_id.VCellServerID(), - simulation_execution_status = vcell_client.models.simulation_execution_status.SimulationExecutionStatus( - field_start_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_latest_update_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_end_date = 'Thu Mar 10 00:00:00 UTC 2022', - field_compute_host = '', - field_has_data = True, - compute_host = '', - end_date = 'Thu Mar 10 00:00:00 UTC 2022', - latest_update_date = 'Thu Mar 10 00:00:00 UTC 2022', - start_date = 'Thu Mar 10 00:00:00 UTC 2022', ), - simulation_queue_entry_status = vcell_client.models.simulation_queue_entry_status.SimulationQueueEntryStatus( + server = '', ), ), + field_simulation_queue_entry_status = vcell_client.models.simulation_queue_entry_status_record.SimulationQueueEntryStatusRecord( field_queue_priority = 56, - field_queue_date = 'Thu Mar 10 00:00:00 UTC 2022', - queue_date = 'Thu Mar 10 00:00:00 UTC 2022', - queue_priority = 56, ), - start_date = 'Thu Mar 10 00:00:00 UTC 2022', - simulation_message = vcell_client.models.simulation_message.SimulationMessage( - message = '', - display_message = '', ), - submit_date = 'Thu Mar 10 00:00:00 UTC 2022', - task_id = 56, - time_date_stamp = 'Thu Mar 10 00:00:00 UTC 2022', - v_c_simulation_identifier = vcell_client.models.vc_simulation_identifier.VCSimulationIdentifier(), ), + field_queue_date = '2022-03-10T16:15:50Z', + field_queue_id = 'QUEUE_ID_WAITING', ), ), user_name = '', progress = 1.337, timepoint = 1.337 diff --git a/python-restclient/test/test_user.py b/python-restclient/test/test_user.py index c6eda582ed..1dada307ad 100644 --- a/python-restclient/test/test_user.py +++ b/python-restclient/test/test_user.py @@ -1,7 +1,7 @@ # coding: utf-8 """ - VCell API (development) + VCell API VCell API @@ -37,7 +37,11 @@ def make_instance(self, include_optional) -> User: model = User() if include_optional: return User( - user_name = '' + user_name = '', + key = vcell_client.models.key_value.KeyValue( + value = 1.337, ), + name = '', + test_account = True ) else: return User( diff --git a/python-restclient/test/test_user_identity_json_safe.py b/python-restclient/test/test_user_identity_json_safe.py index 7b29c333d3..954a230afa 100644 --- a/python-restclient/test/test_user_identity_json_safe.py +++ b/python-restclient/test/test_user_identity_json_safe.py @@ -37,6 +37,7 @@ def make_instance(self, include_optional) -> UserIdentityJSONSafe: model = UserIdentityJSONSafe() if include_optional: return UserIdentityJSONSafe( + mapped = True, user_name = '', id = 1.337, subject = '', diff --git a/python-restclient/test/test_user_login_info_for_mapping.py b/python-restclient/test/test_user_login_info_for_mapping.py index 7f1d797470..0c41d647d6 100644 --- a/python-restclient/test/test_user_login_info_for_mapping.py +++ b/python-restclient/test/test_user_login_info_for_mapping.py @@ -1,7 +1,7 @@ # coding: utf-8 """ - VCell API (development) + VCell API VCell API @@ -38,7 +38,7 @@ def make_instance(self, include_optional) -> UserLoginInfoForMapping: if include_optional: return UserLoginInfoForMapping( user_id = '', - digested_password = '' + password = '' ) else: return UserLoginInfoForMapping( diff --git a/python-restclient/test/test_users_resource_api.py b/python-restclient/test/test_users_resource_api.py index 6476fa4b56..4d0831fada 100644 --- a/python-restclient/test/test_users_resource_api.py +++ b/python-restclient/test/test_users_resource_api.py @@ -1,7 +1,7 @@ # coding: utf-8 """ - VCell API (development) + VCell API VCell API @@ -27,9 +27,73 @@ def setUp(self) -> None: def tearDown(self) -> None: pass - def test_api_users_me_get(self) -> None: - """Test case for api_users_me_get + def test_forgot_legacy_password(self) -> None: + """Test case for forgot_legacy_password + + The end user has forgotten the legacy password they used for VCell, so they will be emailed it. + """ + pass + + def test_get_guest_legacy_api_token(self) -> None: + """Test case for get_guest_legacy_api_token + + Method to get legacy tokens for guest users + """ + pass + + def test_get_legacy_api_token(self) -> None: + """Test case for get_legacy_api_token + + Get token for legacy API + """ + pass + + def test_get_mapped_user(self) -> None: + """Test case for get_mapped_user + + Get mapped VCell identity + """ + pass + + def test_get_me(self) -> None: + """Test case for get_me + + Get current user + """ + pass + + def test_map_new_user(self) -> None: + """Test case for map_new_user + + create vcell user + """ + pass + + def test_map_user(self) -> None: + """Test case for map_user + + map vcell user + """ + pass + + def test_process_magic_link(self) -> None: + """Test case for process_magic_link + + Process the magic link and map the user + """ + pass + + def test_request_recovery_email(self) -> None: + """Test case for request_recovery_email + + request a recovery email to link a VCell account. + """ + pass + + def test_unmap_user(self) -> None: + """Test case for unmap_user + remove vcell identity mapping """ pass diff --git a/python-restclient/test/test_identity_provider.py b/python-restclient/test/test_variable_domain.py similarity index 61% rename from python-restclient/test/test_identity_provider.py rename to python-restclient/test/test_variable_domain.py index c7ebb2e59c..fd61ff28dd 100644 --- a/python-restclient/test/test_identity_provider.py +++ b/python-restclient/test/test_variable_domain.py @@ -16,10 +16,10 @@ import unittest import datetime -from vcell_client.models.identity_provider import IdentityProvider +from vcell_client.models.variable_domain import VariableDomain -class TestIdentityProvider(unittest.TestCase): - """IdentityProvider unit test stubs""" +class TestVariableDomain(unittest.TestCase): + """VariableDomain unit test stubs""" def setUp(self): pass @@ -27,9 +27,9 @@ def setUp(self): def tearDown(self): pass - def testIdentityProvider(self): - """Test IdentityProvider""" - # inst = IdentityProvider() + def testVariableDomain(self): + """Test VariableDomain""" + # inst = VariableDomain() if __name__ == '__main__': unittest.main() diff --git a/python-restclient/test/test_override_representation.py b/python-restclient/test/test_variable_type.py similarity index 53% rename from python-restclient/test/test_override_representation.py rename to python-restclient/test/test_variable_type.py index 658bb49e34..496c7c4149 100644 --- a/python-restclient/test/test_override_representation.py +++ b/python-restclient/test/test_variable_type.py @@ -16,10 +16,10 @@ import unittest import datetime -from vcell_client.models.override_representation import OverrideRepresentation +from vcell_client.models.variable_type import VariableType -class TestOverrideRepresentation(unittest.TestCase): - """OverrideRepresentation unit test stubs""" +class TestVariableType(unittest.TestCase): + """VariableType unit test stubs""" def setUp(self): pass @@ -27,31 +27,33 @@ def setUp(self): def tearDown(self): pass - def make_instance(self, include_optional) -> OverrideRepresentation: - """Test OverrideRepresentation + def make_instance(self, include_optional) -> VariableType: + """Test VariableType include_option is a boolean, when False only required params are included, when True both required and optional params are included """ - # uncomment below to create an instance of `OverrideRepresentation` + # uncomment below to create an instance of `VariableType` """ - model = OverrideRepresentation() + model = VariableType() if include_optional: - return OverrideRepresentation( + return VariableType( + type = 56, + variable_domain = 'VARIABLEDOMAIN_POSTPROCESSING', name = '', - type = '', - expression = '', - values = [ - '' - ], - cardinality = 56 + units = '', + label = '', + legacy_warn = True, + default_label = '', + default_units = '', + type_name = '' ) else: - return OverrideRepresentation( + return VariableType( ) """ - def testOverrideRepresentation(self): - """Test OverrideRepresentation""" + def testVariableType(self): + """Test VariableType""" # inst_req_only = self.make_instance(include_optional=False) # inst_req_and_optional = self.make_instance(include_optional=True) diff --git a/python-restclient/test/test_vc_simulation_identifier.py b/python-restclient/test/test_vc_simulation_identifier.py index e7e6f7900a..095ebdc859 100644 --- a/python-restclient/test/test_vc_simulation_identifier.py +++ b/python-restclient/test/test_vc_simulation_identifier.py @@ -43,8 +43,6 @@ def make_instance(self, include_optional) -> VCSimulationIdentifier: user_name = '', key = vcell_client.models.key_value.KeyValue( value = 1.337, ), - i_d = vcell_client.models.key_value.KeyValue( - value = 1.337, ), name = '', test_account = True, ), i_d = '' diff --git a/python-restclient/vcell_client/__init__.py b/python-restclient/vcell_client/__init__.py index c80d4add41..3112d5aa16 100644 --- a/python-restclient/vcell_client/__init__.py +++ b/python-restclient/vcell_client/__init__.py @@ -20,6 +20,7 @@ # import apis into sdk package from vcell_client.api.admin_resource_api import AdminResourceApi from vcell_client.api.bio_model_resource_api import BioModelResourceApi +from vcell_client.api.field_data_resource_api import FieldDataResourceApi from vcell_client.api.hello_world_api import HelloWorldApi from vcell_client.api.publication_resource_api import PublicationResourceApi from vcell_client.api.simulation_resource_api import SimulationResourceApi @@ -38,15 +39,25 @@ # import models into sdk package from vcell_client.models.acces_token_representation_record import AccesTokenRepresentationRecord +from vcell_client.models.analyzed_results_from_field_data import AnalyzedResultsFromFieldData from vcell_client.models.batch_system_type import BatchSystemType from vcell_client.models.bio_model import BioModel from vcell_client.models.biomodel_ref import BiomodelRef +from vcell_client.models.data_identifier import DataIdentifier from vcell_client.models.detailed_state import DetailedState +from vcell_client.models.domain import Domain +from vcell_client.models.extent import Extent +from vcell_client.models.external_data_identifier import ExternalDataIdentifier +from vcell_client.models.field_data_reference import FieldDataReference +from vcell_client.models.field_data_save_results import FieldDataSaveResults +from vcell_client.models.field_data_shape import FieldDataShape from vcell_client.models.hello_world_message import HelloWorldMessage from vcell_client.models.htc_job_id import HtcJobID +from vcell_client.models.i_size import ISize from vcell_client.models.identity import Identity from vcell_client.models.key_value import KeyValue from vcell_client.models.mathmodel_ref import MathmodelRef +from vcell_client.models.origin import Origin from vcell_client.models.publication import Publication from vcell_client.models.scheduler_status import SchedulerStatus from vcell_client.models.simulation_execution_status_record import SimulationExecutionStatusRecord @@ -62,3 +73,5 @@ from vcell_client.models.user_login_info_for_mapping import UserLoginInfoForMapping from vcell_client.models.user_registration_info import UserRegistrationInfo from vcell_client.models.vc_simulation_identifier import VCSimulationIdentifier +from vcell_client.models.variable_domain import VariableDomain +from vcell_client.models.variable_type import VariableType diff --git a/python-restclient/vcell_client/api/__init__.py b/python-restclient/vcell_client/api/__init__.py index 25e9b7e0ef..40db361305 100644 --- a/python-restclient/vcell_client/api/__init__.py +++ b/python-restclient/vcell_client/api/__init__.py @@ -3,6 +3,7 @@ # import apis into api package from vcell_client.api.admin_resource_api import AdminResourceApi from vcell_client.api.bio_model_resource_api import BioModelResourceApi +from vcell_client.api.field_data_resource_api import FieldDataResourceApi from vcell_client.api.hello_world_api import HelloWorldApi from vcell_client.api.publication_resource_api import PublicationResourceApi from vcell_client.api.simulation_resource_api import SimulationResourceApi diff --git a/python-restclient/vcell_client/api/bio_model_resource_api.py b/python-restclient/vcell_client/api/bio_model_resource_api.py index d2c1d51d15..c31ac2bb00 100644 --- a/python-restclient/vcell_client/api/bio_model_resource_api.py +++ b/python-restclient/vcell_client/api/bio_model_resource_api.py @@ -350,7 +350,8 @@ def get_biomodel_by_id( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "BioModel" + '200': "BioModel", + '404': None } response_data = self.api_client.call_api( @@ -417,7 +418,8 @@ def get_biomodel_by_id_with_http_info( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "BioModel" + '200': "BioModel", + '404': None } response_data = self.api_client.call_api( @@ -484,7 +486,8 @@ def get_biomodel_by_id_without_preload_content( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "BioModel" + '200': "BioModel", + '404': None } response_data = self.api_client.call_api( diff --git a/python-restclient/vcell_client/api/field_data_resource_api.py b/python-restclient/vcell_client/api/field_data_resource_api.py new file mode 100644 index 0000000000..38733f46f7 --- /dev/null +++ b/python-restclient/vcell_client/api/field_data_resource_api.py @@ -0,0 +1,1358 @@ +# coding: utf-8 + +""" + VCell API + + VCell API + + The version of the OpenAPI document: 1.0.1 + Contact: vcell_support@uchc.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import io +import warnings + +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Dict, List, Optional, Tuple, Union, Any + +try: + from typing import Annotated +except ImportError: + from typing_extensions import Annotated + +from pydantic import StrictBytes, StrictStr + +from typing import List, Optional, Union + +from vcell_client.models.analyzed_results_from_field_data import AnalyzedResultsFromFieldData +from vcell_client.models.field_data_reference import FieldDataReference +from vcell_client.models.field_data_save_results import FieldDataSaveResults +from vcell_client.models.field_data_shape import FieldDataShape + +from vcell_client.api_client import ApiClient +from vcell_client.api_response import ApiResponse +from vcell_client.rest import RESTResponseType + + +class FieldDataResourceApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def analyze_field_data_file( + self, + file: Optional[Union[StrictBytes, StrictStr]] = None, + file_name: Optional[StrictStr] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> AnalyzedResultsFromFieldData: + """Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. + + + :param file: + :type file: bytearray + :param file_name: + :type file_name: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._analyze_field_data_file_serialize( + file=file, + file_name=file_name, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "AnalyzedResultsFromFieldData" + + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def analyze_field_data_file_with_http_info( + self, + file: Optional[Union[StrictBytes, StrictStr]] = None, + file_name: Optional[StrictStr] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[AnalyzedResultsFromFieldData]: + """Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. + + + :param file: + :type file: bytearray + :param file_name: + :type file_name: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._analyze_field_data_file_serialize( + file=file, + file_name=file_name, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "AnalyzedResultsFromFieldData" + + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def analyze_field_data_file_without_preload_content( + self, + file: Optional[Union[StrictBytes, StrictStr]] = None, + file_name: Optional[StrictStr] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. + + + :param file: + :type file: bytearray + :param file_name: + :type file_name: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._analyze_field_data_file_serialize( + file=file, + file_name=file_name, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "AnalyzedResultsFromFieldData" + + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _analyze_field_data_file_serialize( + self, + file, + file_name, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> Tuple: + + _host = None + + _collection_formats: Dict[str, str] = { + + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[str, str] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + if file is not None: + _files['file'] = file + if file_name is not None: + _form_params.append(('fileName', file_name)) + # process the body parameter + + + # set the HTTP header `Accept` + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'multipart/form-data' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v1/fieldData/analyzeFieldDataFile', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def create_field_data_from_analyzed_file( + self, + analyzed_results_from_field_data: Optional[AnalyzedResultsFromFieldData] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> FieldDataSaveResults: + """Take the analyzed results of the field data, modify it to your liking, then save it on the server. + + + :param analyzed_results_from_field_data: + :type analyzed_results_from_field_data: AnalyzedResultsFromFieldData + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_field_data_from_analyzed_file_serialize( + analyzed_results_from_field_data=analyzed_results_from_field_data, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "FieldDataSaveResults" + + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def create_field_data_from_analyzed_file_with_http_info( + self, + analyzed_results_from_field_data: Optional[AnalyzedResultsFromFieldData] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[FieldDataSaveResults]: + """Take the analyzed results of the field data, modify it to your liking, then save it on the server. + + + :param analyzed_results_from_field_data: + :type analyzed_results_from_field_data: AnalyzedResultsFromFieldData + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_field_data_from_analyzed_file_serialize( + analyzed_results_from_field_data=analyzed_results_from_field_data, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "FieldDataSaveResults" + + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def create_field_data_from_analyzed_file_without_preload_content( + self, + analyzed_results_from_field_data: Optional[AnalyzedResultsFromFieldData] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Take the analyzed results of the field data, modify it to your liking, then save it on the server. + + + :param analyzed_results_from_field_data: + :type analyzed_results_from_field_data: AnalyzedResultsFromFieldData + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_field_data_from_analyzed_file_serialize( + analyzed_results_from_field_data=analyzed_results_from_field_data, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "FieldDataSaveResults" + + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _create_field_data_from_analyzed_file_serialize( + self, + analyzed_results_from_field_data, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> Tuple: + + _host = None + + _collection_formats: Dict[str, str] = { + + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[str, str] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if analyzed_results_from_field_data is not None: + _body_params = analyzed_results_from_field_data + + + # set the HTTP header `Accept` + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v1/fieldData/createFieldDataFromAnalyzedFile', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def delete_field_data( + self, + field_data_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Delete the selected field data. + + + :param field_data_id: (required) + :type field_data_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_field_data_serialize( + field_data_id=field_data_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def delete_field_data_with_http_info( + self, + field_data_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Delete the selected field data. + + + :param field_data_id: (required) + :type field_data_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_field_data_serialize( + field_data_id=field_data_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def delete_field_data_without_preload_content( + self, + field_data_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Delete the selected field data. + + + :param field_data_id: (required) + :type field_data_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_field_data_serialize( + field_data_id=field_data_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _delete_field_data_serialize( + self, + field_data_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> Tuple: + + _host = None + + _collection_formats: Dict[str, str] = { + + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[str, str] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if field_data_id is not None: + _path_params['fieldDataID'] = field_data_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + + + # authentication setting + _auth_settings: List[str] = [ + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/api/v1/fieldData/delete/{fieldDataID}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def get_all_field_data_ids( + self, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> List[FieldDataReference]: + """Get all of the ids used to identify, and retrieve field data. + + + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_all_field_data_ids_serialize( + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[FieldDataReference]" + + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_all_field_data_ids_with_http_info( + self, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[List[FieldDataReference]]: + """Get all of the ids used to identify, and retrieve field data. + + + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_all_field_data_ids_serialize( + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[FieldDataReference]" + + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_all_field_data_ids_without_preload_content( + self, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get all of the ids used to identify, and retrieve field data. + + + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_all_field_data_ids_serialize( + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[FieldDataReference]" + + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_all_field_data_ids_serialize( + self, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> Tuple: + + _host = None + + _collection_formats: Dict[str, str] = { + + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[str, str] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v1/fieldData/IDs', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def get_field_data_shape_from_id( + self, + field_data_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> FieldDataShape: + """Get the shape of the field data. That is it's size, origin, extent, and data identifiers. + + + :param field_data_id: (required) + :type field_data_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_field_data_shape_from_id_serialize( + field_data_id=field_data_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "FieldDataShape" + + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_field_data_shape_from_id_with_http_info( + self, + field_data_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[FieldDataShape]: + """Get the shape of the field data. That is it's size, origin, extent, and data identifiers. + + + :param field_data_id: (required) + :type field_data_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_field_data_shape_from_id_serialize( + field_data_id=field_data_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "FieldDataShape" + + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_field_data_shape_from_id_without_preload_content( + self, + field_data_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get the shape of the field data. That is it's size, origin, extent, and data identifiers. + + + :param field_data_id: (required) + :type field_data_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_field_data_shape_from_id_serialize( + field_data_id=field_data_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "FieldDataShape" + + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_field_data_shape_from_id_serialize( + self, + field_data_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> Tuple: + + _host = None + + _collection_formats: Dict[str, str] = { + + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[str, str] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if field_data_id is not None: + _path_params['fieldDataID'] = field_data_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v1/fieldData/fieldDataShape/{fieldDataID}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + diff --git a/python-restclient/vcell_client/auth/auth_utils.py b/python-restclient/vcell_client/auth/auth_utils.py index 8553fbb2cd..c26183be7e 100644 --- a/python-restclient/vcell_client/auth/auth_utils.py +++ b/python-restclient/vcell_client/auth/auth_utils.py @@ -97,7 +97,6 @@ def login_interactive_tokens(client_id: str, auth_url: str, token_url: str, jwks with OAuthHttpServer((hostname, temp_http_port), OAuthHttpHandler, success_redirect_url=success_redirect_url) as httpd: redirectURI = f'http://{hostname}:{temp_http_port}{OIDC_TEST_CALLBACK}' - oauth2client = OAuth2Client( token_endpoint=token_url, authorization_endpoint=auth_url, @@ -127,19 +126,26 @@ def get_authorization_and_token_endpoints(issuer_url: str) -> tuple[str, str, st return data.get('authorization_endpoint'), data.get('token_endpoint'), data.get('jwks_uri') -def login_interactive(api_base_url: str, client_id: str, issuer_url: str) -> ApiClient: +def login_interactive(api_base_url: str = "https://vcell.cam.uchc.edu/api/v1", client_id: str = "cjoWhd7W8A8znf7Z7vizyvKJCiqTgRtf", + issuer_url: str = "https://dev-dzhx7i2db3x3kkvq.us.auth0.com", insecure: bool = False) -> ApiClient: """ This function is used to login interactively to the VCell API. It is used for the ApiClient class to set the access token. + Only change the default variables set if you know what you are doing. :param api_base_url: The base URL of the VCell API. :param client_id: The client ID of the VCell API OIDC auth provider. :param issuer_url: The base URL of the VCell API OIDC auth provider. + :param insecure: If a custom endpoint is used that does not have proper SSL certificate. :return: An ApiClient object with the access token set. """ auth_url, token_url, jwks_uri = get_authorization_and_token_endpoints(issuer_url) auth_code_response: AuthCodeResponse = login_interactive_tokens( client_id=client_id, auth_url=auth_url, token_url=token_url, jwks_uri=jwks_uri, success_redirect_url=api_base_url + LOGIN_SUCCESS) id_token = auth_code_response.id_token - api_client = ApiClient(configuration=Configuration(host=api_base_url, access_token=id_token)) + config = Configuration(host=api_base_url, access_token=id_token) + if insecure: + config.assert_hostname = False + config.verify_ssl = False + api_client = ApiClient(configuration=config) api_client.set_default_header('Authorization', f'Bearer {id_token}') return api_client diff --git a/python-restclient/vcell_client/models/__init__.py b/python-restclient/vcell_client/models/__init__.py index 99eb63d427..3132b55049 100644 --- a/python-restclient/vcell_client/models/__init__.py +++ b/python-restclient/vcell_client/models/__init__.py @@ -16,15 +16,25 @@ # import models into model package from vcell_client.models.acces_token_representation_record import AccesTokenRepresentationRecord +from vcell_client.models.analyzed_results_from_field_data import AnalyzedResultsFromFieldData from vcell_client.models.batch_system_type import BatchSystemType from vcell_client.models.bio_model import BioModel from vcell_client.models.biomodel_ref import BiomodelRef +from vcell_client.models.data_identifier import DataIdentifier from vcell_client.models.detailed_state import DetailedState +from vcell_client.models.domain import Domain +from vcell_client.models.extent import Extent +from vcell_client.models.external_data_identifier import ExternalDataIdentifier +from vcell_client.models.field_data_reference import FieldDataReference +from vcell_client.models.field_data_save_results import FieldDataSaveResults +from vcell_client.models.field_data_shape import FieldDataShape from vcell_client.models.hello_world_message import HelloWorldMessage from vcell_client.models.htc_job_id import HtcJobID +from vcell_client.models.i_size import ISize from vcell_client.models.identity import Identity from vcell_client.models.key_value import KeyValue from vcell_client.models.mathmodel_ref import MathmodelRef +from vcell_client.models.origin import Origin from vcell_client.models.publication import Publication from vcell_client.models.scheduler_status import SchedulerStatus from vcell_client.models.simulation_execution_status_record import SimulationExecutionStatusRecord @@ -40,3 +50,5 @@ from vcell_client.models.user_login_info_for_mapping import UserLoginInfoForMapping from vcell_client.models.user_registration_info import UserRegistrationInfo from vcell_client.models.vc_simulation_identifier import VCSimulationIdentifier +from vcell_client.models.variable_domain import VariableDomain +from vcell_client.models.variable_type import VariableType diff --git a/python-restclient/vcell_client/models/access_token_representation.py b/python-restclient/vcell_client/models/access_token_representation.py deleted file mode 100644 index 4a5556fc5f..0000000000 --- a/python-restclient/vcell_client/models/access_token_representation.py +++ /dev/null @@ -1,102 +0,0 @@ -# coding: utf-8 - -""" - VCell API - - VCell API - - The version of the OpenAPI document: 1.0.1 - Contact: vcell_support@uchc.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - - -from typing import Any, ClassVar, Dict, List, Optional -from pydantic import BaseModel, StrictInt, StrictStr -from pydantic import Field -try: - from typing import Self -except ImportError: - from typing_extensions import Self - -class AccessTokenRepresentation(BaseModel): - """ - AccessTokenRepresentation - """ # noqa: E501 - token: Optional[StrictStr] = None - creation_date_seconds: Optional[StrictInt] = Field(default=None, alias="creationDateSeconds") - expire_date_seconds: Optional[StrictInt] = Field(default=None, alias="expireDateSeconds") - user_id: Optional[StrictStr] = Field(default=None, alias="userId") - user_key: Optional[StrictStr] = Field(default=None, alias="userKey") - __properties: ClassVar[List[str]] = ["token", "creationDateSeconds", "expireDateSeconds", "userId", "userKey"] - - model_config = { - "populate_by_name": True, - "validate_assignment": True - } - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of AccessTokenRepresentation from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - _dict = self.model_dump( - by_alias=True, - exclude={ - }, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Dict) -> Self: - """Create an instance of AccessTokenRepresentation from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - # raise errors for additional fields in the input - for _key in obj.keys(): - if _key not in cls.__properties: - raise ValueError("Error due to additional fields (not defined in AccessTokenRepresentation) in the input: " + _key) - - _obj = cls.model_validate({ - "token": obj.get("token"), - "creationDateSeconds": obj.get("creationDateSeconds"), - "expireDateSeconds": obj.get("expireDateSeconds"), - "userId": obj.get("userId"), - "userKey": obj.get("userKey") - }) - return _obj - - diff --git a/python-restclient/vcell_client/models/analyzed_results_from_field_data.py b/python-restclient/vcell_client/models/analyzed_results_from_field_data.py new file mode 100644 index 0000000000..4403bd72a6 --- /dev/null +++ b/python-restclient/vcell_client/models/analyzed_results_from_field_data.py @@ -0,0 +1,120 @@ +# coding: utf-8 + +""" + VCell API + + VCell API + + The version of the OpenAPI document: 1.0.1 + Contact: vcell_support@uchc.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + + +from typing import Any, ClassVar, Dict, List, Optional, Union +from pydantic import BaseModel, StrictFloat, StrictInt, StrictStr +from pydantic import Field +from vcell_client.models.extent import Extent +from vcell_client.models.i_size import ISize +from vcell_client.models.origin import Origin +try: + from typing import Self +except ImportError: + from typing_extensions import Self + +class AnalyzedResultsFromFieldData(BaseModel): + """ + AnalyzedResultsFromFieldData + """ # noqa: E501 + short_spec_data: Optional[List[List[List[StrictInt]]]] = Field(default=None, alias="shortSpecData") + var_names: Optional[List[StrictStr]] = Field(default=None, alias="varNames") + times: Optional[List[Union[StrictFloat, StrictInt]]] = None + origin: Optional[Origin] = None + extent: Optional[Extent] = None + isize: Optional[ISize] = None + annotation: Optional[StrictStr] = None + name: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["shortSpecData", "varNames", "times", "origin", "extent", "isize", "annotation", "name"] + + model_config = { + "populate_by_name": True, + "validate_assignment": True + } + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of AnalyzedResultsFromFieldData from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + _dict = self.model_dump( + by_alias=True, + exclude={ + }, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of origin + if self.origin: + _dict['origin'] = self.origin.to_dict() + # override the default output from pydantic by calling `to_dict()` of extent + if self.extent: + _dict['extent'] = self.extent.to_dict() + # override the default output from pydantic by calling `to_dict()` of isize + if self.isize: + _dict['isize'] = self.isize.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Dict) -> Self: + """Create an instance of AnalyzedResultsFromFieldData from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + # raise errors for additional fields in the input + for _key in obj.keys(): + if _key not in cls.__properties: + raise ValueError("Error due to additional fields (not defined in AnalyzedResultsFromFieldData) in the input: " + _key) + + _obj = cls.model_validate({ + "shortSpecData": obj.get("shortSpecData"), + "varNames": obj.get("varNames"), + "times": obj.get("times"), + "origin": Origin.from_dict(obj.get("origin")) if obj.get("origin") is not None else None, + "extent": Extent.from_dict(obj.get("extent")) if obj.get("extent") is not None else None, + "isize": ISize.from_dict(obj.get("isize")) if obj.get("isize") is not None else None, + "annotation": obj.get("annotation"), + "name": obj.get("name") + }) + return _obj + + diff --git a/python-restclient/vcell_client/models/user1.py b/python-restclient/vcell_client/models/data_identifier.py similarity index 62% rename from python-restclient/vcell_client/models/user1.py rename to python-restclient/vcell_client/models/data_identifier.py index 8044ff7c2e..c9eaf2fee3 100644 --- a/python-restclient/vcell_client/models/user1.py +++ b/python-restclient/vcell_client/models/data_identifier.py @@ -22,23 +22,25 @@ from typing import Any, ClassVar, Dict, List, Optional from pydantic import BaseModel, StrictBool, StrictStr from pydantic import Field -from vcell_client.models.key_value import KeyValue +from vcell_client.models.domain import Domain +from vcell_client.models.variable_type import VariableType try: from typing import Self except ImportError: from typing_extensions import Self -class User1(BaseModel): +class DataIdentifier(BaseModel): """ - User1 + DataIdentifier """ # noqa: E501 - user_name: Optional[StrictStr] = Field(default=None, alias="userName") - key: Optional[KeyValue] = None - i_d: Optional[KeyValue] = Field(default=None, alias="iD") name: Optional[StrictStr] = None - publisher: Optional[StrictBool] = None - test_account: Optional[StrictBool] = Field(default=None, alias="testAccount") - __properties: ClassVar[List[str]] = ["userName", "key", "iD", "name", "publisher", "testAccount"] + display_name: Optional[StrictStr] = Field(default=None, alias="displayName") + variable_type: Optional[VariableType] = Field(default=None, alias="variableType") + domain: Optional[Domain] = None + b_function: Optional[StrictBool] = Field(default=None, alias="bFunction") + function: Optional[StrictBool] = None + visible: Optional[StrictBool] = None + __properties: ClassVar[List[str]] = ["name", "displayName", "variableType", "domain", "bFunction", "function", "visible"] model_config = { "populate_by_name": True, @@ -57,7 +59,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Self: - """Create an instance of User1 from a JSON string""" + """Create an instance of DataIdentifier from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -76,17 +78,17 @@ def to_dict(self) -> Dict[str, Any]: }, exclude_none=True, ) - # override the default output from pydantic by calling `to_dict()` of key - if self.key: - _dict['key'] = self.key.to_dict() - # override the default output from pydantic by calling `to_dict()` of i_d - if self.i_d: - _dict['iD'] = self.i_d.to_dict() + # override the default output from pydantic by calling `to_dict()` of variable_type + if self.variable_type: + _dict['variableType'] = self.variable_type.to_dict() + # override the default output from pydantic by calling `to_dict()` of domain + if self.domain: + _dict['domain'] = self.domain.to_dict() return _dict @classmethod def from_dict(cls, obj: Dict) -> Self: - """Create an instance of User1 from a dict""" + """Create an instance of DataIdentifier from a dict""" if obj is None: return None @@ -96,15 +98,16 @@ def from_dict(cls, obj: Dict) -> Self: # raise errors for additional fields in the input for _key in obj.keys(): if _key not in cls.__properties: - raise ValueError("Error due to additional fields (not defined in User1) in the input: " + _key) + raise ValueError("Error due to additional fields (not defined in DataIdentifier) in the input: " + _key) _obj = cls.model_validate({ - "userName": obj.get("userName"), - "key": KeyValue.from_dict(obj.get("key")) if obj.get("key") is not None else None, - "iD": KeyValue.from_dict(obj.get("iD")) if obj.get("iD") is not None else None, "name": obj.get("name"), - "publisher": obj.get("publisher"), - "testAccount": obj.get("testAccount") + "displayName": obj.get("displayName"), + "variableType": VariableType.from_dict(obj.get("variableType")) if obj.get("variableType") is not None else None, + "domain": Domain.from_dict(obj.get("domain")) if obj.get("domain") is not None else None, + "bFunction": obj.get("bFunction"), + "function": obj.get("function"), + "visible": obj.get("visible") }) return _obj diff --git a/python-restclient/vcell_client/models/simulation.py b/python-restclient/vcell_client/models/domain.py similarity index 91% rename from python-restclient/vcell_client/models/simulation.py rename to python-restclient/vcell_client/models/domain.py index 420edfac22..6fe1a27aaa 100644 --- a/python-restclient/vcell_client/models/simulation.py +++ b/python-restclient/vcell_client/models/domain.py @@ -26,9 +26,9 @@ except ImportError: from typing_extensions import Self -class Simulation(BaseModel): +class Domain(BaseModel): """ - Simulation + Domain """ # noqa: E501 name: Optional[StrictStr] = None __properties: ClassVar[List[str]] = ["name"] @@ -50,7 +50,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Self: - """Create an instance of Simulation from a JSON string""" + """Create an instance of Domain from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -73,7 +73,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Dict) -> Self: - """Create an instance of Simulation from a dict""" + """Create an instance of Domain from a dict""" if obj is None: return None @@ -83,7 +83,7 @@ def from_dict(cls, obj: Dict) -> Self: # raise errors for additional fields in the input for _key in obj.keys(): if _key not in cls.__properties: - raise ValueError("Error due to additional fields (not defined in Simulation) in the input: " + _key) + raise ValueError("Error due to additional fields (not defined in Domain) in the input: " + _key) _obj = cls.model_validate({ "name": obj.get("name") diff --git a/python-restclient/vcell_client/models/user_identity.py b/python-restclient/vcell_client/models/extent.py similarity index 71% rename from python-restclient/vcell_client/models/user_identity.py rename to python-restclient/vcell_client/models/extent.py index 3bdb5e053e..7a128c22a3 100644 --- a/python-restclient/vcell_client/models/user_identity.py +++ b/python-restclient/vcell_client/models/extent.py @@ -18,24 +18,22 @@ import re # noqa: F401 import json -from datetime import datetime + from typing import Any, ClassVar, Dict, List, Optional, Union -from pydantic import BaseModel, StrictFloat, StrictInt, StrictStr -from pydantic import Field +from pydantic import BaseModel, StrictFloat, StrictInt try: from typing import Self except ImportError: from typing_extensions import Self -class UserIdentity(BaseModel): +class Extent(BaseModel): """ - UserIdentity + Extent """ # noqa: E501 - id: Optional[Union[StrictFloat, StrictInt]] = None - user_name: Optional[StrictStr] = Field(default=None, alias="userName") - subject: Optional[StrictStr] = None - insert_date: Optional[datetime] = Field(default=None, alias="insertDate") - __properties: ClassVar[List[str]] = ["id", "userName", "subject", "insertDate"] + x: Optional[Union[StrictFloat, StrictInt]] = None + y: Optional[Union[StrictFloat, StrictInt]] = None + z: Optional[Union[StrictFloat, StrictInt]] = None + __properties: ClassVar[List[str]] = ["x", "y", "z"] model_config = { "populate_by_name": True, @@ -54,7 +52,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Self: - """Create an instance of UserIdentity from a JSON string""" + """Create an instance of Extent from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -77,7 +75,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Dict) -> Self: - """Create an instance of UserIdentity from a dict""" + """Create an instance of Extent from a dict""" if obj is None: return None @@ -87,13 +85,12 @@ def from_dict(cls, obj: Dict) -> Self: # raise errors for additional fields in the input for _key in obj.keys(): if _key not in cls.__properties: - raise ValueError("Error due to additional fields (not defined in UserIdentity) in the input: " + _key) + raise ValueError("Error due to additional fields (not defined in Extent) in the input: " + _key) _obj = cls.model_validate({ - "id": obj.get("id"), - "userName": obj.get("userName"), - "subject": obj.get("subject"), - "insertDate": obj.get("insertDate") + "x": obj.get("x"), + "y": obj.get("y"), + "z": obj.get("z") }) return _obj diff --git a/python-restclient/vcell_client/models/external_data_identifier.py b/python-restclient/vcell_client/models/external_data_identifier.py new file mode 100644 index 0000000000..2b0d88dbb5 --- /dev/null +++ b/python-restclient/vcell_client/models/external_data_identifier.py @@ -0,0 +1,120 @@ +# coding: utf-8 + +""" + VCell API + + VCell API + + The version of the OpenAPI document: 1.0.1 + Contact: vcell_support@uchc.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + + +from typing import Any, ClassVar, Dict, List, Optional +from pydantic import BaseModel, StrictBool, StrictInt, StrictStr +from pydantic import Field +from vcell_client.models.key_value import KeyValue +from vcell_client.models.user import User +try: + from typing import Self +except ImportError: + from typing_extensions import Self + +class ExternalDataIdentifier(BaseModel): + """ + ExternalDataIdentifier + """ # noqa: E501 + key: Optional[KeyValue] = None + owner: Optional[User] = None + name: Optional[StrictStr] = None + job_index: Optional[StrictInt] = Field(default=None, alias="jobIndex") + simulation_key: Optional[KeyValue] = Field(default=None, alias="simulationKey") + parameter_scan_type: Optional[StrictBool] = Field(default=None, alias="parameterScanType") + data_key: Optional[KeyValue] = Field(default=None, alias="dataKey") + __properties: ClassVar[List[str]] = ["key", "owner", "name", "jobIndex", "simulationKey", "parameterScanType", "dataKey"] + + model_config = { + "populate_by_name": True, + "validate_assignment": True + } + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of ExternalDataIdentifier from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + _dict = self.model_dump( + by_alias=True, + exclude={ + }, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of key + if self.key: + _dict['key'] = self.key.to_dict() + # override the default output from pydantic by calling `to_dict()` of owner + if self.owner: + _dict['owner'] = self.owner.to_dict() + # override the default output from pydantic by calling `to_dict()` of simulation_key + if self.simulation_key: + _dict['simulationKey'] = self.simulation_key.to_dict() + # override the default output from pydantic by calling `to_dict()` of data_key + if self.data_key: + _dict['dataKey'] = self.data_key.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Dict) -> Self: + """Create an instance of ExternalDataIdentifier from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + # raise errors for additional fields in the input + for _key in obj.keys(): + if _key not in cls.__properties: + raise ValueError("Error due to additional fields (not defined in ExternalDataIdentifier) in the input: " + _key) + + _obj = cls.model_validate({ + "key": KeyValue.from_dict(obj.get("key")) if obj.get("key") is not None else None, + "owner": User.from_dict(obj.get("owner")) if obj.get("owner") is not None else None, + "name": obj.get("name"), + "jobIndex": obj.get("jobIndex"), + "simulationKey": KeyValue.from_dict(obj.get("simulationKey")) if obj.get("simulationKey") is not None else None, + "parameterScanType": obj.get("parameterScanType"), + "dataKey": KeyValue.from_dict(obj.get("dataKey")) if obj.get("dataKey") is not None else None + }) + return _obj + + diff --git a/python-restclient/vcell_client/models/field_data_reference.py b/python-restclient/vcell_client/models/field_data_reference.py new file mode 100644 index 0000000000..670cdc43b0 --- /dev/null +++ b/python-restclient/vcell_client/models/field_data_reference.py @@ -0,0 +1,110 @@ +# coding: utf-8 + +""" + VCell API + + VCell API + + The version of the OpenAPI document: 1.0.1 + Contact: vcell_support@uchc.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + + +from typing import Any, ClassVar, Dict, List, Optional +from pydantic import BaseModel, StrictStr +from pydantic import Field +from vcell_client.models.external_data_identifier import ExternalDataIdentifier +from vcell_client.models.key_value import KeyValue +try: + from typing import Self +except ImportError: + from typing_extensions import Self + +class FieldDataReference(BaseModel): + """ + FieldDataReference + """ # noqa: E501 + external_data_identifier: Optional[ExternalDataIdentifier] = Field(default=None, alias="externalDataIdentifier") + external_data_annotation: Optional[StrictStr] = Field(default=None, alias="externalDataAnnotation") + external_data_id_sim_refs: Optional[List[KeyValue]] = Field(default=None, alias="externalDataIDSimRefs") + __properties: ClassVar[List[str]] = ["externalDataIdentifier", "externalDataAnnotation", "externalDataIDSimRefs"] + + model_config = { + "populate_by_name": True, + "validate_assignment": True + } + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of FieldDataReference from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + _dict = self.model_dump( + by_alias=True, + exclude={ + }, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of external_data_identifier + if self.external_data_identifier: + _dict['externalDataIdentifier'] = self.external_data_identifier.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in external_data_id_sim_refs (list) + _items = [] + if self.external_data_id_sim_refs: + for _item in self.external_data_id_sim_refs: + if _item: + _items.append(_item.to_dict()) + _dict['externalDataIDSimRefs'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Dict) -> Self: + """Create an instance of FieldDataReference from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + # raise errors for additional fields in the input + for _key in obj.keys(): + if _key not in cls.__properties: + raise ValueError("Error due to additional fields (not defined in FieldDataReference) in the input: " + _key) + + _obj = cls.model_validate({ + "externalDataIdentifier": ExternalDataIdentifier.from_dict(obj.get("externalDataIdentifier")) if obj.get("externalDataIdentifier") is not None else None, + "externalDataAnnotation": obj.get("externalDataAnnotation"), + "externalDataIDSimRefs": [KeyValue.from_dict(_item) for _item in obj.get("externalDataIDSimRefs")] if obj.get("externalDataIDSimRefs") is not None else None + }) + return _obj + + diff --git a/python-restclient/vcell_client/models/map_user.py b/python-restclient/vcell_client/models/field_data_save_results.py similarity index 78% rename from python-restclient/vcell_client/models/map_user.py rename to python-restclient/vcell_client/models/field_data_save_results.py index bf49fab4cd..6c996dd60f 100644 --- a/python-restclient/vcell_client/models/map_user.py +++ b/python-restclient/vcell_client/models/field_data_save_results.py @@ -27,13 +27,13 @@ except ImportError: from typing_extensions import Self -class MapUser(BaseModel): +class FieldDataSaveResults(BaseModel): """ - MapUser + FieldDataSaveResults """ # noqa: E501 - user_id: Optional[StrictStr] = Field(default=None, alias="userID") - password: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["userID", "password"] + field_data_name: Optional[StrictStr] = Field(default=None, alias="fieldDataName") + field_data_id: Optional[StrictStr] = Field(default=None, alias="fieldDataID") + __properties: ClassVar[List[str]] = ["fieldDataName", "fieldDataID"] model_config = { "populate_by_name": True, @@ -52,7 +52,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Self: - """Create an instance of MapUser from a JSON string""" + """Create an instance of FieldDataSaveResults from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -75,7 +75,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Dict) -> Self: - """Create an instance of MapUser from a dict""" + """Create an instance of FieldDataSaveResults from a dict""" if obj is None: return None @@ -85,11 +85,11 @@ def from_dict(cls, obj: Dict) -> Self: # raise errors for additional fields in the input for _key in obj.keys(): if _key not in cls.__properties: - raise ValueError("Error due to additional fields (not defined in MapUser) in the input: " + _key) + raise ValueError("Error due to additional fields (not defined in FieldDataSaveResults) in the input: " + _key) _obj = cls.model_validate({ - "userID": obj.get("userID"), - "password": obj.get("password") + "fieldDataName": obj.get("fieldDataName"), + "fieldDataID": obj.get("fieldDataID") }) return _obj diff --git a/python-restclient/vcell_client/models/field_data_shape.py b/python-restclient/vcell_client/models/field_data_shape.py new file mode 100644 index 0000000000..5ac82d6283 --- /dev/null +++ b/python-restclient/vcell_client/models/field_data_shape.py @@ -0,0 +1,122 @@ +# coding: utf-8 + +""" + VCell API + + VCell API + + The version of the OpenAPI document: 1.0.1 + Contact: vcell_support@uchc.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + + +from typing import Any, ClassVar, Dict, List, Optional, Union +from pydantic import BaseModel, StrictFloat, StrictInt +from pydantic import Field +from vcell_client.models.data_identifier import DataIdentifier +from vcell_client.models.extent import Extent +from vcell_client.models.i_size import ISize +from vcell_client.models.origin import Origin +try: + from typing import Self +except ImportError: + from typing_extensions import Self + +class FieldDataShape(BaseModel): + """ + FieldDataShape + """ # noqa: E501 + extent: Optional[Extent] = None + origin: Optional[Origin] = None + isize: Optional[ISize] = None + data_identifier: Optional[List[DataIdentifier]] = Field(default=None, alias="dataIdentifier") + times: Optional[List[Union[StrictFloat, StrictInt]]] = None + __properties: ClassVar[List[str]] = ["extent", "origin", "isize", "dataIdentifier", "times"] + + model_config = { + "populate_by_name": True, + "validate_assignment": True + } + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of FieldDataShape from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + _dict = self.model_dump( + by_alias=True, + exclude={ + }, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of extent + if self.extent: + _dict['extent'] = self.extent.to_dict() + # override the default output from pydantic by calling `to_dict()` of origin + if self.origin: + _dict['origin'] = self.origin.to_dict() + # override the default output from pydantic by calling `to_dict()` of isize + if self.isize: + _dict['isize'] = self.isize.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in data_identifier (list) + _items = [] + if self.data_identifier: + for _item in self.data_identifier: + if _item: + _items.append(_item.to_dict()) + _dict['dataIdentifier'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Dict) -> Self: + """Create an instance of FieldDataShape from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + # raise errors for additional fields in the input + for _key in obj.keys(): + if _key not in cls.__properties: + raise ValueError("Error due to additional fields (not defined in FieldDataShape) in the input: " + _key) + + _obj = cls.model_validate({ + "extent": Extent.from_dict(obj.get("extent")) if obj.get("extent") is not None else None, + "origin": Origin.from_dict(obj.get("origin")) if obj.get("origin") is not None else None, + "isize": ISize.from_dict(obj.get("isize")) if obj.get("isize") is not None else None, + "dataIdentifier": [DataIdentifier.from_dict(_item) for _item in obj.get("dataIdentifier")] if obj.get("dataIdentifier") is not None else None, + "times": obj.get("times") + }) + return _obj + + diff --git a/python-restclient/vcell_client/models/v_cell_server_id.py b/python-restclient/vcell_client/models/i_size.py similarity index 81% rename from python-restclient/vcell_client/models/v_cell_server_id.py rename to python-restclient/vcell_client/models/i_size.py index d87c29a87a..251b108e6f 100644 --- a/python-restclient/vcell_client/models/v_cell_server_id.py +++ b/python-restclient/vcell_client/models/i_size.py @@ -20,19 +20,20 @@ from typing import Any, ClassVar, Dict, List, Optional -from pydantic import BaseModel, StrictStr -from pydantic import Field +from pydantic import BaseModel, StrictInt try: from typing import Self except ImportError: from typing_extensions import Self -class VCellServerID(BaseModel): +class ISize(BaseModel): """ - VCellServerID + ISize """ # noqa: E501 - server_id: Optional[StrictStr] = Field(default=None, alias="serverID") - __properties: ClassVar[List[str]] = ["serverID"] + x: Optional[StrictInt] = None + y: Optional[StrictInt] = None + z: Optional[StrictInt] = None + __properties: ClassVar[List[str]] = ["x", "y", "z"] model_config = { "populate_by_name": True, @@ -51,7 +52,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Self: - """Create an instance of VCellServerID from a JSON string""" + """Create an instance of ISize from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -74,7 +75,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Dict) -> Self: - """Create an instance of VCellServerID from a dict""" + """Create an instance of ISize from a dict""" if obj is None: return None @@ -84,10 +85,12 @@ def from_dict(cls, obj: Dict) -> Self: # raise errors for additional fields in the input for _key in obj.keys(): if _key not in cls.__properties: - raise ValueError("Error due to additional fields (not defined in VCellServerID) in the input: " + _key) + raise ValueError("Error due to additional fields (not defined in ISize) in the input: " + _key) _obj = cls.model_validate({ - "serverID": obj.get("serverID") + "x": obj.get("x"), + "y": obj.get("y"), + "z": obj.get("z") }) return _obj diff --git a/python-restclient/vcell_client/models/origin.py b/python-restclient/vcell_client/models/origin.py new file mode 100644 index 0000000000..0a9d3661c8 --- /dev/null +++ b/python-restclient/vcell_client/models/origin.py @@ -0,0 +1,97 @@ +# coding: utf-8 + +""" + VCell API + + VCell API + + The version of the OpenAPI document: 1.0.1 + Contact: vcell_support@uchc.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + + +from typing import Any, ClassVar, Dict, List, Optional, Union +from pydantic import BaseModel, StrictFloat, StrictInt +try: + from typing import Self +except ImportError: + from typing_extensions import Self + +class Origin(BaseModel): + """ + Origin + """ # noqa: E501 + x: Optional[Union[StrictFloat, StrictInt]] = None + y: Optional[Union[StrictFloat, StrictInt]] = None + z: Optional[Union[StrictFloat, StrictInt]] = None + __properties: ClassVar[List[str]] = ["x", "y", "z"] + + model_config = { + "populate_by_name": True, + "validate_assignment": True + } + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of Origin from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + _dict = self.model_dump( + by_alias=True, + exclude={ + }, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Dict) -> Self: + """Create an instance of Origin from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + # raise errors for additional fields in the input + for _key in obj.keys(): + if _key not in cls.__properties: + raise ValueError("Error due to additional fields (not defined in Origin) in the input: " + _key) + + _obj = cls.model_validate({ + "x": obj.get("x"), + "y": obj.get("y"), + "z": obj.get("z") + }) + return _obj + + diff --git a/python-restclient/vcell_client/models/simulation_execution_status.py b/python-restclient/vcell_client/models/simulation_execution_status.py deleted file mode 100644 index 3b3427ed0a..0000000000 --- a/python-restclient/vcell_client/models/simulation_execution_status.py +++ /dev/null @@ -1,121 +0,0 @@ -# coding: utf-8 - -""" - VCell API - - VCell API - - The version of the OpenAPI document: 1.0.1 - Contact: vcell_support@uchc.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import date -from typing import Any, ClassVar, Dict, List, Optional -from pydantic import BaseModel, StrictBool, StrictStr -from pydantic import Field -from vcell_client.models.htc_job_id import HtcJobID -try: - from typing import Self -except ImportError: - from typing_extensions import Self - -class SimulationExecutionStatus(BaseModel): - """ - SimulationExecutionStatus - """ # noqa: E501 - field_start_date: Optional[date] = Field(default=None, alias="fieldStartDate") - field_latest_update_date: Optional[date] = Field(default=None, alias="fieldLatestUpdateDate") - field_end_date: Optional[date] = Field(default=None, alias="fieldEndDate") - field_compute_host: Optional[StrictStr] = Field(default=None, alias="fieldComputeHost") - field_has_data: Optional[StrictBool] = Field(default=None, alias="fieldHasData") - field_htc_job_id: Optional[HtcJobID] = Field(default=None, alias="fieldHtcJobID") - compute_host: Optional[StrictStr] = Field(default=None, alias="computeHost") - end_date: Optional[date] = Field(default=None, alias="endDate") - latest_update_date: Optional[date] = Field(default=None, alias="latestUpdateDate") - start_date: Optional[date] = Field(default=None, alias="startDate") - htc_job_id: Optional[HtcJobID] = Field(default=None, alias="htcJobID") - __properties: ClassVar[List[str]] = ["fieldStartDate", "fieldLatestUpdateDate", "fieldEndDate", "fieldComputeHost", "fieldHasData", "fieldHtcJobID", "computeHost", "endDate", "latestUpdateDate", "startDate", "htcJobID"] - - model_config = { - "populate_by_name": True, - "validate_assignment": True - } - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of SimulationExecutionStatus from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - _dict = self.model_dump( - by_alias=True, - exclude={ - }, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of field_htc_job_id - if self.field_htc_job_id: - _dict['fieldHtcJobID'] = self.field_htc_job_id.to_dict() - # override the default output from pydantic by calling `to_dict()` of htc_job_id - if self.htc_job_id: - _dict['htcJobID'] = self.htc_job_id.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Dict) -> Self: - """Create an instance of SimulationExecutionStatus from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - # raise errors for additional fields in the input - for _key in obj.keys(): - if _key not in cls.__properties: - raise ValueError("Error due to additional fields (not defined in SimulationExecutionStatus) in the input: " + _key) - - _obj = cls.model_validate({ - "fieldStartDate": obj.get("fieldStartDate"), - "fieldLatestUpdateDate": obj.get("fieldLatestUpdateDate"), - "fieldEndDate": obj.get("fieldEndDate"), - "fieldComputeHost": obj.get("fieldComputeHost"), - "fieldHasData": obj.get("fieldHasData"), - "fieldHtcJobID": HtcJobID.from_dict(obj.get("fieldHtcJobID")) if obj.get("fieldHtcJobID") is not None else None, - "computeHost": obj.get("computeHost"), - "endDate": obj.get("endDate"), - "latestUpdateDate": obj.get("latestUpdateDate"), - "startDate": obj.get("startDate"), - "htcJobID": HtcJobID.from_dict(obj.get("htcJobID")) if obj.get("htcJobID") is not None else None - }) - return _obj - - diff --git a/python-restclient/vcell_client/models/simulation_job_status.py b/python-restclient/vcell_client/models/simulation_job_status.py deleted file mode 100644 index 5950651798..0000000000 --- a/python-restclient/vcell_client/models/simulation_job_status.py +++ /dev/null @@ -1,174 +0,0 @@ -# coding: utf-8 - -""" - VCell API - - VCell API - - The version of the OpenAPI document: 1.0.1 - Contact: vcell_support@uchc.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import date -from typing import Any, ClassVar, Dict, List, Optional -from pydantic import BaseModel, StrictInt, StrictStr -from pydantic import Field -from vcell_client.models.scheduler_status import SchedulerStatus -from vcell_client.models.simulation_execution_status import SimulationExecutionStatus -from vcell_client.models.simulation_message import SimulationMessage -from vcell_client.models.simulation_queue_entry_status import SimulationQueueEntryStatus -from vcell_client.models.v_cell_server_id import VCellServerID -from vcell_client.models.vc_simulation_identifier import VCSimulationIdentifier -try: - from typing import Self -except ImportError: - from typing_extensions import Self - -class SimulationJobStatus(BaseModel): - """ - SimulationJobStatus - """ # noqa: E501 - field_time_date_stamp: Optional[date] = Field(default=None, alias="fieldTimeDateStamp") - field_vc_sim_id: Optional[VCSimulationIdentifier] = Field(default=None, alias="fieldVCSimID") - field_submit_date: Optional[date] = Field(default=None, alias="fieldSubmitDate") - field_scheduler_status: Optional[SchedulerStatus] = Field(default=None, alias="fieldSchedulerStatus") - field_task_id: Optional[StrictInt] = Field(default=None, alias="fieldTaskID") - field_simulation_message: Optional[SimulationMessage] = Field(default=None, alias="fieldSimulationMessage") - field_server_id: Optional[VCellServerID] = Field(default=None, alias="fieldServerID") - field_job_index: Optional[StrictInt] = Field(default=None, alias="fieldJobIndex") - field_simulation_queue_entry_status: Optional[SimulationQueueEntryStatus] = Field(default=None, alias="fieldSimulationQueueEntryStatus") - field_simulation_execution_status: Optional[SimulationExecutionStatus] = Field(default=None, alias="fieldSimulationExecutionStatus") - compute_host: Optional[StrictStr] = Field(default=None, alias="computeHost") - end_date: Optional[date] = Field(default=None, alias="endDate") - job_index: Optional[StrictInt] = Field(default=None, alias="jobIndex") - scheduler_status: Optional[SchedulerStatus] = Field(default=None, alias="schedulerStatus") - server_id: Optional[VCellServerID] = Field(default=None, alias="serverID") - simulation_execution_status: Optional[SimulationExecutionStatus] = Field(default=None, alias="simulationExecutionStatus") - simulation_queue_entry_status: Optional[SimulationQueueEntryStatus] = Field(default=None, alias="simulationQueueEntryStatus") - start_date: Optional[date] = Field(default=None, alias="startDate") - simulation_message: Optional[SimulationMessage] = Field(default=None, alias="simulationMessage") - submit_date: Optional[date] = Field(default=None, alias="submitDate") - task_id: Optional[StrictInt] = Field(default=None, alias="taskID") - time_date_stamp: Optional[date] = Field(default=None, alias="timeDateStamp") - v_c_simulation_identifier: Optional[VCSimulationIdentifier] = Field(default=None, alias="vCSimulationIdentifier") - __properties: ClassVar[List[str]] = ["fieldTimeDateStamp", "fieldVCSimID", "fieldSubmitDate", "fieldSchedulerStatus", "fieldTaskID", "fieldSimulationMessage", "fieldServerID", "fieldJobIndex", "fieldSimulationQueueEntryStatus", "fieldSimulationExecutionStatus", "computeHost", "endDate", "jobIndex", "schedulerStatus", "serverID", "simulationExecutionStatus", "simulationQueueEntryStatus", "startDate", "simulationMessage", "submitDate", "taskID", "timeDateStamp", "vCSimulationIdentifier"] - - model_config = { - "populate_by_name": True, - "validate_assignment": True - } - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of SimulationJobStatus from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - _dict = self.model_dump( - by_alias=True, - exclude={ - }, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of field_vc_sim_id - if self.field_vc_sim_id: - _dict['fieldVCSimID'] = self.field_vc_sim_id.to_dict() - # override the default output from pydantic by calling `to_dict()` of field_simulation_message - if self.field_simulation_message: - _dict['fieldSimulationMessage'] = self.field_simulation_message.to_dict() - # override the default output from pydantic by calling `to_dict()` of field_server_id - if self.field_server_id: - _dict['fieldServerID'] = self.field_server_id.to_dict() - # override the default output from pydantic by calling `to_dict()` of field_simulation_queue_entry_status - if self.field_simulation_queue_entry_status: - _dict['fieldSimulationQueueEntryStatus'] = self.field_simulation_queue_entry_status.to_dict() - # override the default output from pydantic by calling `to_dict()` of field_simulation_execution_status - if self.field_simulation_execution_status: - _dict['fieldSimulationExecutionStatus'] = self.field_simulation_execution_status.to_dict() - # override the default output from pydantic by calling `to_dict()` of server_id - if self.server_id: - _dict['serverID'] = self.server_id.to_dict() - # override the default output from pydantic by calling `to_dict()` of simulation_execution_status - if self.simulation_execution_status: - _dict['simulationExecutionStatus'] = self.simulation_execution_status.to_dict() - # override the default output from pydantic by calling `to_dict()` of simulation_queue_entry_status - if self.simulation_queue_entry_status: - _dict['simulationQueueEntryStatus'] = self.simulation_queue_entry_status.to_dict() - # override the default output from pydantic by calling `to_dict()` of simulation_message - if self.simulation_message: - _dict['simulationMessage'] = self.simulation_message.to_dict() - # override the default output from pydantic by calling `to_dict()` of v_c_simulation_identifier - if self.v_c_simulation_identifier: - _dict['vCSimulationIdentifier'] = self.v_c_simulation_identifier.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Dict) -> Self: - """Create an instance of SimulationJobStatus from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - # raise errors for additional fields in the input - for _key in obj.keys(): - if _key not in cls.__properties: - raise ValueError("Error due to additional fields (not defined in SimulationJobStatus) in the input: " + _key) - - _obj = cls.model_validate({ - "fieldTimeDateStamp": obj.get("fieldTimeDateStamp"), - "fieldVCSimID": VCSimulationIdentifier.from_dict(obj.get("fieldVCSimID")) if obj.get("fieldVCSimID") is not None else None, - "fieldSubmitDate": obj.get("fieldSubmitDate"), - "fieldSchedulerStatus": obj.get("fieldSchedulerStatus"), - "fieldTaskID": obj.get("fieldTaskID"), - "fieldSimulationMessage": SimulationMessage.from_dict(obj.get("fieldSimulationMessage")) if obj.get("fieldSimulationMessage") is not None else None, - "fieldServerID": VCellServerID.from_dict(obj.get("fieldServerID")) if obj.get("fieldServerID") is not None else None, - "fieldJobIndex": obj.get("fieldJobIndex"), - "fieldSimulationQueueEntryStatus": SimulationQueueEntryStatus.from_dict(obj.get("fieldSimulationQueueEntryStatus")) if obj.get("fieldSimulationQueueEntryStatus") is not None else None, - "fieldSimulationExecutionStatus": SimulationExecutionStatus.from_dict(obj.get("fieldSimulationExecutionStatus")) if obj.get("fieldSimulationExecutionStatus") is not None else None, - "computeHost": obj.get("computeHost"), - "endDate": obj.get("endDate"), - "jobIndex": obj.get("jobIndex"), - "schedulerStatus": obj.get("schedulerStatus"), - "serverID": VCellServerID.from_dict(obj.get("serverID")) if obj.get("serverID") is not None else None, - "simulationExecutionStatus": SimulationExecutionStatus.from_dict(obj.get("simulationExecutionStatus")) if obj.get("simulationExecutionStatus") is not None else None, - "simulationQueueEntryStatus": SimulationQueueEntryStatus.from_dict(obj.get("simulationQueueEntryStatus")) if obj.get("simulationQueueEntryStatus") is not None else None, - "startDate": obj.get("startDate"), - "simulationMessage": SimulationMessage.from_dict(obj.get("simulationMessage")) if obj.get("simulationMessage") is not None else None, - "submitDate": obj.get("submitDate"), - "taskID": obj.get("taskID"), - "timeDateStamp": obj.get("timeDateStamp"), - "vCSimulationIdentifier": VCSimulationIdentifier.from_dict(obj.get("vCSimulationIdentifier")) if obj.get("vCSimulationIdentifier") is not None else None - }) - return _obj - - diff --git a/python-restclient/vcell_client/models/simulation_queue_entry_status.py b/python-restclient/vcell_client/models/simulation_queue_entry_status.py deleted file mode 100644 index adf6452d5e..0000000000 --- a/python-restclient/vcell_client/models/simulation_queue_entry_status.py +++ /dev/null @@ -1,105 +0,0 @@ -# coding: utf-8 - -""" - VCell API - - VCell API - - The version of the OpenAPI document: 1.0.1 - Contact: vcell_support@uchc.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import date -from typing import Any, ClassVar, Dict, List, Optional -from pydantic import BaseModel, StrictInt -from pydantic import Field -from vcell_client.models.simulation_queue_id import SimulationQueueID -try: - from typing import Self -except ImportError: - from typing_extensions import Self - -class SimulationQueueEntryStatus(BaseModel): - """ - SimulationQueueEntryStatus - """ # noqa: E501 - field_queue_priority: Optional[StrictInt] = Field(default=None, alias="fieldQueuePriority") - field_queue_date: Optional[date] = Field(default=None, alias="fieldQueueDate") - field_queue_id: Optional[SimulationQueueID] = Field(default=None, alias="fieldQueueID") - queue_date: Optional[date] = Field(default=None, alias="queueDate") - queue_id: Optional[SimulationQueueID] = Field(default=None, alias="queueID") - queue_priority: Optional[StrictInt] = Field(default=None, alias="queuePriority") - __properties: ClassVar[List[str]] = ["fieldQueuePriority", "fieldQueueDate", "fieldQueueID", "queueDate", "queueID", "queuePriority"] - - model_config = { - "populate_by_name": True, - "validate_assignment": True - } - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of SimulationQueueEntryStatus from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - _dict = self.model_dump( - by_alias=True, - exclude={ - }, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Dict) -> Self: - """Create an instance of SimulationQueueEntryStatus from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - # raise errors for additional fields in the input - for _key in obj.keys(): - if _key not in cls.__properties: - raise ValueError("Error due to additional fields (not defined in SimulationQueueEntryStatus) in the input: " + _key) - - _obj = cls.model_validate({ - "fieldQueuePriority": obj.get("fieldQueuePriority"), - "fieldQueueDate": obj.get("fieldQueueDate"), - "fieldQueueID": obj.get("fieldQueueID"), - "queueDate": obj.get("queueDate"), - "queueID": obj.get("queueID"), - "queuePriority": obj.get("queuePriority") - }) - return _obj - - diff --git a/python-restclient/vcell_client/models/user.py b/python-restclient/vcell_client/models/user.py index dd783bc381..759c157d8d 100644 --- a/python-restclient/vcell_client/models/user.py +++ b/python-restclient/vcell_client/models/user.py @@ -34,10 +34,9 @@ class User(BaseModel): """ # noqa: E501 user_name: Optional[StrictStr] = Field(default=None, alias="userName") key: Optional[KeyValue] = None - i_d: Optional[KeyValue] = Field(default=None, alias="iD") name: Optional[StrictStr] = None test_account: Optional[StrictBool] = Field(default=None, alias="testAccount") - __properties: ClassVar[List[str]] = ["userName", "key", "iD", "name", "testAccount"] + __properties: ClassVar[List[str]] = ["userName", "key", "name", "testAccount"] model_config = { "populate_by_name": True, @@ -78,9 +77,6 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of key if self.key: _dict['key'] = self.key.to_dict() - # override the default output from pydantic by calling `to_dict()` of i_d - if self.i_d: - _dict['iD'] = self.i_d.to_dict() return _dict @classmethod @@ -100,7 +96,6 @@ def from_dict(cls, obj: Dict) -> Self: _obj = cls.model_validate({ "userName": obj.get("userName"), "key": KeyValue.from_dict(obj.get("key")) if obj.get("key") is not None else None, - "iD": KeyValue.from_dict(obj.get("iD")) if obj.get("iD") is not None else None, "name": obj.get("name"), "testAccount": obj.get("testAccount") }) diff --git a/python-restclient/vcell_client/models/identity_provider.py b/python-restclient/vcell_client/models/variable_domain.py similarity index 54% rename from python-restclient/vcell_client/models/identity_provider.py rename to python-restclient/vcell_client/models/variable_domain.py index 9432e37bc2..6df11499a4 100644 --- a/python-restclient/vcell_client/models/identity_provider.py +++ b/python-restclient/vcell_client/models/variable_domain.py @@ -27,20 +27,25 @@ from typing_extensions import Self -class IdentityProvider(str, Enum): +class VariableDomain(str, Enum): """ - IdentityProvider + VariableDomain """ """ allowed enum values """ - AUTH0 = 'AUTH0' - KEYCLOAK = 'KEYCLOAK' + VARIABLEDOMAIN_POSTPROCESSING = 'VARIABLEDOMAIN_POSTPROCESSING' + VARIABLEDOMAIN_UNKNOWN = 'VARIABLEDOMAIN_UNKNOWN' + VARIABLEDOMAIN_VOLUME = 'VARIABLEDOMAIN_VOLUME' + VARIABLEDOMAIN_MEMBRANE = 'VARIABLEDOMAIN_MEMBRANE' + VARIABLEDOMAIN_CONTOUR = 'VARIABLEDOMAIN_CONTOUR' + VARIABLEDOMAIN_NONSPATIAL = 'VARIABLEDOMAIN_NONSPATIAL' + VARIABLEDOMAIN_POINT = 'VARIABLEDOMAIN_POINT' @classmethod def from_json(cls, json_str: str) -> Self: - """Create an instance of IdentityProvider from a JSON string""" + """Create an instance of VariableDomain from a JSON string""" return cls(json.loads(json_str)) diff --git a/python-restclient/vcell_client/models/override_representation.py b/python-restclient/vcell_client/models/variable_type.py similarity index 62% rename from python-restclient/vcell_client/models/override_representation.py rename to python-restclient/vcell_client/models/variable_type.py index 5d4d30d950..c8e8d1e0f8 100644 --- a/python-restclient/vcell_client/models/override_representation.py +++ b/python-restclient/vcell_client/models/variable_type.py @@ -20,22 +20,28 @@ from typing import Any, ClassVar, Dict, List, Optional -from pydantic import BaseModel, StrictInt, StrictStr +from pydantic import BaseModel, StrictBool, StrictInt, StrictStr +from pydantic import Field +from vcell_client.models.variable_domain import VariableDomain try: from typing import Self except ImportError: from typing_extensions import Self -class OverrideRepresentation(BaseModel): +class VariableType(BaseModel): """ - OverrideRepresentation + VariableType """ # noqa: E501 + type: Optional[StrictInt] = None + variable_domain: Optional[VariableDomain] = Field(default=None, alias="variableDomain") name: Optional[StrictStr] = None - type: Optional[StrictStr] = None - expression: Optional[StrictStr] = None - values: Optional[List[StrictStr]] = None - cardinality: Optional[StrictInt] = None - __properties: ClassVar[List[str]] = ["name", "type", "expression", "values", "cardinality"] + units: Optional[StrictStr] = None + label: Optional[StrictStr] = None + legacy_warn: Optional[StrictBool] = Field(default=None, alias="legacyWarn") + default_label: Optional[StrictStr] = Field(default=None, alias="defaultLabel") + default_units: Optional[StrictStr] = Field(default=None, alias="defaultUnits") + type_name: Optional[StrictStr] = Field(default=None, alias="typeName") + __properties: ClassVar[List[str]] = ["type", "variableDomain", "name", "units", "label", "legacyWarn", "defaultLabel", "defaultUnits", "typeName"] model_config = { "populate_by_name": True, @@ -54,7 +60,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Self: - """Create an instance of OverrideRepresentation from a JSON string""" + """Create an instance of VariableType from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -77,7 +83,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Dict) -> Self: - """Create an instance of OverrideRepresentation from a dict""" + """Create an instance of VariableType from a dict""" if obj is None: return None @@ -87,14 +93,18 @@ def from_dict(cls, obj: Dict) -> Self: # raise errors for additional fields in the input for _key in obj.keys(): if _key not in cls.__properties: - raise ValueError("Error due to additional fields (not defined in OverrideRepresentation) in the input: " + _key) + raise ValueError("Error due to additional fields (not defined in VariableType) in the input: " + _key) _obj = cls.model_validate({ - "name": obj.get("name"), "type": obj.get("type"), - "expression": obj.get("expression"), - "values": obj.get("values"), - "cardinality": obj.get("cardinality") + "variableDomain": obj.get("variableDomain"), + "name": obj.get("name"), + "units": obj.get("units"), + "label": obj.get("label"), + "legacyWarn": obj.get("legacyWarn"), + "defaultLabel": obj.get("defaultLabel"), + "defaultUnits": obj.get("defaultUnits"), + "typeName": obj.get("typeName") }) return _obj diff --git a/tools/java-config.yaml b/tools/java-config.yaml index bfc0085a6a..9bc21c9a49 100644 --- a/tools/java-config.yaml +++ b/tools/java-config.yaml @@ -54,3 +54,5 @@ additionalProperties: withAWSV4Signature: false # default withXml: false # default (whether to include support for application/xml content type and include XML annotations in the model) ... is this needed for VCML, SBML? +#importMappings: +# FieldDataFileOperationSpec: cbit.vcell.field.io.FieldDataFileOperationSpec diff --git a/tools/openapi.yaml b/tools/openapi.yaml index 90575a6396..8dc97abffb 100644 --- a/tools/openapi.yaml +++ b/tools/openapi.yaml @@ -158,11 +158,13 @@ paths: type: string responses: "200": - description: OK + description: return BioModel information in JSON format content: application/json: schema: $ref: '#/components/schemas/BioModel' + "404": + description: BioModel not found delete: tags: - Bio Model Resource @@ -177,6 +179,100 @@ paths: responses: "204": description: No Content + /api/v1/fieldData/IDs: + get: + tags: + - Field Data Resource + summary: "Get all of the ids used to identify, and retrieve field data." + operationId: getAllFieldDataIDs + responses: + "200": + description: OK + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/FieldDataReference' + /api/v1/fieldData/analyzeFieldDataFile: + post: + tags: + - Field Data Resource + summary: "Analyze the field data from the uploaded file. Filenames must be lowercase\ + \ alphanumeric, and can contain underscores." + operationId: analyzeFieldDataFile + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + file: + format: binary + type: string + fileName: + type: string + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/AnalyzedResultsFromFieldData' + /api/v1/fieldData/createFieldDataFromAnalyzedFile: + post: + tags: + - Field Data Resource + summary: "Take the analyzed results of the field data, modify it to your liking,\ + \ then save it on the server." + operationId: createFieldDataFromAnalyzedFile + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AnalyzedResultsFromFieldData' + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/FieldDataSaveResults' + /api/v1/fieldData/delete/{fieldDataID}: + delete: + tags: + - Field Data Resource + summary: Delete the selected field data. + operationId: deleteFieldData + parameters: + - name: fieldDataID + in: path + required: true + schema: + type: string + responses: + "204": + description: No Content + /api/v1/fieldData/fieldDataShape/{fieldDataID}: + get: + tags: + - Field Data Resource + summary: "Get the shape of the field data. That is it's size, origin, extent,\ + \ and data identifiers." + operationId: getFieldDataShapeFromID + parameters: + - name: fieldDataID + in: path + required: true + schema: + type: string + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/FieldDataShape' /api/v1/helloworld: get: tags: @@ -449,10 +545,10 @@ paths: description: magic link sent in email if appropriate "400": description: unable to process request - "403": - description: Not Allowed "401": description: Not Authorized + "403": + description: Not Allowed security: - openId: - user @@ -499,6 +595,36 @@ components: type: string userKey: type: string + AnalyzedResultsFromFieldData: + type: object + properties: + shortSpecData: + type: array + items: + type: array + items: + type: array + items: + type: integer + varNames: + type: array + items: + type: string + times: + type: array + items: + format: double + type: number + origin: + $ref: '#/components/schemas/Origin' + extent: + $ref: '#/components/schemas/Extent' + isize: + $ref: '#/components/schemas/ISize' + annotation: + type: string + name: + type: string Application: type: object BatchSystemType: @@ -558,6 +684,23 @@ components: versionFlag: format: int32 type: integer + DataIdentifier: + type: object + properties: + name: + type: string + displayName: + type: string + variableType: + $ref: '#/components/schemas/VariableType' + domain: + $ref: '#/components/schemas/Domain' + bFunction: + type: boolean + function: + type: boolean + visible: + type: boolean Date: format: date type: string @@ -615,6 +758,83 @@ components: - WORKEREVENT_FAILURE - JOB_FAILED type: string + Domain: + type: object + properties: + name: + type: string + Extent: + type: object + properties: + x: + format: double + type: number + xml: + attribute: true + "y": + format: double + type: number + xml: + attribute: true + z: + format: double + type: number + xml: + attribute: true + ExternalDataIdentifier: + type: object + properties: + key: + $ref: '#/components/schemas/KeyValue' + owner: + $ref: '#/components/schemas/User' + name: + type: string + jobIndex: + format: int32 + type: integer + simulationKey: + $ref: '#/components/schemas/KeyValue' + parameterScanType: + type: boolean + dataKey: + $ref: '#/components/schemas/KeyValue' + FieldDataReference: + type: object + properties: + externalDataIdentifier: + $ref: '#/components/schemas/ExternalDataIdentifier' + externalDataAnnotation: + type: string + externalDataIDSimRefs: + type: array + items: + $ref: '#/components/schemas/KeyValue' + FieldDataSaveResults: + type: object + properties: + fieldDataName: + type: string + fieldDataID: + type: string + FieldDataShape: + type: object + properties: + extent: + $ref: '#/components/schemas/Extent' + origin: + $ref: '#/components/schemas/Origin' + isize: + $ref: '#/components/schemas/ISize' + dataIdentifier: + type: array + items: + $ref: '#/components/schemas/DataIdentifier' + times: + type: array + items: + format: double + type: number HelloWorldMessage: type: object properties: @@ -630,6 +850,18 @@ components: type: string batchSystemType: $ref: '#/components/schemas/BatchSystemType' + ISize: + type: object + properties: + x: + format: int32 + type: integer + "y": + format: int32 + type: integer + z: + format: int32 + type: integer Identity: type: object properties: @@ -672,6 +904,24 @@ components: versionFlag: format: int32 type: integer + Origin: + type: object + properties: + x: + format: double + type: number + xml: + attribute: true + "y": + format: double + type: number + xml: + attribute: true + z: + format: double + type: number + xml: + attribute: true Publication: type: object properties: @@ -832,8 +1082,6 @@ components: type: string key: $ref: '#/components/schemas/KeyValue' - iD: - $ref: '#/components/schemas/KeyValue' name: type: string testAccount: @@ -880,6 +1128,38 @@ components: $ref: '#/components/schemas/User' iD: type: string + VariableDomain: + enum: + - VARIABLEDOMAIN_POSTPROCESSING + - VARIABLEDOMAIN_UNKNOWN + - VARIABLEDOMAIN_VOLUME + - VARIABLEDOMAIN_MEMBRANE + - VARIABLEDOMAIN_CONTOUR + - VARIABLEDOMAIN_NONSPATIAL + - VARIABLEDOMAIN_POINT + type: string + VariableType: + type: object + properties: + type: + format: int32 + type: integer + variableDomain: + $ref: '#/components/schemas/VariableDomain' + name: + type: string + units: + type: string + label: + type: string + legacyWarn: + type: boolean + defaultLabel: + type: string + defaultUnits: + type: string + typeName: + type: string securitySchemes: openId: type: openIdConnect diff --git a/vcell-apiclient/src/main/java/org/vcell/api/client/VCellApiClient.java b/vcell-apiclient/src/main/java/org/vcell/api/client/VCellApiClient.java index 1da6323e79..6ca079a208 100644 --- a/vcell-apiclient/src/main/java/org/vcell/api/client/VCellApiClient.java +++ b/vcell-apiclient/src/main/java/org/vcell/api/client/VCellApiClient.java @@ -33,6 +33,7 @@ import org.vcell.restclient.ApiClient; import org.vcell.restclient.ApiException; import org.vcell.restclient.CustomApiClientCode; +import org.vcell.restclient.api.FieldDataResourceApi; import org.vcell.restclient.api.UsersResourceApi; import org.vcell.restclient.auth.InteractiveLogin; import org.vcell.restclient.model.AccesTokenRepresentationRecord; @@ -514,6 +515,10 @@ public void logOut(){ } } + public FieldDataResourceApi getFieldDataApi(){ + return new FieldDataResourceApi(apiClient); + } + public String getVCellUserNameFromAuth0Mapping() throws ApiException { try { UsersResourceApi usersResourceApi = new UsersResourceApi(apiClient); diff --git a/vcell-client/pom.xml b/vcell-client/pom.xml index dcd9a3e247..310204d4ab 100644 --- a/vcell-client/pom.xml +++ b/vcell-client/pom.xml @@ -130,6 +130,11 @@ vcell-restclient 0.0.1-SNAPSHOT + + org.vcell + vcell-apiclient + 0.0.1-SNAPSHOT + diff --git a/vcell-client/src/main/java/cbit/vcell/client/ClientRequestManager.java b/vcell-client/src/main/java/cbit/vcell/client/ClientRequestManager.java index 30fac3a637..0d40d80bdb 100644 --- a/vcell-client/src/main/java/cbit/vcell/client/ClientRequestManager.java +++ b/vcell-client/src/main/java/cbit/vcell/client/ClientRequestManager.java @@ -37,6 +37,7 @@ import cbit.vcell.export.server.ExportSpecs; import cbit.vcell.export.server.HumanReadableExportData; import cbit.vcell.export.server.N5Specs; +import cbit.vcell.field.FieldDataFileConversion; import cbit.vcell.field.io.FieldDataFileOperationSpec; import cbit.vcell.geometry.*; import cbit.vcell.geometry.gui.ROIMultiPaintManager; @@ -1744,7 +1745,7 @@ public int compare(File o1, File o2) { ImageDataset[] imageDatasets = ImageDatasetReaderService.getInstance().getImageDatasetReader() .readImageDatasetChannels(imageFile.getAbsolutePath(), getClientTaskStatusSupport(), bMergeChannels, userPreferredTimeIndex, resize); - fdfos = ClientRequestManager.createFDOSWithChannels(imageDatasets, null); + fdfos = FieldDataFileConversion.createFDOSWithChannels(imageDatasets, null); } hashTable.put(FDFOS, fdfos); hashTable.remove(NEW_IMAGE_SIZE_INFO); @@ -4574,73 +4575,6 @@ public void showComparisonResults(TopLevelWindowManager requester, XmlTreeDiff d // } //} - public static FieldDataFileOperationSpec createFDOSFromImageFile(File imageFile, boolean bCropOutBlack, - Integer saveOnlyThisTimePointIndex) throws DataFormatException, ImageException { - try { - ImageDatasetReader imageDatasetReader = ImageDatasetReaderService.getInstance().getImageDatasetReader(); - ImageDataset[] imagedataSets = imageDatasetReader.readImageDatasetChannels(imageFile.getAbsolutePath(), - null, false, saveOnlyThisTimePointIndex, null); - if (imagedataSets != null && bCropOutBlack) { - for (int i = 0; i < imagedataSets.length; i++) { - Rectangle nonZeroRect = imagedataSets[i].getNonzeroBoundingRectangle(); - if (nonZeroRect != null) { - imagedataSets[i] = imagedataSets[i].crop(nonZeroRect); - } - } - } - return createFDOSWithChannels(imagedataSets, null); - } catch (Exception e) { - e.printStackTrace(System.out); - throw new DataFormatException(e.getMessage()); - } - } - - public static FieldDataFileOperationSpec createFDOSWithChannels(ImageDataset[] imagedataSets, - Integer saveOnlyThisTimePointIndex) { - final FieldDataFileOperationSpec fdos = new FieldDataFileOperationSpec(); - - // [time][var][data] - int numXY = imagedataSets[0].getISize().getX() * imagedataSets[0].getISize().getY(); - int numXYZ = imagedataSets[0].getSizeZ() * numXY; - fdos.variableTypes = new VariableType[imagedataSets.length]; - fdos.varNames = new String[imagedataSets.length]; - short[][][] shortData = new short[(saveOnlyThisTimePointIndex != null ? 1 - : imagedataSets[0].getSizeT())][imagedataSets.length][numXYZ]; - for (int c = 0; c < imagedataSets.length; c += 1) { - fdos.variableTypes[c] = VariableType.VOLUME; - fdos.varNames[c] = "Channel" + c; - for (int t = 0; t < imagedataSets[c].getSizeT(); t += 1) { - if (saveOnlyThisTimePointIndex != null && saveOnlyThisTimePointIndex.intValue() != t) { - continue; - } - int zOffset = 0; - for (int z = 0; z < imagedataSets[c].getSizeZ(); z += 1) { - UShortImage ushortImage = imagedataSets[c].getImage(z, 0, t); - System.arraycopy(ushortImage.getPixels(), 0, - shortData[(saveOnlyThisTimePointIndex != null ? 0 : t)][c], zOffset, numXY); -// shortData[t][c] = ushortImage.getPixels(); - zOffset += numXY; - } - } - } - fdos.shortSpecData = shortData; - fdos.times = imagedataSets[0].getImageTimeStamps(); - if (fdos.times == null) { - fdos.times = new double[imagedataSets[0].getSizeT()]; - for (int i = 0; i < fdos.times.length; i += 1) { - fdos.times[i] = i; - } - } - - fdos.origin = (imagedataSets[0].getAllImages()[0].getOrigin() != null - ? imagedataSets[0].getAllImages()[0].getOrigin() - : new Origin(0, 0, 0)); - fdos.extent = (imagedataSets[0].getExtent() != null) ? (imagedataSets[0].getExtent()) : (new Extent(1, 1, 1)); - fdos.isize = imagedataSets[0].getISize(); - - return fdos; - - } public void accessPermissions(Component requester, VCDocument vcDoc) { VersionInfo selectedVersionInfo = null; diff --git a/vcell-client/src/main/java/cbit/vcell/client/FieldDataWindowManager.java b/vcell-client/src/main/java/cbit/vcell/client/FieldDataWindowManager.java index 3cd80e4ee4..c793df884b 100644 --- a/vcell-client/src/main/java/cbit/vcell/client/FieldDataWindowManager.java +++ b/vcell-client/src/main/java/cbit/vcell/client/FieldDataWindowManager.java @@ -10,40 +10,6 @@ package cbit.vcell.client; -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.event.ActionEvent; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.beans.PropertyVetoException; -import java.lang.reflect.Field; -import java.util.Hashtable; -import java.util.List; -import java.util.Map; -import java.util.Vector; - -import javax.swing.JPanel; -import javax.swing.ListSelectionModel; - -import cbit.vcell.solver.*; -import org.vcell.util.DataAccessException; -import org.vcell.util.Issue; -import org.vcell.util.IssueContext; -import org.vcell.util.Matchable; -import org.vcell.util.UserCancelException; -import org.vcell.util.document.BioModelInfo; -import org.vcell.util.document.ExternalDataIdentifier; -import org.vcell.util.document.KeyValue; -import org.vcell.util.document.MathModelInfo; -import org.vcell.util.document.ReferenceQueryResult; -import org.vcell.util.document.ReferenceQuerySpec; -import org.vcell.util.document.User; -import org.vcell.util.document.VCDocument; -import org.vcell.util.document.Version; -import org.vcell.util.document.VersionableRelationship; -import org.vcell.util.document.VersionableType; -import org.vcell.util.document.VersionableTypeVersion; - import cbit.image.VCImageUncompressed; import cbit.rmi.event.DataJobEvent; import cbit.rmi.event.DataJobListenerHolder; @@ -71,643 +37,650 @@ import cbit.vcell.math.MathDescription; import cbit.vcell.math.VariableType; import cbit.vcell.math.VolVariable; -import cbit.vcell.simdata.ClientPDEDataContext; -import cbit.vcell.simdata.DataIdentifier; -import cbit.vcell.simdata.DataListener; -import cbit.vcell.simdata.OutputContext; -import cbit.vcell.simdata.PDEDataContext; -import cbit.vcell.simdata.PDEDataManager; +import cbit.vcell.simdata.*; +import cbit.vcell.solver.*; import cbit.vcell.solvers.CartesianMesh; +import org.vcell.util.*; +import org.vcell.util.document.*; -public class FieldDataWindowManager - extends TopLevelWindowManager - implements PropertyChangeListener,FieldDataDBEventListener,DataJobListenerHolder{ - - public interface DataSymbolCallBack { - void createDataSymbol(ExternalDataIdentifier dataSetID,String fieldDataVarName,VariableType fieldDataVarType,double fieldDataVarTime); - } - - private FieldDataGUIPanel fieldDataGUIPanel; - private ExternalDataIdentifier currentlyViewedEDI; - private OutputFunctionViewer currentlyViewedOutputFunctionViewer; - - - public FieldDataWindowManager(FieldDataGUIPanel fdgp, RequestManager requestManager){ - super(requestManager); - fieldDataGUIPanel = fdgp; - requestManager.getDocumentManager().addFieldDataDBListener(this); - } - public FieldDataGUIPanel getFieldDataGUIPanel(){ - return fieldDataGUIPanel; - } - @Override - public Component getComponent() { - return fieldDataGUIPanel; - } - - @Override - public String getManagerID() { - return ClientMDIManager.FIELDDATA_WINDOW_ID; - } - - @Override - public boolean isRecyclable() { - return true; - } - - public void deleteExternalDataIdentifier(ExternalDataIdentifier deleteExtDataID) throws DataAccessException{ - getRequestManager().getDocumentManager().fieldDataDBOperation( - FieldDataDBOperationSpec.createDeleteExtDataIDSpec(deleteExtDataID)); - if(deleteExtDataID.equals(currentlyViewedEDI)){ - viewData(null); - } - } - public RequestManager getLocalRequestManager(){ - return getRequestManager(); - } - public void updateJTree(){ - fieldDataGUIPanel.updateJTree(getRequestManager()); - } - - - public ClientPDEDataContext getPDEDataContext(ExternalDataIdentifier eDI,OutputContext outputContext) throws DataAccessException{ - return - ((PDEDataManager)getRequestManager().getDataManager(outputContext, eDI, true)).getPDEDataContext(); - } - -public void viewData(final ExternalDataIdentifier eDI){ - - ChildWindowManager childWindowManager = ChildWindowManager.findChildWindowManager(getComponent()); - if(eDI != null && eDI.equals(currentlyViewedEDI) && childWindowManager != null && childWindowManager.getChildWindowFromContext(eDI) != null){ - childWindowManager.getChildWindowFromContext(eDI).show(); - } else { - if(currentlyViewedOutputFunctionViewer != null){ - if(getLocalRequestManager() != null && getLocalRequestManager().getAsynchMessageManager() != null){ - getLocalRequestManager().getAsynchMessageManager().removeDataJobListener(currentlyViewedOutputFunctionViewer.getPDEDataViewer()); - } - if(currentlyViewedOutputFunctionViewer != null){ - currentlyViewedOutputFunctionViewer.getPDEDataViewer().getPdeDataContext().removePropertyChangeListener(this); - } - } - if(currentlyViewedOutputFunctionViewer != null){ - ChildWindow childWindow = childWindowManager.getChildWindowFromContext(eDI); - if (childWindow!=null){ - childWindow.close(); - } - } - currentlyViewedEDI = null; - currentlyViewedOutputFunctionViewer = null; - if(eDI == null){ - return; - } - - AsynchClientTask task1 = new AsynchClientTask("retrieve data", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { - - @Override - public void run(Hashtable hashTable) throws Exception { - ClientPDEDataContext newPDEDataContext = getPDEDataContext(eDI,new OutputContext(new AnnotatedFunction[0])/*(currentlyViewedOutputFunctionViewer==null?null:currentlyViewedOutputFunctionViewer.getOutputContext())*/); - hashTable.put("newPDEDataContext", newPDEDataContext); - } - }; - AsynchClientTask task2 = new AsynchClientTask("show data", AsynchClientTask.TASKTYPE_SWING_BLOCKING) { - - @Override - public void run(Hashtable hashTable) throws Exception { - try{ - PDEDataViewer currentlyViewedPDEDV = new PDEDataViewer(); - ClientPDEDataContext newPDEDataContext = (ClientPDEDataContext)hashTable.get("newPDEDataContext"); - currentlyViewedPDEDV.setPdeDataContext(newPDEDataContext); - newPDEDataContext.addPropertyChangeListener(FieldDataWindowManager.this); - getLocalRequestManager().getAsynchMessageManager().addDataJobListener(currentlyViewedPDEDV); - currentlyViewedOutputFunctionViewer = new OutputFunctionViewer(currentlyViewedPDEDV, FieldDataWindowManager.this,eDI); - - DataViewerManager dvm = new DataViewerManager(){ - public void dataJobMessage(DataJobEvent event){ - } - public void exportMessage(ExportEvent event){ - } - public void addDataListener(DataListener newListener){ - } - public UserPreferences getUserPreferences(){ - return getRequestManager().getUserPreferences(); - } - public void removeDataListener(DataListener newListener){ - } - public void startExport(Component requester,OutputContext outputContext,ExportSpecs exportSpecs){ - getLocalRequestManager().startExport(outputContext, requester, exportSpecs); - } - public void simStatusChanged(SimStatusEvent simStatusEvent) { - } - public User getUser() { - return getRequestManager().getDocumentManager().getUser(); - } - public RequestManager getRequestManager() { - return FieldDataWindowManager.this.getRequestManager(); - } - }; - - try { - currentlyViewedPDEDV.setDataViewerManager(dvm); - } catch (PropertyVetoException e) { - e.printStackTrace(); - } - - ChildWindowManager childWindowManager = ChildWindowManager.findChildWindowManager(getComponent()); - currentlyViewedEDI = eDI; - ChildWindow childWindow = childWindowManager.addChildWindow(currentlyViewedOutputFunctionViewer, currentlyViewedEDI, "Field Data Viewer ("+eDI.getName()+")"); - childWindow.setSize(600,500); - childWindow.setIsCenteredOnParent(); - childWindow.show(); - - } catch (Exception e){ - if(currentlyViewedOutputFunctionViewer != null){ - if(getLocalRequestManager() != null && getLocalRequestManager().getAsynchMessageManager() != null){ - getLocalRequestManager().getAsynchMessageManager().removeDataJobListener(currentlyViewedOutputFunctionViewer.getPDEDataViewer()); - } - if(currentlyViewedOutputFunctionViewer != null){ - currentlyViewedOutputFunctionViewer.getPDEDataViewer().getPdeDataContext().removePropertyChangeListener(FieldDataWindowManager.this); - } - } - throw e; - } - } - }; - ClientTaskDispatcher.dispatch(this.getComponent(), new Hashtable(), new AsynchClientTask[] {task1, task2}, false); - } -} -private static class OutputFunctionViewer extends JPanel{ - private PDEDataViewer pdeDataViewer; - private OutputFunctionsPanel outputFunctionsPanel; - private Geometry geom; - private MathDescription mathDescription; - private ExternalDataIdentifier edi; - private FieldDataWindowManager fieldDataWindowManager; - public OutputFunctionViewer(final PDEDataViewer pdeDataViewer,FieldDataWindowManager fieldDataWindowManager,ExternalDataIdentifier edi) throws Exception{ - this.pdeDataViewer = pdeDataViewer; - this.edi = edi; - this.fieldDataWindowManager = fieldDataWindowManager; - this.outputFunctionsPanel = new OutputFunctionsPanel(); - CartesianMesh cartesianMesh = pdeDataViewer.getPdeDataContext().getCartesianMesh(); - VCImageUncompressed vcImage = new VCImageUncompressed(null, new byte[cartesianMesh.getNumVolumeElements()], cartesianMesh.getExtent(), cartesianMesh.getSizeX(),cartesianMesh.getSizeY(),cartesianMesh.getSizeZ()); - this.geom = new Geometry("temp",vcImage); - this.mathDescription = new MathDescription("temp"); - mathDescription.setGeometry(geom); - setMathDescVariables(); - this.pdeDataViewer.setSimNameSimDataID(new SimNameSimDataID("temp", new VCSimulationIdentifier(edi.getKey(), edi.getOwner()),null)); - this.pdeDataViewer.setSimulationModelInfo(new SimulationModelInfo() { - - @Override - public String getVolumeNamePhysiology(int subVolumeID) { - // TODO Auto-generated method stub - return "volPhysiology"; - } - - @Override - public String getVolumeNameGeometry(int subVolumeID) { - // TODO Auto-generated method stub - return "volGeometry"; - } - - @Override - public String getSimulationName() { - // TODO Auto-generated method stub - return "simName"; - } - - @Override - public String getMembraneName(int subVolumeIdIn, int subVolumeIdOut, boolean bFromGeometry) { - // TODO Auto-generated method stub - return "membraneName"; - } - - @Override - public String getContextName() { - // TODO Auto-generated method stub - return "contextName"; - } - - @Override - public DataSymbolMetadataResolver getDataSymbolMetadataResolver(){ - return pdeDataViewer.getSimulationModelInfo().getDataSymbolMetadataResolver(); - } - - @Override - public boolean isSpringSaLad() { - return false; - } - }); - - SimulationOwner simulationOwner = new SimulationOwner.FieldDataSimOwner() { - private OutputFunctionContext outputFunctionContext = new OutputFunctionContext(this); - { - outputFunctionContext.addPropertyChangeListener(new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - final String PDEDC_KEY = "PDEDC_KEY"; - AsynchClientTask task1 = new AsynchClientTask("getPDEDataContext...",AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { - @Override - public void run(Hashtable hashTable) throws Exception { - OutputContext outputContext = OutputFunctionViewer.this.getOutputContext(); - ClientPDEDataContext pdeDataContext = OutputFunctionViewer.this.fieldDataWindowManager.getPDEDataContext(OutputFunctionViewer.this.edi,outputContext); - hashTable.put(PDEDC_KEY, pdeDataContext); - } - }; - AsynchClientTask task2 = new AsynchClientTask("setPDEDataContext...",AsynchClientTask.TASKTYPE_SWING_BLOCKING) { - @Override - public void run(Hashtable hashTable) throws Exception { - OutputFunctionViewer.this.pdeDataViewer.setPdeDataContext((ClientPDEDataContext)hashTable.get(PDEDC_KEY)); - setMathDescVariables(); - } - }; - ClientTaskDispatcher.dispatch(OutputFunctionViewer.this, new Hashtable(), new AsynchClientTask[] {task1,task2},true,false,false,null,true); - } - }); - } - - @Override - public void removePropertyChangeListener(PropertyChangeListener listener) { - // TODO Auto-generated method stub - System.out.println("somebody remove mysimowner listener "+listener); - } - - @Override - public Geometry getGeometry() { - // TODO Auto-generated method stub - return geom; - } - - @Override - public void addPropertyChangeListener(PropertyChangeListener listener) { - // TODO Auto-generated method stub - System.out.println("somebody add mysimowner listener "+listener); - - } - - @Override - public void removeSimulation(Simulation simulation) - throws PropertyVetoException { - // TODO Auto-generated method stub - - } - - @Override - public Simulation[] getSimulations() { - // TODO Auto-generated method stub - return null; - } - - @Override - public OutputFunctionContext getOutputFunctionContext() { - // TODO Auto-generated method stub - return outputFunctionContext; - } - - @Override - public MathOverridesResolver getMathOverridesResolver() { - return null; - } - - @Override - public String getName() { - // TODO Auto-generated method stub - return "temp"; - } - - @Override - public MathDescription getMathDescription() { - // TODO Auto-generated method stub - return mathDescription; - } - - @Override - public Simulation copySimulation(Simulation simulation) - throws PropertyVetoException { - // TODO Auto-generated method stub - return null; - } - @Override - public Issue gatherIssueForMathOverride(IssueContext issueContext, Simulation simulation, String name) { - // TODO Auto-generated method stub - return null; - } - - /** - * @throws UnsupportedOperationException (always) - */ - @Override - public UnitInfo getUnitInfo() throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - }; - VCDocument fakeVCDocument = new VCDocument(){ - - @Override - public boolean compareEqual(Matchable obj) { - // TODO Auto-generated method stub - return false; - } - - @Override - public String getDescription() { - // TODO Auto-generated method stub - return null; - } - - @Override - public VCDocumentType getDocumentType() { - // TODO Auto-generated method stub - return null; - } - - @Override - public String getName() { - // TODO Auto-generated method stub - return null; - } - - @Override - public Version getVersion() { - // TODO Auto-generated method stub - return null; - } - - @Override - public void refreshDependencies() { - // TODO Auto-generated method stub - - } - - @Override - public void setDescription(String description) - throws PropertyVetoException { - // TODO Auto-generated method stub - - } - - @Override - public void setName(String newName) throws PropertyVetoException { - // TODO Auto-generated method stub - - } - - @Override - public void gatherIssues(IssueContext issueContext, List issueList) { - // TODO Auto-generated method stub - - } - - }; - DocumentWindowManager documentWindowManager = new DocumentWindowManager(pdeDataViewer, fieldDataWindowManager.getRequestManager(), fakeVCDocument){ - - @Override - public void actionPerformed(ActionEvent e) { - // TODO Auto-generated method stub - - } - - @Override - public void simStatusChanged(SimStatusEvent simStatusEvent) { - // TODO Auto-generated method stub - - } - - @Override - public void addResultsFrame(SimulationWindow simWindow) { - // TODO Auto-generated method stub - - } - - @Override - public VCDocument getVCDocument() { - // TODO Auto-generated method stub - return null; - } - - @Override - SimulationWindow haveSimulationWindow( - VCSimulationIdentifier vcSimulationIdentifier) { - // TODO Auto-generated method stub - return null; - } - - @Override - public void resetDocument(VCDocument newDocument) { - // TODO Auto-generated method stub - - } - - @Override - public void updateConnectionStatus(ConnectionStatus connStatus) { - // TODO Auto-generated method stub - - } - - @Override - public boolean isRecyclable() { - // TODO Auto-generated method stub - return false; - } - - @Override - public RequestManager getRequestManager() { - // TODO Auto-generated method stub - return OutputFunctionViewer.this.fieldDataWindowManager.getRequestManager(); - } - - @Override - public DocumentEditor getDocumentEditor() { - return null; - } - - }; - - SimulationWorkspace simulationWorkspace = new SimulationWorkspace(documentWindowManager, simulationOwner); - this.pdeDataViewer.setSimulationModelInfo(new SimulationWorkspaceModelInfo(simulationOwner, "temp")); - - setLayout(new BorderLayout()); - add(pdeDataViewer,BorderLayout.CENTER); - add(outputFunctionsPanel,BorderLayout.SOUTH); - outputFunctionsPanel.setSimulationWorkspace(simulationWorkspace); - } - public PDEDataViewer getPDEDataViewer(){ - return pdeDataViewer; - } - public OutputContext getOutputContext() throws Exception{ - Field outputfunctioncontextField = OutputFunctionsPanel.class.getDeclaredField("outputFunctionContext"); - outputfunctioncontextField.setAccessible(true); - OutputFunctionContext outputFunctionContext = (OutputFunctionContext)outputfunctioncontextField.get(outputFunctionsPanel); - OutputContext outputContext = new OutputContext(outputFunctionContext.getOutputFunctionsList().toArray(new AnnotatedFunction[0])); - return outputContext; - } - private void setMathDescVariables() throws Exception{ - AnnotatedFunction[] functions = this.pdeDataViewer.getPdeDataContext().getFunctions(); - for (int i = 0; i < functions.length; i++) { - if(functions[i].getFunctionType().equals(VariableType.VOLUME) && mathDescription.getVariable(functions[i].getName()) == null){ - mathDescription.addVariable(functions[i]); - } - } - DataIdentifier[] dataIds = this.pdeDataViewer.getPdeDataContext().getDataIdentifiers(); - for (int i = 0; i < dataIds.length; i++) { - if(dataIds[i].getVariableType().equals(VariableType.VOLUME) && mathDescription.getVariable(dataIds[i].getName()) == null){ - if(!dataIds[i].isFunction()){ - mathDescription.addVariable(new VolVariable(dataIds[i].getName(), dataIds[i].getDomain())); - } - } - } - } -} - -public void propertyChange(PropertyChangeEvent evt) { - if(evt.getSource() == currentlyViewedOutputFunctionViewer.getPDEDataViewer().getPdeDataContext() && - ( - evt.getPropertyName().equals(PDEDataContext.PROP_CHANGE_FUNC_ADDED) || - evt.getPropertyName().equals(PDEDataContext.PROP_CHANGE_FUNC_REMOVED) - )){ - getFieldDataGUIPanel().refreshExternalDataIdentifierNode(currentlyViewedEDI); - } -} +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.beans.PropertyVetoException; +import java.lang.reflect.Field; +import java.util.Hashtable; +import java.util.List; +import java.util.Vector; +public class FieldDataWindowManager + extends TopLevelWindowManager + implements PropertyChangeListener, FieldDataDBEventListener, DataJobListenerHolder { + + public interface DataSymbolCallBack { + void createDataSymbol(ExternalDataIdentifier dataSetID, String fieldDataVarName, VariableType fieldDataVarType, double fieldDataVarTime); + } + + private FieldDataGUIPanel fieldDataGUIPanel; + private ExternalDataIdentifier currentlyViewedEDI; + private OutputFunctionViewer currentlyViewedOutputFunctionViewer; + + + public FieldDataWindowManager(FieldDataGUIPanel fdgp, RequestManager requestManager) { + super(requestManager); + fieldDataGUIPanel = fdgp; + requestManager.getDocumentManager().addFieldDataDBListener(this); + } + + public FieldDataGUIPanel getFieldDataGUIPanel() { + return fieldDataGUIPanel; + } + + @Override + public Component getComponent() { + return fieldDataGUIPanel; + } + + @Override + public String getManagerID() { + return ClientMDIManager.FIELDDATA_WINDOW_ID; + } + + @Override + public boolean isRecyclable() { + return true; + } + + public void deleteExternalDataIdentifier(ExternalDataIdentifier deleteExtDataID) throws DataAccessException { + getRequestManager().getDocumentManager().fieldDataDBOperation( + FieldDataDBOperationSpec.createDeleteExtDataIDSpec(deleteExtDataID)); + if (deleteExtDataID.equals(currentlyViewedEDI)) { + viewData(null); + } + } + + public RequestManager getLocalRequestManager() { + return getRequestManager(); + } + + public void updateJTree() { + fieldDataGUIPanel.updateJTree(getRequestManager()); + } + + + public ClientPDEDataContext getPDEDataContext(ExternalDataIdentifier eDI, OutputContext outputContext) throws DataAccessException { + return + ((PDEDataManager) getRequestManager().getDataManager(outputContext, eDI, true)).getPDEDataContext(); + } + + public void viewData(final ExternalDataIdentifier eDI) { + + ChildWindowManager childWindowManager = ChildWindowManager.findChildWindowManager(getComponent()); + if (eDI != null && eDI.equals(currentlyViewedEDI) && childWindowManager != null && childWindowManager.getChildWindowFromContext(eDI) != null) { + childWindowManager.getChildWindowFromContext(eDI).show(); + } else { + if (currentlyViewedOutputFunctionViewer != null) { + if (getLocalRequestManager() != null && getLocalRequestManager().getAsynchMessageManager() != null) { + getLocalRequestManager().getAsynchMessageManager().removeDataJobListener(currentlyViewedOutputFunctionViewer.getPDEDataViewer()); + } + if (currentlyViewedOutputFunctionViewer != null) { + currentlyViewedOutputFunctionViewer.getPDEDataViewer().getPdeDataContext().removePropertyChangeListener(this); + } + } + if (currentlyViewedOutputFunctionViewer != null) { + ChildWindow childWindow = childWindowManager.getChildWindowFromContext(eDI); + if (childWindow != null) { + childWindow.close(); + } + } + currentlyViewedEDI = null; + currentlyViewedOutputFunctionViewer = null; + if (eDI == null) { + return; + } + + AsynchClientTask task1 = new AsynchClientTask("retrieve data", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { + + @Override + public void run(Hashtable hashTable) throws Exception { + ClientPDEDataContext newPDEDataContext = getPDEDataContext(eDI, new OutputContext(new AnnotatedFunction[0])/*(currentlyViewedOutputFunctionViewer==null?null:currentlyViewedOutputFunctionViewer.getOutputContext())*/); + hashTable.put("newPDEDataContext", newPDEDataContext); + } + }; + AsynchClientTask task2 = new AsynchClientTask("show data", AsynchClientTask.TASKTYPE_SWING_BLOCKING) { + + @Override + public void run(Hashtable hashTable) throws Exception { + try { + PDEDataViewer currentlyViewedPDEDV = new PDEDataViewer(); + ClientPDEDataContext newPDEDataContext = (ClientPDEDataContext) hashTable.get("newPDEDataContext"); + currentlyViewedPDEDV.setPdeDataContext(newPDEDataContext); + newPDEDataContext.addPropertyChangeListener(FieldDataWindowManager.this); + getLocalRequestManager().getAsynchMessageManager().addDataJobListener(currentlyViewedPDEDV); + currentlyViewedOutputFunctionViewer = new OutputFunctionViewer(currentlyViewedPDEDV, FieldDataWindowManager.this, eDI); + + DataViewerManager dvm = new DataViewerManager() { + public void dataJobMessage(DataJobEvent event) { + } + + public void exportMessage(ExportEvent event) { + } + + public void addDataListener(DataListener newListener) { + } + + public UserPreferences getUserPreferences() { + return getRequestManager().getUserPreferences(); + } + + public void removeDataListener(DataListener newListener) { + } + + public void startExport(Component requester, OutputContext outputContext, ExportSpecs exportSpecs) { + getLocalRequestManager().startExport(outputContext, requester, exportSpecs); + } + + public void simStatusChanged(SimStatusEvent simStatusEvent) { + } + + public User getUser() { + return getRequestManager().getDocumentManager().getUser(); + } + + public RequestManager getRequestManager() { + return FieldDataWindowManager.this.getRequestManager(); + } + }; + + try { + currentlyViewedPDEDV.setDataViewerManager(dvm); + } catch (PropertyVetoException e) { + e.printStackTrace(); + } + + ChildWindowManager childWindowManager = ChildWindowManager.findChildWindowManager(getComponent()); + currentlyViewedEDI = eDI; + ChildWindow childWindow = childWindowManager.addChildWindow(currentlyViewedOutputFunctionViewer, currentlyViewedEDI, "Field Data Viewer (" + eDI.getName() + ")"); + childWindow.setSize(600, 500); + childWindow.setIsCenteredOnParent(); + childWindow.show(); + + } catch (Exception e) { + if (currentlyViewedOutputFunctionViewer != null) { + if (getLocalRequestManager() != null && getLocalRequestManager().getAsynchMessageManager() != null) { + getLocalRequestManager().getAsynchMessageManager().removeDataJobListener(currentlyViewedOutputFunctionViewer.getPDEDataViewer()); + } + if (currentlyViewedOutputFunctionViewer != null) { + currentlyViewedOutputFunctionViewer.getPDEDataViewer().getPdeDataContext().removePropertyChangeListener(FieldDataWindowManager.this); + } + } + throw e; + } + } + }; + ClientTaskDispatcher.dispatch(this.getComponent(), new Hashtable(), new AsynchClientTask[]{task1, task2}, false); + } + } + + private static class OutputFunctionViewer extends JPanel { + private PDEDataViewer pdeDataViewer; + private OutputFunctionsPanel outputFunctionsPanel; + private Geometry geom; + private MathDescription mathDescription; + private ExternalDataIdentifier edi; + private FieldDataWindowManager fieldDataWindowManager; + + public OutputFunctionViewer(final PDEDataViewer pdeDataViewer, FieldDataWindowManager fieldDataWindowManager, ExternalDataIdentifier edi) throws Exception { + this.pdeDataViewer = pdeDataViewer; + this.edi = edi; + this.fieldDataWindowManager = fieldDataWindowManager; + this.outputFunctionsPanel = new OutputFunctionsPanel(); + CartesianMesh cartesianMesh = pdeDataViewer.getPdeDataContext().getCartesianMesh(); + VCImageUncompressed vcImage = new VCImageUncompressed(null, new byte[cartesianMesh.getNumVolumeElements()], cartesianMesh.getExtent(), cartesianMesh.getSizeX(), cartesianMesh.getSizeY(), cartesianMesh.getSizeZ()); + this.geom = new Geometry("temp", vcImage); + this.mathDescription = new MathDescription("temp"); + mathDescription.setGeometry(geom); + setMathDescVariables(); + this.pdeDataViewer.setSimNameSimDataID(new SimNameSimDataID("temp", new VCSimulationIdentifier(edi.getKey(), edi.getOwner()), null)); + this.pdeDataViewer.setSimulationModelInfo(new SimulationModelInfo() { + + @Override + public String getVolumeNamePhysiology(int subVolumeID) { + return "volPhysiology"; + } + + @Override + public String getVolumeNameGeometry(int subVolumeID) { + return "volGeometry"; + } + + @Override + public String getSimulationName() { + return "simName"; + } + + @Override + public String getMembraneName(int subVolumeIdIn, int subVolumeIdOut, boolean bFromGeometry) { + return "membraneName"; + } + + @Override + public String getContextName() { + return "contextName"; + } + + @Override + public DataSymbolMetadataResolver getDataSymbolMetadataResolver() { + return pdeDataViewer.getSimulationModelInfo().getDataSymbolMetadataResolver(); + } + + @Override + public boolean isSpringSaLad() { + return false; + } + }); + + SimulationOwner simulationOwner = new SimulationOwner.FieldDataSimOwner() { + private OutputFunctionContext outputFunctionContext = new OutputFunctionContext(this); + + { + outputFunctionContext.addPropertyChangeListener(new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + final String PDEDC_KEY = "PDEDC_KEY"; + AsynchClientTask task1 = new AsynchClientTask("getPDEDataContext...", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { + @Override + public void run(Hashtable hashTable) throws Exception { + OutputContext outputContext = OutputFunctionViewer.this.getOutputContext(); + ClientPDEDataContext pdeDataContext = OutputFunctionViewer.this.fieldDataWindowManager.getPDEDataContext(OutputFunctionViewer.this.edi, outputContext); + hashTable.put(PDEDC_KEY, pdeDataContext); + } + }; + AsynchClientTask task2 = new AsynchClientTask("setPDEDataContext...", AsynchClientTask.TASKTYPE_SWING_BLOCKING) { + @Override + public void run(Hashtable hashTable) throws Exception { + OutputFunctionViewer.this.pdeDataViewer.setPdeDataContext((ClientPDEDataContext) hashTable.get(PDEDC_KEY)); + setMathDescVariables(); + } + }; + ClientTaskDispatcher.dispatch(OutputFunctionViewer.this, new Hashtable(), new AsynchClientTask[]{task1, task2}, true, false, false, null, true); + } + }); + } + + @Override + public void removePropertyChangeListener(PropertyChangeListener listener) { + System.out.println("somebody remove mysimowner listener " + listener); + } + + @Override + public Geometry getGeometry() { + return geom; + } + + @Override + public void addPropertyChangeListener(PropertyChangeListener listener) { + System.out.println("somebody add mysimowner listener " + listener); + + } + + @Override + public void removeSimulation(Simulation simulation) + throws PropertyVetoException { + } + + @Override + public Simulation[] getSimulations() { + return null; + } + + @Override + public OutputFunctionContext getOutputFunctionContext() { + return outputFunctionContext; + } + + @Override + public MathOverridesResolver getMathOverridesResolver() { + return null; + } + + @Override + public String getName() { + return "temp"; + } + + @Override + public MathDescription getMathDescription() { + return mathDescription; + } + + @Override + public Simulation copySimulation(Simulation simulation) + throws PropertyVetoException { + return null; + } + + @Override + public Issue gatherIssueForMathOverride(IssueContext issueContext, Simulation simulation, String name) { + return null; + } + + /** + * @throws UnsupportedOperationException (always) + */ + @Override + public UnitInfo getUnitInfo() throws UnsupportedOperationException { + throw new UnsupportedOperationException(); + } + }; + VCDocument fakeVCDocument = new VCDocument() { + + @Override + public boolean compareEqual(Matchable obj) { + return false; + } + + @Override + public String getDescription() { + return null; + } + + @Override + public VCDocumentType getDocumentType() { + return null; + } + + @Override + public String getName() { + return null; + } + + @Override + public Version getVersion() { + return null; + } + + @Override + public void refreshDependencies() { + + } + + @Override + public void setDescription(String description) + throws PropertyVetoException { + // TODO Auto-generated method stub + + } + + @Override + public void setName(String newName) throws PropertyVetoException { + // TODO Auto-generated method stub + + } + + @Override + public void gatherIssues(IssueContext issueContext, List issueList) { + // TODO Auto-generated method stub + + } + + }; + DocumentWindowManager documentWindowManager = new DocumentWindowManager(pdeDataViewer, fieldDataWindowManager.getRequestManager(), fakeVCDocument) { + + @Override + public void actionPerformed(ActionEvent e) { + // TODO Auto-generated method stub + + } + + @Override + public void simStatusChanged(SimStatusEvent simStatusEvent) { + // TODO Auto-generated method stub + + } + + @Override + public void addResultsFrame(SimulationWindow simWindow) { + // TODO Auto-generated method stub + + } + + @Override + public VCDocument getVCDocument() { + // TODO Auto-generated method stub + return null; + } + + @Override + SimulationWindow haveSimulationWindow( + VCSimulationIdentifier vcSimulationIdentifier) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void resetDocument(VCDocument newDocument) { + // TODO Auto-generated method stub + + } + + @Override + public void updateConnectionStatus(ConnectionStatus connStatus) { + // TODO Auto-generated method stub + + } + + @Override + public boolean isRecyclable() { + // TODO Auto-generated method stub + return false; + } + + @Override + public RequestManager getRequestManager() { + // TODO Auto-generated method stub + return OutputFunctionViewer.this.fieldDataWindowManager.getRequestManager(); + } + + @Override + public DocumentEditor getDocumentEditor() { + return null; + } + + }; + + SimulationWorkspace simulationWorkspace = new SimulationWorkspace(documentWindowManager, simulationOwner); + this.pdeDataViewer.setSimulationModelInfo(new SimulationWorkspaceModelInfo(simulationOwner, "temp")); + + setLayout(new BorderLayout()); + add(pdeDataViewer, BorderLayout.CENTER); + add(outputFunctionsPanel, BorderLayout.SOUTH); + outputFunctionsPanel.setSimulationWorkspace(simulationWorkspace); + } + + public PDEDataViewer getPDEDataViewer() { + return pdeDataViewer; + } + + public OutputContext getOutputContext() throws Exception { + Field outputfunctioncontextField = OutputFunctionsPanel.class.getDeclaredField("outputFunctionContext"); + outputfunctioncontextField.setAccessible(true); + OutputFunctionContext outputFunctionContext = (OutputFunctionContext) outputfunctioncontextField.get(outputFunctionsPanel); + OutputContext outputContext = new OutputContext(outputFunctionContext.getOutputFunctionsList().toArray(new AnnotatedFunction[0])); + return outputContext; + } + + private void setMathDescVariables() throws Exception { + AnnotatedFunction[] functions = this.pdeDataViewer.getPdeDataContext().getFunctions(); + for (int i = 0; i < functions.length; i++) { + if (functions[i].getFunctionType().equals(VariableType.VOLUME) && mathDescription.getVariable(functions[i].getName()) == null) { + mathDescription.addVariable(functions[i]); + } + } + DataIdentifier[] dataIds = this.pdeDataViewer.getPdeDataContext().getDataIdentifiers(); + for (int i = 0; i < dataIds.length; i++) { + if (dataIds[i].getVariableType().equals(VariableType.VOLUME) && mathDescription.getVariable(dataIds[i].getName()) == null) { + if (!dataIds[i].isFunction()) { + mathDescription.addVariable(new VolVariable(dataIds[i].getName(), dataIds[i].getDomain())); + } + } + } + } + } + + public void propertyChange(PropertyChangeEvent evt) { + if (evt.getSource() == currentlyViewedOutputFunctionViewer.getPDEDataViewer().getPdeDataContext() && + ( + evt.getPropertyName().equals(PDEDataContext.PROP_CHANGE_FUNC_ADDED) || + evt.getPropertyName().equals(PDEDataContext.PROP_CHANGE_FUNC_REMOVED) + )) { + getFieldDataGUIPanel().refreshExternalDataIdentifierNode(currentlyViewedEDI); + } + } + + + public boolean findReferencingModels(final ExternalDataIdentifier targetExtDataID, boolean bShowReferencingModelsList) + throws DataAccessException, UserCancelException { + + ReferenceQuerySpec rqs = new ReferenceQuerySpec(targetExtDataID); + + ReferenceQueryResult rqr = getRequestManager().getDocumentManager().findReferences(rqs); + VersionableTypeVersion[] dependants = null; + Hashtable choices = new Hashtable(); + boolean bDanglingReferences = false; + + VersionableType bioModelType = VersionableType.BioModelMetaData; + VersionableType mathModelType = VersionableType.MathModelMetaData; + + if (rqr != null) { + dependants = (rqr.getVersionableFamily().bDependants() ? rqr.getVersionableFamily().getUniqueDependants() : null); + if (dependants != null) { + for (int i = 0; i < dependants.length; i += 1) { + boolean isBioModel = dependants[i].getVType().equals(bioModelType); + boolean isTop = isBioModel || dependants[i].getVType().equals(mathModelType); + if (isTop) { + VersionableRelationship[] vrArr2 = rqr.getVersionableFamily().getDependantRelationships(); + for (int j = 0; j < vrArr2.length; j += 1) { + if ((vrArr2[j].from() == dependants[i]) && + vrArr2[j].to().getVType().equals((isBioModel ? VersionableType.SimulationContext : VersionableType.MathDescription))) { + for (int k = 0; k < vrArr2.length; k += 1) { + boolean bAdd = false; + if (k == j && vrArr2[k].from().getVType().equals(mathModelType)) { + bAdd = true; + } + if ((vrArr2[k].from() == vrArr2[j].to()) && + vrArr2[k].to().getVType().equals(VersionableType.MathDescription)) { + bAdd = true; + } + if (bAdd) { + choices.put(dependants[i], + new String[]{ + dependants[i].getVersion().getName(), + (isBioModel ? bioModelType.getTypeName() : mathModelType.getTypeName()), + (isBioModel ? vrArr2[k].from().getVersion().getName() : ""), + dependants[i].getVersion().getVersionKey().toString() + } + ); + } + } + } + } + } + } + bDanglingReferences = (choices.size() == 0); + } else { + bDanglingReferences = true; + } + } -public boolean findReferencingModels(final ExternalDataIdentifier targetExtDataID,boolean bShowReferencingModelsList) - throws DataAccessException,UserCancelException{ - - ReferenceQuerySpec rqs = new ReferenceQuerySpec(targetExtDataID); - - ReferenceQueryResult rqr = getRequestManager().getDocumentManager().findReferences(rqs); - VersionableTypeVersion[] dependants = null; - Hashtable choices = new Hashtable(); - boolean bDanglingReferences = false; - - VersionableType bioModelType = VersionableType.BioModelMetaData; - VersionableType mathModelType = VersionableType.MathModelMetaData; - - if(rqr != null){ - dependants = (rqr.getVersionableFamily().bDependants()?rqr.getVersionableFamily().getUniqueDependants():null); - if(dependants != null){ - for(int i=0;i 0 || fdfor != null){ - bHasReferences = true; - if(bShowReferencingModelsList){ - String[] columnNames = new String[] {"Model","Type","Description"}; - Vector varTypeV = new Vector(); - Vector keyValV = new Vector(); - Vector choicesV= new Vector(); - String[][] modelListData = choices.values().toArray(new String[0][0]); - for (int i = 0; i < modelListData.length; i++) { - choicesV.add(new String[]{modelListData[i][0], modelListData[i][1], - "Model Variable - "+(modelListData[i][2].length() == 0?"":"App='"+modelListData[i][2]+"'")+" version["+modelListData[i][3]+"]" - } - ); - varTypeV.add((modelListData[i][1].equals(bioModelType.getTypeName())?bioModelType:mathModelType)); - keyValV.add(new KeyValue(modelListData[i][3])); - } - for (int i = 0; fdfor != null && i < fdfor.dependantFunctionInfo.length; i++) { - String functionNames = ""; - for (int j = 0; j < fdfor.dependantFunctionInfo[i].funcNames.length; j++) { - functionNames+=(j>0?",":"")+fdfor.dependantFunctionInfo[i].funcNames[j]; - } - choicesV.add(new String[] { - fdfor.dependantFunctionInfo[i].referenceSourceName, - fdfor.dependantFunctionInfo[i].referenceSourceType, - "Data Viewer Function(s) '"+functionNames+"' - "+ - (fdfor.dependantFunctionInfo[i].applicationName == null?"":"App='"+fdfor.dependantFunctionInfo[i].applicationName+"' ")+ - (fdfor.dependantFunctionInfo[i].simulationName == null?"":"Sim='"+fdfor.dependantFunctionInfo[i].simulationName+"' ")+ - "version["+fdfor.dependantFunctionInfo[i].refSourceVersionDate+"]" - } - ); - if(fdfor.dependantFunctionInfo[i].referenceSourceType.equals(FieldDataFileOperationResults.FieldDataReferenceInfo.FIELDDATATYPENAME)){ - varTypeV.add(null); - }else if(fdfor.dependantFunctionInfo[i].referenceSourceType.equals(bioModelType.getTypeName())){ - varTypeV.add(bioModelType); - }else if(fdfor.dependantFunctionInfo[i].referenceSourceType.equals(mathModelType.getTypeName())){ - varTypeV.add(mathModelType); - }else{ - throw new IllegalArgumentException("Unknown reference source type "+fdfor.dependantFunctionInfo[i].referenceSourceType); - } - keyValV.add(fdfor.dependantFunctionInfo[i].refSourceVersionKey); - } - int[] selectionArr = PopupGenerator.showComponentOKCancelTableList( - getComponent(), "References to Field Data (Select To Open) "+targetExtDataID.getName(), - columnNames, choicesV.toArray(new String[0][0]), ListSelectionModel.SINGLE_SELECTION); - if(selectionArr != null && selectionArr.length > 0){ - if(varTypeV.elementAt(selectionArr[0]) != null){ - if(varTypeV.elementAt(selectionArr[0]).equals(bioModelType)){ - BioModelInfo bmi = getRequestManager().getDocumentManager().getBioModelInfo(keyValV.elementAt(selectionArr[0])); - getRequestManager().openDocument(bmi,FieldDataWindowManager.this,true); - }else if(varTypeV.elementAt(selectionArr[0]).equals(mathModelType)){ - MathModelInfo mmi = getRequestManager().getDocumentManager().getMathModelInfo(keyValV.elementAt(selectionArr[0])); - getRequestManager().openDocument(mmi,FieldDataWindowManager.this,true); - }else{ - throw new IllegalArgumentException("Not expecting varType "+varTypeV.elementAt(selectionArr[0])); - } - }else{ - PopupGenerator.showInfoDialog(this, "use FiledDataManager to view FieldData '" + choicesV.elementAt(selectionArr[0])[0]+"'"); - } - } - } - }else{ - if(!bDanglingReferences){ - bHasReferences = false; - if(bShowReferencingModelsList){ - PopupGenerator.showInfoDialog(this, "No Model references found for Field Data "+targetExtDataID.getName()); - } - }else{ - bHasReferences = true; - if(bShowReferencingModelsList){ - PopupGenerator.showInfoDialog(this, "No current Model references found.\n"+ - "Field Data has internal database references from\n"+ - "previously linked Model(s) that have been deleted.\n"+ - "Note: Field Data '"+targetExtDataID.getName()+"' is not deletable\n"+ - "until database is culled (daily)."); - } - } - } - return bHasReferences; -} -public void fieldDataDBEvent(FieldDataDBEvent fieldDataDBEvent) { - updateJTree(); - -} + FieldDataFileOperationResults fdfor = null; + + boolean bHasReferences = false; + if (choices.size() > 0 || fdfor != null) { + bHasReferences = true; + if (bShowReferencingModelsList) { + String[] columnNames = new String[]{"Model", "Type", "Description"}; + Vector varTypeV = new Vector(); + Vector keyValV = new Vector(); + Vector choicesV = new Vector(); + String[][] modelListData = choices.values().toArray(new String[0][0]); + for (int i = 0; i < modelListData.length; i++) { + choicesV.add(new String[]{modelListData[i][0], modelListData[i][1], + "Model Variable - " + (modelListData[i][2].length() == 0 ? "" : "App='" + modelListData[i][2] + "'") + " version[" + modelListData[i][3] + "]" + } + ); + varTypeV.add((modelListData[i][1].equals(bioModelType.getTypeName()) ? bioModelType : mathModelType)); + keyValV.add(new KeyValue(modelListData[i][3])); + } + for (int i = 0; fdfor != null && i < fdfor.dependantFunctionInfo.length; i++) { + String functionNames = ""; + for (int j = 0; j < fdfor.dependantFunctionInfo[i].funcNames.length; j++) { + functionNames += (j > 0 ? "," : "") + fdfor.dependantFunctionInfo[i].funcNames[j]; + } + choicesV.add(new String[]{ + fdfor.dependantFunctionInfo[i].referenceSourceName, + fdfor.dependantFunctionInfo[i].referenceSourceType, + "Data Viewer Function(s) '" + functionNames + "' - " + + (fdfor.dependantFunctionInfo[i].applicationName == null ? "" : "App='" + fdfor.dependantFunctionInfo[i].applicationName + "' ") + + (fdfor.dependantFunctionInfo[i].simulationName == null ? "" : "Sim='" + fdfor.dependantFunctionInfo[i].simulationName + "' ") + + "version[" + fdfor.dependantFunctionInfo[i].refSourceVersionDate + "]" + } + ); + if (fdfor.dependantFunctionInfo[i].referenceSourceType.equals(FieldDataFileOperationResults.FieldDataReferenceInfo.FIELDDATATYPENAME)) { + varTypeV.add(null); + } else if (fdfor.dependantFunctionInfo[i].referenceSourceType.equals(bioModelType.getTypeName())) { + varTypeV.add(bioModelType); + } else if (fdfor.dependantFunctionInfo[i].referenceSourceType.equals(mathModelType.getTypeName())) { + varTypeV.add(mathModelType); + } else { + throw new IllegalArgumentException("Unknown reference source type " + fdfor.dependantFunctionInfo[i].referenceSourceType); + } + keyValV.add(fdfor.dependantFunctionInfo[i].refSourceVersionKey); + } + int[] selectionArr = PopupGenerator.showComponentOKCancelTableList( + getComponent(), "References to Field Data (Select To Open) " + targetExtDataID.getName(), + columnNames, choicesV.toArray(new String[0][0]), ListSelectionModel.SINGLE_SELECTION); + if (selectionArr != null && selectionArr.length > 0) { + if (varTypeV.elementAt(selectionArr[0]) != null) { + if (varTypeV.elementAt(selectionArr[0]).equals(bioModelType)) { + BioModelInfo bmi = getRequestManager().getDocumentManager().getBioModelInfo(keyValV.elementAt(selectionArr[0])); + getRequestManager().openDocument(bmi, FieldDataWindowManager.this, true); + } else if (varTypeV.elementAt(selectionArr[0]).equals(mathModelType)) { + MathModelInfo mmi = getRequestManager().getDocumentManager().getMathModelInfo(keyValV.elementAt(selectionArr[0])); + getRequestManager().openDocument(mmi, FieldDataWindowManager.this, true); + } else { + throw new IllegalArgumentException("Not expecting varType " + varTypeV.elementAt(selectionArr[0])); + } + } else { + PopupGenerator.showInfoDialog(this, "use FiledDataManager to view FieldData '" + choicesV.elementAt(selectionArr[0])[0] + "'"); + } + } + } + } else { + if (!bDanglingReferences) { + bHasReferences = false; + if (bShowReferencingModelsList) { + PopupGenerator.showInfoDialog(this, "No Model references found for Field Data " + targetExtDataID.getName()); + } + } else { + bHasReferences = true; + if (bShowReferencingModelsList) { + PopupGenerator.showInfoDialog(this, "No current Model references found.\n" + + "Field Data has internal database references from\n" + + "previously linked Model(s) that have been deleted.\n" + + "Note: Field Data '" + targetExtDataID.getName() + "' is not deletable\n" + + "until database is culled (daily)."); + } + } + } + return bHasReferences; + } + + public void fieldDataDBEvent(FieldDataDBEvent fieldDataDBEvent) { + updateJTree(); + + } } diff --git a/vcell-client/src/main/java/cbit/vcell/field/gui/FieldDataGUIDataTransferObjects.java b/vcell-client/src/main/java/cbit/vcell/field/gui/FieldDataGUIDataTransferObjects.java new file mode 100644 index 0000000000..8d677a9772 --- /dev/null +++ b/vcell-client/src/main/java/cbit/vcell/field/gui/FieldDataGUIDataTransferObjects.java @@ -0,0 +1,155 @@ +package cbit.vcell.field.gui; + +import cbit.vcell.math.VariableType; +import cbit.vcell.simdata.DataIdentifier; +import org.vcell.util.Extent; +import org.vcell.util.ISize; +import org.vcell.util.Origin; +import org.vcell.util.document.ExternalDataIdentifier; +import org.vcell.util.document.KeyValue; + +class FieldDataGUIDataTransferObjects { + + + static class FieldDataIDList { + // public KeyValue key = null; + private final String descr; + + public FieldDataIDList(KeyValue k) { +// this.key = k; + this.descr = "Key (" + k + ")"; + } + + public String toString() { + return descr; + } + } + + static class FieldDataISizeList { + public ISize isize; + private final String descr; + + public FieldDataISizeList(ISize arg) { + isize = arg; + descr = "Size ( " + + isize.getX() + " , " + + isize.getY() + " , " + + isize.getZ() + " )"; + } + + public String toString() { + return descr; + } + } + + static class FieldDataMainList { + public ExternalDataIdentifier externalDataIdentifier; + public String extDataAnnot; + + public FieldDataMainList(ExternalDataIdentifier argExternalDataIdentifier, String argExtDataAnnot) { + externalDataIdentifier = argExternalDataIdentifier; + extDataAnnot = argExtDataAnnot; + } + + public String toString() { + return externalDataIdentifier.getName(); + } + } + + static class FieldDataOriginList { + public Origin origin; + private final String descr; + + public FieldDataOriginList(Origin arg) { + origin = arg; + descr = "Origin ( " + + origin.getX() + " , " + + origin.getY() + " , " + + origin.getZ() + " )"; + } + + public String toString() { + return descr; + } + } + + static class FieldDataTimeList { + public double[] times; + private final String descr; + + public FieldDataTimeList(double[] argTimes) { + times = argTimes; + descr = + "Times ( " + times.length + " ) Begin=" + times[0] + + " End=" + times[times.length - 1]; + } + + public String toString() { + return descr; + } + } + + static class FieldDataVarList { + public DataIdentifier dataIdentifier; + private final String descr; + + public FieldDataVarList(DataIdentifier argDataIdentifier) { + dataIdentifier = argDataIdentifier; + if (dataIdentifier.getVariableType().compareEqual(VariableType.VOLUME) || + dataIdentifier.getVariableType().compareEqual(VariableType.VOLUME_REGION)) { + descr = "(Vol" + (dataIdentifier.isFunction() ? "Fnc" : "") + ") " + dataIdentifier.getName(); + } else if (dataIdentifier.getVariableType().compareEqual(VariableType.MEMBRANE) || + dataIdentifier.getVariableType().compareEqual(VariableType.MEMBRANE_REGION)) { + descr = "(Mem" + (dataIdentifier.isFunction() ? "Fnc" : "") + ") " + dataIdentifier.getName(); + } else { + descr = "(---" + (dataIdentifier.isFunction() ? "Fnc" : "") + ") " + dataIdentifier.getName(); + } + } + + public String toString() { + return descr; + } + } + + static class FieldDataVarMainList { + public static final String LIST_NODE_VAR_LABEL = "Variables"; + + public FieldDataVarMainList() { + } + + public String toString() { + return LIST_NODE_VAR_LABEL; + } + } + + static class InitializedRootNode { + private final String rootNodeString; + + public InitializedRootNode(String argRNS) { + rootNodeString = argRNS; + } + + public String toString() { + return rootNodeString; + } + } + + static class FieldDataExtentList { + public Extent extent; + private final String descr; + + public FieldDataExtentList(Extent arg) { + extent = arg; + descr = "Extent ( " + + extent.getX() + " , " + + extent.getY() + " , " + + extent.getZ() + " )"; + } + + public String toString() { + return descr; + } + } + + +} diff --git a/vcell-client/src/main/java/cbit/vcell/field/gui/FieldDataGUIPanel.java b/vcell-client/src/main/java/cbit/vcell/field/gui/FieldDataGUIPanel.java index b9e264192f..7f032d4ead 100644 --- a/vcell-client/src/main/java/cbit/vcell/field/gui/FieldDataGUIPanel.java +++ b/vcell-client/src/main/java/cbit/vcell/field/gui/FieldDataGUIPanel.java @@ -10,56 +10,7 @@ package cbit.vcell.field.gui; -import java.awt.Component; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.MouseEvent; -import java.io.File; -import java.util.Arrays; -import java.util.Comparator; -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.Map.Entry; -import java.util.TreeMap; -import java.util.zip.DataFormatException; - -import javax.swing.BoxLayout; -import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JFileChooser; -import javax.swing.JLabel; -import javax.swing.JMenuItem; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JPopupMenu; -import javax.swing.event.TreeExpansionListener; -import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.tree.DefaultTreeModel; -import javax.swing.tree.TreePath; - -import org.vcell.util.BeanUtils; -import org.vcell.util.Extent; -import org.vcell.util.ISize; -import org.vcell.util.Origin; -import org.vcell.util.TokenMangler; -import org.vcell.util.UserCancelException; -import org.vcell.util.document.ExternalDataIdentifier; -import org.vcell.util.document.KeyValue; -import org.vcell.util.document.VCDocument; -import org.vcell.util.document.Version; -import org.vcell.util.gui.DialogUtils; -import org.vcell.util.gui.exporter.FileFilters; - -import cbit.image.VCImageUncompressed; -import cbit.vcell.client.ClientRequestManager; -import cbit.vcell.client.DatabaseWindowManager; -import cbit.vcell.client.FieldDataWindowManager; -import cbit.vcell.client.PopupGenerator; -import cbit.vcell.client.RequestManager; +import cbit.vcell.client.*; import cbit.vcell.client.TopLevelWindowManager.FDSimBioModelInfo; import cbit.vcell.client.TopLevelWindowManager.FDSimMathModelInfo; import cbit.vcell.client.TopLevelWindowManager.OpenModelInfoHolder; @@ -70,1792 +21,1361 @@ import cbit.vcell.desktop.VCellTransferable; import cbit.vcell.field.FieldDataDBOperationResults; import cbit.vcell.field.FieldDataDBOperationSpec; +import cbit.vcell.field.FieldDataFileConversion; +import cbit.vcell.field.gui.FieldDataGUIDataTransferObjects.*; import cbit.vcell.field.io.FieldDataFileOperationResults; import cbit.vcell.field.io.FieldDataFileOperationSpec; import cbit.vcell.geometry.Geometry; -import cbit.vcell.geometry.RegionImage; import cbit.vcell.math.VariableType; import cbit.vcell.server.SimulationStatus; import cbit.vcell.simdata.DataIdentifier; import cbit.vcell.simdata.SimulationData; import cbit.vcell.solver.SimulationInfo; -import cbit.vcell.solvers.CartesianMesh; - -public class FieldDataGUIPanel extends JPanel{ - - private static final String FIELD_DATA_INFO = "Field Data Info"; - public static final String FIELD_NAME = "fieldName"; - public static final String USER_DEFINED_FDOS = "userDefinedFDOS"; - final int modePslidExperimentalData = 0; - final int modePslidGeneratedModel = 1; - // - public static final String LIST_NODE_VAR_LABEL = "Variables"; - // - private JPopupMenu jPopupMenu = new JPopupMenu(); - private static final int COPY_CSV = 0; - private static final int COPY_NL = 1; - private static final int COPY_CRNL = 2; - private static final int COPY_SPACE = 3; - // - private class InitializedRootNode { - private String rootNodeString; - public InitializedRootNode(String argRNS){ - rootNodeString = argRNS; - } - public String toString(){ - return rootNodeString; - } - } - - private static class FieldDataMainList { - public ExternalDataIdentifier externalDataIdentifier; - public String extDataAnnot; - public FieldDataMainList(ExternalDataIdentifier argExternalDataIdentifier,String argExtDataAnnot){ - externalDataIdentifier = argExternalDataIdentifier; - extDataAnnot = argExtDataAnnot; - } - public String toString(){ - return externalDataIdentifier.getName(); - } - } - - private static class FieldDataVarMainList { - public FieldDataVarMainList(){ - } - public String toString(){ - return LIST_NODE_VAR_LABEL; - } - } - - private class FieldDataVarList { - public DataIdentifier dataIdentifier; - private String descr; - public FieldDataVarList(DataIdentifier argDataIdentifier){ - dataIdentifier = argDataIdentifier; - if(dataIdentifier.getVariableType().compareEqual(VariableType.VOLUME)|| - dataIdentifier.getVariableType().compareEqual(VariableType.VOLUME_REGION)){ - descr = "(Vol"+(dataIdentifier.isFunction()?"Fnc":"")+") "+dataIdentifier.getName(); - }else if(dataIdentifier.getVariableType().compareEqual(VariableType.MEMBRANE) || - dataIdentifier.getVariableType().compareEqual(VariableType.MEMBRANE_REGION)){ - descr = "(Mem"+(dataIdentifier.isFunction()?"Fnc":"")+") "+dataIdentifier.getName(); - }else{ - descr = "(---"+(dataIdentifier.isFunction()?"Fnc":"")+") "+dataIdentifier.getName(); - } - } - public String toString(){ - return descr; - } - } - - private class FieldDataTimeList { - public double[] times; - private String descr; - public FieldDataTimeList(double[] argTimes){ - times = argTimes; - descr = - "Times ( "+times.length+" ) Begin="+times[0]+ - " End="+times[times.length-1]; - } - public String toString(){ - return descr; - } - } - - private class FieldDataIDList { -// public KeyValue key = null; - private String descr; - public FieldDataIDList(KeyValue k){ -// this.key = k; - this.descr ="Key (" + k + ")"; - } - public String toString(){ - return descr; - } - } - - private class FieldDataISizeList { - public ISize isize; - private String descr; - public FieldDataISizeList(ISize arg){ - isize = arg; - descr ="Size ( "+ - isize.getX()+" , "+ - isize.getY()+" , "+ - isize.getZ()+" )"; - } - public String toString(){ - return descr; - } - } - - private class FieldDataOriginList { - public Origin origin; - private String descr; - public FieldDataOriginList(Origin arg){ - origin = arg; - descr ="Origin ( "+ - origin.getX()+" , "+ - origin.getY()+" , "+ - origin.getZ()+" )"; - } - public String toString(){ - return descr; - } - } - - private class FieldDataExtentList { - public Extent extent; - private String descr; - public FieldDataExtentList(Extent arg){ - extent = arg; - descr ="Extent ( "+ - extent.getX()+" , "+ - extent.getY()+" , "+ - extent.getZ()+" )"; - } - public String toString(){ - return descr; - } - } - - - private FieldDataWindowManager fieldDataWindowManager; - // - private javax.swing.JButton ivjJButtonFDDelete = null; - private javax.swing.JPanel ivjJPanel1 = null; - private javax.swing.JPanel normalTopPanel = null; - private javax.swing.JButton ivjJButtonFDView = null; - private javax.swing.JTree ivjJTree1 = null; - IvjEventHandler ivjEventHandler = new IvjEventHandler(); - private javax.swing.JScrollPane ivjJScrollPane1 = null; - private javax.swing.JButton ivjJButtonFDCopyRef = null; - private JButton jButtonFindRefModel = null; - private JPanel jPanel = null; - private JButton jButtonCreateGeom = null; - private JPanel jPanel1 = null; - private JButton jButtonViewAnnot = null; - class IvjEventHandler implements ActionListener,TreeExpansionListener, javax.swing.event.TreeSelectionListener { - public void actionPerformed(java.awt.event.ActionEvent e) { - if (e.getSource() == FieldDataGUIPanel.this.getJButtonFDDelete()) - connEtoC7(e); - if (e.getSource() == FieldDataGUIPanel.this.getJButtonFDCopyRef()) - connEtoC8(e); - if (e.getSource() == FieldDataGUIPanel.this.getJButtonFDView()) - connEtoC10(e); - if (e.getSource() == FieldDataGUIPanel.this.getJButtonFDCreate()) - if(getCreateJComboBox().getSelectedItem().equals(FROM_SIM)){ - jButtonFDFromSim_ActionPerformed(e); - }else if(getCreateJComboBox().getSelectedItem().equals(FROM_FILE)){ - jButtonFDFromFile_ActionPerformed(e); - } -// else if(getCreateJComboBox().getSelectedItem().equals(FROM_IMAGEJ)){ -// fromImageJ(); -// } - }; - public void treeCollapsed(javax.swing.event.TreeExpansionEvent event) {}; - public void treeExpanded(javax.swing.event.TreeExpansionEvent event) { - if (event.getSource() == FieldDataGUIPanel.this.getJTree1()) - connEtoC6(event); - }; - public void valueChanged(javax.swing.event.TreeSelectionEvent e) { - if (e.getSource() == FieldDataGUIPanel.this.getJTree1()) - connEtoC2(e); - }; - }; - -/** - * FieldDataGUIPanel constructor comment. - */ -public FieldDataGUIPanel() { - super(); - initialize(); -} - -/** - * connEtoC1: (FieldDataGUIPanel.initialize() --> FieldDataGUIPanel.fieldDataGUIPanel_Initialize()V) - */ -/* WARNING: THIS METHOD WILL BE REGENERATED. */ -private void connEtoC1() { - try { - // user code begin {1} - // user code end - this.fieldDataGUIPanel_Initialize(); - // user code begin {2} - // user code end - } catch (java.lang.Throwable ivjExc) { - // user code begin {3} - // user code end - handleException(ivjExc); - } -} - - -/** - * connEtoC2: (JTree1.treeSelection.valueChanged(javax.swing.event.TreeSelectionEvent) --> FieldDataGUIPanel.jTree1_ValueChanged(Ljavax.swing.event.TreeSelectionEvent;)V) - * @param arg1 javax.swing.event.TreeSelectionEvent - */ -/* WARNING: THIS METHOD WILL BE REGENERATED. */ -private void connEtoC2(javax.swing.event.TreeSelectionEvent arg1) { - try { - // user code begin {1} - // user code end - this.jTree1_ValueChanged(arg1); - // user code begin {2} - // user code end - } catch (java.lang.Throwable ivjExc) { - // user code begin {3} - // user code end - handleException(ivjExc); - } -} - - -private void connEtoC6(javax.swing.event.TreeExpansionEvent arg1) { - try { - // user code begin {1} - // user code end - this.jTree1_TreeExpanded(arg1); - // user code begin {2} - // user code end - } catch (java.lang.Throwable ivjExc) { - // user code begin {3} - // user code end - handleException(ivjExc); - } -} - -private void connEtoC7(java.awt.event.ActionEvent arg1) { - try { - // user code begin {1} - // user code end - this.jButtonFDDelete_ActionPerformed(arg1); - // user code begin {2} - // user code end - } catch (java.lang.Throwable ivjExc) { - // user code begin {3} - // user code end - handleException(ivjExc); - } -} - -private void connEtoC8(java.awt.event.ActionEvent arg1) { - try { - // user code begin {1} - // user code end - this.jButtonFDCopyRef_ActionPerformed(arg1); - // user code begin {2} - // user code end - } catch (java.lang.Throwable ivjExc) { - // user code begin {3} - // user code end - handleException(ivjExc); - } -} - -private void copyMethod(int copyMode){ - String delimiter = ""; - if(copyMode == COPY_NL){ - delimiter = "\n"; - }else if(copyMode == COPY_CRNL){ - delimiter = "\r\n"; - }else if(copyMode == COPY_CSV){ - delimiter = ","; - }else if(copyMode == COPY_SPACE){ - delimiter = " "; - } - String copyString = ""; - javax.swing.tree.TreePath selPath = getJTree1().getSelectionPath(); - if(selPath != null){ - javax.swing.tree.DefaultMutableTreeNode lastPathComponent = (javax.swing.tree.DefaultMutableTreeNode)selPath.getLastPathComponent(); - if(lastPathComponent.equals(getJTree1().getModel().getRoot())){ - int childCount = lastPathComponent.getChildCount(); - for(int i=0;i 0 ){ - VCellTransferable.sendToClipboard(copyString); - } - } -} - -private void connEtoC10(java.awt.event.ActionEvent arg1) { - try { - // user code begin {1} - // user code end - this.jButtonFDView_ActionPerformed(arg1); - // user code begin {2} - // user code end - } catch (java.lang.Throwable ivjExc) { - // user code begin {3} - // user code end - handleException(ivjExc); - } -} - -/** - * Comment - */ -private void fieldDataGUIPanel_Initialize() { - - getJTree1().getSelectionModel().setSelectionMode(javax.swing.tree.TreeSelectionModel.SINGLE_TREE_SELECTION); - - JMenuItem copyMenuItem = new JMenuItem("Copy"); - copyMenuItem.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent e) { - copyMethod(COPY_SPACE); - } - }); - JMenuItem copyCSVMenuItem = new JMenuItem("Copy w/ Commas"); - copyCSVMenuItem.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent e) { - copyMethod(COPY_CSV); - } - }); - JMenuItem copyNewLineMenuItem = new JMenuItem("Copy w/ LF"); - copyNewLineMenuItem.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent e) { - copyMethod(COPY_NL); - } - }); - JMenuItem copyReturnNewLineMenuItem = new JMenuItem("Copy w/ CRLF"); - copyReturnNewLineMenuItem.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent e) { - copyMethod(COPY_CRNL); - } - }); - -} - -public void updateJTree(final RequestManager clientRequestManager){ - - if(clientRequestManager == null){ - DefaultMutableTreeNode emptyNode = new DefaultMutableTreeNode("No Info Available"); - getJTree1().setModel(new DefaultTreeModel(emptyNode)); - }else{ - DefaultMutableTreeNode startupNode = new DefaultMutableTreeNode("Gathering Field Data Information... (Please wait)"); - getJTree1().setModel(new DefaultTreeModel(startupNode)); - AsynchClientTask gatherInfo = new AsynchClientTask("gatherInfo", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { - - @Override - public void run(Hashtable hashTable) throws Exception { - try { - DocumentManager documentManager = clientRequestManager.getDocumentManager(); - FieldDataDBOperationSpec fdos = FieldDataDBOperationSpec.createGetExtDataIDsSpec(documentManager.getUser()); - FieldDataDBOperationResults fieldDataDBOperationResults = documentManager.fieldDataDBOperation(fdos); - - ExternalDataIdentifier[] externalDataIdentifierArr = fieldDataDBOperationResults.extDataIDArr; - String[] extDataAnnotArr = fieldDataDBOperationResults.extDataAnnotArr; - - TreeMap sortedExtDataIDTreeMap = new TreeMap( - new Comparator() { - public int compare(ExternalDataIdentifier o1, ExternalDataIdentifier o2) { - return o1.getName().compareToIgnoreCase(o2.getName()); - } - } - ); - for(int i=0;i> sortIter = sortedExtDataIDTreeMap.entrySet().iterator(); - while(sortIter.hasNext()){ - Entry entry = sortIter.next(); - DefaultMutableTreeNode mainNode = new DefaultMutableTreeNode(new FieldDataMainList(entry.getKey(),entry.getValue())); - mainNode.add(new DefaultMutableTreeNode(new FieldDataVarMainList())); - rootNode.add(mainNode); - } - hashTable.put("rootNode", rootNode); - }catch(Exception e){ - DefaultMutableTreeNode errorNode = new DefaultMutableTreeNode("Error Getting Field Data Information"); - hashTable.put("rootNode", errorNode); - throw e; - } - } - }; - AsynchClientTask updateTree = new AsynchClientTask("updateTree", AsynchClientTask.TASKTYPE_SWING_BLOCKING) { - - @Override - public void run(Hashtable hashTable) throws Exception { - DefaultMutableTreeNode rootNode = (DefaultMutableTreeNode)hashTable.get("rootNode"); - getJTree1().setModel(new DefaultTreeModel(rootNode)); - } - }; - ClientTaskDispatcher.dispatch(this, new Hashtable(), new AsynchClientTask[] {gatherInfo, updateTree}); - } -} - - -/** - * Return the JButtonFDCopyRef property value. - * @return javax.swing.JButton - */ -/* WARNING: THIS METHOD WILL BE REGENERATED. */ -private javax.swing.JButton getJButtonFDCopyRef() { - if (ivjJButtonFDCopyRef == null) { - try { - ivjJButtonFDCopyRef = new javax.swing.JButton(); - ivjJButtonFDCopyRef.setName("JButtonFDCopyRef"); - ivjJButtonFDCopyRef.setText("Copy Func"); - ivjJButtonFDCopyRef.setEnabled(false); - // user code begin {1} - // user code end - } catch (java.lang.Throwable ivjExc) { - // user code begin {2} - // user code end - handleException(ivjExc); - } - } - return ivjJButtonFDCopyRef; -} - -/** - * Return the JButtonFDDelete property value. - * @return javax.swing.JButton - */ -/* WARNING: THIS METHOD WILL BE REGENERATED. */ -private javax.swing.JButton getJButtonFDDelete() { - if (ivjJButtonFDDelete == null) { - try { - ivjJButtonFDDelete = new javax.swing.JButton(); - ivjJButtonFDDelete.setName("JButtonFDDelete"); - ivjJButtonFDDelete.setText("Delete"); - ivjJButtonFDDelete.setEnabled(false); - // user code begin {1} - // user code end - } catch (java.lang.Throwable ivjExc) { - // user code begin {2} - // user code end - handleException(ivjExc); - } - } - return ivjJButtonFDDelete; -} - -private JButton ivjJButtonFDCreate; -/** - * Return the JButtonFDFromFile property value. - * @return javax.swing.JButton - */ -/* WARNING: THIS METHOD WILL BE REGENERATED. */ -private JButton getJButtonFDCreate() { - if (ivjJButtonFDCreate == null) { - try { - ivjJButtonFDCreate = new javax.swing.JButton(); - ivjJButtonFDCreate.setName("JButtonFDFromCreate"); - ivjJButtonFDCreate.setText("Create..."); - // user code begin {1} - // user code end - } catch (java.lang.Throwable ivjExc) { - // user code begin {2} - // user code end - handleException(ivjExc); - } - } - return ivjJButtonFDCreate; -} - -private JComboBox jComboBoxCreate; -private static final String FROM_FILE = "from File"; -private static final String FROM_SIM = "from Simulation"; -//private static final String FROM_IMAGEJ = "from ImageJ"; -private JComboBox getCreateJComboBox(){ - if(jComboBoxCreate == null){ - jComboBoxCreate = new JComboBox(new Object[] {FROM_FILE,FROM_SIM/*,FROM_IMAGEJ*/}); - } - return jComboBoxCreate; -} - -/** - * Return the JButtonFDView property value. - * @return javax.swing.JButton - */ -/* WARNING: THIS METHOD WILL BE REGENERATED. */ -private javax.swing.JButton getJButtonFDView() { - if (ivjJButtonFDView == null) { - try { - ivjJButtonFDView = new javax.swing.JButton(); - ivjJButtonFDView.setName("JButtonFDView"); - ivjJButtonFDView.setText("View..."); - ivjJButtonFDView.setEnabled(false); - // user code begin {1} - // user code end - } catch (java.lang.Throwable ivjExc) { - // user code begin {2} - // user code end - handleException(ivjExc); - } - } - return ivjJButtonFDView; -} - -/** - * Return the JPanel1 property value. - * @return javax.swing.JPanel - */ -/* WARNING: THIS METHOD WILL BE REGENERATED. */ -private javax.swing.JPanel getJPanel1() { - if (ivjJPanel1 == null) { - try { - org.vcell.util.gui.TitledBorderBean ivjLocalBorder; - ivjLocalBorder = new org.vcell.util.gui.TitledBorderBean(); - ivjLocalBorder.setTitleFont(new java.awt.Font("Arial", 1, 14)); - ivjLocalBorder.setTitle("Create New Field Data"); - ivjJPanel1 = new javax.swing.JPanel(); - ivjJPanel1.setName("JPanel1"); - ivjJPanel1.setBorder(ivjLocalBorder); - final java.awt.GridBagLayout gridBagLayout = new java.awt.GridBagLayout(); - gridBagLayout.rowHeights = new int[] {0,0,7}; - ivjJPanel1.setLayout(gridBagLayout); - - java.awt.GridBagConstraints constraintsJButtonFDFromFile = new java.awt.GridBagConstraints(); - constraintsJButtonFDFromFile.gridx = 1; constraintsJButtonFDFromFile.gridy = 1; - constraintsJButtonFDFromFile.fill = java.awt.GridBagConstraints.HORIZONTAL; - constraintsJButtonFDFromFile.weightx = 1.0; - constraintsJButtonFDFromFile.insets = new java.awt.Insets(4, 4, 4, 4); - getJPanel1().add(getJButtonFDCreate(), constraintsJButtonFDFromFile); - - java.awt.GridBagConstraints constraintsJButtonFDFromSim = new java.awt.GridBagConstraints(); - constraintsJButtonFDFromSim.gridx = 2; constraintsJButtonFDFromSim.gridy = 1; - constraintsJButtonFDFromSim.fill = java.awt.GridBagConstraints.HORIZONTAL; - constraintsJButtonFDFromSim.weightx = 1.0; - constraintsJButtonFDFromSim.insets = new java.awt.Insets(4, 4, 4, 4); - getJPanel1().add(getCreateJComboBox(), constraintsJButtonFDFromSim); - - // user code begin {1} - // user code end - } catch (java.lang.Throwable ivjExc) { - // user code begin {2} - // user code end - handleException(ivjExc); - } - } - return ivjJPanel1; -} - - -/** - * Return the JPanel2 property value. - * @return javax.swing.JPanel - */ -/* WARNING: THIS METHOD WILL BE REGENERATED. */ -private javax.swing.JPanel getNormalTopPanel() { - if (normalTopPanel == null) { - try { - GridBagConstraints gridBagConstraints4 = new GridBagConstraints(); - gridBagConstraints4.gridx = 2; - gridBagConstraints4.gridy = 1; - GridBagConstraints gridBagConstraints21 = new GridBagConstraints(); - gridBagConstraints21.gridx = 2; - gridBagConstraints21.gridy = 0; - normalTopPanel = new javax.swing.JPanel(); - normalTopPanel.setName("normalTopPanel"); - normalTopPanel.setLayout(new java.awt.GridBagLayout()); - - java.awt.GridBagConstraints constraintsJPanel1 = new java.awt.GridBagConstraints(); - constraintsJPanel1.gridx = 0; constraintsJPanel1.gridy = 0; -constraintsJPanel1.gridheight = 2; - constraintsJPanel1.fill = java.awt.GridBagConstraints.BOTH; - constraintsJPanel1.insets = new java.awt.Insets(4, 4, 4, 4); - getNormalTopPanel().add(getJPanel1(), constraintsJPanel1); - - java.awt.GridBagConstraints constraintsJButtonFDDelete = new java.awt.GridBagConstraints(); - constraintsJButtonFDDelete.gridx = 1; constraintsJButtonFDDelete.gridy = 0; - constraintsJButtonFDDelete.fill = java.awt.GridBagConstraints.HORIZONTAL; - constraintsJButtonFDDelete.weightx = 0.0; - constraintsJButtonFDDelete.insets = new java.awt.Insets(4, 4, 4, 4); - java.awt.GridBagConstraints constraintsJButtonFDView = new java.awt.GridBagConstraints(); - constraintsJButtonFDView.gridx = 1; constraintsJButtonFDView.gridy = 1; - constraintsJButtonFDView.gridwidth = 1; - constraintsJButtonFDView.fill = java.awt.GridBagConstraints.HORIZONTAL; - constraintsJButtonFDView.insets = new java.awt.Insets(4, 4, 4, 4); - normalTopPanel.add(getJButtonFDDelete(), constraintsJButtonFDDelete); - normalTopPanel.add(getJButtonFDView(), constraintsJButtonFDView); - normalTopPanel.add(getJPanel(), gridBagConstraints21); - normalTopPanel.add(getJPanel12(), gridBagConstraints4); - } catch (java.lang.Throwable ivjExc) { - handleException(ivjExc); - } - } - return normalTopPanel; -} - -public static final int DISPLAY_NORMAL = 0; -public static final int DISPLAY_DATASYMBOLS = 1; -private int displayMode = DISPLAY_NORMAL; -private JPanel dataSymbolsJPanel = null; -private JButton dsAnnotButton = new JButton(); -private JButton dsViewButton = new JButton(); -private JButton dsDataSymbolButton = new JButton(); -public int getDisplayMode(){ - return displayMode; -} -private void setDisplayMode(int newDisplayMode){ - displayMode = newDisplayMode; - if(newDisplayMode == DISPLAY_DATASYMBOLS){ - for (int i = 0; i < getComponentCount(); i++) { - if(getComponent(i) == getNormalTopPanel()){ - remove(getComponent(i)); - break; - }else if(getComponent(i) == dataSymbolsJPanel){ - return; - } - } - if(dataSymbolsJPanel == null){ - dataSymbolsJPanel = new JPanel(); - dataSymbolsJPanel.setName("dataSymbolsPanel"); - //View Button - //JButton viewButton = new JButton(); - dsViewButton.setText("View..."); - dsViewButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - jButtonFDView_ActionPerformed(e); - } - }); - dsViewButton.setEnabled(false); - dataSymbolsJPanel.add(dsViewButton); - //view Annotation - //JButton annotButton = new JButton(); - dsAnnotButton.setText("View Annot..."); - dsAnnotButton.addActionListener(viewAnnotAction); - dsAnnotButton.setEnabled(false); - dataSymbolsJPanel.add(dsAnnotButton); - //datasymbol Callback button - //JButton dataSymbolButton = new JButton(); - dsDataSymbolButton.setText("Create Data Symbol..."); - dsDataSymbolButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - jButtonFDCopyRef_ActionPerformed(e); - } - }); - dsDataSymbolButton.setEnabled(false); - dataSymbolsJPanel.add(dsDataSymbolButton); - } - java.awt.GridBagConstraints gbc_datasymbolsPanel = new java.awt.GridBagConstraints(); - gbc_datasymbolsPanel.gridx = 0; gbc_datasymbolsPanel.gridy = 0; - gbc_datasymbolsPanel.fill = java.awt.GridBagConstraints.BOTH; - gbc_datasymbolsPanel.insets = new java.awt.Insets(4, 4, 4, 4); - add(dataSymbolsJPanel, gbc_datasymbolsPanel); - - }else{ - for (int i = 0; i < getComponentCount(); i++) { - if(getComponent(i) == dataSymbolsJPanel){ - remove(getComponent(i)); - break; - }else if(getComponent(i) == getNormalTopPanel()){ - return; - } - } - java.awt.GridBagConstraints gbc_normalTopPanel = new java.awt.GridBagConstraints(); - gbc_normalTopPanel.gridx = 0; gbc_normalTopPanel.gridy = 0; - gbc_normalTopPanel.fill = java.awt.GridBagConstraints.BOTH; - gbc_normalTopPanel.insets = new java.awt.Insets(4, 4, 4, 4); - add(getNormalTopPanel(), gbc_normalTopPanel); - } -} -private FieldDataWindowManager.DataSymbolCallBack dataSymbolCallBack = null; -public void setCreateDataSymbolCallBack(FieldDataWindowManager.DataSymbolCallBack dataSymbolCallBack){ - this.dataSymbolCallBack = dataSymbolCallBack; - setDisplayMode((dataSymbolCallBack==null?FieldDataGUIPanel.DISPLAY_NORMAL:FieldDataGUIPanel.DISPLAY_DATASYMBOLS)); -} -/** - * Return the JScrollPane1 property value. - * @return javax.swing.JScrollPane - */ -/* WARNING: THIS METHOD WILL BE REGENERATED. */ -private javax.swing.JScrollPane getJScrollPane1() { - if (ivjJScrollPane1 == null) { - try { - ivjJScrollPane1 = new javax.swing.JScrollPane(); - ivjJScrollPane1.setName("JScrollPane1"); - getJScrollPane1().setViewportView(getJTree1()); - // user code begin {1} - // user code end - } catch (java.lang.Throwable ivjExc) { - // user code begin {2} - // user code end - handleException(ivjExc); - } - } - return ivjJScrollPane1; -} - -/** - * Return the JTree1 property value. - * @return javax.swing.JTree - */ -/* WARNING: THIS METHOD WILL BE REGENERATED. */ -private javax.swing.JTree getJTree1() { - if (ivjJTree1 == null) { - try { - ivjJTree1 = new javax.swing.JTree(); - ivjJTree1.setName("JTree1"); - ivjJTree1.setBounds(0, 0, 516, 346); - // user code begin {1} - // user code end - } catch (java.lang.Throwable ivjExc) { - // user code begin {2} - // user code end - handleException(ivjExc); - ivjJTree1.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(MouseEvent e) { - maybeShowPopup(e); - } - - public void mouseReleased(MouseEvent e) { - maybeShowPopup(e); - } - private void maybeShowPopup(MouseEvent e) { - if (e.isPopupTrigger()) { - jPopupMenu.show(e.getComponent(), - e.getX(), e.getY()); - } - } - }); - } - } - return ivjJTree1; -} - -/** - * Called whenever the part throws an exception. - * @param exception java.lang.Throwable - */ -private void handleException(java.lang.Throwable exception) { - - /* Uncomment the following lines to print uncaught exceptions to stdout */ - System.out.println("--------- UNCAUGHT EXCEPTION ---------"); - exception.printStackTrace(System.out); -} - - -/** - * Initializes connections - * @exception java.lang.Exception The exception description. - */ -/* WARNING: THIS METHOD WILL BE REGENERATED. */ -private void initConnections() throws java.lang.Exception { - // user code begin {1} - // user code end - getJTree1().addTreeSelectionListener(ivjEventHandler); - getJTree1().addTreeExpansionListener(ivjEventHandler); - getJButtonFDDelete().addActionListener(ivjEventHandler); - getJButtonFDCopyRef().addActionListener(ivjEventHandler); - getJButtonFDCreate().addActionListener(ivjEventHandler); - getJButtonFDView().addActionListener(ivjEventHandler); -} - -/** - * Initialize the class. - */ -/* WARNING: THIS METHOD WILL BE REGENERATED. */ -private void initialize() { - try { - // user code begin {1} - // user code end - setName("FieldDataGUIPanel"); - setLayout(new java.awt.GridBagLayout()); - setSize(676, 430); - - java.awt.GridBagConstraints gbc_normalTopPanel = new java.awt.GridBagConstraints(); - gbc_normalTopPanel.gridx = 0; gbc_normalTopPanel.gridy = 0; - gbc_normalTopPanel.fill = java.awt.GridBagConstraints.BOTH; - gbc_normalTopPanel.insets = new java.awt.Insets(4, 4, 4, 4); - add(getNormalTopPanel(), gbc_normalTopPanel); - - java.awt.GridBagConstraints constraintsJScrollPane1 = new java.awt.GridBagConstraints(); - constraintsJScrollPane1.gridx = 0; constraintsJScrollPane1.gridy = 1; - constraintsJScrollPane1.fill = java.awt.GridBagConstraints.BOTH; - constraintsJScrollPane1.weightx = 1.0; - constraintsJScrollPane1.weighty = 1.0; - constraintsJScrollPane1.insets = new java.awt.Insets(4, 4, 4, 4); - add(getJScrollPane1(), constraintsJScrollPane1); - initConnections(); - connEtoC1(); - } catch (java.lang.Throwable ivjExc) { - handleException(ivjExc); - } - // user code begin {2} - // user code end -} +import org.vcell.util.*; +import org.vcell.util.document.ExternalDataIdentifier; +import org.vcell.util.document.VCDocument; +import org.vcell.util.document.Version; +import org.vcell.util.gui.DialogUtils; +import org.vcell.util.gui.exporter.FileFilters; +import javax.swing.*; +import javax.swing.event.TreeExpansionListener; +import javax.swing.tree.DefaultMutableTreeNode; +import javax.swing.tree.DefaultTreeModel; +import javax.swing.tree.TreePath; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseEvent; +import java.io.File; +import java.util.*; +import java.util.Map.Entry; -public boolean isInitialized(){ - DefaultMutableTreeNode rootNode = - (DefaultMutableTreeNode)getJTree1().getModel().getRoot(); - if(rootNode == null){ - return false; - } - return (rootNode.getUserObject() instanceof InitializedRootNode); -} -/** - * Comment - */ -private void jTree1_ValueChanged(javax.swing.event.TreeSelectionEvent treeSelectionEvent) { - getJButtonFDDelete().setEnabled(false); - getJButtonFDView().setEnabled(false);dsViewButton.setEnabled(false); - getJButtonFDCopyRef().setEnabled(false);dsDataSymbolButton.setEnabled(false); - getJButtonFindRefModel().setEnabled(false); - getJButtonViewAnnot().setEnabled(false);dsAnnotButton.setEnabled(false); - getJButtonCreateGeom().setEnabled(false); - javax.swing.tree.TreePath selPath = getJTree1().getSelectionPath(); - if(selPath != null){ - javax.swing.tree.DefaultMutableTreeNode lastPathComponent = (javax.swing.tree.DefaultMutableTreeNode)selPath.getLastPathComponent(); +public class FieldDataGUIPanel extends JPanel { + + private static final String FIELD_DATA_INFO = "Field Data Info"; + public static final String FIELD_NAME = "fieldName"; + public static final String USER_DEFINED_FDOS = "userDefinedFDOS"; + + private final JPopupMenu jPopupMenu = new JPopupMenu(); + private static final int COPY_CSV = 0; + private static final int COPY_NL = 1; + private static final int COPY_CRNL = 2; + private static final int COPY_SPACE = 3; + + + private FieldDataWindowManager fieldDataWindowManager; + private javax.swing.JButton fdDeleteButton = null; + private javax.swing.JPanel ivjJPanel1 = null; + private javax.swing.JPanel normalTopPanel = null; + private javax.swing.JButton fdViewButton = null; + private javax.swing.JTree ivjJTree1 = null; + IvjEventHandler ivjEventHandler = new IvjEventHandler(); + private javax.swing.JScrollPane ivjJScrollPane1 = null; + private javax.swing.JButton fdCopyReferenceButton = null; + private JButton jButtonFindRefModel = null; + private JPanel jPanel = null; + private JButton createGeomButton = null; + private JPanel jPanel1 = null; + private JButton viewAnnotButton = null; + private JButton fdCreateButton; + + private JComboBox jComboBoxCreate; + private static final String FROM_FILE = "from File"; + private static final String FROM_SIM = "from Simulation"; + + + class IvjEventHandler implements ActionListener, TreeExpansionListener, javax.swing.event.TreeSelectionListener { + public void actionPerformed(java.awt.event.ActionEvent e) { + if (e.getSource() == FieldDataGUIPanel.this.getJButtonFDDelete()) + fdDelete(e); + if (e.getSource() == FieldDataGUIPanel.this.getJButtonFDCopyRef()) + fdCopyRef(e); + if (e.getSource() == FieldDataGUIPanel.this.getJButtonFDView()) + viewFieldData(e); + if (e.getSource() == FieldDataGUIPanel.this.getJButtonFDCreate()) + if (getCreateJComboBox().getSelectedItem().equals(FROM_SIM)) { + fdFromSim(e); + } else if (getCreateJComboBox().getSelectedItem().equals(FROM_FILE)) { + fdFromFile(); + } + } + + + public void treeCollapsed(javax.swing.event.TreeExpansionEvent event) { + } + + + public void treeExpanded(javax.swing.event.TreeExpansionEvent event) { + if (event.getSource() == FieldDataGUIPanel.this.getFieldDataTree()) + FieldDataGUIPanel.this.treeExpanded(event); + } + + public void valueChanged(javax.swing.event.TreeSelectionEvent e) { + if (e.getSource() == FieldDataGUIPanel.this.getFieldDataTree()) + FieldDataGUIPanel.this.treeValueChanged(e); + } + + } + + + public FieldDataGUIPanel() { + super(); + setName("FieldDataGUIPanel"); + setLayout(new GridBagLayout()); + setSize(676, 430); + + GridBagConstraints gbc_normalTopPanel = new GridBagConstraints(); + gbc_normalTopPanel.gridx = 0; + gbc_normalTopPanel.gridy = 0; + gbc_normalTopPanel.fill = GridBagConstraints.BOTH; + gbc_normalTopPanel.insets = new Insets(4, 4, 4, 4); + add(getNormalTopPanel(), gbc_normalTopPanel); + + GridBagConstraints constraintsJScrollPane1 = new GridBagConstraints(); + constraintsJScrollPane1.gridx = 0; + constraintsJScrollPane1.gridy = 1; + constraintsJScrollPane1.fill = GridBagConstraints.BOTH; + constraintsJScrollPane1.weightx = 1.0; + constraintsJScrollPane1.weighty = 1.0; + constraintsJScrollPane1.insets = new Insets(4, 4, 4, 4); + add(getMainScrollPanel(), constraintsJScrollPane1); + getFieldDataTree().addTreeSelectionListener(ivjEventHandler); + getFieldDataTree().addTreeExpansionListener(ivjEventHandler); + getJButtonFDDelete().addActionListener(ivjEventHandler); + getJButtonFDCopyRef().addActionListener(ivjEventHandler); + getJButtonFDCreate().addActionListener(ivjEventHandler); + getJButtonFDView().addActionListener(ivjEventHandler); + this.fieldDataGUIPanel_Initialize(); + } + + + private void copyMethod(int copyMode) { + String delimiter = ""; + if (copyMode == COPY_NL) { + delimiter = "\n"; + } else if (copyMode == COPY_CRNL) { + delimiter = "\r\n"; + } else if (copyMode == COPY_CSV) { + delimiter = ","; + } else if (copyMode == COPY_SPACE) { + delimiter = " "; + } + String copyString = ""; + javax.swing.tree.TreePath selPath = getFieldDataTree().getSelectionPath(); + if (selPath != null) { + javax.swing.tree.DefaultMutableTreeNode lastPathComponent = (javax.swing.tree.DefaultMutableTreeNode) selPath.getLastPathComponent(); + if (lastPathComponent.equals(getFieldDataTree().getModel().getRoot())) { + int childCount = lastPathComponent.getChildCount(); + for (int i = 0; i < childCount; i += 1) { + if (i != 0) { + copyString += delimiter; + } + copyString += + ((FieldDataMainList) ((DefaultMutableTreeNode) lastPathComponent.getChildAt(i)).getUserObject()).externalDataIdentifier.getName(); + } + } else if (lastPathComponent.getUserObject() instanceof FieldDataOriginList) { + Origin origin = ((FieldDataOriginList) lastPathComponent.getUserObject()).origin; + copyString = origin.getX() + delimiter + origin.getY() + delimiter + origin.getZ(); + } else if (lastPathComponent.getUserObject() instanceof FieldDataExtentList) { + Extent extent = ((FieldDataExtentList) lastPathComponent.getUserObject()).extent; + copyString = extent.getX() + delimiter + extent.getY() + delimiter + extent.getZ(); + } else if (lastPathComponent.getUserObject() instanceof FieldDataISizeList) { + ISize isize = ((FieldDataISizeList) lastPathComponent.getUserObject()).isize; + copyString = isize.getX() + delimiter + isize.getY() + delimiter + isize.getZ(); + } else if (lastPathComponent.getUserObject() instanceof FieldDataTimeList) { + double[] times = ((FieldDataTimeList) lastPathComponent.getUserObject()).times; + for (int i = 0; i < times.length; i += 1) { + if (i != 0) { + copyString += delimiter; + } + copyString += times[i] + ""; + } + } else if (lastPathComponent.getUserObject() instanceof FieldDataMainList) { + ExternalDataIdentifier extDataID = + ((FieldDataMainList) lastPathComponent.getUserObject()).externalDataIdentifier; + copyString = extDataID.getName(); + } else if (lastPathComponent.getUserObject() instanceof FieldDataVarList) { + DataIdentifier dataIdentifier = + ((FieldDataVarList) lastPathComponent.getUserObject()).dataIdentifier; + copyString = dataIdentifier.getName(); + } else if (lastPathComponent.getUserObject() instanceof FieldDataVarMainList) { + int childCount = lastPathComponent.getChildCount(); + for (int i = 0; i < childCount; i += 1) { + if (i != 0) { + copyString += delimiter; + } + copyString += + ((FieldDataVarList) ((DefaultMutableTreeNode) lastPathComponent.getChildAt(i)).getUserObject()).dataIdentifier.getName(); + } + } + if (copyString.length() > 0) { + VCellTransferable.sendToClipboard(copyString); + } + } + } + + + private void fieldDataGUIPanel_Initialize() { + + getFieldDataTree().getSelectionModel().setSelectionMode(javax.swing.tree.TreeSelectionModel.SINGLE_TREE_SELECTION); + + JMenuItem copyMenuItem = new JMenuItem("Copy"); + copyMenuItem.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + copyMethod(COPY_SPACE); + } + }); + JMenuItem copyCSVMenuItem = new JMenuItem("Copy w/ Commas"); + copyCSVMenuItem.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + copyMethod(COPY_CSV); + } + }); + JMenuItem copyNewLineMenuItem = new JMenuItem("Copy w/ LF"); + copyNewLineMenuItem.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + copyMethod(COPY_NL); + } + }); + JMenuItem copyReturnNewLineMenuItem = new JMenuItem("Copy w/ CRLF"); + copyReturnNewLineMenuItem.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + copyMethod(COPY_CRNL); + } + }); + + } + + public void updateJTree(final RequestManager clientRequestManager) { + + if (clientRequestManager == null) { + DefaultMutableTreeNode emptyNode = new DefaultMutableTreeNode("No Info Available"); + getFieldDataTree().setModel(new DefaultTreeModel(emptyNode)); + } else { + DefaultMutableTreeNode startupNode = new DefaultMutableTreeNode("Gathering Field Data Information... (Please wait)"); + getFieldDataTree().setModel(new DefaultTreeModel(startupNode)); + AsynchClientTask gatherInfo = new AsynchClientTask("gatherInfo", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { + + @Override + public void run(Hashtable hashTable) throws Exception { + try { + DocumentManager documentManager = clientRequestManager.getDocumentManager(); + FieldDataDBOperationSpec fdos = FieldDataDBOperationSpec.createGetExtDataIDsSpec(documentManager.getUser()); + FieldDataDBOperationResults fieldDataDBOperationResults = documentManager.fieldDataDBOperation(fdos); + + ExternalDataIdentifier[] externalDataIdentifierArr = fieldDataDBOperationResults.extDataIDArr; + String[] extDataAnnotArr = fieldDataDBOperationResults.extDataAnnotArr; + + TreeMap sortedExtDataIDTreeMap = new TreeMap( + new Comparator() { + public int compare(ExternalDataIdentifier o1, ExternalDataIdentifier o2) { + return o1.getName().compareToIgnoreCase(o2.getName()); + } + } + ); + for (int i = 0; i < externalDataIdentifierArr.length; i += 1) { + sortedExtDataIDTreeMap.put(externalDataIdentifierArr[i], extDataAnnotArr[i]); + } + DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode(new InitializedRootNode( + FIELD_DATA_INFO + (externalDataIdentifierArr.length == 0 ? " (None Defined)" : ""))); + + Iterator> sortIter = sortedExtDataIDTreeMap.entrySet().iterator(); + while (sortIter.hasNext()) { + Entry entry = sortIter.next(); + DefaultMutableTreeNode mainNode = new DefaultMutableTreeNode(new FieldDataMainList(entry.getKey(), entry.getValue())); + mainNode.add(new DefaultMutableTreeNode(new FieldDataVarMainList())); + rootNode.add(mainNode); + } + hashTable.put("rootNode", rootNode); + } catch (Exception e) { + DefaultMutableTreeNode errorNode = new DefaultMutableTreeNode("Error Getting Field Data Information"); + hashTable.put("rootNode", errorNode); + throw e; + } + } + }; + AsynchClientTask updateTree = new AsynchClientTask("updateTree", AsynchClientTask.TASKTYPE_SWING_BLOCKING) { + + @Override + public void run(Hashtable hashTable) throws Exception { + DefaultMutableTreeNode rootNode = (DefaultMutableTreeNode) hashTable.get("rootNode"); + getFieldDataTree().setModel(new DefaultTreeModel(rootNode)); + } + }; + ClientTaskDispatcher.dispatch(this, new Hashtable(), new AsynchClientTask[]{gatherInfo, updateTree}); + } + } + + + /** + * Return the JButtonFDCopyRef property value. + * + * @return javax.swing.JButton + */ + /* WARNING: THIS METHOD WILL BE REGENERATED. */ + private javax.swing.JButton getJButtonFDCopyRef() { + if (fdCopyReferenceButton == null) { + fdCopyReferenceButton = new javax.swing.JButton(); + fdCopyReferenceButton.setName("JButtonFDCopyRef"); + fdCopyReferenceButton.setText("Copy Func"); + fdCopyReferenceButton.setEnabled(false); + } + return fdCopyReferenceButton; + } + + + private javax.swing.JButton getJButtonFDDelete() { + if (fdDeleteButton == null) { + fdDeleteButton = new javax.swing.JButton(); + fdDeleteButton.setName("JButtonFDDelete"); + fdDeleteButton.setText("Delete"); + fdDeleteButton.setEnabled(false); + } + return fdDeleteButton; + } + + + private JButton getJButtonFDCreate() { + if (fdCreateButton == null) { + fdCreateButton = new javax.swing.JButton(); + fdCreateButton.setName("JButtonFDFromCreate"); + fdCreateButton.setText("Create..."); + } + return fdCreateButton; + } + + + + //private static final String FROM_IMAGEJ = "from ImageJ"; + private JComboBox getCreateJComboBox() { + if (jComboBoxCreate == null) { + jComboBoxCreate = new JComboBox(new Object[]{FROM_FILE, FROM_SIM/*,FROM_IMAGEJ*/}); + } + return jComboBoxCreate; + } + + private javax.swing.JButton getJButtonFDView() { + if (fdViewButton == null) { + fdViewButton = new javax.swing.JButton(); + fdViewButton.setName("JButtonFDView"); + fdViewButton.setText("View..."); + fdViewButton.setEnabled(false); + } + return fdViewButton; + } + + + private javax.swing.JPanel getJPanel1() { + if (ivjJPanel1 == null) { + org.vcell.util.gui.TitledBorderBean ivjLocalBorder; + ivjLocalBorder = new org.vcell.util.gui.TitledBorderBean(); + ivjLocalBorder.setTitleFont(new java.awt.Font("Arial", 1, 14)); + ivjLocalBorder.setTitle("Create New Field Data"); + ivjJPanel1 = new javax.swing.JPanel(); + ivjJPanel1.setName("JPanel1"); + ivjJPanel1.setBorder(ivjLocalBorder); + final java.awt.GridBagLayout gridBagLayout = new java.awt.GridBagLayout(); + gridBagLayout.rowHeights = new int[]{0, 0, 7}; + ivjJPanel1.setLayout(gridBagLayout); + + java.awt.GridBagConstraints constraintsJButtonFDFromFile = new java.awt.GridBagConstraints(); + constraintsJButtonFDFromFile.gridx = 1; + constraintsJButtonFDFromFile.gridy = 1; + constraintsJButtonFDFromFile.fill = java.awt.GridBagConstraints.HORIZONTAL; + constraintsJButtonFDFromFile.weightx = 1.0; + constraintsJButtonFDFromFile.insets = new java.awt.Insets(4, 4, 4, 4); + getJPanel1().add(getJButtonFDCreate(), constraintsJButtonFDFromFile); + + java.awt.GridBagConstraints constraintsJButtonFDFromSim = new java.awt.GridBagConstraints(); + constraintsJButtonFDFromSim.gridx = 2; + constraintsJButtonFDFromSim.gridy = 1; + constraintsJButtonFDFromSim.fill = java.awt.GridBagConstraints.HORIZONTAL; + constraintsJButtonFDFromSim.weightx = 1.0; + constraintsJButtonFDFromSim.insets = new java.awt.Insets(4, 4, 4, 4); + getJPanel1().add(getCreateJComboBox(), constraintsJButtonFDFromSim); + } + return ivjJPanel1; + } + + + private javax.swing.JPanel getNormalTopPanel() { + if (normalTopPanel == null) { + GridBagConstraints gridBagConstraints4 = new GridBagConstraints(); + gridBagConstraints4.gridx = 2; + gridBagConstraints4.gridy = 1; + GridBagConstraints gridBagConstraints21 = new GridBagConstraints(); + gridBagConstraints21.gridx = 2; + gridBagConstraints21.gridy = 0; + normalTopPanel = new javax.swing.JPanel(); + normalTopPanel.setName("normalTopPanel"); + normalTopPanel.setLayout(new java.awt.GridBagLayout()); + + java.awt.GridBagConstraints constraintsJPanel1 = new java.awt.GridBagConstraints(); + constraintsJPanel1.gridx = 0; + constraintsJPanel1.gridy = 0; + constraintsJPanel1.gridheight = 2; + constraintsJPanel1.fill = java.awt.GridBagConstraints.BOTH; + constraintsJPanel1.insets = new java.awt.Insets(4, 4, 4, 4); + getNormalTopPanel().add(getJPanel1(), constraintsJPanel1); + + java.awt.GridBagConstraints constraintsJButtonFDDelete = new java.awt.GridBagConstraints(); + constraintsJButtonFDDelete.gridx = 1; + constraintsJButtonFDDelete.gridy = 0; + constraintsJButtonFDDelete.fill = java.awt.GridBagConstraints.HORIZONTAL; + constraintsJButtonFDDelete.weightx = 0.0; + constraintsJButtonFDDelete.insets = new java.awt.Insets(4, 4, 4, 4); + java.awt.GridBagConstraints constraintsJButtonFDView = new java.awt.GridBagConstraints(); + constraintsJButtonFDView.gridx = 1; + constraintsJButtonFDView.gridy = 1; + constraintsJButtonFDView.gridwidth = 1; + constraintsJButtonFDView.fill = java.awt.GridBagConstraints.HORIZONTAL; + constraintsJButtonFDView.insets = new java.awt.Insets(4, 4, 4, 4); + normalTopPanel.add(getJButtonFDDelete(), constraintsJButtonFDDelete); + normalTopPanel.add(getJButtonFDView(), constraintsJButtonFDView); + normalTopPanel.add(getJPanel(), gridBagConstraints21); + normalTopPanel.add(getJPanel12(), gridBagConstraints4); + } + return normalTopPanel; + } + + public static final int DISPLAY_NORMAL = 0; + public static final int DISPLAY_DATASYMBOLS = 1; + private int displayMode = DISPLAY_NORMAL; + private JPanel dataSymbolsJPanel = null; + private final JButton dsAnnotButton = new JButton(); + private final JButton dsViewButton = new JButton(); + private final JButton dsDataSymbolButton = new JButton(); + + public int getDisplayMode() { + return displayMode; + } + + private void setDisplayMode(int newDisplayMode) { + displayMode = newDisplayMode; + if (newDisplayMode == DISPLAY_DATASYMBOLS) { + for (int i = 0; i < getComponentCount(); i++) { + if (getComponent(i) == getNormalTopPanel()) { + remove(getComponent(i)); + break; + } else if (getComponent(i) == dataSymbolsJPanel) { + return; + } + } + if (dataSymbolsJPanel == null) { + dataSymbolsJPanel = new JPanel(); + dataSymbolsJPanel.setName("dataSymbolsPanel"); + //View Button + //JButton viewButton = new JButton(); + dsViewButton.setText("View..."); + dsViewButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + viewFieldData(e); + } + }); + dsViewButton.setEnabled(false); + dataSymbolsJPanel.add(dsViewButton); + //view Annotation + //JButton annotButton = new JButton(); + dsAnnotButton.setText("View Annot..."); + dsAnnotButton.addActionListener(viewAnnotAction); + dsAnnotButton.setEnabled(false); + dataSymbolsJPanel.add(dsAnnotButton); + //datasymbol Callback button + //JButton dataSymbolButton = new JButton(); + dsDataSymbolButton.setText("Create Data Symbol..."); + dsDataSymbolButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + fdCopyRef(e); + } + }); + dsDataSymbolButton.setEnabled(false); + dataSymbolsJPanel.add(dsDataSymbolButton); + } + java.awt.GridBagConstraints gbc_datasymbolsPanel = new java.awt.GridBagConstraints(); + gbc_datasymbolsPanel.gridx = 0; + gbc_datasymbolsPanel.gridy = 0; + gbc_datasymbolsPanel.fill = java.awt.GridBagConstraints.BOTH; + gbc_datasymbolsPanel.insets = new java.awt.Insets(4, 4, 4, 4); + add(dataSymbolsJPanel, gbc_datasymbolsPanel); + + } else { + for (int i = 0; i < getComponentCount(); i++) { + if (getComponent(i) == dataSymbolsJPanel) { + remove(getComponent(i)); + break; + } else if (getComponent(i) == getNormalTopPanel()) { + return; + } + } + java.awt.GridBagConstraints gbc_normalTopPanel = new java.awt.GridBagConstraints(); + gbc_normalTopPanel.gridx = 0; + gbc_normalTopPanel.gridy = 0; + gbc_normalTopPanel.fill = java.awt.GridBagConstraints.BOTH; + gbc_normalTopPanel.insets = new java.awt.Insets(4, 4, 4, 4); + add(getNormalTopPanel(), gbc_normalTopPanel); + } + } + + private FieldDataWindowManager.DataSymbolCallBack dataSymbolCallBack = null; + + public void setCreateDataSymbolCallBack(FieldDataWindowManager.DataSymbolCallBack dataSymbolCallBack) { + this.dataSymbolCallBack = dataSymbolCallBack; + setDisplayMode((dataSymbolCallBack == null ? FieldDataGUIPanel.DISPLAY_NORMAL : FieldDataGUIPanel.DISPLAY_DATASYMBOLS)); + } + + + private javax.swing.JScrollPane getMainScrollPanel() { + if (ivjJScrollPane1 == null) { + ivjJScrollPane1 = new javax.swing.JScrollPane(); + ivjJScrollPane1.setName("JScrollPane1"); + getMainScrollPanel().setViewportView(getFieldDataTree()); + } + return ivjJScrollPane1; + } + + private javax.swing.JTree getFieldDataTree() { + if (ivjJTree1 == null) { + try { + ivjJTree1 = new javax.swing.JTree(); + ivjJTree1.setName("JTree1"); + ivjJTree1.setBounds(0, 0, 516, 346); + } catch (java.lang.Throwable ivjExc) { + ivjJTree1.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(MouseEvent e) { + maybeShowPopup(e); + } + + public void mouseReleased(MouseEvent e) { + maybeShowPopup(e); + } + + private void maybeShowPopup(MouseEvent e) { + if (e.isPopupTrigger()) { + jPopupMenu.show(e.getComponent(), + e.getX(), e.getY()); + } + } + }); + } + } + return ivjJTree1; + } + + + public boolean isInitialized() { + DefaultMutableTreeNode rootNode = + (DefaultMutableTreeNode) getFieldDataTree().getModel().getRoot(); + if (rootNode == null) { + return false; + } + return (rootNode.getUserObject() instanceof InitializedRootNode); + } + + + private void treeValueChanged(javax.swing.event.TreeSelectionEvent treeSelectionEvent) { + getJButtonFDDelete().setEnabled(false); + getJButtonFDView().setEnabled(false); + dsViewButton.setEnabled(false); + getJButtonFDCopyRef().setEnabled(false); + dsDataSymbolButton.setEnabled(false); + getJButtonFindRefModel().setEnabled(false); + getJButtonViewAnnot().setEnabled(false); + dsAnnotButton.setEnabled(false); + getJButtonCreateGeom().setEnabled(false); + javax.swing.tree.TreePath selPath = getFieldDataTree().getSelectionPath(); + if (selPath != null) { + javax.swing.tree.DefaultMutableTreeNode lastPathComponent = (javax.swing.tree.DefaultMutableTreeNode) selPath.getLastPathComponent(); // System.out.println("count="+selPath.getPathCount()+" "+(lastPathComponent != null?lastPathComponent.toString():"null")); - if(lastPathComponent.getUserObject() instanceof FieldDataMainList){ - getJButtonFDDelete().setEnabled(true); - getJButtonFDView().setEnabled(fieldDataWindowManager != null);dsViewButton.setEnabled(fieldDataWindowManager != null); - getJButtonFindRefModel().setEnabled(true); - getJButtonViewAnnot().setEnabled(true);dsAnnotButton.setEnabled(true); - }else if (lastPathComponent.getUserObject() instanceof FieldDataVarList){ - getJButtonFDCopyRef().setEnabled(true);dsDataSymbolButton.setEnabled(true); - getJButtonCreateGeom().setEnabled(true); - } - } -} - -private void jButtonFDFromSim_ActionPerformed(java.awt.event.ActionEvent actionEvent) { - try{ - final RequestManager clientRequestManager = fieldDataWindowManager.getLocalRequestManager(); - - final FieldDataWindowManager.OpenModelInfoHolder simInfoHolder = FieldDataWindowManager.selectOpenModelsFromDesktop(this,fieldDataWindowManager.getRequestManager(),true,"Select Simulation for Field Data",true); - if(simInfoHolder == null){ - PopupGenerator.showErrorDialog(this, "Please open a Bio or Math model containing the spatial (non-compartmental) simulation you wish to use to create a new Field Data"); - return; - } - //Check that the sim is in a state that can be copied - final SimulationInfo simInfo = simInfoHolder.getSimInfo(); - if(simInfo == null){ - throw new Exception("Selected sim '"+simInfoHolder.getSimName()+"' has no simInfo (save your model and retry)."); - } - SimulationStatus simStatus = clientRequestManager.getServerSimulationStatus(simInfo); - if(simStatus != null && (simStatus.isRunning() || simStatus.isStartRequested())){ - throw new Exception("Can't copy 'running' simulation data from sim '"+simInfo.getName()+"'"); - } - - final FieldDataFileOperationSpec fdos = FieldDataFileOperationSpec.createCopySimFieldDataFileOperationSpec( null, - (simInfo.getParentSimulationReference() != null?simInfo.getParentSimulationReference(): simInfo.getSimulationVersion().getVersionKey()), - simInfo.getOwner(), simInfoHolder.getJobIndex(), clientRequestManager.getDocumentManager().getUser()); - - AsynchClientTask[] addTasks = addNewExternalData(this,this,true); - AsynchClientTask[] taskArray = new AsynchClientTask[1 + addTasks.length]; - System.arraycopy(addTasks, 0, taskArray, 1, addTasks.length); // add to the end - - taskArray[0] = new AsynchClientTask("Create Field Data from Simulation", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { - public void run(Hashtable hashTable) throws Exception { - FieldDataFileOperationResults fdor = - clientRequestManager.getDocumentManager().fieldDataFileOperation( - FieldDataFileOperationSpec.createInfoFieldDataFileOperationSpec( - (simInfo.getParentSimulationReference() != null? - simInfo.getParentSimulationReference(): - simInfo.getSimulationVersion().getVersionKey() - ), - simInfo.getOwner(), - simInfoHolder.getJobIndex())); - //Create (non-editable) info for display - fdos.origin = fdor.origin; - fdos.extent = fdor.extent; - fdos.isize = fdor.iSize; - fdos.times = fdor.times; - fdos.varNames = new String[fdor.dataIdentifierArr.length]; - for(int i=0;i hash = new Hashtable(); - ClientTaskDispatcher.dispatch(this,hash,taskArray,false); - - }catch(UserCancelException e){ - return; - }catch(Exception e){ - PopupGenerator.showErrorDialog(this, "Error creating Field Data from simulation\n"+e.getMessage(), e); - } -} - -private void jButtonFDView_ActionPerformed(java.awt.event.ActionEvent actionEvent) { - if(fieldDataWindowManager == null){ - System.out.println("No FieldDataViewManager available for View action"); - return; - } - javax.swing.tree.TreePath selPath = getJTree1().getSelectionPath(); - if(selPath != null){ - javax.swing.tree.DefaultMutableTreeNode lastPathComponent = (javax.swing.tree.DefaultMutableTreeNode)selPath.getLastPathComponent(); - if(lastPathComponent.getUserObject() instanceof FieldDataMainList){ - ExternalDataIdentifier edi = ((FieldDataMainList)lastPathComponent.getUserObject()).externalDataIdentifier; - fieldDataWindowManager.viewData(edi); - } - } -} - - -private void jButtonFDFromFile_ActionPerformed(java.awt.event.ActionEvent actionEvent) { - Hashtable hash = new Hashtable(); - - AsynchClientTask[] tasks = fdFromFile(); - ClientTaskDispatcher.dispatch(this, hash, tasks, false, true, null); - -} - -//private void fromImageJ(){ -// //windows debug port in use, netstat -anob | findstr "5000", tasklist | findstr "LISTENER from netstat query" -// AsynchClientTask imageJTask = new AsynchClientTask("contact ImageJ...",AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { -// @Override -// public void run(Hashtable hashTable) throws Exception { -// File imageJFile = ImageJHelper.vcellWantImage(getClientTaskStatusSupport(),"image for new FieldData"); -// hashTable.put(IMAGE_FILE_KEY, imageJFile); -// } -// }; -// AsynchClientTask[] tasks = fdFromFile(); -// tasks = BeanUtils.addElements(new AsynchClientTask[] {imageJTask}, tasks); -// ClientTaskDispatcher.dispatch(this, new Hashtable<>(), tasks, false, true, null); -//} - -String IMAGE_FILE_KEY = "imageFile"; -private AsynchClientTask[] fdFromFile() { - final RequestManager clientRequestManager = fieldDataWindowManager.getLocalRequestManager(); - AsynchClientTask[] addTasks = addNewExternalData(this,this,false); - AsynchClientTask[] taskArray = new AsynchClientTask[2 + addTasks.length]; - System.arraycopy(addTasks, 0, taskArray, 2, addTasks.length); // add to the end - - taskArray[0] = new AsynchClientTask("select a file", AsynchClientTask.TASKTYPE_SWING_BLOCKING) { - public void run(Hashtable hashTable) throws Exception { - FieldDataFileOperationSpec argfdos = (FieldDataFileOperationSpec)hashTable.get("argfdos"); - if (argfdos == null && hashTable.get(IMAGE_FILE_KEY) == null) { - File imageFile = DatabaseWindowManager.showFileChooserDialog( - fieldDataWindowManager.getComponent(), FileFilters.FILE_FILTER_FIELDIMAGES, - clientRequestManager.getUserPreferences(),JFileChooser.FILES_AND_DIRECTORIES); - hashTable.put(IMAGE_FILE_KEY, imageFile); - } - } - }; - taskArray[1] = new AsynchClientTask("Import image", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { - public void run(Hashtable hashTable) throws Exception { - FieldDataFileOperationSpec fdos = null; - String initFDName = null; - - FieldDataFileOperationSpec argfdos = (FieldDataFileOperationSpec)hashTable.get("argfdos"); - String arginitFDName = (String)hashTable.get("arginitFDName"); - if (argfdos == null) { - File imageFile = (File)hashTable.get(IMAGE_FILE_KEY); - if (imageFile == null) { - return; - } - initFDName = imageFile.getName(); - if(initFDName.indexOf(".vfrap") > -1) - { -/* //read the image dataset from Virtual FRAP xml file - System.out.println("Loading " + initFDName + " ..."); - - AnnotatedImageDataset annotatedImages = null; - String xmlString; - try { - xmlString = XmlUtil.getXMLString(imageFile.getAbsolutePath()); - MicroscopyXmlReader xmlReader = new MicroscopyXmlReader(true); - annotatedImages = xmlReader.getAnnotatedImageDataset(XmlUtil.stringToXML(xmlString, null).getRootElement(), this.getClientTaskStatusSupport()); - OverlayEditorPanelJAI overlayPanel = new OverlayEditorPanelJAI(); - overlayPanel.setImages(annotatedImages.getImageDataset(), 1, 0, new OverlayEditorPanelJAI.AllPixelValuesRange(1, 200) ); - DialogUtils.showComponentCloseDialog(FieldDataGUIPanel.this, overlayPanel, "this is it"); - } catch (Exception e) { - e.printStackTrace(System.out); - } */ - } - else //not a .vfrap file - { - try { - fdos = ClientRequestManager.createFDOSFromImageFile(imageFile,false,null); - } catch (DataFormatException ex) { - throw new Exception("Cannot read image " + imageFile.getAbsolutePath()+"\n"+ex.getMessage()); - } - } - }else{ - fdos = argfdos; - initFDName = arginitFDName; - } - - fdos.owner = clientRequestManager.getDocumentManager().getUser(); - fdos.opType = FieldDataFileOperationSpec.FDOS_ADD; - hashTable.put("fdos", fdos); - hashTable.put("initFDName", initFDName); - //addNewExternalData(clientRequestManager, fdos, initFDName, false); - } - }; - return taskArray; -} - -private void jButtonFDDelete_ActionPerformed(java.awt.event.ActionEvent actionEvent) { - - final RequestManager clientRequestManager = fieldDataWindowManager.getLocalRequestManager(); - - - TreePath selPath = getJTree1().getSelectionPath(); - final DefaultMutableTreeNode mainNode = (DefaultMutableTreeNode)selPath.getLastPathComponent(); - final FieldDataMainList fieldDataMainList = (FieldDataMainList)mainNode.getUserObject(); - - if(!fieldDataMainList.externalDataIdentifier.getOwner().equals( - clientRequestManager.getDocumentManager().getUser())){ - DialogUtils.showErrorDialog(this, "Delete failed: User "+clientRequestManager.getDocumentManager().getUser().getName()+ - "does not own FieldData '"+fieldDataMainList.externalDataIdentifier.getName()+"'"); - } - if(PopupGenerator.showComponentOKCancelDialog( - this, new JLabel("Delete "+fieldDataMainList.externalDataIdentifier.getName()+"?"), - "Confirm Delete") != JOptionPane.OK_OPTION){ - return; - - } - AsynchClientTask CheckRemoveFromDBTask = new AsynchClientTask("Check Field Data references in DB", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { - public void run(Hashtable hash) throws Exception { - if(fieldDataWindowManager.findReferencingModels(fieldDataMainList.externalDataIdentifier, false)){ - throw new Exception("Cannot delete Field Data '"+fieldDataMainList.externalDataIdentifier.getName()+ - "' because it is referenced in a Model(s) or Function(s) file."); - } - } - }; - AsynchClientTask RemoveNodeTreeTask = new AsynchClientTask("Remove FieldData tree node", AsynchClientTask.TASKTYPE_SWING_BLOCKING) { - public void run(Hashtable hash) throws Exception { - ((DefaultTreeModel)getJTree1().getModel()).removeNodeFromParent(mainNode); - if(((DefaultMutableTreeNode)getJTree1().getModel().getRoot()).getChildCount() == 0){ - updateJTree(clientRequestManager); - } - } - }; - AsynchClientTask RemoveFromDiskAndDBTask = new AsynchClientTask("Remove Field Data from Disk and DB", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { - public void run(Hashtable hash) throws Exception { - //Remove from Disk - FieldDataMainList fieldDataMainList = (FieldDataMainList)mainNode.getUserObject(); - FieldDataFileOperationSpec fdos = FieldDataFileOperationSpec.createDeleteFieldDataFileOperationSpec( - fieldDataMainList.externalDataIdentifier); - clientRequestManager.getDocumentManager().fieldDataFileOperation(fdos); - //Remove from DB - fieldDataWindowManager.deleteExternalDataIdentifier(fieldDataMainList.externalDataIdentifier); - } - }; - // - //Execute Field Data Info - JTree tasks - // - AsynchClientTask tasks[] = new AsynchClientTask[] { CheckRemoveFromDBTask,RemoveFromDiskAndDBTask,RemoveNodeTreeTask}; - Hashtable hash = new Hashtable(); - ClientTaskDispatcher.dispatch(this,hash,tasks,false); - -} - private class SelectedTimes{ - private double[] times; - private int selectedIndex; - public SelectedTimes(double[] times, int selectedIndex) { - super(); - this.times = times; - this.selectedIndex = selectedIndex; - } - public double[] getTimes() { - return times; - } - public int getSelectedIndex() { - return selectedIndex; - } - - } -private SelectedTimes selectTimeFromNode(DefaultMutableTreeNode mainNode){ - Enumeration children = mainNode.children(); - double[] times = null; - while(children.hasMoreElements()){ - DefaultMutableTreeNode child = (DefaultMutableTreeNode)children.nextElement(); - if(child.getUserObject() instanceof FieldDataTimeList){ - times = ((FieldDataTimeList)child.getUserObject()).times; - break; - } - } - - if(times != null && times.length > 1){ - String[] timesStr = new String[times.length]; - for(int i=0;i jcBeg = new JComboBox(Arrays.asList(timesStr).toArray(new Object[0])); - jp.add(jcBeg); - - if(PopupGenerator.showComponentOKCancelDialog(this, jp,"Select Field Data timepoint") ==JOptionPane.OK_OPTION){ - return new SelectedTimes(times, jcBeg.getSelectedIndex()); - } - throw UserCancelException.CANCEL_GENERIC; - } - return new SelectedTimes(new double[] {0.0}, 0); -} -private void jButtonFDCopyRef_ActionPerformed(java.awt.event.ActionEvent actionEvent) { - if(actionEvent.getSource() == getJButtonCreateGeom()){ - DocumentWindow.showGeometryCreationWarning(FieldDataGUIPanel.this); - return; - } - TreePath selPath = getJTree1().getSelectionPath(); - final DefaultMutableTreeNode varNode = (DefaultMutableTreeNode)selPath.getLastPathComponent(); - final DefaultMutableTreeNode mainNode = (DefaultMutableTreeNode)varNode.getParent().getParent(); - - SelectedTimes selectedTimes = null; - try{ - selectedTimes = selectTimeFromNode(mainNode); - }catch(UserCancelException e){ - return; - } - double selectedTime = selectedTimes.getTimes()[selectedTimes.getSelectedIndex()]; - - if(actionEvent.getSource() == getJButtonFDCopyRef()){ - String fieldFunctionReference = - SimulationData.createCanonicalFieldFunctionSyntax( - ((FieldDataMainList)mainNode.getUserObject()).externalDataIdentifier.getName(), - ((FieldDataVarList)varNode.getUserObject()).dataIdentifier.getName(), - selectedTime,((FieldDataVarList)varNode.getUserObject()).dataIdentifier.getVariableType().getTypeName()); - - VCellTransferable.sendToClipboard(fieldFunctionReference); - }else if(actionEvent.getSource() == dsDataSymbolButton && dataSymbolCallBack != null){ - dataSymbolCallBack.createDataSymbol( - ((FieldDataMainList)mainNode.getUserObject()).externalDataIdentifier, - ((FieldDataVarList)varNode.getUserObject()).dataIdentifier.getName(), - ((FieldDataVarList)varNode.getUserObject()).dataIdentifier.getVariableType(), - selectedTime); - } - -} - -private void jTree1_TreeExpanded(final javax.swing.event.TreeExpansionEvent treeExpansionEvent) { - if(fieldDataWindowManager == null){ - return; - } - // - //Determine if we need to get Info - // - javax.swing.tree.TreePath expPath = null; - try{ - expPath = treeExpansionEvent.getPath(); - if(expPath != null){ - DefaultMutableTreeNode mainNode = (javax.swing.tree.DefaultMutableTreeNode)expPath.getLastPathComponent(); + if (lastPathComponent.getUserObject() instanceof FieldDataMainList) { + getJButtonFDDelete().setEnabled(true); + getJButtonFDView().setEnabled(fieldDataWindowManager != null); + dsViewButton.setEnabled(fieldDataWindowManager != null); + getJButtonFindRefModel().setEnabled(true); + getJButtonViewAnnot().setEnabled(true); + dsAnnotButton.setEnabled(true); + } else if (lastPathComponent.getUserObject() instanceof FieldDataVarList) { + getJButtonFDCopyRef().setEnabled(true); + dsDataSymbolButton.setEnabled(true); + getJButtonCreateGeom().setEnabled(true); + } + } + } + + private void fdFromSim(java.awt.event.ActionEvent actionEvent) { + try { + final RequestManager clientRequestManager = fieldDataWindowManager.getLocalRequestManager(); + + final FieldDataWindowManager.OpenModelInfoHolder simInfoHolder = FieldDataWindowManager.selectOpenModelsFromDesktop(this, fieldDataWindowManager.getRequestManager(), true, "Select Simulation for Field Data", true); + if (simInfoHolder == null) { + PopupGenerator.showErrorDialog(this, "Please open a Bio or Math model containing the spatial (non-compartmental) simulation you wish to use to create a new Field Data"); + return; + } + //Check that the sim is in a state that can be copied + final SimulationInfo simInfo = simInfoHolder.getSimInfo(); + if (simInfo == null) { + throw new Exception("Selected sim '" + simInfoHolder.getSimName() + "' has no simInfo (save your model and retry)."); + } + SimulationStatus simStatus = clientRequestManager.getServerSimulationStatus(simInfo); + if (simStatus != null && (simStatus.isRunning() || simStatus.isStartRequested())) { + throw new Exception("Can't copy 'running' simulation data from sim '" + simInfo.getName() + "'"); + } + + final FieldDataFileOperationSpec fdos = FieldDataFileOperationSpec.createCopySimFieldDataFileOperationSpec(null, + (simInfo.getParentSimulationReference() != null ? simInfo.getParentSimulationReference() : simInfo.getSimulationVersion().getVersionKey()), + simInfo.getOwner(), simInfoHolder.getJobIndex(), clientRequestManager.getDocumentManager().getUser()); + + AsynchClientTask[] addTasks = addNewExternalData(this, this, true); + AsynchClientTask[] taskArray = new AsynchClientTask[1 + addTasks.length]; + System.arraycopy(addTasks, 0, taskArray, 1, addTasks.length); // add to the end + + taskArray[0] = new AsynchClientTask("Create Field Data from Simulation", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { + public void run(Hashtable hashTable) throws Exception { + FieldDataFileOperationResults fdor = + clientRequestManager.getDocumentManager().fieldDataFileOperation( + FieldDataFileOperationSpec.createInfoFieldDataFileOperationSpec( + (simInfo.getParentSimulationReference() != null ? + simInfo.getParentSimulationReference() : + simInfo.getSimulationVersion().getVersionKey() + ), + simInfo.getOwner(), + simInfoHolder.getJobIndex())); + //Create (non-editable) info for display + fdos.origin = fdor.origin; + fdos.extent = fdor.extent; + fdos.isize = fdor.iSize; + fdos.times = fdor.times; + fdos.varNames = new String[fdor.dataIdentifierArr.length]; + for (int i = 0; i < fdor.dataIdentifierArr.length; i += 1) { + fdos.varNames[i] = + (fdor.dataIdentifierArr[i].getVariableType().equals(VariableType.VOLUME) ? "(vol) " : "") + + (fdor.dataIdentifierArr[i].getVariableType().equals(VariableType.MEMBRANE) ? "(mbr) " : "") + + fdor.dataIdentifierArr[i].getName(); + } + hashTable.put("fdos", fdos); + hashTable.put("initFDName", simInfo.getName()); + //addNewExternalData(clientRequestManager, fdos, simInfoHolder.simInfo.getName(), true); + } + }; + + Hashtable hash = new Hashtable(); + ClientTaskDispatcher.dispatch(this, hash, taskArray, false); + + } catch (UserCancelException e) { + return; + } catch (Exception e) { + PopupGenerator.showErrorDialog(this, "Error creating Field Data from simulation\n" + e.getMessage(), e); + } + } + + private void viewFieldData(java.awt.event.ActionEvent actionEvent) { + if (fieldDataWindowManager == null) { + System.out.println("No FieldDataViewManager available for View action"); + return; + } + javax.swing.tree.TreePath selPath = getFieldDataTree().getSelectionPath(); + if (selPath != null) { + javax.swing.tree.DefaultMutableTreeNode lastPathComponent = (javax.swing.tree.DefaultMutableTreeNode) selPath.getLastPathComponent(); + if (lastPathComponent.getUserObject() instanceof FieldDataMainList) { + ExternalDataIdentifier edi = ((FieldDataMainList) lastPathComponent.getUserObject()).externalDataIdentifier; + fieldDataWindowManager.viewData(edi); + } + } + } + + String IMAGE_FILE_KEY = "imageFile"; + + // Add New Data is called from within this function. + public void fdFromFile() { + final RequestManager clientRequestManager = fieldDataWindowManager.getLocalRequestManager(); + AsynchClientTask[] addTasks = addNewExternalData(this, this, false); + AsynchClientTask[] taskArray = new AsynchClientTask[2 + addTasks.length]; + System.arraycopy(addTasks, 0, taskArray, 2, addTasks.length); // add to the end + + taskArray[0] = new AsynchClientTask("select a file", AsynchClientTask.TASKTYPE_SWING_BLOCKING) { + public void run(Hashtable hashTable) throws Exception { + FieldDataFileOperationSpec argfdos = (FieldDataFileOperationSpec) hashTable.get("argfdos"); + if (argfdos == null && hashTable.get(IMAGE_FILE_KEY) == null) { + File imageFile = DatabaseWindowManager.showFileChooserDialog( + fieldDataWindowManager.getComponent(), FileFilters.FILE_FILTER_FIELDIMAGES, + clientRequestManager.getUserPreferences(), JFileChooser.FILES_AND_DIRECTORIES); + hashTable.put(IMAGE_FILE_KEY, imageFile); + } + } + }; + taskArray[1] = new AsynchClientTask("Generate field data from file", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { + public void run(Hashtable hashTable) throws Exception { + FieldDataFileOperationSpec generatedFieldData ; + File imageFile = (File) hashTable.get(IMAGE_FILE_KEY); + if (imageFile == null || imageFile.getName().contains(".vfrap")){ + return; + } else { + generatedFieldData = FieldDataFileConversion.createFDOSFromImageFile(imageFile, false, null); + } + + generatedFieldData.owner = clientRequestManager.getDocumentManager().getUser(); + generatedFieldData.opType = FieldDataFileOperationSpec.FDOS_ADD; + hashTable.put("fdos", generatedFieldData); + hashTable.put("initFDName", imageFile.getName()); + } + }; + Hashtable hash = new Hashtable<>(); + ClientTaskDispatcher.dispatch(this, hash, taskArray, false, true, null); + } + + private void fdDelete(java.awt.event.ActionEvent actionEvent) { + + final RequestManager clientRequestManager = fieldDataWindowManager.getLocalRequestManager(); + + + TreePath selPath = getFieldDataTree().getSelectionPath(); + final DefaultMutableTreeNode mainNode = (DefaultMutableTreeNode) selPath.getLastPathComponent(); + final FieldDataMainList fieldDataMainList = (FieldDataMainList) mainNode.getUserObject(); + + if (!fieldDataMainList.externalDataIdentifier.getOwner().equals( + clientRequestManager.getDocumentManager().getUser())) { + DialogUtils.showErrorDialog(this, "Delete failed: User " + clientRequestManager.getDocumentManager().getUser().getName() + + "does not own FieldData '" + fieldDataMainList.externalDataIdentifier.getName() + "'"); + } + if (PopupGenerator.showComponentOKCancelDialog( + this, new JLabel("Delete " + fieldDataMainList.externalDataIdentifier.getName() + "?"), + "Confirm Delete") != JOptionPane.OK_OPTION) { + return; + + } + AsynchClientTask CheckRemoveFromDBTask = new AsynchClientTask("Check Field Data references in DB", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { + public void run(Hashtable hash) throws Exception { + if (fieldDataWindowManager.findReferencingModels(fieldDataMainList.externalDataIdentifier, false)) { + throw new Exception("Cannot delete Field Data '" + fieldDataMainList.externalDataIdentifier.getName() + + "' because it is referenced in a Model(s) or Function(s) file."); + } + } + }; + AsynchClientTask RemoveNodeTreeTask = new AsynchClientTask("Remove FieldData tree node", AsynchClientTask.TASKTYPE_SWING_BLOCKING) { + public void run(Hashtable hash) throws Exception { + ((DefaultTreeModel) getFieldDataTree().getModel()).removeNodeFromParent(mainNode); + if (((DefaultMutableTreeNode) getFieldDataTree().getModel().getRoot()).getChildCount() == 0) { + updateJTree(clientRequestManager); + } + } + }; + AsynchClientTask RemoveFromDiskAndDBTask = new AsynchClientTask("Remove Field Data from Disk and DB", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { + public void run(Hashtable hash) throws Exception { + //Remove from Disk + FieldDataMainList fieldDataMainList = (FieldDataMainList) mainNode.getUserObject(); + FieldDataFileOperationSpec fdos = FieldDataFileOperationSpec.createDeleteFieldDataFileOperationSpec( + fieldDataMainList.externalDataIdentifier); + clientRequestManager.getDocumentManager().fieldDataFileOperation(fdos); + } + }; + // + //Execute Field Data Info - JTree tasks + // + AsynchClientTask tasks[] = new AsynchClientTask[]{CheckRemoveFromDBTask, RemoveFromDiskAndDBTask, RemoveNodeTreeTask}; + Hashtable hash = new Hashtable(); + ClientTaskDispatcher.dispatch(this, hash, tasks, false); + + } + + private class SelectedTimes { + private double[] times; + private int selectedIndex; + + public SelectedTimes(double[] times, int selectedIndex) { + super(); + this.times = times; + this.selectedIndex = selectedIndex; + } + + public double[] getTimes() { + return times; + } + + public int getSelectedIndex() { + return selectedIndex; + } + + } + + private SelectedTimes selectTimeFromNode(DefaultMutableTreeNode mainNode) { + Enumeration children = mainNode.children(); + double[] times = null; + while (children.hasMoreElements()) { + DefaultMutableTreeNode child = (DefaultMutableTreeNode) children.nextElement(); + if (child.getUserObject() instanceof FieldDataTimeList) { + times = ((FieldDataTimeList) child.getUserObject()).times; + break; + } + } + + if (times != null && times.length > 1) { + String[] timesStr = new String[times.length]; + for (int i = 0; i < times.length; i += 1) { + timesStr[i] = times[i] + ""; + } + JPanel jp = new JPanel(); + BoxLayout bl = new BoxLayout(jp, BoxLayout.X_AXIS); + jp.setLayout(bl); + JComboBox jcBeg = new JComboBox(Arrays.asList(timesStr).toArray(new Object[0])); + jp.add(jcBeg); + + if (PopupGenerator.showComponentOKCancelDialog(this, jp, "Select Field Data timepoint") == JOptionPane.OK_OPTION) { + return new SelectedTimes(times, jcBeg.getSelectedIndex()); + } + throw UserCancelException.CANCEL_GENERIC; + } + return new SelectedTimes(new double[]{0.0}, 0); + } + + private void fdCopyRef(java.awt.event.ActionEvent actionEvent) { + if (actionEvent.getSource() == getJButtonCreateGeom()) { + DocumentWindow.showGeometryCreationWarning(FieldDataGUIPanel.this); + return; + } + TreePath selPath = getFieldDataTree().getSelectionPath(); + final DefaultMutableTreeNode varNode = (DefaultMutableTreeNode) selPath.getLastPathComponent(); + final DefaultMutableTreeNode mainNode = (DefaultMutableTreeNode) varNode.getParent().getParent(); + + SelectedTimes selectedTimes = null; + try { + selectedTimes = selectTimeFromNode(mainNode); + } catch (UserCancelException e) { + return; + } + double selectedTime = selectedTimes.getTimes()[selectedTimes.getSelectedIndex()]; + + if (actionEvent.getSource() == getJButtonFDCopyRef()) { + String fieldFunctionReference = + SimulationData.createCanonicalFieldFunctionSyntax( + ((FieldDataMainList) mainNode.getUserObject()).externalDataIdentifier.getName(), + ((FieldDataVarList) varNode.getUserObject()).dataIdentifier.getName(), + selectedTime, ((FieldDataVarList) varNode.getUserObject()).dataIdentifier.getVariableType().getTypeName()); + + VCellTransferable.sendToClipboard(fieldFunctionReference); + } else if (actionEvent.getSource() == dsDataSymbolButton && dataSymbolCallBack != null) { + dataSymbolCallBack.createDataSymbol( + ((FieldDataMainList) mainNode.getUserObject()).externalDataIdentifier, + ((FieldDataVarList) varNode.getUserObject()).dataIdentifier.getName(), + ((FieldDataVarList) varNode.getUserObject()).dataIdentifier.getVariableType(), + selectedTime); + } + + } + + private void treeExpanded(final javax.swing.event.TreeExpansionEvent treeExpansionEvent) { + if (fieldDataWindowManager == null) { + return; + } + // + //Determine if we need to get Info + // + javax.swing.tree.TreePath expPath = null; + try { + expPath = treeExpansionEvent.getPath(); + if (expPath != null) { + DefaultMutableTreeNode mainNode = (javax.swing.tree.DefaultMutableTreeNode) expPath.getLastPathComponent(); // if(mainNode.equals(getJTree1().getModel().getRoot())){ // System.out.println("Root Node expanded"); // } - if(mainNode.getUserObject() instanceof FieldDataMainList){ - if(mainNode.getChildCount() > 1){//Already populated - return; - } - refreshMainNode(mainNode); - }else{ - return; - } - }else{ - return; - } - }catch(Exception e){ - PopupGenerator.showErrorDialog(this, "Error getting Field Data Info\n"+e.getMessage(), e); - return; - } - -} - -public void refreshExternalDataIdentifierNode(ExternalDataIdentifier refreshEDI){ - DefaultMutableTreeNode root = (DefaultMutableTreeNode)getJTree1().getModel().getRoot(); - if(root != null){ - int childCount = root.getChildCount(); - for(int i=0;i hash) throws Exception { - FieldDataMainList fieldDataMainList = (FieldDataMainList)mainNode.getUserObject(); - final FieldDataFileOperationResults fieldDataFileOperationResults = - clientRequestManager.getDocumentManager(). - fieldDataFileOperation( - FieldDataFileOperationSpec.createInfoFieldDataFileOperationSpec( - fieldDataMainList.externalDataIdentifier.getKey(), - clientRequestManager.getDocumentManager().getUser(), - FieldDataFileOperationSpec.JOBINDEX_DEFAULT) - ); - hash.put(FDOR_INFO,fieldDataFileOperationResults); - } - }; - - AsynchClientTask FieldDataInfoTreeUpdate = new AsynchClientTask("Update Field Data GUI", AsynchClientTask.TASKTYPE_SWING_BLOCKING) { - public void run(Hashtable hash){ - try{ - FieldDataFileOperationResults fieldDataFileOperationResults = - (FieldDataFileOperationResults)hash.get(FDOR_INFO); - Arrays.sort(fieldDataFileOperationResults.dataIdentifierArr, - new Comparator(){ - public int compare(DataIdentifier o1, DataIdentifier o2) { - return o1.getName().compareToIgnoreCase(o2.getName()); - } - } - ); - FieldDataMainList fieldDataMainList = (FieldDataMainList)mainNode.getUserObject(); - final DefaultMutableTreeNode isizeNode = - new DefaultMutableTreeNode(new FieldDataISizeList(fieldDataFileOperationResults.iSize)); - final DefaultMutableTreeNode originNode = - new DefaultMutableTreeNode(new FieldDataOriginList(fieldDataFileOperationResults.origin)); - final DefaultMutableTreeNode extentNode = - new DefaultMutableTreeNode(new FieldDataExtentList(fieldDataFileOperationResults.extent)); - final DefaultMutableTreeNode timeNode = - new DefaultMutableTreeNode(new FieldDataTimeList(fieldDataFileOperationResults.times)); - final DefaultMutableTreeNode idNode = - new DefaultMutableTreeNode(new FieldDataIDList(fieldDataMainList.externalDataIdentifier.getKey())); - ((DefaultTreeModel)getJTree1().getModel()).insertNodeInto(isizeNode,mainNode,0); - ((DefaultTreeModel)getJTree1().getModel()).insertNodeInto(originNode,mainNode,1); - ((DefaultTreeModel)getJTree1().getModel()).insertNodeInto(extentNode,mainNode,2); - ((DefaultTreeModel)getJTree1().getModel()).insertNodeInto(timeNode,mainNode,3); - ((DefaultTreeModel)getJTree1().getModel()).insertNodeInto(idNode,mainNode,4); - for(int i=0;i hash = new Hashtable(); - ClientTaskDispatcher.dispatch(this,hash,tasks,false); -} - -/** - * main entrypoint - starts the part when it is run as an application - * @param args java.lang.String[] - */ -public static void main(java.lang.String[] args) { - try { - javax.swing.JFrame frame = new javax.swing.JFrame(); - FieldDataGUIPanel aFieldDataGUIPanel; - aFieldDataGUIPanel = new FieldDataGUIPanel(); - frame.setContentPane(aFieldDataGUIPanel); - frame.setSize(aFieldDataGUIPanel.getSize()); - frame.addWindowListener(new java.awt.event.WindowAdapter() { - public void windowClosing(java.awt.event.WindowEvent e) { - System.exit(0); - }; - }); - frame.setVisible(true); - java.awt.Insets insets = frame.getInsets(); - frame.setSize(frame.getWidth() + insets.left + insets.right, frame.getHeight() + insets.top + insets.bottom); - frame.setVisible(true); - } catch (Throwable exception) { - System.err.println("Exception occurred in main() of javax.swing.JPanel"); - exception.printStackTrace(System.out); - } -} - -public void setFieldDataWindowManager(FieldDataWindowManager fdwm){ - fieldDataWindowManager = fdwm; -} - -public void checkFieldDataName(String fieldDataName) throws Exception{ - if(fieldDataName == null || fieldDataName.length() == 0 || - !fieldDataName.equals(TokenMangler.fixTokenStrict(fieldDataName))){ - throw new Exception("Field Data names can contain only letters,digits and underscores"); - } - //Check to see if this name is already used - DefaultMutableTreeNode rootNode = (DefaultMutableTreeNode)this.getJTree1().getModel().getRoot(); - if(!rootNode.getUserObject().toString().startsWith(FIELD_DATA_INFO)) { - updateJTree(fieldDataWindowManager.getLocalRequestManager()); - rootNode = (DefaultMutableTreeNode)this.getJTree1().getModel().getRoot(); - } - for(int i=0;i hashTable) throws Exception { - //Check if this is ImageJ op, if so, this task unnecessary - if(hashTable.get(USER_DEFINED_FDOS) != null && hashTable.get(FIELD_NAME) != null) { - return; - } - //Allow user to review/change info about fielddata - FieldDataFileOperationSpec fdos = (FieldDataFileOperationSpec)hashTable.get("fdos"); - String initialExtDataName = (String)hashTable.get("initFDName"); - - fdos.specEDI = null; - - FieldDataInfoPanel fdip = new FieldDataInfoPanel(); - fdip.setSimulationMode(isFromSimulation); - fdip.initISize(fdos.isize); - fdip.initIOrigin(fdos.origin); - fdip.initIExtent(fdos.extent); - fdip.initTimes(fdos.times); - fdip.initNames(TokenMangler.fixTokenStrict(initialExtDataName), fdos.varNames); - fdip.setAnnotation(fdos.annotation); - - FieldDataFileOperationSpec userDefinedFDOS = new FieldDataFileOperationSpec(); - while(true) { - int choice = PopupGenerator.showComponentOKCancelDialog(requester, fdip, "Create new field data"); - if (choice == JOptionPane.OK_OPTION){ - //Check values - try{ - userDefinedFDOS.extent = fdip.getExtent(); - }catch(Exception e){ - PopupGenerator.showErrorDialog(requester, "Problem with Extent values. Please re-enter.\n"+e.getMessage()+"\nTry Again.", e); - continue; - } - try{ - userDefinedFDOS.origin = fdip.getOrigin(); - }catch(Exception e){ - PopupGenerator.showErrorDialog(requester, "Problem with Origin values. Please re-enter.\n"+e.getMessage()+"\nTry Again.", e); - continue; - } - try{ - userDefinedFDOS.varNames = fdip.getVariableNames(); - }catch(Exception e){ - PopupGenerator.showErrorDialog(requester, "Problem with Variable names. Please re-enter.\n"+e.getMessage()+"\nTry Again.", e); - continue; - } - userDefinedFDOS.annotation = fdip.getAnnotation(); - userDefinedFDOS.times = fdip.getTimes(); - try{ - fieldDataGUIPanel.checkFieldDataName(fdip.getFieldName()); - }catch(Exception e){ - PopupGenerator.showErrorDialog(requester, "Error saving Field Data Name to Database. Try again.\n"+e.getMessage(), e); - continue; - } - hashTable.put(USER_DEFINED_FDOS, userDefinedFDOS); - hashTable.put(FIELD_NAME, fdip.getFieldName()); - break; - } else { - throw UserCancelException.CANCEL_GENERIC; - } - } - } - }; - - AsynchClientTask task2 = new AsynchClientTask("saving field data", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { - @Override - public void run(Hashtable hashTable) throws Exception { - //Add to Server Disk - //save Database - FieldDataFileOperationSpec tempFDOS = (FieldDataFileOperationSpec)hashTable.get(USER_DEFINED_FDOS); - String fieldName = (String)hashTable.get(FIELD_NAME); - - FieldDataFileOperationSpec fdos = (FieldDataFileOperationSpec)hashTable.get("fdos"); - DocumentManager documentManager = clientRequestManager.getDocumentManager(); - FieldDataDBOperationSpec newExtDataIDSpec = FieldDataDBOperationSpec.createSaveNewExtDataIDSpec(documentManager.getUser(),fieldName,tempFDOS.annotation); - tempFDOS.specEDI = documentManager.fieldDataDBOperation(newExtDataIDSpec).extDataID; - fdos.specEDI = tempFDOS.specEDI; - fdos.annotation = tempFDOS.annotation; - - try{ - if(!isFromSimulation){ - fdos.extent = tempFDOS.extent; - fdos.origin = tempFDOS.origin; - fdos.varNames = tempFDOS.varNames; - fdos.times = tempFDOS.times; - // - //Subvolumes and Regions NOT implemented now - // - fdos.cartesianMesh = CartesianMesh.createSimpleCartesianMesh(fdos.origin, fdos.extent, fdos.isize, - new RegionImage(new VCImageUncompressed(null, new byte[fdos.isize.getXYZ()],//empty regions - fdos.extent, fdos.isize.getX(),fdos.isize.getY(),fdos.isize.getZ()), - 0,null,null,RegionImage.NO_SMOOTHING)); - } - - //Add to Server Disk - documentManager.fieldDataFileOperation(fdos); - } catch (Exception e) { - try{ - //try to cleanup new ExtDataID - documentManager.fieldDataDBOperation(FieldDataDBOperationSpec.createDeleteExtDataIDSpec(fdos.specEDI)); - }catch(Exception e2){ - //ignore - } - fdos.specEDI = null; - throw e; - } - } - }; - - AsynchClientTask task3 = new AsynchClientTask("refreshing field data", AsynchClientTask.TASKTYPE_SWING_BLOCKING) { - @Override - public void run(Hashtable hashTable) throws Exception { - FieldDataFileOperationSpec fdos = (FieldDataFileOperationSpec)hashTable.get("fdos"); - - DefaultMutableTreeNode root = ((DefaultMutableTreeNode)fieldDataGUIPanel.getJTree1().getModel().getRoot()); - if (root.getChildCount() == 0) { - fieldDataGUIPanel.updateJTree(clientRequestManager); - } else { - int alphabeticalIndex = -1; - for(int i=0;i 0){ - alphabeticalIndex = i; - break; - } - } - if (alphabeticalIndex == -1){ - alphabeticalIndex = root.getChildCount(); - } - DefaultMutableTreeNode mainNode = new DefaultMutableTreeNode(new FieldDataMainList(fdos.specEDI,fdos.annotation)); - mainNode.add(new DefaultMutableTreeNode(new FieldDataVarMainList())); - ((DefaultTreeModel)fieldDataGUIPanel.getJTree1().getModel()).insertNodeInto(mainNode, root, alphabeticalIndex); - } - } - }; - - return new AsynchClientTask[] { task1, task2, task3 }; -} - -/** - * This method initializes jButtonFindRefModel - * - * @return javax.swing.JButton - */ -private JButton getJButtonFindRefModel() { - if (jButtonFindRefModel == null) { - jButtonFindRefModel = new JButton(); - jButtonFindRefModel.setText("Model Refs..."); - jButtonFindRefModel.setEnabled(false); - jButtonFindRefModel.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent e) { - TreePath selPath = getJTree1().getSelectionPath(); - DefaultMutableTreeNode mainNode = (DefaultMutableTreeNode)selPath.getLastPathComponent(); - if(mainNode.getUserObject() instanceof FieldDataMainList){ - final ExternalDataIdentifier extDataID = ((FieldDataMainList)mainNode.getUserObject()).externalDataIdentifier; - - AsynchClientTask task1 = new AsynchClientTask("find model references", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { - - @Override - public void run(Hashtable hashTable) throws Exception { - fieldDataWindowManager.findReferencingModels(extDataID,true); - } - }; - ClientTaskDispatcher.dispatch(FieldDataGUIPanel.this, new Hashtable(), new AsynchClientTask[] { task1 }, false); - } - } - }); - } - return jButtonFindRefModel; -} - -/** - * This method initializes jPanel - * - * @return javax.swing.JPanel - */ -private JPanel getJPanel() { - if (jPanel == null) { - GridBagConstraints gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 0; - gridBagConstraints.weightx = 1.0; - gridBagConstraints.insets = new Insets(4, 4, 4, 4); - GridBagConstraints gridBagConstraints2 = new GridBagConstraints(); - gridBagConstraints2.gridx = 0; - gridBagConstraints2.insets = new Insets(4, 4, 4, 4); - gridBagConstraints2.gridy = 0; - jPanel = new JPanel(); - jPanel.setLayout(new GridBagLayout()); - jPanel.add(getJButtonCreateGeom(), gridBagConstraints2); - jPanel.add(getJButtonFindRefModel(), gridBagConstraints); - } - return jPanel; -} - -/** - * This method initializes jButtonCopyInfo - * - * @return javax.swing.JButton - */ -private JButton getJButtonCreateGeom() { - if (jButtonCreateGeom == null) { - jButtonCreateGeom = new JButton(); - jButtonCreateGeom.setEnabled(false); - jButtonCreateGeom.setText("Create Geom"); - jButtonCreateGeom.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent e) { - try { - RequestManager clientRequestManager = fieldDataWindowManager.getLocalRequestManager(); - javax.swing.tree.TreePath selPath = getJTree1().getSelectionPath(); - javax.swing.tree.DefaultMutableTreeNode lastPathComponent = (javax.swing.tree.DefaultMutableTreeNode)selPath.getLastPathComponent(); - if(lastPathComponent.getUserObject() instanceof FieldDataVarList){ - DataIdentifier dataIdentifier = - ((FieldDataVarList)lastPathComponent.getUserObject()).dataIdentifier; - - TreePath ppPath = selPath.getParentPath().getParentPath(); - javax.swing.tree.DefaultMutableTreeNode ppLastPathComp = (javax.swing.tree.DefaultMutableTreeNode)ppPath.getLastPathComponent(); - if(ppLastPathComp.getUserObject() instanceof FieldDataMainList){ - ExternalDataIdentifier extDataID = - ((FieldDataMainList)ppLastPathComp.getUserObject()).externalDataIdentifier; - - final OpenModelInfoHolder openModelInfoHolder = - FieldDataWindowManager.selectOpenModelsFromDesktop(FieldDataGUIPanel.this,fieldDataWindowManager.getRequestManager(),false,"Select BioModel or MathModel to receive new geometry",false); - if(openModelInfoHolder == null){ - DialogUtils.showErrorDialog(FieldDataGUIPanel.this, - "Before proceeding, please open a Biomodel application or Mathmodel you wish to apply a new Field Data Geometry to"); - return; - } - - AsynchClientTask applyGeomTask = new AsynchClientTask("apply geometry",AsynchClientTask.TASKTYPE_SWING_BLOCKING) { - @Override - public void run(Hashtable hashTable) throws Exception { - Geometry newGeom = (Geometry)hashTable.get("doc"); - final String OK_OPTION = "Ok"; - if(openModelInfoHolder instanceof FDSimMathModelInfo){ - Version version = ((FDSimMathModelInfo)openModelInfoHolder).getMathModelVersion(); - String modelName = (version==null?"NoName":version.getName()); - if(newGeom.getName() == null){ - newGeom.setName(modelName+"_"+BeanUtils.generateDateTimeString()); - } - String message = "Confirm Setting new FieldData derived geometry on MathModel '"+modelName+"'"; - if(DialogUtils.showWarningDialog(FieldDataGUIPanel.this, message, new String[] {OK_OPTION,"Cancel"}, OK_OPTION).equals(OK_OPTION)){ - ((FDSimMathModelInfo)openModelInfoHolder).getMathDescription().setGeometry(newGeom); - } - }else if(openModelInfoHolder instanceof FDSimBioModelInfo){ - Version version = ((FDSimBioModelInfo)openModelInfoHolder).getBioModelVersion(); - String modelName = (version==null?"NoName":version.getName()); - String simContextName = ((FDSimBioModelInfo)openModelInfoHolder).getSimulationContext().getName(); - if(newGeom.getName() == null){ - newGeom.setName(modelName+"_"+simContextName+"_"+BeanUtils.generateDateTimeString()); - } - String message = "Confirm Setting new FieldData derived geometry on BioModel '"+modelName+"' , Application '"+simContextName+"'"; - if(DialogUtils.showWarningDialog(FieldDataGUIPanel.this, message, new String[] {OK_OPTION,"Cancel"}, OK_OPTION).equals(OK_OPTION)){ - ((FDSimBioModelInfo)openModelInfoHolder).getSimulationContext().setGeometry(newGeom); - } - } - } - }; - VCDocument.GeomFromFieldDataCreationInfo geomFromFieldDataCreationInfo = - new VCDocument.GeomFromFieldDataCreationInfo( - extDataID,dataIdentifier.getName()); - AsynchClientTask[] createGeomTask = clientRequestManager.createNewGeometryTasks(fieldDataWindowManager, - geomFromFieldDataCreationInfo, - new AsynchClientTask[] {applyGeomTask}, - "Apply Geometry"); - - Hashtable hash = new Hashtable(); - hash.put(ClientRequestManager.GUI_PARENT, fieldDataWindowManager.getComponent()); - ClientTaskDispatcher.dispatch(FieldDataGUIPanel.this, hash, - createGeomTask, false,false,null,true); - - } - - } - }catch (UserCancelException e1) { - //ignore - }catch (Exception e1) { - e1.printStackTrace(); - DialogUtils.showErrorDialog(FieldDataGUIPanel.this, e1.getMessage()); - } - -// jButtonFDCopyRef_ActionPerformed(e); - - - - //fieldDataWindowManager.newDocument(VCDocument.GEOMETRY_DOC, option); -// copyMethod(COPY_CRNL); -//// javax.swing.tree.TreePath selPath = getJTree1().getSelectionPath(); -//// if(selPath != null){ -//// javax.swing.tree.DefaultMutableTreeNode lastPathComponent = (javax.swing.tree.DefaultMutableTreeNode)selPath.getLastPathComponent(); -//// copyMethod(lastPathComponent, copyMode); -//// } -//// String copyString = ""; -//// javax.swing.tree.DefaultMutableTreeNode lastPathComponent = (javax.swing.tree.DefaultMutableTreeNode)selPath.getLastPathComponent(); -//// if(lastPathComponent.equals(getJTree1().getModel().getRoot())){ -//// int childCount = lastPathComponent.getChildCount(); -//// for(int i=0;i 0 ){ -//// VCellTransferable.sendToClipboard(copyString); -//// } -//// } - } - }); - } - return jButtonCreateGeom; -} - -/** - * This method initializes jPanel1 - * - * @return javax.swing.JPanel - */ -private JPanel getJPanel12() { - if (jPanel1 == null) { - GridBagConstraints gridBagConstraints3 = new GridBagConstraints(); - gridBagConstraints3.gridx = 1; - gridBagConstraints3.insets = new Insets(4, 4, 4, 4); - gridBagConstraints3.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints3.weightx = 1.0; - gridBagConstraints3.gridy = 0; - GridBagConstraints gridBagConstraints1 = new GridBagConstraints(); - gridBagConstraints1.fill = GridBagConstraints.NONE; - gridBagConstraints1.gridx = 0; - gridBagConstraints1.gridy = 0; - gridBagConstraints1.insets = new Insets(4, 4, 4, 4); - jPanel1 = new JPanel(); - jPanel1.setLayout(new GridBagLayout()); - jPanel1.add(getJButtonFDCopyRef(), gridBagConstraints1); - jPanel1.add(getJButtonViewAnnot(), gridBagConstraints3); - } - return jPanel1; -} - -/** - * This method initializes jButtonViewAnnot - * - * @return javax.swing.JButton - */ -ActionListener viewAnnotAction = new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent e) { - javax.swing.tree.TreePath selPath = getJTree1().getSelectionPath(); - if(selPath != null){ - javax.swing.tree.DefaultMutableTreeNode lastPathComponent = - (javax.swing.tree.DefaultMutableTreeNode)selPath.getLastPathComponent(); - if(lastPathComponent.getUserObject() instanceof FieldDataMainList){ - PopupGenerator.showInfoDialog(FieldDataGUIPanel.this, - ((FieldDataMainList)(lastPathComponent.getUserObject())).extDataAnnot); - } - } - } -}; -private JButton getJButtonViewAnnot() { - if (jButtonViewAnnot == null) { - jButtonViewAnnot = new JButton(); - jButtonViewAnnot.setText("View Annot..."); - jButtonViewAnnot.setEnabled(false); - jButtonViewAnnot.addActionListener(viewAnnotAction); - } - return jButtonViewAnnot; -} + if (mainNode.getUserObject() instanceof FieldDataMainList) { + if (mainNode.getChildCount() > 1) {//Already populated + return; + } + refreshMainNode(mainNode); + } else { + return; + } + } else { + return; + } + } catch (Exception e) { + PopupGenerator.showErrorDialog(this, "Error getting Field Data Info\n" + e.getMessage(), e); + return; + } + + } + + public void refreshExternalDataIdentifierNode(ExternalDataIdentifier refreshEDI) { + DefaultMutableTreeNode root = (DefaultMutableTreeNode) getFieldDataTree().getModel().getRoot(); + if (root != null) { + int childCount = root.getChildCount(); + for (int i = 0; i < childCount; i += 1) { + DefaultMutableTreeNode mainNode = (DefaultMutableTreeNode) root.getChildAt(i); + FieldDataMainList fieldDataMainList = (FieldDataMainList) mainNode.getUserObject(); + if (fieldDataMainList.externalDataIdentifier.equals(refreshEDI)) { + refreshMainNode(mainNode); + return; + } + } + } + } + + private void refreshMainNode(final DefaultMutableTreeNode mainNode) { + final boolean isMainExpanded = getFieldDataTree().isExpanded(new TreePath(mainNode.getPath())); + final boolean isVarExpanded = getFieldDataTree().isExpanded( + new TreePath(((DefaultMutableTreeNode) mainNode.getLastChild()).getPath())); + //Remove all children from Main node in a Tree safe way + DefaultMutableTreeNode root = (DefaultMutableTreeNode) getFieldDataTree().getModel().getRoot(); + int mainNodeIndex = + ((DefaultTreeModel) getFieldDataTree().getModel()).getIndexOfChild(root, mainNode); + ((DefaultTreeModel) getFieldDataTree().getModel()).removeNodeFromParent(mainNode); + mainNode.removeAllChildren(); + final DefaultMutableTreeNode varNode = new DefaultMutableTreeNode(new FieldDataVarMainList()); + mainNode.add(varNode); + ((DefaultTreeModel) getFieldDataTree().getModel()).insertNodeInto(mainNode, root, mainNodeIndex); + // + //Create thread-safe tasks to get Field Data Info and update JTree + // + final String FDOR_INFO = "FDOR_INFO"; + final RequestManager clientRequestManager = fieldDataWindowManager.getLocalRequestManager(); + + AsynchClientTask FieldDataInfoTask = new AsynchClientTask("Gather Field Data info", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { + public void run(Hashtable hash) throws Exception { + FieldDataMainList fieldDataMainList = (FieldDataMainList) mainNode.getUserObject(); + final FieldDataFileOperationResults fieldDataFileOperationResults = + clientRequestManager.getDocumentManager(). + fieldDataFileOperation( + FieldDataFileOperationSpec.createInfoFieldDataFileOperationSpec( + fieldDataMainList.externalDataIdentifier.getKey(), + clientRequestManager.getDocumentManager().getUser(), + FieldDataFileOperationSpec.JOBINDEX_DEFAULT) + ); + hash.put(FDOR_INFO, fieldDataFileOperationResults); + } + }; + + AsynchClientTask FieldDataInfoTreeUpdate = new AsynchClientTask("Update Field Data GUI", AsynchClientTask.TASKTYPE_SWING_BLOCKING) { + public void run(Hashtable hash) { + try { + FieldDataFileOperationResults fieldDataFileOperationResults = + (FieldDataFileOperationResults) hash.get(FDOR_INFO); + Arrays.sort(fieldDataFileOperationResults.dataIdentifierArr, + new Comparator() { + public int compare(DataIdentifier o1, DataIdentifier o2) { + return o1.getName().compareToIgnoreCase(o2.getName()); + } + } + ); + FieldDataMainList fieldDataMainList = (FieldDataMainList) mainNode.getUserObject(); + final DefaultMutableTreeNode isizeNode = + new DefaultMutableTreeNode(new FieldDataISizeList(fieldDataFileOperationResults.iSize)); + final DefaultMutableTreeNode originNode = + new DefaultMutableTreeNode(new FieldDataOriginList(fieldDataFileOperationResults.origin)); + final DefaultMutableTreeNode extentNode = + new DefaultMutableTreeNode(new FieldDataExtentList(fieldDataFileOperationResults.extent)); + final DefaultMutableTreeNode timeNode = + new DefaultMutableTreeNode(new FieldDataTimeList(fieldDataFileOperationResults.times)); + final DefaultMutableTreeNode idNode = + new DefaultMutableTreeNode(new FieldDataIDList(fieldDataMainList.externalDataIdentifier.getKey())); + ((DefaultTreeModel) getFieldDataTree().getModel()).insertNodeInto(isizeNode, mainNode, 0); + ((DefaultTreeModel) getFieldDataTree().getModel()).insertNodeInto(originNode, mainNode, 1); + ((DefaultTreeModel) getFieldDataTree().getModel()).insertNodeInto(extentNode, mainNode, 2); + ((DefaultTreeModel) getFieldDataTree().getModel()).insertNodeInto(timeNode, mainNode, 3); + ((DefaultTreeModel) getFieldDataTree().getModel()).insertNodeInto(idNode, mainNode, 4); + for (int i = 0; i < fieldDataFileOperationResults.dataIdentifierArr.length; i += 1) { + ((DefaultTreeModel) getFieldDataTree().getModel()).insertNodeInto( + new DefaultMutableTreeNode( + new FieldDataVarList(fieldDataFileOperationResults.dataIdentifierArr[i])), + varNode, varNode.getChildCount()); + } + if (isMainExpanded) { + getFieldDataTree().expandPath(new TreePath(mainNode.getPath())); + } + if (isVarExpanded) { + getFieldDataTree().expandPath(new TreePath(varNode.getPath())); + } + } catch (Throwable e) { + hash.put(ClientTaskDispatcher.TASK_ABORTED_BY_ERROR, e); + } + } + }; + + // + //Execute Field Data Info - JTree tasks + // + AsynchClientTask tasks[] = new AsynchClientTask[]{FieldDataInfoTask, FieldDataInfoTreeUpdate}; + Hashtable hash = new Hashtable(); + ClientTaskDispatcher.dispatch(this, hash, tasks, false); + } + + /** + * main entrypoint - starts the part when it is run as an application + * + * @param args java.lang.String[] + */ + public static void main(java.lang.String[] args) { + try { + javax.swing.JFrame frame = new javax.swing.JFrame(); + FieldDataGUIPanel aFieldDataGUIPanel; + aFieldDataGUIPanel = new FieldDataGUIPanel(); + frame.setContentPane(aFieldDataGUIPanel); + frame.setSize(aFieldDataGUIPanel.getSize()); + frame.addWindowListener(new java.awt.event.WindowAdapter() { + public void windowClosing(java.awt.event.WindowEvent e) { + System.exit(0); + } + + ; + }); + frame.setVisible(true); + java.awt.Insets insets = frame.getInsets(); + frame.setSize(frame.getWidth() + insets.left + insets.right, frame.getHeight() + insets.top + insets.bottom); + frame.setVisible(true); + } catch (Throwable exception) { + System.err.println("Exception occurred in main() of javax.swing.JPanel"); + exception.printStackTrace(System.out); + } + } + + public void setFieldDataWindowManager(FieldDataWindowManager fdwm) { + fieldDataWindowManager = fdwm; + } + + public void checkFieldDataName(String fieldDataName) throws Exception { + if (fieldDataName == null || fieldDataName.length() == 0 || + !fieldDataName.equals(TokenMangler.fixTokenStrict(fieldDataName))) { + throw new Exception("Field Data names can contain only letters,digits and underscores"); + } + //Check to see if this name is already used + DefaultMutableTreeNode rootNode = (DefaultMutableTreeNode) this.getFieldDataTree().getModel().getRoot(); + if (!rootNode.getUserObject().toString().startsWith(FIELD_DATA_INFO)) { + updateJTree(fieldDataWindowManager.getLocalRequestManager()); + rootNode = (DefaultMutableTreeNode) this.getFieldDataTree().getModel().getRoot(); + } + for (int i = 0; i < rootNode.getChildCount(); i += 1) { + ExternalDataIdentifier extDataID = + ((FieldDataMainList) ((DefaultMutableTreeNode) rootNode.getChildAt(i)).getUserObject()).externalDataIdentifier; + if (fieldDataName.equals(extDataID.getName())) { + throw new Exception("New Field Data name " + fieldDataName + " already used."); + } + } + } + + // creation and saving of file is separate act from saving file info into DB + + public static AsynchClientTask[] addNewExternalData(final Component requester, final FieldDataGUIPanel fieldDataGUIPanel, final boolean isFromSimulation) { + + final RequestManager clientRequestManager = fieldDataGUIPanel.fieldDataWindowManager.getLocalRequestManager(); + + AsynchClientTask task1 = new AsynchClientTask("review field data", AsynchClientTask.TASKTYPE_SWING_BLOCKING) { + + @Override + public void run(Hashtable hashTable) throws Exception { + //Allow user to review/change info about fielddata + FieldDataFileOperationSpec generatedFieldDataOpSpec = (FieldDataFileOperationSpec) hashTable.get("fdos"); + String initialExtDataName = (String) hashTable.get("initFDName"); + + generatedFieldDataOpSpec.specEDI = null; + + FieldDataInfoPanel fieldDataInfoPanel = new FieldDataInfoPanel(); + fieldDataInfoPanel.setSimulationMode(isFromSimulation); + fieldDataInfoPanel.initISize(generatedFieldDataOpSpec.isize); + fieldDataInfoPanel.initIOrigin(generatedFieldDataOpSpec.origin); + fieldDataInfoPanel.initIExtent(generatedFieldDataOpSpec.extent); + fieldDataInfoPanel.initTimes(generatedFieldDataOpSpec.times); + fieldDataInfoPanel.initNames(TokenMangler.fixTokenStrict(initialExtDataName), generatedFieldDataOpSpec.varNames); + fieldDataInfoPanel.setAnnotation(generatedFieldDataOpSpec.annotation); + + FieldDataFileOperationSpec userDefinedFDOS = new FieldDataFileOperationSpec(); + while (true) { + int choice = PopupGenerator.showComponentOKCancelDialog(requester, fieldDataInfoPanel, "Create new field data"); + if (choice == JOptionPane.OK_OPTION) { + //Check values + try { + userDefinedFDOS.extent = fieldDataInfoPanel.getExtent(); + } catch (Exception e) { + PopupGenerator.showErrorDialog(requester, "Problem with Extent values. Please re-enter.\n" + e.getMessage() + "\nTry Again.", e); + continue; + } + try { + userDefinedFDOS.origin = fieldDataInfoPanel.getOrigin(); + } catch (Exception e) { + PopupGenerator.showErrorDialog(requester, "Problem with Origin values. Please re-enter.\n" + e.getMessage() + "\nTry Again.", e); + continue; + } + try { + userDefinedFDOS.varNames = fieldDataInfoPanel.getVariableNames(); + } catch (Exception e) { + PopupGenerator.showErrorDialog(requester, "Problem with Variable names. Please re-enter.\n" + e.getMessage() + "\nTry Again.", e); + continue; + } + userDefinedFDOS.annotation = fieldDataInfoPanel.getAnnotation(); + userDefinedFDOS.times = fieldDataInfoPanel.getTimes(); + try { + fieldDataGUIPanel.checkFieldDataName(fieldDataInfoPanel.getFieldName()); + } catch (Exception e) { + PopupGenerator.showErrorDialog(requester, "Error saving Field Data Name to Database. Try again.\n" + e.getMessage(), e); + continue; + } + if (!isFromSimulation){ + generatedFieldDataOpSpec.extent = userDefinedFDOS.extent; + generatedFieldDataOpSpec.origin = userDefinedFDOS.origin; + generatedFieldDataOpSpec.varNames = userDefinedFDOS.varNames; + generatedFieldDataOpSpec.times = userDefinedFDOS.times; + } + generatedFieldDataOpSpec.annotation = userDefinedFDOS.annotation; + hashTable.put(USER_DEFINED_FDOS, userDefinedFDOS); + hashTable.put(FIELD_NAME, fieldDataInfoPanel.getFieldName()); + break; + } else { + throw UserCancelException.CANCEL_GENERIC; + } + } + } + }; + + AsynchClientTask task2 = new AsynchClientTask("saving field data", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { + @Override + public void run(Hashtable hashTable) throws Exception { + //Add to Server Disk + //save Database + String fieldName = (String) hashTable.get(FIELD_NAME); + FieldDataFileOperationSpec generatedFieldDataOpSpec + = (FieldDataFileOperationSpec) hashTable.get("fdos"); + DocumentManager documentManager = clientRequestManager.getDocumentManager(); + generatedFieldDataOpSpec.fieldDataName = fieldName; + try { + //Add to Server Disk + FieldDataFileOperationResults results = documentManager.fieldDataFileOperation(generatedFieldDataOpSpec); + generatedFieldDataOpSpec.specEDI = results.externalDataIdentifier; + } catch (Exception e) { + generatedFieldDataOpSpec.specEDI = null; + throw e; + } + } + }; + + AsynchClientTask task3 = new AsynchClientTask("refreshing field data", AsynchClientTask.TASKTYPE_SWING_BLOCKING) { + @Override + public void run(Hashtable hashTable) throws Exception { + FieldDataFileOperationSpec fdos = (FieldDataFileOperationSpec) hashTable.get("fdos"); + + DefaultMutableTreeNode root = ((DefaultMutableTreeNode) fieldDataGUIPanel.getFieldDataTree().getModel().getRoot()); + if (root.getChildCount() == 0) { + fieldDataGUIPanel.updateJTree(clientRequestManager); + } else { + int alphabeticalIndex = -1; + for (int i = 0; i < root.getChildCount(); i += 1) { + if ((((FieldDataMainList) ((DefaultMutableTreeNode) root.getChildAt(i)).getUserObject())).externalDataIdentifier.getName(). + compareToIgnoreCase(fdos.specEDI.getName()) > 0) { + alphabeticalIndex = i; + break; + } + } + if (alphabeticalIndex == -1) { + alphabeticalIndex = root.getChildCount(); + } + DefaultMutableTreeNode mainNode = new DefaultMutableTreeNode(new FieldDataMainList(fdos.specEDI, fdos.annotation)); + mainNode.add(new DefaultMutableTreeNode(new FieldDataVarMainList())); + ((DefaultTreeModel) fieldDataGUIPanel.getFieldDataTree().getModel()).insertNodeInto(mainNode, root, alphabeticalIndex); + } + } + }; + + return new AsynchClientTask[]{task1, task2, task3}; + } + + /** + * This method initializes jButtonFindRefModel + * + * @return javax.swing.JButton + */ + private JButton getJButtonFindRefModel() { + if (jButtonFindRefModel == null) { + jButtonFindRefModel = new JButton(); + jButtonFindRefModel.setText("Model Refs..."); + jButtonFindRefModel.setEnabled(false); + jButtonFindRefModel.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + TreePath selPath = getFieldDataTree().getSelectionPath(); + DefaultMutableTreeNode mainNode = (DefaultMutableTreeNode) selPath.getLastPathComponent(); + if (mainNode.getUserObject() instanceof FieldDataMainList) { + final ExternalDataIdentifier extDataID = ((FieldDataMainList) mainNode.getUserObject()).externalDataIdentifier; + + AsynchClientTask task1 = new AsynchClientTask("find model references", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) { + + @Override + public void run(Hashtable hashTable) throws Exception { + fieldDataWindowManager.findReferencingModels(extDataID, true); + } + }; + ClientTaskDispatcher.dispatch(FieldDataGUIPanel.this, new Hashtable(), new AsynchClientTask[]{task1}, false); + } + } + }); + } + return jButtonFindRefModel; + } + + /** + * This method initializes jPanel + * + * @return javax.swing.JPanel + */ + private JPanel getJPanel() { + if (jPanel == null) { + GridBagConstraints gridBagConstraints = new GridBagConstraints(); + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; + gridBagConstraints.gridx = 1; + gridBagConstraints.gridy = 0; + gridBagConstraints.weightx = 1.0; + gridBagConstraints.insets = new Insets(4, 4, 4, 4); + GridBagConstraints gridBagConstraints2 = new GridBagConstraints(); + gridBagConstraints2.gridx = 0; + gridBagConstraints2.insets = new Insets(4, 4, 4, 4); + gridBagConstraints2.gridy = 0; + jPanel = new JPanel(); + jPanel.setLayout(new GridBagLayout()); + jPanel.add(getJButtonCreateGeom(), gridBagConstraints2); + jPanel.add(getJButtonFindRefModel(), gridBagConstraints); + } + return jPanel; + } + + /** + * This method initializes jButtonCopyInfo + * + * @return javax.swing.JButton + */ + private JButton getJButtonCreateGeom() { + if (createGeomButton == null) { + createGeomButton = new JButton(); + createGeomButton.setEnabled(false); + createGeomButton.setText("Create Geom"); + createGeomButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + try { + RequestManager clientRequestManager = fieldDataWindowManager.getLocalRequestManager(); + javax.swing.tree.TreePath selPath = getFieldDataTree().getSelectionPath(); + javax.swing.tree.DefaultMutableTreeNode lastPathComponent = (javax.swing.tree.DefaultMutableTreeNode) selPath.getLastPathComponent(); + if (lastPathComponent.getUserObject() instanceof FieldDataVarList) { + DataIdentifier dataIdentifier = + ((FieldDataVarList) lastPathComponent.getUserObject()).dataIdentifier; + + TreePath ppPath = selPath.getParentPath().getParentPath(); + javax.swing.tree.DefaultMutableTreeNode ppLastPathComp = (javax.swing.tree.DefaultMutableTreeNode) ppPath.getLastPathComponent(); + if (ppLastPathComp.getUserObject() instanceof FieldDataMainList) { + ExternalDataIdentifier extDataID = + ((FieldDataMainList) ppLastPathComp.getUserObject()).externalDataIdentifier; + + final OpenModelInfoHolder openModelInfoHolder = + FieldDataWindowManager.selectOpenModelsFromDesktop(FieldDataGUIPanel.this, fieldDataWindowManager.getRequestManager(), false, "Select BioModel or MathModel to receive new geometry", false); + if (openModelInfoHolder == null) { + DialogUtils.showErrorDialog(FieldDataGUIPanel.this, + "Before proceeding, please open a Biomodel application or Mathmodel you wish to apply a new Field Data Geometry to"); + return; + } + + AsynchClientTask applyGeomTask = new AsynchClientTask("apply geometry", AsynchClientTask.TASKTYPE_SWING_BLOCKING) { + @Override + public void run(Hashtable hashTable) throws Exception { + Geometry newGeom = (Geometry) hashTable.get("doc"); + final String OK_OPTION = "Ok"; + if (openModelInfoHolder instanceof FDSimMathModelInfo) { + Version version = ((FDSimMathModelInfo) openModelInfoHolder).getMathModelVersion(); + String modelName = (version == null ? "NoName" : version.getName()); + if (newGeom.getName() == null) { + newGeom.setName(modelName + "_" + BeanUtils.generateDateTimeString()); + } + String message = "Confirm Setting new FieldData derived geometry on MathModel '" + modelName + "'"; + if (DialogUtils.showWarningDialog(FieldDataGUIPanel.this, message, new String[]{OK_OPTION, "Cancel"}, OK_OPTION).equals(OK_OPTION)) { + ((FDSimMathModelInfo) openModelInfoHolder).getMathDescription().setGeometry(newGeom); + } + } else if (openModelInfoHolder instanceof FDSimBioModelInfo) { + Version version = ((FDSimBioModelInfo) openModelInfoHolder).getBioModelVersion(); + String modelName = (version == null ? "NoName" : version.getName()); + String simContextName = ((FDSimBioModelInfo) openModelInfoHolder).getSimulationContext().getName(); + if (newGeom.getName() == null) { + newGeom.setName(modelName + "_" + simContextName + "_" + BeanUtils.generateDateTimeString()); + } + String message = "Confirm Setting new FieldData derived geometry on BioModel '" + modelName + "' , Application '" + simContextName + "'"; + if (DialogUtils.showWarningDialog(FieldDataGUIPanel.this, message, new String[]{OK_OPTION, "Cancel"}, OK_OPTION).equals(OK_OPTION)) { + ((FDSimBioModelInfo) openModelInfoHolder).getSimulationContext().setGeometry(newGeom); + } + } + } + }; + VCDocument.GeomFromFieldDataCreationInfo geomFromFieldDataCreationInfo = + new VCDocument.GeomFromFieldDataCreationInfo( + extDataID, dataIdentifier.getName()); + AsynchClientTask[] createGeomTask = clientRequestManager.createNewGeometryTasks(fieldDataWindowManager, + geomFromFieldDataCreationInfo, + new AsynchClientTask[]{applyGeomTask}, + "Apply Geometry"); + + Hashtable hash = new Hashtable(); + hash.put(ClientRequestManager.GUI_PARENT, fieldDataWindowManager.getComponent()); + ClientTaskDispatcher.dispatch(FieldDataGUIPanel.this, hash, + createGeomTask, false, false, null, true); + + } + + } + } catch (UserCancelException e1) { + //ignore + } catch (Exception e1) { + e1.printStackTrace(); + DialogUtils.showErrorDialog(FieldDataGUIPanel.this, e1.getMessage()); + } + } + }); + } + return createGeomButton; + } + + /** + * This method initializes jPanel1 + * + * @return javax.swing.JPanel + */ + private JPanel getJPanel12() { + if (jPanel1 == null) { + GridBagConstraints gridBagConstraints3 = new GridBagConstraints(); + gridBagConstraints3.gridx = 1; + gridBagConstraints3.insets = new Insets(4, 4, 4, 4); + gridBagConstraints3.fill = GridBagConstraints.HORIZONTAL; + gridBagConstraints3.weightx = 1.0; + gridBagConstraints3.gridy = 0; + GridBagConstraints gridBagConstraints1 = new GridBagConstraints(); + gridBagConstraints1.fill = GridBagConstraints.NONE; + gridBagConstraints1.gridx = 0; + gridBagConstraints1.gridy = 0; + gridBagConstraints1.insets = new Insets(4, 4, 4, 4); + jPanel1 = new JPanel(); + jPanel1.setLayout(new GridBagLayout()); + jPanel1.add(getJButtonFDCopyRef(), gridBagConstraints1); + jPanel1.add(getJButtonViewAnnot(), gridBagConstraints3); + } + return jPanel1; + } + + /** + * This method initializes jButtonViewAnnot + * + * @return javax.swing.JButton + */ + ActionListener viewAnnotAction = new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + javax.swing.tree.TreePath selPath = getFieldDataTree().getSelectionPath(); + if (selPath != null) { + javax.swing.tree.DefaultMutableTreeNode lastPathComponent = + (javax.swing.tree.DefaultMutableTreeNode) selPath.getLastPathComponent(); + if (lastPathComponent.getUserObject() instanceof FieldDataMainList) { + PopupGenerator.showInfoDialog(FieldDataGUIPanel.this, + ((FieldDataMainList) (lastPathComponent.getUserObject())).extDataAnnot); + } + } + } + }; + + private JButton getJButtonViewAnnot() { + if (viewAnnotButton == null) { + viewAnnotButton = new JButton(); + viewAnnotButton.setText("View Annot..."); + viewAnnotButton.setEnabled(false); + viewAnnotButton.addActionListener(viewAnnotAction); + } + return viewAnnotButton; + } } diff --git a/vcell-core/src/main/java/cbit/vcell/field/FieldDataDBOperationResults.java b/vcell-core/src/main/java/cbit/vcell/field/FieldDataDBOperationResults.java index e3e2fb8a0a..160969ee49 100644 --- a/vcell-core/src/main/java/cbit/vcell/field/FieldDataDBOperationResults.java +++ b/vcell-core/src/main/java/cbit/vcell/field/FieldDataDBOperationResults.java @@ -11,12 +11,13 @@ package cbit.vcell.field; import java.io.Serializable; -import java.util.HashMap; -import java.util.Hashtable; -import java.util.Vector; +import java.util.*; +import java.util.stream.Collectors; +import org.vcell.restclient.model.FieldDataReference; import org.vcell.util.document.ExternalDataIdentifier; import org.vcell.util.document.KeyValue; +import org.vcell.util.document.User; public class FieldDataDBOperationResults implements Serializable { @@ -27,4 +28,24 @@ public class FieldDataDBOperationResults implements Serializable { public Hashtable oldNameNewIDHash; public Hashtable oldNameOldExtDataIDKeyHash; public HashMap> extdataIDAndSimRefH; + + + public static FieldDataDBOperationResults fieldDataReferencesToDBResults(List dto, User user){ + FieldDataDBOperationResults fieldDataDBOperationResults = new FieldDataDBOperationResults(); + ArrayList externalDataIdentifiers = new ArrayList<>(); + ArrayList externalDataAnnotations = new ArrayList<>(); + HashMap> externalDataIDSimRefs = new HashMap<>(); + for (FieldDataReference fieldDataReference : dto){ + ExternalDataIdentifier externalDataIdentifier = ExternalDataIdentifier.dtoToExternalDataIdentifier(fieldDataReference.getExternalDataIdentifier()); + externalDataIdentifiers.add(externalDataIdentifier); + externalDataAnnotations.add(fieldDataReference.getExternalDataAnnotation()); + List keyValues = fieldDataReference.getExternalDataIDSimRefs().stream().map(KeyValue::dtoToKeyValue).collect(Collectors.toList()); + externalDataIDSimRefs.put(externalDataIdentifier, new Vector<>(keyValues)); + } + fieldDataDBOperationResults.extDataIDArr = externalDataIdentifiers.toArray(new ExternalDataIdentifier[0]); + fieldDataDBOperationResults.extDataAnnotArr = externalDataAnnotations.toArray(new String[0]); + fieldDataDBOperationResults.extdataIDAndSimRefH = externalDataIDSimRefs; + return fieldDataDBOperationResults; + } + } diff --git a/vcell-core/src/main/java/cbit/vcell/field/FieldDataDBOperationSpec.java b/vcell-core/src/main/java/cbit/vcell/field/FieldDataDBOperationSpec.java index 977641a823..78e27f6670 100644 --- a/vcell-core/src/main/java/cbit/vcell/field/FieldDataDBOperationSpec.java +++ b/vcell-core/src/main/java/cbit/vcell/field/FieldDataDBOperationSpec.java @@ -36,13 +36,15 @@ public class FieldDataDBOperationSpec implements Serializable { private FieldDataDBOperationSpec(){ } - + private static FieldDataDBOperationSpec createOwnedFieldDataDBOperationSpec(User owner){ FieldDataDBOperationSpec fieldDataDBOperationSpec = new FieldDataDBOperationSpec(); fieldDataDBOperationSpec.owner = owner; return fieldDataDBOperationSpec; } + + @Deprecated public static FieldDataDBOperationSpec createCopyNoConflictExtDataIDsSpec( User argOwner,String[] argSourceNames,VersionableTypeVersion argSourceOwner){ FieldDataDBOperationSpec fieldDataDBOperationSpec = @@ -52,12 +54,16 @@ public static FieldDataDBOperationSpec createCopyNoConflictExtDataIDsSpec( fieldDataDBOperationSpec.sourceOwner = argSourceOwner; return fieldDataDBOperationSpec; } + + @Deprecated public static FieldDataDBOperationSpec createGetExtDataIDsSpec(User owner){ FieldDataDBOperationSpec fieldDataDBOperationSpec = createOwnedFieldDataDBOperationSpec(owner); fieldDataDBOperationSpec.opType = fieldDataDBOperationSpec.FDDBOS_GETEXTDATAIDS; return fieldDataDBOperationSpec; } + + @Deprecated public static FieldDataDBOperationSpec createGetExtDataIDsSpecWithSimRefs(User owner){ FieldDataDBOperationSpec fieldDataDBOperationSpec = createOwnedFieldDataDBOperationSpec(owner); @@ -65,6 +71,8 @@ public static FieldDataDBOperationSpec createGetExtDataIDsSpecWithSimRefs(User o fieldDataDBOperationSpec.bIncludeSimRefs = true; return fieldDataDBOperationSpec; } + + @Deprecated public static FieldDataDBOperationSpec createSaveNewExtDataIDSpec( User owner,String newExtDataIDName,String newExtDataAnnot){ FieldDataDBOperationSpec fieldDataDBOperationSpec = @@ -74,6 +82,8 @@ public static FieldDataDBOperationSpec createSaveNewExtDataIDSpec( fieldDataDBOperationSpec.annotation = newExtDataAnnot; return fieldDataDBOperationSpec; } + + @Deprecated public static FieldDataDBOperationSpec createDeleteExtDataIDSpec(ExternalDataIdentifier deleteExtDataID){ FieldDataDBOperationSpec fieldDataDBOperationSpec = createOwnedFieldDataDBOperationSpec(deleteExtDataID.getOwner()); diff --git a/vcell-core/src/main/java/cbit/vcell/field/FieldDataFileConversion.java b/vcell-core/src/main/java/cbit/vcell/field/FieldDataFileConversion.java new file mode 100644 index 0000000000..bdcc5a0d13 --- /dev/null +++ b/vcell-core/src/main/java/cbit/vcell/field/FieldDataFileConversion.java @@ -0,0 +1,85 @@ +package cbit.vcell.field; + +import cbit.image.ImageException; +import cbit.vcell.VirtualMicroscopy.ImageDataset; +import cbit.vcell.VirtualMicroscopy.UShortImage; +import cbit.vcell.field.io.FieldDataFileOperationSpec; +import cbit.vcell.math.VariableType; +import org.vcell.util.Extent; +import org.vcell.util.Origin; +import org.vcell.vcellij.ImageDatasetReader; +import org.vcell.vcellij.ImageDatasetReaderService; + +import java.awt.*; +import java.io.File; +import java.util.zip.DataFormatException; + +public class FieldDataFileConversion { + public static FieldDataFileOperationSpec createFDOSFromImageFile(File imageFile, boolean bCropOutBlack, + Integer saveOnlyThisTimePointIndex) throws DataFormatException, ImageException { + try { + ImageDatasetReader imageDatasetReader = ImageDatasetReaderService.getInstance().getImageDatasetReader(); + ImageDataset[] imagedataSets = imageDatasetReader.readImageDatasetChannels(imageFile.getAbsolutePath(), + null, false, saveOnlyThisTimePointIndex, null); + if (imagedataSets != null && bCropOutBlack) { + for (int i = 0; i < imagedataSets.length; i++) { + Rectangle nonZeroRect = imagedataSets[i].getNonzeroBoundingRectangle(); + if (nonZeroRect != null) { + imagedataSets[i] = imagedataSets[i].crop(nonZeroRect); + } + } + } + return createFDOSWithChannels(imagedataSets, null); + } catch (Exception e) { + e.printStackTrace(System.out); + throw new DataFormatException(e.getMessage()); + } + } + + public static FieldDataFileOperationSpec createFDOSWithChannels(ImageDataset[] imagedataSets, + Integer saveOnlyThisTimePointIndex) { + final FieldDataFileOperationSpec fdos = new FieldDataFileOperationSpec(); + + // [time][var][data] + int numXY = imagedataSets[0].getISize().getX() * imagedataSets[0].getISize().getY(); + int numXYZ = imagedataSets[0].getSizeZ() * numXY; + fdos.variableTypes = new VariableType[imagedataSets.length]; + fdos.varNames = new String[imagedataSets.length]; + short[][][] shortData = new short[(saveOnlyThisTimePointIndex != null ? 1 + : imagedataSets[0].getSizeT())][imagedataSets.length][numXYZ]; + for (int c = 0; c < imagedataSets.length; c += 1) { + fdos.variableTypes[c] = VariableType.VOLUME; + fdos.varNames[c] = "Channel" + c; + for (int t = 0; t < imagedataSets[c].getSizeT(); t += 1) { + if (saveOnlyThisTimePointIndex != null && saveOnlyThisTimePointIndex.intValue() != t) { + continue; + } + int zOffset = 0; + for (int z = 0; z < imagedataSets[c].getSizeZ(); z += 1) { + UShortImage ushortImage = imagedataSets[c].getImage(z, 0, t); + System.arraycopy(ushortImage.getPixels(), 0, + shortData[(saveOnlyThisTimePointIndex != null ? 0 : t)][c], zOffset, numXY); +// shortData[t][c] = ushortImage.getPixels(); + zOffset += numXY; + } + } + } + fdos.shortSpecData = shortData; + fdos.times = imagedataSets[0].getImageTimeStamps(); + if (fdos.times == null) { + fdos.times = new double[imagedataSets[0].getSizeT()]; + for (int i = 0; i < fdos.times.length; i += 1) { + fdos.times[i] = i; + } + } + + fdos.origin = (imagedataSets[0].getAllImages()[0].getOrigin() != null + ? imagedataSets[0].getAllImages()[0].getOrigin() + : new Origin(0, 0, 0)); + fdos.extent = (imagedataSets[0].getExtent() != null) ? (imagedataSets[0].getExtent()) : (new Extent(1, 1, 1)); + fdos.isize = imagedataSets[0].getISize(); + + return fdos; + + } +} diff --git a/vcell-core/src/main/java/cbit/vcell/field/io/FieldDataFileOperationResults.java b/vcell-core/src/main/java/cbit/vcell/field/io/FieldDataFileOperationResults.java index 973d679418..97f08fee18 100644 --- a/vcell-core/src/main/java/cbit/vcell/field/io/FieldDataFileOperationResults.java +++ b/vcell-core/src/main/java/cbit/vcell/field/io/FieldDataFileOperationResults.java @@ -10,12 +10,15 @@ package cbit.vcell.field.io; +import cbit.vcell.simdata.DataIdentifier; +import org.vcell.restclient.model.FieldDataSaveResults; +import org.vcell.restclient.model.FieldDataShape; import org.vcell.util.Extent; import org.vcell.util.ISize; import org.vcell.util.Origin; +import org.vcell.util.document.ExternalDataIdentifier; import org.vcell.util.document.KeyValue; - -import cbit.vcell.simdata.DataIdentifier; +import org.vcell.util.document.User; /** * Insert the type's description here. @@ -39,6 +42,7 @@ public static class FieldDataReferenceInfo{ public DataIdentifier[] dataIdentifierArr; + public ExternalDataIdentifier externalDataIdentifier; public ISize iSize; public Origin origin; public Extent extent; @@ -48,4 +52,21 @@ public static class FieldDataReferenceInfo{ public FieldDataFileOperationResults() { super(); } + + public static FieldDataFileOperationResults fieldDataInfoDTOToFileOperationResults(FieldDataShape dto){ + FieldDataFileOperationResults results = new FieldDataFileOperationResults(); + results.extent = Extent.dtoToExtent(dto.getExtent()); + results.origin = Origin.dtoToOrigin(dto.getOrigin()); + results.iSize = ISize.dtoToISize(dto.getIsize()); + results.times = dto.getTimes().stream().mapToDouble(Double::doubleValue).toArray(); + results.dataIdentifierArr = dto.getDataIdentifier().stream().map(DataIdentifier::dtoToDataIdentifier).toArray(DataIdentifier[]::new); + return results; + } + + public static FieldDataFileOperationResults fieldDataSaveResultsDTOToFileOperationResults(FieldDataSaveResults dto, User owner){ + FieldDataFileOperationResults fieldDataFileOperationResults = new FieldDataFileOperationResults(); + fieldDataFileOperationResults.externalDataIdentifier = new ExternalDataIdentifier(new KeyValue(dto.getFieldDataID()), owner, dto.getFieldDataName()); + return fieldDataFileOperationResults; + } + } diff --git a/vcell-core/src/main/java/cbit/vcell/field/io/FieldDataFileOperationSpec.java b/vcell-core/src/main/java/cbit/vcell/field/io/FieldDataFileOperationSpec.java index 5799b60c41..461c570309 100644 --- a/vcell-core/src/main/java/cbit/vcell/field/io/FieldDataFileOperationSpec.java +++ b/vcell-core/src/main/java/cbit/vcell/field/io/FieldDataFileOperationSpec.java @@ -10,6 +10,7 @@ package cbit.vcell.field.io; +import org.vcell.restclient.model.AnalyzedResultsFromFieldData; import org.vcell.util.Extent; import org.vcell.util.ISize; import org.vcell.util.Origin; @@ -20,6 +21,11 @@ import cbit.vcell.math.VariableType; import cbit.vcell.solvers.CartesianMesh; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + /** * Insert the type's description here. * Creation date: (1/10/2007 11:00:51 AM) @@ -45,6 +51,7 @@ public class FieldDataFileOperationSpec implements java.io.Serializable{ public int sourceSimParamScanJobIndex = -1; public KeyValue sourceSimDataKey; public User sourceOwner; + public String fieldDataName; public static final int FDOS_ADD = 0; public static final int FDOS_DELETE = 1; @@ -59,6 +66,48 @@ public class FieldDataFileOperationSpec implements java.io.Serializable{ public FieldDataFileOperationSpec() { } +public FieldDataFileOperationSpec(short[][][] shortSpecData, double[][][] doubleSpecData, CartesianMesh cartesianMesh, + ExternalDataIdentifier specEDI, String[] varNames, VariableType[] variableTypes, + double[] times, User owner, Origin origin, Extent extent, ISize isize, + String annotation, int sourceSimParamScanJobIndex, KeyValue sourceSimDataKey, + User sourceOwner){ + this.shortSpecData = shortSpecData; + this.doubleSpecData = doubleSpecData; + this.cartesianMesh = cartesianMesh; + this.specEDI = specEDI; + this.varNames = varNames; + this.variableTypes = variableTypes; + this.times = times; + this.owner = owner; + this.origin = origin; + this.extent = extent; + this.isize = isize; + this.annotation = annotation; + this.sourceSimParamScanJobIndex = sourceSimParamScanJobIndex; + this.sourceSimDataKey = sourceSimDataKey; + this.sourceOwner = sourceOwner; +} + +public static AnalyzedResultsFromFieldData fieldDataSpecToAnalyzedResultsDTO(FieldDataFileOperationSpec fieldDataFileOperationSpec){ + List>> listVersion = Arrays.stream(fieldDataFileOperationSpec.shortSpecData) // Stream of short[][] + .map(twoDArray -> Arrays.stream(twoDArray) // Stream of short[] + .map(oneDArray -> { + List list = new ArrayList<>(); + for (short j : oneDArray) { + list.add((int) j); + } + return list; + }).collect(Collectors.toList())).collect(Collectors.toList()); + AnalyzedResultsFromFieldData analyzedResultsFromFieldData = new AnalyzedResultsFromFieldData(); + analyzedResultsFromFieldData.annotation(fieldDataFileOperationSpec.annotation); analyzedResultsFromFieldData.isize(ISize.iSizeToDTO(fieldDataFileOperationSpec.isize)); + analyzedResultsFromFieldData.extent(Extent.extentToDTO(fieldDataFileOperationSpec.extent)); analyzedResultsFromFieldData.origin(Origin.originToDTO(fieldDataFileOperationSpec.origin)); + analyzedResultsFromFieldData.times(Arrays.stream(fieldDataFileOperationSpec.times).boxed().toList()); analyzedResultsFromFieldData.setName(fieldDataFileOperationSpec.fieldDataName); + analyzedResultsFromFieldData.varNames(Arrays.stream(fieldDataFileOperationSpec.varNames).toList()); analyzedResultsFromFieldData.shortSpecData(listVersion); + return analyzedResultsFromFieldData; +} + + +@Deprecated public static FieldDataFileOperationSpec createCopySimFieldDataFileOperationSpec( ExternalDataIdentifier newExtDataID, KeyValue argSourceSimDataKey, @@ -75,6 +124,8 @@ public static FieldDataFileOperationSpec createCopySimFieldDataFileOperationSpec fieldDataFileOperationSpec.owner = destinationOwner; return fieldDataFileOperationSpec; } + +@Deprecated public static FieldDataFileOperationSpec createInfoFieldDataFileOperationSpec( KeyValue argSourceSimDataKey,User argSourceOwner,int argSimParamScanJobIndex){ FieldDataFileOperationSpec fieldDataFileOperationSpec = @@ -85,6 +136,8 @@ public static FieldDataFileOperationSpec createInfoFieldDataFileOperationSpec( fieldDataFileOperationSpec.sourceSimParamScanJobIndex = argSimParamScanJobIndex; return fieldDataFileOperationSpec; } + +@Deprecated public static FieldDataFileOperationSpec createDeleteFieldDataFileOperationSpec( ExternalDataIdentifier deleteExtDataID){ FieldDataFileOperationSpec fieldDataFileOperationSpec = diff --git a/vcell-core/src/main/java/cbit/vcell/math/Variable.java b/vcell-core/src/main/java/cbit/vcell/math/Variable.java index e7bbf5d25b..440b498a1f 100644 --- a/vcell-core/src/main/java/cbit/vcell/math/Variable.java +++ b/vcell-core/src/main/java/cbit/vcell/math/Variable.java @@ -10,23 +10,18 @@ package cbit.vcell.math; -import java.io.Serializable; -import java.util.StringTokenizer; - +import cbit.vcell.geometry.GeometryClass; +import cbit.vcell.parser.*; +import cbit.vcell.units.VCUnitDefinition; +import org.vcell.restclient.model.Domain; import org.vcell.util.Compare; import org.vcell.util.EqualsUtil; import org.vcell.util.Issue.IssueSource; import org.vcell.util.Matchable; import org.vcell.util.TokenMangler; -import cbit.vcell.geometry.GeometryClass; -import cbit.vcell.parser.Expression; -import cbit.vcell.parser.ExpressionBindingException; -import cbit.vcell.parser.ExpressionException; -import cbit.vcell.parser.NameScope; -import cbit.vcell.parser.SymbolTable; -import cbit.vcell.parser.SymbolTableEntry; -import cbit.vcell.units.VCUnitDefinition; +import java.io.Serializable; +import java.util.StringTokenizer; /** * This class was generated by a SmartGuide. * @@ -44,6 +39,11 @@ void rename(String newName) { public static class Domain implements Matchable, Serializable { private String name = null; + + public static Domain dtoToDomain(org.vcell.restclient.model.Domain dto){ + return new Domain(dto.getName()); + } + public Domain(String argName){ String nameWithPeriodsMangled = argName.replace('.','_'); @@ -80,7 +80,6 @@ public String toString(){ /** * This method was created by a SmartGuide. - * @param name java.lang.String */ protected Variable (String argName, Domain argDomain ) { if (argName == null) { diff --git a/vcell-core/src/main/java/cbit/vcell/math/VariableType.java b/vcell-core/src/main/java/cbit/vcell/math/VariableType.java index d90ec19704..11fbdb1a0d 100644 --- a/vcell-core/src/main/java/cbit/vcell/math/VariableType.java +++ b/vcell-core/src/main/java/cbit/vcell/math/VariableType.java @@ -30,9 +30,25 @@ public class VariableType implements java.io.Serializable, org.vcell.util.Matcha private int type = -1; private VariableDomain variableDomain; - private final String name; - private final String units; - private final String label; + private String name; + private String units; + private String label; + + public VariableType(){} + + public static org.vcell.restclient.model.VariableType variableTypeToDTO(VariableType vt) { + org.vcell.restclient.model.VariableType dto = new org.vcell.restclient.model.VariableType(); + dto.setType(vt.type); + dto.setName(vt.name); + dto.setUnits(vt.units); + dto.setLabel(vt.label); + return dto; + } + + public static VariableType dtoToVariableType(org.vcell.restclient.model.VariableType dto) { + return new VariableType(dto.getType(), dto.getName(), dto.getUnits(), dto.getLabel()); + } + /** * mark types that were not previously supported by {@link #getVariableTypeFromInteger(int)}, issue warning if triggered */ diff --git a/vcell-core/src/main/java/cbit/vcell/message/server/bootstrap/client/LocalDataSetControllerMessaging.java b/vcell-core/src/main/java/cbit/vcell/message/server/bootstrap/client/LocalDataSetControllerMessaging.java index ed7b315852..4fc57bd0f0 100644 --- a/vcell-core/src/main/java/cbit/vcell/message/server/bootstrap/client/LocalDataSetControllerMessaging.java +++ b/vcell-core/src/main/java/cbit/vcell/message/server/bootstrap/client/LocalDataSetControllerMessaging.java @@ -12,8 +12,12 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.vcell.api.client.VCellApiClient; +import org.vcell.restclient.model.*; import org.vcell.solver.nfsim.NFSimMolecularConfigurations; import org.vcell.util.DataAccessException; +import org.vcell.util.document.ExternalDataIdentifier; +import org.vcell.util.document.KeyValue; import org.vcell.util.document.UserLoginInfo; import org.vcell.util.document.VCDataIdentifier; import org.vcell.vis.io.VtuFileContainer; @@ -44,12 +48,14 @@ public class LocalDataSetControllerMessaging implements DataSetController { private RpcDataServerProxy dataServerProxy = null; private static Logger lg = LogManager.getLogger(LocalDataSetControllerMessaging.class); + private final VCellApiClient vCellApiClient; /** * This method was created by a SmartGuide. */ -public LocalDataSetControllerMessaging (UserLoginInfo userLoginInfo, RpcSender rpcSender) { +public LocalDataSetControllerMessaging (UserLoginInfo userLoginInfo, RpcSender rpcSender, VCellApiClient vCellApiClient) { this.dataServerProxy = new RpcDataServerProxy(userLoginInfo, rpcSender); + this.vCellApiClient = vCellApiClient; } @@ -57,7 +63,19 @@ public LocalDataSetControllerMessaging (UserLoginInfo userLoginInfo, RpcSender r public FieldDataFileOperationResults fieldDataFileOperation(FieldDataFileOperationSpec fieldDataFileOperationSpec) throws DataAccessException { if (lg.isTraceEnabled()) lg.trace("LocalDataSetControllerMessaging.fieldDataFileOperationSpec(...)"); try { - return dataServerProxy.fieldDataFileOperation(fieldDataFileOperationSpec); + if (fieldDataFileOperationSpec.opType == FieldDataFileOperationSpec.FDOS_ADD){ + AnalyzedResultsFromFieldData analyzedResultsFromFieldData = FieldDataFileOperationSpec.fieldDataSpecToAnalyzedResultsDTO(fieldDataFileOperationSpec); + FieldDataSaveResults results = vCellApiClient.getFieldDataApi().createFieldDataFromAnalyzedFile(analyzedResultsFromFieldData); + return FieldDataFileOperationResults.fieldDataSaveResultsDTOToFileOperationResults(results, fieldDataFileOperationSpec.owner); + } else if (fieldDataFileOperationSpec.opType == FieldDataFileOperationSpec.FDOS_DELETE) { + vCellApiClient.getFieldDataApi().deleteFieldData(fieldDataFileOperationSpec.specEDI.getKey().toString()); + return null; + } else if (fieldDataFileOperationSpec.opType == FieldDataFileOperationSpec.FDOS_INFO) { + FieldDataShape fieldDataInfo = vCellApiClient.getFieldDataApi().getFieldDataShapeFromID(fieldDataFileOperationSpec.sourceSimDataKey.toString()); + return FieldDataFileOperationResults.fieldDataInfoDTOToFileOperationResults(fieldDataInfo); + } else { + return dataServerProxy.fieldDataFileOperation(fieldDataFileOperationSpec); + } } catch (DataAccessException e){ lg.error(e.getMessage(),e); throw e; @@ -108,7 +126,6 @@ public double[] getDataSetTimes(VCDataIdentifier vcdID) throws DataAccessExcepti /** * Insert the method's description here. * Creation date: (2/26/2004 1:05:01 PM) - * @param function cbit.vcell.math.Function * @exception org.vcell.util.DataAccessException The exception description. * @exception RemoteProxyException The exception description. */ @@ -191,7 +208,6 @@ public cbit.vcell.solver.ode.ODESimData getODEData(VCDataIdentifier vcdID) throw /** * This method was created by a SmartGuide. * @return double[] - * @param varName java.lang.String * @param time double * @throws RemoteProxyException */ @@ -252,9 +268,7 @@ public SimDataBlock getSimDataBlock(OutputContext outputContext,VCDataIdentifier /** * This method was created by a SmartGuide. * @return double[] - * @param varName java.lang.String - * @param index int - * @throws RemoteProxyException + * @throws RemoteProxyException */ public org.vcell.util.document.TimeSeriesJobResults getTimeSeriesValues(OutputContext outputContext,VCDataIdentifier vcdID,org.vcell.util.document.TimeSeriesJobSpec timeSeriesJobSpec) throws DataAccessException, RemoteProxyException { if (lg.isTraceEnabled()) lg.trace("LocalDataSetControllerMessaging.getTimeSeriesValues(vcdID=" + vcdID + ", " + timeSeriesJobSpec + ")"); @@ -272,7 +286,6 @@ public org.vcell.util.document.TimeSeriesJobResults getTimeSeriesValues(OutputCo /** * This method was created in VisualAge. - * @param simInfo cbit.vcell.solver.SimulationInfo * @exception org.vcell.util.DataAccessException The exception description. * @throws RemoteProxyException */ diff --git a/vcell-core/src/main/java/cbit/vcell/message/server/bootstrap/client/LocalUserMetaDbServerMessaging.java b/vcell-core/src/main/java/cbit/vcell/message/server/bootstrap/client/LocalUserMetaDbServerMessaging.java index b4351b9660..b890111c97 100644 --- a/vcell-core/src/main/java/cbit/vcell/message/server/bootstrap/client/LocalUserMetaDbServerMessaging.java +++ b/vcell-core/src/main/java/cbit/vcell/message/server/bootstrap/client/LocalUserMetaDbServerMessaging.java @@ -11,10 +11,14 @@ package cbit.vcell.message.server.bootstrap.client; import java.rmi.RemoteException; +import java.util.ArrayList; +import java.util.List; import java.util.TreeMap; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.vcell.api.client.VCellApiClient; +import org.vcell.restclient.model.FieldDataReference; import org.vcell.util.BigString; import org.vcell.util.DataAccessException; import org.vcell.util.ObjectNotFoundException; @@ -44,13 +48,15 @@ */ public class LocalUserMetaDbServerMessaging implements UserMetaDbServer { private RpcDbServerProxy dbServerProxy = null; + private final VCellApiClient vCellApiClient; private static Logger lg = LogManager.getLogger(LocalUserMetaDbServerMessaging.class); /** * This method was created in VisualAge. */ -public LocalUserMetaDbServerMessaging(UserLoginInfo userLoginInfo, RpcSender rpcSender) { +public LocalUserMetaDbServerMessaging(UserLoginInfo userLoginInfo, RpcSender rpcSender, VCellApiClient vCellApiClient) { this.dbServerProxy = new RpcDbServerProxy(userLoginInfo, rpcSender); + this.vCellApiClient = vCellApiClient; } public TreeMap> getSpecialUsers() throws DataAccessException{ @@ -122,7 +128,14 @@ public FieldDataDBOperationResults fieldDataDBOperation(FieldDataDBOperationSpec try { if (lg.isTraceEnabled()) lg.trace("LocalUserMetaDbServerMessaging.fieldDataDBOperation(...)"); - return dbServerProxy.fieldDataDBOperation(fieldDataDBOperationSpec); + if (fieldDataDBOperationSpec.opType == FieldDataDBOperationSpec.FDDBOS_DELETE){ + throw new RuntimeException("Can not call deletion on field data DB entry. Have to do both file, and DB deletion."); + } else if (fieldDataDBOperationSpec.opType == FieldDataDBOperationSpec.FDDBOS_GETEXTDATAIDS) { + List fieldDataReferences = vCellApiClient.getFieldDataApi().getAllFieldDataIDs(); + return FieldDataDBOperationResults.fieldDataReferencesToDBResults(fieldDataReferences, fieldDataDBOperationSpec.owner); + } else{ + return dbServerProxy.fieldDataDBOperation(fieldDataDBOperationSpec); + } } catch (DataAccessException e) { lg.error(e.getMessage(),e); throw e; diff --git a/vcell-core/src/main/java/cbit/vcell/message/server/bootstrap/client/LocalVCellConnectionMessaging.java b/vcell-core/src/main/java/cbit/vcell/message/server/bootstrap/client/LocalVCellConnectionMessaging.java index f059ded325..47a9b47ab6 100644 --- a/vcell-core/src/main/java/cbit/vcell/message/server/bootstrap/client/LocalVCellConnectionMessaging.java +++ b/vcell-core/src/main/java/cbit/vcell/message/server/bootstrap/client/LocalVCellConnectionMessaging.java @@ -13,6 +13,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.vcell.api.client.VCellApiClient; import org.vcell.util.DataAccessException; import org.vcell.util.document.UserLoginInfo; @@ -42,10 +43,12 @@ public class LocalVCellConnectionMessaging implements VCellConnection { private UserLoginInfo userLoginInfo; private RpcSender rpcSender; + private final VCellApiClient vCellApiClient; - public LocalVCellConnectionMessaging(UserLoginInfo userLoginInfo, RpcSender rpcSender) { + public LocalVCellConnectionMessaging(UserLoginInfo userLoginInfo, RpcSender rpcSender, VCellApiClient vCellApiClient) { this.userLoginInfo = userLoginInfo; this.rpcSender = rpcSender; + this.vCellApiClient = vCellApiClient; } @@ -53,7 +56,7 @@ public LocalVCellConnectionMessaging(UserLoginInfo userLoginInfo, RpcSender rpcS public DataSetController getDataSetController() throws DataAccessException { if (lg.isTraceEnabled()) lg.trace("LocalVCellConnectionMessaging.getDataSetController()"); if (dataSetControllerMessaging == null) { - dataSetControllerMessaging = new LocalDataSetControllerMessaging(getUserLoginInfo(), rpcSender); + dataSetControllerMessaging = new LocalDataSetControllerMessaging(getUserLoginInfo(), rpcSender, vCellApiClient); } return dataSetControllerMessaging; } @@ -75,7 +78,7 @@ public UserLoginInfo getUserLoginInfo() { public UserMetaDbServer getUserMetaDbServer() throws DataAccessException { if (lg.isTraceEnabled()) lg.trace("LocalVCellConnectionMessaging.getUserMetaDbServer(" + getUserLoginInfo().getUser() + ")"); if (userMetaDbServerMessaging == null) { - userMetaDbServerMessaging = new LocalUserMetaDbServerMessaging(getUserLoginInfo(), rpcSender); + userMetaDbServerMessaging = new LocalUserMetaDbServerMessaging(getUserLoginInfo(), rpcSender, vCellApiClient); } return userMetaDbServerMessaging; } diff --git a/vcell-core/src/main/java/cbit/vcell/message/server/bootstrap/client/RemoteProxyVCellConnectionFactory.java b/vcell-core/src/main/java/cbit/vcell/message/server/bootstrap/client/RemoteProxyVCellConnectionFactory.java index d18ee6bd9a..d5e60b8131 100644 --- a/vcell-core/src/main/java/cbit/vcell/message/server/bootstrap/client/RemoteProxyVCellConnectionFactory.java +++ b/vcell-core/src/main/java/cbit/vcell/message/server/bootstrap/client/RemoteProxyVCellConnectionFactory.java @@ -103,6 +103,8 @@ public Object sendRpcMessage(VCellQueue queue, VCRpcRequest vcRpcRequest, boolea return vcellApiClient.sendRpcMessage(rpcDestination,apiRpcRequest,returnRequired,timeoutMS,specialProperties,specialValues); } + + @Override public MessageEvent[] getMessageEvents() throws IOException { long previousTimestamp = lastProcessedEventTimestamp.get(); @@ -204,7 +206,7 @@ public VCellConnection createVCellConnection(UserLoginInfo userLoginInfo) { this.getVCellApiClient().getGuestLegacyToken() :this.getVCellApiClient().getLegacyToken(); userLoginInfo.setUser(new User(accessTokenRep.getUserId(), new KeyValue(accessTokenRep.getUserKey()))); - return new LocalVCellConnectionMessaging(userLoginInfo,rpcSender); + return new LocalVCellConnectionMessaging(userLoginInfo,rpcSender, vcellApiClient); } catch (ApiException apiException){ throw new RuntimeException(apiException); } diff --git a/vcell-core/src/main/java/cbit/vcell/simdata/DataIdentifier.java b/vcell-core/src/main/java/cbit/vcell/simdata/DataIdentifier.java index 98c6f159d5..0145c24c7d 100644 --- a/vcell-core/src/main/java/cbit/vcell/simdata/DataIdentifier.java +++ b/vcell-core/src/main/java/cbit/vcell/simdata/DataIdentifier.java @@ -41,6 +41,12 @@ public DataIdentifier(String argName, VariableType argVariableType, Domain argDo displayName = argDisplayName; } +public static DataIdentifier dtoToDataIdentifier(org.vcell.restclient.model.DataIdentifier dto){ + return new DataIdentifier(dto.getName(), VariableType.dtoToVariableType(dto.getVariableType()), + dto.getDomain() == null ? null : Domain.dtoToDomain(dto.getDomain()), + dto.getbFunction() == null ? false : dto.getbFunction(), dto.getDisplayName()); +} + /** * Insert the method's description here. diff --git a/vcell-core/src/main/java/cbit/vcell/simdata/DataSetControllerImpl.java b/vcell-core/src/main/java/cbit/vcell/simdata/DataSetControllerImpl.java index a20e1fb7a7..81847edbc3 100644 --- a/vcell-core/src/main/java/cbit/vcell/simdata/DataSetControllerImpl.java +++ b/vcell-core/src/main/java/cbit/vcell/simdata/DataSetControllerImpl.java @@ -1180,541 +1180,470 @@ else if (dsi.getName().endsWith(OutsideVariable.OUTSIDE_VARIABLE_SUFFIX)) return new SimDataBlock(pdeDataInfo, data, variableType); } - - -public FieldDataFileOperationResults fieldDataFileOperation(FieldDataFileOperationSpec fieldDataFileOperationSpec) - throws ObjectNotFoundException{ - - if(fieldDataFileOperationSpec.opType == FieldDataFileOperationSpec.FDOS_COPYSIM){ - Vector removeFilesIfErrorV = new Vector(); - try{ - int simJobIndex = fieldDataFileOperationSpec.sourceSimParamScanJobIndex; - //Determine style so file names can be constructed properly - VCSimulationDataIdentifier sourceSimDataID = +private FieldDataFileOperationResults fieldDataCopySim(FieldDataFileOperationSpec fieldDataFileOperationSpec){ + Vector removeFilesIfErrorV = new Vector(); + try{ + int simJobIndex = fieldDataFileOperationSpec.sourceSimParamScanJobIndex; + //Determine style so file names can be constructed properly + VCSimulationDataIdentifier sourceSimDataID = new VCSimulationDataIdentifier( new VCSimulationIdentifier( fieldDataFileOperationSpec.sourceSimDataKey, fieldDataFileOperationSpec.sourceOwner), simJobIndex); - - SimulationData simulationData = (SimulationData)getVCData(sourceSimDataID); - boolean isOldStyle = (simulationData.getResultsInfoObject() instanceof VCSimulationDataIdentifierOldStyle); - // - //log,mesh,zip,func - // - KeyValue origSimKey = fieldDataFileOperationSpec.sourceSimDataKey; - File meshFile_orig = simulationData.getMeshFile(false); - File funcFile_orig = simulationData.getFunctionsFile(false); - File subdomainFile_orig = simulationData.getSubdomainFile(); - File fdLogFile_orig = simulationData.getLogFile(); - File zipFile_orig = simulationData.getZipFile(false, 0); - boolean bCopySubdomainFile = subdomainFile_orig.exists(); - //Dont' check subdomainFile_orig - if(!(meshFile_orig.exists() && funcFile_orig.exists() && fdLogFile_orig.exists() && zipFile_orig.exists())){ - throw new RuntimeException("Couldn't find all of the files required to copy sim"); - } - - File userDir = getPrimaryUserDir(fieldDataFileOperationSpec.owner, true); - File meshFile_new = new File(userDir,SimulationData.createCanonicalMeshFileName(fieldDataFileOperationSpec.specEDI.getKey(),0,false)); - File funcFile_new = new File(userDir,SimulationData.createCanonicalFunctionsFileName(fieldDataFileOperationSpec.specEDI.getKey(),0,false)); - File subdomainFile_new = new File(userDir,SimulationData.createCanonicalSubdomainFileName(fieldDataFileOperationSpec.specEDI.getKey(),0,false)); - File fdLogFile_new = new File(userDir,SimulationData.createCanonicalSimLogFileName(fieldDataFileOperationSpec.specEDI.getKey(),0,false)); - File zipFile_new = new File(userDir,SimulationData.createCanonicalSimZipFileName(fieldDataFileOperationSpec.specEDI.getKey(),0,0,false,false)); - if(meshFile_new.exists() || funcFile_new.exists() || fdLogFile_new.exists() || zipFile_new.exists() || (bCopySubdomainFile && subdomainFile_new.exists())){ - throw new RuntimeException("File names required for new Field Data already exist on server"); - } - - removeFilesIfErrorV.add(funcFile_new); - removeFilesIfErrorV.add(meshFile_new); - removeFilesIfErrorV.add(fdLogFile_new); - //Simple copy of mesh and funcfile because they do not have to be changed - FileUtils.copyFile(meshFile_orig, meshFile_new, false, false, 8*1024); - FileUtils.copyFile(funcFile_orig, funcFile_new, false, false, 8*1024); - if(bCopySubdomainFile){ - FileUtils.copyFile(subdomainFile_orig, subdomainFile_new, false, false, 8*1024); + + SimulationData simulationData = (SimulationData)getVCData(sourceSimDataID); + boolean isOldStyle = (simulationData.getResultsInfoObject() instanceof VCSimulationDataIdentifierOldStyle); + // + //log,mesh,zip,func + // + KeyValue origSimKey = fieldDataFileOperationSpec.sourceSimDataKey; + File meshFile_orig = simulationData.getMeshFile(false); + File funcFile_orig = simulationData.getFunctionsFile(false); + File subdomainFile_orig = simulationData.getSubdomainFile(); + File fdLogFile_orig = simulationData.getLogFile(); + File zipFile_orig = simulationData.getZipFile(false, 0); + boolean bCopySubdomainFile = subdomainFile_orig.exists(); + //Dont' check subdomainFile_orig + if(!(meshFile_orig.exists() && funcFile_orig.exists() && fdLogFile_orig.exists() && zipFile_orig.exists())){ + throw new RuntimeException("Couldn't find all of the files required to copy sim"); + } + + File userDir = getPrimaryUserDir(fieldDataFileOperationSpec.owner, true); + File meshFile_new = new File(userDir,SimulationData.createCanonicalMeshFileName(fieldDataFileOperationSpec.specEDI.getKey(),0,false)); + File funcFile_new = new File(userDir,SimulationData.createCanonicalFunctionsFileName(fieldDataFileOperationSpec.specEDI.getKey(),0,false)); + File subdomainFile_new = new File(userDir,SimulationData.createCanonicalSubdomainFileName(fieldDataFileOperationSpec.specEDI.getKey(),0,false)); + File fdLogFile_new = new File(userDir,SimulationData.createCanonicalSimLogFileName(fieldDataFileOperationSpec.specEDI.getKey(),0,false)); + File zipFile_new = new File(userDir,SimulationData.createCanonicalSimZipFileName(fieldDataFileOperationSpec.specEDI.getKey(),0,0,false,false)); + if(meshFile_new.exists() || funcFile_new.exists() || fdLogFile_new.exists() || zipFile_new.exists() || (bCopySubdomainFile && subdomainFile_new.exists())){ + throw new RuntimeException("File names required for new Field Data already exist on server"); + } + + removeFilesIfErrorV.add(funcFile_new); + removeFilesIfErrorV.add(meshFile_new); + removeFilesIfErrorV.add(fdLogFile_new); + //Simple copy of mesh and funcfile because they do not have to be changed + FileUtils.copyFile(meshFile_orig, meshFile_new, false, false, 8*1024); + FileUtils.copyFile(funcFile_orig, funcFile_new, false, false, 8*1024); + if(bCopySubdomainFile){ + FileUtils.copyFile(subdomainFile_orig, subdomainFile_new, false, false, 8*1024); + } + + //Copy Log file and replace original simID with ExternalDataIdentifier id + BufferedWriter writer = null; + try{ + String origLog = FileUtils.readFileToString(fdLogFile_orig); + String newLogStr; + String replace_new = + SimulationData.createSimIDWithJobIndex( + fieldDataFileOperationSpec.specEDI.getKey(), + FieldDataFileOperationSpec.JOBINDEX_DEFAULT, false); + if(isOldStyle){ + String replace_orig = + SimulationData.createSimIDWithJobIndex(origSimKey, 0, true); + newLogStr = origLog.replaceAll(replace_orig, replace_new); + }else{ + String replace_orig = + SimulationData.createSimIDWithJobIndex( + origSimKey, + fieldDataFileOperationSpec.sourceSimParamScanJobIndex, false); + newLogStr= origLog.replaceAll(replace_orig, replace_new); + } + writer = new BufferedWriter(new FileWriter(fdLogFile_new)); + writer.write(newLogStr); + writer.close(); + }finally{ + try{if(writer != null){writer.close();}}catch(Exception e){/*ignore*/}; + } + + // + //Copy zip file and rename entries + // + int zipIndex = 0; + while(true){//Loop because there might be more than 1 zip file for large datasets + zipFile_orig = simulationData.getZipFile(false, zipIndex); + if(!zipFile_orig.exists()){ + //done + break; } - - //Copy Log file and replace original simID with ExternalDataIdentifier id - BufferedWriter writer = null; - try{ - String origLog = FileUtils.readFileToString(fdLogFile_orig); - String newLogStr; - String replace_new = - SimulationData.createSimIDWithJobIndex( - fieldDataFileOperationSpec.specEDI.getKey(), - FieldDataFileOperationSpec.JOBINDEX_DEFAULT, false); - if(isOldStyle){ - String replace_orig = - SimulationData.createSimIDWithJobIndex(origSimKey, 0, true); - newLogStr = origLog.replaceAll(replace_orig, replace_new); - }else{ - String replace_orig = - SimulationData.createSimIDWithJobIndex( - origSimKey, - fieldDataFileOperationSpec.sourceSimParamScanJobIndex, false); - newLogStr= origLog.replaceAll(replace_orig, replace_new); - } - writer = new BufferedWriter(new FileWriter(fdLogFile_new)); - writer.write(newLogStr); - writer.close(); - }finally{ - try{if(writer != null){writer.close();}}catch(Exception e){/*ignore*/}; - } - - // - //Copy zip file and rename entries - // - int zipIndex = 0; - while(true){//Loop because there might be more than 1 zip file for large datasets - zipFile_orig = simulationData.getZipFile(false, zipIndex); - if(!zipFile_orig.exists()){ - //done - break; - } - zipFile_new = new File(userDir,SimulationData.createCanonicalSimZipFileName(fieldDataFileOperationSpec.specEDI.getKey(),zipIndex,0,false,false)); - if(zipFile_new.exists()){ - throw new DataAccessException("new zipfile name "+zipFile_new.getAbsolutePath()+" already exists"); - } - removeFilesIfErrorV.add(zipFile_new); - - ZipFile inZipFile = null; - InputStream zis = null; - ZipOutputStream zos = null; - try{ - inZipFile = new ZipFile(zipFile_orig);; - zos = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile_new))); - Enumeration zipEntryEnum = inZipFile.getEntries(); - while(zipEntryEnum.hasMoreElements()){ - ZipEntry zeIN = zipEntryEnum.nextElement(); - byte[] zdataIN = new byte[(int)zeIN.getSize()]; - int num = 0; - int numTotal = 0; - zis = new BufferedInputStream(inZipFile.getInputStream((ZipArchiveEntry) zeIN)); - //long startTime = System.currentTimeMillis(); - while((num = zis.read(zdataIN, numTotal, zdataIN.length-numTotal)) != -1 && numTotal != zdataIN.length){ - numTotal+= num; - } - //System.out.println("zipread time="+((System.currentTimeMillis()-startTime)/1000.0)); - zis.close(); - String newName; - String replace_new = - SimulationData.createSimIDWithJobIndex( - fieldDataFileOperationSpec.specEDI.getKey(), - FieldDataFileOperationSpec.JOBINDEX_DEFAULT, false); - if(isOldStyle){ - String replace_orig = - SimulationData.createSimIDWithJobIndex(origSimKey, 0, true); - newName = zeIN.getName().replaceAll(replace_orig, replace_new); - }else{ - String replace_orig = - SimulationData.createSimIDWithJobIndex( - origSimKey, - fieldDataFileOperationSpec.sourceSimParamScanJobIndex, false); - newName = zeIN.getName().replaceAll(replace_orig, replace_new); - } - ZipEntry zeOUT = new ZipEntry(newName); - zeOUT.setComment(zeIN.getComment()); - zeOUT.setCompressedSize(zeIN.getCompressedSize()); - zeOUT.setCrc(zeIN.getCrc()); - zeOUT.setExtra(zeIN.getExtra()); - zeOUT.setMethod(zeIN.getMethod()); - zeOUT.setSize(zeIN.getSize()); - zeOUT.setTime(zeIN.getTime()); + zipFile_new = new File(userDir,SimulationData.createCanonicalSimZipFileName(fieldDataFileOperationSpec.specEDI.getKey(),zipIndex,0,false,false)); + if(zipFile_new.exists()){ + throw new DataAccessException("new zipfile name "+zipFile_new.getAbsolutePath()+" already exists"); + } + removeFilesIfErrorV.add(zipFile_new); + + ZipFile inZipFile = null; + InputStream zis = null; + ZipOutputStream zos = null; + try{ + inZipFile = new ZipFile(zipFile_orig);; + zos = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile_new))); + Enumeration zipEntryEnum = inZipFile.getEntries(); + while(zipEntryEnum.hasMoreElements()){ + ZipEntry zeIN = zipEntryEnum.nextElement(); + byte[] zdataIN = new byte[(int)zeIN.getSize()]; + int num = 0; + int numTotal = 0; + zis = new BufferedInputStream(inZipFile.getInputStream((ZipArchiveEntry) zeIN)); + //long startTime = System.currentTimeMillis(); + while((num = zis.read(zdataIN, numTotal, zdataIN.length-numTotal)) != -1 && numTotal != zdataIN.length){ + numTotal+= num; + } + //System.out.println("zipread time="+((System.currentTimeMillis()-startTime)/1000.0)); + zis.close(); + String newName; + String replace_new = + SimulationData.createSimIDWithJobIndex( + fieldDataFileOperationSpec.specEDI.getKey(), + FieldDataFileOperationSpec.JOBINDEX_DEFAULT, false); + if(isOldStyle){ + String replace_orig = + SimulationData.createSimIDWithJobIndex(origSimKey, 0, true); + newName = zeIN.getName().replaceAll(replace_orig, replace_new); + }else{ + String replace_orig = + SimulationData.createSimIDWithJobIndex( + origSimKey, + fieldDataFileOperationSpec.sourceSimParamScanJobIndex, false); + newName = zeIN.getName().replaceAll(replace_orig, replace_new); + } + ZipEntry zeOUT = new ZipEntry(newName); + zeOUT.setComment(zeIN.getComment()); + zeOUT.setCompressedSize(zeIN.getCompressedSize()); + zeOUT.setCrc(zeIN.getCrc()); + zeOUT.setExtra(zeIN.getExtra()); + zeOUT.setMethod(zeIN.getMethod()); + zeOUT.setSize(zeIN.getSize()); + zeOUT.setTime(zeIN.getTime()); // startTime = System.currentTimeMillis(); - zos.putNextEntry(zeOUT); - zos.write(zdataIN, 0, zdataIN.length); + zos.putNextEntry(zeOUT); + zos.write(zdataIN, 0, zdataIN.length); // System.out.println("zipwrite time="+((System.currentTimeMillis()-startTime)/1000.0)+"\n"); - } - }finally{ - try{if(zis != null){zis.close();}}catch(Exception e){/*ignore*/}; - try{if(zos != null){zos.close();}}catch(Exception e){/*ignore*/}; - } - zipIndex+= 1; - } - //Now see if we can read what we just wrote - return fieldDataFileOperation( - FieldDataFileOperationSpec. - createInfoFieldDataFileOperationSpec( - fieldDataFileOperationSpec.specEDI.getKey(), - fieldDataFileOperationSpec.owner, - FieldDataFileOperationSpec.JOBINDEX_DEFAULT)); - }catch(Exception e){ - lg.error(e.getMessage(), e); - try{ - for(int i=0;i simFileNamesV = new Vector(); - try{ - if(!fdLogFile.createNewFile()){ - throw new Exception("File.createNewFile() returned null"); - } - ps = new PrintStream(fdLogFile); - for(int i=0;i simFileNamesV = new Vector(); + try{ + if(!fdLogFile.createNewFile()){ + throw new Exception("File.createNewFile() returned null"); + } + ps = new PrintStream(fdLogFile); + for(int i=0;i dbFuncFileNamesAndSimKeys = null; -// try{ -// dbFuncFileNamesAndSimKeys = -// FieldDataDBOperationDriver.getFunctionFileNamesAndSimKeys( -// fieldDataFileOperationSpec.specEDI.getOwner()); -// }catch(Exception e){ -// lg.error(e); -// throw new RuntimeException("couldn't get Function File names from Database\n"+e.getMessage()); -// } -// //String regex = "^.*"+MathMLTags.FIELD+"\\s*\\(\\s*"+fieldDataFileOperationSpec.specEDI.getName()+"\\s*,.*$"; -// String regex = "^.*?field\\s*\\(\\s*"+fieldDataFileOperationSpec.specEDI.getName()+"\\s*,.*?$"; -// java.util.regex.Pattern pattern = -// java.util.regex.Pattern.compile(regex);//,java.util.regex.Pattern.MULTILINE|java.util.regex.Pattern.DOTALL); -// Matcher matcher = pattern.matcher(""); -// Set> funcAndSimsES = dbFuncFileNamesAndSimKeys.entrySet(); -// Vector referencingFuncFileDescription = -// new Vector(); -// boolean bSearchSecondary = -// secondaryRootDirectory != null && -// !primaryRootDirectory.equals(secondaryRootDirectory); -// TreeSet searchedFuncFilesTS = new TreeSet(); -// Iterator> iter = funcAndSimsES.iterator(); -// FunctionFileGenerator.FuncFileLineInfo funcfileInfo = null; -// while(iter.hasNext()){ -// Map.Entry currentEntry = iter.next(); -// File currentFile = null; -// for (int i = 0; i < (bSearchSecondary?2:1); i++) { -// if(searchedFuncFilesTS.contains(currentEntry.getKey())){ -// continue; -// } -// currentFile = new File( -// getUserDirectoryName( -// (i==0?primaryRootDirectory:secondaryRootDirectory), -// fieldDataFileOperationSpec.specEDI.getOwner()),currentEntry.getKey()); -// if(!currentFile.exists()){ -// continue; -// } -// searchedFuncFilesTS.add(currentEntry.getKey()); -// LineNumberReader lineNumberReader = null; -// Vector referringFieldfunctionNamesV = new Vector(); -// try{ -// lineNumberReader = new LineNumberReader(new FileReader(currentFile)); -// String funcFileLine = null; -// while((funcFileLine = lineNumberReader.readLine()) != null){ -// funcfileInfo = FunctionFileGenerator.readFunctionLine(funcFileLine); -// if(funcfileInfo != null && funcfileInfo.functionExpr != null){ -// matcher.reset(funcfileInfo.functionExpr); -// if(matcher.matches()){ -// referringFieldfunctionNamesV.add(funcfileInfo.functionName); -// } -// } -// } -// lineNumberReader.close(); -// if(referringFieldfunctionNamesV.size() > 0){ -// FieldDataFileOperationResults.FieldDataReferenceInfo fieldDataReferenceInfo = -// FieldDataDBOperationDriver.getModelDescriptionForSimulation( -// fieldDataFileOperationSpec.specEDI.getOwner(), currentEntry.getValue()); -// fieldDataReferenceInfo.funcNames = referringFieldfunctionNamesV.toArray(new String[0]); -// referencingFuncFileDescription.add(fieldDataReferenceInfo); -//// for (int j = 0; j < referringFieldfunctionNamesV.size(); j++) { -//// referencingFuncFileDescription.add(new String[][] { -//// referringFieldfunctionNamesV.elementAt(j),modelDescription}); -//// } -// } -// }catch(Exception e){ -// lg.error(e); -// throw new RuntimeException(e.getMessage(),e); -// }finally{ -// if(lineNumberReader != null){try{lineNumberReader.close();}catch(Exception e){lg.error(e);}} -// } -// } -// } -// if(referencingFuncFileDescription.size() > 0){ -// FieldDataFileOperationResults fdfor = new FieldDataFileOperationResults(); -// fdfor.dependantFunctionInfo = -// referencingFuncFileDescription.toArray(new FieldDataFileOperationResults.FieldDataReferenceInfo[0]); -// return fdfor; -// } -// return null; - }else if(fieldDataFileOperationSpec.opType == FieldDataFileOperationSpec.FDOS_DELETE){ -// if(fieldDataFileOperation( + fieldDataFileOperationSpec.specEDI.getKey(), + fieldDataFileOperationSpec.owner, + FieldDataFileOperationSpec.JOBINDEX_DEFAULT)); + }catch(Exception e){ + lg.error(e.getMessage(), e); + throw new RuntimeException(e); + } +} + +private FieldDataFileOperationResults fieldDataDelete(FieldDataFileOperationSpec fieldDataFileOperationSpec) throws ObjectNotFoundException { + // if(fieldDataFileOperation( // FieldDataFileOperationSpec. // createDependantFuncsFieldDataFileOperationSpec( // fieldDataFileOperationSpec.specEDI)) != null){ // throw new RuntimeException("Error: Delete failed, reference to FieldData '"+fieldDataFileOperationSpec.specEDI.getName()+"' found in Simulation Data function"); // } - // - //Remove FieldData from caches - // - if(cacheTable0 != null){ - VCSimulationIdentifier vcSimID = + // + //Remove FieldData from caches + // + if(cacheTable0 != null){ + VCSimulationIdentifier vcSimID = new VCSimulationIdentifier( - fieldDataFileOperationSpec.specEDI.getKey(), - fieldDataFileOperationSpec.specEDI.getOwner()); - VCSimulationDataIdentifier simDataID = + fieldDataFileOperationSpec.specEDI.getKey(), + fieldDataFileOperationSpec.specEDI.getOwner()); + VCSimulationDataIdentifier simDataID = new VCSimulationDataIdentifier( vcSimID, FieldDataFileOperationSpec.JOBINDEX_DEFAULT); - cacheTable0.removeAll(simDataID); - cacheTable0.removeAll(fieldDataFileOperationSpec.specEDI); - } - if(userExtDataIDH != null){ - userExtDataIDH.remove(fieldDataFileOperationSpec.specEDI.getOwner()); - } - - SimulationData simulationData = null; - try{ - simulationData = (SimulationData)getVCData(fieldDataFileOperationSpec.specEDI); - }catch(Exception e){ - throw new ObjectNotFoundException(e.getMessage(),e); - } - File fdLogFile = simulationData.getLogFile(); - File fdMeshFile = simulationData.getMeshFile(false); - File fdFunctionFile = simulationData.getFunctionsFile(true); - File fdSubdomainFile = simulationData.getSubdomainFile(); - if(!fdLogFile.delete()){ - System.out.println("Couldn't delete log file "+fdLogFile.getAbsolutePath()); - } - if(!fdMeshFile.delete()){ - System.out.println("Couldn't delete Mesh file "+fdMeshFile.getAbsolutePath()); - } - if(!fdFunctionFile.delete()){ - System.out.println("Couldn't delete Functions file "+fdFunctionFile.getAbsolutePath()); + cacheTable0.removeAll(simDataID); + cacheTable0.removeAll(fieldDataFileOperationSpec.specEDI); + } + if(userExtDataIDH != null){ + userExtDataIDH.remove(fieldDataFileOperationSpec.specEDI.getOwner()); + } + + SimulationData simulationData = null; + try{ + simulationData = (SimulationData)getVCData(fieldDataFileOperationSpec.specEDI); + }catch(Exception e){ + throw new ObjectNotFoundException(e.getMessage(),e); + } + File fdLogFile = simulationData.getLogFile(); + File fdMeshFile = simulationData.getMeshFile(false); + File fdFunctionFile = simulationData.getFunctionsFile(true); + File fdSubdomainFile = simulationData.getSubdomainFile(); + if(!fdLogFile.delete()){ + System.out.println("Couldn't delete log file "+fdLogFile.getAbsolutePath()); + } + if(!fdMeshFile.delete()){ + System.out.println("Couldn't delete Mesh file "+fdMeshFile.getAbsolutePath()); + } + if(!fdFunctionFile.delete()){ + System.out.println("Couldn't delete Functions file "+fdFunctionFile.getAbsolutePath()); + } + if(fdSubdomainFile.exists() && fdSubdomainFile.delete()){ + System.out.println("Couldn't delete Subdomains file "+fdSubdomainFile.getAbsolutePath()); + } + + int index = 0; + while(true){ + File fdZipFile = simulationData.getZipFile(false, index); + if(index != 0 && !fdZipFile.exists()){ + break; } - if(fdSubdomainFile.exists() && fdSubdomainFile.delete()){ - System.out.println("Couldn't delete Subdomains file "+fdSubdomainFile.getAbsolutePath()); + if(!fdZipFile.delete()){ + System.out.println("Couldn't delete zip file "+fdZipFile.getAbsolutePath()); } + index+= 1; + } + return null; +} - int index = 0; - while(true){ - File fdZipFile = simulationData.getZipFile(false, index); - if(index != 0 && !fdZipFile.exists()){ - break; - } - if(!fdZipFile.delete()){ - System.out.println("Couldn't delete zip file "+fdZipFile.getAbsolutePath()); - } - index+= 1; - } - return null; - }else if(fieldDataFileOperationSpec.opType == FieldDataFileOperationSpec.FDOS_INFO){ - try{ - FieldDataFileOperationResults fdor = new FieldDataFileOperationResults(); - VCDataIdentifier sourceSimDataID = +private FieldDataFileOperationResults fieldDataInfo(FieldDataFileOperationSpec fieldDataFileOperationSpec) throws ObjectNotFoundException { + try{ + FieldDataFileOperationResults fdor = new FieldDataFileOperationResults(); + VCDataIdentifier sourceSimDataID = new VCSimulationDataIdentifier( - new VCSimulationIdentifier( - fieldDataFileOperationSpec.sourceSimDataKey, - fieldDataFileOperationSpec.sourceOwner), - fieldDataFileOperationSpec.sourceSimParamScanJobIndex); - fdor.dataIdentifierArr = + new VCSimulationIdentifier( + fieldDataFileOperationSpec.sourceSimDataKey, + fieldDataFileOperationSpec.sourceOwner), + fieldDataFileOperationSpec.sourceSimParamScanJobIndex); + fdor.dataIdentifierArr = getDataIdentifiers(null,sourceSimDataID); - CartesianMesh mesh = getMesh(sourceSimDataID); - fdor.extent = mesh.getExtent(); - fdor.origin = mesh.getOrigin(); - fdor.iSize = new ISize(mesh.getSizeX(),mesh.getSizeY(),mesh.getSizeZ()); - fdor.times = getDataSetTimes(sourceSimDataID); - return fdor; - }catch(FileNotFoundException e){ - throw new ObjectNotFoundException("Error FieldDataOp get INFO",e); - }catch(Exception e){ - throw new RuntimeException("Error FieldDataFileOperationSpec INFO Operation\n"+e.getMessage()); - } + CartesianMesh mesh = getMesh(sourceSimDataID); + fdor.extent = mesh.getExtent(); + fdor.origin = mesh.getOrigin(); + fdor.iSize = new ISize(mesh.getSizeX(),mesh.getSizeY(),mesh.getSizeZ()); + fdor.times = getDataSetTimes(sourceSimDataID); + return fdor; + }catch(FileNotFoundException e){ + throw new ObjectNotFoundException("Error FieldDataOp get INFO",e); + }catch(Exception e){ + throw new RuntimeException("Error FieldDataFileOperationSpec INFO Operation\n"+e.getMessage()); + } +} + +public FieldDataFileOperationResults fieldDataFileOperation(FieldDataFileOperationSpec fieldDataFileOperationSpec) + throws ObjectNotFoundException{ + + if(fieldDataFileOperationSpec.opType == FieldDataFileOperationSpec.FDOS_COPYSIM){ + return fieldDataCopySim(fieldDataFileOperationSpec); + }else if(fieldDataFileOperationSpec.opType == FieldDataFileOperationSpec.FDOS_ADD){ + return fieldDataAdd(fieldDataFileOperationSpec); + }else if(fieldDataFileOperationSpec.opType == FieldDataFileOperationSpec.FDOS_DEPENDANTFUNCS){ + throw new RuntimeException("This function is not currently used"); + }else if(fieldDataFileOperationSpec.opType == FieldDataFileOperationSpec.FDOS_DELETE){ + return fieldDataDelete(fieldDataFileOperationSpec); + }else if(fieldDataFileOperationSpec.opType == FieldDataFileOperationSpec.FDOS_INFO){ + return fieldDataInfo(fieldDataFileOperationSpec); } - throw new RuntimeException("Field data operation "+fieldDataFileOperationSpec.opType+" unknown."); } diff --git a/vcell-core/src/main/java/org/vcell/util/document/ExternalDataIdentifier.java b/vcell-core/src/main/java/org/vcell/util/document/ExternalDataIdentifier.java index 5f761c2eb4..529bf77e2d 100644 --- a/vcell-core/src/main/java/org/vcell/util/document/ExternalDataIdentifier.java +++ b/vcell-core/src/main/java/org/vcell/util/document/ExternalDataIdentifier.java @@ -11,6 +11,7 @@ package org.vcell.util.document; import java.util.StringTokenizer; +import com.fasterxml.jackson.annotation.JsonIgnore; import org.vcell.util.Matchable; @@ -25,9 +26,30 @@ public class ExternalDataIdentifier implements SimResampleInfoProvider,java.io.S private org.vcell.util.document.User owner; private String name; + public static org.vcell.restclient.model.ExternalDataIdentifier externalDataIdentifierToDTO(ExternalDataIdentifier externalDataIdentifier) { + org.vcell.restclient.model.ExternalDataIdentifier dto = new org.vcell.restclient.model.ExternalDataIdentifier(); + dto.key(KeyValue.keyValueToDTO(externalDataIdentifier.getKey())); + dto.owner(User.userToDTO(externalDataIdentifier.getOwner())); + dto.name(externalDataIdentifier.getName()); + return dto; + } + + public static ExternalDataIdentifier dtoToExternalDataIdentifier(org.vcell.restclient.model.ExternalDataIdentifier dto){ + ExternalDataIdentifier externalDataIdentifier = new ExternalDataIdentifier(); + externalDataIdentifier.key = KeyValue.dtoToKeyValue(dto.getDataKey()); + externalDataIdentifier.name = dto.getName(); + externalDataIdentifier.owner = User.dtoToUser(dto.getOwner()); + return externalDataIdentifier; + } + /** * FieldDataIdentifier constructor comment. */ + +public ExternalDataIdentifier(){ + super(); +} + public ExternalDataIdentifier(KeyValue arg_key, org.vcell.util.document.User argOwner,String argName) { super(); key = arg_key; @@ -46,6 +68,8 @@ public static ExternalDataIdentifier fromTokens(StringTokenizer st){ public String toCSVString(){ return key.toString()+","+owner.getName()+","+owner.getID().toString()+","+name; } + +@JsonIgnore public String getID() { return "SimID_"+getKey().toString()+"_0_"; } diff --git a/vcell-core/src/main/java/org/vcell/util/document/KeyValue.java b/vcell-core/src/main/java/org/vcell/util/document/KeyValue.java index ef704c1842..a786222e98 100644 --- a/vcell-core/src/main/java/org/vcell/util/document/KeyValue.java +++ b/vcell-core/src/main/java/org/vcell/util/document/KeyValue.java @@ -20,6 +20,16 @@ public class KeyValue implements java.io.Serializable, Matchable { private java.math.BigDecimal value = null; + public static org.vcell.restclient.model.KeyValue keyValueToDTO(KeyValue kv) { + org.vcell.restclient.model.KeyValue k = new org.vcell.restclient.model.KeyValue(); + k.setValue(kv.value); + return k; + } + public static KeyValue dtoToKeyValue(org.vcell.restclient.model.KeyValue dto){ + return dto == null ? null : new KeyValue(dto.getValue()); + } + + public KeyValue(String value) throws NumberFormatException { this.value = new java.math.BigDecimal(value); } diff --git a/vcell-core/src/main/java/org/vcell/util/document/User.java b/vcell-core/src/main/java/org/vcell/util/document/User.java index 38ccdd7ecf..041727f4b3 100644 --- a/vcell-core/src/main/java/org/vcell/util/document/User.java +++ b/vcell-core/src/main/java/org/vcell/util/document/User.java @@ -13,6 +13,7 @@ import java.util.Arrays; import java.util.Comparator; +import com.fasterxml.jackson.annotation.JsonIgnore; import org.vcell.util.Immutable; import org.vcell.util.Matchable; @@ -25,6 +26,17 @@ public class User implements java.io.Serializable, Matchable, Immutable { private final static String PREVIOUS_DATABASE_VALUE_POWERUSER = "special1"; private final static String PREVIOUS_DATABASE_VALUE_PUBLICATION = "publication"; + public static org.vcell.restclient.model.User userToDTO(User user) { + org.vcell.restclient.model.User userDTO = new org.vcell.restclient.model.User(); + userDTO.setUserName(user.userName); + userDTO.setKey(KeyValue.keyValueToDTO(user.key)); + return userDTO; + } + + public static User dtoToUser(org.vcell.restclient.model.User dto){ + return new User(dto.getUserName(), KeyValue.dtoToKeyValue(dto.getKey())); + } + public enum SPECIAL_CLAIM { admins/*special0*/, powerUsers/*special1*/, @@ -146,6 +158,7 @@ public boolean equals(Object obj) { * This method was created in VisualAge. * @return long */ +@JsonIgnore public KeyValue getID() { return key; } diff --git a/vcell-rest/src/main/java/org/vcell/restq/handlers/FieldData/FieldDataDB.java b/vcell-rest/src/main/java/org/vcell/restq/handlers/FieldData/FieldDataDB.java new file mode 100644 index 0000000000..b869b3f7a8 --- /dev/null +++ b/vcell-rest/src/main/java/org/vcell/restq/handlers/FieldData/FieldDataDB.java @@ -0,0 +1,151 @@ +package org.vcell.restq.handlers.FieldData; + +import cbit.image.ImageException; +import cbit.image.VCImageUncompressed; +import cbit.vcell.field.FieldDataDBOperationResults; +import cbit.vcell.field.FieldDataDBOperationSpec; +import cbit.vcell.field.FieldDataFileConversion; +import cbit.vcell.field.io.FieldDataFileOperationResults; +import cbit.vcell.field.io.FieldDataFileOperationSpec; +import cbit.vcell.geometry.RegionImage; +import cbit.vcell.math.VariableType; +import cbit.vcell.modeldb.DatabaseServerImpl; +import cbit.vcell.resource.PropertyLoader; +import cbit.vcell.simdata.DataSetControllerImpl; +import cbit.vcell.solvers.CartesianMesh; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import org.apache.commons.io.IOUtils; +import org.vcell.restq.db.AgroalConnectionFactory; +import org.vcell.util.DataAccessException; +import org.vcell.util.ObjectNotFoundException; +import org.vcell.util.document.ExternalDataIdentifier; +import org.vcell.util.document.KeyValue; +import org.vcell.util.document.User; + +import java.io.*; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.Vector; +import java.util.zip.DataFormatException; + +@ApplicationScoped +public class FieldDataDB { + + private final DatabaseServerImpl databaseServer; + private final DataSetControllerImpl dataSetController; + + @Inject + public FieldDataDB(AgroalConnectionFactory agroalConnectionFactory) throws DataAccessException, FileNotFoundException { + databaseServer = new DatabaseServerImpl(agroalConnectionFactory, agroalConnectionFactory.getKeyFactory()); + String primarySimDataDir = PropertyLoader.getProperty(PropertyLoader.primarySimDataDirInternalProperty, "/simdata"); + String secondarySimDataDir = PropertyLoader.getProperty(PropertyLoader.secondarySimDataDirInternalProperty, "/simdata"); + dataSetController = new DataSetControllerImpl(null, + new File(primarySimDataDir), + new File(secondarySimDataDir)); + } + + public FieldDataDBOperationResults copyNoConflict(User user, FieldDataDBOperationSpec spec) throws DataAccessException { + return databaseServer.fieldDataDBOperation(user, spec); + } + + public ArrayList getAllFieldDataIDs(User user) throws SQLException, DataAccessException { + FieldDataDBOperationResults results = databaseServer.fieldDataDBOperation(user, FieldDataDBOperationSpec.createGetExtDataIDsSpec(user)); + ArrayList fieldDataReferenceList = new ArrayList<>(); + for (int i =0; i < results.extDataIDArr.length; i++){ + Vector simRefs = new Vector<>(); + if (results.extdataIDAndSimRefH != null){ + simRefs = results.extdataIDAndSimRefH.get(results.extDataIDArr[i]); + } + FieldDataResource.FieldDataReference fieldDataReference = new FieldDataResource.FieldDataReference(results.extDataIDArr[i], results.extDataAnnotArr[i], simRefs); + fieldDataReferenceList.add(fieldDataReference); + } + return fieldDataReferenceList; + } + + public FieldDataFileOperationResults getFieldDataFromID(User user, String id, int jobParameter) throws ObjectNotFoundException { + return dataSetController.fieldDataFileOperation(FieldDataFileOperationSpec.createInfoFieldDataFileOperationSpec(new KeyValue(id), user, jobParameter)); + } + + public FieldDataResource.AnalyzedResultsFromFieldData generateFieldDataFromFile(File imageFile, String fileName) throws DataAccessException, ImageException, DataFormatException { + if (imageFile == null) { + throw new DataAccessException("No file present"); + } + if (!fileName.contains(".vfrap")) { + try { + FieldDataFileOperationSpec spec = FieldDataFileConversion.createFDOSFromImageFile(imageFile, false, null); + return new FieldDataResource.AnalyzedResultsFromFieldData( + spec.shortSpecData, spec.varNames, spec.times, spec.origin, spec.extent, spec.isize, spec.annotation, fileName + ); + } catch (DataFormatException ex) { + throw new RuntimeException("Cannot read image " + fileName + "\n" + ex.getMessage()); + } + } else { + throw new DataFormatException("Can't use .vfrap files"); + } + } + + + public FieldDataFileOperationResults saveNewFieldDataFromFile(FieldDataResource.AnalyzedResultsFromFieldData saveFieldData, User user) throws DataAccessException, ImageException, DataFormatException { + + + VariableType[] varTypes = new VariableType[saveFieldData.varNames().length]; + for (int j = 0; j < saveFieldData.varNames().length; j++){ + varTypes[j] = VariableType.VOLUME; + } + FieldDataDBOperationSpec fieldDataDBOperationSpec = FieldDataDBOperationSpec.createSaveNewExtDataIDSpec(user, saveFieldData.name(), saveFieldData.annotation()); + FieldDataDBOperationResults results = databaseServer.fieldDataDBOperation(user, fieldDataDBOperationSpec); + FieldDataFileOperationSpec fdos = new FieldDataFileOperationSpec(saveFieldData.shortSpecData(), null, null, + results.extDataID, saveFieldData.varNames(), varTypes, saveFieldData.times(), user, + saveFieldData.origin(), saveFieldData.extent(), saveFieldData.isize(), saveFieldData.annotation(), + -1, null, user); + CartesianMesh cartesianMesh; + fdos.opType = FieldDataFileOperationSpec.FDOS_ADD; + try { + cartesianMesh = CartesianMesh.createSimpleCartesianMesh(fdos.origin, fdos.extent, fdos.isize, + new RegionImage(new VCImageUncompressed(null, new byte[fdos.isize.getXYZ()],//empty regions + fdos.extent, fdos.isize.getX(), fdos.isize.getY(), fdos.isize.getZ()), + 0, null, null, RegionImage.NO_SMOOTHING)); + fdos.cartesianMesh = cartesianMesh; + FieldDataFileOperationResults fileSaveResults = dataSetController.fieldDataFileOperation(fdos); + fileSaveResults.externalDataIdentifier = results.extDataID; + return fileSaveResults; + } catch (Exception e) { + // Remove DB entry if file creation fails + databaseServer.fieldDataDBOperation(user, FieldDataDBOperationSpec.createDeleteExtDataIDSpec(results.extDataID)); + throw new RuntimeException(e); + } + } + + public FieldDataDBOperationResults saveNewFieldDataIntoDB(User user, FieldDataDBOperationSpec spec) throws DataAccessException { + return databaseServer.fieldDataDBOperation(user, spec); + } + + public void deleteFieldData(User user, String fieldDataID) throws DataAccessException { + ExternalDataIdentifier edi = new ExternalDataIdentifier(new KeyValue(fieldDataID), user, null); + databaseServer.fieldDataDBOperation(user, FieldDataDBOperationSpec.createDeleteExtDataIDSpec(edi)); // remove from DB + dataSetController.fieldDataFileOperation(FieldDataFileOperationSpec.createDeleteFieldDataFileOperationSpec(edi)); // remove from File System + } + +} + + + + + + + + + + + + + + + + + + + diff --git a/vcell-rest/src/main/java/org/vcell/restq/handlers/FieldData/FieldDataResource.java b/vcell-rest/src/main/java/org/vcell/restq/handlers/FieldData/FieldDataResource.java new file mode 100644 index 0000000000..2011222286 --- /dev/null +++ b/vcell-rest/src/main/java/org/vcell/restq/handlers/FieldData/FieldDataResource.java @@ -0,0 +1,205 @@ +package org.vcell.restq.handlers.FieldData; + +import cbit.image.ImageException; +import cbit.vcell.field.io.FieldDataFileOperationResults; +import cbit.vcell.simdata.DataIdentifier; +import io.quarkus.security.identity.SecurityIdentity; +import jakarta.enterprise.context.RequestScoped; +import jakarta.inject.Inject; +import jakarta.ws.rs.*; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.eclipse.microprofile.openapi.annotations.Operation; +import org.jboss.resteasy.reactive.RestForm; +import org.vcell.restq.db.UserRestDB; +import org.vcell.util.DataAccessException; +import org.vcell.util.Extent; +import org.vcell.util.ISize; +import org.vcell.util.Origin; +import org.vcell.util.document.ExternalDataIdentifier; +import org.vcell.util.document.KeyValue; +import org.vcell.util.document.User; + +import java.io.File; +import java.io.FileNotFoundException; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Vector; +import java.util.regex.Pattern; +import java.util.zip.DataFormatException; + +@Path("/api/v1/fieldData") +@RequestScoped +public class FieldDataResource { + + private static final Logger lg = LogManager.getLogger(FieldDataResource.class); + + @Inject + SecurityIdentity securityIdentity; + + private final FieldDataDB fieldDataDB; + private final UserRestDB userRestDB; + + @Inject + public FieldDataResource(FieldDataDB fieldDataDB, UserRestDB userRestDB){ + this.fieldDataDB = fieldDataDB; + this.userRestDB = userRestDB; + } + + + @GET + @Path("IDs") + @Operation(operationId = "getAllFieldDataIDs", summary = "Get all of the ids used to identify, and retrieve field data.") + public ArrayList getAllFieldDataIDs(){ + try { + return fieldDataDB.getAllFieldDataIDs(userRestDB.getUserFromIdentity(securityIdentity)); + } catch (SQLException e) { + throw new WebApplicationException("Can't retrieve field data ID's.", 500); + } catch (DataAccessException e) { + throw new WebApplicationException(e.getMessage(), 500); + } + } + + @GET + @Path("/fieldDataShape/{fieldDataID}") + @Operation(operationId = "getFieldDataShapeFromID", summary = "Get the shape of the field data. That is it's size, origin, extent, and data identifiers.") + public FieldDataShape getFieldDataShapeFromID(@PathParam("fieldDataID") String fieldDataID){ + try { + FieldDataFileOperationResults results = fieldDataDB.getFieldDataFromID(userRestDB.getUserFromIdentity(securityIdentity), fieldDataID, 0); + return new FieldDataShape(results.extent, results.origin, results.iSize, results.dataIdentifierArr,results.times); + } catch (DataAccessException e) { + if (e.getCause() instanceof FileNotFoundException){ + throw new WebApplicationException("Field data not found.", 404); + } + throw new WebApplicationException("Problem retrieving file.", 500); + } + } + +// @POST +// @Path("/createFieldDataFromSimulation") +// @Produces(MediaType.APPLICATION_JSON) +// @Consumes(MediaType.APPLICATION_JSON) +// @Operation(operationId = "createNewFieldDataFromSimulation", summary = "Create new field data from a simulation.") +// public ExternalDataIdentifier submitNewFieldDataToDB(FieldDataDBOperationSpec fieldDataDBOperationSpec){ +// FieldDataDBOperationResults results = null; +// try { +// results = fieldDataDB.saveNewFieldDataIntoDB(userRestDB.getUserFromIdentity(securityIdentity), fieldDataDBOperationSpec); +// } catch (DataAccessException e) { +// throw new WebApplicationException(e.getMessage(), 500); +// } +// return results.extDataID; +// } + + @POST + @Path("/analyzeFieldDataFile") + @Produces(MediaType.APPLICATION_JSON) + @Consumes(MediaType.MULTIPART_FORM_DATA) + @Operation(operationId = "analyzeFieldDataFile", summary = "Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores.") + public AnalyzedResultsFromFieldData analyzeFieldData(@RestForm File file, @RestForm String fileName){ + try{ + if (!Pattern.matches("^[a-z0-9_]*$", fileName) || fileName.length() > 100 || fileName.isEmpty()){ + throw new WebApplicationException("Invalid file name.", 400); + } + return fieldDataDB.generateFieldDataFromFile(file, fileName); + } catch (ImageException | DataFormatException | DataAccessException e) { + throw new WebApplicationException("Can't create new field data file", 500); + } + } + + @POST + @Path("/createFieldDataFromAnalyzedFile") + @Produces(MediaType.APPLICATION_JSON) + @Consumes(MediaType.APPLICATION_JSON) + @Operation(operationId = "createFieldDataFromAnalyzedFile", summary = "Take the analyzed results of the field data, modify it to your liking, then save it on the server.") + public FieldDataSaveResults createNewFieldDataFromFile(AnalyzedResultsFromFieldData saveFieldData){ + FieldDataSaveResults fieldDataSaveResults; + try{ + User user = userRestDB.getUserFromIdentity(securityIdentity); + FieldDataFileOperationResults fileResults = fieldDataDB.saveNewFieldDataFromFile(saveFieldData, user); + fieldDataSaveResults = new FieldDataSaveResults(fileResults.externalDataIdentifier.getName(), fileResults.externalDataIdentifier.getKey().toString()); + } catch (ImageException | DataFormatException | DataAccessException e) { + throw new WebApplicationException(e.getMessage(), Response.Status.INTERNAL_SERVER_ERROR); + } + return fieldDataSaveResults; + } + +// @POST +// @Path("/copy") +// @Produces(MediaType.APPLICATION_JSON) +// @Consumes(MediaType.APPLICATION_JSON) +// @Operation(operationId = "copyFieldData", summary = "Copy an existing field data entry.") +// public FieldDataNoCopyConflict copyFieldData(FieldDataDBOperationSpec fieldDataDBOperationSpec){ +// FieldDataDBOperationResults results = null; +// try { +// results = fieldDataDB.copyNoConflict(userRestDB.getUserFromIdentity(securityIdentity), fieldDataDBOperationSpec); +// } catch (DataAccessException e) { +// throw new WebApplicationException(e.getMessage(), 500); +// } +// return new FieldDataNoCopyConflict(results.oldNameNewIDHash, results.oldNameOldExtDataIDKeyHash); +// } + + @DELETE + @Path("/delete/{fieldDataID}") + @Operation(operationId = "deleteFieldData", summary = "Delete the selected field data.") + public void deleteFieldData(@PathParam("fieldDataID") String fieldDataID){ + try{ + fieldDataDB.deleteFieldData(userRestDB.getUserFromIdentity(securityIdentity), fieldDataID); + } catch (DataAccessException e) { + throw new WebApplicationException(e.getMessage(), 500); + } + } + + public record FieldDataShape( + Extent extent, + Origin origin, + ISize isize, + DataIdentifier[] dataIdentifier, + double[] times + ){ } + +// public record DataID( +// String name, +// String displayName, +// VariableType variableType, +// String domainName, +// boolean bFunction +// ){ } + +// public record FieldDataNoCopyConflict( +// Hashtable oldNameNewIDHash, +// Hashtable oldNameOldExtDataIDKeyHash +// ) { } + + public record FieldDataReference( + ExternalDataIdentifier externalDataIdentifier, + String externalDataAnnotation, + Vector externalDataIDSimRefs + ) { } + + public record AnalyzedResultsFromFieldData( + short[][][] shortSpecData, //[time][var][data] + String[] varNames, + double[] times, + Origin origin, + Extent extent, + ISize isize, + String annotation, + String name + ){ } + + public record FieldDataSaveResults( + String fieldDataName, + String fieldDataID + ){ } + + public static class FieldDataFile { + @RestForm("file") + public File file; + + @RestForm("fileName") + public String fileName; + } + +} diff --git a/vcell-rest/src/test/java/org/vcell/restq/TestEndpointUtils.java b/vcell-rest/src/test/java/org/vcell/restq/TestEndpointUtils.java index 7905f19d21..c7b59d61c3 100644 --- a/vcell-rest/src/test/java/org/vcell/restq/TestEndpointUtils.java +++ b/vcell-rest/src/test/java/org/vcell/restq/TestEndpointUtils.java @@ -13,7 +13,9 @@ import cbit.vcell.xml.XmlHelper; import cbit.vcell.xml.XmlParseException; import io.quarkus.test.keycloak.client.KeycloakTestClient; +import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; +import org.apache.commons.lang.RandomStringUtils; import org.vcell.restclient.ApiClient; import org.vcell.restclient.ApiException; import org.vcell.restclient.api.UsersResourceApi; @@ -26,11 +28,14 @@ import java.beans.PropertyVetoException; import java.beans.PropertyVetoException; +import java.io.File; import java.io.IOException; +import java.io.InputStream; import java.sql.SQLException; import java.time.LocalDate; import java.util.ArrayList; import java.util.Arrays; +import java.util.Objects; public class TestEndpointUtils { @@ -132,4 +137,12 @@ public static BioModel defaultBiomodel() throws Exception { simulation.getSolverTaskDescription().setTimeBounds(new TimeBounds(0, 10)); return biomodel; } + + public static File getResourceFile(String relativeResourcePath) throws IOException { + InputStream inputStream = Objects.requireNonNull(TestEndpointUtils.class.getResourceAsStream(relativeResourcePath)); + File tmpFile = File.createTempFile("tmp-" + RandomStringUtils.randomAlphabetic(10), ".api-test-file"); + tmpFile.deleteOnExit(); + FileUtils.copyInputStreamToFile(inputStream, tmpFile); + return tmpFile; + } } diff --git a/vcell-rest/src/test/java/org/vcell/restq/apiclient/FieldDataAPITest.java b/vcell-rest/src/test/java/org/vcell/restq/apiclient/FieldDataAPITest.java new file mode 100644 index 0000000000..62e2c889d5 --- /dev/null +++ b/vcell-rest/src/test/java/org/vcell/restq/apiclient/FieldDataAPITest.java @@ -0,0 +1,192 @@ +package org.vcell.restq.apiclient; + +import cbit.vcell.math.VariableType; +import cbit.vcell.resource.PropertyLoader; +import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.keycloak.client.KeycloakTestClient; +import jakarta.inject.Inject; +import org.apache.commons.io.FileUtils; +import org.eclipse.jetty.http.HttpStatus; +import org.eclipse.microprofile.config.inject.ConfigProperty; +import org.junit.jupiter.api.*; +import org.vcell.restclient.ApiClient; +import org.vcell.restclient.ApiException; +import org.vcell.restclient.api.FieldDataResourceApi; +import org.vcell.restclient.api.UsersResourceApi; +import org.vcell.restclient.model.AnalyzedResultsFromFieldData; +import org.vcell.restclient.model.FieldDataReference; +import org.vcell.restclient.model.FieldDataSaveResults; +import org.vcell.restclient.model.FieldDataShape; +import org.vcell.restq.TestEndpointUtils; +import org.vcell.restq.config.CDIVCellConfigProvider; +import org.vcell.restq.db.AgroalConnectionFactory; +import org.vcell.util.DataAccessException; +import org.vcell.util.Extent; +import org.vcell.util.ISize; +import org.vcell.util.Origin; + +import java.io.File; +import java.io.IOException; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +@QuarkusTest +public class FieldDataAPITest { + + @ConfigProperty(name = "quarkus.http.test-port") + Integer testPort; + + @Inject + AgroalConnectionFactory agroalConnectionFactory; + + KeycloakTestClient keycloakClient = new KeycloakTestClient(); + + private ApiClient aliceAPIClient; + private ApiClient bobAPIClient; + private static String previousPrimarySimDir; + private static String previousSecondarySimDir; + + private final static File temporaryFolder = new File(System.getProperty("java.io.tmpdir") + "/fieldDataTest"); + + @BeforeAll + public static void setupConfig(){ + PropertyLoader.setConfigProvider(new CDIVCellConfigProvider()); + } + + @BeforeEach + public void createClients() throws ApiException { + aliceAPIClient = TestEndpointUtils.createAuthenticatedAPIClient(keycloakClient, testPort, TestEndpointUtils.TestOIDCUsers.alice); + bobAPIClient = TestEndpointUtils.createAuthenticatedAPIClient(keycloakClient, testPort, TestEndpointUtils.TestOIDCUsers.bob); + UsersResourceApi usersResourceApi = new UsersResourceApi(aliceAPIClient); + usersResourceApi.mapUser(TestEndpointUtils.administratorUserLoginInfo); + + temporaryFolder.mkdirs(); + + previousPrimarySimDir = PropertyLoader.getProperty(PropertyLoader.primarySimDataDirInternalProperty, null); + PropertyLoader.setProperty(PropertyLoader.primarySimDataDirInternalProperty, temporaryFolder.getAbsolutePath()); + + previousSecondarySimDir = PropertyLoader.getProperty(PropertyLoader.secondarySimDataDirExternalProperty, null); + System.setProperty(PropertyLoader.secondarySimDataDirExternalProperty, temporaryFolder.getAbsolutePath()); + } + + @AfterEach + public void removeOIDCMappings() throws SQLException, DataAccessException, IOException { + TestEndpointUtils.removeAllMappings(agroalConnectionFactory); + if (previousPrimarySimDir != null){ + PropertyLoader.setProperty(PropertyLoader.primarySimDataDirInternalProperty, previousPrimarySimDir); + } + if (previousSecondarySimDir != null){ + System.setProperty(PropertyLoader.secondarySimDataDirExternalProperty, previousSecondarySimDir); + } + + FileUtils.cleanDirectory(temporaryFolder); + } + + + @Test + public void testAddAndDeleteFieldDataFromFile() throws ApiException { + FieldDataResourceApi fieldDataResourceApi = new FieldDataResourceApi(aliceAPIClient); + List>> matrix = new ArrayList<>(); + List varNames = new ArrayList<>(){{add("Variable 1");}}; + List times = new ArrayList<>(); times.add(0.0); times.add(1.0); + + double x = 5; + double y = 4; + double z = 3; + for (int t = 0; t < times.size(); t++){ + List> tArr = new ArrayList<>(); + for (int vars = 0; vars < varNames.size(); vars++){ + List vArr = new ArrayList<>(); + for (int i = 0; i < (x * y * z); i++){ + vArr.add(i); + } + tArr.add(vArr); + } + matrix.add(tArr); + } + VariableType varType = VariableType.getVariableTypeFromInteger(1); + Origin origin = new Origin(0.0, 0.0, 0.0); + Extent extent = new Extent(x, y, z); + ISize iSize = new ISize(1, 1, 1); + + ///////////////////// + // Add Field Data // + /////////////////// + AnalyzedResultsFromFieldData saveFieldDataFromFile = new AnalyzedResultsFromFieldData(); + saveFieldDataFromFile.setShortSpecData(matrix); saveFieldDataFromFile.varNames(varNames); + saveFieldDataFromFile.times(times); saveFieldDataFromFile.origin(Origin.originToDTO(origin)); saveFieldDataFromFile.extent(Extent.extentToDTO(extent)); + saveFieldDataFromFile.isize(ISize.iSizeToDTO(iSize)); saveFieldDataFromFile.annotation("test annotation"); saveFieldDataFromFile.name("TestFile"); + FieldDataSaveResults results = fieldDataResourceApi.createFieldDataFromAnalyzedFile(saveFieldDataFromFile); + + // File is Saved on File System + FieldDataShape fieldDataInfo = fieldDataResourceApi.getFieldDataShapeFromID(results.getFieldDataID()); + Assertions.assertEquals(saveFieldDataFromFile.getName(), results.getFieldDataName()); + Assertions.assertTrue(origin.compareEqual(Origin.dtoToOrigin(fieldDataInfo.getOrigin()))); + Assertions.assertTrue(extent.compareEqual(Extent.dtoToExtent(fieldDataInfo.getExtent()))); + Assertions.assertTrue(iSize.compareEqual(ISize.dtoToISize(fieldDataInfo.getIsize()))); + Assertions.assertEquals(times, fieldDataInfo.getTimes()); + + // It's in the DB + List references = fieldDataResourceApi.getAllFieldDataIDs(); + Assertions.assertEquals(saveFieldDataFromFile.getAnnotation(), references.get(0).getExternalDataAnnotation()); + Assertions.assertEquals(results.getFieldDataID(), references.get(0).getExternalDataIdentifier().getKey().getValue().toString()); + Assertions.assertEquals(0, references.get(0).getExternalDataIDSimRefs().size()); + + /////////////////////// + // Delete Field Data // + ////////////////////// + fieldDataResourceApi.deleteFieldData(results.getFieldDataID()); + + // No Longer on File System + try{ + fieldDataResourceApi.getFieldDataShapeFromID(results.getFieldDataID()); + } catch (ApiException e){ + Assertions.assertEquals(404, e.getCode()); + } + + // No Longer in DB + references = fieldDataResourceApi.getAllFieldDataIDs(); + Assertions.assertEquals(0, references.size()); + } + + + @Test + public void testFileUploading() throws ApiException, IOException { + FieldDataResourceApi fieldDataResourceApi = new FieldDataResourceApi(aliceAPIClient); + File testFile = TestEndpointUtils.getResourceFile("/flybrain-035.tif"); + try{ + fieldDataResourceApi.analyzeFieldDataFile(testFile, "invalid N@me #Ezequiel"); + } catch (ApiException e){ + Assertions.assertEquals(HttpStatus.BAD_REQUEST_400, e.getCode()); + } + + AnalyzedResultsFromFieldData results = fieldDataResourceApi.analyzeFieldDataFile(testFile, "bob"); + + Assertions.assertNotNull(results); + Assertions.assertNotNull(results.getShortSpecData()); + + FieldDataSaveResults saveResults = fieldDataResourceApi.createFieldDataFromAnalyzedFile(results); + Assertions.assertNotNull(saveResults); + + FieldDataShape fieldDataInfo = fieldDataResourceApi.getFieldDataShapeFromID(saveResults.getFieldDataID()); + Assertions.assertNotNull(fieldDataInfo); + Assertions.assertTrue(Origin.dtoToOrigin(fieldDataInfo.getOrigin()).compareEqual(new Origin(0.0, 0.0, 0.0))); + Assertions.assertTrue(Extent.dtoToExtent(fieldDataInfo.getExtent()).compareEqual(new Extent(684.9333393978472, 684.9333393978472, 1))); + Assertions.assertTrue(ISize.dtoToISize(fieldDataInfo.getIsize()).compareEqual(new ISize(256, 256, 1))); + Assertions.assertEquals(1, fieldDataInfo.getTimes().size()); + + fieldDataResourceApi.deleteFieldData(saveResults.getFieldDataID()); + + try{ + fieldDataResourceApi.getFieldDataShapeFromID(saveResults.getFieldDataID()); + } catch (ApiException e){ + Assertions.assertEquals(404, e.getCode()); + } + + // No Longer in DB + List references = fieldDataResourceApi.getAllFieldDataIDs(); + Assertions.assertEquals(0, references.size()); + } + +} diff --git a/vcell-rest/src/test/resources/flybrain-035.tif b/vcell-rest/src/test/resources/flybrain-035.tif new file mode 100644 index 0000000000..5c5d889f67 Binary files /dev/null and b/vcell-rest/src/test/resources/flybrain-035.tif differ diff --git a/vcell-restclient/.openapi-generator/FILES b/vcell-restclient/.openapi-generator/FILES index 0105336499..2a54d3a046 100644 --- a/vcell-restclient/.openapi-generator/FILES +++ b/vcell-restclient/.openapi-generator/FILES @@ -3,17 +3,28 @@ README.md api/openapi.yaml docs/AccesTokenRepresentationRecord.md docs/AdminResourceApi.md +docs/AnalyzedResultsFromFieldData.md docs/BatchSystemType.md docs/BioModel.md docs/BioModelResourceApi.md docs/BiomodelRef.md +docs/DataIdentifier.md docs/DetailedState.md +docs/Domain.md +docs/Extent.md +docs/ExternalDataIdentifier.md +docs/FieldDataReference.md +docs/FieldDataResourceApi.md +docs/FieldDataSaveResults.md +docs/FieldDataShape.md docs/HelloWorldApi.md docs/HelloWorldMessage.md docs/HtcJobID.md +docs/ISize.md docs/Identity.md docs/KeyValue.md docs/MathmodelRef.md +docs/Origin.md docs/Publication.md docs/PublicationResourceApi.md docs/SchedulerStatus.md @@ -32,6 +43,8 @@ docs/UserLoginInfoForMapping.md docs/UserRegistrationInfo.md docs/UsersResourceApi.md docs/VCSimulationIdentifier.md +docs/VariableDomain.md +docs/VariableType.md src/main/AndroidManifest.xml src/main/java/org/vcell/restclient/ApiClient.java src/main/java/org/vcell/restclient/ApiException.java @@ -44,21 +57,32 @@ src/main/java/org/vcell/restclient/ServerConfiguration.java src/main/java/org/vcell/restclient/ServerVariable.java src/main/java/org/vcell/restclient/api/AdminResourceApi.java src/main/java/org/vcell/restclient/api/BioModelResourceApi.java +src/main/java/org/vcell/restclient/api/FieldDataResourceApi.java src/main/java/org/vcell/restclient/api/HelloWorldApi.java src/main/java/org/vcell/restclient/api/PublicationResourceApi.java src/main/java/org/vcell/restclient/api/SimulationResourceApi.java src/main/java/org/vcell/restclient/api/UsersResourceApi.java src/main/java/org/vcell/restclient/model/AbstractOpenApiSchema.java src/main/java/org/vcell/restclient/model/AccesTokenRepresentationRecord.java +src/main/java/org/vcell/restclient/model/AnalyzedResultsFromFieldData.java src/main/java/org/vcell/restclient/model/BatchSystemType.java src/main/java/org/vcell/restclient/model/BioModel.java src/main/java/org/vcell/restclient/model/BiomodelRef.java +src/main/java/org/vcell/restclient/model/DataIdentifier.java src/main/java/org/vcell/restclient/model/DetailedState.java +src/main/java/org/vcell/restclient/model/Domain.java +src/main/java/org/vcell/restclient/model/Extent.java +src/main/java/org/vcell/restclient/model/ExternalDataIdentifier.java +src/main/java/org/vcell/restclient/model/FieldDataReference.java +src/main/java/org/vcell/restclient/model/FieldDataSaveResults.java +src/main/java/org/vcell/restclient/model/FieldDataShape.java src/main/java/org/vcell/restclient/model/HelloWorldMessage.java src/main/java/org/vcell/restclient/model/HtcJobID.java +src/main/java/org/vcell/restclient/model/ISize.java src/main/java/org/vcell/restclient/model/Identity.java src/main/java/org/vcell/restclient/model/KeyValue.java src/main/java/org/vcell/restclient/model/MathmodelRef.java +src/main/java/org/vcell/restclient/model/Origin.java src/main/java/org/vcell/restclient/model/Publication.java src/main/java/org/vcell/restclient/model/SchedulerStatus.java src/main/java/org/vcell/restclient/model/SimulationExecutionStatusRecord.java @@ -74,3 +98,5 @@ src/main/java/org/vcell/restclient/model/UserIdentityJSONSafe.java src/main/java/org/vcell/restclient/model/UserLoginInfoForMapping.java src/main/java/org/vcell/restclient/model/UserRegistrationInfo.java src/main/java/org/vcell/restclient/model/VCSimulationIdentifier.java +src/main/java/org/vcell/restclient/model/VariableDomain.java +src/main/java/org/vcell/restclient/model/VariableType.java diff --git a/vcell-restclient/README.md b/vcell-restclient/README.md index da0fbcc9a4..5a04f9aa2b 100644 --- a/vcell-restclient/README.md +++ b/vcell-restclient/README.md @@ -113,6 +113,16 @@ Class | Method | HTTP request | Description *BioModelResourceApi* | [**getBiomodelByIdWithHttpInfo**](docs/BioModelResourceApi.md#getBiomodelByIdWithHttpInfo) | **GET** /api/v1/bioModel/{bioModelID} | Get BioModel information in JSON format by ID. *BioModelResourceApi* | [**uploadBioModel**](docs/BioModelResourceApi.md#uploadBioModel) | **POST** /api/v1/bioModel/upload_bioModel | Upload the BioModel to VCell database. Returns BioModel ID. *BioModelResourceApi* | [**uploadBioModelWithHttpInfo**](docs/BioModelResourceApi.md#uploadBioModelWithHttpInfo) | **POST** /api/v1/bioModel/upload_bioModel | Upload the BioModel to VCell database. Returns BioModel ID. +*FieldDataResourceApi* | [**analyzeFieldDataFile**](docs/FieldDataResourceApi.md#analyzeFieldDataFile) | **POST** /api/v1/fieldData/analyzeFieldDataFile | Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. +*FieldDataResourceApi* | [**analyzeFieldDataFileWithHttpInfo**](docs/FieldDataResourceApi.md#analyzeFieldDataFileWithHttpInfo) | **POST** /api/v1/fieldData/analyzeFieldDataFile | Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. +*FieldDataResourceApi* | [**createFieldDataFromAnalyzedFile**](docs/FieldDataResourceApi.md#createFieldDataFromAnalyzedFile) | **POST** /api/v1/fieldData/createFieldDataFromAnalyzedFile | Take the analyzed results of the field data, modify it to your liking, then save it on the server. +*FieldDataResourceApi* | [**createFieldDataFromAnalyzedFileWithHttpInfo**](docs/FieldDataResourceApi.md#createFieldDataFromAnalyzedFileWithHttpInfo) | **POST** /api/v1/fieldData/createFieldDataFromAnalyzedFile | Take the analyzed results of the field data, modify it to your liking, then save it on the server. +*FieldDataResourceApi* | [**deleteFieldData**](docs/FieldDataResourceApi.md#deleteFieldData) | **DELETE** /api/v1/fieldData/delete/{fieldDataID} | Delete the selected field data. +*FieldDataResourceApi* | [**deleteFieldDataWithHttpInfo**](docs/FieldDataResourceApi.md#deleteFieldDataWithHttpInfo) | **DELETE** /api/v1/fieldData/delete/{fieldDataID} | Delete the selected field data. +*FieldDataResourceApi* | [**getAllFieldDataIDs**](docs/FieldDataResourceApi.md#getAllFieldDataIDs) | **GET** /api/v1/fieldData/IDs | Get all of the ids used to identify, and retrieve field data. +*FieldDataResourceApi* | [**getAllFieldDataIDsWithHttpInfo**](docs/FieldDataResourceApi.md#getAllFieldDataIDsWithHttpInfo) | **GET** /api/v1/fieldData/IDs | Get all of the ids used to identify, and retrieve field data. +*FieldDataResourceApi* | [**getFieldDataShapeFromID**](docs/FieldDataResourceApi.md#getFieldDataShapeFromID) | **GET** /api/v1/fieldData/fieldDataShape/{fieldDataID} | Get the shape of the field data. That is it's size, origin, extent, and data identifiers. +*FieldDataResourceApi* | [**getFieldDataShapeFromIDWithHttpInfo**](docs/FieldDataResourceApi.md#getFieldDataShapeFromIDWithHttpInfo) | **GET** /api/v1/fieldData/fieldDataShape/{fieldDataID} | Get the shape of the field data. That is it's size, origin, extent, and data identifiers. *HelloWorldApi* | [**getHelloWorld**](docs/HelloWorldApi.md#getHelloWorld) | **GET** /api/v1/helloworld | Get hello world message. *HelloWorldApi* | [**getHelloWorldWithHttpInfo**](docs/HelloWorldApi.md#getHelloWorldWithHttpInfo) | **GET** /api/v1/helloworld | Get hello world message. *PublicationResourceApi* | [**createPublication**](docs/PublicationResourceApi.md#createPublication) | **POST** /api/v1/publications | Create publication @@ -156,15 +166,25 @@ Class | Method | HTTP request | Description ## Documentation for Models - [AccesTokenRepresentationRecord](docs/AccesTokenRepresentationRecord.md) + - [AnalyzedResultsFromFieldData](docs/AnalyzedResultsFromFieldData.md) - [BatchSystemType](docs/BatchSystemType.md) - [BioModel](docs/BioModel.md) - [BiomodelRef](docs/BiomodelRef.md) + - [DataIdentifier](docs/DataIdentifier.md) - [DetailedState](docs/DetailedState.md) + - [Domain](docs/Domain.md) + - [Extent](docs/Extent.md) + - [ExternalDataIdentifier](docs/ExternalDataIdentifier.md) + - [FieldDataReference](docs/FieldDataReference.md) + - [FieldDataSaveResults](docs/FieldDataSaveResults.md) + - [FieldDataShape](docs/FieldDataShape.md) - [HelloWorldMessage](docs/HelloWorldMessage.md) - [HtcJobID](docs/HtcJobID.md) + - [ISize](docs/ISize.md) - [Identity](docs/Identity.md) - [KeyValue](docs/KeyValue.md) - [MathmodelRef](docs/MathmodelRef.md) + - [Origin](docs/Origin.md) - [Publication](docs/Publication.md) - [SchedulerStatus](docs/SchedulerStatus.md) - [SimulationExecutionStatusRecord](docs/SimulationExecutionStatusRecord.md) @@ -180,6 +200,8 @@ Class | Method | HTTP request | Description - [UserLoginInfoForMapping](docs/UserLoginInfoForMapping.md) - [UserRegistrationInfo](docs/UserRegistrationInfo.md) - [VCSimulationIdentifier](docs/VCSimulationIdentifier.md) + - [VariableDomain](docs/VariableDomain.md) + - [VariableType](docs/VariableType.md) diff --git a/vcell-restclient/api/openapi.yaml b/vcell-restclient/api/openapi.yaml index b2720db146..f75ef73ca8 100644 --- a/vcell-restclient/api/openapi.yaml +++ b/vcell-restclient/api/openapi.yaml @@ -195,11 +195,112 @@ paths: application/json: schema: $ref: '#/components/schemas/BioModel' - description: OK + description: return BioModel information in JSON format + "404": + description: BioModel not found summary: Get BioModel information in JSON format by ID. tags: - Bio Model Resource x-accepts: application/json + /api/v1/fieldData/IDs: + get: + operationId: getAllFieldDataIDs + responses: + "200": + content: + application/json: + schema: + items: + $ref: '#/components/schemas/FieldDataReference' + type: array + description: OK + summary: "Get all of the ids used to identify, and retrieve field data." + tags: + - Field Data Resource + x-accepts: application/json + /api/v1/fieldData/analyzeFieldDataFile: + post: + operationId: analyzeFieldDataFile + requestBody: + content: + multipart/form-data: + schema: + $ref: '#/components/schemas/analyzeFieldDataFile_request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/AnalyzedResultsFromFieldData' + description: OK + summary: "Analyze the field data from the uploaded file. Filenames must be lowercase\ + \ alphanumeric, and can contain underscores." + tags: + - Field Data Resource + x-content-type: multipart/form-data + x-accepts: application/json + /api/v1/fieldData/createFieldDataFromAnalyzedFile: + post: + operationId: createFieldDataFromAnalyzedFile + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AnalyzedResultsFromFieldData' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/FieldDataSaveResults' + description: OK + summary: "Take the analyzed results of the field data, modify it to your liking,\ + \ then save it on the server." + tags: + - Field Data Resource + x-content-type: application/json + x-accepts: application/json + /api/v1/fieldData/delete/{fieldDataID}: + delete: + operationId: deleteFieldData + parameters: + - explode: false + in: path + name: fieldDataID + required: true + schema: + type: string + style: simple + responses: + "204": + description: No Content + summary: Delete the selected field data. + tags: + - Field Data Resource + x-accepts: application/json + /api/v1/fieldData/fieldDataShape/{fieldDataID}: + get: + operationId: getFieldDataShapeFromID + parameters: + - explode: false + in: path + name: fieldDataID + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/FieldDataShape' + description: OK + summary: "Get the shape of the field data. That is it's size, origin, extent,\ + \ and data identifiers." + tags: + - Field Data Resource + x-accepts: application/json /api/v1/helloworld: get: operationId: getHelloWorld @@ -503,10 +604,10 @@ paths: description: magic link sent in email if appropriate "400": description: unable to process request - "403": - description: Not Allowed "401": description: Not Authorized + "403": + description: Not Allowed security: - openId: - user @@ -566,6 +667,66 @@ components: userKey: type: string type: object + AnalyzedResultsFromFieldData: + example: + extent: + x: 2.3021358869347655 + "y": 7.061401241503109 + z: 9.301444243932576 + annotation: annotation + times: + - 6.027456183070403 + - 6.027456183070403 + origin: + x: 1.4658129805029452 + "y": 5.962133916683182 + z: 5.637376656633329 + isize: + x: 3 + "y": 2 + z: 4 + name: name + varNames: + - varNames + - varNames + shortSpecData: + - - - 0 + - 0 + - - 0 + - 0 + - - - 0 + - 0 + - - 0 + - 0 + properties: + shortSpecData: + items: + items: + items: + type: integer + type: array + type: array + type: array + varNames: + items: + type: string + type: array + times: + items: + format: double + type: number + type: array + origin: + $ref: '#/components/schemas/Origin' + extent: + $ref: '#/components/schemas/Extent' + isize: + $ref: '#/components/schemas/ISize' + annotation: + type: string + name: + type: string + type: object Application: type: object BatchSystemType: @@ -650,6 +811,41 @@ components: format: int32 type: integer type: object + DataIdentifier: + example: + variableType: + defaultUnits: defaultUnits + name: name + typeName: typeName + defaultLabel: defaultLabel + units: units + label: label + type: 0 + variableDomain: null + legacyWarn: true + visible: true + displayName: displayName + bFunction: true + domain: + name: name + function: true + name: name + properties: + name: + type: string + displayName: + type: string + variableType: + $ref: '#/components/schemas/VariableType' + domain: + $ref: '#/components/schemas/Domain' + bFunction: + type: boolean + function: + type: boolean + visible: + type: boolean + type: object Date: example: 2022-03-10 format: date @@ -707,6 +903,180 @@ components: - WORKEREVENT_FAILURE - JOB_FAILED type: string + Domain: + example: + name: name + properties: + name: + type: string + type: object + Extent: + example: + x: 2.3021358869347655 + "y": 7.061401241503109 + z: 9.301444243932576 + properties: + x: + format: double + type: number + xml: + attribute: true + "y": + format: double + type: number + xml: + attribute: true + z: + format: double + type: number + xml: + attribute: true + type: object + ExternalDataIdentifier: + example: + owner: + testAccount: true + name: name + userName: userName + key: + value: 0.8008281904610115 + dataKey: + value: 0.8008281904610115 + simulationKey: + value: 0.8008281904610115 + jobIndex: 0 + name: name + key: + value: 0.8008281904610115 + parameterScanType: true + properties: + key: + $ref: '#/components/schemas/KeyValue' + owner: + $ref: '#/components/schemas/User' + name: + type: string + jobIndex: + format: int32 + type: integer + simulationKey: + $ref: '#/components/schemas/KeyValue' + parameterScanType: + type: boolean + dataKey: + $ref: '#/components/schemas/KeyValue' + type: object + FieldDataReference: + example: + externalDataAnnotation: externalDataAnnotation + externalDataIdentifier: + owner: + testAccount: true + name: name + userName: userName + key: + value: 0.8008281904610115 + dataKey: + value: 0.8008281904610115 + simulationKey: + value: 0.8008281904610115 + jobIndex: 0 + name: name + key: + value: 0.8008281904610115 + parameterScanType: true + externalDataIDSimRefs: + - value: 0.8008281904610115 + - value: 0.8008281904610115 + properties: + externalDataIdentifier: + $ref: '#/components/schemas/ExternalDataIdentifier' + externalDataAnnotation: + type: string + externalDataIDSimRefs: + items: + $ref: '#/components/schemas/KeyValue' + type: array + type: object + FieldDataSaveResults: + example: + fieldDataName: fieldDataName + fieldDataID: fieldDataID + properties: + fieldDataName: + type: string + fieldDataID: + type: string + type: object + FieldDataShape: + example: + extent: + x: 2.3021358869347655 + "y": 7.061401241503109 + z: 9.301444243932576 + times: + - 6.027456183070403 + - 6.027456183070403 + origin: + x: 1.4658129805029452 + "y": 5.962133916683182 + z: 5.637376656633329 + isize: + x: 3 + "y": 2 + z: 4 + dataIdentifier: + - variableType: + defaultUnits: defaultUnits + name: name + typeName: typeName + defaultLabel: defaultLabel + units: units + label: label + type: 0 + variableDomain: null + legacyWarn: true + visible: true + displayName: displayName + bFunction: true + domain: + name: name + function: true + name: name + - variableType: + defaultUnits: defaultUnits + name: name + typeName: typeName + defaultLabel: defaultLabel + units: units + label: label + type: 0 + variableDomain: null + legacyWarn: true + visible: true + displayName: displayName + bFunction: true + domain: + name: name + function: true + name: name + properties: + extent: + $ref: '#/components/schemas/Extent' + origin: + $ref: '#/components/schemas/Origin' + isize: + $ref: '#/components/schemas/ISize' + dataIdentifier: + items: + $ref: '#/components/schemas/DataIdentifier' + type: array + times: + items: + format: double + type: number + type: array + type: object HelloWorldMessage: example: message: message @@ -728,6 +1098,22 @@ components: batchSystemType: $ref: '#/components/schemas/BatchSystemType' type: object + ISize: + example: + x: 3 + "y": 2 + z: 4 + properties: + x: + format: int32 + type: integer + "y": + format: int32 + type: integer + z: + format: int32 + type: integer + type: object Identity: example: credentials: @@ -789,6 +1175,28 @@ components: format: int32 type: integer type: object + Origin: + example: + x: 1.4658129805029452 + "y": 5.962133916683182 + z: 5.637376656633329 + properties: + x: + format: double + type: number + xml: + attribute: true + "y": + format: double + type: number + xml: + attribute: true + z: + format: double + type: number + xml: + attribute: true + type: object Publication: example: date: 2022-03-10T00:00:00.000+00:00 @@ -933,8 +1341,6 @@ components: owner: testAccount: true name: name - iD: - value: 0.8008281904610115 userName: userName key: value: 0.8008281904610115 @@ -1073,8 +1479,6 @@ components: owner: testAccount: true name: name - iD: - value: 0.8008281904610115 userName: userName key: value: 0.8008281904610115 @@ -1108,8 +1512,6 @@ components: example: testAccount: true name: name - iD: - value: 0.8008281904610115 userName: userName key: value: 0.8008281904610115 @@ -1118,8 +1520,6 @@ components: type: string key: $ref: '#/components/schemas/KeyValue' - iD: - $ref: '#/components/schemas/KeyValue' name: type: string testAccount: @@ -1178,8 +1578,6 @@ components: owner: testAccount: true name: name - iD: - value: 0.8008281904610115 userName: userName key: value: 0.8008281904610115 @@ -1194,6 +1592,56 @@ components: iD: type: string type: object + VariableDomain: + enum: + - VARIABLEDOMAIN_POSTPROCESSING + - VARIABLEDOMAIN_UNKNOWN + - VARIABLEDOMAIN_VOLUME + - VARIABLEDOMAIN_MEMBRANE + - VARIABLEDOMAIN_CONTOUR + - VARIABLEDOMAIN_NONSPATIAL + - VARIABLEDOMAIN_POINT + type: string + VariableType: + example: + defaultUnits: defaultUnits + name: name + typeName: typeName + defaultLabel: defaultLabel + units: units + label: label + type: 0 + variableDomain: null + legacyWarn: true + properties: + type: + format: int32 + type: integer + variableDomain: + $ref: '#/components/schemas/VariableDomain' + name: + type: string + units: + type: string + label: + type: string + legacyWarn: + type: boolean + defaultLabel: + type: string + defaultUnits: + type: string + typeName: + type: string + type: object + analyzeFieldDataFile_request: + properties: + file: + format: binary + type: string + fileName: + type: string + type: object securitySchemes: openId: description: Authentication diff --git a/vcell-restclient/docs/AccessTokenRepresentation.md b/vcell-restclient/docs/AccessTokenRepresentation.md deleted file mode 100644 index 03002821c1..0000000000 --- a/vcell-restclient/docs/AccessTokenRepresentation.md +++ /dev/null @@ -1,17 +0,0 @@ - - -# AccessTokenRepresentation - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**token** | **String** | | [optional] | -|**creationDateSeconds** | **Long** | | [optional] | -|**expireDateSeconds** | **Long** | | [optional] | -|**userId** | **String** | | [optional] | -|**userKey** | **String** | | [optional] | - - - diff --git a/vcell-restclient/docs/AnalyzedResultsFromFieldData.md b/vcell-restclient/docs/AnalyzedResultsFromFieldData.md new file mode 100644 index 0000000000..fbc0edc743 --- /dev/null +++ b/vcell-restclient/docs/AnalyzedResultsFromFieldData.md @@ -0,0 +1,20 @@ + + +# AnalyzedResultsFromFieldData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**shortSpecData** | **List<List<List<Integer>>>** | | [optional] | +|**varNames** | **List<String>** | | [optional] | +|**times** | **List<Double>** | | [optional] | +|**origin** | [**Origin**](Origin.md) | | [optional] | +|**extent** | [**Extent**](Extent.md) | | [optional] | +|**isize** | [**ISize**](ISize.md) | | [optional] | +|**annotation** | **String** | | [optional] | +|**name** | **String** | | [optional] | + + + diff --git a/vcell-restclient/docs/BioModelResourceApi.md b/vcell-restclient/docs/BioModelResourceApi.md index 6f6bd87532..b2569706e5 100644 --- a/vcell-restclient/docs/BioModelResourceApi.md +++ b/vcell-restclient/docs/BioModelResourceApi.md @@ -202,7 +202,8 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | OK | - | +| **200** | return BioModel information in JSON format | - | +| **404** | BioModel not found | - | ## getBiomodelByIdWithHttpInfo @@ -268,7 +269,8 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | OK | - | +| **200** | return BioModel information in JSON format | - | +| **404** | BioModel not found | - | ## uploadBioModel diff --git a/vcell-restclient/docs/DataIdentifier.md b/vcell-restclient/docs/DataIdentifier.md new file mode 100644 index 0000000000..05492fc09f --- /dev/null +++ b/vcell-restclient/docs/DataIdentifier.md @@ -0,0 +1,19 @@ + + +# DataIdentifier + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | | [optional] | +|**displayName** | **String** | | [optional] | +|**variableType** | [**VariableType**](VariableType.md) | | [optional] | +|**domain** | [**Domain**](Domain.md) | | [optional] | +|**bFunction** | **Boolean** | | [optional] | +|**function** | **Boolean** | | [optional] | +|**visible** | **Boolean** | | [optional] | + + + diff --git a/vcell-restclient/docs/Simulation.md b/vcell-restclient/docs/Domain.md similarity index 92% rename from vcell-restclient/docs/Simulation.md rename to vcell-restclient/docs/Domain.md index e21fb4014b..6c23698b2f 100644 --- a/vcell-restclient/docs/Simulation.md +++ b/vcell-restclient/docs/Domain.md @@ -1,6 +1,6 @@ -# Simulation +# Domain ## Properties diff --git a/vcell-restclient/docs/Extent.md b/vcell-restclient/docs/Extent.md new file mode 100644 index 0000000000..1f6d47850e --- /dev/null +++ b/vcell-restclient/docs/Extent.md @@ -0,0 +1,15 @@ + + +# Extent + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**x** | **Double** | | [optional] | +|**y** | **Double** | | [optional] | +|**z** | **Double** | | [optional] | + + + diff --git a/vcell-restclient/docs/ExternalDataIdentifier.md b/vcell-restclient/docs/ExternalDataIdentifier.md new file mode 100644 index 0000000000..8b5ec63a51 --- /dev/null +++ b/vcell-restclient/docs/ExternalDataIdentifier.md @@ -0,0 +1,19 @@ + + +# ExternalDataIdentifier + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**key** | [**KeyValue**](KeyValue.md) | | [optional] | +|**owner** | [**User**](User.md) | | [optional] | +|**name** | **String** | | [optional] | +|**jobIndex** | **Integer** | | [optional] | +|**simulationKey** | [**KeyValue**](KeyValue.md) | | [optional] | +|**parameterScanType** | **Boolean** | | [optional] | +|**dataKey** | [**KeyValue**](KeyValue.md) | | [optional] | + + + diff --git a/vcell-restclient/docs/FieldDataReference.md b/vcell-restclient/docs/FieldDataReference.md new file mode 100644 index 0000000000..a7a3662c95 --- /dev/null +++ b/vcell-restclient/docs/FieldDataReference.md @@ -0,0 +1,15 @@ + + +# FieldDataReference + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**externalDataIdentifier** | [**ExternalDataIdentifier**](ExternalDataIdentifier.md) | | [optional] | +|**externalDataAnnotation** | **String** | | [optional] | +|**externalDataIDSimRefs** | [**List<KeyValue>**](KeyValue.md) | | [optional] | + + + diff --git a/vcell-restclient/docs/FieldDataResourceApi.md b/vcell-restclient/docs/FieldDataResourceApi.md new file mode 100644 index 0000000000..aa5dea000a --- /dev/null +++ b/vcell-restclient/docs/FieldDataResourceApi.md @@ -0,0 +1,662 @@ +# FieldDataResourceApi + +All URIs are relative to *https://vcell-dev.cam.uchc.edu* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**analyzeFieldDataFile**](FieldDataResourceApi.md#analyzeFieldDataFile) | **POST** /api/v1/fieldData/analyzeFieldDataFile | Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. | +| [**analyzeFieldDataFileWithHttpInfo**](FieldDataResourceApi.md#analyzeFieldDataFileWithHttpInfo) | **POST** /api/v1/fieldData/analyzeFieldDataFile | Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. | +| [**createFieldDataFromAnalyzedFile**](FieldDataResourceApi.md#createFieldDataFromAnalyzedFile) | **POST** /api/v1/fieldData/createFieldDataFromAnalyzedFile | Take the analyzed results of the field data, modify it to your liking, then save it on the server. | +| [**createFieldDataFromAnalyzedFileWithHttpInfo**](FieldDataResourceApi.md#createFieldDataFromAnalyzedFileWithHttpInfo) | **POST** /api/v1/fieldData/createFieldDataFromAnalyzedFile | Take the analyzed results of the field data, modify it to your liking, then save it on the server. | +| [**deleteFieldData**](FieldDataResourceApi.md#deleteFieldData) | **DELETE** /api/v1/fieldData/delete/{fieldDataID} | Delete the selected field data. | +| [**deleteFieldDataWithHttpInfo**](FieldDataResourceApi.md#deleteFieldDataWithHttpInfo) | **DELETE** /api/v1/fieldData/delete/{fieldDataID} | Delete the selected field data. | +| [**getAllFieldDataIDs**](FieldDataResourceApi.md#getAllFieldDataIDs) | **GET** /api/v1/fieldData/IDs | Get all of the ids used to identify, and retrieve field data. | +| [**getAllFieldDataIDsWithHttpInfo**](FieldDataResourceApi.md#getAllFieldDataIDsWithHttpInfo) | **GET** /api/v1/fieldData/IDs | Get all of the ids used to identify, and retrieve field data. | +| [**getFieldDataShapeFromID**](FieldDataResourceApi.md#getFieldDataShapeFromID) | **GET** /api/v1/fieldData/fieldDataShape/{fieldDataID} | Get the shape of the field data. That is it's size, origin, extent, and data identifiers. | +| [**getFieldDataShapeFromIDWithHttpInfo**](FieldDataResourceApi.md#getFieldDataShapeFromIDWithHttpInfo) | **GET** /api/v1/fieldData/fieldDataShape/{fieldDataID} | Get the shape of the field data. That is it's size, origin, extent, and data identifiers. | + + + +## analyzeFieldDataFile + +> AnalyzedResultsFromFieldData analyzeFieldDataFile(_file, fileName) + +Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. + +### Example + +```java +// Import classes: +import org.vcell.restclient.ApiClient; +import org.vcell.restclient.ApiException; +import org.vcell.restclient.Configuration; +import org.vcell.restclient.models.*; +import org.vcell.restclient.api.FieldDataResourceApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://vcell-dev.cam.uchc.edu"); + + FieldDataResourceApi apiInstance = new FieldDataResourceApi(defaultClient); + File _file = new File("/path/to/file"); // File | + String fileName = "fileName_example"; // String | + try { + AnalyzedResultsFromFieldData result = apiInstance.analyzeFieldDataFile(_file, fileName); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling FieldDataResourceApi#analyzeFieldDataFile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **_file** | **File**| | [optional] | +| **fileName** | **String**| | [optional] | + +### Return type + +[**AnalyzedResultsFromFieldData**](AnalyzedResultsFromFieldData.md) + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: multipart/form-data +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | OK | - | + +## analyzeFieldDataFileWithHttpInfo + +> ApiResponse analyzeFieldDataFile analyzeFieldDataFileWithHttpInfo(_file, fileName) + +Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. + +### Example + +```java +// Import classes: +import org.vcell.restclient.ApiClient; +import org.vcell.restclient.ApiException; +import org.vcell.restclient.ApiResponse; +import org.vcell.restclient.Configuration; +import org.vcell.restclient.models.*; +import org.vcell.restclient.api.FieldDataResourceApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://vcell-dev.cam.uchc.edu"); + + FieldDataResourceApi apiInstance = new FieldDataResourceApi(defaultClient); + File _file = new File("/path/to/file"); // File | + String fileName = "fileName_example"; // String | + try { + ApiResponse response = apiInstance.analyzeFieldDataFileWithHttpInfo(_file, fileName); + System.out.println("Status code: " + response.getStatusCode()); + System.out.println("Response headers: " + response.getHeaders()); + System.out.println("Response body: " + response.getData()); + } catch (ApiException e) { + System.err.println("Exception when calling FieldDataResourceApi#analyzeFieldDataFile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **_file** | **File**| | [optional] | +| **fileName** | **String**| | [optional] | + +### Return type + +ApiResponse<[**AnalyzedResultsFromFieldData**](AnalyzedResultsFromFieldData.md)> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: multipart/form-data +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | OK | - | + + +## createFieldDataFromAnalyzedFile + +> FieldDataSaveResults createFieldDataFromAnalyzedFile(analyzedResultsFromFieldData) + +Take the analyzed results of the field data, modify it to your liking, then save it on the server. + +### Example + +```java +// Import classes: +import org.vcell.restclient.ApiClient; +import org.vcell.restclient.ApiException; +import org.vcell.restclient.Configuration; +import org.vcell.restclient.models.*; +import org.vcell.restclient.api.FieldDataResourceApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://vcell-dev.cam.uchc.edu"); + + FieldDataResourceApi apiInstance = new FieldDataResourceApi(defaultClient); + AnalyzedResultsFromFieldData analyzedResultsFromFieldData = new AnalyzedResultsFromFieldData(); // AnalyzedResultsFromFieldData | + try { + FieldDataSaveResults result = apiInstance.createFieldDataFromAnalyzedFile(analyzedResultsFromFieldData); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling FieldDataResourceApi#createFieldDataFromAnalyzedFile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **analyzedResultsFromFieldData** | [**AnalyzedResultsFromFieldData**](AnalyzedResultsFromFieldData.md)| | [optional] | + +### Return type + +[**FieldDataSaveResults**](FieldDataSaveResults.md) + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | OK | - | + +## createFieldDataFromAnalyzedFileWithHttpInfo + +> ApiResponse createFieldDataFromAnalyzedFile createFieldDataFromAnalyzedFileWithHttpInfo(analyzedResultsFromFieldData) + +Take the analyzed results of the field data, modify it to your liking, then save it on the server. + +### Example + +```java +// Import classes: +import org.vcell.restclient.ApiClient; +import org.vcell.restclient.ApiException; +import org.vcell.restclient.ApiResponse; +import org.vcell.restclient.Configuration; +import org.vcell.restclient.models.*; +import org.vcell.restclient.api.FieldDataResourceApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://vcell-dev.cam.uchc.edu"); + + FieldDataResourceApi apiInstance = new FieldDataResourceApi(defaultClient); + AnalyzedResultsFromFieldData analyzedResultsFromFieldData = new AnalyzedResultsFromFieldData(); // AnalyzedResultsFromFieldData | + try { + ApiResponse response = apiInstance.createFieldDataFromAnalyzedFileWithHttpInfo(analyzedResultsFromFieldData); + System.out.println("Status code: " + response.getStatusCode()); + System.out.println("Response headers: " + response.getHeaders()); + System.out.println("Response body: " + response.getData()); + } catch (ApiException e) { + System.err.println("Exception when calling FieldDataResourceApi#createFieldDataFromAnalyzedFile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **analyzedResultsFromFieldData** | [**AnalyzedResultsFromFieldData**](AnalyzedResultsFromFieldData.md)| | [optional] | + +### Return type + +ApiResponse<[**FieldDataSaveResults**](FieldDataSaveResults.md)> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | OK | - | + + +## deleteFieldData + +> void deleteFieldData(fieldDataID) + +Delete the selected field data. + +### Example + +```java +// Import classes: +import org.vcell.restclient.ApiClient; +import org.vcell.restclient.ApiException; +import org.vcell.restclient.Configuration; +import org.vcell.restclient.models.*; +import org.vcell.restclient.api.FieldDataResourceApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://vcell-dev.cam.uchc.edu"); + + FieldDataResourceApi apiInstance = new FieldDataResourceApi(defaultClient); + String fieldDataID = "fieldDataID_example"; // String | + try { + apiInstance.deleteFieldData(fieldDataID); + } catch (ApiException e) { + System.err.println("Exception when calling FieldDataResourceApi#deleteFieldData"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **fieldDataID** | **String**| | | + +### Return type + + +null (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | No Content | - | + +## deleteFieldDataWithHttpInfo + +> ApiResponse deleteFieldData deleteFieldDataWithHttpInfo(fieldDataID) + +Delete the selected field data. + +### Example + +```java +// Import classes: +import org.vcell.restclient.ApiClient; +import org.vcell.restclient.ApiException; +import org.vcell.restclient.ApiResponse; +import org.vcell.restclient.Configuration; +import org.vcell.restclient.models.*; +import org.vcell.restclient.api.FieldDataResourceApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://vcell-dev.cam.uchc.edu"); + + FieldDataResourceApi apiInstance = new FieldDataResourceApi(defaultClient); + String fieldDataID = "fieldDataID_example"; // String | + try { + ApiResponse response = apiInstance.deleteFieldDataWithHttpInfo(fieldDataID); + System.out.println("Status code: " + response.getStatusCode()); + System.out.println("Response headers: " + response.getHeaders()); + } catch (ApiException e) { + System.err.println("Exception when calling FieldDataResourceApi#deleteFieldData"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **fieldDataID** | **String**| | | + +### Return type + + +ApiResponse + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | No Content | - | + + +## getAllFieldDataIDs + +> List getAllFieldDataIDs() + +Get all of the ids used to identify, and retrieve field data. + +### Example + +```java +// Import classes: +import org.vcell.restclient.ApiClient; +import org.vcell.restclient.ApiException; +import org.vcell.restclient.Configuration; +import org.vcell.restclient.models.*; +import org.vcell.restclient.api.FieldDataResourceApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://vcell-dev.cam.uchc.edu"); + + FieldDataResourceApi apiInstance = new FieldDataResourceApi(defaultClient); + try { + List result = apiInstance.getAllFieldDataIDs(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling FieldDataResourceApi#getAllFieldDataIDs"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**List<FieldDataReference>**](FieldDataReference.md) + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | OK | - | + +## getAllFieldDataIDsWithHttpInfo + +> ApiResponse> getAllFieldDataIDs getAllFieldDataIDsWithHttpInfo() + +Get all of the ids used to identify, and retrieve field data. + +### Example + +```java +// Import classes: +import org.vcell.restclient.ApiClient; +import org.vcell.restclient.ApiException; +import org.vcell.restclient.ApiResponse; +import org.vcell.restclient.Configuration; +import org.vcell.restclient.models.*; +import org.vcell.restclient.api.FieldDataResourceApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://vcell-dev.cam.uchc.edu"); + + FieldDataResourceApi apiInstance = new FieldDataResourceApi(defaultClient); + try { + ApiResponse> response = apiInstance.getAllFieldDataIDsWithHttpInfo(); + System.out.println("Status code: " + response.getStatusCode()); + System.out.println("Response headers: " + response.getHeaders()); + System.out.println("Response body: " + response.getData()); + } catch (ApiException e) { + System.err.println("Exception when calling FieldDataResourceApi#getAllFieldDataIDs"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +ApiResponse<[**List<FieldDataReference>**](FieldDataReference.md)> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | OK | - | + + +## getFieldDataShapeFromID + +> FieldDataShape getFieldDataShapeFromID(fieldDataID) + +Get the shape of the field data. That is it's size, origin, extent, and data identifiers. + +### Example + +```java +// Import classes: +import org.vcell.restclient.ApiClient; +import org.vcell.restclient.ApiException; +import org.vcell.restclient.Configuration; +import org.vcell.restclient.models.*; +import org.vcell.restclient.api.FieldDataResourceApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://vcell-dev.cam.uchc.edu"); + + FieldDataResourceApi apiInstance = new FieldDataResourceApi(defaultClient); + String fieldDataID = "fieldDataID_example"; // String | + try { + FieldDataShape result = apiInstance.getFieldDataShapeFromID(fieldDataID); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling FieldDataResourceApi#getFieldDataShapeFromID"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **fieldDataID** | **String**| | | + +### Return type + +[**FieldDataShape**](FieldDataShape.md) + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | OK | - | + +## getFieldDataShapeFromIDWithHttpInfo + +> ApiResponse getFieldDataShapeFromID getFieldDataShapeFromIDWithHttpInfo(fieldDataID) + +Get the shape of the field data. That is it's size, origin, extent, and data identifiers. + +### Example + +```java +// Import classes: +import org.vcell.restclient.ApiClient; +import org.vcell.restclient.ApiException; +import org.vcell.restclient.ApiResponse; +import org.vcell.restclient.Configuration; +import org.vcell.restclient.models.*; +import org.vcell.restclient.api.FieldDataResourceApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://vcell-dev.cam.uchc.edu"); + + FieldDataResourceApi apiInstance = new FieldDataResourceApi(defaultClient); + String fieldDataID = "fieldDataID_example"; // String | + try { + ApiResponse response = apiInstance.getFieldDataShapeFromIDWithHttpInfo(fieldDataID); + System.out.println("Status code: " + response.getStatusCode()); + System.out.println("Response headers: " + response.getHeaders()); + System.out.println("Response body: " + response.getData()); + } catch (ApiException e) { + System.err.println("Exception when calling FieldDataResourceApi#getFieldDataShapeFromID"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **fieldDataID** | **String**| | | + +### Return type + +ApiResponse<[**FieldDataShape**](FieldDataShape.md)> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | OK | - | + diff --git a/vcell-restclient/docs/MapUser.md b/vcell-restclient/docs/FieldDataSaveResults.md similarity index 50% rename from vcell-restclient/docs/MapUser.md rename to vcell-restclient/docs/FieldDataSaveResults.md index cd10a8ec2e..6c8e913cbc 100644 --- a/vcell-restclient/docs/MapUser.md +++ b/vcell-restclient/docs/FieldDataSaveResults.md @@ -1,14 +1,14 @@ -# MapUser +# FieldDataSaveResults ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**userID** | **String** | | [optional] | -|**password** | **String** | | [optional] | +|**fieldDataName** | **String** | | [optional] | +|**fieldDataID** | **String** | | [optional] | diff --git a/vcell-restclient/docs/FieldDataShape.md b/vcell-restclient/docs/FieldDataShape.md new file mode 100644 index 0000000000..84902d0ac1 --- /dev/null +++ b/vcell-restclient/docs/FieldDataShape.md @@ -0,0 +1,17 @@ + + +# FieldDataShape + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**extent** | [**Extent**](Extent.md) | | [optional] | +|**origin** | [**Origin**](Origin.md) | | [optional] | +|**isize** | [**ISize**](ISize.md) | | [optional] | +|**dataIdentifier** | [**List<DataIdentifier>**](DataIdentifier.md) | | [optional] | +|**times** | **List<Double>** | | [optional] | + + + diff --git a/vcell-restclient/docs/ISize.md b/vcell-restclient/docs/ISize.md new file mode 100644 index 0000000000..66a2ce5658 --- /dev/null +++ b/vcell-restclient/docs/ISize.md @@ -0,0 +1,15 @@ + + +# ISize + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**x** | **Integer** | | [optional] | +|**y** | **Integer** | | [optional] | +|**z** | **Integer** | | [optional] | + + + diff --git a/vcell-restclient/docs/IdentityProvider.md b/vcell-restclient/docs/IdentityProvider.md deleted file mode 100644 index c54f3ef2eb..0000000000 --- a/vcell-restclient/docs/IdentityProvider.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# IdentityProvider - -## Enum - - -* `AUTH0` (value: `"AUTH0"`) - -* `KEYCLOAK` (value: `"KEYCLOAK"`) - - - diff --git a/vcell-restclient/docs/Origin.md b/vcell-restclient/docs/Origin.md new file mode 100644 index 0000000000..50deecd79e --- /dev/null +++ b/vcell-restclient/docs/Origin.md @@ -0,0 +1,15 @@ + + +# Origin + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**x** | **Double** | | [optional] | +|**y** | **Double** | | [optional] | +|**z** | **Double** | | [optional] | + + + diff --git a/vcell-restclient/docs/OverrideRepresentation.md b/vcell-restclient/docs/OverrideRepresentation.md deleted file mode 100644 index cc6c9d934e..0000000000 --- a/vcell-restclient/docs/OverrideRepresentation.md +++ /dev/null @@ -1,17 +0,0 @@ - - -# OverrideRepresentation - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**name** | **String** | | [optional] | -|**type** | **String** | | [optional] | -|**expression** | **String** | | [optional] | -|**values** | **List<String>** | | [optional] | -|**cardinality** | **Integer** | | [optional] | - - - diff --git a/vcell-restclient/docs/SimulationExecutionStatus.md b/vcell-restclient/docs/SimulationExecutionStatus.md deleted file mode 100644 index e899206a68..0000000000 --- a/vcell-restclient/docs/SimulationExecutionStatus.md +++ /dev/null @@ -1,23 +0,0 @@ - - -# SimulationExecutionStatus - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**fieldStartDate** | **LocalDate** | | [optional] | -|**fieldLatestUpdateDate** | **LocalDate** | | [optional] | -|**fieldEndDate** | **LocalDate** | | [optional] | -|**fieldComputeHost** | **String** | | [optional] | -|**fieldHasData** | **Boolean** | | [optional] | -|**fieldHtcJobID** | [**HtcJobID**](HtcJobID.md) | | [optional] | -|**computeHost** | **String** | | [optional] | -|**endDate** | **LocalDate** | | [optional] | -|**latestUpdateDate** | **LocalDate** | | [optional] | -|**startDate** | **LocalDate** | | [optional] | -|**htcJobID** | [**HtcJobID**](HtcJobID.md) | | [optional] | - - - diff --git a/vcell-restclient/docs/SimulationJobStatus.md b/vcell-restclient/docs/SimulationJobStatus.md deleted file mode 100644 index dfbe7bb00e..0000000000 --- a/vcell-restclient/docs/SimulationJobStatus.md +++ /dev/null @@ -1,35 +0,0 @@ - - -# SimulationJobStatus - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**fieldTimeDateStamp** | **LocalDate** | | [optional] | -|**fieldVCSimID** | [**VCSimulationIdentifier**](VCSimulationIdentifier.md) | | [optional] | -|**fieldSubmitDate** | **LocalDate** | | [optional] | -|**fieldSchedulerStatus** | **SchedulerStatus** | | [optional] | -|**fieldTaskID** | **Integer** | | [optional] | -|**fieldSimulationMessage** | [**SimulationMessage**](SimulationMessage.md) | | [optional] | -|**fieldServerID** | [**VCellServerID**](VCellServerID.md) | | [optional] | -|**fieldJobIndex** | **Integer** | | [optional] | -|**fieldSimulationQueueEntryStatus** | [**SimulationQueueEntryStatus**](SimulationQueueEntryStatus.md) | | [optional] | -|**fieldSimulationExecutionStatus** | [**SimulationExecutionStatus**](SimulationExecutionStatus.md) | | [optional] | -|**computeHost** | **String** | | [optional] | -|**endDate** | **LocalDate** | | [optional] | -|**jobIndex** | **Integer** | | [optional] | -|**schedulerStatus** | **SchedulerStatus** | | [optional] | -|**serverID** | [**VCellServerID**](VCellServerID.md) | | [optional] | -|**simulationExecutionStatus** | [**SimulationExecutionStatus**](SimulationExecutionStatus.md) | | [optional] | -|**simulationQueueEntryStatus** | [**SimulationQueueEntryStatus**](SimulationQueueEntryStatus.md) | | [optional] | -|**startDate** | **LocalDate** | | [optional] | -|**simulationMessage** | [**SimulationMessage**](SimulationMessage.md) | | [optional] | -|**submitDate** | **LocalDate** | | [optional] | -|**taskID** | **Integer** | | [optional] | -|**timeDateStamp** | **LocalDate** | | [optional] | -|**vCSimulationIdentifier** | [**VCSimulationIdentifier**](VCSimulationIdentifier.md) | | [optional] | - - - diff --git a/vcell-restclient/docs/SimulationQueueEntryStatus.md b/vcell-restclient/docs/SimulationQueueEntryStatus.md deleted file mode 100644 index 80d9d48202..0000000000 --- a/vcell-restclient/docs/SimulationQueueEntryStatus.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# SimulationQueueEntryStatus - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**fieldQueuePriority** | **Integer** | | [optional] | -|**fieldQueueDate** | **LocalDate** | | [optional] | -|**fieldQueueID** | **SimulationQueueID** | | [optional] | -|**queueDate** | **LocalDate** | | [optional] | -|**queueID** | **SimulationQueueID** | | [optional] | -|**queuePriority** | **Integer** | | [optional] | - - - diff --git a/vcell-restclient/docs/User.md b/vcell-restclient/docs/User.md index 61753d53d1..d8e81ee20d 100644 --- a/vcell-restclient/docs/User.md +++ b/vcell-restclient/docs/User.md @@ -9,7 +9,6 @@ |------------ | ------------- | ------------- | -------------| |**userName** | **String** | | [optional] | |**key** | [**KeyValue**](KeyValue.md) | | [optional] | -|**iD** | [**KeyValue**](KeyValue.md) | | [optional] | |**name** | **String** | | [optional] | |**testAccount** | **Boolean** | | [optional] | diff --git a/vcell-restclient/docs/User1.md b/vcell-restclient/docs/User1.md deleted file mode 100644 index 575e576d73..0000000000 --- a/vcell-restclient/docs/User1.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# User1 - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**userName** | **String** | | [optional] | -|**key** | [**KeyValue**](KeyValue.md) | | [optional] | -|**iD** | [**KeyValue**](KeyValue.md) | | [optional] | -|**name** | **String** | | [optional] | -|**publisher** | **Boolean** | | [optional] | -|**testAccount** | **Boolean** | | [optional] | - - - diff --git a/vcell-restclient/docs/UserIdentity.md b/vcell-restclient/docs/UserIdentity.md deleted file mode 100644 index 615df73fe4..0000000000 --- a/vcell-restclient/docs/UserIdentity.md +++ /dev/null @@ -1,16 +0,0 @@ - - -# UserIdentity - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**id** | **BigDecimal** | | [optional] | -|**userName** | **String** | | [optional] | -|**subject** | **String** | | [optional] | -|**insertDate** | **OffsetDateTime** | | [optional] | - - - diff --git a/vcell-restclient/docs/UsersResourceApi.md b/vcell-restclient/docs/UsersResourceApi.md index c367edb77c..831c4b98c6 100644 --- a/vcell-restclient/docs/UsersResourceApi.md +++ b/vcell-restclient/docs/UsersResourceApi.md @@ -1141,8 +1141,8 @@ null (empty response body) |-------------|-------------|------------------| | **200** | magic link sent in email if appropriate | - | | **400** | unable to process request | - | -| **403** | Not Allowed | - | | **401** | Not Authorized | - | +| **403** | Not Allowed | - | ## requestRecoveryEmailWithHttpInfo @@ -1213,8 +1213,8 @@ ApiResponse |-------------|-------------|------------------| | **200** | magic link sent in email if appropriate | - | | **400** | unable to process request | - | -| **403** | Not Allowed | - | | **401** | Not Authorized | - | +| **403** | Not Allowed | - | ## unmapUser diff --git a/vcell-restclient/docs/VCellServerID.md b/vcell-restclient/docs/VCellServerID.md deleted file mode 100644 index 1c42061235..0000000000 --- a/vcell-restclient/docs/VCellServerID.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# VCellServerID - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**serverID** | **String** | | [optional] | - - - diff --git a/vcell-restclient/docs/VariableDomain.md b/vcell-restclient/docs/VariableDomain.md new file mode 100644 index 0000000000..666fdbff3b --- /dev/null +++ b/vcell-restclient/docs/VariableDomain.md @@ -0,0 +1,23 @@ + + +# VariableDomain + +## Enum + + +* `POSTPROCESSING` (value: `"VARIABLEDOMAIN_POSTPROCESSING"`) + +* `UNKNOWN` (value: `"VARIABLEDOMAIN_UNKNOWN"`) + +* `VOLUME` (value: `"VARIABLEDOMAIN_VOLUME"`) + +* `MEMBRANE` (value: `"VARIABLEDOMAIN_MEMBRANE"`) + +* `CONTOUR` (value: `"VARIABLEDOMAIN_CONTOUR"`) + +* `NONSPATIAL` (value: `"VARIABLEDOMAIN_NONSPATIAL"`) + +* `POINT` (value: `"VARIABLEDOMAIN_POINT"`) + + + diff --git a/vcell-restclient/docs/VariableType.md b/vcell-restclient/docs/VariableType.md new file mode 100644 index 0000000000..78239053ff --- /dev/null +++ b/vcell-restclient/docs/VariableType.md @@ -0,0 +1,21 @@ + + +# VariableType + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **Integer** | | [optional] | +|**variableDomain** | **VariableDomain** | | [optional] | +|**name** | **String** | | [optional] | +|**units** | **String** | | [optional] | +|**label** | **String** | | [optional] | +|**legacyWarn** | **Boolean** | | [optional] | +|**defaultLabel** | **String** | | [optional] | +|**defaultUnits** | **String** | | [optional] | +|**typeName** | **String** | | [optional] | + + + diff --git a/vcell-restclient/pom.xml b/vcell-restclient/pom.xml index 68cf6df3f1..dcb76e83e0 100644 --- a/vcell-restclient/pom.xml +++ b/vcell-restclient/pom.xml @@ -266,6 +266,14 @@ ${httpclient.version} compile + + + org.apache.httpcomponents + httpmime + ${httpclient.version} + compile + + diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/api/FieldDataResourceApi.java b/vcell-restclient/src/main/java/org/vcell/restclient/api/FieldDataResourceApi.java new file mode 100644 index 0000000000..5ac323fc3b --- /dev/null +++ b/vcell-restclient/src/main/java/org/vcell/restclient/api/FieldDataResourceApi.java @@ -0,0 +1,482 @@ +/* + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package org.vcell.restclient.api; + +import org.vcell.restclient.ApiClient; +import org.vcell.restclient.ApiException; +import org.vcell.restclient.ApiResponse; +import org.vcell.restclient.Pair; + +import org.vcell.restclient.model.AnalyzedResultsFromFieldData; +import org.vcell.restclient.model.FieldDataReference; +import org.vcell.restclient.model.FieldDataSaveResults; +import org.vcell.restclient.model.FieldDataShape; +import java.io.File; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.http.HttpEntity; +import org.apache.http.NameValuePair; +import org.apache.http.entity.mime.MultipartEntityBuilder; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.client.entity.UrlEncodedFormEntity; + +import java.io.InputStream; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.OutputStream; +import java.net.http.HttpRequest; +import java.nio.channels.Channels; +import java.nio.channels.Pipe; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.time.Duration; + +import java.util.ArrayList; +import java.util.StringJoiner; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Consumer; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class FieldDataResourceApi { + private final HttpClient memberVarHttpClient; + private final ObjectMapper memberVarObjectMapper; + private final String memberVarBaseUri; + private final Consumer memberVarInterceptor; + private final Duration memberVarReadTimeout; + private final Consumer> memberVarResponseInterceptor; + private final Consumer> memberVarAsyncResponseInterceptor; + + public FieldDataResourceApi() { + this(new ApiClient()); + } + + public FieldDataResourceApi(ApiClient apiClient) { + memberVarHttpClient = apiClient.getHttpClient(); + memberVarObjectMapper = apiClient.getObjectMapper(); + memberVarBaseUri = apiClient.getBaseUri(); + memberVarInterceptor = apiClient.getRequestInterceptor(); + memberVarReadTimeout = apiClient.getReadTimeout(); + memberVarResponseInterceptor = apiClient.getResponseInterceptor(); + memberVarAsyncResponseInterceptor = apiClient.getAsyncResponseInterceptor(); + } + + protected ApiException getApiException(String operationId, HttpResponse response) throws IOException { + String body = response.body() == null ? null : new String(response.body().readAllBytes()); + String message = formatExceptionMessage(operationId, response.statusCode(), body); + return new ApiException(response.statusCode(), message, response.headers(), body); + } + + private String formatExceptionMessage(String operationId, int statusCode, String body) { + if (body == null || body.isEmpty()) { + body = "[no body]"; + } + return operationId + " call failed with: " + statusCode + " - " + body; + } + + /** + * Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. + * + * @param _file (optional) + * @param fileName (optional) + * @return AnalyzedResultsFromFieldData + * @throws ApiException if fails to make API call + */ + public AnalyzedResultsFromFieldData analyzeFieldDataFile(File _file, String fileName) throws ApiException { + ApiResponse localVarResponse = analyzeFieldDataFileWithHttpInfo(_file, fileName); + return localVarResponse.getData(); + } + + /** + * Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. + * + * @param _file (optional) + * @param fileName (optional) + * @return ApiResponse<AnalyzedResultsFromFieldData> + * @throws ApiException if fails to make API call + */ + public ApiResponse analyzeFieldDataFileWithHttpInfo(File _file, String fileName) throws ApiException { + HttpRequest.Builder localVarRequestBuilder = analyzeFieldDataFileRequestBuilder(_file, fileName); + try { + HttpResponse localVarResponse = memberVarHttpClient.send( + localVarRequestBuilder.build(), + HttpResponse.BodyHandlers.ofInputStream()); + if (memberVarResponseInterceptor != null) { + memberVarResponseInterceptor.accept(localVarResponse); + } + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("analyzeFieldDataFile", localVarResponse); + } + return new ApiResponse( + localVarResponse.statusCode(), + localVarResponse.headers().map(), + localVarResponse.body() == null ? null : memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) // closes the InputStream + ); + } finally { + } + } catch (IOException e) { + throw new ApiException(e); + } + catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new ApiException(e); + } + } + + private HttpRequest.Builder analyzeFieldDataFileRequestBuilder(File _file, String fileName) throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/api/v1/fieldData/analyzeFieldDataFile"; + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + localVarRequestBuilder.header("Accept", "application/json"); + + MultipartEntityBuilder multiPartBuilder = MultipartEntityBuilder.create(); + boolean hasFiles = false; + multiPartBuilder.addBinaryBody("file", _file); + hasFiles = true; + multiPartBuilder.addTextBody("fileName", fileName.toString()); + HttpEntity entity = multiPartBuilder.build(); + HttpRequest.BodyPublisher formDataPublisher; + if (hasFiles) { + Pipe pipe; + try { + pipe = Pipe.open(); + } catch (IOException e) { + throw new RuntimeException(e); + } + new Thread(() -> { + try (OutputStream outputStream = Channels.newOutputStream(pipe.sink())) { + entity.writeTo(outputStream); + } catch (IOException e) { + e.printStackTrace(); + } + }).start(); + formDataPublisher = HttpRequest.BodyPublishers.ofInputStream(() -> Channels.newInputStream(pipe.source())); + } else { + ByteArrayOutputStream formOutputStream = new ByteArrayOutputStream(); + try { + entity.writeTo(formOutputStream); + } catch (IOException e) { + throw new RuntimeException(e); + } + formDataPublisher = HttpRequest.BodyPublishers + .ofInputStream(() -> new ByteArrayInputStream(formOutputStream.toByteArray())); + } + localVarRequestBuilder + .header("Content-Type", entity.getContentType().getValue()) + .method("POST", formDataPublisher); + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } + /** + * Take the analyzed results of the field data, modify it to your liking, then save it on the server. + * + * @param analyzedResultsFromFieldData (optional) + * @return FieldDataSaveResults + * @throws ApiException if fails to make API call + */ + public FieldDataSaveResults createFieldDataFromAnalyzedFile(AnalyzedResultsFromFieldData analyzedResultsFromFieldData) throws ApiException { + ApiResponse localVarResponse = createFieldDataFromAnalyzedFileWithHttpInfo(analyzedResultsFromFieldData); + return localVarResponse.getData(); + } + + /** + * Take the analyzed results of the field data, modify it to your liking, then save it on the server. + * + * @param analyzedResultsFromFieldData (optional) + * @return ApiResponse<FieldDataSaveResults> + * @throws ApiException if fails to make API call + */ + public ApiResponse createFieldDataFromAnalyzedFileWithHttpInfo(AnalyzedResultsFromFieldData analyzedResultsFromFieldData) throws ApiException { + HttpRequest.Builder localVarRequestBuilder = createFieldDataFromAnalyzedFileRequestBuilder(analyzedResultsFromFieldData); + try { + HttpResponse localVarResponse = memberVarHttpClient.send( + localVarRequestBuilder.build(), + HttpResponse.BodyHandlers.ofInputStream()); + if (memberVarResponseInterceptor != null) { + memberVarResponseInterceptor.accept(localVarResponse); + } + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("createFieldDataFromAnalyzedFile", localVarResponse); + } + return new ApiResponse( + localVarResponse.statusCode(), + localVarResponse.headers().map(), + localVarResponse.body() == null ? null : memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) // closes the InputStream + ); + } finally { + } + } catch (IOException e) { + throw new ApiException(e); + } + catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new ApiException(e); + } + } + + private HttpRequest.Builder createFieldDataFromAnalyzedFileRequestBuilder(AnalyzedResultsFromFieldData analyzedResultsFromFieldData) throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/api/v1/fieldData/createFieldDataFromAnalyzedFile"; + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + localVarRequestBuilder.header("Content-Type", "application/json"); + localVarRequestBuilder.header("Accept", "application/json"); + + try { + byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(analyzedResultsFromFieldData); + localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody)); + } catch (IOException e) { + throw new ApiException(e); + } + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } + /** + * Delete the selected field data. + * + * @param fieldDataID (required) + * @throws ApiException if fails to make API call + */ + public void deleteFieldData(String fieldDataID) throws ApiException { + deleteFieldDataWithHttpInfo(fieldDataID); + } + + /** + * Delete the selected field data. + * + * @param fieldDataID (required) + * @return ApiResponse<Void> + * @throws ApiException if fails to make API call + */ + public ApiResponse deleteFieldDataWithHttpInfo(String fieldDataID) throws ApiException { + HttpRequest.Builder localVarRequestBuilder = deleteFieldDataRequestBuilder(fieldDataID); + try { + HttpResponse localVarResponse = memberVarHttpClient.send( + localVarRequestBuilder.build(), + HttpResponse.BodyHandlers.ofInputStream()); + if (memberVarResponseInterceptor != null) { + memberVarResponseInterceptor.accept(localVarResponse); + } + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("deleteFieldData", localVarResponse); + } + return new ApiResponse( + localVarResponse.statusCode(), + localVarResponse.headers().map(), + null + ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } + } catch (IOException e) { + throw new ApiException(e); + } + catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new ApiException(e); + } + } + + private HttpRequest.Builder deleteFieldDataRequestBuilder(String fieldDataID) throws ApiException { + // verify the required parameter 'fieldDataID' is set + if (fieldDataID == null) { + throw new ApiException(400, "Missing the required parameter 'fieldDataID' when calling deleteFieldData"); + } + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/api/v1/fieldData/delete/{fieldDataID}" + .replace("{fieldDataID}", ApiClient.urlEncode(fieldDataID.toString())); + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + localVarRequestBuilder.header("Accept", "application/json"); + + localVarRequestBuilder.method("DELETE", HttpRequest.BodyPublishers.noBody()); + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } + /** + * Get all of the ids used to identify, and retrieve field data. + * + * @return List<FieldDataReference> + * @throws ApiException if fails to make API call + */ + public List getAllFieldDataIDs() throws ApiException { + ApiResponse> localVarResponse = getAllFieldDataIDsWithHttpInfo(); + return localVarResponse.getData(); + } + + /** + * Get all of the ids used to identify, and retrieve field data. + * + * @return ApiResponse<List<FieldDataReference>> + * @throws ApiException if fails to make API call + */ + public ApiResponse> getAllFieldDataIDsWithHttpInfo() throws ApiException { + HttpRequest.Builder localVarRequestBuilder = getAllFieldDataIDsRequestBuilder(); + try { + HttpResponse localVarResponse = memberVarHttpClient.send( + localVarRequestBuilder.build(), + HttpResponse.BodyHandlers.ofInputStream()); + if (memberVarResponseInterceptor != null) { + memberVarResponseInterceptor.accept(localVarResponse); + } + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("getAllFieldDataIDs", localVarResponse); + } + return new ApiResponse>( + localVarResponse.statusCode(), + localVarResponse.headers().map(), + localVarResponse.body() == null ? null : memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) // closes the InputStream + ); + } finally { + } + } catch (IOException e) { + throw new ApiException(e); + } + catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new ApiException(e); + } + } + + private HttpRequest.Builder getAllFieldDataIDsRequestBuilder() throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/api/v1/fieldData/IDs"; + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + localVarRequestBuilder.header("Accept", "application/json"); + + localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody()); + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } + /** + * Get the shape of the field data. That is it's size, origin, extent, and data identifiers. + * + * @param fieldDataID (required) + * @return FieldDataShape + * @throws ApiException if fails to make API call + */ + public FieldDataShape getFieldDataShapeFromID(String fieldDataID) throws ApiException { + ApiResponse localVarResponse = getFieldDataShapeFromIDWithHttpInfo(fieldDataID); + return localVarResponse.getData(); + } + + /** + * Get the shape of the field data. That is it's size, origin, extent, and data identifiers. + * + * @param fieldDataID (required) + * @return ApiResponse<FieldDataShape> + * @throws ApiException if fails to make API call + */ + public ApiResponse getFieldDataShapeFromIDWithHttpInfo(String fieldDataID) throws ApiException { + HttpRequest.Builder localVarRequestBuilder = getFieldDataShapeFromIDRequestBuilder(fieldDataID); + try { + HttpResponse localVarResponse = memberVarHttpClient.send( + localVarRequestBuilder.build(), + HttpResponse.BodyHandlers.ofInputStream()); + if (memberVarResponseInterceptor != null) { + memberVarResponseInterceptor.accept(localVarResponse); + } + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("getFieldDataShapeFromID", localVarResponse); + } + return new ApiResponse( + localVarResponse.statusCode(), + localVarResponse.headers().map(), + localVarResponse.body() == null ? null : memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) // closes the InputStream + ); + } finally { + } + } catch (IOException e) { + throw new ApiException(e); + } + catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new ApiException(e); + } + } + + private HttpRequest.Builder getFieldDataShapeFromIDRequestBuilder(String fieldDataID) throws ApiException { + // verify the required parameter 'fieldDataID' is set + if (fieldDataID == null) { + throw new ApiException(400, "Missing the required parameter 'fieldDataID' when calling getFieldDataShapeFromID"); + } + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/api/v1/fieldData/fieldDataShape/{fieldDataID}" + .replace("{fieldDataID}", ApiClient.urlEncode(fieldDataID.toString())); + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + localVarRequestBuilder.header("Accept", "application/json"); + + localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody()); + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } +} diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/api/HelloWorldApi.java b/vcell-restclient/src/main/java/org/vcell/restclient/api/HelloWorldApi.java index a3023a5bf1..170af922b3 100644 --- a/vcell-restclient/src/main/java/org/vcell/restclient/api/HelloWorldApi.java +++ b/vcell-restclient/src/main/java/org/vcell/restclient/api/HelloWorldApi.java @@ -22,6 +22,12 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.http.HttpEntity; +import org.apache.http.NameValuePair; +import org.apache.http.entity.mime.MultipartEntityBuilder; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.client.entity.UrlEncodedFormEntity; + import java.io.InputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/api/PublicationResourceApi.java b/vcell-restclient/src/main/java/org/vcell/restclient/api/PublicationResourceApi.java index 42a0cc1847..14d9359f37 100644 --- a/vcell-restclient/src/main/java/org/vcell/restclient/api/PublicationResourceApi.java +++ b/vcell-restclient/src/main/java/org/vcell/restclient/api/PublicationResourceApi.java @@ -22,6 +22,12 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.http.HttpEntity; +import org.apache.http.NameValuePair; +import org.apache.http.entity.mime.MultipartEntityBuilder; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.client.entity.UrlEncodedFormEntity; + import java.io.InputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/api/SimulationResourceApi.java b/vcell-restclient/src/main/java/org/vcell/restclient/api/SimulationResourceApi.java index 43f541b946..e6030384b8 100644 --- a/vcell-restclient/src/main/java/org/vcell/restclient/api/SimulationResourceApi.java +++ b/vcell-restclient/src/main/java/org/vcell/restclient/api/SimulationResourceApi.java @@ -23,6 +23,12 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.http.HttpEntity; +import org.apache.http.NameValuePair; +import org.apache.http.entity.mime.MultipartEntityBuilder; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.client.entity.UrlEncodedFormEntity; + import java.io.InputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/api/UsersResourceApi.java b/vcell-restclient/src/main/java/org/vcell/restclient/api/UsersResourceApi.java index 6d4e10d646..83d1aba0fd 100644 --- a/vcell-restclient/src/main/java/org/vcell/restclient/api/UsersResourceApi.java +++ b/vcell-restclient/src/main/java/org/vcell/restclient/api/UsersResourceApi.java @@ -26,6 +26,12 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.http.HttpEntity; +import org.apache.http.NameValuePair; +import org.apache.http.entity.mime.MultipartEntityBuilder; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.client.entity.UrlEncodedFormEntity; + import java.io.InputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/AccessTokenRepresentation.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/AccessTokenRepresentation.java deleted file mode 100644 index 8df8742129..0000000000 --- a/vcell-restclient/src/main/java/org/vcell/restclient/model/AccessTokenRepresentation.java +++ /dev/null @@ -1,294 +0,0 @@ -/* - * VCell API - * VCell API - * - * The version of the OpenAPI document: 1.0.1 - * Contact: vcell_support@uchc.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -package org.vcell.restclient.model; - -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; -import java.util.StringJoiner; -import java.util.Objects; -import java.util.Map; -import java.util.HashMap; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.annotation.JsonValue; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - - -/** - * AccessTokenRepresentation - */ -@JsonPropertyOrder({ - AccessTokenRepresentation.JSON_PROPERTY_TOKEN, - AccessTokenRepresentation.JSON_PROPERTY_CREATION_DATE_SECONDS, - AccessTokenRepresentation.JSON_PROPERTY_EXPIRE_DATE_SECONDS, - AccessTokenRepresentation.JSON_PROPERTY_USER_ID, - AccessTokenRepresentation.JSON_PROPERTY_USER_KEY -}) -@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") -public class AccessTokenRepresentation { - public static final String JSON_PROPERTY_TOKEN = "token"; - private String token; - - public static final String JSON_PROPERTY_CREATION_DATE_SECONDS = "creationDateSeconds"; - private Long creationDateSeconds; - - public static final String JSON_PROPERTY_EXPIRE_DATE_SECONDS = "expireDateSeconds"; - private Long expireDateSeconds; - - public static final String JSON_PROPERTY_USER_ID = "userId"; - private String userId; - - public static final String JSON_PROPERTY_USER_KEY = "userKey"; - private String userKey; - - public AccessTokenRepresentation() { - } - - public AccessTokenRepresentation token(String token) { - this.token = token; - return this; - } - - /** - * Get token - * @return token - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_TOKEN) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getToken() { - return token; - } - - - @JsonProperty(JSON_PROPERTY_TOKEN) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setToken(String token) { - this.token = token; - } - - - public AccessTokenRepresentation creationDateSeconds(Long creationDateSeconds) { - this.creationDateSeconds = creationDateSeconds; - return this; - } - - /** - * Get creationDateSeconds - * @return creationDateSeconds - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_CREATION_DATE_SECONDS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Long getCreationDateSeconds() { - return creationDateSeconds; - } - - - @JsonProperty(JSON_PROPERTY_CREATION_DATE_SECONDS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setCreationDateSeconds(Long creationDateSeconds) { - this.creationDateSeconds = creationDateSeconds; - } - - - public AccessTokenRepresentation expireDateSeconds(Long expireDateSeconds) { - this.expireDateSeconds = expireDateSeconds; - return this; - } - - /** - * Get expireDateSeconds - * @return expireDateSeconds - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_EXPIRE_DATE_SECONDS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Long getExpireDateSeconds() { - return expireDateSeconds; - } - - - @JsonProperty(JSON_PROPERTY_EXPIRE_DATE_SECONDS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setExpireDateSeconds(Long expireDateSeconds) { - this.expireDateSeconds = expireDateSeconds; - } - - - public AccessTokenRepresentation userId(String userId) { - this.userId = userId; - return this; - } - - /** - * Get userId - * @return userId - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_USER_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getUserId() { - return userId; - } - - - @JsonProperty(JSON_PROPERTY_USER_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setUserId(String userId) { - this.userId = userId; - } - - - public AccessTokenRepresentation userKey(String userKey) { - this.userKey = userKey; - return this; - } - - /** - * Get userKey - * @return userKey - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_USER_KEY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getUserKey() { - return userKey; - } - - - @JsonProperty(JSON_PROPERTY_USER_KEY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setUserKey(String userKey) { - this.userKey = userKey; - } - - - /** - * Return true if this AccessTokenRepresentation object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - AccessTokenRepresentation accessTokenRepresentation = (AccessTokenRepresentation) o; - return Objects.equals(this.token, accessTokenRepresentation.token) && - Objects.equals(this.creationDateSeconds, accessTokenRepresentation.creationDateSeconds) && - Objects.equals(this.expireDateSeconds, accessTokenRepresentation.expireDateSeconds) && - Objects.equals(this.userId, accessTokenRepresentation.userId) && - Objects.equals(this.userKey, accessTokenRepresentation.userKey); - } - - @Override - public int hashCode() { - return Objects.hash(token, creationDateSeconds, expireDateSeconds, userId, userKey); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class AccessTokenRepresentation {\n"); - sb.append(" token: ").append(toIndentedString(token)).append("\n"); - sb.append(" creationDateSeconds: ").append(toIndentedString(creationDateSeconds)).append("\n"); - sb.append(" expireDateSeconds: ").append(toIndentedString(expireDateSeconds)).append("\n"); - sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); - sb.append(" userKey: ").append(toIndentedString(userKey)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - /** - * Convert the instance into URL query string. - * - * @return URL query string - */ - public String toUrlQueryString() { - return toUrlQueryString(null); - } - - /** - * Convert the instance into URL query string. - * - * @param prefix prefix of the query string - * @return URL query string - */ - public String toUrlQueryString(String prefix) { - String suffix = ""; - String containerSuffix = ""; - String containerPrefix = ""; - if (prefix == null) { - // style=form, explode=true, e.g. /pet?name=cat&type=manx - prefix = ""; - } else { - // deepObject style e.g. /pet?id[name]=cat&id[type]=manx - prefix = prefix + "["; - suffix = "]"; - containerSuffix = "]"; - containerPrefix = "["; - } - - StringJoiner joiner = new StringJoiner("&"); - - // add `token` to the URL query string - if (getToken() != null) { - joiner.add(String.format("%stoken%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getToken()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `creationDateSeconds` to the URL query string - if (getCreationDateSeconds() != null) { - joiner.add(String.format("%screationDateSeconds%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getCreationDateSeconds()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `expireDateSeconds` to the URL query string - if (getExpireDateSeconds() != null) { - joiner.add(String.format("%sexpireDateSeconds%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getExpireDateSeconds()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `userId` to the URL query string - if (getUserId() != null) { - joiner.add(String.format("%suserId%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getUserId()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `userKey` to the URL query string - if (getUserKey() != null) { - joiner.add(String.format("%suserKey%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getUserKey()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - return joiner.toString(); - } -} - diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/AnalyzedResultsFromFieldData.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/AnalyzedResultsFromFieldData.java new file mode 100644 index 0000000000..510e545957 --- /dev/null +++ b/vcell-restclient/src/main/java/org/vcell/restclient/model/AnalyzedResultsFromFieldData.java @@ -0,0 +1,445 @@ +/* + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.vcell.restclient.model; + +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.StringJoiner; +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.vcell.restclient.model.Extent; +import org.vcell.restclient.model.ISize; +import org.vcell.restclient.model.Origin; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + + +/** + * AnalyzedResultsFromFieldData + */ +@JsonPropertyOrder({ + AnalyzedResultsFromFieldData.JSON_PROPERTY_SHORT_SPEC_DATA, + AnalyzedResultsFromFieldData.JSON_PROPERTY_VAR_NAMES, + AnalyzedResultsFromFieldData.JSON_PROPERTY_TIMES, + AnalyzedResultsFromFieldData.JSON_PROPERTY_ORIGIN, + AnalyzedResultsFromFieldData.JSON_PROPERTY_EXTENT, + AnalyzedResultsFromFieldData.JSON_PROPERTY_ISIZE, + AnalyzedResultsFromFieldData.JSON_PROPERTY_ANNOTATION, + AnalyzedResultsFromFieldData.JSON_PROPERTY_NAME +}) +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class AnalyzedResultsFromFieldData { + public static final String JSON_PROPERTY_SHORT_SPEC_DATA = "shortSpecData"; + private List>> shortSpecData; + + public static final String JSON_PROPERTY_VAR_NAMES = "varNames"; + private List varNames; + + public static final String JSON_PROPERTY_TIMES = "times"; + private List times; + + public static final String JSON_PROPERTY_ORIGIN = "origin"; + private Origin origin; + + public static final String JSON_PROPERTY_EXTENT = "extent"; + private Extent extent; + + public static final String JSON_PROPERTY_ISIZE = "isize"; + private ISize isize; + + public static final String JSON_PROPERTY_ANNOTATION = "annotation"; + private String annotation; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public AnalyzedResultsFromFieldData() { + } + + public AnalyzedResultsFromFieldData shortSpecData(List>> shortSpecData) { + this.shortSpecData = shortSpecData; + return this; + } + + public AnalyzedResultsFromFieldData addShortSpecDataItem(List> shortSpecDataItem) { + if (this.shortSpecData == null) { + this.shortSpecData = new ArrayList<>(); + } + this.shortSpecData.add(shortSpecDataItem); + return this; + } + + /** + * Get shortSpecData + * @return shortSpecData + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SHORT_SPEC_DATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public List>> getShortSpecData() { + return shortSpecData; + } + + + @JsonProperty(JSON_PROPERTY_SHORT_SPEC_DATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setShortSpecData(List>> shortSpecData) { + this.shortSpecData = shortSpecData; + } + + + public AnalyzedResultsFromFieldData varNames(List varNames) { + this.varNames = varNames; + return this; + } + + public AnalyzedResultsFromFieldData addVarNamesItem(String varNamesItem) { + if (this.varNames == null) { + this.varNames = new ArrayList<>(); + } + this.varNames.add(varNamesItem); + return this; + } + + /** + * Get varNames + * @return varNames + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_VAR_NAMES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public List getVarNames() { + return varNames; + } + + + @JsonProperty(JSON_PROPERTY_VAR_NAMES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setVarNames(List varNames) { + this.varNames = varNames; + } + + + public AnalyzedResultsFromFieldData times(List times) { + this.times = times; + return this; + } + + public AnalyzedResultsFromFieldData addTimesItem(Double timesItem) { + if (this.times == null) { + this.times = new ArrayList<>(); + } + this.times.add(timesItem); + return this; + } + + /** + * Get times + * @return times + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TIMES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public List getTimes() { + return times; + } + + + @JsonProperty(JSON_PROPERTY_TIMES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTimes(List times) { + this.times = times; + } + + + public AnalyzedResultsFromFieldData origin(Origin origin) { + this.origin = origin; + return this; + } + + /** + * Get origin + * @return origin + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ORIGIN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Origin getOrigin() { + return origin; + } + + + @JsonProperty(JSON_PROPERTY_ORIGIN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setOrigin(Origin origin) { + this.origin = origin; + } + + + public AnalyzedResultsFromFieldData extent(Extent extent) { + this.extent = extent; + return this; + } + + /** + * Get extent + * @return extent + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_EXTENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Extent getExtent() { + return extent; + } + + + @JsonProperty(JSON_PROPERTY_EXTENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setExtent(Extent extent) { + this.extent = extent; + } + + + public AnalyzedResultsFromFieldData isize(ISize isize) { + this.isize = isize; + return this; + } + + /** + * Get isize + * @return isize + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ISIZE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public ISize getIsize() { + return isize; + } + + + @JsonProperty(JSON_PROPERTY_ISIZE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIsize(ISize isize) { + this.isize = isize; + } + + + public AnalyzedResultsFromFieldData annotation(String annotation) { + this.annotation = annotation; + return this; + } + + /** + * Get annotation + * @return annotation + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ANNOTATION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getAnnotation() { + return annotation; + } + + + @JsonProperty(JSON_PROPERTY_ANNOTATION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAnnotation(String annotation) { + this.annotation = annotation; + } + + + public AnalyzedResultsFromFieldData name(String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getName() { + return name; + } + + + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setName(String name) { + this.name = name; + } + + + /** + * Return true if this AnalyzedResultsFromFieldData object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AnalyzedResultsFromFieldData analyzedResultsFromFieldData = (AnalyzedResultsFromFieldData) o; + return Objects.equals(this.shortSpecData, analyzedResultsFromFieldData.shortSpecData) && + Objects.equals(this.varNames, analyzedResultsFromFieldData.varNames) && + Objects.equals(this.times, analyzedResultsFromFieldData.times) && + Objects.equals(this.origin, analyzedResultsFromFieldData.origin) && + Objects.equals(this.extent, analyzedResultsFromFieldData.extent) && + Objects.equals(this.isize, analyzedResultsFromFieldData.isize) && + Objects.equals(this.annotation, analyzedResultsFromFieldData.annotation) && + Objects.equals(this.name, analyzedResultsFromFieldData.name); + } + + @Override + public int hashCode() { + return Objects.hash(shortSpecData, varNames, times, origin, extent, isize, annotation, name); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AnalyzedResultsFromFieldData {\n"); + sb.append(" shortSpecData: ").append(toIndentedString(shortSpecData)).append("\n"); + sb.append(" varNames: ").append(toIndentedString(varNames)).append("\n"); + sb.append(" times: ").append(toIndentedString(times)).append("\n"); + sb.append(" origin: ").append(toIndentedString(origin)).append("\n"); + sb.append(" extent: ").append(toIndentedString(extent)).append("\n"); + sb.append(" isize: ").append(toIndentedString(isize)).append("\n"); + sb.append(" annotation: ").append(toIndentedString(annotation)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `shortSpecData` to the URL query string + if (getShortSpecData() != null) { + for (int i = 0; i < getShortSpecData().size(); i++) { + if (getShortSpecData().get(i) != null) { + joiner.add(String.format("%sshortSpecData%s%s=%s", prefix, suffix, + "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix), + URLEncoder.encode(String.valueOf(getShortSpecData().get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + } + } + + // add `varNames` to the URL query string + if (getVarNames() != null) { + for (int i = 0; i < getVarNames().size(); i++) { + joiner.add(String.format("%svarNames%s%s=%s", prefix, suffix, + "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix), + URLEncoder.encode(String.valueOf(getVarNames().get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + } + + // add `times` to the URL query string + if (getTimes() != null) { + for (int i = 0; i < getTimes().size(); i++) { + joiner.add(String.format("%stimes%s%s=%s", prefix, suffix, + "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix), + URLEncoder.encode(String.valueOf(getTimes().get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + } + + // add `origin` to the URL query string + if (getOrigin() != null) { + joiner.add(getOrigin().toUrlQueryString(prefix + "origin" + suffix)); + } + + // add `extent` to the URL query string + if (getExtent() != null) { + joiner.add(getExtent().toUrlQueryString(prefix + "extent" + suffix)); + } + + // add `isize` to the URL query string + if (getIsize() != null) { + joiner.add(getIsize().toUrlQueryString(prefix + "isize" + suffix)); + } + + // add `annotation` to the URL query string + if (getAnnotation() != null) { + joiner.add(String.format("%sannotation%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getAnnotation()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `name` to the URL query string + if (getName() != null) { + joiner.add(String.format("%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + return joiner.toString(); + } +} + diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/DataIdentifier.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/DataIdentifier.java new file mode 100644 index 0000000000..15e202a03d --- /dev/null +++ b/vcell-restclient/src/main/java/org/vcell/restclient/model/DataIdentifier.java @@ -0,0 +1,368 @@ +/* + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.vcell.restclient.model; + +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.StringJoiner; +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Arrays; +import org.vcell.restclient.model.Domain; +import org.vcell.restclient.model.VariableType; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + + +/** + * DataIdentifier + */ +@JsonPropertyOrder({ + DataIdentifier.JSON_PROPERTY_NAME, + DataIdentifier.JSON_PROPERTY_DISPLAY_NAME, + DataIdentifier.JSON_PROPERTY_VARIABLE_TYPE, + DataIdentifier.JSON_PROPERTY_DOMAIN, + DataIdentifier.JSON_PROPERTY_B_FUNCTION, + DataIdentifier.JSON_PROPERTY_FUNCTION, + DataIdentifier.JSON_PROPERTY_VISIBLE +}) +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class DataIdentifier { + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_DISPLAY_NAME = "displayName"; + private String displayName; + + public static final String JSON_PROPERTY_VARIABLE_TYPE = "variableType"; + private VariableType variableType; + + public static final String JSON_PROPERTY_DOMAIN = "domain"; + private Domain domain; + + public static final String JSON_PROPERTY_B_FUNCTION = "bFunction"; + private Boolean bFunction; + + public static final String JSON_PROPERTY_FUNCTION = "function"; + private Boolean function; + + public static final String JSON_PROPERTY_VISIBLE = "visible"; + private Boolean visible; + + public DataIdentifier() { + } + + public DataIdentifier name(String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getName() { + return name; + } + + + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setName(String name) { + this.name = name; + } + + + public DataIdentifier displayName(String displayName) { + this.displayName = displayName; + return this; + } + + /** + * Get displayName + * @return displayName + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DISPLAY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getDisplayName() { + return displayName; + } + + + @JsonProperty(JSON_PROPERTY_DISPLAY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + + public DataIdentifier variableType(VariableType variableType) { + this.variableType = variableType; + return this; + } + + /** + * Get variableType + * @return variableType + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_VARIABLE_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public VariableType getVariableType() { + return variableType; + } + + + @JsonProperty(JSON_PROPERTY_VARIABLE_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setVariableType(VariableType variableType) { + this.variableType = variableType; + } + + + public DataIdentifier domain(Domain domain) { + this.domain = domain; + return this; + } + + /** + * Get domain + * @return domain + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DOMAIN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Domain getDomain() { + return domain; + } + + + @JsonProperty(JSON_PROPERTY_DOMAIN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDomain(Domain domain) { + this.domain = domain; + } + + + public DataIdentifier bFunction(Boolean bFunction) { + this.bFunction = bFunction; + return this; + } + + /** + * Get bFunction + * @return bFunction + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_B_FUNCTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getbFunction() { + return bFunction; + } + + + @JsonProperty(JSON_PROPERTY_B_FUNCTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setbFunction(Boolean bFunction) { + this.bFunction = bFunction; + } + + + public DataIdentifier function(Boolean function) { + this.function = function; + return this; + } + + /** + * Get function + * @return function + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_FUNCTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getFunction() { + return function; + } + + + @JsonProperty(JSON_PROPERTY_FUNCTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setFunction(Boolean function) { + this.function = function; + } + + + public DataIdentifier visible(Boolean visible) { + this.visible = visible; + return this; + } + + /** + * Get visible + * @return visible + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_VISIBLE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getVisible() { + return visible; + } + + + @JsonProperty(JSON_PROPERTY_VISIBLE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setVisible(Boolean visible) { + this.visible = visible; + } + + + /** + * Return true if this DataIdentifier object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DataIdentifier dataIdentifier = (DataIdentifier) o; + return Objects.equals(this.name, dataIdentifier.name) && + Objects.equals(this.displayName, dataIdentifier.displayName) && + Objects.equals(this.variableType, dataIdentifier.variableType) && + Objects.equals(this.domain, dataIdentifier.domain) && + Objects.equals(this.bFunction, dataIdentifier.bFunction) && + Objects.equals(this.function, dataIdentifier.function) && + Objects.equals(this.visible, dataIdentifier.visible); + } + + @Override + public int hashCode() { + return Objects.hash(name, displayName, variableType, domain, bFunction, function, visible); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DataIdentifier {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n"); + sb.append(" variableType: ").append(toIndentedString(variableType)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" bFunction: ").append(toIndentedString(bFunction)).append("\n"); + sb.append(" function: ").append(toIndentedString(function)).append("\n"); + sb.append(" visible: ").append(toIndentedString(visible)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `name` to the URL query string + if (getName() != null) { + joiner.add(String.format("%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `displayName` to the URL query string + if (getDisplayName() != null) { + joiner.add(String.format("%sdisplayName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getDisplayName()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `variableType` to the URL query string + if (getVariableType() != null) { + joiner.add(getVariableType().toUrlQueryString(prefix + "variableType" + suffix)); + } + + // add `domain` to the URL query string + if (getDomain() != null) { + joiner.add(getDomain().toUrlQueryString(prefix + "domain" + suffix)); + } + + // add `bFunction` to the URL query string + if (getbFunction() != null) { + joiner.add(String.format("%sbFunction%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getbFunction()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `function` to the URL query string + if (getFunction() != null) { + joiner.add(String.format("%sfunction%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFunction()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `visible` to the URL query string + if (getVisible() != null) { + joiner.add(String.format("%svisible%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getVisible()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + return joiner.toString(); + } +} + diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/Simulation.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/Domain.java similarity index 90% rename from vcell-restclient/src/main/java/org/vcell/restclient/model/Simulation.java rename to vcell-restclient/src/main/java/org/vcell/restclient/model/Domain.java index 473dbe6f09..33b401f2d6 100644 --- a/vcell-restclient/src/main/java/org/vcell/restclient/model/Simulation.java +++ b/vcell-restclient/src/main/java/org/vcell/restclient/model/Domain.java @@ -29,20 +29,20 @@ /** - * Simulation + * Domain */ @JsonPropertyOrder({ - Simulation.JSON_PROPERTY_NAME + Domain.JSON_PROPERTY_NAME }) @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") -public class Simulation { +public class Domain { public static final String JSON_PROPERTY_NAME = "name"; private String name; - public Simulation() { + public Domain() { } - public Simulation name(String name) { + public Domain name(String name) { this.name = name; return this; } @@ -68,7 +68,7 @@ public void setName(String name) { /** - * Return true if this Simulation object is equal to o. + * Return true if this Domain object is equal to o. */ @Override public boolean equals(Object o) { @@ -78,8 +78,8 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - Simulation simulation = (Simulation) o; - return Objects.equals(this.name, simulation.name); + Domain domain = (Domain) o; + return Objects.equals(this.name, domain.name); } @Override @@ -90,7 +90,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class Simulation {\n"); + sb.append("class Domain {\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append("}"); return sb.toString(); diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/Extent.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/Extent.java new file mode 100644 index 0000000000..fdc566be08 --- /dev/null +++ b/vcell-restclient/src/main/java/org/vcell/restclient/model/Extent.java @@ -0,0 +1,222 @@ +/* + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.vcell.restclient.model; + +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.StringJoiner; +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Arrays; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + + +/** + * Extent + */ +@JsonPropertyOrder({ + Extent.JSON_PROPERTY_X, + Extent.JSON_PROPERTY_Y, + Extent.JSON_PROPERTY_Z +}) +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class Extent { + public static final String JSON_PROPERTY_X = "x"; + private Double x; + + public static final String JSON_PROPERTY_Y = "y"; + private Double y; + + public static final String JSON_PROPERTY_Z = "z"; + private Double z; + + public Extent() { + } + + public Extent x(Double x) { + this.x = x; + return this; + } + + /** + * Get x + * @return x + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_X) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Double getX() { + return x; + } + + + @JsonProperty(JSON_PROPERTY_X) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setX(Double x) { + this.x = x; + } + + + public Extent y(Double y) { + this.y = y; + return this; + } + + /** + * Get y + * @return y + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_Y) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Double getY() { + return y; + } + + + @JsonProperty(JSON_PROPERTY_Y) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setY(Double y) { + this.y = y; + } + + + public Extent z(Double z) { + this.z = z; + return this; + } + + /** + * Get z + * @return z + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_Z) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Double getZ() { + return z; + } + + + @JsonProperty(JSON_PROPERTY_Z) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setZ(Double z) { + this.z = z; + } + + + /** + * Return true if this Extent object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Extent extent = (Extent) o; + return Objects.equals(this.x, extent.x) && + Objects.equals(this.y, extent.y) && + Objects.equals(this.z, extent.z); + } + + @Override + public int hashCode() { + return Objects.hash(x, y, z); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Extent {\n"); + sb.append(" x: ").append(toIndentedString(x)).append("\n"); + sb.append(" y: ").append(toIndentedString(y)).append("\n"); + sb.append(" z: ").append(toIndentedString(z)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `x` to the URL query string + if (getX() != null) { + joiner.add(String.format("%sx%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getX()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `y` to the URL query string + if (getY() != null) { + joiner.add(String.format("%sy%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getY()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `z` to the URL query string + if (getZ() != null) { + joiner.add(String.format("%sz%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getZ()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + return joiner.toString(); + } +} + diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/ExternalDataIdentifier.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/ExternalDataIdentifier.java new file mode 100644 index 0000000000..55338ca90d --- /dev/null +++ b/vcell-restclient/src/main/java/org/vcell/restclient/model/ExternalDataIdentifier.java @@ -0,0 +1,368 @@ +/* + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.vcell.restclient.model; + +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.StringJoiner; +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Arrays; +import org.vcell.restclient.model.KeyValue; +import org.vcell.restclient.model.User; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + + +/** + * ExternalDataIdentifier + */ +@JsonPropertyOrder({ + ExternalDataIdentifier.JSON_PROPERTY_KEY, + ExternalDataIdentifier.JSON_PROPERTY_OWNER, + ExternalDataIdentifier.JSON_PROPERTY_NAME, + ExternalDataIdentifier.JSON_PROPERTY_JOB_INDEX, + ExternalDataIdentifier.JSON_PROPERTY_SIMULATION_KEY, + ExternalDataIdentifier.JSON_PROPERTY_PARAMETER_SCAN_TYPE, + ExternalDataIdentifier.JSON_PROPERTY_DATA_KEY +}) +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class ExternalDataIdentifier { + public static final String JSON_PROPERTY_KEY = "key"; + private KeyValue key; + + public static final String JSON_PROPERTY_OWNER = "owner"; + private User owner; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_JOB_INDEX = "jobIndex"; + private Integer jobIndex; + + public static final String JSON_PROPERTY_SIMULATION_KEY = "simulationKey"; + private KeyValue simulationKey; + + public static final String JSON_PROPERTY_PARAMETER_SCAN_TYPE = "parameterScanType"; + private Boolean parameterScanType; + + public static final String JSON_PROPERTY_DATA_KEY = "dataKey"; + private KeyValue dataKey; + + public ExternalDataIdentifier() { + } + + public ExternalDataIdentifier key(KeyValue key) { + this.key = key; + return this; + } + + /** + * Get key + * @return key + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_KEY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public KeyValue getKey() { + return key; + } + + + @JsonProperty(JSON_PROPERTY_KEY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setKey(KeyValue key) { + this.key = key; + } + + + public ExternalDataIdentifier owner(User owner) { + this.owner = owner; + return this; + } + + /** + * Get owner + * @return owner + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_OWNER) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public User getOwner() { + return owner; + } + + + @JsonProperty(JSON_PROPERTY_OWNER) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setOwner(User owner) { + this.owner = owner; + } + + + public ExternalDataIdentifier name(String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getName() { + return name; + } + + + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setName(String name) { + this.name = name; + } + + + public ExternalDataIdentifier jobIndex(Integer jobIndex) { + this.jobIndex = jobIndex; + return this; + } + + /** + * Get jobIndex + * @return jobIndex + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_JOB_INDEX) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Integer getJobIndex() { + return jobIndex; + } + + + @JsonProperty(JSON_PROPERTY_JOB_INDEX) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setJobIndex(Integer jobIndex) { + this.jobIndex = jobIndex; + } + + + public ExternalDataIdentifier simulationKey(KeyValue simulationKey) { + this.simulationKey = simulationKey; + return this; + } + + /** + * Get simulationKey + * @return simulationKey + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SIMULATION_KEY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public KeyValue getSimulationKey() { + return simulationKey; + } + + + @JsonProperty(JSON_PROPERTY_SIMULATION_KEY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSimulationKey(KeyValue simulationKey) { + this.simulationKey = simulationKey; + } + + + public ExternalDataIdentifier parameterScanType(Boolean parameterScanType) { + this.parameterScanType = parameterScanType; + return this; + } + + /** + * Get parameterScanType + * @return parameterScanType + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PARAMETER_SCAN_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getParameterScanType() { + return parameterScanType; + } + + + @JsonProperty(JSON_PROPERTY_PARAMETER_SCAN_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setParameterScanType(Boolean parameterScanType) { + this.parameterScanType = parameterScanType; + } + + + public ExternalDataIdentifier dataKey(KeyValue dataKey) { + this.dataKey = dataKey; + return this; + } + + /** + * Get dataKey + * @return dataKey + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DATA_KEY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public KeyValue getDataKey() { + return dataKey; + } + + + @JsonProperty(JSON_PROPERTY_DATA_KEY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDataKey(KeyValue dataKey) { + this.dataKey = dataKey; + } + + + /** + * Return true if this ExternalDataIdentifier object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExternalDataIdentifier externalDataIdentifier = (ExternalDataIdentifier) o; + return Objects.equals(this.key, externalDataIdentifier.key) && + Objects.equals(this.owner, externalDataIdentifier.owner) && + Objects.equals(this.name, externalDataIdentifier.name) && + Objects.equals(this.jobIndex, externalDataIdentifier.jobIndex) && + Objects.equals(this.simulationKey, externalDataIdentifier.simulationKey) && + Objects.equals(this.parameterScanType, externalDataIdentifier.parameterScanType) && + Objects.equals(this.dataKey, externalDataIdentifier.dataKey); + } + + @Override + public int hashCode() { + return Objects.hash(key, owner, name, jobIndex, simulationKey, parameterScanType, dataKey); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ExternalDataIdentifier {\n"); + sb.append(" key: ").append(toIndentedString(key)).append("\n"); + sb.append(" owner: ").append(toIndentedString(owner)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" jobIndex: ").append(toIndentedString(jobIndex)).append("\n"); + sb.append(" simulationKey: ").append(toIndentedString(simulationKey)).append("\n"); + sb.append(" parameterScanType: ").append(toIndentedString(parameterScanType)).append("\n"); + sb.append(" dataKey: ").append(toIndentedString(dataKey)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `key` to the URL query string + if (getKey() != null) { + joiner.add(getKey().toUrlQueryString(prefix + "key" + suffix)); + } + + // add `owner` to the URL query string + if (getOwner() != null) { + joiner.add(getOwner().toUrlQueryString(prefix + "owner" + suffix)); + } + + // add `name` to the URL query string + if (getName() != null) { + joiner.add(String.format("%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `jobIndex` to the URL query string + if (getJobIndex() != null) { + joiner.add(String.format("%sjobIndex%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getJobIndex()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `simulationKey` to the URL query string + if (getSimulationKey() != null) { + joiner.add(getSimulationKey().toUrlQueryString(prefix + "simulationKey" + suffix)); + } + + // add `parameterScanType` to the URL query string + if (getParameterScanType() != null) { + joiner.add(String.format("%sparameterScanType%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getParameterScanType()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `dataKey` to the URL query string + if (getDataKey() != null) { + joiner.add(getDataKey().toUrlQueryString(prefix + "dataKey" + suffix)); + } + + return joiner.toString(); + } +} + diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/FieldDataReference.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/FieldDataReference.java new file mode 100644 index 0000000000..4c2ee8f0e7 --- /dev/null +++ b/vcell-restclient/src/main/java/org/vcell/restclient/model/FieldDataReference.java @@ -0,0 +1,239 @@ +/* + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.vcell.restclient.model; + +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.StringJoiner; +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.vcell.restclient.model.ExternalDataIdentifier; +import org.vcell.restclient.model.KeyValue; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + + +/** + * FieldDataReference + */ +@JsonPropertyOrder({ + FieldDataReference.JSON_PROPERTY_EXTERNAL_DATA_IDENTIFIER, + FieldDataReference.JSON_PROPERTY_EXTERNAL_DATA_ANNOTATION, + FieldDataReference.JSON_PROPERTY_EXTERNAL_DATA_I_D_SIM_REFS +}) +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class FieldDataReference { + public static final String JSON_PROPERTY_EXTERNAL_DATA_IDENTIFIER = "externalDataIdentifier"; + private ExternalDataIdentifier externalDataIdentifier; + + public static final String JSON_PROPERTY_EXTERNAL_DATA_ANNOTATION = "externalDataAnnotation"; + private String externalDataAnnotation; + + public static final String JSON_PROPERTY_EXTERNAL_DATA_I_D_SIM_REFS = "externalDataIDSimRefs"; + private List externalDataIDSimRefs; + + public FieldDataReference() { + } + + public FieldDataReference externalDataIdentifier(ExternalDataIdentifier externalDataIdentifier) { + this.externalDataIdentifier = externalDataIdentifier; + return this; + } + + /** + * Get externalDataIdentifier + * @return externalDataIdentifier + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_EXTERNAL_DATA_IDENTIFIER) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public ExternalDataIdentifier getExternalDataIdentifier() { + return externalDataIdentifier; + } + + + @JsonProperty(JSON_PROPERTY_EXTERNAL_DATA_IDENTIFIER) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setExternalDataIdentifier(ExternalDataIdentifier externalDataIdentifier) { + this.externalDataIdentifier = externalDataIdentifier; + } + + + public FieldDataReference externalDataAnnotation(String externalDataAnnotation) { + this.externalDataAnnotation = externalDataAnnotation; + return this; + } + + /** + * Get externalDataAnnotation + * @return externalDataAnnotation + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_EXTERNAL_DATA_ANNOTATION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getExternalDataAnnotation() { + return externalDataAnnotation; + } + + + @JsonProperty(JSON_PROPERTY_EXTERNAL_DATA_ANNOTATION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setExternalDataAnnotation(String externalDataAnnotation) { + this.externalDataAnnotation = externalDataAnnotation; + } + + + public FieldDataReference externalDataIDSimRefs(List externalDataIDSimRefs) { + this.externalDataIDSimRefs = externalDataIDSimRefs; + return this; + } + + public FieldDataReference addExternalDataIDSimRefsItem(KeyValue externalDataIDSimRefsItem) { + if (this.externalDataIDSimRefs == null) { + this.externalDataIDSimRefs = new ArrayList<>(); + } + this.externalDataIDSimRefs.add(externalDataIDSimRefsItem); + return this; + } + + /** + * Get externalDataIDSimRefs + * @return externalDataIDSimRefs + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_EXTERNAL_DATA_I_D_SIM_REFS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public List getExternalDataIDSimRefs() { + return externalDataIDSimRefs; + } + + + @JsonProperty(JSON_PROPERTY_EXTERNAL_DATA_I_D_SIM_REFS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setExternalDataIDSimRefs(List externalDataIDSimRefs) { + this.externalDataIDSimRefs = externalDataIDSimRefs; + } + + + /** + * Return true if this FieldDataReference object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FieldDataReference fieldDataReference = (FieldDataReference) o; + return Objects.equals(this.externalDataIdentifier, fieldDataReference.externalDataIdentifier) && + Objects.equals(this.externalDataAnnotation, fieldDataReference.externalDataAnnotation) && + Objects.equals(this.externalDataIDSimRefs, fieldDataReference.externalDataIDSimRefs); + } + + @Override + public int hashCode() { + return Objects.hash(externalDataIdentifier, externalDataAnnotation, externalDataIDSimRefs); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FieldDataReference {\n"); + sb.append(" externalDataIdentifier: ").append(toIndentedString(externalDataIdentifier)).append("\n"); + sb.append(" externalDataAnnotation: ").append(toIndentedString(externalDataAnnotation)).append("\n"); + sb.append(" externalDataIDSimRefs: ").append(toIndentedString(externalDataIDSimRefs)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `externalDataIdentifier` to the URL query string + if (getExternalDataIdentifier() != null) { + joiner.add(getExternalDataIdentifier().toUrlQueryString(prefix + "externalDataIdentifier" + suffix)); + } + + // add `externalDataAnnotation` to the URL query string + if (getExternalDataAnnotation() != null) { + joiner.add(String.format("%sexternalDataAnnotation%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getExternalDataAnnotation()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `externalDataIDSimRefs` to the URL query string + if (getExternalDataIDSimRefs() != null) { + for (int i = 0; i < getExternalDataIDSimRefs().size(); i++) { + if (getExternalDataIDSimRefs().get(i) != null) { + joiner.add(getExternalDataIDSimRefs().get(i).toUrlQueryString(String.format("%sexternalDataIDSimRefs%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + } + } + } + + return joiner.toString(); + } +} + diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/MapUser.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/FieldDataSaveResults.java similarity index 55% rename from vcell-restclient/src/main/java/org/vcell/restclient/model/MapUser.java rename to vcell-restclient/src/main/java/org/vcell/restclient/model/FieldDataSaveResults.java index 688ba68195..4652fafe77 100644 --- a/vcell-restclient/src/main/java/org/vcell/restclient/model/MapUser.java +++ b/vcell-restclient/src/main/java/org/vcell/restclient/model/FieldDataSaveResults.java @@ -29,75 +29,75 @@ /** - * MapUser + * FieldDataSaveResults */ @JsonPropertyOrder({ - MapUser.JSON_PROPERTY_USER_I_D, - MapUser.JSON_PROPERTY_PASSWORD + FieldDataSaveResults.JSON_PROPERTY_FIELD_DATA_NAME, + FieldDataSaveResults.JSON_PROPERTY_FIELD_DATA_I_D }) @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") -public class MapUser { - public static final String JSON_PROPERTY_USER_I_D = "userID"; - private String userID; +public class FieldDataSaveResults { + public static final String JSON_PROPERTY_FIELD_DATA_NAME = "fieldDataName"; + private String fieldDataName; - public static final String JSON_PROPERTY_PASSWORD = "password"; - private String password; + public static final String JSON_PROPERTY_FIELD_DATA_I_D = "fieldDataID"; + private String fieldDataID; - public MapUser() { + public FieldDataSaveResults() { } - public MapUser userID(String userID) { - this.userID = userID; + public FieldDataSaveResults fieldDataName(String fieldDataName) { + this.fieldDataName = fieldDataName; return this; } /** - * Get userID - * @return userID + * Get fieldDataName + * @return fieldDataName **/ @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_USER_I_D) + @JsonProperty(JSON_PROPERTY_FIELD_DATA_NAME) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public String getUserID() { - return userID; + public String getFieldDataName() { + return fieldDataName; } - @JsonProperty(JSON_PROPERTY_USER_I_D) + @JsonProperty(JSON_PROPERTY_FIELD_DATA_NAME) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setUserID(String userID) { - this.userID = userID; + public void setFieldDataName(String fieldDataName) { + this.fieldDataName = fieldDataName; } - public MapUser password(String password) { - this.password = password; + public FieldDataSaveResults fieldDataID(String fieldDataID) { + this.fieldDataID = fieldDataID; return this; } /** - * Get password - * @return password + * Get fieldDataID + * @return fieldDataID **/ @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_PASSWORD) + @JsonProperty(JSON_PROPERTY_FIELD_DATA_I_D) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public String getPassword() { - return password; + public String getFieldDataID() { + return fieldDataID; } - @JsonProperty(JSON_PROPERTY_PASSWORD) + @JsonProperty(JSON_PROPERTY_FIELD_DATA_I_D) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setPassword(String password) { - this.password = password; + public void setFieldDataID(String fieldDataID) { + this.fieldDataID = fieldDataID; } /** - * Return true if this MapUser object is equal to o. + * Return true if this FieldDataSaveResults object is equal to o. */ @Override public boolean equals(Object o) { @@ -107,22 +107,22 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - MapUser mapUser = (MapUser) o; - return Objects.equals(this.userID, mapUser.userID) && - Objects.equals(this.password, mapUser.password); + FieldDataSaveResults fieldDataSaveResults = (FieldDataSaveResults) o; + return Objects.equals(this.fieldDataName, fieldDataSaveResults.fieldDataName) && + Objects.equals(this.fieldDataID, fieldDataSaveResults.fieldDataID); } @Override public int hashCode() { - return Objects.hash(userID, password); + return Objects.hash(fieldDataName, fieldDataID); } @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class MapUser {\n"); - sb.append(" userID: ").append(toIndentedString(userID)).append("\n"); - sb.append(" password: ").append(toIndentedString(password)).append("\n"); + sb.append("class FieldDataSaveResults {\n"); + sb.append(" fieldDataName: ").append(toIndentedString(fieldDataName)).append("\n"); + sb.append(" fieldDataID: ").append(toIndentedString(fieldDataID)).append("\n"); sb.append("}"); return sb.toString(); } @@ -170,14 +170,14 @@ public String toUrlQueryString(String prefix) { StringJoiner joiner = new StringJoiner("&"); - // add `userID` to the URL query string - if (getUserID() != null) { - joiner.add(String.format("%suserID%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getUserID()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + // add `fieldDataName` to the URL query string + if (getFieldDataName() != null) { + joiner.add(String.format("%sfieldDataName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFieldDataName()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); } - // add `password` to the URL query string - if (getPassword() != null) { - joiner.add(String.format("%spassword%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getPassword()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + // add `fieldDataID` to the URL query string + if (getFieldDataID() != null) { + joiner.add(String.format("%sfieldDataID%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFieldDataID()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); } return joiner.toString(); diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/FieldDataShape.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/FieldDataShape.java new file mode 100644 index 0000000000..8bbc5717d2 --- /dev/null +++ b/vcell-restclient/src/main/java/org/vcell/restclient/model/FieldDataShape.java @@ -0,0 +1,325 @@ +/* + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.vcell.restclient.model; + +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.StringJoiner; +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.vcell.restclient.model.DataIdentifier; +import org.vcell.restclient.model.Extent; +import org.vcell.restclient.model.ISize; +import org.vcell.restclient.model.Origin; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + + +/** + * FieldDataShape + */ +@JsonPropertyOrder({ + FieldDataShape.JSON_PROPERTY_EXTENT, + FieldDataShape.JSON_PROPERTY_ORIGIN, + FieldDataShape.JSON_PROPERTY_ISIZE, + FieldDataShape.JSON_PROPERTY_DATA_IDENTIFIER, + FieldDataShape.JSON_PROPERTY_TIMES +}) +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class FieldDataShape { + public static final String JSON_PROPERTY_EXTENT = "extent"; + private Extent extent; + + public static final String JSON_PROPERTY_ORIGIN = "origin"; + private Origin origin; + + public static final String JSON_PROPERTY_ISIZE = "isize"; + private ISize isize; + + public static final String JSON_PROPERTY_DATA_IDENTIFIER = "dataIdentifier"; + private List dataIdentifier; + + public static final String JSON_PROPERTY_TIMES = "times"; + private List times; + + public FieldDataShape() { + } + + public FieldDataShape extent(Extent extent) { + this.extent = extent; + return this; + } + + /** + * Get extent + * @return extent + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_EXTENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Extent getExtent() { + return extent; + } + + + @JsonProperty(JSON_PROPERTY_EXTENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setExtent(Extent extent) { + this.extent = extent; + } + + + public FieldDataShape origin(Origin origin) { + this.origin = origin; + return this; + } + + /** + * Get origin + * @return origin + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ORIGIN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Origin getOrigin() { + return origin; + } + + + @JsonProperty(JSON_PROPERTY_ORIGIN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setOrigin(Origin origin) { + this.origin = origin; + } + + + public FieldDataShape isize(ISize isize) { + this.isize = isize; + return this; + } + + /** + * Get isize + * @return isize + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ISIZE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public ISize getIsize() { + return isize; + } + + + @JsonProperty(JSON_PROPERTY_ISIZE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIsize(ISize isize) { + this.isize = isize; + } + + + public FieldDataShape dataIdentifier(List dataIdentifier) { + this.dataIdentifier = dataIdentifier; + return this; + } + + public FieldDataShape addDataIdentifierItem(DataIdentifier dataIdentifierItem) { + if (this.dataIdentifier == null) { + this.dataIdentifier = new ArrayList<>(); + } + this.dataIdentifier.add(dataIdentifierItem); + return this; + } + + /** + * Get dataIdentifier + * @return dataIdentifier + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DATA_IDENTIFIER) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public List getDataIdentifier() { + return dataIdentifier; + } + + + @JsonProperty(JSON_PROPERTY_DATA_IDENTIFIER) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDataIdentifier(List dataIdentifier) { + this.dataIdentifier = dataIdentifier; + } + + + public FieldDataShape times(List times) { + this.times = times; + return this; + } + + public FieldDataShape addTimesItem(Double timesItem) { + if (this.times == null) { + this.times = new ArrayList<>(); + } + this.times.add(timesItem); + return this; + } + + /** + * Get times + * @return times + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TIMES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public List getTimes() { + return times; + } + + + @JsonProperty(JSON_PROPERTY_TIMES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTimes(List times) { + this.times = times; + } + + + /** + * Return true if this FieldDataShape object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FieldDataShape fieldDataShape = (FieldDataShape) o; + return Objects.equals(this.extent, fieldDataShape.extent) && + Objects.equals(this.origin, fieldDataShape.origin) && + Objects.equals(this.isize, fieldDataShape.isize) && + Objects.equals(this.dataIdentifier, fieldDataShape.dataIdentifier) && + Objects.equals(this.times, fieldDataShape.times); + } + + @Override + public int hashCode() { + return Objects.hash(extent, origin, isize, dataIdentifier, times); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FieldDataShape {\n"); + sb.append(" extent: ").append(toIndentedString(extent)).append("\n"); + sb.append(" origin: ").append(toIndentedString(origin)).append("\n"); + sb.append(" isize: ").append(toIndentedString(isize)).append("\n"); + sb.append(" dataIdentifier: ").append(toIndentedString(dataIdentifier)).append("\n"); + sb.append(" times: ").append(toIndentedString(times)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `extent` to the URL query string + if (getExtent() != null) { + joiner.add(getExtent().toUrlQueryString(prefix + "extent" + suffix)); + } + + // add `origin` to the URL query string + if (getOrigin() != null) { + joiner.add(getOrigin().toUrlQueryString(prefix + "origin" + suffix)); + } + + // add `isize` to the URL query string + if (getIsize() != null) { + joiner.add(getIsize().toUrlQueryString(prefix + "isize" + suffix)); + } + + // add `dataIdentifier` to the URL query string + if (getDataIdentifier() != null) { + for (int i = 0; i < getDataIdentifier().size(); i++) { + if (getDataIdentifier().get(i) != null) { + joiner.add(getDataIdentifier().get(i).toUrlQueryString(String.format("%sdataIdentifier%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + } + } + } + + // add `times` to the URL query string + if (getTimes() != null) { + for (int i = 0; i < getTimes().size(); i++) { + joiner.add(String.format("%stimes%s%s=%s", prefix, suffix, + "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix), + URLEncoder.encode(String.valueOf(getTimes().get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + } + + return joiner.toString(); + } +} + diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/VCellServerID.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/ISize.java similarity index 50% rename from vcell-restclient/src/main/java/org/vcell/restclient/model/VCellServerID.java rename to vcell-restclient/src/main/java/org/vcell/restclient/model/ISize.java index 994933ad5f..cd299e8791 100644 --- a/vcell-restclient/src/main/java/org/vcell/restclient/model/VCellServerID.java +++ b/vcell-restclient/src/main/java/org/vcell/restclient/model/ISize.java @@ -29,46 +29,104 @@ /** - * VCellServerID + * ISize */ @JsonPropertyOrder({ - VCellServerID.JSON_PROPERTY_SERVER_I_D + ISize.JSON_PROPERTY_X, + ISize.JSON_PROPERTY_Y, + ISize.JSON_PROPERTY_Z }) @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") -public class VCellServerID { - public static final String JSON_PROPERTY_SERVER_I_D = "serverID"; - private String serverID; +public class ISize { + public static final String JSON_PROPERTY_X = "x"; + private Integer x; - public VCellServerID() { + public static final String JSON_PROPERTY_Y = "y"; + private Integer y; + + public static final String JSON_PROPERTY_Z = "z"; + private Integer z; + + public ISize() { + } + + public ISize x(Integer x) { + this.x = x; + return this; + } + + /** + * Get x + * @return x + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_X) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Integer getX() { + return x; + } + + + @JsonProperty(JSON_PROPERTY_X) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setX(Integer x) { + this.x = x; + } + + + public ISize y(Integer y) { + this.y = y; + return this; + } + + /** + * Get y + * @return y + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_Y) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Integer getY() { + return y; } - public VCellServerID serverID(String serverID) { - this.serverID = serverID; + + @JsonProperty(JSON_PROPERTY_Y) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setY(Integer y) { + this.y = y; + } + + + public ISize z(Integer z) { + this.z = z; return this; } /** - * Get serverID - * @return serverID + * Get z + * @return z **/ @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_SERVER_I_D) + @JsonProperty(JSON_PROPERTY_Z) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public String getServerID() { - return serverID; + public Integer getZ() { + return z; } - @JsonProperty(JSON_PROPERTY_SERVER_I_D) + @JsonProperty(JSON_PROPERTY_Z) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setServerID(String serverID) { - this.serverID = serverID; + public void setZ(Integer z) { + this.z = z; } /** - * Return true if this VCellServerID object is equal to o. + * Return true if this ISize object is equal to o. */ @Override public boolean equals(Object o) { @@ -78,20 +136,24 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - VCellServerID vcellServerID = (VCellServerID) o; - return Objects.equals(this.serverID, vcellServerID.serverID); + ISize isize = (ISize) o; + return Objects.equals(this.x, isize.x) && + Objects.equals(this.y, isize.y) && + Objects.equals(this.z, isize.z); } @Override public int hashCode() { - return Objects.hash(serverID); + return Objects.hash(x, y, z); } @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class VCellServerID {\n"); - sb.append(" serverID: ").append(toIndentedString(serverID)).append("\n"); + sb.append("class ISize {\n"); + sb.append(" x: ").append(toIndentedString(x)).append("\n"); + sb.append(" y: ").append(toIndentedString(y)).append("\n"); + sb.append(" z: ").append(toIndentedString(z)).append("\n"); sb.append("}"); return sb.toString(); } @@ -139,9 +201,19 @@ public String toUrlQueryString(String prefix) { StringJoiner joiner = new StringJoiner("&"); - // add `serverID` to the URL query string - if (getServerID() != null) { - joiner.add(String.format("%sserverID%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getServerID()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + // add `x` to the URL query string + if (getX() != null) { + joiner.add(String.format("%sx%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getX()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `y` to the URL query string + if (getY() != null) { + joiner.add(String.format("%sy%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getY()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `z` to the URL query string + if (getZ() != null) { + joiner.add(String.format("%sz%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getZ()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); } return joiner.toString(); diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/Origin.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/Origin.java new file mode 100644 index 0000000000..771e92539c --- /dev/null +++ b/vcell-restclient/src/main/java/org/vcell/restclient/model/Origin.java @@ -0,0 +1,222 @@ +/* + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.vcell.restclient.model; + +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.StringJoiner; +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Arrays; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + + +/** + * Origin + */ +@JsonPropertyOrder({ + Origin.JSON_PROPERTY_X, + Origin.JSON_PROPERTY_Y, + Origin.JSON_PROPERTY_Z +}) +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class Origin { + public static final String JSON_PROPERTY_X = "x"; + private Double x; + + public static final String JSON_PROPERTY_Y = "y"; + private Double y; + + public static final String JSON_PROPERTY_Z = "z"; + private Double z; + + public Origin() { + } + + public Origin x(Double x) { + this.x = x; + return this; + } + + /** + * Get x + * @return x + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_X) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Double getX() { + return x; + } + + + @JsonProperty(JSON_PROPERTY_X) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setX(Double x) { + this.x = x; + } + + + public Origin y(Double y) { + this.y = y; + return this; + } + + /** + * Get y + * @return y + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_Y) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Double getY() { + return y; + } + + + @JsonProperty(JSON_PROPERTY_Y) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setY(Double y) { + this.y = y; + } + + + public Origin z(Double z) { + this.z = z; + return this; + } + + /** + * Get z + * @return z + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_Z) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Double getZ() { + return z; + } + + + @JsonProperty(JSON_PROPERTY_Z) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setZ(Double z) { + this.z = z; + } + + + /** + * Return true if this Origin object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Origin origin = (Origin) o; + return Objects.equals(this.x, origin.x) && + Objects.equals(this.y, origin.y) && + Objects.equals(this.z, origin.z); + } + + @Override + public int hashCode() { + return Objects.hash(x, y, z); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Origin {\n"); + sb.append(" x: ").append(toIndentedString(x)).append("\n"); + sb.append(" y: ").append(toIndentedString(y)).append("\n"); + sb.append(" z: ").append(toIndentedString(z)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `x` to the URL query string + if (getX() != null) { + joiner.add(String.format("%sx%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getX()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `y` to the URL query string + if (getY() != null) { + joiner.add(String.format("%sy%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getY()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `z` to the URL query string + if (getZ() != null) { + joiner.add(String.format("%sz%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getZ()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + return joiner.toString(); + } +} + diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/OverrideRepresentation.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/OverrideRepresentation.java deleted file mode 100644 index ba4cf37c01..0000000000 --- a/vcell-restclient/src/main/java/org/vcell/restclient/model/OverrideRepresentation.java +++ /dev/null @@ -1,308 +0,0 @@ -/* - * VCell API - * VCell API - * - * The version of the OpenAPI document: 1.0.1 - * Contact: vcell_support@uchc.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -package org.vcell.restclient.model; - -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; -import java.util.StringJoiner; -import java.util.Objects; -import java.util.Map; -import java.util.HashMap; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.annotation.JsonValue; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - - -/** - * OverrideRepresentation - */ -@JsonPropertyOrder({ - OverrideRepresentation.JSON_PROPERTY_NAME, - OverrideRepresentation.JSON_PROPERTY_TYPE, - OverrideRepresentation.JSON_PROPERTY_EXPRESSION, - OverrideRepresentation.JSON_PROPERTY_VALUES, - OverrideRepresentation.JSON_PROPERTY_CARDINALITY -}) -@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") -public class OverrideRepresentation { - public static final String JSON_PROPERTY_NAME = "name"; - private String name; - - public static final String JSON_PROPERTY_TYPE = "type"; - private String type; - - public static final String JSON_PROPERTY_EXPRESSION = "expression"; - private String expression; - - public static final String JSON_PROPERTY_VALUES = "values"; - private List values; - - public static final String JSON_PROPERTY_CARDINALITY = "cardinality"; - private Integer cardinality; - - public OverrideRepresentation() { - } - - public OverrideRepresentation name(String name) { - this.name = name; - return this; - } - - /** - * Get name - * @return name - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_NAME) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getName() { - return name; - } - - - @JsonProperty(JSON_PROPERTY_NAME) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setName(String name) { - this.name = name; - } - - - public OverrideRepresentation type(String type) { - this.type = type; - return this; - } - - /** - * Get type - * @return type - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_TYPE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getType() { - return type; - } - - - @JsonProperty(JSON_PROPERTY_TYPE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setType(String type) { - this.type = type; - } - - - public OverrideRepresentation expression(String expression) { - this.expression = expression; - return this; - } - - /** - * Get expression - * @return expression - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_EXPRESSION) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getExpression() { - return expression; - } - - - @JsonProperty(JSON_PROPERTY_EXPRESSION) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setExpression(String expression) { - this.expression = expression; - } - - - public OverrideRepresentation values(List values) { - this.values = values; - return this; - } - - public OverrideRepresentation addValuesItem(String valuesItem) { - if (this.values == null) { - this.values = new ArrayList<>(); - } - this.values.add(valuesItem); - return this; - } - - /** - * Get values - * @return values - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_VALUES) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public List getValues() { - return values; - } - - - @JsonProperty(JSON_PROPERTY_VALUES) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setValues(List values) { - this.values = values; - } - - - public OverrideRepresentation cardinality(Integer cardinality) { - this.cardinality = cardinality; - return this; - } - - /** - * Get cardinality - * @return cardinality - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_CARDINALITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Integer getCardinality() { - return cardinality; - } - - - @JsonProperty(JSON_PROPERTY_CARDINALITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setCardinality(Integer cardinality) { - this.cardinality = cardinality; - } - - - /** - * Return true if this OverrideRepresentation object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - OverrideRepresentation overrideRepresentation = (OverrideRepresentation) o; - return Objects.equals(this.name, overrideRepresentation.name) && - Objects.equals(this.type, overrideRepresentation.type) && - Objects.equals(this.expression, overrideRepresentation.expression) && - Objects.equals(this.values, overrideRepresentation.values) && - Objects.equals(this.cardinality, overrideRepresentation.cardinality); - } - - @Override - public int hashCode() { - return Objects.hash(name, type, expression, values, cardinality); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class OverrideRepresentation {\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); - sb.append(" type: ").append(toIndentedString(type)).append("\n"); - sb.append(" expression: ").append(toIndentedString(expression)).append("\n"); - sb.append(" values: ").append(toIndentedString(values)).append("\n"); - sb.append(" cardinality: ").append(toIndentedString(cardinality)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - /** - * Convert the instance into URL query string. - * - * @return URL query string - */ - public String toUrlQueryString() { - return toUrlQueryString(null); - } - - /** - * Convert the instance into URL query string. - * - * @param prefix prefix of the query string - * @return URL query string - */ - public String toUrlQueryString(String prefix) { - String suffix = ""; - String containerSuffix = ""; - String containerPrefix = ""; - if (prefix == null) { - // style=form, explode=true, e.g. /pet?name=cat&type=manx - prefix = ""; - } else { - // deepObject style e.g. /pet?id[name]=cat&id[type]=manx - prefix = prefix + "["; - suffix = "]"; - containerSuffix = "]"; - containerPrefix = "["; - } - - StringJoiner joiner = new StringJoiner("&"); - - // add `name` to the URL query string - if (getName() != null) { - joiner.add(String.format("%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `type` to the URL query string - if (getType() != null) { - joiner.add(String.format("%stype%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getType()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `expression` to the URL query string - if (getExpression() != null) { - joiner.add(String.format("%sexpression%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getExpression()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `values` to the URL query string - if (getValues() != null) { - for (int i = 0; i < getValues().size(); i++) { - joiner.add(String.format("%svalues%s%s=%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix), - URLEncoder.encode(String.valueOf(getValues().get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - } - - // add `cardinality` to the URL query string - if (getCardinality() != null) { - joiner.add(String.format("%scardinality%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getCardinality()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - return joiner.toString(); - } -} - diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/SimulationExecutionStatus.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/SimulationExecutionStatus.java deleted file mode 100644 index 6954adb7df..0000000000 --- a/vcell-restclient/src/main/java/org/vcell/restclient/model/SimulationExecutionStatus.java +++ /dev/null @@ -1,512 +0,0 @@ -/* - * VCell API - * VCell API - * - * The version of the OpenAPI document: 1.0.1 - * Contact: vcell_support@uchc.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -package org.vcell.restclient.model; - -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; -import java.util.StringJoiner; -import java.util.Objects; -import java.util.Map; -import java.util.HashMap; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.annotation.JsonValue; -import java.time.LocalDate; -import java.util.Arrays; -import org.vcell.restclient.model.HtcJobID; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - - -/** - * SimulationExecutionStatus - */ -@JsonPropertyOrder({ - SimulationExecutionStatus.JSON_PROPERTY_FIELD_START_DATE, - SimulationExecutionStatus.JSON_PROPERTY_FIELD_LATEST_UPDATE_DATE, - SimulationExecutionStatus.JSON_PROPERTY_FIELD_END_DATE, - SimulationExecutionStatus.JSON_PROPERTY_FIELD_COMPUTE_HOST, - SimulationExecutionStatus.JSON_PROPERTY_FIELD_HAS_DATA, - SimulationExecutionStatus.JSON_PROPERTY_FIELD_HTC_JOB_I_D, - SimulationExecutionStatus.JSON_PROPERTY_COMPUTE_HOST, - SimulationExecutionStatus.JSON_PROPERTY_END_DATE, - SimulationExecutionStatus.JSON_PROPERTY_LATEST_UPDATE_DATE, - SimulationExecutionStatus.JSON_PROPERTY_START_DATE, - SimulationExecutionStatus.JSON_PROPERTY_HTC_JOB_I_D -}) -@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") -public class SimulationExecutionStatus { - public static final String JSON_PROPERTY_FIELD_START_DATE = "fieldStartDate"; - private LocalDate fieldStartDate; - - public static final String JSON_PROPERTY_FIELD_LATEST_UPDATE_DATE = "fieldLatestUpdateDate"; - private LocalDate fieldLatestUpdateDate; - - public static final String JSON_PROPERTY_FIELD_END_DATE = "fieldEndDate"; - private LocalDate fieldEndDate; - - public static final String JSON_PROPERTY_FIELD_COMPUTE_HOST = "fieldComputeHost"; - private String fieldComputeHost; - - public static final String JSON_PROPERTY_FIELD_HAS_DATA = "fieldHasData"; - private Boolean fieldHasData; - - public static final String JSON_PROPERTY_FIELD_HTC_JOB_I_D = "fieldHtcJobID"; - private HtcJobID fieldHtcJobID; - - public static final String JSON_PROPERTY_COMPUTE_HOST = "computeHost"; - private String computeHost; - - public static final String JSON_PROPERTY_END_DATE = "endDate"; - private LocalDate endDate; - - public static final String JSON_PROPERTY_LATEST_UPDATE_DATE = "latestUpdateDate"; - private LocalDate latestUpdateDate; - - public static final String JSON_PROPERTY_START_DATE = "startDate"; - private LocalDate startDate; - - public static final String JSON_PROPERTY_HTC_JOB_I_D = "htcJobID"; - private HtcJobID htcJobID; - - public SimulationExecutionStatus() { - } - - public SimulationExecutionStatus fieldStartDate(LocalDate fieldStartDate) { - this.fieldStartDate = fieldStartDate; - return this; - } - - /** - * Get fieldStartDate - * @return fieldStartDate - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_START_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public LocalDate getFieldStartDate() { - return fieldStartDate; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_START_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldStartDate(LocalDate fieldStartDate) { - this.fieldStartDate = fieldStartDate; - } - - - public SimulationExecutionStatus fieldLatestUpdateDate(LocalDate fieldLatestUpdateDate) { - this.fieldLatestUpdateDate = fieldLatestUpdateDate; - return this; - } - - /** - * Get fieldLatestUpdateDate - * @return fieldLatestUpdateDate - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_LATEST_UPDATE_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public LocalDate getFieldLatestUpdateDate() { - return fieldLatestUpdateDate; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_LATEST_UPDATE_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldLatestUpdateDate(LocalDate fieldLatestUpdateDate) { - this.fieldLatestUpdateDate = fieldLatestUpdateDate; - } - - - public SimulationExecutionStatus fieldEndDate(LocalDate fieldEndDate) { - this.fieldEndDate = fieldEndDate; - return this; - } - - /** - * Get fieldEndDate - * @return fieldEndDate - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_END_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public LocalDate getFieldEndDate() { - return fieldEndDate; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_END_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldEndDate(LocalDate fieldEndDate) { - this.fieldEndDate = fieldEndDate; - } - - - public SimulationExecutionStatus fieldComputeHost(String fieldComputeHost) { - this.fieldComputeHost = fieldComputeHost; - return this; - } - - /** - * Get fieldComputeHost - * @return fieldComputeHost - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_COMPUTE_HOST) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getFieldComputeHost() { - return fieldComputeHost; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_COMPUTE_HOST) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldComputeHost(String fieldComputeHost) { - this.fieldComputeHost = fieldComputeHost; - } - - - public SimulationExecutionStatus fieldHasData(Boolean fieldHasData) { - this.fieldHasData = fieldHasData; - return this; - } - - /** - * Get fieldHasData - * @return fieldHasData - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_HAS_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getFieldHasData() { - return fieldHasData; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_HAS_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldHasData(Boolean fieldHasData) { - this.fieldHasData = fieldHasData; - } - - - public SimulationExecutionStatus fieldHtcJobID(HtcJobID fieldHtcJobID) { - this.fieldHtcJobID = fieldHtcJobID; - return this; - } - - /** - * Get fieldHtcJobID - * @return fieldHtcJobID - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_HTC_JOB_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public HtcJobID getFieldHtcJobID() { - return fieldHtcJobID; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_HTC_JOB_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldHtcJobID(HtcJobID fieldHtcJobID) { - this.fieldHtcJobID = fieldHtcJobID; - } - - - public SimulationExecutionStatus computeHost(String computeHost) { - this.computeHost = computeHost; - return this; - } - - /** - * Get computeHost - * @return computeHost - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_COMPUTE_HOST) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getComputeHost() { - return computeHost; - } - - - @JsonProperty(JSON_PROPERTY_COMPUTE_HOST) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setComputeHost(String computeHost) { - this.computeHost = computeHost; - } - - - public SimulationExecutionStatus endDate(LocalDate endDate) { - this.endDate = endDate; - return this; - } - - /** - * Get endDate - * @return endDate - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_END_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public LocalDate getEndDate() { - return endDate; - } - - - @JsonProperty(JSON_PROPERTY_END_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setEndDate(LocalDate endDate) { - this.endDate = endDate; - } - - - public SimulationExecutionStatus latestUpdateDate(LocalDate latestUpdateDate) { - this.latestUpdateDate = latestUpdateDate; - return this; - } - - /** - * Get latestUpdateDate - * @return latestUpdateDate - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_LATEST_UPDATE_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public LocalDate getLatestUpdateDate() { - return latestUpdateDate; - } - - - @JsonProperty(JSON_PROPERTY_LATEST_UPDATE_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setLatestUpdateDate(LocalDate latestUpdateDate) { - this.latestUpdateDate = latestUpdateDate; - } - - - public SimulationExecutionStatus startDate(LocalDate startDate) { - this.startDate = startDate; - return this; - } - - /** - * Get startDate - * @return startDate - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_START_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public LocalDate getStartDate() { - return startDate; - } - - - @JsonProperty(JSON_PROPERTY_START_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setStartDate(LocalDate startDate) { - this.startDate = startDate; - } - - - public SimulationExecutionStatus htcJobID(HtcJobID htcJobID) { - this.htcJobID = htcJobID; - return this; - } - - /** - * Get htcJobID - * @return htcJobID - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_HTC_JOB_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public HtcJobID getHtcJobID() { - return htcJobID; - } - - - @JsonProperty(JSON_PROPERTY_HTC_JOB_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setHtcJobID(HtcJobID htcJobID) { - this.htcJobID = htcJobID; - } - - - /** - * Return true if this SimulationExecutionStatus object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - SimulationExecutionStatus simulationExecutionStatus = (SimulationExecutionStatus) o; - return Objects.equals(this.fieldStartDate, simulationExecutionStatus.fieldStartDate) && - Objects.equals(this.fieldLatestUpdateDate, simulationExecutionStatus.fieldLatestUpdateDate) && - Objects.equals(this.fieldEndDate, simulationExecutionStatus.fieldEndDate) && - Objects.equals(this.fieldComputeHost, simulationExecutionStatus.fieldComputeHost) && - Objects.equals(this.fieldHasData, simulationExecutionStatus.fieldHasData) && - Objects.equals(this.fieldHtcJobID, simulationExecutionStatus.fieldHtcJobID) && - Objects.equals(this.computeHost, simulationExecutionStatus.computeHost) && - Objects.equals(this.endDate, simulationExecutionStatus.endDate) && - Objects.equals(this.latestUpdateDate, simulationExecutionStatus.latestUpdateDate) && - Objects.equals(this.startDate, simulationExecutionStatus.startDate) && - Objects.equals(this.htcJobID, simulationExecutionStatus.htcJobID); - } - - @Override - public int hashCode() { - return Objects.hash(fieldStartDate, fieldLatestUpdateDate, fieldEndDate, fieldComputeHost, fieldHasData, fieldHtcJobID, computeHost, endDate, latestUpdateDate, startDate, htcJobID); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class SimulationExecutionStatus {\n"); - sb.append(" fieldStartDate: ").append(toIndentedString(fieldStartDate)).append("\n"); - sb.append(" fieldLatestUpdateDate: ").append(toIndentedString(fieldLatestUpdateDate)).append("\n"); - sb.append(" fieldEndDate: ").append(toIndentedString(fieldEndDate)).append("\n"); - sb.append(" fieldComputeHost: ").append(toIndentedString(fieldComputeHost)).append("\n"); - sb.append(" fieldHasData: ").append(toIndentedString(fieldHasData)).append("\n"); - sb.append(" fieldHtcJobID: ").append(toIndentedString(fieldHtcJobID)).append("\n"); - sb.append(" computeHost: ").append(toIndentedString(computeHost)).append("\n"); - sb.append(" endDate: ").append(toIndentedString(endDate)).append("\n"); - sb.append(" latestUpdateDate: ").append(toIndentedString(latestUpdateDate)).append("\n"); - sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); - sb.append(" htcJobID: ").append(toIndentedString(htcJobID)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - /** - * Convert the instance into URL query string. - * - * @return URL query string - */ - public String toUrlQueryString() { - return toUrlQueryString(null); - } - - /** - * Convert the instance into URL query string. - * - * @param prefix prefix of the query string - * @return URL query string - */ - public String toUrlQueryString(String prefix) { - String suffix = ""; - String containerSuffix = ""; - String containerPrefix = ""; - if (prefix == null) { - // style=form, explode=true, e.g. /pet?name=cat&type=manx - prefix = ""; - } else { - // deepObject style e.g. /pet?id[name]=cat&id[type]=manx - prefix = prefix + "["; - suffix = "]"; - containerSuffix = "]"; - containerPrefix = "["; - } - - StringJoiner joiner = new StringJoiner("&"); - - // add `fieldStartDate` to the URL query string - if (getFieldStartDate() != null) { - joiner.add(String.format("%sfieldStartDate%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFieldStartDate()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `fieldLatestUpdateDate` to the URL query string - if (getFieldLatestUpdateDate() != null) { - joiner.add(String.format("%sfieldLatestUpdateDate%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFieldLatestUpdateDate()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `fieldEndDate` to the URL query string - if (getFieldEndDate() != null) { - joiner.add(String.format("%sfieldEndDate%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFieldEndDate()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `fieldComputeHost` to the URL query string - if (getFieldComputeHost() != null) { - joiner.add(String.format("%sfieldComputeHost%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFieldComputeHost()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `fieldHasData` to the URL query string - if (getFieldHasData() != null) { - joiner.add(String.format("%sfieldHasData%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFieldHasData()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `fieldHtcJobID` to the URL query string - if (getFieldHtcJobID() != null) { - joiner.add(getFieldHtcJobID().toUrlQueryString(prefix + "fieldHtcJobID" + suffix)); - } - - // add `computeHost` to the URL query string - if (getComputeHost() != null) { - joiner.add(String.format("%scomputeHost%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getComputeHost()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `endDate` to the URL query string - if (getEndDate() != null) { - joiner.add(String.format("%sendDate%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getEndDate()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `latestUpdateDate` to the URL query string - if (getLatestUpdateDate() != null) { - joiner.add(String.format("%slatestUpdateDate%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLatestUpdateDate()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `startDate` to the URL query string - if (getStartDate() != null) { - joiner.add(String.format("%sstartDate%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getStartDate()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `htcJobID` to the URL query string - if (getHtcJobID() != null) { - joiner.add(getHtcJobID().toUrlQueryString(prefix + "htcJobID" + suffix)); - } - - return joiner.toString(); - } -} - diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/SimulationJobStatus.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/SimulationJobStatus.java deleted file mode 100644 index 7866d29e1c..0000000000 --- a/vcell-restclient/src/main/java/org/vcell/restclient/model/SimulationJobStatus.java +++ /dev/null @@ -1,949 +0,0 @@ -/* - * VCell API - * VCell API - * - * The version of the OpenAPI document: 1.0.1 - * Contact: vcell_support@uchc.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -package org.vcell.restclient.model; - -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; -import java.util.StringJoiner; -import java.util.Objects; -import java.util.Map; -import java.util.HashMap; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.annotation.JsonValue; -import java.time.LocalDate; -import java.util.Arrays; -import org.vcell.restclient.model.SchedulerStatus; -import org.vcell.restclient.model.SimulationExecutionStatus; -import org.vcell.restclient.model.SimulationMessage; -import org.vcell.restclient.model.SimulationQueueEntryStatus; -import org.vcell.restclient.model.VCSimulationIdentifier; -import org.vcell.restclient.model.VCellServerID; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - - -/** - * SimulationJobStatus - */ -@JsonPropertyOrder({ - SimulationJobStatus.JSON_PROPERTY_FIELD_TIME_DATE_STAMP, - SimulationJobStatus.JSON_PROPERTY_FIELD_V_C_SIM_I_D, - SimulationJobStatus.JSON_PROPERTY_FIELD_SUBMIT_DATE, - SimulationJobStatus.JSON_PROPERTY_FIELD_SCHEDULER_STATUS, - SimulationJobStatus.JSON_PROPERTY_FIELD_TASK_I_D, - SimulationJobStatus.JSON_PROPERTY_FIELD_SIMULATION_MESSAGE, - SimulationJobStatus.JSON_PROPERTY_FIELD_SERVER_I_D, - SimulationJobStatus.JSON_PROPERTY_FIELD_JOB_INDEX, - SimulationJobStatus.JSON_PROPERTY_FIELD_SIMULATION_QUEUE_ENTRY_STATUS, - SimulationJobStatus.JSON_PROPERTY_FIELD_SIMULATION_EXECUTION_STATUS, - SimulationJobStatus.JSON_PROPERTY_COMPUTE_HOST, - SimulationJobStatus.JSON_PROPERTY_END_DATE, - SimulationJobStatus.JSON_PROPERTY_JOB_INDEX, - SimulationJobStatus.JSON_PROPERTY_SCHEDULER_STATUS, - SimulationJobStatus.JSON_PROPERTY_SERVER_I_D, - SimulationJobStatus.JSON_PROPERTY_SIMULATION_EXECUTION_STATUS, - SimulationJobStatus.JSON_PROPERTY_SIMULATION_QUEUE_ENTRY_STATUS, - SimulationJobStatus.JSON_PROPERTY_START_DATE, - SimulationJobStatus.JSON_PROPERTY_SIMULATION_MESSAGE, - SimulationJobStatus.JSON_PROPERTY_SUBMIT_DATE, - SimulationJobStatus.JSON_PROPERTY_TASK_I_D, - SimulationJobStatus.JSON_PROPERTY_TIME_DATE_STAMP, - SimulationJobStatus.JSON_PROPERTY_V_C_SIMULATION_IDENTIFIER -}) -@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") -public class SimulationJobStatus { - public static final String JSON_PROPERTY_FIELD_TIME_DATE_STAMP = "fieldTimeDateStamp"; - private LocalDate fieldTimeDateStamp; - - public static final String JSON_PROPERTY_FIELD_V_C_SIM_I_D = "fieldVCSimID"; - private VCSimulationIdentifier fieldVCSimID; - - public static final String JSON_PROPERTY_FIELD_SUBMIT_DATE = "fieldSubmitDate"; - private LocalDate fieldSubmitDate; - - public static final String JSON_PROPERTY_FIELD_SCHEDULER_STATUS = "fieldSchedulerStatus"; - private SchedulerStatus fieldSchedulerStatus; - - public static final String JSON_PROPERTY_FIELD_TASK_I_D = "fieldTaskID"; - private Integer fieldTaskID; - - public static final String JSON_PROPERTY_FIELD_SIMULATION_MESSAGE = "fieldSimulationMessage"; - private SimulationMessage fieldSimulationMessage; - - public static final String JSON_PROPERTY_FIELD_SERVER_I_D = "fieldServerID"; - private VCellServerID fieldServerID; - - public static final String JSON_PROPERTY_FIELD_JOB_INDEX = "fieldJobIndex"; - private Integer fieldJobIndex; - - public static final String JSON_PROPERTY_FIELD_SIMULATION_QUEUE_ENTRY_STATUS = "fieldSimulationQueueEntryStatus"; - private SimulationQueueEntryStatus fieldSimulationQueueEntryStatus; - - public static final String JSON_PROPERTY_FIELD_SIMULATION_EXECUTION_STATUS = "fieldSimulationExecutionStatus"; - private SimulationExecutionStatus fieldSimulationExecutionStatus; - - public static final String JSON_PROPERTY_COMPUTE_HOST = "computeHost"; - private String computeHost; - - public static final String JSON_PROPERTY_END_DATE = "endDate"; - private LocalDate endDate; - - public static final String JSON_PROPERTY_JOB_INDEX = "jobIndex"; - private Integer jobIndex; - - public static final String JSON_PROPERTY_SCHEDULER_STATUS = "schedulerStatus"; - private SchedulerStatus schedulerStatus; - - public static final String JSON_PROPERTY_SERVER_I_D = "serverID"; - private VCellServerID serverID; - - public static final String JSON_PROPERTY_SIMULATION_EXECUTION_STATUS = "simulationExecutionStatus"; - private SimulationExecutionStatus simulationExecutionStatus; - - public static final String JSON_PROPERTY_SIMULATION_QUEUE_ENTRY_STATUS = "simulationQueueEntryStatus"; - private SimulationQueueEntryStatus simulationQueueEntryStatus; - - public static final String JSON_PROPERTY_START_DATE = "startDate"; - private LocalDate startDate; - - public static final String JSON_PROPERTY_SIMULATION_MESSAGE = "simulationMessage"; - private SimulationMessage simulationMessage; - - public static final String JSON_PROPERTY_SUBMIT_DATE = "submitDate"; - private LocalDate submitDate; - - public static final String JSON_PROPERTY_TASK_I_D = "taskID"; - private Integer taskID; - - public static final String JSON_PROPERTY_TIME_DATE_STAMP = "timeDateStamp"; - private LocalDate timeDateStamp; - - public static final String JSON_PROPERTY_V_C_SIMULATION_IDENTIFIER = "vCSimulationIdentifier"; - private VCSimulationIdentifier vCSimulationIdentifier; - - public SimulationJobStatus() { - } - - public SimulationJobStatus fieldTimeDateStamp(LocalDate fieldTimeDateStamp) { - this.fieldTimeDateStamp = fieldTimeDateStamp; - return this; - } - - /** - * Get fieldTimeDateStamp - * @return fieldTimeDateStamp - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_TIME_DATE_STAMP) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public LocalDate getFieldTimeDateStamp() { - return fieldTimeDateStamp; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_TIME_DATE_STAMP) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldTimeDateStamp(LocalDate fieldTimeDateStamp) { - this.fieldTimeDateStamp = fieldTimeDateStamp; - } - - - public SimulationJobStatus fieldVCSimID(VCSimulationIdentifier fieldVCSimID) { - this.fieldVCSimID = fieldVCSimID; - return this; - } - - /** - * Get fieldVCSimID - * @return fieldVCSimID - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_V_C_SIM_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public VCSimulationIdentifier getFieldVCSimID() { - return fieldVCSimID; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_V_C_SIM_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldVCSimID(VCSimulationIdentifier fieldVCSimID) { - this.fieldVCSimID = fieldVCSimID; - } - - - public SimulationJobStatus fieldSubmitDate(LocalDate fieldSubmitDate) { - this.fieldSubmitDate = fieldSubmitDate; - return this; - } - - /** - * Get fieldSubmitDate - * @return fieldSubmitDate - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_SUBMIT_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public LocalDate getFieldSubmitDate() { - return fieldSubmitDate; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_SUBMIT_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldSubmitDate(LocalDate fieldSubmitDate) { - this.fieldSubmitDate = fieldSubmitDate; - } - - - public SimulationJobStatus fieldSchedulerStatus(SchedulerStatus fieldSchedulerStatus) { - this.fieldSchedulerStatus = fieldSchedulerStatus; - return this; - } - - /** - * Get fieldSchedulerStatus - * @return fieldSchedulerStatus - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_SCHEDULER_STATUS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public SchedulerStatus getFieldSchedulerStatus() { - return fieldSchedulerStatus; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_SCHEDULER_STATUS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldSchedulerStatus(SchedulerStatus fieldSchedulerStatus) { - this.fieldSchedulerStatus = fieldSchedulerStatus; - } - - - public SimulationJobStatus fieldTaskID(Integer fieldTaskID) { - this.fieldTaskID = fieldTaskID; - return this; - } - - /** - * Get fieldTaskID - * @return fieldTaskID - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_TASK_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Integer getFieldTaskID() { - return fieldTaskID; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_TASK_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldTaskID(Integer fieldTaskID) { - this.fieldTaskID = fieldTaskID; - } - - - public SimulationJobStatus fieldSimulationMessage(SimulationMessage fieldSimulationMessage) { - this.fieldSimulationMessage = fieldSimulationMessage; - return this; - } - - /** - * Get fieldSimulationMessage - * @return fieldSimulationMessage - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_SIMULATION_MESSAGE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public SimulationMessage getFieldSimulationMessage() { - return fieldSimulationMessage; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_SIMULATION_MESSAGE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldSimulationMessage(SimulationMessage fieldSimulationMessage) { - this.fieldSimulationMessage = fieldSimulationMessage; - } - - - public SimulationJobStatus fieldServerID(VCellServerID fieldServerID) { - this.fieldServerID = fieldServerID; - return this; - } - - /** - * Get fieldServerID - * @return fieldServerID - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_SERVER_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public VCellServerID getFieldServerID() { - return fieldServerID; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_SERVER_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldServerID(VCellServerID fieldServerID) { - this.fieldServerID = fieldServerID; - } - - - public SimulationJobStatus fieldJobIndex(Integer fieldJobIndex) { - this.fieldJobIndex = fieldJobIndex; - return this; - } - - /** - * Get fieldJobIndex - * @return fieldJobIndex - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_JOB_INDEX) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Integer getFieldJobIndex() { - return fieldJobIndex; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_JOB_INDEX) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldJobIndex(Integer fieldJobIndex) { - this.fieldJobIndex = fieldJobIndex; - } - - - public SimulationJobStatus fieldSimulationQueueEntryStatus(SimulationQueueEntryStatus fieldSimulationQueueEntryStatus) { - this.fieldSimulationQueueEntryStatus = fieldSimulationQueueEntryStatus; - return this; - } - - /** - * Get fieldSimulationQueueEntryStatus - * @return fieldSimulationQueueEntryStatus - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_SIMULATION_QUEUE_ENTRY_STATUS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public SimulationQueueEntryStatus getFieldSimulationQueueEntryStatus() { - return fieldSimulationQueueEntryStatus; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_SIMULATION_QUEUE_ENTRY_STATUS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldSimulationQueueEntryStatus(SimulationQueueEntryStatus fieldSimulationQueueEntryStatus) { - this.fieldSimulationQueueEntryStatus = fieldSimulationQueueEntryStatus; - } - - - public SimulationJobStatus fieldSimulationExecutionStatus(SimulationExecutionStatus fieldSimulationExecutionStatus) { - this.fieldSimulationExecutionStatus = fieldSimulationExecutionStatus; - return this; - } - - /** - * Get fieldSimulationExecutionStatus - * @return fieldSimulationExecutionStatus - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_SIMULATION_EXECUTION_STATUS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public SimulationExecutionStatus getFieldSimulationExecutionStatus() { - return fieldSimulationExecutionStatus; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_SIMULATION_EXECUTION_STATUS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldSimulationExecutionStatus(SimulationExecutionStatus fieldSimulationExecutionStatus) { - this.fieldSimulationExecutionStatus = fieldSimulationExecutionStatus; - } - - - public SimulationJobStatus computeHost(String computeHost) { - this.computeHost = computeHost; - return this; - } - - /** - * Get computeHost - * @return computeHost - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_COMPUTE_HOST) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getComputeHost() { - return computeHost; - } - - - @JsonProperty(JSON_PROPERTY_COMPUTE_HOST) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setComputeHost(String computeHost) { - this.computeHost = computeHost; - } - - - public SimulationJobStatus endDate(LocalDate endDate) { - this.endDate = endDate; - return this; - } - - /** - * Get endDate - * @return endDate - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_END_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public LocalDate getEndDate() { - return endDate; - } - - - @JsonProperty(JSON_PROPERTY_END_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setEndDate(LocalDate endDate) { - this.endDate = endDate; - } - - - public SimulationJobStatus jobIndex(Integer jobIndex) { - this.jobIndex = jobIndex; - return this; - } - - /** - * Get jobIndex - * @return jobIndex - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_JOB_INDEX) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Integer getJobIndex() { - return jobIndex; - } - - - @JsonProperty(JSON_PROPERTY_JOB_INDEX) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setJobIndex(Integer jobIndex) { - this.jobIndex = jobIndex; - } - - - public SimulationJobStatus schedulerStatus(SchedulerStatus schedulerStatus) { - this.schedulerStatus = schedulerStatus; - return this; - } - - /** - * Get schedulerStatus - * @return schedulerStatus - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_SCHEDULER_STATUS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public SchedulerStatus getSchedulerStatus() { - return schedulerStatus; - } - - - @JsonProperty(JSON_PROPERTY_SCHEDULER_STATUS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setSchedulerStatus(SchedulerStatus schedulerStatus) { - this.schedulerStatus = schedulerStatus; - } - - - public SimulationJobStatus serverID(VCellServerID serverID) { - this.serverID = serverID; - return this; - } - - /** - * Get serverID - * @return serverID - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_SERVER_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public VCellServerID getServerID() { - return serverID; - } - - - @JsonProperty(JSON_PROPERTY_SERVER_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setServerID(VCellServerID serverID) { - this.serverID = serverID; - } - - - public SimulationJobStatus simulationExecutionStatus(SimulationExecutionStatus simulationExecutionStatus) { - this.simulationExecutionStatus = simulationExecutionStatus; - return this; - } - - /** - * Get simulationExecutionStatus - * @return simulationExecutionStatus - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_SIMULATION_EXECUTION_STATUS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public SimulationExecutionStatus getSimulationExecutionStatus() { - return simulationExecutionStatus; - } - - - @JsonProperty(JSON_PROPERTY_SIMULATION_EXECUTION_STATUS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setSimulationExecutionStatus(SimulationExecutionStatus simulationExecutionStatus) { - this.simulationExecutionStatus = simulationExecutionStatus; - } - - - public SimulationJobStatus simulationQueueEntryStatus(SimulationQueueEntryStatus simulationQueueEntryStatus) { - this.simulationQueueEntryStatus = simulationQueueEntryStatus; - return this; - } - - /** - * Get simulationQueueEntryStatus - * @return simulationQueueEntryStatus - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_SIMULATION_QUEUE_ENTRY_STATUS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public SimulationQueueEntryStatus getSimulationQueueEntryStatus() { - return simulationQueueEntryStatus; - } - - - @JsonProperty(JSON_PROPERTY_SIMULATION_QUEUE_ENTRY_STATUS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setSimulationQueueEntryStatus(SimulationQueueEntryStatus simulationQueueEntryStatus) { - this.simulationQueueEntryStatus = simulationQueueEntryStatus; - } - - - public SimulationJobStatus startDate(LocalDate startDate) { - this.startDate = startDate; - return this; - } - - /** - * Get startDate - * @return startDate - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_START_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public LocalDate getStartDate() { - return startDate; - } - - - @JsonProperty(JSON_PROPERTY_START_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setStartDate(LocalDate startDate) { - this.startDate = startDate; - } - - - public SimulationJobStatus simulationMessage(SimulationMessage simulationMessage) { - this.simulationMessage = simulationMessage; - return this; - } - - /** - * Get simulationMessage - * @return simulationMessage - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_SIMULATION_MESSAGE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public SimulationMessage getSimulationMessage() { - return simulationMessage; - } - - - @JsonProperty(JSON_PROPERTY_SIMULATION_MESSAGE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setSimulationMessage(SimulationMessage simulationMessage) { - this.simulationMessage = simulationMessage; - } - - - public SimulationJobStatus submitDate(LocalDate submitDate) { - this.submitDate = submitDate; - return this; - } - - /** - * Get submitDate - * @return submitDate - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_SUBMIT_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public LocalDate getSubmitDate() { - return submitDate; - } - - - @JsonProperty(JSON_PROPERTY_SUBMIT_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setSubmitDate(LocalDate submitDate) { - this.submitDate = submitDate; - } - - - public SimulationJobStatus taskID(Integer taskID) { - this.taskID = taskID; - return this; - } - - /** - * Get taskID - * @return taskID - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_TASK_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Integer getTaskID() { - return taskID; - } - - - @JsonProperty(JSON_PROPERTY_TASK_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setTaskID(Integer taskID) { - this.taskID = taskID; - } - - - public SimulationJobStatus timeDateStamp(LocalDate timeDateStamp) { - this.timeDateStamp = timeDateStamp; - return this; - } - - /** - * Get timeDateStamp - * @return timeDateStamp - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_TIME_DATE_STAMP) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public LocalDate getTimeDateStamp() { - return timeDateStamp; - } - - - @JsonProperty(JSON_PROPERTY_TIME_DATE_STAMP) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setTimeDateStamp(LocalDate timeDateStamp) { - this.timeDateStamp = timeDateStamp; - } - - - public SimulationJobStatus vCSimulationIdentifier(VCSimulationIdentifier vCSimulationIdentifier) { - this.vCSimulationIdentifier = vCSimulationIdentifier; - return this; - } - - /** - * Get vCSimulationIdentifier - * @return vCSimulationIdentifier - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_V_C_SIMULATION_IDENTIFIER) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public VCSimulationIdentifier getvCSimulationIdentifier() { - return vCSimulationIdentifier; - } - - - @JsonProperty(JSON_PROPERTY_V_C_SIMULATION_IDENTIFIER) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setvCSimulationIdentifier(VCSimulationIdentifier vCSimulationIdentifier) { - this.vCSimulationIdentifier = vCSimulationIdentifier; - } - - - /** - * Return true if this SimulationJobStatus object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - SimulationJobStatus simulationJobStatus = (SimulationJobStatus) o; - return Objects.equals(this.fieldTimeDateStamp, simulationJobStatus.fieldTimeDateStamp) && - Objects.equals(this.fieldVCSimID, simulationJobStatus.fieldVCSimID) && - Objects.equals(this.fieldSubmitDate, simulationJobStatus.fieldSubmitDate) && - Objects.equals(this.fieldSchedulerStatus, simulationJobStatus.fieldSchedulerStatus) && - Objects.equals(this.fieldTaskID, simulationJobStatus.fieldTaskID) && - Objects.equals(this.fieldSimulationMessage, simulationJobStatus.fieldSimulationMessage) && - Objects.equals(this.fieldServerID, simulationJobStatus.fieldServerID) && - Objects.equals(this.fieldJobIndex, simulationJobStatus.fieldJobIndex) && - Objects.equals(this.fieldSimulationQueueEntryStatus, simulationJobStatus.fieldSimulationQueueEntryStatus) && - Objects.equals(this.fieldSimulationExecutionStatus, simulationJobStatus.fieldSimulationExecutionStatus) && - Objects.equals(this.computeHost, simulationJobStatus.computeHost) && - Objects.equals(this.endDate, simulationJobStatus.endDate) && - Objects.equals(this.jobIndex, simulationJobStatus.jobIndex) && - Objects.equals(this.schedulerStatus, simulationJobStatus.schedulerStatus) && - Objects.equals(this.serverID, simulationJobStatus.serverID) && - Objects.equals(this.simulationExecutionStatus, simulationJobStatus.simulationExecutionStatus) && - Objects.equals(this.simulationQueueEntryStatus, simulationJobStatus.simulationQueueEntryStatus) && - Objects.equals(this.startDate, simulationJobStatus.startDate) && - Objects.equals(this.simulationMessage, simulationJobStatus.simulationMessage) && - Objects.equals(this.submitDate, simulationJobStatus.submitDate) && - Objects.equals(this.taskID, simulationJobStatus.taskID) && - Objects.equals(this.timeDateStamp, simulationJobStatus.timeDateStamp) && - Objects.equals(this.vCSimulationIdentifier, simulationJobStatus.vCSimulationIdentifier); - } - - @Override - public int hashCode() { - return Objects.hash(fieldTimeDateStamp, fieldVCSimID, fieldSubmitDate, fieldSchedulerStatus, fieldTaskID, fieldSimulationMessage, fieldServerID, fieldJobIndex, fieldSimulationQueueEntryStatus, fieldSimulationExecutionStatus, computeHost, endDate, jobIndex, schedulerStatus, serverID, simulationExecutionStatus, simulationQueueEntryStatus, startDate, simulationMessage, submitDate, taskID, timeDateStamp, vCSimulationIdentifier); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class SimulationJobStatus {\n"); - sb.append(" fieldTimeDateStamp: ").append(toIndentedString(fieldTimeDateStamp)).append("\n"); - sb.append(" fieldVCSimID: ").append(toIndentedString(fieldVCSimID)).append("\n"); - sb.append(" fieldSubmitDate: ").append(toIndentedString(fieldSubmitDate)).append("\n"); - sb.append(" fieldSchedulerStatus: ").append(toIndentedString(fieldSchedulerStatus)).append("\n"); - sb.append(" fieldTaskID: ").append(toIndentedString(fieldTaskID)).append("\n"); - sb.append(" fieldSimulationMessage: ").append(toIndentedString(fieldSimulationMessage)).append("\n"); - sb.append(" fieldServerID: ").append(toIndentedString(fieldServerID)).append("\n"); - sb.append(" fieldJobIndex: ").append(toIndentedString(fieldJobIndex)).append("\n"); - sb.append(" fieldSimulationQueueEntryStatus: ").append(toIndentedString(fieldSimulationQueueEntryStatus)).append("\n"); - sb.append(" fieldSimulationExecutionStatus: ").append(toIndentedString(fieldSimulationExecutionStatus)).append("\n"); - sb.append(" computeHost: ").append(toIndentedString(computeHost)).append("\n"); - sb.append(" endDate: ").append(toIndentedString(endDate)).append("\n"); - sb.append(" jobIndex: ").append(toIndentedString(jobIndex)).append("\n"); - sb.append(" schedulerStatus: ").append(toIndentedString(schedulerStatus)).append("\n"); - sb.append(" serverID: ").append(toIndentedString(serverID)).append("\n"); - sb.append(" simulationExecutionStatus: ").append(toIndentedString(simulationExecutionStatus)).append("\n"); - sb.append(" simulationQueueEntryStatus: ").append(toIndentedString(simulationQueueEntryStatus)).append("\n"); - sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); - sb.append(" simulationMessage: ").append(toIndentedString(simulationMessage)).append("\n"); - sb.append(" submitDate: ").append(toIndentedString(submitDate)).append("\n"); - sb.append(" taskID: ").append(toIndentedString(taskID)).append("\n"); - sb.append(" timeDateStamp: ").append(toIndentedString(timeDateStamp)).append("\n"); - sb.append(" vCSimulationIdentifier: ").append(toIndentedString(vCSimulationIdentifier)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - /** - * Convert the instance into URL query string. - * - * @return URL query string - */ - public String toUrlQueryString() { - return toUrlQueryString(null); - } - - /** - * Convert the instance into URL query string. - * - * @param prefix prefix of the query string - * @return URL query string - */ - public String toUrlQueryString(String prefix) { - String suffix = ""; - String containerSuffix = ""; - String containerPrefix = ""; - if (prefix == null) { - // style=form, explode=true, e.g. /pet?name=cat&type=manx - prefix = ""; - } else { - // deepObject style e.g. /pet?id[name]=cat&id[type]=manx - prefix = prefix + "["; - suffix = "]"; - containerSuffix = "]"; - containerPrefix = "["; - } - - StringJoiner joiner = new StringJoiner("&"); - - // add `fieldTimeDateStamp` to the URL query string - if (getFieldTimeDateStamp() != null) { - joiner.add(String.format("%sfieldTimeDateStamp%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFieldTimeDateStamp()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `fieldVCSimID` to the URL query string - if (getFieldVCSimID() != null) { - joiner.add(getFieldVCSimID().toUrlQueryString(prefix + "fieldVCSimID" + suffix)); - } - - // add `fieldSubmitDate` to the URL query string - if (getFieldSubmitDate() != null) { - joiner.add(String.format("%sfieldSubmitDate%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFieldSubmitDate()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `fieldSchedulerStatus` to the URL query string - if (getFieldSchedulerStatus() != null) { - joiner.add(String.format("%sfieldSchedulerStatus%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFieldSchedulerStatus()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `fieldTaskID` to the URL query string - if (getFieldTaskID() != null) { - joiner.add(String.format("%sfieldTaskID%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFieldTaskID()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `fieldSimulationMessage` to the URL query string - if (getFieldSimulationMessage() != null) { - joiner.add(getFieldSimulationMessage().toUrlQueryString(prefix + "fieldSimulationMessage" + suffix)); - } - - // add `fieldServerID` to the URL query string - if (getFieldServerID() != null) { - joiner.add(getFieldServerID().toUrlQueryString(prefix + "fieldServerID" + suffix)); - } - - // add `fieldJobIndex` to the URL query string - if (getFieldJobIndex() != null) { - joiner.add(String.format("%sfieldJobIndex%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFieldJobIndex()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `fieldSimulationQueueEntryStatus` to the URL query string - if (getFieldSimulationQueueEntryStatus() != null) { - joiner.add(getFieldSimulationQueueEntryStatus().toUrlQueryString(prefix + "fieldSimulationQueueEntryStatus" + suffix)); - } - - // add `fieldSimulationExecutionStatus` to the URL query string - if (getFieldSimulationExecutionStatus() != null) { - joiner.add(getFieldSimulationExecutionStatus().toUrlQueryString(prefix + "fieldSimulationExecutionStatus" + suffix)); - } - - // add `computeHost` to the URL query string - if (getComputeHost() != null) { - joiner.add(String.format("%scomputeHost%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getComputeHost()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `endDate` to the URL query string - if (getEndDate() != null) { - joiner.add(String.format("%sendDate%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getEndDate()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `jobIndex` to the URL query string - if (getJobIndex() != null) { - joiner.add(String.format("%sjobIndex%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getJobIndex()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `schedulerStatus` to the URL query string - if (getSchedulerStatus() != null) { - joiner.add(String.format("%sschedulerStatus%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getSchedulerStatus()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `serverID` to the URL query string - if (getServerID() != null) { - joiner.add(getServerID().toUrlQueryString(prefix + "serverID" + suffix)); - } - - // add `simulationExecutionStatus` to the URL query string - if (getSimulationExecutionStatus() != null) { - joiner.add(getSimulationExecutionStatus().toUrlQueryString(prefix + "simulationExecutionStatus" + suffix)); - } - - // add `simulationQueueEntryStatus` to the URL query string - if (getSimulationQueueEntryStatus() != null) { - joiner.add(getSimulationQueueEntryStatus().toUrlQueryString(prefix + "simulationQueueEntryStatus" + suffix)); - } - - // add `startDate` to the URL query string - if (getStartDate() != null) { - joiner.add(String.format("%sstartDate%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getStartDate()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `simulationMessage` to the URL query string - if (getSimulationMessage() != null) { - joiner.add(getSimulationMessage().toUrlQueryString(prefix + "simulationMessage" + suffix)); - } - - // add `submitDate` to the URL query string - if (getSubmitDate() != null) { - joiner.add(String.format("%ssubmitDate%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getSubmitDate()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `taskID` to the URL query string - if (getTaskID() != null) { - joiner.add(String.format("%staskID%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTaskID()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `timeDateStamp` to the URL query string - if (getTimeDateStamp() != null) { - joiner.add(String.format("%stimeDateStamp%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTimeDateStamp()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `vCSimulationIdentifier` to the URL query string - if (getvCSimulationIdentifier() != null) { - joiner.add(getvCSimulationIdentifier().toUrlQueryString(prefix + "vCSimulationIdentifier" + suffix)); - } - - return joiner.toString(); - } -} - diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/SimulationQueueEntryStatus.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/SimulationQueueEntryStatus.java deleted file mode 100644 index d6080ab8b1..0000000000 --- a/vcell-restclient/src/main/java/org/vcell/restclient/model/SimulationQueueEntryStatus.java +++ /dev/null @@ -1,329 +0,0 @@ -/* - * VCell API - * VCell API - * - * The version of the OpenAPI document: 1.0.1 - * Contact: vcell_support@uchc.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -package org.vcell.restclient.model; - -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; -import java.util.StringJoiner; -import java.util.Objects; -import java.util.Map; -import java.util.HashMap; - -import com.fasterxml.jackson.annotation.*; - -import java.time.LocalDate; -import java.util.Arrays; -import org.vcell.restclient.model.SimulationQueueID; - - -/** - * SimulationQueueEntryStatus - */ -@JsonPropertyOrder({ - SimulationQueueEntryStatus.JSON_PROPERTY_FIELD_QUEUE_PRIORITY, - SimulationQueueEntryStatus.JSON_PROPERTY_FIELD_QUEUE_DATE, - SimulationQueueEntryStatus.JSON_PROPERTY_FIELD_QUEUE_I_D, - SimulationQueueEntryStatus.JSON_PROPERTY_QUEUE_DATE, - SimulationQueueEntryStatus.JSON_PROPERTY_QUEUE_I_D, - SimulationQueueEntryStatus.JSON_PROPERTY_QUEUE_PRIORITY -}) -@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") -public class SimulationQueueEntryStatus { - public static final String JSON_PROPERTY_FIELD_QUEUE_PRIORITY = "fieldQueuePriority"; - private Integer fieldQueuePriority; - - public static final String JSON_PROPERTY_FIELD_QUEUE_DATE = "fieldQueueDate"; - private LocalDate fieldQueueDate; - - public static final String JSON_PROPERTY_FIELD_QUEUE_I_D = "fieldQueueID"; - private SimulationQueueID fieldQueueID; - - public static final String JSON_PROPERTY_QUEUE_DATE = "queueDate"; - private LocalDate queueDate; - - public static final String JSON_PROPERTY_QUEUE_I_D = "queueID"; - private SimulationQueueID queueID; - - public static final String JSON_PROPERTY_QUEUE_PRIORITY = "queuePriority"; - private Integer queuePriority; - - public SimulationQueueEntryStatus() { - } - - public SimulationQueueEntryStatus fieldQueuePriority(Integer fieldQueuePriority) { - this.fieldQueuePriority = fieldQueuePriority; - return this; - } - - /** - * Get fieldQueuePriority - * @return fieldQueuePriority - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_QUEUE_PRIORITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Integer getFieldQueuePriority() { - return fieldQueuePriority; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_QUEUE_PRIORITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldQueuePriority(Integer fieldQueuePriority) { - this.fieldQueuePriority = fieldQueuePriority; - } - - - public SimulationQueueEntryStatus fieldQueueDate(LocalDate fieldQueueDate) { - this.fieldQueueDate = fieldQueueDate; - return this; - } - - /** - * Get fieldQueueDate - * @return fieldQueueDate - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_QUEUE_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public LocalDate getFieldQueueDate() { - return fieldQueueDate; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_QUEUE_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldQueueDate(LocalDate fieldQueueDate) { - this.fieldQueueDate = fieldQueueDate; - } - - - public SimulationQueueEntryStatus fieldQueueID(SimulationQueueID fieldQueueID) { - this.fieldQueueID = fieldQueueID; - return this; - } - - /** - * Get fieldQueueID - * @return fieldQueueID - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_FIELD_QUEUE_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public SimulationQueueID getFieldQueueID() { - return fieldQueueID; - } - - - @JsonProperty(JSON_PROPERTY_FIELD_QUEUE_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFieldQueueID(SimulationQueueID fieldQueueID) { - this.fieldQueueID = fieldQueueID; - } - - - public SimulationQueueEntryStatus queueDate(LocalDate queueDate) { - this.queueDate = queueDate; - return this; - } - - /** - * Get queueDate - * @return queueDate - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_QUEUE_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public LocalDate getQueueDate() { - return queueDate; - } - - - @JsonProperty(JSON_PROPERTY_QUEUE_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setQueueDate(LocalDate queueDate) { - this.queueDate = queueDate; - } - - - public SimulationQueueEntryStatus queueID(SimulationQueueID queueID) { - this.queueID = queueID; - return this; - } - - /** - * Get queueID - * @return queueID - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_QUEUE_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public SimulationQueueID getQueueID() { - return queueID; - } - - - @JsonProperty(JSON_PROPERTY_QUEUE_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setQueueID(SimulationQueueID queueID) { - this.queueID = queueID; - } - - - public SimulationQueueEntryStatus queuePriority(Integer queuePriority) { - this.queuePriority = queuePriority; - return this; - } - - /** - * Get queuePriority - * @return queuePriority - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_QUEUE_PRIORITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Integer getQueuePriority() { - return queuePriority; - } - - - @JsonProperty(JSON_PROPERTY_QUEUE_PRIORITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setQueuePriority(Integer queuePriority) { - this.queuePriority = queuePriority; - } - - - /** - * Return true if this SimulationQueueEntryStatus object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - SimulationQueueEntryStatus simulationQueueEntryStatus = (SimulationQueueEntryStatus) o; - return Objects.equals(this.fieldQueuePriority, simulationQueueEntryStatus.fieldQueuePriority) && - Objects.equals(this.fieldQueueDate, simulationQueueEntryStatus.fieldQueueDate) && - Objects.equals(this.fieldQueueID, simulationQueueEntryStatus.fieldQueueID) && - Objects.equals(this.queueDate, simulationQueueEntryStatus.queueDate) && - Objects.equals(this.queueID, simulationQueueEntryStatus.queueID) && - Objects.equals(this.queuePriority, simulationQueueEntryStatus.queuePriority); - } - - @Override - public int hashCode() { - return Objects.hash(fieldQueuePriority, fieldQueueDate, fieldQueueID, queueDate, queueID, queuePriority); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class SimulationQueueEntryStatus {\n"); - sb.append(" fieldQueuePriority: ").append(toIndentedString(fieldQueuePriority)).append("\n"); - sb.append(" fieldQueueDate: ").append(toIndentedString(fieldQueueDate)).append("\n"); - sb.append(" fieldQueueID: ").append(toIndentedString(fieldQueueID)).append("\n"); - sb.append(" queueDate: ").append(toIndentedString(queueDate)).append("\n"); - sb.append(" queueID: ").append(toIndentedString(queueID)).append("\n"); - sb.append(" queuePriority: ").append(toIndentedString(queuePriority)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - /** - * Convert the instance into URL query string. - * - * @return URL query string - */ - public String toUrlQueryString() { - return toUrlQueryString(null); - } - - /** - * Convert the instance into URL query string. - * - * @param prefix prefix of the query string - * @return URL query string - */ - public String toUrlQueryString(String prefix) { - String suffix = ""; - String containerSuffix = ""; - String containerPrefix = ""; - if (prefix == null) { - // style=form, explode=true, e.g. /pet?name=cat&type=manx - prefix = ""; - } else { - // deepObject style e.g. /pet?id[name]=cat&id[type]=manx - prefix = prefix + "["; - suffix = "]"; - containerSuffix = "]"; - containerPrefix = "["; - } - - StringJoiner joiner = new StringJoiner("&"); - - // add `fieldQueuePriority` to the URL query string - if (getFieldQueuePriority() != null) { - joiner.add(String.format("%sfieldQueuePriority%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFieldQueuePriority()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `fieldQueueDate` to the URL query string - if (getFieldQueueDate() != null) { - joiner.add(String.format("%sfieldQueueDate%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFieldQueueDate()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `fieldQueueID` to the URL query string - if (getFieldQueueID() != null) { - joiner.add(String.format("%sfieldQueueID%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFieldQueueID()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `queueDate` to the URL query string - if (getQueueDate() != null) { - joiner.add(String.format("%squeueDate%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getQueueDate()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `queueID` to the URL query string - if (getQueueID() != null) { - joiner.add(String.format("%squeueID%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getQueueID()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `queuePriority` to the URL query string - if (getQueuePriority() != null) { - joiner.add(String.format("%squeuePriority%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getQueuePriority()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - return joiner.toString(); - } -} - diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/User.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/User.java index 7b5db562a7..117c14584b 100644 --- a/vcell-restclient/src/main/java/org/vcell/restclient/model/User.java +++ b/vcell-restclient/src/main/java/org/vcell/restclient/model/User.java @@ -35,7 +35,6 @@ @JsonPropertyOrder({ User.JSON_PROPERTY_USER_NAME, User.JSON_PROPERTY_KEY, - User.JSON_PROPERTY_I_D, User.JSON_PROPERTY_NAME, User.JSON_PROPERTY_TEST_ACCOUNT }) @@ -47,9 +46,6 @@ public class User { public static final String JSON_PROPERTY_KEY = "key"; private KeyValue key; - public static final String JSON_PROPERTY_I_D = "iD"; - private KeyValue iD; - public static final String JSON_PROPERTY_NAME = "name"; private String name; @@ -109,31 +105,6 @@ public void setKey(KeyValue key) { } - public User iD(KeyValue iD) { - this.iD = iD; - return this; - } - - /** - * Get iD - * @return iD - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public KeyValue getiD() { - return iD; - } - - - @JsonProperty(JSON_PROPERTY_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setiD(KeyValue iD) { - this.iD = iD; - } - - public User name(String name) { this.name = name; return this; @@ -198,14 +169,13 @@ public boolean equals(Object o) { User user = (User) o; return Objects.equals(this.userName, user.userName) && Objects.equals(this.key, user.key) && - Objects.equals(this.iD, user.iD) && Objects.equals(this.name, user.name) && Objects.equals(this.testAccount, user.testAccount); } @Override public int hashCode() { - return Objects.hash(userName, key, iD, name, testAccount); + return Objects.hash(userName, key, name, testAccount); } @Override @@ -214,7 +184,6 @@ public String toString() { sb.append("class User {\n"); sb.append(" userName: ").append(toIndentedString(userName)).append("\n"); sb.append(" key: ").append(toIndentedString(key)).append("\n"); - sb.append(" iD: ").append(toIndentedString(iD)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" testAccount: ").append(toIndentedString(testAccount)).append("\n"); sb.append("}"); @@ -274,11 +243,6 @@ public String toUrlQueryString(String prefix) { joiner.add(getKey().toUrlQueryString(prefix + "key" + suffix)); } - // add `iD` to the URL query string - if (getiD() != null) { - joiner.add(getiD().toUrlQueryString(prefix + "iD" + suffix)); - } - // add `name` to the URL query string if (getName() != null) { joiner.add(String.format("%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/User1.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/User1.java deleted file mode 100644 index fd2239ad46..0000000000 --- a/vcell-restclient/src/main/java/org/vcell/restclient/model/User1.java +++ /dev/null @@ -1,331 +0,0 @@ -/* - * VCell API - * VCell API - * - * The version of the OpenAPI document: 1.0.1 - * Contact: vcell_support@uchc.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -package org.vcell.restclient.model; - -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; -import java.util.StringJoiner; -import java.util.Objects; -import java.util.Map; -import java.util.HashMap; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.annotation.JsonValue; -import java.util.Arrays; -import org.vcell.restclient.model.KeyValue; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - - -/** - * User1 - */ -@JsonPropertyOrder({ - User1.JSON_PROPERTY_USER_NAME, - User1.JSON_PROPERTY_KEY, - User1.JSON_PROPERTY_I_D, - User1.JSON_PROPERTY_NAME, - User1.JSON_PROPERTY_PUBLISHER, - User1.JSON_PROPERTY_TEST_ACCOUNT -}) -@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") -public class User1 { - public static final String JSON_PROPERTY_USER_NAME = "userName"; - private String userName; - - public static final String JSON_PROPERTY_KEY = "key"; - private KeyValue key; - - public static final String JSON_PROPERTY_I_D = "iD"; - private KeyValue iD; - - public static final String JSON_PROPERTY_NAME = "name"; - private String name; - - public static final String JSON_PROPERTY_PUBLISHER = "publisher"; - private Boolean publisher; - - public static final String JSON_PROPERTY_TEST_ACCOUNT = "testAccount"; - private Boolean testAccount; - - public User1() { - } - - public User1 userName(String userName) { - this.userName = userName; - return this; - } - - /** - * Get userName - * @return userName - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_USER_NAME) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getUserName() { - return userName; - } - - - @JsonProperty(JSON_PROPERTY_USER_NAME) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setUserName(String userName) { - this.userName = userName; - } - - - public User1 key(KeyValue key) { - this.key = key; - return this; - } - - /** - * Get key - * @return key - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_KEY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public KeyValue getKey() { - return key; - } - - - @JsonProperty(JSON_PROPERTY_KEY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setKey(KeyValue key) { - this.key = key; - } - - - public User1 iD(KeyValue iD) { - this.iD = iD; - return this; - } - - /** - * Get iD - * @return iD - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public KeyValue getiD() { - return iD; - } - - - @JsonProperty(JSON_PROPERTY_I_D) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setiD(KeyValue iD) { - this.iD = iD; - } - - - public User1 name(String name) { - this.name = name; - return this; - } - - /** - * Get name - * @return name - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_NAME) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getName() { - return name; - } - - - @JsonProperty(JSON_PROPERTY_NAME) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setName(String name) { - this.name = name; - } - - - public User1 publisher(Boolean publisher) { - this.publisher = publisher; - return this; - } - - /** - * Get publisher - * @return publisher - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_PUBLISHER) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getPublisher() { - return publisher; - } - - - @JsonProperty(JSON_PROPERTY_PUBLISHER) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setPublisher(Boolean publisher) { - this.publisher = publisher; - } - - - public User1 testAccount(Boolean testAccount) { - this.testAccount = testAccount; - return this; - } - - /** - * Get testAccount - * @return testAccount - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_TEST_ACCOUNT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getTestAccount() { - return testAccount; - } - - - @JsonProperty(JSON_PROPERTY_TEST_ACCOUNT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setTestAccount(Boolean testAccount) { - this.testAccount = testAccount; - } - - - /** - * Return true if this User1 object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - User1 user1 = (User1) o; - return Objects.equals(this.userName, user1.userName) && - Objects.equals(this.key, user1.key) && - Objects.equals(this.iD, user1.iD) && - Objects.equals(this.name, user1.name) && - Objects.equals(this.publisher, user1.publisher) && - Objects.equals(this.testAccount, user1.testAccount); - } - - @Override - public int hashCode() { - return Objects.hash(userName, key, iD, name, publisher, testAccount); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class User1 {\n"); - sb.append(" userName: ").append(toIndentedString(userName)).append("\n"); - sb.append(" key: ").append(toIndentedString(key)).append("\n"); - sb.append(" iD: ").append(toIndentedString(iD)).append("\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); - sb.append(" publisher: ").append(toIndentedString(publisher)).append("\n"); - sb.append(" testAccount: ").append(toIndentedString(testAccount)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - /** - * Convert the instance into URL query string. - * - * @return URL query string - */ - public String toUrlQueryString() { - return toUrlQueryString(null); - } - - /** - * Convert the instance into URL query string. - * - * @param prefix prefix of the query string - * @return URL query string - */ - public String toUrlQueryString(String prefix) { - String suffix = ""; - String containerSuffix = ""; - String containerPrefix = ""; - if (prefix == null) { - // style=form, explode=true, e.g. /pet?name=cat&type=manx - prefix = ""; - } else { - // deepObject style e.g. /pet?id[name]=cat&id[type]=manx - prefix = prefix + "["; - suffix = "]"; - containerSuffix = "]"; - containerPrefix = "["; - } - - StringJoiner joiner = new StringJoiner("&"); - - // add `userName` to the URL query string - if (getUserName() != null) { - joiner.add(String.format("%suserName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getUserName()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `key` to the URL query string - if (getKey() != null) { - joiner.add(getKey().toUrlQueryString(prefix + "key" + suffix)); - } - - // add `iD` to the URL query string - if (getiD() != null) { - joiner.add(getiD().toUrlQueryString(prefix + "iD" + suffix)); - } - - // add `name` to the URL query string - if (getName() != null) { - joiner.add(String.format("%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `publisher` to the URL query string - if (getPublisher() != null) { - joiner.add(String.format("%spublisher%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getPublisher()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `testAccount` to the URL query string - if (getTestAccount() != null) { - joiner.add(String.format("%stestAccount%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTestAccount()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - return joiner.toString(); - } -} - diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/UserIdentity.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/UserIdentity.java deleted file mode 100644 index 70675867da..0000000000 --- a/vcell-restclient/src/main/java/org/vcell/restclient/model/UserIdentity.java +++ /dev/null @@ -1,260 +0,0 @@ -/* - * VCell API - * VCell API - * - * The version of the OpenAPI document: 1.0.1 - * Contact: vcell_support@uchc.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -package org.vcell.restclient.model; - -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; -import java.util.StringJoiner; -import java.util.Objects; -import java.util.Map; -import java.util.HashMap; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.annotation.JsonValue; -import java.math.BigDecimal; -import java.time.OffsetDateTime; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - - -/** - * UserIdentity - */ -@JsonPropertyOrder({ - UserIdentity.JSON_PROPERTY_ID, - UserIdentity.JSON_PROPERTY_USER_NAME, - UserIdentity.JSON_PROPERTY_SUBJECT, - UserIdentity.JSON_PROPERTY_INSERT_DATE -}) -@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") -public class UserIdentity { - public static final String JSON_PROPERTY_ID = "id"; - private BigDecimal id; - - public static final String JSON_PROPERTY_USER_NAME = "userName"; - private String userName; - - public static final String JSON_PROPERTY_SUBJECT = "subject"; - private String subject; - - public static final String JSON_PROPERTY_INSERT_DATE = "insertDate"; - private OffsetDateTime insertDate; - - public UserIdentity() { - } - - public UserIdentity id(BigDecimal id) { - this.id = id; - return this; - } - - /** - * Get id - * @return id - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public BigDecimal getId() { - return id; - } - - - @JsonProperty(JSON_PROPERTY_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setId(BigDecimal id) { - this.id = id; - } - - - public UserIdentity userName(String userName) { - this.userName = userName; - return this; - } - - /** - * Get userName - * @return userName - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_USER_NAME) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getUserName() { - return userName; - } - - - @JsonProperty(JSON_PROPERTY_USER_NAME) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setUserName(String userName) { - this.userName = userName; - } - - - public UserIdentity subject(String subject) { - this.subject = subject; - return this; - } - - /** - * Get subject - * @return subject - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_SUBJECT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getSubject() { - return subject; - } - - - @JsonProperty(JSON_PROPERTY_SUBJECT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setSubject(String subject) { - this.subject = subject; - } - - - public UserIdentity insertDate(OffsetDateTime insertDate) { - this.insertDate = insertDate; - return this; - } - - /** - * Get insertDate - * @return insertDate - **/ - @javax.annotation.Nullable - @JsonProperty(JSON_PROPERTY_INSERT_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public OffsetDateTime getInsertDate() { - return insertDate; - } - - - @JsonProperty(JSON_PROPERTY_INSERT_DATE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setInsertDate(OffsetDateTime insertDate) { - this.insertDate = insertDate; - } - - - /** - * Return true if this UserIdentity object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - UserIdentity userIdentity = (UserIdentity) o; - return Objects.equals(this.id, userIdentity.id) && - Objects.equals(this.userName, userIdentity.userName) && - Objects.equals(this.subject, userIdentity.subject) && - Objects.equals(this.insertDate, userIdentity.insertDate); - } - - @Override - public int hashCode() { - return Objects.hash(id, userName, subject, insertDate); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class UserIdentity {\n"); - sb.append(" id: ").append(toIndentedString(id)).append("\n"); - sb.append(" userName: ").append(toIndentedString(userName)).append("\n"); - sb.append(" subject: ").append(toIndentedString(subject)).append("\n"); - sb.append(" insertDate: ").append(toIndentedString(insertDate)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - /** - * Convert the instance into URL query string. - * - * @return URL query string - */ - public String toUrlQueryString() { - return toUrlQueryString(null); - } - - /** - * Convert the instance into URL query string. - * - * @param prefix prefix of the query string - * @return URL query string - */ - public String toUrlQueryString(String prefix) { - String suffix = ""; - String containerSuffix = ""; - String containerPrefix = ""; - if (prefix == null) { - // style=form, explode=true, e.g. /pet?name=cat&type=manx - prefix = ""; - } else { - // deepObject style e.g. /pet?id[name]=cat&id[type]=manx - prefix = prefix + "["; - suffix = "]"; - containerSuffix = "]"; - containerPrefix = "["; - } - - StringJoiner joiner = new StringJoiner("&"); - - // add `id` to the URL query string - if (getId() != null) { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `userName` to the URL query string - if (getUserName() != null) { - joiner.add(String.format("%suserName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getUserName()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `subject` to the URL query string - if (getSubject() != null) { - joiner.add(String.format("%ssubject%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getSubject()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - // add `insertDate` to the URL query string - if (getInsertDate() != null) { - joiner.add(String.format("%sinsertDate%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getInsertDate()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); - } - - return joiner.toString(); - } -} - diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/IdentityProvider.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/VariableDomain.java similarity index 73% rename from vcell-restclient/src/main/java/org/vcell/restclient/model/IdentityProvider.java rename to vcell-restclient/src/main/java/org/vcell/restclient/model/VariableDomain.java index e22e4c2e08..72f577c07e 100644 --- a/vcell-restclient/src/main/java/org/vcell/restclient/model/IdentityProvider.java +++ b/vcell-restclient/src/main/java/org/vcell/restclient/model/VariableDomain.java @@ -26,17 +26,27 @@ import com.fasterxml.jackson.annotation.JsonValue; /** - * Gets or Sets IdentityProvider + * Gets or Sets VariableDomain */ -public enum IdentityProvider { +public enum VariableDomain { - AUTH0("AUTH0"), + POSTPROCESSING("VARIABLEDOMAIN_POSTPROCESSING"), - KEYCLOAK("KEYCLOAK"); + UNKNOWN("VARIABLEDOMAIN_UNKNOWN"), + + VOLUME("VARIABLEDOMAIN_VOLUME"), + + MEMBRANE("VARIABLEDOMAIN_MEMBRANE"), + + CONTOUR("VARIABLEDOMAIN_CONTOUR"), + + NONSPATIAL("VARIABLEDOMAIN_NONSPATIAL"), + + POINT("VARIABLEDOMAIN_POINT"); private String value; - IdentityProvider(String value) { + VariableDomain(String value) { this.value = value; } @@ -51,8 +61,8 @@ public String toString() { } @JsonCreator - public static IdentityProvider fromValue(String value) { - for (IdentityProvider b : IdentityProvider.values()) { + public static VariableDomain fromValue(String value) { + for (VariableDomain b : VariableDomain.values()) { if (b.value.equals(value)) { return b; } diff --git a/vcell-restclient/src/main/java/org/vcell/restclient/model/VariableType.java b/vcell-restclient/src/main/java/org/vcell/restclient/model/VariableType.java new file mode 100644 index 0000000000..7b11b73d2a --- /dev/null +++ b/vcell-restclient/src/main/java/org/vcell/restclient/model/VariableType.java @@ -0,0 +1,439 @@ +/* + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.vcell.restclient.model; + +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.StringJoiner; +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Arrays; +import org.vcell.restclient.model.VariableDomain; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + + +/** + * VariableType + */ +@JsonPropertyOrder({ + VariableType.JSON_PROPERTY_TYPE, + VariableType.JSON_PROPERTY_VARIABLE_DOMAIN, + VariableType.JSON_PROPERTY_NAME, + VariableType.JSON_PROPERTY_UNITS, + VariableType.JSON_PROPERTY_LABEL, + VariableType.JSON_PROPERTY_LEGACY_WARN, + VariableType.JSON_PROPERTY_DEFAULT_LABEL, + VariableType.JSON_PROPERTY_DEFAULT_UNITS, + VariableType.JSON_PROPERTY_TYPE_NAME +}) +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class VariableType { + public static final String JSON_PROPERTY_TYPE = "type"; + private Integer type; + + public static final String JSON_PROPERTY_VARIABLE_DOMAIN = "variableDomain"; + private VariableDomain variableDomain; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_UNITS = "units"; + private String units; + + public static final String JSON_PROPERTY_LABEL = "label"; + private String label; + + public static final String JSON_PROPERTY_LEGACY_WARN = "legacyWarn"; + private Boolean legacyWarn; + + public static final String JSON_PROPERTY_DEFAULT_LABEL = "defaultLabel"; + private String defaultLabel; + + public static final String JSON_PROPERTY_DEFAULT_UNITS = "defaultUnits"; + private String defaultUnits; + + public static final String JSON_PROPERTY_TYPE_NAME = "typeName"; + private String typeName; + + public VariableType() { + } + + public VariableType type(Integer type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Integer getType() { + return type; + } + + + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setType(Integer type) { + this.type = type; + } + + + public VariableType variableDomain(VariableDomain variableDomain) { + this.variableDomain = variableDomain; + return this; + } + + /** + * Get variableDomain + * @return variableDomain + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_VARIABLE_DOMAIN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public VariableDomain getVariableDomain() { + return variableDomain; + } + + + @JsonProperty(JSON_PROPERTY_VARIABLE_DOMAIN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setVariableDomain(VariableDomain variableDomain) { + this.variableDomain = variableDomain; + } + + + public VariableType name(String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getName() { + return name; + } + + + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setName(String name) { + this.name = name; + } + + + public VariableType units(String units) { + this.units = units; + return this; + } + + /** + * Get units + * @return units + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_UNITS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getUnits() { + return units; + } + + + @JsonProperty(JSON_PROPERTY_UNITS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setUnits(String units) { + this.units = units; + } + + + public VariableType label(String label) { + this.label = label; + return this; + } + + /** + * Get label + * @return label + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LABEL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getLabel() { + return label; + } + + + @JsonProperty(JSON_PROPERTY_LABEL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setLabel(String label) { + this.label = label; + } + + + public VariableType legacyWarn(Boolean legacyWarn) { + this.legacyWarn = legacyWarn; + return this; + } + + /** + * Get legacyWarn + * @return legacyWarn + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LEGACY_WARN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getLegacyWarn() { + return legacyWarn; + } + + + @JsonProperty(JSON_PROPERTY_LEGACY_WARN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setLegacyWarn(Boolean legacyWarn) { + this.legacyWarn = legacyWarn; + } + + + public VariableType defaultLabel(String defaultLabel) { + this.defaultLabel = defaultLabel; + return this; + } + + /** + * Get defaultLabel + * @return defaultLabel + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DEFAULT_LABEL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getDefaultLabel() { + return defaultLabel; + } + + + @JsonProperty(JSON_PROPERTY_DEFAULT_LABEL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDefaultLabel(String defaultLabel) { + this.defaultLabel = defaultLabel; + } + + + public VariableType defaultUnits(String defaultUnits) { + this.defaultUnits = defaultUnits; + return this; + } + + /** + * Get defaultUnits + * @return defaultUnits + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DEFAULT_UNITS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getDefaultUnits() { + return defaultUnits; + } + + + @JsonProperty(JSON_PROPERTY_DEFAULT_UNITS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDefaultUnits(String defaultUnits) { + this.defaultUnits = defaultUnits; + } + + + public VariableType typeName(String typeName) { + this.typeName = typeName; + return this; + } + + /** + * Get typeName + * @return typeName + **/ + @javax.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TYPE_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getTypeName() { + return typeName; + } + + + @JsonProperty(JSON_PROPERTY_TYPE_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTypeName(String typeName) { + this.typeName = typeName; + } + + + /** + * Return true if this VariableType object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + VariableType variableType = (VariableType) o; + return Objects.equals(this.type, variableType.type) && + Objects.equals(this.variableDomain, variableType.variableDomain) && + Objects.equals(this.name, variableType.name) && + Objects.equals(this.units, variableType.units) && + Objects.equals(this.label, variableType.label) && + Objects.equals(this.legacyWarn, variableType.legacyWarn) && + Objects.equals(this.defaultLabel, variableType.defaultLabel) && + Objects.equals(this.defaultUnits, variableType.defaultUnits) && + Objects.equals(this.typeName, variableType.typeName); + } + + @Override + public int hashCode() { + return Objects.hash(type, variableDomain, name, units, label, legacyWarn, defaultLabel, defaultUnits, typeName); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class VariableType {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" variableDomain: ").append(toIndentedString(variableDomain)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" units: ").append(toIndentedString(units)).append("\n"); + sb.append(" label: ").append(toIndentedString(label)).append("\n"); + sb.append(" legacyWarn: ").append(toIndentedString(legacyWarn)).append("\n"); + sb.append(" defaultLabel: ").append(toIndentedString(defaultLabel)).append("\n"); + sb.append(" defaultUnits: ").append(toIndentedString(defaultUnits)).append("\n"); + sb.append(" typeName: ").append(toIndentedString(typeName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `type` to the URL query string + if (getType() != null) { + joiner.add(String.format("%stype%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getType()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `variableDomain` to the URL query string + if (getVariableDomain() != null) { + joiner.add(String.format("%svariableDomain%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getVariableDomain()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `name` to the URL query string + if (getName() != null) { + joiner.add(String.format("%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `units` to the URL query string + if (getUnits() != null) { + joiner.add(String.format("%sunits%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getUnits()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `label` to the URL query string + if (getLabel() != null) { + joiner.add(String.format("%slabel%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLabel()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `legacyWarn` to the URL query string + if (getLegacyWarn() != null) { + joiner.add(String.format("%slegacyWarn%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLegacyWarn()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `defaultLabel` to the URL query string + if (getDefaultLabel() != null) { + joiner.add(String.format("%sdefaultLabel%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getDefaultLabel()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `defaultUnits` to the URL query string + if (getDefaultUnits() != null) { + joiner.add(String.format("%sdefaultUnits%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getDefaultUnits()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + // add `typeName` to the URL query string + if (getTypeName() != null) { + joiner.add(String.format("%stypeName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTypeName()), StandardCharsets.UTF_8).replaceAll("\\+", "%20"))); + } + + return joiner.toString(); + } +} + diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/api/BioModelResourceApiTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/api/BioModelResourceApiTest.java index 82f73ca1ef..8832c66cf7 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/api/BioModelResourceApiTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/api/BioModelResourceApiTest.java @@ -51,91 +51,6 @@ public void deleteBioModelTest() throws ApiException { // TODO: test validations } - /** - * Get the BioModel in BNGL format. - * - * - * - * @throws ApiException - * if the Api call fails - */ - @Test - public void getBioModelBNGLTest() throws ApiException { - String bioModelID = null; - - //api.getBioModelBNGL(bioModelID); - - // TODO: test validations - } - - /** - * Get the BioModels diagram. - * - * - * - * @throws ApiException - * if the Api call fails - */ - @Test - public void getBioModelDIAGRAMTest() throws ApiException { - String bioModelID = null; - - //api.getBioModelDIAGRAM(bioModelID); - - // TODO: test validations - } - - /** - * Get the BioModel in OMEX format. - * - * - * - * @throws ApiException - * if the Api call fails - */ - @Test - public void getBioModelOMEXTest() throws ApiException { - String bioModelID = null; - - //api.getBioModelOMEX(bioModelID); - - // TODO: test validations - } - - /** - * Get the BioModel in SBML format. - * - * - * - * @throws ApiException - * if the Api call fails - */ - @Test - public void getBioModelSBMLTest() throws ApiException { - String bioModelID = null; - - //api.getBioModelSBML(bioModelID); - - // TODO: test validations - } - - /** - * Get the BioModel in VCML format. - * - * - * - * @throws ApiException - * if the Api call fails - */ - @Test - public void getBioModelVCMLTest() throws ApiException { - String bioModelID = null; - - //api.getBioModelVCML(bioModelID); - - // TODO: test validations - } - /** * Get BioModel information in JSON format by ID. * diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/api/FieldDataResourceApiTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/api/FieldDataResourceApiTest.java new file mode 100644 index 0000000000..eeded53913 --- /dev/null +++ b/vcell-restclient/src/test/java/org/vcell/restclient/api/FieldDataResourceApiTest.java @@ -0,0 +1,126 @@ +/* + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.vcell.restclient.api; + +import org.vcell.restclient.ApiException; +import org.vcell.restclient.model.AnalyzedResultsFromFieldData; +import org.vcell.restclient.model.FieldDataReference; +import org.vcell.restclient.model.FieldDataSaveResults; +import org.vcell.restclient.model.FieldDataShape; +import java.io.File; +import org.junit.Test; +import org.junit.Ignore; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + + +/** + * API tests for FieldDataResourceApi + */ +@Ignore +public class FieldDataResourceApiTest { + + private final FieldDataResourceApi api = new FieldDataResourceApi(); + + + /** + * Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void analyzeFieldDataFileTest() throws ApiException { + File _file = null; + String fileName = null; + AnalyzedResultsFromFieldData response = + api.analyzeFieldDataFile(_file, fileName); + + // TODO: test validations + } + + /** + * Take the analyzed results of the field data, modify it to your liking, then save it on the server. + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void createFieldDataFromAnalyzedFileTest() throws ApiException { + AnalyzedResultsFromFieldData analyzedResultsFromFieldData = null; + FieldDataSaveResults response = + api.createFieldDataFromAnalyzedFile(analyzedResultsFromFieldData); + + // TODO: test validations + } + + /** + * Delete the selected field data. + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void deleteFieldDataTest() throws ApiException { + String fieldDataID = null; + + api.deleteFieldData(fieldDataID); + + // TODO: test validations + } + + /** + * Get all of the ids used to identify, and retrieve field data. + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void getAllFieldDataIDsTest() throws ApiException { + List response = + api.getAllFieldDataIDs(); + + // TODO: test validations + } + + /** + * Get the shape of the field data. That is it's size, origin, extent, and data identifiers. + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void getFieldDataShapeFromIDTest() throws ApiException { + String fieldDataID = null; + FieldDataShape response = + api.getFieldDataShapeFromID(fieldDataID); + + // TODO: test validations + } + +} diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/api/HelloWorldApiTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/api/HelloWorldApiTest.java index 8725544ee8..7ed84545ad 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/api/HelloWorldApiTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/api/HelloWorldApiTest.java @@ -1,5 +1,5 @@ /* - * VCell API (test) + * VCell API * VCell API * * The version of the OpenAPI document: 1.0.1 @@ -13,14 +13,22 @@ package org.vcell.restclient.api; -import org.junit.jupiter.api.Test; import org.vcell.restclient.ApiException; import org.vcell.restclient.model.HelloWorldMessage; +import org.junit.Test; +import org.junit.Ignore; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; /** * API tests for HelloWorldApi */ +@Ignore public class HelloWorldApiTest { private final HelloWorldApi api = new HelloWorldApi(); diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/api/PublicationResourceApiTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/api/PublicationResourceApiTest.java index ef2ce4713b..66d276eaa2 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/api/PublicationResourceApiTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/api/PublicationResourceApiTest.java @@ -1,5 +1,5 @@ /* - * VCell API (development) + * VCell API * VCell API * * The version of the OpenAPI document: 1.0.1 @@ -13,54 +13,109 @@ package org.vcell.restclient.api; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; import org.vcell.restclient.ApiException; import org.vcell.restclient.model.Publication; +import org.junit.Test; +import org.junit.Ignore; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.Set; /** * API tests for PublicationResourceApi */ -@Disabled -@Tag("Fast") +@Ignore public class PublicationResourceApiTest { private final PublicationResourceApi api = new PublicationResourceApi(); + /** + * Create publication + * + * + * + * @throws ApiException + * if the Api call fails + */ @Test - public void getPublicationByIdTest() throws ApiException { - Long key = null; - api.getPublicationById(key); + public void createPublicationTest() throws ApiException { + Publication publication = null; + Long response = + api.createPublication(publication); // TODO: test validations } + /** + * Delete publication + * + * + * + * @throws ApiException + * if the Api call fails + */ @Test - public void getPublicationsTest() throws ApiException { - List response = api.getPublications(); + public void deletePublicationTest() throws ApiException { + Long id = null; + + api.deletePublication(id); // TODO: test validations } - + + /** + * Get publication by ID + * + * + * + * @throws ApiException + * if the Api call fails + */ @Test - public void addPublicationTest() throws ApiException { - Publication publication = null; - api.createPublication(publication); - + public void getPublicationByIdTest() throws ApiException { + Long id = null; + Publication response = + api.getPublicationById(id); + // TODO: test validations } - + + /** + * Get all publications + * + * + * + * @throws ApiException + * if the Api call fails + */ @Test - public void deletePublicationTest() throws ApiException { - Long publication_key = null; - api.deletePublication(publication_key); - + public void getPublicationsTest() throws ApiException { + List response = + api.getPublications(); + // TODO: test validations } - + + /** + * Create publication + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void updatePublicationTest() throws ApiException { + Publication publication = null; + Publication response = + api.updatePublication(publication); + + // TODO: test validations + } + } diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/api/SimulationResourceApiTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/api/SimulationResourceApiTest.java index ded45fa88d..90388c0d70 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/api/SimulationResourceApiTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/api/SimulationResourceApiTest.java @@ -14,7 +14,8 @@ package org.vcell.restclient.api; import org.vcell.restclient.ApiException; -import org.vcell.restclient.model.OverrideRepresentation; +import org.vcell.restclient.model.SimulationStatusPersistentRecord; +import org.vcell.restclient.model.StatusMessage; import org.junit.Test; import org.junit.Ignore; @@ -32,6 +33,26 @@ public class SimulationResourceApiTest { private final SimulationResourceApi api = new SimulationResourceApi(); + + + /** + * Get the status of simulation running + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void getSimulationStatusTest() throws ApiException { + String simID = null; + String bioModelID = null; + String mathModelID = null; + SimulationStatusPersistentRecord response = + api.getSimulationStatus(simID, bioModelID, mathModelID); + + // TODO: test validations + } /** * Start a simulation. @@ -44,7 +65,7 @@ public class SimulationResourceApiTest { @Test public void startSimulationTest() throws ApiException { String simID = null; - + List response = api.startSimulation(simID); // TODO: test validations @@ -61,7 +82,7 @@ public void startSimulationTest() throws ApiException { @Test public void stopSimulationTest() throws ApiException { String simID = null; - + List response = api.stopSimulation(simID); // TODO: test validations diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/api/UsersResourceApiTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/api/UsersResourceApiTest.java index b0cbe52a66..d1d4d11fed 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/api/UsersResourceApiTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/api/UsersResourceApiTest.java @@ -1,5 +1,5 @@ /* - * VCell API (development) + * VCell API * VCell API * * The version of the OpenAPI document: 1.0.1 @@ -13,27 +13,99 @@ package org.vcell.restclient.api; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; import org.vcell.restclient.ApiException; +import org.vcell.restclient.model.AccesTokenRepresentationRecord; import org.vcell.restclient.model.Identity; -import org.vcell.restclient.model.User; +import org.vcell.restclient.model.UserIdentityJSONSafe; +import org.vcell.restclient.model.UserLoginInfoForMapping; +import org.vcell.restclient.model.UserRegistrationInfo; +import org.junit.Test; +import org.junit.Ignore; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; /** * API tests for UsersResourceApi */ -@Disabled -@Tag("Fast") +@Ignore public class UsersResourceApiTest { private final UsersResourceApi api = new UsersResourceApi(); /** + * The end user has forgotten the legacy password they used for VCell, so they will be emailed it. + * * * + * @throws ApiException + * if the Api call fails + */ + @Test + public void forgotLegacyPasswordTest() throws ApiException { + String userID = null; + + api.forgotLegacyPassword(userID); + + // TODO: test validations + } + + /** + * Method to get legacy tokens for guest users + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void getGuestLegacyApiTokenTest() throws ApiException { + AccesTokenRepresentationRecord response = + api.getGuestLegacyApiToken(); + + // TODO: test validations + } + + /** + * Get token for legacy API + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void getLegacyApiTokenTest() throws ApiException { + AccesTokenRepresentationRecord response = + api.getLegacyApiToken(); + + // TODO: test validations + } + + /** + * Get mapped VCell identity + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void getMappedUserTest() throws ApiException { + UserIdentityJSONSafe response = + api.getMappedUser(); + + // TODO: test validations + } + + /** + * Get current user + * * * * @throws ApiException @@ -41,10 +113,96 @@ public class UsersResourceApiTest { */ @Test public void getMeTest() throws ApiException { - Identity response = + Identity response = api.getMe(); // TODO: test validations } + /** + * create vcell user + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void mapNewUserTest() throws ApiException { + UserRegistrationInfo userRegistrationInfo = null; + + api.mapNewUser(userRegistrationInfo); + + // TODO: test validations + } + + /** + * map vcell user + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void mapUserTest() throws ApiException { + UserLoginInfoForMapping userLoginInfoForMapping = null; + Boolean response = + api.mapUser(userLoginInfoForMapping); + + // TODO: test validations + } + + /** + * Process the magic link and map the user + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void processMagicLinkTest() throws ApiException { + String magic = null; + + api.processMagicLink(magic); + + // TODO: test validations + } + + /** + * request a recovery email to link a VCell account. + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void requestRecoveryEmailTest() throws ApiException { + String email = null; + String userID = null; + + api.requestRecoveryEmail(email, userID); + + // TODO: test validations + } + + /** + * remove vcell identity mapping + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void unmapUserTest() throws ApiException { + String userName = null; + Boolean response = + api.unmapUser(userName); + + // TODO: test validations + } + } diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/AccessTokenRepresentationTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/AccessTokenRepresentationTest.java deleted file mode 100644 index b22fba0f2a..0000000000 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/AccessTokenRepresentationTest.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * VCell API - * VCell API - * - * The version of the OpenAPI document: 1.0.1 - * Contact: vcell_support@uchc.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -package org.vcell.restclient.model; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.annotation.JsonValue; -import java.util.Arrays; -import org.junit.Assert; -import org.junit.Ignore; -import org.junit.Test; - -/** - * Model tests for AccessTokenRepresentation - */ -public class AccessTokenRepresentationTest { - private final AccessTokenRepresentation model = new AccessTokenRepresentation(); - - /** - * Model tests for AccessTokenRepresentation - */ - @Test - public void testAccessTokenRepresentation() { - // TODO: test AccessTokenRepresentation - } - - /** - * Test the property 'token' - */ - @Test - public void tokenTest() { - // TODO: test token - } - - /** - * Test the property 'creationDateSeconds' - */ - @Test - public void creationDateSecondsTest() { - // TODO: test creationDateSeconds - } - - /** - * Test the property 'expireDateSeconds' - */ - @Test - public void expireDateSecondsTest() { - // TODO: test expireDateSeconds - } - - /** - * Test the property 'userId' - */ - @Test - public void userIdTest() { - // TODO: test userId - } - - /** - * Test the property 'userKey' - */ - @Test - public void userKeyTest() { - // TODO: test userKey - } - -} diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/AnalyzedResultsFromFieldDataTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/AnalyzedResultsFromFieldDataTest.java new file mode 100644 index 0000000000..c49ca2d07a --- /dev/null +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/AnalyzedResultsFromFieldDataTest.java @@ -0,0 +1,109 @@ +/* + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.vcell.restclient.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.vcell.restclient.model.Extent; +import org.vcell.restclient.model.ISize; +import org.vcell.restclient.model.Origin; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +/** + * Model tests for AnalyzedResultsFromFieldData + */ +public class AnalyzedResultsFromFieldDataTest { + private final AnalyzedResultsFromFieldData model = new AnalyzedResultsFromFieldData(); + + /** + * Model tests for AnalyzedResultsFromFieldData + */ + @Test + public void testAnalyzedResultsFromFieldData() { + // TODO: test AnalyzedResultsFromFieldData + } + + /** + * Test the property 'shortSpecData' + */ + @Test + public void shortSpecDataTest() { + // TODO: test shortSpecData + } + + /** + * Test the property 'varNames' + */ + @Test + public void varNamesTest() { + // TODO: test varNames + } + + /** + * Test the property 'times' + */ + @Test + public void timesTest() { + // TODO: test times + } + + /** + * Test the property 'origin' + */ + @Test + public void originTest() { + // TODO: test origin + } + + /** + * Test the property 'extent' + */ + @Test + public void extentTest() { + // TODO: test extent + } + + /** + * Test the property 'isize' + */ + @Test + public void isizeTest() { + // TODO: test isize + } + + /** + * Test the property 'annotation' + */ + @Test + public void annotationTest() { + // TODO: test annotation + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + +} diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/BioModelTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/BioModelTest.java index 3994c6e3b8..a0e5785a84 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/BioModelTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/BioModelTest.java @@ -21,7 +21,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import org.vcell.restclient.model.Simulation; +import org.vcell.restclient.model.KeyValue; import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; @@ -97,11 +97,11 @@ public void branchIDTest() { } /** - * Test the property 'modelKey' + * Test the property 'physModelKey' */ @Test - public void modelKeyTest() { - // TODO: test modelKey + public void physModelKeyTest() { + // TODO: test physModelKey } /** @@ -121,11 +121,11 @@ public void ownerKeyTest() { } /** - * Test the property 'simulations' + * Test the property 'simulationKeyList' */ @Test - public void simulationsTest() { - // TODO: test simulations + public void simulationKeyListTest() { + // TODO: test simulationKeyList } /** diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/BiomodelRefTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/BiomodelRefTest.java index d447601abd..c39b85be8d 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/BiomodelRefTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/BiomodelRefTest.java @@ -1,5 +1,5 @@ /* - * VCell API (development) + * VCell API * VCell API * * The version of the OpenAPI document: 1.0.1 @@ -13,13 +13,19 @@ package org.vcell.restclient.model; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Arrays; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; /** * Model tests for BiomodelRef */ -@Tag("Fast") public class BiomodelRefTest { private final BiomodelRef model = new BiomodelRef(); diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/DataIdentifierTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/DataIdentifierTest.java new file mode 100644 index 0000000000..502c54e3a0 --- /dev/null +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/DataIdentifierTest.java @@ -0,0 +1,98 @@ +/* + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.vcell.restclient.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Arrays; +import org.vcell.restclient.model.Domain; +import org.vcell.restclient.model.VariableType; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +/** + * Model tests for DataIdentifier + */ +public class DataIdentifierTest { + private final DataIdentifier model = new DataIdentifier(); + + /** + * Model tests for DataIdentifier + */ + @Test + public void testDataIdentifier() { + // TODO: test DataIdentifier + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'displayName' + */ + @Test + public void displayNameTest() { + // TODO: test displayName + } + + /** + * Test the property 'variableType' + */ + @Test + public void variableTypeTest() { + // TODO: test variableType + } + + /** + * Test the property 'domain' + */ + @Test + public void domainTest() { + // TODO: test domain + } + + /** + * Test the property 'bFunction' + */ + @Test + public void bFunctionTest() { + // TODO: test bFunction + } + + /** + * Test the property 'function' + */ + @Test + public void functionTest() { + // TODO: test function + } + + /** + * Test the property 'visible' + */ + @Test + public void visibleTest() { + // TODO: test visible + } + +} diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/DomainTest.java similarity index 79% rename from vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationTest.java rename to vcell-restclient/src/test/java/org/vcell/restclient/model/DomainTest.java index d9533db481..d661e5e75d 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/DomainTest.java @@ -24,17 +24,17 @@ import org.junit.Test; /** - * Model tests for Simulation + * Model tests for Domain */ -public class SimulationTest { - private final Simulation model = new Simulation(); +public class DomainTest { + private final Domain model = new Domain(); /** - * Model tests for Simulation + * Model tests for Domain */ @Test - public void testSimulation() { - // TODO: test Simulation + public void testDomain() { + // TODO: test Domain } /** diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/VCellServerIDTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/ExtentTest.java similarity index 60% rename from vcell-restclient/src/test/java/org/vcell/restclient/model/VCellServerIDTest.java rename to vcell-restclient/src/test/java/org/vcell/restclient/model/ExtentTest.java index e842989964..7b6bf37638 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/VCellServerIDTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/ExtentTest.java @@ -24,25 +24,41 @@ import org.junit.Test; /** - * Model tests for VCellServerID + * Model tests for Extent */ -public class VCellServerIDTest { - private final VCellServerID model = new VCellServerID(); +public class ExtentTest { + private final Extent model = new Extent(); /** - * Model tests for VCellServerID + * Model tests for Extent */ @Test - public void testVCellServerID() { - // TODO: test VCellServerID + public void testExtent() { + // TODO: test Extent } /** - * Test the property 'serverID' + * Test the property 'x' */ @Test - public void serverIDTest() { - // TODO: test serverID + public void xTest() { + // TODO: test x + } + + /** + * Test the property 'y' + */ + @Test + public void yTest() { + // TODO: test y + } + + /** + * Test the property 'z' + */ + @Test + public void zTest() { + // TODO: test z } } diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/User1Test.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/ExternalDataIdentifierTest.java similarity index 55% rename from vcell-restclient/src/test/java/org/vcell/restclient/model/User1Test.java rename to vcell-restclient/src/test/java/org/vcell/restclient/model/ExternalDataIdentifierTest.java index d25d8a58e1..6a85760852 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/User1Test.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/ExternalDataIdentifierTest.java @@ -20,30 +20,23 @@ import com.fasterxml.jackson.annotation.JsonValue; import java.util.Arrays; import org.vcell.restclient.model.KeyValue; +import org.vcell.restclient.model.User; import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; /** - * Model tests for User1 + * Model tests for ExternalDataIdentifier */ -public class User1Test { - private final User1 model = new User1(); +public class ExternalDataIdentifierTest { + private final ExternalDataIdentifier model = new ExternalDataIdentifier(); /** - * Model tests for User1 + * Model tests for ExternalDataIdentifier */ @Test - public void testUser1() { - // TODO: test User1 - } - - /** - * Test the property 'userName' - */ - @Test - public void userNameTest() { - // TODO: test userName + public void testExternalDataIdentifier() { + // TODO: test ExternalDataIdentifier } /** @@ -55,11 +48,11 @@ public void keyTest() { } /** - * Test the property 'iD' + * Test the property 'owner' */ @Test - public void iDTest() { - // TODO: test iD + public void ownerTest() { + // TODO: test owner } /** @@ -71,19 +64,35 @@ public void nameTest() { } /** - * Test the property 'publisher' + * Test the property 'jobIndex' + */ + @Test + public void jobIndexTest() { + // TODO: test jobIndex + } + + /** + * Test the property 'simulationKey' + */ + @Test + public void simulationKeyTest() { + // TODO: test simulationKey + } + + /** + * Test the property 'parameterScanType' */ @Test - public void publisherTest() { - // TODO: test publisher + public void parameterScanTypeTest() { + // TODO: test parameterScanType } /** - * Test the property 'testAccount' + * Test the property 'dataKey' */ @Test - public void testAccountTest() { - // TODO: test testAccount + public void dataKeyTest() { + // TODO: test dataKey } } diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/FieldDataReferenceTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/FieldDataReferenceTest.java new file mode 100644 index 0000000000..42f1f106e9 --- /dev/null +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/FieldDataReferenceTest.java @@ -0,0 +1,68 @@ +/* + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.vcell.restclient.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.vcell.restclient.model.ExternalDataIdentifier; +import org.vcell.restclient.model.KeyValue; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +/** + * Model tests for FieldDataReference + */ +public class FieldDataReferenceTest { + private final FieldDataReference model = new FieldDataReference(); + + /** + * Model tests for FieldDataReference + */ + @Test + public void testFieldDataReference() { + // TODO: test FieldDataReference + } + + /** + * Test the property 'externalDataIdentifier' + */ + @Test + public void externalDataIdentifierTest() { + // TODO: test externalDataIdentifier + } + + /** + * Test the property 'externalDataAnnotation' + */ + @Test + public void externalDataAnnotationTest() { + // TODO: test externalDataAnnotation + } + + /** + * Test the property 'externalDataIDSimRef' + */ + @Test + public void externalDataIDSimRefTest() { + // TODO: test externalDataIDSimRef + } + +} diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/FieldDataSaveResultsTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/FieldDataSaveResultsTest.java new file mode 100644 index 0000000000..d9b3a6c1cf --- /dev/null +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/FieldDataSaveResultsTest.java @@ -0,0 +1,56 @@ +/* + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.vcell.restclient.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Arrays; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +/** + * Model tests for FieldDataSaveResults + */ +public class FieldDataSaveResultsTest { + private final FieldDataSaveResults model = new FieldDataSaveResults(); + + /** + * Model tests for FieldDataSaveResults + */ + @Test + public void testFieldDataSaveResults() { + // TODO: test FieldDataSaveResults + } + + /** + * Test the property 'fieldDataName' + */ + @Test + public void fieldDataNameTest() { + // TODO: test fieldDataName + } + + /** + * Test the property 'fieldDataID' + */ + @Test + public void fieldDataIDTest() { + // TODO: test fieldDataID + } + +} diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/OverrideRepresentationTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/FieldDataShapeTest.java similarity index 50% rename from vcell-restclient/src/test/java/org/vcell/restclient/model/OverrideRepresentationTest.java rename to vcell-restclient/src/test/java/org/vcell/restclient/model/FieldDataShapeTest.java index 848aea36ce..576de83e27 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/OverrideRepresentationTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/FieldDataShapeTest.java @@ -21,62 +21,66 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.vcell.restclient.model.DataIdentifier; +import org.vcell.restclient.model.Extent; +import org.vcell.restclient.model.ISize; +import org.vcell.restclient.model.Origin; import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; /** - * Model tests for OverrideRepresentation + * Model tests for FieldDataShape */ -public class OverrideRepresentationTest { - private final OverrideRepresentation model = new OverrideRepresentation(); +public class FieldDataShapeTest { + private final FieldDataShape model = new FieldDataShape(); /** - * Model tests for OverrideRepresentation + * Model tests for FieldDataShape */ @Test - public void testOverrideRepresentation() { - // TODO: test OverrideRepresentation + public void testFieldDataShape() { + // TODO: test FieldDataShape } /** - * Test the property 'name' + * Test the property 'extent' */ @Test - public void nameTest() { - // TODO: test name + public void extentTest() { + // TODO: test extent } /** - * Test the property 'type' + * Test the property 'origin' */ @Test - public void typeTest() { - // TODO: test type + public void originTest() { + // TODO: test origin } /** - * Test the property 'expression' + * Test the property 'isize' */ @Test - public void expressionTest() { - // TODO: test expression + public void isizeTest() { + // TODO: test isize } /** - * Test the property 'values' + * Test the property 'dataIdentifier' */ @Test - public void valuesTest() { - // TODO: test values + public void dataIdentifierTest() { + // TODO: test dataIdentifier } /** - * Test the property 'cardinality' + * Test the property 'times' */ @Test - public void cardinalityTest() { - // TODO: test cardinality + public void timesTest() { + // TODO: test times } } diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/HelloWorldMessageTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/HelloWorldMessageTest.java index 8f86d6de29..ddcc1343fe 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/HelloWorldMessageTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/HelloWorldMessageTest.java @@ -1,5 +1,5 @@ /* - * VCell API (test) + * VCell API * VCell API * * The version of the OpenAPI document: 1.0.1 @@ -13,7 +13,16 @@ package org.vcell.restclient.model; -import org.junit.jupiter.api.Test; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Arrays; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + /** * Model tests for HelloWorldMessage */ diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/MapUserTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/ISizeTest.java similarity index 62% rename from vcell-restclient/src/test/java/org/vcell/restclient/model/MapUserTest.java rename to vcell-restclient/src/test/java/org/vcell/restclient/model/ISizeTest.java index f4345accf8..fada1b7bb9 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/MapUserTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/ISizeTest.java @@ -1,5 +1,5 @@ /* - * VCell API (development) + * VCell API * VCell API * * The version of the OpenAPI document: 1.0.1 @@ -24,33 +24,41 @@ import org.junit.Test; /** - * Model tests for MapUser + * Model tests for ISize */ -public class MapUserTest { - private final MapUser model = new MapUser(); +public class ISizeTest { + private final ISize model = new ISize(); + + /** + * Model tests for ISize + */ + @Test + public void testISize() { + // TODO: test ISize + } /** - * Model tests for MapUser + * Test the property 'x' */ @Test - public void testMapUser() { - // TODO: test MapUser + public void xTest() { + // TODO: test x } /** - * Test the property 'userID' + * Test the property 'y' */ @Test - public void userIDTest() { - // TODO: test userID + public void yTest() { + // TODO: test y } /** - * Test the property 'password' + * Test the property 'z' */ @Test - public void passwordTest() { - // TODO: test password + public void zTest() { + // TODO: test z } } diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/MathmodelRefTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/MathmodelRefTest.java index d64918e60f..7a2507b3da 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/MathmodelRefTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/MathmodelRefTest.java @@ -1,5 +1,5 @@ /* - * VCell API (development) + * VCell API * VCell API * * The version of the OpenAPI document: 1.0.1 @@ -13,14 +13,19 @@ package org.vcell.restclient.model; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; - +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Arrays; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; /** * Model tests for MathmodelRef */ -@Tag("Fast") public class MathmodelRefTest { private final MathmodelRef model = new MathmodelRef(); diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/UserIdentityTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/OriginTest.java similarity index 52% rename from vcell-restclient/src/test/java/org/vcell/restclient/model/UserIdentityTest.java rename to vcell-restclient/src/test/java/org/vcell/restclient/model/OriginTest.java index d8414e43ab..e46423d636 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/UserIdentityTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/OriginTest.java @@ -18,58 +18,47 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; -import java.time.LocalDate; import java.util.Arrays; -import org.vcell.restclient.model.KeyValue; -import org.vcell.restclient.model.User1; import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; /** - * Model tests for UserIdentity + * Model tests for Origin */ -public class UserIdentityTest { - private final UserIdentity model = new UserIdentity(); +public class OriginTest { + private final Origin model = new Origin(); /** - * Model tests for UserIdentity + * Model tests for Origin */ @Test - public void testUserIdentity() { - // TODO: test UserIdentity + public void testOrigin() { + // TODO: test Origin } /** - * Test the property 'id' + * Test the property 'x' */ @Test - public void idTest() { - // TODO: test id + public void xTest() { + // TODO: test x } /** - * Test the property 'user' + * Test the property 'y' */ @Test - public void userTest() { - // TODO: test user + public void yTest() { + // TODO: test y } /** - * Test the property 'subject' + * Test the property 'z' */ @Test - public void subjectTest() { - // TODO: test subject - } - - /** - * Test the property 'insertDate' - */ - @Test - public void insertDateTest() { - // TODO: test insertDate + public void zTest() { + // TODO: test z } } diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/PublicationTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/PublicationTest.java index d79dd2bdd0..c1d0641c15 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/PublicationTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/PublicationTest.java @@ -1,5 +1,5 @@ /* - * VCell API (development) + * VCell API * VCell API * * The version of the OpenAPI document: 1.0.1 @@ -13,14 +13,24 @@ package org.vcell.restclient.model; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; - +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.vcell.restclient.model.BiomodelRef; +import org.vcell.restclient.model.MathmodelRef; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; /** * Model tests for Publication */ -@Tag("Fast") public class PublicationTest { private final Publication model = new Publication(); diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationExecutionStatusTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationExecutionStatusTest.java deleted file mode 100644 index dbd1c21ce8..0000000000 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationExecutionStatusTest.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * VCell API - * VCell API - * - * The version of the OpenAPI document: 1.0.1 - * Contact: vcell_support@uchc.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -package org.vcell.restclient.model; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.annotation.JsonValue; -import java.time.LocalDate; -import java.util.Arrays; -import org.vcell.restclient.model.HtcJobID; -import org.junit.Assert; -import org.junit.Ignore; -import org.junit.Test; - -/** - * Model tests for SimulationExecutionStatus - */ -public class SimulationExecutionStatusTest { - private final SimulationExecutionStatus model = new SimulationExecutionStatus(); - - /** - * Model tests for SimulationExecutionStatus - */ - @Test - public void testSimulationExecutionStatus() { - // TODO: test SimulationExecutionStatus - } - - /** - * Test the property 'fieldStartDate' - */ - @Test - public void fieldStartDateTest() { - // TODO: test fieldStartDate - } - - /** - * Test the property 'fieldLatestUpdateDate' - */ - @Test - public void fieldLatestUpdateDateTest() { - // TODO: test fieldLatestUpdateDate - } - - /** - * Test the property 'fieldEndDate' - */ - @Test - public void fieldEndDateTest() { - // TODO: test fieldEndDate - } - - /** - * Test the property 'fieldComputeHost' - */ - @Test - public void fieldComputeHostTest() { - // TODO: test fieldComputeHost - } - - /** - * Test the property 'fieldHasData' - */ - @Test - public void fieldHasDataTest() { - // TODO: test fieldHasData - } - - /** - * Test the property 'fieldHtcJobID' - */ - @Test - public void fieldHtcJobIDTest() { - // TODO: test fieldHtcJobID - } - - /** - * Test the property 'computeHost' - */ - @Test - public void computeHostTest() { - // TODO: test computeHost - } - - /** - * Test the property 'endDate' - */ - @Test - public void endDateTest() { - // TODO: test endDate - } - - /** - * Test the property 'latestUpdateDate' - */ - @Test - public void latestUpdateDateTest() { - // TODO: test latestUpdateDate - } - - /** - * Test the property 'startDate' - */ - @Test - public void startDateTest() { - // TODO: test startDate - } - - /** - * Test the property 'htcJobID' - */ - @Test - public void htcJobIDTest() { - // TODO: test htcJobID - } - -} diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationJobStatusRecordTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationJobStatusRecordTest.java index cbcc48b0a8..df84352f49 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationJobStatusRecordTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationJobStatusRecordTest.java @@ -18,12 +18,12 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; -import java.time.LocalDate; +import java.time.OffsetDateTime; import java.util.Arrays; import org.vcell.restclient.model.SchedulerStatus; -import org.vcell.restclient.model.SimulationExecutionStatus; +import org.vcell.restclient.model.SimulationExecutionStatusRecord; import org.vcell.restclient.model.SimulationMessage; -import org.vcell.restclient.model.SimulationQueueEntryStatus; +import org.vcell.restclient.model.SimulationQueueEntryStatusRecord; import org.vcell.restclient.model.VCSimulationIdentifier; import org.junit.Assert; import org.junit.Ignore; diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationJobStatusTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationJobStatusTest.java deleted file mode 100644 index 4fe456fe92..0000000000 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationJobStatusTest.java +++ /dev/null @@ -1,231 +0,0 @@ -/* - * VCell API - * VCell API - * - * The version of the OpenAPI document: 1.0.1 - * Contact: vcell_support@uchc.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -package org.vcell.restclient.model; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.annotation.JsonValue; -import java.time.LocalDate; -import java.util.Arrays; -import org.vcell.restclient.model.SchedulerStatus; -import org.vcell.restclient.model.SimulationExecutionStatus; -import org.vcell.restclient.model.SimulationMessage; -import org.vcell.restclient.model.SimulationQueueEntryStatus; -import org.vcell.restclient.model.VCSimulationIdentifier; -import org.vcell.restclient.model.VCellServerID; -import org.junit.Assert; -import org.junit.Ignore; -import org.junit.Test; - -/** - * Model tests for SimulationJobStatus - */ -public class SimulationJobStatusTest { - private final SimulationJobStatus model = new SimulationJobStatus(); - - /** - * Model tests for SimulationJobStatus - */ - @Test - public void testSimulationJobStatus() { - // TODO: test SimulationJobStatus - } - - /** - * Test the property 'fieldTimeDateStamp' - */ - @Test - public void fieldTimeDateStampTest() { - // TODO: test fieldTimeDateStamp - } - - /** - * Test the property 'fieldVCSimID' - */ - @Test - public void fieldVCSimIDTest() { - // TODO: test fieldVCSimID - } - - /** - * Test the property 'fieldSubmitDate' - */ - @Test - public void fieldSubmitDateTest() { - // TODO: test fieldSubmitDate - } - - /** - * Test the property 'fieldSchedulerStatus' - */ - @Test - public void fieldSchedulerStatusTest() { - // TODO: test fieldSchedulerStatus - } - - /** - * Test the property 'fieldTaskID' - */ - @Test - public void fieldTaskIDTest() { - // TODO: test fieldTaskID - } - - /** - * Test the property 'fieldSimulationMessage' - */ - @Test - public void fieldSimulationMessageTest() { - // TODO: test fieldSimulationMessage - } - - /** - * Test the property 'fieldServerID' - */ - @Test - public void fieldServerIDTest() { - // TODO: test fieldServerID - } - - /** - * Test the property 'fieldJobIndex' - */ - @Test - public void fieldJobIndexTest() { - // TODO: test fieldJobIndex - } - - /** - * Test the property 'fieldSimulationQueueEntryStatus' - */ - @Test - public void fieldSimulationQueueEntryStatusTest() { - // TODO: test fieldSimulationQueueEntryStatus - } - - /** - * Test the property 'fieldSimulationExecutionStatus' - */ - @Test - public void fieldSimulationExecutionStatusTest() { - // TODO: test fieldSimulationExecutionStatus - } - - /** - * Test the property 'computeHost' - */ - @Test - public void computeHostTest() { - // TODO: test computeHost - } - - /** - * Test the property 'endDate' - */ - @Test - public void endDateTest() { - // TODO: test endDate - } - - /** - * Test the property 'jobIndex' - */ - @Test - public void jobIndexTest() { - // TODO: test jobIndex - } - - /** - * Test the property 'schedulerStatus' - */ - @Test - public void schedulerStatusTest() { - // TODO: test schedulerStatus - } - - /** - * Test the property 'serverID' - */ - @Test - public void serverIDTest() { - // TODO: test serverID - } - - /** - * Test the property 'simulationExecutionStatus' - */ - @Test - public void simulationExecutionStatusTest() { - // TODO: test simulationExecutionStatus - } - - /** - * Test the property 'simulationQueueEntryStatus' - */ - @Test - public void simulationQueueEntryStatusTest() { - // TODO: test simulationQueueEntryStatus - } - - /** - * Test the property 'startDate' - */ - @Test - public void startDateTest() { - // TODO: test startDate - } - - /** - * Test the property 'simulationMessage' - */ - @Test - public void simulationMessageTest() { - // TODO: test simulationMessage - } - - /** - * Test the property 'submitDate' - */ - @Test - public void submitDateTest() { - // TODO: test submitDate - } - - /** - * Test the property 'taskID' - */ - @Test - public void taskIDTest() { - // TODO: test taskID - } - - /** - * Test the property 'timeDateStamp' - */ - @Test - public void timeDateStampTest() { - // TODO: test timeDateStamp - } - - /** - * Test the property 'vCSimulationIdentifier' - */ - @Test - public void vCSimulationIdentifierTest() { - // TODO: test vCSimulationIdentifier - } - -} diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationQueueEntryStatusTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationQueueEntryStatusTest.java deleted file mode 100644 index ec0f091914..0000000000 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationQueueEntryStatusTest.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * VCell API - * VCell API - * - * The version of the OpenAPI document: 1.0.1 - * Contact: vcell_support@uchc.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -package org.vcell.restclient.model; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.annotation.JsonValue; -import java.time.LocalDate; -import java.util.Arrays; -import org.vcell.restclient.model.SimulationQueueID; -import org.junit.Assert; -import org.junit.Ignore; -import org.junit.Test; - -/** - * Model tests for SimulationQueueEntryStatus - */ -public class SimulationQueueEntryStatusTest { - private final SimulationQueueEntryStatus model = new SimulationQueueEntryStatus(); - - /** - * Model tests for SimulationQueueEntryStatus - */ - @Test - public void testSimulationQueueEntryStatus() { - // TODO: test SimulationQueueEntryStatus - } - - /** - * Test the property 'fieldQueuePriority' - */ - @Test - public void fieldQueuePriorityTest() { - // TODO: test fieldQueuePriority - } - - /** - * Test the property 'fieldQueueDate' - */ - @Test - public void fieldQueueDateTest() { - // TODO: test fieldQueueDate - } - - /** - * Test the property 'fieldQueueID' - */ - @Test - public void fieldQueueIDTest() { - // TODO: test fieldQueueID - } - - /** - * Test the property 'queueDate' - */ - @Test - public void queueDateTest() { - // TODO: test queueDate - } - - /** - * Test the property 'queueID' - */ - @Test - public void queueIDTest() { - // TODO: test queueID - } - - /** - * Test the property 'queuePriority' - */ - @Test - public void queuePriorityTest() { - // TODO: test queuePriority - } - -} diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationStatusPersistentRecordTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationStatusPersistentRecordTest.java index 4d6028633a..b8fe9ffc87 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationStatusPersistentRecordTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/SimulationStatusPersistentRecordTest.java @@ -19,8 +19,6 @@ import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; import org.vcell.restclient.model.Status; import org.junit.Assert; import org.junit.Ignore; @@ -48,14 +46,6 @@ public void statusTest() { // TODO: test status } - /** - * Test the property 'progressHash' - */ - @Test - public void progressHashTest() { - // TODO: test progressHash - } - /** * Test the property 'details' */ diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/StatusMessageTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/StatusMessageTest.java index bfc18974a8..0e52b4f297 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/StatusMessageTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/StatusMessageTest.java @@ -19,7 +19,7 @@ import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import java.util.Arrays; -import org.vcell.restclient.model.SimulationJobStatus; +import org.vcell.restclient.model.SimulationJobStatusRecord; import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/UserIdentityJSONSafeTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/UserIdentityJSONSafeTest.java index 1002084cfd..15131fa3e7 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/UserIdentityJSONSafeTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/UserIdentityJSONSafeTest.java @@ -38,6 +38,14 @@ public void testUserIdentityJSONSafe() { // TODO: test UserIdentityJSONSafe } + /** + * Test the property 'mapped' + */ + @Test + public void mappedTest() { + // TODO: test mapped + } + /** * Test the property 'userName' */ diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/UserLoginInfoForMappingTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/UserLoginInfoForMappingTest.java index 9446b139ff..938e723802 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/UserLoginInfoForMappingTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/UserLoginInfoForMappingTest.java @@ -1,5 +1,5 @@ /* - * VCell API (development) + * VCell API * VCell API * * The version of the OpenAPI document: 1.0.1 @@ -46,11 +46,11 @@ public void userIDTest() { } /** - * Test the property 'digestedPassword' + * Test the property 'password' */ @Test - public void digestedPasswordTest() { - // TODO: test digestedPassword + public void passwordTest() { + // TODO: test password } } diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/UserTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/UserTest.java index 10de75e90d..f8475aeef1 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/UserTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/UserTest.java @@ -1,5 +1,5 @@ /* - * VCell API (development) + * VCell API * VCell API * * The version of the OpenAPI document: 1.0.1 @@ -13,14 +13,20 @@ package org.vcell.restclient.model; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; - +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Arrays; +import org.vcell.restclient.model.KeyValue; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; /** * Model tests for User */ -@Tag("Fast") public class UserTest { private final User model = new User(); @@ -40,4 +46,28 @@ public void userNameTest() { // TODO: test userName } + /** + * Test the property 'key' + */ + @Test + public void keyTest() { + // TODO: test key + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'testAccount' + */ + @Test + public void testAccountTest() { + // TODO: test testAccount + } + } diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/IdentityProviderTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/VariableDomainTest.java similarity index 69% rename from vcell-restclient/src/test/java/org/vcell/restclient/model/IdentityProviderTest.java rename to vcell-restclient/src/test/java/org/vcell/restclient/model/VariableDomainTest.java index 81d8f7cdcd..76474ee9c4 100644 --- a/vcell-restclient/src/test/java/org/vcell/restclient/model/IdentityProviderTest.java +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/VariableDomainTest.java @@ -18,15 +18,15 @@ import org.junit.Test; /** - * Model tests for IdentityProvider + * Model tests for VariableDomain */ -public class IdentityProviderTest { +public class VariableDomainTest { /** - * Model tests for IdentityProvider + * Model tests for VariableDomain */ @Test - public void testIdentityProvider() { - // TODO: test IdentityProvider + public void testVariableDomain() { + // TODO: test VariableDomain } } diff --git a/vcell-restclient/src/test/java/org/vcell/restclient/model/VariableTypeTest.java b/vcell-restclient/src/test/java/org/vcell/restclient/model/VariableTypeTest.java new file mode 100644 index 0000000000..0b07442866 --- /dev/null +++ b/vcell-restclient/src/test/java/org/vcell/restclient/model/VariableTypeTest.java @@ -0,0 +1,113 @@ +/* + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.vcell.restclient.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Arrays; +import org.vcell.restclient.model.VariableDomain; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +/** + * Model tests for VariableType + */ +public class VariableTypeTest { + private final VariableType model = new VariableType(); + + /** + * Model tests for VariableType + */ + @Test + public void testVariableType() { + // TODO: test VariableType + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'variableDomain' + */ + @Test + public void variableDomainTest() { + // TODO: test variableDomain + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'units' + */ + @Test + public void unitsTest() { + // TODO: test units + } + + /** + * Test the property 'label' + */ + @Test + public void labelTest() { + // TODO: test label + } + + /** + * Test the property 'legacyWarn' + */ + @Test + public void legacyWarnTest() { + // TODO: test legacyWarn + } + + /** + * Test the property 'defaultLabel' + */ + @Test + public void defaultLabelTest() { + // TODO: test defaultLabel + } + + /** + * Test the property 'defaultUnits' + */ + @Test + public void defaultUnitsTest() { + // TODO: test defaultUnits + } + + /** + * Test the property 'typeName' + */ + @Test + public void typeNameTest() { + // TODO: test typeName + } + +} diff --git a/vcell-server/src/main/java/cbit/vcell/field/db/FieldDataDBOperationDriver.java b/vcell-server/src/main/java/cbit/vcell/field/db/FieldDataDBOperationDriver.java index b4ec52db3f..1553f6d46b 100644 --- a/vcell-server/src/main/java/cbit/vcell/field/db/FieldDataDBOperationDriver.java +++ b/vcell-server/src/main/java/cbit/vcell/field/db/FieldDataDBOperationDriver.java @@ -103,10 +103,9 @@ private static synchronized Connection getConnection() throws Exception{ } } - public static FieldDataDBOperationResults fieldDataDBOperation(Connection con, KeyFactory keyFactory, User user, - FieldDataDBOperationSpec fieldDataDBOperationSpec) throws SQLException, DataAccessException { - - if(fieldDataDBOperationSpec.opType == FieldDataDBOperationSpec.FDDBOS_COPY_NO_CONFLICT){ + + private static FieldDataDBOperationResults copyNoConflict(Connection con, KeyFactory keyFactory, User user, + FieldDataDBOperationSpec fieldDataDBOperationSpec) throws SQLException, DataAccessException { //get all current ExtDataIDs ExternalDataIdentifier[] existingExtDataIDArr = FieldDataDBOperationDriver.fieldDataDBOperation( @@ -175,14 +174,17 @@ public static FieldDataDBOperationResults fieldDataDBOperation(Connection con, K } oldNameNewIDHash.put(origFieldFuncName,fieldDataDBOperationResults.extDataID); } - + FieldDataDBOperationResults fieldDataDBOperationResults = new FieldDataDBOperationResults(); fieldDataDBOperationResults.oldNameNewIDHash = oldNameNewIDHash; fieldDataDBOperationResults.oldNameOldExtDataIDKeyHash = oldNameOldExtDataIDKey; return fieldDataDBOperationResults; - }else if(fieldDataDBOperationSpec.opType == FieldDataDBOperationSpec.FDDBOS_GETEXTDATAIDS){ - String sql; + } + + private static FieldDataDBOperationResults getExtraDataIDs(Connection con, KeyFactory keyFactory, User user, + FieldDataDBOperationSpec fieldDataDBOperationSpec) throws SQLException { + String sql; ResultSet rset; if(fieldDataDBOperationSpec.bIncludeSimRefs){ sql = "SELECT "+ @@ -201,17 +203,17 @@ public static FieldDataDBOperationResults fieldDataDBOperation(Connection con, K UserTable.table.id.getQualifiedColName() + " = " + fieldDataDBOperationSpec.owner.getID() + " AND "+ - UserTable.table.id.getQualifiedColName() + " = " + - ExternalDataTable.table.ownerRef.getQualifiedColName() + + UserTable.table.id.getQualifiedColName() + " = " + + ExternalDataTable.table.ownerRef.getQualifiedColName() + " AND "+ - ExternalDataTable.table.id.getQualifiedColName() + " = " + - MathDescExternalDataLinkTable.table.extDataRef.getQualifiedColName() + + ExternalDataTable.table.id.getQualifiedColName() + " = " + + MathDescExternalDataLinkTable.table.extDataRef.getQualifiedColName() + " AND "+ - MathDescTable.table.id.getQualifiedColName() + " = " + - MathDescExternalDataLinkTable.table.mathDescRef.getQualifiedColName() + + MathDescTable.table.id.getQualifiedColName() + " = " + + MathDescExternalDataLinkTable.table.mathDescRef.getQualifiedColName() + " AND "+ - MathDescTable.table.id.getQualifiedColName() + " = " + - SimulationTable.table.mathRef.getQualifiedColName(); + MathDescTable.table.id.getQualifiedColName() + " = " + + SimulationTable.table.mathRef.getQualifiedColName(); }else{ sql = "SELECT "+ ExternalDataTable.table.getTableName()+".*"+","+ @@ -225,7 +227,7 @@ public static FieldDataDBOperationResults fieldDataDBOperation(Connection con, K UserTable.table.id.getQualifiedColName() + " = " + ExternalDataTable.table.ownerRef.getQualifiedColName(); } - + Statement stmt = con.createStatement(); Vector extDataIDV = new Vector(); Vector extDataAnnotV = new Vector(); @@ -264,16 +266,17 @@ public static FieldDataDBOperationResults fieldDataDBOperation(Connection con, K fieldDataDBOperationResults.extDataAnnotArr = extDataAnnotV.toArray(new String[extDataAnnotV.size()]); fieldDataDBOperationResults.extdataIDAndSimRefH = extDataIDSimRefsH; return fieldDataDBOperationResults; - - }else if(fieldDataDBOperationSpec.opType == FieldDataDBOperationSpec.FDDBOS_SAVEEXTDATAID){ - - if(!fieldDataDBOperationSpec.newExtDataIDName.equals( + } + + private static FieldDataDBOperationResults saveExtraDataID(Connection con, KeyFactory keyFactory, User user, + FieldDataDBOperationSpec fieldDataDBOperationSpec) throws DataAccessException, SQLException { + if(!fieldDataDBOperationSpec.newExtDataIDName.equals( TokenMangler.fixTokenStrict(fieldDataDBOperationSpec.newExtDataIDName))){ throw new DataAccessException("Error inserting Field Data name "+ fieldDataDBOperationSpec.newExtDataIDName+"\n"+ "Field Data names can contain only letters,digits and underscores"); } - + KeyValue newKey = keyFactory.getNewKey(con); String sql = "INSERT INTO "+ExternalDataTable.table.getTableName()+" "+ @@ -283,7 +286,7 @@ public static FieldDataDBOperationResults fieldDataDBOperation(Connection con, K newKey,user, fieldDataDBOperationSpec.newExtDataIDName, fieldDataDBOperationSpec.annotation); - + DbDriver.updateCleanSQL(con,sql); ExternalDataIdentifier[] fdiArr = FieldDataDBOperationDriver.fieldDataDBOperation( @@ -297,22 +300,35 @@ public static FieldDataDBOperationResults fieldDataDBOperation(Connection con, K } throw new DataAccessException( "Unable to retrieve inserted ExternalDataIdentifier "+ - fieldDataDBOperationSpec.newExtDataIDName); + fieldDataDBOperationSpec.newExtDataIDName); + } - - }else if(fieldDataDBOperationSpec.opType == FieldDataDBOperationSpec.FDDBOS_DELETE){ - String sql = - "DELETE" + " FROM " + ExternalDataTable.table.getTableName() + + private static FieldDataDBOperationResults deleteFieldData(Connection con, KeyFactory keyFactory, User user, + FieldDataDBOperationSpec fieldDataDBOperationSpec) throws SQLException { + String sql = + "DELETE" + " FROM " + ExternalDataTable.table.getTableName() + " WHERE " + ExternalDataTable.table.ownerRef + " = " + user.getID() + " AND " + ExternalDataTable.table.id + " = " + fieldDataDBOperationSpec.specEDI.getKey().toString(); - + DbDriver.updateCleanSQL(con,sql); - + return new FieldDataDBOperationResults(); - } + } + + public static FieldDataDBOperationResults fieldDataDBOperation(Connection con, KeyFactory keyFactory, User user, + FieldDataDBOperationSpec fieldDataDBOperationSpec) throws SQLException, DataAccessException { + if(fieldDataDBOperationSpec.opType == FieldDataDBOperationSpec.FDDBOS_COPY_NO_CONFLICT){ + return copyNoConflict(con, keyFactory, user, fieldDataDBOperationSpec); + }else if(fieldDataDBOperationSpec.opType == FieldDataDBOperationSpec.FDDBOS_GETEXTDATAIDS){ + return getExtraDataIDs(con, keyFactory, user, fieldDataDBOperationSpec); + }else if(fieldDataDBOperationSpec.opType == FieldDataDBOperationSpec.FDDBOS_SAVEEXTDATAID){ + return saveExtraDataID(con, keyFactory, user, fieldDataDBOperationSpec); + }else if(fieldDataDBOperationSpec.opType == FieldDataDBOperationSpec.FDDBOS_DELETE){ + return deleteFieldData(con, keyFactory, user, fieldDataDBOperationSpec); + } throw new DataAccessException("Unknown FieldDataDBOperation "+fieldDataDBOperationSpec.opType); } diff --git a/vcell-server/src/main/java/cbit/vcell/message/server/bootstrap/LocalVCellConnectionFactory.java b/vcell-server/src/main/java/cbit/vcell/message/server/bootstrap/LocalVCellConnectionFactory.java index 8f441136d8..02dd510bca 100644 --- a/vcell-server/src/main/java/cbit/vcell/message/server/bootstrap/LocalVCellConnectionFactory.java +++ b/vcell-server/src/main/java/cbit/vcell/message/server/bootstrap/LocalVCellConnectionFactory.java @@ -11,13 +11,9 @@ package cbit.vcell.message.server.bootstrap; import cbit.vcell.export.server.ExportServiceImpl; -import cbit.vcell.message.server.bootstrap.client.LocalVCellConnectionMessaging; import cbit.vcell.message.server.dispatcher.SimulationDatabaseDirect; import cbit.vcell.modeldb.AdminDBTopLevel; -import cbit.vcell.modeldb.ApiAccessToken; -import cbit.vcell.modeldb.ApiClient; import cbit.vcell.modeldb.DatabaseServerImpl; -import cbit.vcell.resource.NativeLib; import cbit.vcell.resource.PropertyLoader; import cbit.vcell.server.Auth0ConnectionUtils; import cbit.vcell.server.ConnectionException; @@ -25,32 +21,21 @@ import cbit.vcell.server.VCellConnectionFactory; import cbit.vcell.simdata.Cachetable; import cbit.vcell.simdata.DataSetControllerImpl; -import com.nimbusds.oauth2.sdk.ParseException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.vcell.api.client.VCellApiClient; import org.vcell.db.ConnectionFactory; import org.vcell.db.DatabaseService; import org.vcell.db.KeyFactory; -import org.vcell.restclient.ApiException; -import org.vcell.restclient.model.AccesTokenRepresentationRecord; -import org.vcell.util.AuthenticationException; import org.vcell.util.DataAccessException; -import org.vcell.util.ObjectNotFoundException; -import org.vcell.util.document.KeyValue; -import org.vcell.util.document.User; import org.vcell.util.document.UserLoginInfo; import java.io.File; import java.io.FileNotFoundException; -import java.io.IOException; -import java.net.URISyntaxException; import java.security.KeyManagementException; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.sql.SQLException; -import java.util.Date; -import java.util.List; /** * This type was created in VisualAge. diff --git a/vcell-util/pom.xml b/vcell-util/pom.xml index 89da76b368..cfeddf24d9 100644 --- a/vcell-util/pom.xml +++ b/vcell-util/pom.xml @@ -140,5 +140,10 @@ jaxb-impl ${jaxb-impl.version} + + org.vcell + vcell-restclient + 0.0.1-SNAPSHOT + diff --git a/vcell-util/src/main/java/org/vcell/util/Extent.java b/vcell-util/src/main/java/org/vcell/util/Extent.java index 647ed4e8c2..cabb97e9bc 100644 --- a/vcell-util/src/main/java/org/vcell/util/Extent.java +++ b/vcell-util/src/main/java/org/vcell/util/Extent.java @@ -25,6 +25,18 @@ public class Extent implements java.io.Serializable, Matchable { private double z; public Extent() {}//For jaxb + public static org.vcell.restclient.model.Extent extentToDTO(Extent extent) { + org.vcell.restclient.model.Extent newExtent = new org.vcell.restclient.model.Extent(); + newExtent.setX(extent.getX()); + newExtent.setY(extent.getY()); + newExtent.setZ(extent.getZ()); + return newExtent; + } + + public static Extent dtoToExtent(org.vcell.restclient.model.Extent dto) { + return new Extent(dto.getX(), dto.getY(), dto.getZ()); + } + /** * Origin constructor comment. */ diff --git a/vcell-util/src/main/java/org/vcell/util/ISize.java b/vcell-util/src/main/java/org/vcell/util/ISize.java index c31626c4c4..4b67f386cf 100644 --- a/vcell-util/src/main/java/org/vcell/util/ISize.java +++ b/vcell-util/src/main/java/org/vcell/util/ISize.java @@ -11,6 +11,8 @@ package org.vcell.util; +import com.fasterxml.jackson.annotation.JsonIgnore; + /** * This type was created in VisualAge. */ @@ -19,6 +21,19 @@ public class ISize implements java.io.Serializable, Matchable { private int y; private int z; + public static org.vcell.restclient.model.ISize iSizeToDTO(ISize iSize){ + org.vcell.restclient.model.ISize iSizeDTO = new org.vcell.restclient.model.ISize(); + iSizeDTO.setX(iSize.getX()); + iSizeDTO.setY(iSize.getY()); + iSizeDTO.setZ(iSize.getZ()); + return iSizeDTO; + } + + public static ISize dtoToISize(org.vcell.restclient.model.ISize dto){ + return new ISize(dto.getX(), dto.getY(), dto.getZ()); + } + public ISize(){} + /** * Origin constructor comment. */ @@ -89,6 +104,7 @@ public int getX() { * Creation date: (9/30/2005 10:17:58 AM) * @return int */ +@JsonIgnore public int getXYZ() { return x*y*z; } diff --git a/vcell-util/src/main/java/org/vcell/util/Origin.java b/vcell-util/src/main/java/org/vcell/util/Origin.java index 9d2165aed0..da911ee068 100644 --- a/vcell-util/src/main/java/org/vcell/util/Origin.java +++ b/vcell-util/src/main/java/org/vcell/util/Origin.java @@ -23,7 +23,19 @@ public class Origin implements java.io.Serializable, Matchable { @XmlAttribute private double z; public Origin() {}//For jaxb - + +public static org.vcell.restclient.model.Origin originToDTO(Origin origin){ + org.vcell.restclient.model.Origin dtoOrigin = new org.vcell.restclient.model.Origin(); + dtoOrigin.setX(origin.getX()); + dtoOrigin.setY(origin.getY()); + dtoOrigin.setZ(origin.getZ()); + return dtoOrigin; +} + +public static Origin dtoToOrigin(org.vcell.restclient.model.Origin dtoOrigin){ + return new Origin(dtoOrigin.getX(), dtoOrigin.getY(), dtoOrigin.getZ()); +} + /** * Origin constructor comment. */ diff --git a/webapp-ng/src/app/core/modules/openapi/.openapi-generator/FILES b/webapp-ng/src/app/core/modules/openapi/.openapi-generator/FILES index a833aa61ba..a9995085f5 100644 --- a/webapp-ng/src/app/core/modules/openapi/.openapi-generator/FILES +++ b/webapp-ng/src/app/core/modules/openapi/.openapi-generator/FILES @@ -6,6 +6,8 @@ api/admin-resource.serviceInterface.ts api/api.ts api/bio-model-resource.service.ts api/bio-model-resource.serviceInterface.ts +api/field-data-resource.service.ts +api/field-data-resource.serviceInterface.ts api/hello-world.service.ts api/hello-world.serviceInterface.ts api/publication-resource.service.ts @@ -19,16 +21,26 @@ encoder.ts git_push.sh index.ts model/acces-token-representation-record.ts +model/analyzed-results-from-field-data.ts model/batch-system-type.ts model/bio-model.ts model/biomodel-ref.ts +model/data-identifier.ts model/detailed-state.ts +model/domain.ts +model/extent.ts +model/external-data-identifier.ts +model/field-data-reference.ts +model/field-data-save-results.ts +model/field-data-shape.ts model/hello-world-message.ts model/htc-job-id.ts +model/i-size.ts model/identity.ts model/key-value.ts model/mathmodel-ref.ts model/models.ts +model/origin.ts model/publication.ts model/scheduler-status.ts model/simulation-execution-status-record.ts @@ -43,6 +55,8 @@ model/user-identity-json-safe.ts model/user-login-info-for-mapping.ts model/user-registration-info.ts model/user.ts +model/variable-domain.ts +model/variable-type.ts model/vc-simulation-identifier.ts param.ts variables.ts diff --git a/webapp-ng/src/app/core/modules/openapi/api/api.ts b/webapp-ng/src/app/core/modules/openapi/api/api.ts index 78b7eafdb0..342e9ee2f0 100644 --- a/webapp-ng/src/app/core/modules/openapi/api/api.ts +++ b/webapp-ng/src/app/core/modules/openapi/api/api.ts @@ -4,6 +4,9 @@ export * from './admin-resource.serviceInterface'; export * from './bio-model-resource.service'; import { BioModelResourceService } from './bio-model-resource.service'; export * from './bio-model-resource.serviceInterface'; +export * from './field-data-resource.service'; +import { FieldDataResourceService } from './field-data-resource.service'; +export * from './field-data-resource.serviceInterface'; export * from './hello-world.service'; import { HelloWorldService } from './hello-world.service'; export * from './hello-world.serviceInterface'; @@ -16,4 +19,4 @@ export * from './simulation-resource.serviceInterface'; export * from './users-resource.service'; import { UsersResourceService } from './users-resource.service'; export * from './users-resource.serviceInterface'; -export const APIS = [AdminResourceService, BioModelResourceService, HelloWorldService, PublicationResourceService, SimulationResourceService, UsersResourceService]; +export const APIS = [AdminResourceService, BioModelResourceService, FieldDataResourceService, HelloWorldService, PublicationResourceService, SimulationResourceService, UsersResourceService]; diff --git a/webapp-ng/src/app/core/modules/openapi/api/field-data-resource.service.ts b/webapp-ng/src/app/core/modules/openapi/api/field-data-resource.service.ts new file mode 100644 index 0000000000..d949fe63ce --- /dev/null +++ b/webapp-ng/src/app/core/modules/openapi/api/field-data-resource.service.ts @@ -0,0 +1,432 @@ +/** + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/* tslint:disable:no-unused-variable member-ordering */ + +import { Inject, Injectable, Optional } from '@angular/core'; +import { HttpClient, HttpHeaders, HttpParams, + HttpResponse, HttpEvent, HttpParameterCodec, HttpContext + } from '@angular/common/http'; +import { CustomHttpParameterCodec } from '../encoder'; +import { Observable } from 'rxjs'; + +// @ts-ignore +import { AnalyzedResultsFromFieldData } from '../model/analyzed-results-from-field-data'; +// @ts-ignore +import { FieldDataReference } from '../model/field-data-reference'; +// @ts-ignore +import { FieldDataSaveResults } from '../model/field-data-save-results'; +// @ts-ignore +import { FieldDataShape } from '../model/field-data-shape'; + +// @ts-ignore +import { BASE_PATH, COLLECTION_FORMATS } from '../variables'; +import { Configuration } from '../configuration'; +import { + FieldDataResourceServiceInterface +} from './field-data-resource.serviceInterface'; + + + +@Injectable({ + providedIn: 'root' +}) +export class FieldDataResourceService implements FieldDataResourceServiceInterface { + + protected basePath = 'https://vcell-dev.cam.uchc.edu'; + public defaultHeaders = new HttpHeaders(); + public configuration = new Configuration(); + public encoder: HttpParameterCodec; + + constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) { + if (configuration) { + this.configuration = configuration; + } + if (typeof this.configuration.basePath !== 'string') { + if (Array.isArray(basePath) && basePath.length > 0) { + basePath = basePath[0]; + } + + if (typeof basePath !== 'string') { + basePath = this.basePath; + } + this.configuration.basePath = basePath; + } + this.encoder = this.configuration.encoder || new CustomHttpParameterCodec(); + } + + /** + * @param consumes string[] mime-types + * @return true: consumes contains 'multipart/form-data', false: otherwise + */ + private canConsumeForm(consumes: string[]): boolean { + const form = 'multipart/form-data'; + for (const consume of consumes) { + if (form === consume) { + return true; + } + } + return false; + } + + // @ts-ignore + private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams { + if (typeof value === "object" && value instanceof Date === false) { + httpParams = this.addToHttpParamsRecursive(httpParams, value); + } else { + httpParams = this.addToHttpParamsRecursive(httpParams, value, key); + } + return httpParams; + } + + private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams { + if (value == null) { + return httpParams; + } + + if (typeof value === "object") { + if (Array.isArray(value)) { + (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key)); + } else if (value instanceof Date) { + if (key != null) { + httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10)); + } else { + throw Error("key may not be null if value is Date"); + } + } else { + Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive( + httpParams, value[k], key != null ? `${key}.${k}` : k)); + } + } else if (key != null) { + httpParams = httpParams.append(key, value); + } else { + throw Error("key may not be null if value is not object or array"); + } + return httpParams; + } + + /** + * Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. + * @param file + * @param fileName + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public analyzeFieldDataFile(file?: Blob, fileName?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable; + public analyzeFieldDataFile(file?: Blob, fileName?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable>; + public analyzeFieldDataFile(file?: Blob, fileName?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable>; + public analyzeFieldDataFile(file?: Blob, fileName?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable { + + let localVarHeaders = this.defaultHeaders; + + let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; + if (localVarHttpHeaderAcceptSelected === undefined) { + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/json' + ]; + localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); + } + if (localVarHttpHeaderAcceptSelected !== undefined) { + localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); + } + + let localVarHttpContext: HttpContext | undefined = options && options.context; + if (localVarHttpContext === undefined) { + localVarHttpContext = new HttpContext(); + } + + // to determine the Content-Type header + const consumes: string[] = [ + 'multipart/form-data' + ]; + + const canConsumeForm = this.canConsumeForm(consumes); + + let localVarFormParams: { append(param: string, value: any): any; }; + let localVarUseForm = false; + let localVarConvertFormParamsToString = false; + // use FormData to transmit files using content-type "multipart/form-data" + // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data + localVarUseForm = canConsumeForm; + if (localVarUseForm) { + localVarFormParams = new FormData(); + } else { + localVarFormParams = new HttpParams({encoder: this.encoder}); + } + + if (file !== undefined) { + localVarFormParams = localVarFormParams.append('file', file) as any || localVarFormParams; + } + if (fileName !== undefined) { + localVarFormParams = localVarFormParams.append('fileName', fileName) as any || localVarFormParams; + } + + let responseType_: 'text' | 'json' | 'blob' = 'json'; + if (localVarHttpHeaderAcceptSelected) { + if (localVarHttpHeaderAcceptSelected.startsWith('text')) { + responseType_ = 'text'; + } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { + responseType_ = 'json'; + } else { + responseType_ = 'blob'; + } + } + + let localVarPath = `/api/v1/fieldData/analyzeFieldDataFile`; + return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, + { + context: localVarHttpContext, + body: localVarConvertFormParamsToString ? localVarFormParams.toString() : localVarFormParams, + responseType: responseType_, + withCredentials: this.configuration.withCredentials, + headers: localVarHeaders, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * Take the analyzed results of the field data, modify it to your liking, then save it on the server. + * @param analyzedResultsFromFieldData + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public createFieldDataFromAnalyzedFile(analyzedResultsFromFieldData?: AnalyzedResultsFromFieldData, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable; + public createFieldDataFromAnalyzedFile(analyzedResultsFromFieldData?: AnalyzedResultsFromFieldData, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable>; + public createFieldDataFromAnalyzedFile(analyzedResultsFromFieldData?: AnalyzedResultsFromFieldData, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable>; + public createFieldDataFromAnalyzedFile(analyzedResultsFromFieldData?: AnalyzedResultsFromFieldData, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable { + + let localVarHeaders = this.defaultHeaders; + + let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; + if (localVarHttpHeaderAcceptSelected === undefined) { + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/json' + ]; + localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); + } + if (localVarHttpHeaderAcceptSelected !== undefined) { + localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); + } + + let localVarHttpContext: HttpContext | undefined = options && options.context; + if (localVarHttpContext === undefined) { + localVarHttpContext = new HttpContext(); + } + + + // to determine the Content-Type header + const consumes: string[] = [ + 'application/json' + ]; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected !== undefined) { + localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected); + } + + let responseType_: 'text' | 'json' | 'blob' = 'json'; + if (localVarHttpHeaderAcceptSelected) { + if (localVarHttpHeaderAcceptSelected.startsWith('text')) { + responseType_ = 'text'; + } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { + responseType_ = 'json'; + } else { + responseType_ = 'blob'; + } + } + + let localVarPath = `/api/v1/fieldData/createFieldDataFromAnalyzedFile`; + return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, + { + context: localVarHttpContext, + body: analyzedResultsFromFieldData, + responseType: responseType_, + withCredentials: this.configuration.withCredentials, + headers: localVarHeaders, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * Delete the selected field data. + * @param fieldDataID + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public deleteFieldData(fieldDataID: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable; + public deleteFieldData(fieldDataID: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable>; + public deleteFieldData(fieldDataID: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable>; + public deleteFieldData(fieldDataID: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable { + if (fieldDataID === null || fieldDataID === undefined) { + throw new Error('Required parameter fieldDataID was null or undefined when calling deleteFieldData.'); + } + + let localVarHeaders = this.defaultHeaders; + + let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; + if (localVarHttpHeaderAcceptSelected === undefined) { + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + ]; + localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); + } + if (localVarHttpHeaderAcceptSelected !== undefined) { + localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); + } + + let localVarHttpContext: HttpContext | undefined = options && options.context; + if (localVarHttpContext === undefined) { + localVarHttpContext = new HttpContext(); + } + + + let responseType_: 'text' | 'json' | 'blob' = 'json'; + if (localVarHttpHeaderAcceptSelected) { + if (localVarHttpHeaderAcceptSelected.startsWith('text')) { + responseType_ = 'text'; + } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { + responseType_ = 'json'; + } else { + responseType_ = 'blob'; + } + } + + let localVarPath = `/api/v1/fieldData/delete/${this.configuration.encodeParam({name: "fieldDataID", value: fieldDataID, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined})}`; + return this.httpClient.request('delete', `${this.configuration.basePath}${localVarPath}`, + { + context: localVarHttpContext, + responseType: responseType_, + withCredentials: this.configuration.withCredentials, + headers: localVarHeaders, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * Get all of the ids used to identify, and retrieve field data. + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getAllFieldDataIDs(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable>; + public getAllFieldDataIDs(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable>>; + public getAllFieldDataIDs(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable>>; + public getAllFieldDataIDs(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable { + + let localVarHeaders = this.defaultHeaders; + + let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; + if (localVarHttpHeaderAcceptSelected === undefined) { + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/json' + ]; + localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); + } + if (localVarHttpHeaderAcceptSelected !== undefined) { + localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); + } + + let localVarHttpContext: HttpContext | undefined = options && options.context; + if (localVarHttpContext === undefined) { + localVarHttpContext = new HttpContext(); + } + + + let responseType_: 'text' | 'json' | 'blob' = 'json'; + if (localVarHttpHeaderAcceptSelected) { + if (localVarHttpHeaderAcceptSelected.startsWith('text')) { + responseType_ = 'text'; + } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { + responseType_ = 'json'; + } else { + responseType_ = 'blob'; + } + } + + let localVarPath = `/api/v1/fieldData/IDs`; + return this.httpClient.request>('get', `${this.configuration.basePath}${localVarPath}`, + { + context: localVarHttpContext, + responseType: responseType_, + withCredentials: this.configuration.withCredentials, + headers: localVarHeaders, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * Get the shape of the field data. That is it\'s size, origin, extent, and data identifiers. + * @param fieldDataID + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public getFieldDataShapeFromID(fieldDataID: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable; + public getFieldDataShapeFromID(fieldDataID: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable>; + public getFieldDataShapeFromID(fieldDataID: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable>; + public getFieldDataShapeFromID(fieldDataID: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable { + if (fieldDataID === null || fieldDataID === undefined) { + throw new Error('Required parameter fieldDataID was null or undefined when calling getFieldDataShapeFromID.'); + } + + let localVarHeaders = this.defaultHeaders; + + let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; + if (localVarHttpHeaderAcceptSelected === undefined) { + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/json' + ]; + localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); + } + if (localVarHttpHeaderAcceptSelected !== undefined) { + localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); + } + + let localVarHttpContext: HttpContext | undefined = options && options.context; + if (localVarHttpContext === undefined) { + localVarHttpContext = new HttpContext(); + } + + + let responseType_: 'text' | 'json' | 'blob' = 'json'; + if (localVarHttpHeaderAcceptSelected) { + if (localVarHttpHeaderAcceptSelected.startsWith('text')) { + responseType_ = 'text'; + } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { + responseType_ = 'json'; + } else { + responseType_ = 'blob'; + } + } + + let localVarPath = `/api/v1/fieldData/fieldDataShape/${this.configuration.encodeParam({name: "fieldDataID", value: fieldDataID, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined})}`; + return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, + { + context: localVarHttpContext, + responseType: responseType_, + withCredentials: this.configuration.withCredentials, + headers: localVarHeaders, + observe: observe, + reportProgress: reportProgress + } + ); + } + +} diff --git a/webapp-ng/src/app/core/modules/openapi/api/field-data-resource.serviceInterface.ts b/webapp-ng/src/app/core/modules/openapi/api/field-data-resource.serviceInterface.ts new file mode 100644 index 0000000000..b613b85b23 --- /dev/null +++ b/webapp-ng/src/app/core/modules/openapi/api/field-data-resource.serviceInterface.ts @@ -0,0 +1,65 @@ +/** + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import { HttpHeaders } from '@angular/common/http'; + +import { Observable } from 'rxjs'; + +import { AnalyzedResultsFromFieldData } from '../model/models'; +import { FieldDataReference } from '../model/models'; +import { FieldDataSaveResults } from '../model/models'; +import { FieldDataShape } from '../model/models'; + + +import { Configuration } from '../configuration'; + + + +export interface FieldDataResourceServiceInterface { + defaultHeaders: HttpHeaders; + configuration: Configuration; + + /** + * Analyze the field data from the uploaded file. Filenames must be lowercase alphanumeric, and can contain underscores. + * + * @param file + * @param fileName + */ + analyzeFieldDataFile(file?: Blob, fileName?: string, extraHttpRequestParams?: any): Observable; + + /** + * Take the analyzed results of the field data, modify it to your liking, then save it on the server. + * + * @param analyzedResultsFromFieldData + */ + createFieldDataFromAnalyzedFile(analyzedResultsFromFieldData?: AnalyzedResultsFromFieldData, extraHttpRequestParams?: any): Observable; + + /** + * Delete the selected field data. + * + * @param fieldDataID + */ + deleteFieldData(fieldDataID: string, extraHttpRequestParams?: any): Observable<{}>; + + /** + * Get all of the ids used to identify, and retrieve field data. + * + */ + getAllFieldDataIDs(extraHttpRequestParams?: any): Observable>; + + /** + * Get the shape of the field data. That is it\'s size, origin, extent, and data identifiers. + * + * @param fieldDataID + */ + getFieldDataShapeFromID(fieldDataID: string, extraHttpRequestParams?: any): Observable; + +} diff --git a/webapp-ng/src/app/core/modules/openapi/model/analyzed-results-from-field-data.ts b/webapp-ng/src/app/core/modules/openapi/model/analyzed-results-from-field-data.ts new file mode 100644 index 0000000000..a4d70ab31a --- /dev/null +++ b/webapp-ng/src/app/core/modules/openapi/model/analyzed-results-from-field-data.ts @@ -0,0 +1,27 @@ +/** + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import { Origin } from './origin'; +import { Extent } from './extent'; +import { ISize } from './i-size'; + + +export interface AnalyzedResultsFromFieldData { + shortSpecData?: Array>>; + varNames?: Array; + times?: Array; + origin?: Origin; + extent?: Extent; + isize?: ISize; + annotation?: string; + name?: string; +} + diff --git a/webapp-ng/src/app/core/modules/openapi/model/override-representation.ts b/webapp-ng/src/app/core/modules/openapi/model/data-identifier.ts similarity index 53% rename from webapp-ng/src/app/core/modules/openapi/model/override-representation.ts rename to webapp-ng/src/app/core/modules/openapi/model/data-identifier.ts index 645bfe7ceb..f800f3169a 100644 --- a/webapp-ng/src/app/core/modules/openapi/model/override-representation.ts +++ b/webapp-ng/src/app/core/modules/openapi/model/data-identifier.ts @@ -9,13 +9,17 @@ * https://openapi-generator.tech * Do not edit the class manually. */ +import { VariableType } from './variable-type'; +import { Domain } from './domain'; -export interface OverrideRepresentation { +export interface DataIdentifier { name?: string; - type?: string; - expression?: string; - values?: Array; - cardinality?: number; + displayName?: string; + variableType?: VariableType; + domain?: Domain; + bFunction?: boolean; + _function?: boolean; + visible?: boolean; } diff --git a/webapp-ng/src/app/core/modules/openapi/model/simulation.ts b/webapp-ng/src/app/core/modules/openapi/model/domain.ts similarity index 90% rename from webapp-ng/src/app/core/modules/openapi/model/simulation.ts rename to webapp-ng/src/app/core/modules/openapi/model/domain.ts index 99214ce7c9..e2aafb28e5 100644 --- a/webapp-ng/src/app/core/modules/openapi/model/simulation.ts +++ b/webapp-ng/src/app/core/modules/openapi/model/domain.ts @@ -11,7 +11,7 @@ */ -export interface Simulation { +export interface Domain { name?: string; } diff --git a/webapp-ng/src/app/core/modules/openapi/model/map-user.ts b/webapp-ng/src/app/core/modules/openapi/model/extent.ts similarity index 79% rename from webapp-ng/src/app/core/modules/openapi/model/map-user.ts rename to webapp-ng/src/app/core/modules/openapi/model/extent.ts index 3338008938..1864fed60b 100644 --- a/webapp-ng/src/app/core/modules/openapi/model/map-user.ts +++ b/webapp-ng/src/app/core/modules/openapi/model/extent.ts @@ -11,8 +11,9 @@ */ -export interface MapUser { - userID?: string; - password?: string; +export interface Extent { + x?: number; + y?: number; + z?: number; } diff --git a/webapp-ng/src/app/core/modules/openapi/model/user1.ts b/webapp-ng/src/app/core/modules/openapi/model/external-data-identifier.ts similarity index 64% rename from webapp-ng/src/app/core/modules/openapi/model/user1.ts rename to webapp-ng/src/app/core/modules/openapi/model/external-data-identifier.ts index e9b8b4a4e8..8cc2e19db5 100644 --- a/webapp-ng/src/app/core/modules/openapi/model/user1.ts +++ b/webapp-ng/src/app/core/modules/openapi/model/external-data-identifier.ts @@ -10,14 +10,16 @@ * Do not edit the class manually. */ import { KeyValue } from './key-value'; +import { User } from './user'; -export interface User1 { - userName?: string; +export interface ExternalDataIdentifier { key?: KeyValue; - iD?: KeyValue; + owner?: User; name?: string; - publisher?: boolean; - testAccount?: boolean; + jobIndex?: number; + simulationKey?: KeyValue; + parameterScanType?: boolean; + dataKey?: KeyValue; } diff --git a/webapp-ng/src/app/core/modules/openapi/model/access-token-representation.ts b/webapp-ng/src/app/core/modules/openapi/model/field-data-reference.ts similarity index 50% rename from webapp-ng/src/app/core/modules/openapi/model/access-token-representation.ts rename to webapp-ng/src/app/core/modules/openapi/model/field-data-reference.ts index 7f0dfbb6da..61aa0cd6c6 100644 --- a/webapp-ng/src/app/core/modules/openapi/model/access-token-representation.ts +++ b/webapp-ng/src/app/core/modules/openapi/model/field-data-reference.ts @@ -9,13 +9,13 @@ * https://openapi-generator.tech * Do not edit the class manually. */ +import { KeyValue } from './key-value'; +import { ExternalDataIdentifier } from './external-data-identifier'; -export interface AccessTokenRepresentation { - token?: string; - creationDateSeconds?: number; - expireDateSeconds?: number; - userId?: string; - userKey?: string; +export interface FieldDataReference { + externalDataIdentifier?: ExternalDataIdentifier; + externalDataAnnotation?: string; + externalDataIDSimRefs?: Array; } diff --git a/webapp-ng/src/app/core/modules/openapi/model/user-identity.ts b/webapp-ng/src/app/core/modules/openapi/model/field-data-save-results.ts similarity index 70% rename from webapp-ng/src/app/core/modules/openapi/model/user-identity.ts rename to webapp-ng/src/app/core/modules/openapi/model/field-data-save-results.ts index 92f489448e..1d19ff47e7 100644 --- a/webapp-ng/src/app/core/modules/openapi/model/user-identity.ts +++ b/webapp-ng/src/app/core/modules/openapi/model/field-data-save-results.ts @@ -11,10 +11,8 @@ */ -export interface UserIdentity { - id?: number; - userName?: string; - subject?: string; - insertDate?: string; +export interface FieldDataSaveResults { + fieldDataName?: string; + fieldDataID?: string; } diff --git a/webapp-ng/src/app/core/modules/openapi/model/field-data-shape.ts b/webapp-ng/src/app/core/modules/openapi/model/field-data-shape.ts new file mode 100644 index 0000000000..00b95546a1 --- /dev/null +++ b/webapp-ng/src/app/core/modules/openapi/model/field-data-shape.ts @@ -0,0 +1,25 @@ +/** + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import { Origin } from './origin'; +import { DataIdentifier } from './data-identifier'; +import { Extent } from './extent'; +import { ISize } from './i-size'; + + +export interface FieldDataShape { + extent?: Extent; + origin?: Origin; + isize?: ISize; + dataIdentifier?: Array; + times?: Array; +} + diff --git a/webapp-ng/src/app/core/modules/openapi/model/v-cell-server-id.ts b/webapp-ng/src/app/core/modules/openapi/model/i-size.ts similarity index 79% rename from webapp-ng/src/app/core/modules/openapi/model/v-cell-server-id.ts rename to webapp-ng/src/app/core/modules/openapi/model/i-size.ts index 4fcf42ebdb..8a4749dd5a 100644 --- a/webapp-ng/src/app/core/modules/openapi/model/v-cell-server-id.ts +++ b/webapp-ng/src/app/core/modules/openapi/model/i-size.ts @@ -11,7 +11,9 @@ */ -export interface VCellServerID { - serverID?: string; +export interface ISize { + x?: number; + y?: number; + z?: number; } diff --git a/webapp-ng/src/app/core/modules/openapi/model/identity-provider.ts b/webapp-ng/src/app/core/modules/openapi/model/identity-provider.ts deleted file mode 100644 index 3a69667da1..0000000000 --- a/webapp-ng/src/app/core/modules/openapi/model/identity-provider.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * VCell API - * VCell API - * - * The version of the OpenAPI document: 1.0.1 - * Contact: vcell_support@uchc.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -export type IdentityProvider = 'AUTH0' | 'KEYCLOAK'; - -export const IdentityProvider = { - Auth0: 'AUTH0' as IdentityProvider, - Keycloak: 'KEYCLOAK' as IdentityProvider -}; - diff --git a/webapp-ng/src/app/core/modules/openapi/model/models.ts b/webapp-ng/src/app/core/modules/openapi/model/models.ts index a0a82b95fe..fb8ebc5c35 100644 --- a/webapp-ng/src/app/core/modules/openapi/model/models.ts +++ b/webapp-ng/src/app/core/modules/openapi/model/models.ts @@ -1,13 +1,23 @@ export * from './acces-token-representation-record'; +export * from './analyzed-results-from-field-data'; export * from './batch-system-type'; export * from './bio-model'; export * from './biomodel-ref'; +export * from './data-identifier'; export * from './detailed-state'; +export * from './domain'; +export * from './extent'; +export * from './external-data-identifier'; +export * from './field-data-reference'; +export * from './field-data-save-results'; +export * from './field-data-shape'; export * from './hello-world-message'; export * from './htc-job-id'; +export * from './i-size'; export * from './identity'; export * from './key-value'; export * from './mathmodel-ref'; +export * from './origin'; export * from './publication'; export * from './scheduler-status'; export * from './simulation-execution-status-record'; @@ -23,3 +33,5 @@ export * from './user-identity-json-safe'; export * from './user-login-info-for-mapping'; export * from './user-registration-info'; export * from './vc-simulation-identifier'; +export * from './variable-domain'; +export * from './variable-type'; diff --git a/webapp-ng/src/app/core/modules/openapi/model/origin.ts b/webapp-ng/src/app/core/modules/openapi/model/origin.ts new file mode 100644 index 0000000000..0ec5468b44 --- /dev/null +++ b/webapp-ng/src/app/core/modules/openapi/model/origin.ts @@ -0,0 +1,19 @@ +/** + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +export interface Origin { + x?: number; + y?: number; + z?: number; +} + diff --git a/webapp-ng/src/app/core/modules/openapi/model/simulation-execution-status.ts b/webapp-ng/src/app/core/modules/openapi/model/simulation-execution-status.ts deleted file mode 100644 index a219c89670..0000000000 --- a/webapp-ng/src/app/core/modules/openapi/model/simulation-execution-status.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * VCell API - * VCell API - * - * The version of the OpenAPI document: 1.0.1 - * Contact: vcell_support@uchc.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { HtcJobID } from './htc-job-id'; - - -export interface SimulationExecutionStatus { - fieldStartDate?: string; - fieldLatestUpdateDate?: string; - fieldEndDate?: string; - fieldComputeHost?: string; - fieldHasData?: boolean; - fieldHtcJobID?: HtcJobID; - computeHost?: string; - endDate?: string; - latestUpdateDate?: string; - startDate?: string; - htcJobID?: HtcJobID; -} - diff --git a/webapp-ng/src/app/core/modules/openapi/model/simulation-job-status.ts b/webapp-ng/src/app/core/modules/openapi/model/simulation-job-status.ts deleted file mode 100644 index 4ff18b5395..0000000000 --- a/webapp-ng/src/app/core/modules/openapi/model/simulation-job-status.ts +++ /dev/null @@ -1,48 +0,0 @@ -/** - * VCell API - * VCell API - * - * The version of the OpenAPI document: 1.0.1 - * Contact: vcell_support@uchc.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { SimulationExecutionStatus } from './simulation-execution-status'; -import { VCSimulationIdentifier } from './vc-simulation-identifier'; -import { SchedulerStatus } from './scheduler-status'; -import { VCellServerID } from './v-cell-server-id'; -import { SimulationMessage } from './simulation-message'; -import { SimulationQueueEntryStatus } from './simulation-queue-entry-status'; - - -export interface SimulationJobStatus { - fieldTimeDateStamp?: string; - fieldVCSimID?: VCSimulationIdentifier; - fieldSubmitDate?: string; - fieldSchedulerStatus?: SchedulerStatus; - fieldTaskID?: number; - fieldSimulationMessage?: SimulationMessage; - fieldServerID?: VCellServerID; - fieldJobIndex?: number; - fieldSimulationQueueEntryStatus?: SimulationQueueEntryStatus; - fieldSimulationExecutionStatus?: SimulationExecutionStatus; - computeHost?: string; - endDate?: string; - jobIndex?: number; - schedulerStatus?: SchedulerStatus; - serverID?: VCellServerID; - simulationExecutionStatus?: SimulationExecutionStatus; - simulationQueueEntryStatus?: SimulationQueueEntryStatus; - startDate?: string; - simulationMessage?: SimulationMessage; - submitDate?: string; - taskID?: number; - timeDateStamp?: string; - vCSimulationIdentifier?: VCSimulationIdentifier; -} -export namespace SimulationJobStatus { -} - - diff --git a/webapp-ng/src/app/core/modules/openapi/model/simulation-queue-entry-status.ts b/webapp-ng/src/app/core/modules/openapi/model/simulation-queue-entry-status.ts deleted file mode 100644 index 3bef98151e..0000000000 --- a/webapp-ng/src/app/core/modules/openapi/model/simulation-queue-entry-status.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * VCell API - * VCell API - * - * The version of the OpenAPI document: 1.0.1 - * Contact: vcell_support@uchc.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { SimulationQueueID } from './simulation-queue-id'; - - -export interface SimulationQueueEntryStatus { - fieldQueuePriority?: number; - fieldQueueDate?: string; - fieldQueueID?: SimulationQueueID; - queueDate?: string; - queueID?: SimulationQueueID; - queuePriority?: number; -} -export namespace SimulationQueueEntryStatus { -} - - diff --git a/webapp-ng/src/app/core/modules/openapi/model/user.ts b/webapp-ng/src/app/core/modules/openapi/model/user.ts index c15b7edcd6..eaf113a72d 100644 --- a/webapp-ng/src/app/core/modules/openapi/model/user.ts +++ b/webapp-ng/src/app/core/modules/openapi/model/user.ts @@ -15,7 +15,6 @@ import { KeyValue } from './key-value'; export interface User { userName?: string; key?: KeyValue; - iD?: KeyValue; name?: string; testAccount?: boolean; } diff --git a/webapp-ng/src/app/core/modules/openapi/model/variable-domain.ts b/webapp-ng/src/app/core/modules/openapi/model/variable-domain.ts new file mode 100644 index 0000000000..5893b2bc3e --- /dev/null +++ b/webapp-ng/src/app/core/modules/openapi/model/variable-domain.ts @@ -0,0 +1,25 @@ +/** + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +export type VariableDomain = 'VARIABLEDOMAIN_POSTPROCESSING' | 'VARIABLEDOMAIN_UNKNOWN' | 'VARIABLEDOMAIN_VOLUME' | 'VARIABLEDOMAIN_MEMBRANE' | 'VARIABLEDOMAIN_CONTOUR' | 'VARIABLEDOMAIN_NONSPATIAL' | 'VARIABLEDOMAIN_POINT'; + +export const VariableDomain = { + Postprocessing: 'VARIABLEDOMAIN_POSTPROCESSING' as VariableDomain, + Unknown: 'VARIABLEDOMAIN_UNKNOWN' as VariableDomain, + Volume: 'VARIABLEDOMAIN_VOLUME' as VariableDomain, + Membrane: 'VARIABLEDOMAIN_MEMBRANE' as VariableDomain, + Contour: 'VARIABLEDOMAIN_CONTOUR' as VariableDomain, + Nonspatial: 'VARIABLEDOMAIN_NONSPATIAL' as VariableDomain, + Point: 'VARIABLEDOMAIN_POINT' as VariableDomain +}; + diff --git a/webapp-ng/src/app/core/modules/openapi/model/variable-type.ts b/webapp-ng/src/app/core/modules/openapi/model/variable-type.ts new file mode 100644 index 0000000000..7532cde48c --- /dev/null +++ b/webapp-ng/src/app/core/modules/openapi/model/variable-type.ts @@ -0,0 +1,29 @@ +/** + * VCell API + * VCell API + * + * The version of the OpenAPI document: 1.0.1 + * Contact: vcell_support@uchc.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import { VariableDomain } from './variable-domain'; + + +export interface VariableType { + type?: number; + variableDomain?: VariableDomain; + name?: string; + units?: string; + label?: string; + legacyWarn?: boolean; + defaultLabel?: string; + defaultUnits?: string; + typeName?: string; +} +export namespace VariableType { +} + +