From 8f9a5e16f9f26762265482e3c9d2b7da1da327cd Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Thu, 20 Nov 2025 16:05:15 +0530 Subject: [PATCH 01/21] Added enum CURRENTLY_UNAVAILABLE_IN_COURT --- unicourt/model/case.py | 6 +++--- unicourt/model/case_document.py | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/unicourt/model/case.py b/unicourt/model/case.py index b3cab67..d09869f 100644 --- a/unicourt/model/case.py +++ b/unicourt/model/case.py @@ -62,7 +62,7 @@ class Case(BaseModel): last_fetch_date: Optional[datetime] = Field(default=None, description="The date and time when the case was last fetched from the Court. This date and time is in UTC. Formatted as YYYY-MM-DDTHH:MM:SS+ZZ:zz, Note: It is not necessary that every time the case is fetched from Court we find changes in the case information. It could be that we already have the latest information from the Court and no changes exist.", alias="lastFetchDate") last_fetch_date_with_updates: Optional[datetime] = Field(default=None, description="The date and time when the case was last fetched from the Court where we found changes in the case information. This date and time is in UTC. Formatted as YYYY-MM-DDTHH:MM:SS+ZZ:zz,", alias="lastFetchDateWithUpdates") participants_last_fetch_date: Optional[datetime] = Field(default=None, description="The date and time when parties/attorneys were last updated from the Court. Formatted as YYYY-MM-DDTHH:MM:SS+ZZ:zz, Note: This is currently applicable for Federal PACER cases since we have an option to exclude parties and fetch only latest docket entries when updating cases to save PACER fees.", alias="participantsLastFetchDate") - source_data_status: Optional[StrictStr] = Field(default=None, description="The status of source data of case. If the value of sourceDataStatus is SOURCE_DEPRECATED then it means that the Case has been migrated from old court site to a new court site and the data being shown in the API response is from a old court site. If the sourceDataStatus is NO_LONGER_AVAILABLE_IN_COURT then it means that a particular case is invalid in the court site.", alias="sourceDataStatus") + source_data_status: Optional[StrictStr] = Field(default=None, description="The status of source data of case. If the value of sourceDataStatus is SOURCE_DEPRECATED then it means that the Case has been migrated from old court site to a new court site and the data being shown in the API response is from a old court site. If the sourceDataStatus is CURRENTLY_UNAVAILABLE_IN_COURT then it means that a particular case is currently not available in the court site.", alias="sourceDataStatus") source_case_data: Optional[SourceCaseData] = Field(default=None, alias="sourceCaseData") has_documents_with_preview: Optional[StrictBool] = Field(default=None, description="This field will be set to TRUE if atleast one document has a preview.", alias="hasDocumentsWithPreview") export_api: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="When a case is beyond the threshold of entities we provide this link so that the user can request and get all the data of the case with one additional call. This data will be zipped and sent via a webhoook.", alias="exportAPI") @@ -82,8 +82,8 @@ def source_data_status_validate_enum(cls, value): if value is None: return value - if value not in set(['NO_LONGER_AVAILABLE_IN_COURT', 'null']): - raise ValueError("must be one of enum values ('NO_LONGER_AVAILABLE_IN_COURT', 'null')") + if value not in set(['CURRENTLY_UNAVAILABLE_IN_COURT', 'NO_LONGER_AVAILABLE_IN_COURT', 'null']): + raise ValueError("must be one of enum values ('CURRENTLY_UNAVAILABLE_IN_COURT', 'NO_LONGER_AVAILABLE_IN_COURT', 'null')") return value model_config = ConfigDict( diff --git a/unicourt/model/case_document.py b/unicourt/model/case_document.py index f741cbc..9dc1fc3 100644 --- a/unicourt/model/case_document.py +++ b/unicourt/model/case_document.py @@ -45,7 +45,7 @@ class CaseDocument(BaseModel): estimated_order_duration: Optional[Annotated[str, Field(min_length=10, strict=True, max_length=25)]] = Field(default='estimateUnavailable', description="Estimated duration of a Order.", alias="estimatedOrderDuration") download_api: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="Link to either view the document if it is downloaded and already present in the UniCourt CrowdSourced Library.", alias="downloadAPI") first_fetch_date: Optional[Annotated[str, Field(min_length=25, strict=True, max_length=25)]] = Field(default=None, description="Is the date when the document was first fetched from the court site.", alias="firstFetchDate") - source_data_status: Optional[StrictStr] = Field(default=None, description="The status of source data of document. If the value of sourceDataStatus is SOURCE_DEPRECATED then it means that the Document has been migrated from old court site to a new court site and the data being shown in the API response is from a old court site. If the sourceDataStatus is NO_LONGER_AVAILABLE_IN_COURT then it means that a particular case is invalid in the court site.", alias="sourceDataStatus") + source_data_status: Optional[StrictStr] = Field(default=None, description="The status of source data of document. If the value of sourceDataStatus is SOURCE_DEPRECATED then it means that the Document has been migrated from old court site to a new court site and the data being shown in the API response is from a old court site. If the sourceDataStatus is CURRENTLY_UNAVAILABLE_IN_COURT then it means that a particular document currently not available in the court site.", alias="sourceDataStatus") __properties: ClassVar[List[str]] = ["object", "caseDocumentId", "sortOrder", "name", "description", "documentFiledDate", "parentDocumentId", "childDocumentIdArray", "pages", "isPreviewAvailable", "previewDocument", "price", "inLibrary", "addedToLibraryDate", "estimatedOrderDuration", "downloadAPI", "firstFetchDate", "sourceDataStatus"] @field_validator('estimated_order_duration') @@ -64,8 +64,8 @@ def source_data_status_validate_enum(cls, value): if value is None: return value - if value not in set(['NO_LONGER_AVAILABLE_IN_COURT', 'SEALED', 'null']): - raise ValueError("must be one of enum values ('NO_LONGER_AVAILABLE_IN_COURT', 'SEALED', 'null')") + if value not in set(['CURRENTLY_UNAVAILABLE_IN_COURT', 'NO_LONGER_AVAILABLE_IN_COURT', 'SEALED', 'null']): + raise ValueError("must be one of enum values ('CURRENTLY_UNAVAILABLE_IN_COURT', 'NO_LONGER_AVAILABLE_IN_COURT', 'SEALED', 'null')") return value model_config = ConfigDict( From 2094ecd194ac73a5262efc464946291eff2db134 Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Thu, 20 Nov 2025 18:02:49 +0530 Subject: [PATCH 02/21] Update typing-extensions dependency version in pyproject.toml and requirements.txt to 4.14.1 --- pyproject.toml | 2 +- requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b501bde..6f1e984 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,7 +15,7 @@ python = "^3.7" urllib3 = ">= 1.25.3" python-dateutil = ">=2.8.2" pydantic = ">=2" -typing-extensions = ">=4.7.1" +typing-extensions = ">=4.14.1" [tool.poetry.dev-dependencies] pytest = ">=7.2.1" diff --git a/requirements.txt b/requirements.txt index cc85509..5b0ac05 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,4 +2,4 @@ python_dateutil >= 2.5.3 setuptools >= 21.0.0 urllib3 >= 1.25.3, < 2.1.0 pydantic >= 2 -typing-extensions >= 4.7.1 +typing-extensions >= 4.14.1 From 92d54a2deb0e9e3aed028dc474315f8b1e492a90 Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Thu, 20 Nov 2025 18:11:07 +0530 Subject: [PATCH 03/21] Dev2 (#1) * Added enum CURRENTLY_UNAVAILABLE_IN_COURT * Added enum CURRENTLY_UNAVAILABLE_IN_COURT (#26) * Update typing-extensions dependency version in pyproject.toml and requirements.txt to 4.14.1 --- pyproject.toml | 2 +- requirements.txt | 2 +- unicourt/model/case.py | 6 +++--- unicourt/model/case_document.py | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b501bde..6f1e984 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,7 +15,7 @@ python = "^3.7" urllib3 = ">= 1.25.3" python-dateutil = ">=2.8.2" pydantic = ">=2" -typing-extensions = ">=4.7.1" +typing-extensions = ">=4.14.1" [tool.poetry.dev-dependencies] pytest = ">=7.2.1" diff --git a/requirements.txt b/requirements.txt index cc85509..5b0ac05 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,4 +2,4 @@ python_dateutil >= 2.5.3 setuptools >= 21.0.0 urllib3 >= 1.25.3, < 2.1.0 pydantic >= 2 -typing-extensions >= 4.7.1 +typing-extensions >= 4.14.1 diff --git a/unicourt/model/case.py b/unicourt/model/case.py index b3cab67..d09869f 100644 --- a/unicourt/model/case.py +++ b/unicourt/model/case.py @@ -62,7 +62,7 @@ class Case(BaseModel): last_fetch_date: Optional[datetime] = Field(default=None, description="The date and time when the case was last fetched from the Court. This date and time is in UTC. Formatted as YYYY-MM-DDTHH:MM:SS+ZZ:zz, Note: It is not necessary that every time the case is fetched from Court we find changes in the case information. It could be that we already have the latest information from the Court and no changes exist.", alias="lastFetchDate") last_fetch_date_with_updates: Optional[datetime] = Field(default=None, description="The date and time when the case was last fetched from the Court where we found changes in the case information. This date and time is in UTC. Formatted as YYYY-MM-DDTHH:MM:SS+ZZ:zz,", alias="lastFetchDateWithUpdates") participants_last_fetch_date: Optional[datetime] = Field(default=None, description="The date and time when parties/attorneys were last updated from the Court. Formatted as YYYY-MM-DDTHH:MM:SS+ZZ:zz, Note: This is currently applicable for Federal PACER cases since we have an option to exclude parties and fetch only latest docket entries when updating cases to save PACER fees.", alias="participantsLastFetchDate") - source_data_status: Optional[StrictStr] = Field(default=None, description="The status of source data of case. If the value of sourceDataStatus is SOURCE_DEPRECATED then it means that the Case has been migrated from old court site to a new court site and the data being shown in the API response is from a old court site. If the sourceDataStatus is NO_LONGER_AVAILABLE_IN_COURT then it means that a particular case is invalid in the court site.", alias="sourceDataStatus") + source_data_status: Optional[StrictStr] = Field(default=None, description="The status of source data of case. If the value of sourceDataStatus is SOURCE_DEPRECATED then it means that the Case has been migrated from old court site to a new court site and the data being shown in the API response is from a old court site. If the sourceDataStatus is CURRENTLY_UNAVAILABLE_IN_COURT then it means that a particular case is currently not available in the court site.", alias="sourceDataStatus") source_case_data: Optional[SourceCaseData] = Field(default=None, alias="sourceCaseData") has_documents_with_preview: Optional[StrictBool] = Field(default=None, description="This field will be set to TRUE if atleast one document has a preview.", alias="hasDocumentsWithPreview") export_api: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="When a case is beyond the threshold of entities we provide this link so that the user can request and get all the data of the case with one additional call. This data will be zipped and sent via a webhoook.", alias="exportAPI") @@ -82,8 +82,8 @@ def source_data_status_validate_enum(cls, value): if value is None: return value - if value not in set(['NO_LONGER_AVAILABLE_IN_COURT', 'null']): - raise ValueError("must be one of enum values ('NO_LONGER_AVAILABLE_IN_COURT', 'null')") + if value not in set(['CURRENTLY_UNAVAILABLE_IN_COURT', 'NO_LONGER_AVAILABLE_IN_COURT', 'null']): + raise ValueError("must be one of enum values ('CURRENTLY_UNAVAILABLE_IN_COURT', 'NO_LONGER_AVAILABLE_IN_COURT', 'null')") return value model_config = ConfigDict( diff --git a/unicourt/model/case_document.py b/unicourt/model/case_document.py index f741cbc..9dc1fc3 100644 --- a/unicourt/model/case_document.py +++ b/unicourt/model/case_document.py @@ -45,7 +45,7 @@ class CaseDocument(BaseModel): estimated_order_duration: Optional[Annotated[str, Field(min_length=10, strict=True, max_length=25)]] = Field(default='estimateUnavailable', description="Estimated duration of a Order.", alias="estimatedOrderDuration") download_api: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="Link to either view the document if it is downloaded and already present in the UniCourt CrowdSourced Library.", alias="downloadAPI") first_fetch_date: Optional[Annotated[str, Field(min_length=25, strict=True, max_length=25)]] = Field(default=None, description="Is the date when the document was first fetched from the court site.", alias="firstFetchDate") - source_data_status: Optional[StrictStr] = Field(default=None, description="The status of source data of document. If the value of sourceDataStatus is SOURCE_DEPRECATED then it means that the Document has been migrated from old court site to a new court site and the data being shown in the API response is from a old court site. If the sourceDataStatus is NO_LONGER_AVAILABLE_IN_COURT then it means that a particular case is invalid in the court site.", alias="sourceDataStatus") + source_data_status: Optional[StrictStr] = Field(default=None, description="The status of source data of document. If the value of sourceDataStatus is SOURCE_DEPRECATED then it means that the Document has been migrated from old court site to a new court site and the data being shown in the API response is from a old court site. If the sourceDataStatus is CURRENTLY_UNAVAILABLE_IN_COURT then it means that a particular document currently not available in the court site.", alias="sourceDataStatus") __properties: ClassVar[List[str]] = ["object", "caseDocumentId", "sortOrder", "name", "description", "documentFiledDate", "parentDocumentId", "childDocumentIdArray", "pages", "isPreviewAvailable", "previewDocument", "price", "inLibrary", "addedToLibraryDate", "estimatedOrderDuration", "downloadAPI", "firstFetchDate", "sourceDataStatus"] @field_validator('estimated_order_duration') @@ -64,8 +64,8 @@ def source_data_status_validate_enum(cls, value): if value is None: return value - if value not in set(['NO_LONGER_AVAILABLE_IN_COURT', 'SEALED', 'null']): - raise ValueError("must be one of enum values ('NO_LONGER_AVAILABLE_IN_COURT', 'SEALED', 'null')") + if value not in set(['CURRENTLY_UNAVAILABLE_IN_COURT', 'NO_LONGER_AVAILABLE_IN_COURT', 'SEALED', 'null']): + raise ValueError("must be one of enum values ('CURRENTLY_UNAVAILABLE_IN_COURT', 'NO_LONGER_AVAILABLE_IN_COURT', 'SEALED', 'null')") return value model_config = ConfigDict( From 3eefccf2870ef22dc2a28b01b157b0f5d8b7d63d Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Thu, 20 Nov 2025 18:18:14 +0530 Subject: [PATCH 04/21] Update typing-extensions dependency version in setup.py to 4.14.1 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 072b524..5292b1b 100644 --- a/setup.py +++ b/setup.py @@ -31,7 +31,7 @@ def _generate_description(): "urllib3 >= 1.25.3, < 2.1.0", "python-dateutil", "pydantic >= 2", - "typing-extensions >= 4.7.1", + "typing-extensions >= 4.14.1", ] setup( From 8956b34a2e992070e81afc9c49da025112276d0a Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Thu, 20 Nov 2025 18:19:20 +0530 Subject: [PATCH 05/21] Dev2-test2 (#2) * Added enum CURRENTLY_UNAVAILABLE_IN_COURT * Added enum CURRENTLY_UNAVAILABLE_IN_COURT (#26) * Update typing-extensions dependency version in pyproject.toml and requirements.txt to 4.14.1 * Update typing-extensions dependency version in setup.py to 4.14.1 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 072b524..5292b1b 100644 --- a/setup.py +++ b/setup.py @@ -31,7 +31,7 @@ def _generate_description(): "urllib3 >= 1.25.3, < 2.1.0", "python-dateutil", "pydantic >= 2", - "typing-extensions >= 4.7.1", + "typing-extensions >= 4.14.1", ] setup( From fbe7c4baef6289632f6dcaa4d509d2e1a29dc6e9 Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Thu, 20 Nov 2025 18:43:23 +0530 Subject: [PATCH 06/21] Revert "Dev2-test2 (#2)" (#3) This reverts commit 8956b34a2e992070e81afc9c49da025112276d0a. --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 5292b1b..072b524 100644 --- a/setup.py +++ b/setup.py @@ -31,7 +31,7 @@ def _generate_description(): "urllib3 >= 1.25.3, < 2.1.0", "python-dateutil", "pydantic >= 2", - "typing-extensions >= 4.14.1", + "typing-extensions >= 4.7.1", ] setup( From e183a27ab91381cb95f9fb73097c8ea0c3bd7d18 Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Thu, 20 Nov 2025 18:46:13 +0530 Subject: [PATCH 07/21] Dev2-test3 (#4) * Update typing-extensions dependency version in setup.py to 4.14.1 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 072b524..5292b1b 100644 --- a/setup.py +++ b/setup.py @@ -31,7 +31,7 @@ def _generate_description(): "urllib3 >= 1.25.3, < 2.1.0", "python-dateutil", "pydantic >= 2", - "typing-extensions >= 4.7.1", + "typing-extensions >= 4.14.1", ] setup( From ebc5df8edb96f819e770d1b985ef322b059f1aff Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Fri, 21 Nov 2025 09:47:12 +0530 Subject: [PATCH 08/21] Updated the test data with data returning status code 200 --- test/test_case_analytics_api.py | 8 ++++---- test/test_case_docket_api.py | 2 +- test/test_law_firm_analytics_api.py | 14 +++++++------- test/test_party_analytics_api.py | 14 +++++++------- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/test/test_case_analytics_api.py b/test/test_case_analytics_api.py index c55b62f..d1dbb2a 100644 --- a/test/test_case_analytics_api.py +++ b/test/test_case_analytics_api.py @@ -96,16 +96,16 @@ def test_get_case_count_analytics_by_opposing_norm_attorney_for_a_norm_attorney( def test_get_case_count_analytics_by_opposing_norm_law_firm_for_a_norm_law_firm(): return CaseAnalytics.get_case_count_analytics_by_opposing_norm_law_firm_for_a_norm_law_firm( - norm_law_firm_id='NORGrPmQyLdx9NGHcT', + norm_law_firm_id='NORGVHdWCDN7D6Ayn3', page_number=1, - q='caseTypeId:"CTYPATMYyaJekdgj2c" AND caseFiledDate:[2017-01-01T00:00:00+00:00TO2021-11-30T00:00:00+00:00]' + q='caseTypeId:"CTYPNjbKTN7Yfo2wdb" AND caseFiledDate:[2017-01-01T00:00:00+00:00 TO 2025-11-30T00:00:00+00:00]' ) def test_get_case_count_analytics_by_opposing_norm_party_for_a_norm_party(): return CaseAnalytics.get_case_count_analytics_by_opposing_norm_party_for_a_norm_party( - norm_party_id='NORGrPmQyLdx9NGHcT', + norm_party_id='NORGaSAiNLuy6J4uy5', page_number=1, - q='caseTypeId:"CTYPATMYyaJekdgj2c" AND caseFiledDate:[2017-01-01T00:00:00+00:00TO2021-11-30T00:00:00+00:00]' + q='caseTypeId:"CTYPiVk7MPJoRXGqMP" AND caseFiledDate:[2017-01-01T00:00:00+00:00 TO 2025-11-30T00:00:00+00:00]' ) def test_get_case_count_analytics_by_party_role(): diff --git a/test/test_case_docket_api.py b/test/test_case_docket_api.py index fc4e031..6e7e47d 100644 --- a/test/test_case_docket_api.py +++ b/test/test_case_docket_api.py @@ -14,7 +14,7 @@ def test_get_attorney_by_id(): def test_get_case(): return CaseDocket.get_case( - case_id='CASEakfbd1817d7431', + case_id='CASEgfe4e3a490fe24', ) def test_get_case_attorneys(): diff --git a/test/test_law_firm_analytics_api.py b/test/test_law_firm_analytics_api.py index 7188478..d47fa60 100644 --- a/test/test_law_firm_analytics_api.py +++ b/test/test_law_firm_analytics_api.py @@ -4,28 +4,28 @@ class TestLawFirmAnalytics: def test_get_norm_attorneys_associated_with_norm_law_firm(): return LawFirmAnalytics.get_norm_attorneys_associated_with_norm_law_firm( - norm_law_firm_id='NORGrPmQyLdx9NGHcT', + norm_law_firm_id='NORGVHdWCDN7D6Ayn3', page_number=1, - q='caseTypeId:"CTYPATMYyaJekdgj2c" AND caseFiledDate:[2017-01-01T00:00:00+00:00TO2021-11-30T00:00:00+00:00]' + q='caseTypeId:"CTYPNjbKTN7Yfo2wdb" AND caseFiledDate:[2017-01-01T00:00:00+00:00 TO 2025-11-30T00:00:00+00:00]' ) def test_get_norm_judges_associated_with_norm_law_firm(): return LawFirmAnalytics.get_norm_judges_associated_with_norm_law_firm( - norm_law_firm_id='NORGrPmQyLdx9NGHcT', + norm_law_firm_id='NORGVHdWCDN7D6Ayn3', page_number=1, - q='caseTypeId:"CTYPATMYyaJekdgj2c" AND caseFiledDate:[2017-01-01T00:00:00+00:00TO2021-11-30T00:00:00+00:00]' + q='caseTypeId:"CTYPNjbKTN7Yfo2wdb" AND caseFiledDate:[2017-01-01T00:00:00+00:00 TO 2025-11-30T00:00:00+00:00]' ) def test_get_norm_law_firm_by_id(): return LawFirmAnalytics.get_norm_law_firm_by_id( - norm_law_firm_id='NORGDiJQPjeed2mtvx' + norm_law_firm_id='NORGVHdWCDN7D6Ayn3' ) def test_get_norm_parties_associated_with_norm_law_firm(): return LawFirmAnalytics.get_norm_parties_associated_with_norm_law_firm( - norm_law_firm_id='NORGrPmQyLdx9NGHcT', + norm_law_firm_id='NORGVHdWCDN7D6Ayn3', page_number=1, - q='caseTypeId:"CTYPATMYyaJekdgj2c" AND caseFiledDate:[2017-01-01T00:00:00+00:00TO2021-11-30T00:00:00+00:00]' + q='caseTypeId:"CTYPNjbKTN7Yfo2wdb" AND caseFiledDate:[2017-01-01T00:00:00+00:00 TO 2025-11-30T00:00:00+00:00]' ) def test_search_normalized_law_firms(): diff --git a/test/test_party_analytics_api.py b/test/test_party_analytics_api.py index 255e3ef..9a4ea95 100644 --- a/test/test_party_analytics_api.py +++ b/test/test_party_analytics_api.py @@ -4,28 +4,28 @@ class TestPartyAnalytics: def test_get_norm_attorneys_associated_with_norm_party(): return PartyAnalytics.get_norm_attorneys_associated_with_norm_party( - q='caseTypeId:"CTYPATMYyaJekdgj2c" AND caseFiledDate:[2017-01-01T00:00:00+00:00TO2021-11-30T00:00:00+00:00]', - norm_party_id='NORGrPmQyLdx9NGHcT', + q='caseTypeId:"CTYPMrcrvoUeZHmsgk" AND caseFiledDate:[2017-01-01T00:00:00+00:00 TO 2025-11-30T00:00:00+00:00]', + norm_party_id='NORGVppBo6fB829yV9', page_number=1 ) def test_get_norm_judges_associated_with_norm_party(): return PartyAnalytics.get_norm_judges_associated_with_norm_party( - norm_party_id='NORGrPmQyLdx9NGHcT', + norm_party_id='NORGVppBo6fB829yV9', page_number=1, - q='caseTypeId:"CTYPATMYyaJekdgj2c" AND caseFiledDate:[2017-01-01T00:00:00+00:00TO2021-11-30T00:00:00+00:00]' + q='caseTypeId:"CTYPMrcrvoUeZHmsgk" AND caseFiledDate:[2017-01-01T00:00:00+00:00 TO 2025-11-30T00:00:00+00:00]', ) def test_get_norm_law_firms_associated_with_norm_party(): return PartyAnalytics.get_norm_law_firms_associated_with_norm_party( - norm_party_id='NORGrPmQyLdx9NGHcT', + norm_party_id='NORGVppBo6fB829yV9', page_number=1, - q='caseTypeId:"CTYPATMYyaJekdgj2c" AND caseFiledDate:[2017-01-01T00:00:00+00:00TO2021-11-30T00:00:00+00:00]' + q='caseTypeId:"CTYPMrcrvoUeZHmsgk" AND caseFiledDate:[2017-01-01T00:00:00+00:00 TO 2025-11-30T00:00:00+00:00]', ) def test_get_norm_party_by_id(): return PartyAnalytics.get_norm_party_by_id( - norm_party_id='NORGrPmQyLdx9NGHcT' + norm_party_id='NORGVppBo6fB829yV9' ) def test_search_normalized_parties(): From 18a44a95554109e1d5244deb5e4ef90b737e4f24 Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Fri, 21 Nov 2025 09:57:59 +0530 Subject: [PATCH 09/21] Update README.md to simplify test execution instructions and improve clarity and specify proper working directory for the tests to run --- test/README.md | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/test/README.md b/test/README.md index 2ad4fca..898a2de 100644 --- a/test/README.md +++ b/test/README.md @@ -5,41 +5,42 @@ To run the SDK tests you need python >= 3.7 and Git installed. ## Test Parameters +Note: Ensure you are in the UniCourt SDK test directory - Run all tests - - python3 enterprise-api-py-sdk/test/base.py + - python3 base.py - Exclude given test cases using --exclude - - python3 enterprise-api-py-sdk/test/base.py --exclude TestPacer,TestPacerCredentials + - python3 base.py --exclude TestPacer,TestPacerCredentials - Run only specific test cases using --include - - python3 enterprise-api-py-sdk/test/base.py --include TestCaseSearch,TestCourtStandards - + - python3 base.py --include TestCaseSearch,TestCourtStandards **Method 1 :** Execute below given steps in the terminal -``` - pip install unicourt - - git clone https://github.com/UniCourt/enterprise-api-py-sdk.git +```shell +# Install UniCourt SDK +pip install unicourt - EXPORT CLIENT_ID=”G3cfixgetVzfaoszGOBp5LPGtih1nMJ9” +# Clone UniCourt SDK repository from Github +git clone https://github.com/UniCourt/enterprise-api-py-sdk.git - EXPORT CLIENT_SECRET=”u6PTti57IjPlrwU5MzOwLBD2MCwx-IEbo8sTStTivh1I-EqQ8Jcm27Gf” +# Replace the below credentials with your credentials +export CLIENT_ID=”G3cfixgetVzfaoszGOBp5LPGtih1nMJ9” +export CLIENT_SECRET=”u6PTti57IjPlrwU5MzOwLBD2MCwx-IEbo8sTStTivh1I-EqQ8Jcm27Gf” +export PACER_CLIENT_CODE=”xyz_client_code” +export PACER_USER_ID=”pcrid” +export CLIENT_ID=”client_id” - EXPORT PACER_CLIENT_CODE=”xyz_client_code” +# Move the to the test directory in the UniCourt SDK repository +cd enterprise-api-py-sdk/test/ - EXPORT PACER_USER_ID=”pcrid” - - EXPORT CLIENT_ID=”client_id” - - python3 enterprise-api-py-sdk/test/base.py --exclude TestPacer +# Run the tests +python3 base.py --exclude TestPacer ``` **Method 2 :** Use the Dockerfile in the test directory. Open up the terminal and run the below given command -``` +```shell docker build -t test_unicourt_sdk --build-arg SDK_VERSION=1.0 --build-arg CLIENT_ID=G3cfixgetVzfaoszGOBp5LPGtih1nMJ9 --build-arg CLIENT_SECRET=u6PTti57IjPlrwU5MzOwLBD2MCwx-IEbo8sTStTivh1I-EqQ8Jcm27Gfo2GhpHCw --build-arg PACER_CLIENT_CODE=xyz_client_code --build-arg PACER_USER_ID=pcrid . ``` - Above command will execute the tests and the results are printed out on the terminal. - From 923f5a278af87aad950427e24d8215aaa6d1260f Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Fri, 21 Nov 2025 10:02:07 +0530 Subject: [PATCH 10/21] Refactor README.md to standardize environment variable formatting and improve clarity --- test/README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/test/README.md b/test/README.md index 898a2de..5c971fd 100644 --- a/test/README.md +++ b/test/README.md @@ -24,11 +24,10 @@ pip install unicourt git clone https://github.com/UniCourt/enterprise-api-py-sdk.git # Replace the below credentials with your credentials -export CLIENT_ID=”G3cfixgetVzfaoszGOBp5LPGtih1nMJ9” -export CLIENT_SECRET=”u6PTti57IjPlrwU5MzOwLBD2MCwx-IEbo8sTStTivh1I-EqQ8Jcm27Gf” -export PACER_CLIENT_CODE=”xyz_client_code” -export PACER_USER_ID=”pcrid” -export CLIENT_ID=”client_id” +export CLIENT_ID="client_id" +export CLIENT_SECRET="client_secret" +export PACER_CLIENT_CODE="xyz_client_code" +export PACER_USER_ID="pcrid" # Move the to the test directory in the UniCourt SDK repository cd enterprise-api-py-sdk/test/ From 49bdb96cb52f7ec8984bd1198c5f45370dcce5c5 Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Fri, 21 Nov 2025 10:21:13 +0530 Subject: [PATCH 11/21] Bumped unicourt SDK patch version in setup.py --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 5292b1b..6295de3 100644 --- a/setup.py +++ b/setup.py @@ -25,7 +25,7 @@ def _generate_description(): # prerequisite: setuptools # http://pypi.python.org/pypi/setuptools NAME = "unicourt" -VERSION = "1.1.0" +VERSION = "1.1.1" PYTHON_REQUIRES = ">=3.7" REQUIRES = [ "urllib3 >= 1.25.3, < 2.1.0", From f45c8c755979ea73bf68b5855e3b152093c1a129 Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Fri, 21 Nov 2025 16:06:36 +0530 Subject: [PATCH 12/21] added workflow_dispatch --- .github/workflows/run_sdk_test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/run_sdk_test.yml b/.github/workflows/run_sdk_test.yml index 197a21d..6b1fe43 100644 --- a/.github/workflows/run_sdk_test.yml +++ b/.github/workflows/run_sdk_test.yml @@ -5,6 +5,7 @@ on: types: [closed] branches: - main + workflow_dispatch: jobs: test: runs-on: ubuntu-latest From 88b401a0247d6b057df12493ad64f76152b0e90f Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Fri, 21 Nov 2025 17:55:21 +0530 Subject: [PATCH 13/21] Enhance README.md with contributing guidelines and GitHub Actions details --- README.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d9c8f16..0fc9efe 100644 --- a/README.md +++ b/README.md @@ -104,4 +104,22 @@ SDK will throw Python error exceptions in the below mentioned scenario's. reason Value error, must be one of enum values ('issueAtTheCourtSource', 'notIntegrated', 'brokenIntegration') [type=value_error, input_value='underMaintenance', input_type=str] For further information visit https://errors.pydantic.dev/2.8/v/value_error - ``` \ No newline at end of file + ``` + +## Contributing + +To contribute to this project: + +1. Create a pull request targeting the [dev-1.1.x](https://github.com/UniCourt/enterprise-api-py-sdk/tree/dev-1.1.x) branch. +2. Repository maintainer will review and merge the PR into the [dev-1.1.x](https://github.com/UniCourt/enterprise-api-py-sdk/tree/dev-1.1.x) branch. +3. Repository maintainer will create a PR from [dev-1.1.x](https://github.com/UniCourt/enterprise-api-py-sdk/tree/dev-1.1.x) to the [main](https://github.com/UniCourt/enterprise-api-py-sdk/tree/main) branch. + - Merging this PR triggers a GitHub Actions workflow that verifies the changes. +4. After verification, repository maintainer will create a tag and release. + +## GitHub Actions + +The GitHub Actions workflow builds and installs the SDK from source, then runs tests that call the APIs using the SDK. + +**Test Account:** +- Account Name: Enterprise API Team SDK Github Test Account +- Account ID: p1651099774 \ No newline at end of file From b2c75466ef8088acb24b0c1aed538a3d0194e486 Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Fri, 21 Nov 2025 18:06:07 +0530 Subject: [PATCH 14/21] Update README.md to clarify the process for merging pull requests and creating releases after GitHub Actions verification --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0fc9efe..3a0c4fc 100644 --- a/README.md +++ b/README.md @@ -112,9 +112,10 @@ To contribute to this project: 1. Create a pull request targeting the [dev-1.1.x](https://github.com/UniCourt/enterprise-api-py-sdk/tree/dev-1.1.x) branch. 2. Repository maintainer will review and merge the PR into the [dev-1.1.x](https://github.com/UniCourt/enterprise-api-py-sdk/tree/dev-1.1.x) branch. + - **Note:** Before merging, the maintainer ensures the [main](https://github.com/UniCourt/enterprise-api-py-sdk/tree/main) and [dev-1.1.x](https://github.com/UniCourt/enterprise-api-py-sdk/tree/dev-1.1.x) branches are in sync. 3. Repository maintainer will create a PR from [dev-1.1.x](https://github.com/UniCourt/enterprise-api-py-sdk/tree/dev-1.1.x) to the [main](https://github.com/UniCourt/enterprise-api-py-sdk/tree/main) branch. - Merging this PR triggers a GitHub Actions workflow that verifies the changes. -4. After verification, repository maintainer will create a tag and release. +4. After Github Actions is completed, repository maintainer will create a tag and release. ## GitHub Actions From 72a0ac05b5c694b737b3c8f3be24bd8f5babf3aa Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Fri, 21 Nov 2025 18:17:03 +0530 Subject: [PATCH 15/21] Fix typo in README.md regarding request arguments in SDK functions --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3a0c4fc..aa25b56 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ Authentication.invalidate_token() ## Python Error Exceptions SDK will throw Python error exceptions in the below mentioned scenario's. -- When the request agruments or data passed to the SDK functions are incorrect. +- When the request arguments or data passed to the SDK functions are incorrect. Example : ``` From 2107b56937ed168838cd9d56f5dbee72a2242be1 Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Fri, 21 Nov 2025 18:28:38 +0530 Subject: [PATCH 16/21] Update README.md to rename 'Contributing' section to 'Merging and Release Process' and clarify the workflow for merging contributions and releases. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index aa25b56..0daa1c1 100644 --- a/README.md +++ b/README.md @@ -106,9 +106,9 @@ SDK will throw Python error exceptions in the below mentioned scenario's. For further information visit https://errors.pydantic.dev/2.8/v/value_error ``` -## Contributing +## Merging and Release Process -To contribute to this project: +The Workflow for merging contributions and releasing: 1. Create a pull request targeting the [dev-1.1.x](https://github.com/UniCourt/enterprise-api-py-sdk/tree/dev-1.1.x) branch. 2. Repository maintainer will review and merge the PR into the [dev-1.1.x](https://github.com/UniCourt/enterprise-api-py-sdk/tree/dev-1.1.x) branch. From 6a14782002eebe2b3b7e6630f8d32b669e1b67f6 Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Fri, 21 Nov 2025 18:35:35 +0530 Subject: [PATCH 17/21] Remove redundant introductory line from 'Merging and Release Process' section in README.md for improved clarity. --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 0daa1c1..ae8b754 100644 --- a/README.md +++ b/README.md @@ -108,8 +108,6 @@ SDK will throw Python error exceptions in the below mentioned scenario's. ## Merging and Release Process -The Workflow for merging contributions and releasing: - 1. Create a pull request targeting the [dev-1.1.x](https://github.com/UniCourt/enterprise-api-py-sdk/tree/dev-1.1.x) branch. 2. Repository maintainer will review and merge the PR into the [dev-1.1.x](https://github.com/UniCourt/enterprise-api-py-sdk/tree/dev-1.1.x) branch. - **Note:** Before merging, the maintainer ensures the [main](https://github.com/UniCourt/enterprise-api-py-sdk/tree/main) and [dev-1.1.x](https://github.com/UniCourt/enterprise-api-py-sdk/tree/dev-1.1.x) branches are in sync. From 88dcdda9d2eaeb85f31eb577e5ac390a88f30e8c Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Mon, 24 Nov 2025 11:42:31 +0530 Subject: [PATCH 18/21] Update README.md to add a note about GitHub Actions workflow limitations for pull requests from forks, enhancing clarity on the merging process. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ae8b754..a2a7277 100644 --- a/README.md +++ b/README.md @@ -115,6 +115,8 @@ SDK will throw Python error exceptions in the below mentioned scenario's. - Merging this PR triggers a GitHub Actions workflow that verifies the changes. 4. After Github Actions is completed, repository maintainer will create a tag and release. +**Note:** This process is necessary because pull requests from forks cannot access repository secrets, causing GitHub Actions workflows to fail. + ## GitHub Actions The GitHub Actions workflow builds and installs the SDK from source, then runs tests that call the APIs using the SDK. From c7e634b73eb5c6c09f170781b1726ff1c889768f Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Mon, 24 Nov 2025 13:03:39 +0530 Subject: [PATCH 19/21] Refactor README.md to enhance clarity on installation instructions, command-line argument usage, and update section headings for better organization. --- README.md | 85 +++++++++++++++++++++---------------------------------- 1 file changed, 33 insertions(+), 52 deletions(-) diff --git a/README.md b/README.md index a2a7277..2dbd5e3 100644 --- a/README.md +++ b/README.md @@ -10,45 +10,51 @@ See the UniCourt data model here (requires UniCourt account): [UniCourt Data Mod ### Requirements -- Python >=3.7 +- Python >=3.7 ## Installation -You can use the source code if you want to modify the package and use it as per your need. If you just want to use the package, just run: -```sh +To customize the package, you can modify the source code as needed. +If you simply want to use the package, install it with: + +```shell pip install --upgrade unicourt ``` -Install from source : +Install from source: -```sh +```shell python setup.py install ``` ## Pre-request and Configuration -You need a UniCourt account with API access : [Subscription Plans](https://unicourt.com/pricing) +Requires UniCourt account with API access : [Subscription Plans](https://unicourt.com/pricing) -You will find clientId and secret here: [Client Secrets](https://app.unicourt.com/developers/enterpriseAPI) +ClientId and Client secrets can be found here: [Client Secrets](https://app.unicourt.com/developers/enterpriseAPI) ## Getting Started -The Python script you see here takes two command line arguments i.e clientId and secret, to execute the script copy and paste the code to a file (sample.py) and run the script in a terminal as shown in the example below. +This Python script accepts two command-line arguments: clientId and ClientSecret. +To run it, copy the code into a file (e.g., sample.py) and execute it in your terminal as shown below: Example : -- python sample.py [your client id] [your secret] -- python sample.py G3cfixgetVzfaoszGOBp5LPGtih1nMJ9 u6PTti57IjPlrwU5MzOwLBD2MCwx-IEbo8sTStTivh1I-EqQ8Jcm27Gfo2GhpHCw +- `python sample.py [your client id] [your client secret]` +- `python sample.py G3cfixgetVzfaoszGOBp5LPGtih1nMJ9 u6PTti57IjPlrwU5MzOwLBD2MCwx-IEbo8sTStTivh1I-EqQ8Jcm27Gfo2GhpHCw` ```python -import unicourt -from unicourt import * - -# Get CLIENT_ID and CLIENT_SECRET from your account -unicourt.CLIENT_ID = "G3cfixgetVzfaoszGOBp5LPGtih1nMJ9" -unicourt.CLIENT_SECRET = "u6PTti57IjPlrwU5MzOwLBD2MCwx-IEbo8sTStTivh1I-EqQ8Jcm27Gfo2GhpHCw" +import sys -# Authenticate to generate a access token, below line will return -# a tuple consisting of authentication object and http status code. -# You can generate up to 10 authentication tokens so be sure to use -# invalidate_token() method to invalidate the token once you are done -# or store the token securely and use it for subsequent requests. +import unicourt +from unicourt import AttorneyAnalytics, Authentication, CourtStandards, JudgeAnalytics + +# Get CLIENT_ID and CLIENT_SECRET from command line arguments +if len(sys.argv) >= 3: + unicourt.CLIENT_ID = sys.argv[1] + unicourt.CLIENT_SECRET = sys.argv[2] +else: + raise ValueError("CLIENT_ID and CLIENT_SECRET must be provided via command line arguments.") + +# Generate new access token using CLIENT_ID and CLIENT_SECRET, the generate_new_token() +# method will return a tuple consisting of authentication object and http status code. +# Note: A maximum of 10 authentication tokens can be active at a time. auth_obj, http_status_code = Authentication.generate_new_token() # Get Area Of Law details. @@ -60,7 +66,6 @@ court_standards_obj, http_status_code = CourtStandards.get_areas_of_law( for court_standard_obj in court_standards_obj.area_of_law_array: print("Area Of Law Id : ", court_standard_obj.area_of_law_id) - # Get Judge details. judge_obj, http_status_code = JudgeAnalytics.search_normalized_judges( q="name:(ANN H. PARK)") @@ -80,33 +85,10 @@ for attorney in attorney_obj.norm_attorney_search_result_array: Authentication.invalidate_token() ``` -## Python Error Exceptions -SDK will throw Python error exceptions in the below mentioned scenario's. -- When the request arguments or data passed to the SDK functions are incorrect. - - Example : - ``` - Callback.get_callbacks() got an unexpected keyword argument 'vardate' - ``` -- When the sever sends any error response. - - Example : - ``` - Reason: Internal Server Error - HTTP response headers: HTTPHeaderDict({'Date': 'Tue, 13 Aug 2024 09:31:41 GMT', 'Content-Type': 'application/json', 'Content-Length': '145', 'Connection': 'keep-alive', 'Apigw-Requestid': 'ccMvJhfYoAMEWzA='}) - HTTP response body: {"object": "Exception", "code": "UN500", "message": "INTERNAL_SERVER_ERROR", "details": "Has encountered a situation which needs to be handled."} - ``` -- When the response has any new values which are not supported by the SDK. This can occur only when using the older version of SDK. - - Example : - ``` - 1 validation error for ServiceStatusDownDetails - reason - Value error, must be one of enum values ('issueAtTheCourtSource', 'notIntegrated', 'brokenIntegration') [type=value_error, input_value='underMaintenance', input_type=str] - For further information visit https://errors.pydantic.dev/2.8/v/value_error - ``` - -## Merging and Release Process +## Important Note On Merging & Release +The below process for merge and release is necessary because all pull requests from forks cannot access repository secrets, causing GitHub Actions workflows to fail. The Github Actions will be successfully completed only if pull requests are merged from the branches within the https://github.com/UniCourt/enterprise-api-py-sdk repository. + +### Merging and Release Process 1. Create a pull request targeting the [dev-1.1.x](https://github.com/UniCourt/enterprise-api-py-sdk/tree/dev-1.1.x) branch. 2. Repository maintainer will review and merge the PR into the [dev-1.1.x](https://github.com/UniCourt/enterprise-api-py-sdk/tree/dev-1.1.x) branch. @@ -115,12 +97,11 @@ SDK will throw Python error exceptions in the below mentioned scenario's. - Merging this PR triggers a GitHub Actions workflow that verifies the changes. 4. After Github Actions is completed, repository maintainer will create a tag and release. -**Note:** This process is necessary because pull requests from forks cannot access repository secrets, causing GitHub Actions workflows to fail. -## GitHub Actions +### GitHub Actions The GitHub Actions workflow builds and installs the SDK from source, then runs tests that call the APIs using the SDK. -**Test Account:** +**Github Actions Test Account:** - Account Name: Enterprise API Team SDK Github Test Account - Account ID: p1651099774 \ No newline at end of file From be6ee4601064022b4adec1a8ee0ed44007a01fc8 Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Thu, 18 Dec 2025 09:56:14 +0530 Subject: [PATCH 20/21] Update version to 1.1.2 and set urllib3 dependency to 2.6.1 in pyproject.toml, requirements.txt, and setup.py --- pyproject.toml | 2 +- requirements.txt | 2 +- setup.py | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 6f1e984..26e83b4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "unicourt" -version = "1.1.0" +version = "1.1.2" description = "UniCourt Enterprise APIs" authors = ["OpenAPI Generator Community "] license = "NoLicense" diff --git a/requirements.txt b/requirements.txt index 5b0ac05..187b541 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ python_dateutil >= 2.5.3 setuptools >= 21.0.0 -urllib3 >= 1.25.3, < 2.1.0 +urllib3 >= 1.25.3 pydantic >= 2 typing-extensions >= 4.14.1 diff --git a/setup.py b/setup.py index 6295de3..ff08caf 100644 --- a/setup.py +++ b/setup.py @@ -25,10 +25,10 @@ def _generate_description(): # prerequisite: setuptools # http://pypi.python.org/pypi/setuptools NAME = "unicourt" -VERSION = "1.1.1" +VERSION = "1.1.2" PYTHON_REQUIRES = ">=3.7" REQUIRES = [ - "urllib3 >= 1.25.3, < 2.1.0", + "urllib3 >= 1.25.3", "python-dateutil", "pydantic >= 2", "typing-extensions >= 4.14.1", From 9ea54533664279ac2d75d083ed848bdf674b33f6 Mon Sep 17 00:00:00 2001 From: Pradeep Singh Date: Thu, 18 Dec 2025 11:03:17 +0530 Subject: [PATCH 21/21] Update authors and repository details in pyproject.toml, and refine keywords for clarity. --- pyproject.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 26e83b4..2ff5b23 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,11 +2,11 @@ name = "unicourt" version = "1.1.2" description = "UniCourt Enterprise APIs" -authors = ["OpenAPI Generator Community "] +authors = ["UniCourt "] license = "NoLicense" readme = "README.md" -repository = "https://github.com/GIT_USER_ID/GIT_REPO_ID" -keywords = ["OpenAPI", "OpenAPI-Generator", "UniCourt Enterprise APIs"] +repository = "https://github.com/UniCourt/enterprise-api-py-sdk/tree/main" +keywords = ["UniCourt Enterprise APIs"] include = ["unicourt/py.typed"] [tool.poetry.dependencies]