A Python client library for the PyST (Python Semantic Taxonomy) API.
This client library provides a Python interface to interact with the PyST API, which is a Knowledge Organization System for Sustainability Assessment. It allows you to programmatically manage and query semantic taxonomies, concepts, and their relationships.
- Python 3.12+
pip install pyst-clientgit clone https://github.com/cauldron/pyst-client.git
cd pyst-client
pip install -e .This client is automatically generated from an OpenAPI specification. You can regenerate it using the following steps:
-
Install the OpenAPI Generator CLI:
$ pip install openapi-generator-cli[jdk4py]
-
Generate the client using the existing configuration:
$ openapi-generator-cli generate -i openapi.json -g python -o . -c generator-config.jsonThe
openapi.jsonfile can be either:- A local file in the project root
- A URL pointing to your PyST API's OpenAPI specification (e.g.,
http://your-api/openapi.json)
Here's a basic example of how to use the client:
import pyst_client
from pyst_client.rest import ApiException
from pprint import pprint
# Configure the client
configuration = pyst_client.Configuration(
host = "http://localhost" # Replace with your PyST server URL
)
# Create an API client
async with pyst_client.ApiClient(configuration) as api_client:
# Create an instance of the Concept API
concept_api = pyst_client.ConceptApi(api_client)
try:
# Create a new concept
concept_create = pyst_client.ConceptCreate(
# Add your concept details here
)
response = await concept_api.concept_create_concept_post(concept_create)
print("Created concept:", response)
except ApiException as e:
print(f"Error creating concept: {e}")The client provides access to the following main API endpoints:
- ConceptApi: Manage concepts and their relationships
- ConceptSchemeApi: Handle concept schemes
- ConceptAssociationApi: Manage concept associations
- CorrespondenceApi: Handle concept correspondences
For detailed API documentation, see the API Reference.
- Clone the repository
- Install development dependencies:
pip install -e ".[dev]"
pytestThis project follows PEP 8 guidelines. To check your code:
flake8This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
All URIs are relative to http://localhost
| Class | Method | HTTP request | Description |
|---|---|---|---|
| ConceptApi | concept_create_concept_post | POST /concept/ | Create a `Concept` object |
| ConceptApi | concept_delete_concept_delete | DELETE /concept/ | Delete a `Concept` object |
| ConceptApi | concept_get_concept_get | GET /concept/ | Get a `Concept` object |
| ConceptApi | concept_search_concept_search_get | GET /concept/search/ | Search for `Concept` objects |
| ConceptApi | concept_suggest_concept_suggest_get | GET /concept/suggest/ | Suggestion search for `Concept` objects |
| ConceptApi | concept_update_concept_put | PUT /concept/ | Update a `Concept` object |
| ConceptApi | relationship_delete_relationships_delete | DELETE /relationships/ | Delete a list of `Concept` relationships |
| ConceptApi | relationships_create_relationships_post | POST /relationships/ | Create a list of `Concept` relationships |
| ConceptApi | relationships_get_relationships_get | GET /relationships/ | Get a list of `Concept` relationships |
| ConceptAssociationApi | association_create_association_post | POST /association/ | Create an `Association` object |
| ConceptAssociationApi | association_delete_association_delete | DELETE /association/ | Delete an `Association` object |
| ConceptAssociationApi | association_get_association_get | GET /association/ | Get an `Association` object |
| ConceptSchemeApi | concept_scheme_create_concept_scheme_post | POST /concept_scheme/ | Create a `ConceptScheme` object |
| ConceptSchemeApi | concept_scheme_delete_concept_scheme_delete | DELETE /concept_scheme/ | Delete a `ConceptScheme` object |
| ConceptSchemeApi | concept_scheme_get_concept_scheme_get | GET /concept_scheme/ | Get a `ConceptScheme` object |
| ConceptSchemeApi | concept_scheme_update_concept_scheme_put | PUT /concept_scheme/ | Update a `ConceptScheme` object |
| CorrespondenceApi | correspondence_create_correspondence_post | POST /correspondence/ | Create a `Correspondence` object |
| CorrespondenceApi | correspondence_delete_correspondence_delete | DELETE /correspondence/ | Delete a `Correspondence` object |
| CorrespondenceApi | correspondence_get_correspondence_get | GET /correspondence/ | Get a `Correspondence` object |
| CorrespondenceApi | correspondence_update_correspondence_put | PUT /correspondence/ | Update a `Correspondence` object |
| CorrespondenceApi | made_of_add_made_of_post | POST /made_of/ | Add some `Correspondence` `madeOf` links |
| CorrespondenceApi | made_of_remove_made_of_delete | DELETE /made_of/ | Remove some `Correspondence` `madeOf` links |
- AssociationInput
- AssociationOutput
- Concept
- ConceptCreate
- ConceptSchemeInput
- ConceptSchemeOutput
- ConceptUpdate
- CorrespondenceInput
- CorrespondenceOutput
- DateTime
- DateTimeType
- HTTPValidationError
- MadeOf
- MultilingualString
- Node
- NonLiteralNote
- Notation
- RelationshipInput
- RelationshipOutput
- SearchResult
- Status
- StatusChoice
- ValidationError
- ValidationErrorLocInner
- VersionString
Endpoints do not require authorization.