Skip to content

cauldron/pyst-client

Repository files navigation

pyst-client

PyPI Status Python Version License Tests

A Python client library for the PyST (Python Semantic Taxonomy) API.

Overview

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.

Requirements

  • Python 3.12+

Installation

From PyPI

pip install pyst-client

From Source

git clone https://github.com/cauldron/pyst-client.git
cd pyst-client
pip install -e .

Generating the Client

This client is automatically generated from an OpenAPI specification. You can regenerate it using the following steps:

  1. Install the OpenAPI Generator CLI:

    $ pip install openapi-generator-cli[jdk4py]
  2. Generate the client using the existing configuration:

    $ openapi-generator-cli generate -i openapi.json -g python -o . -c generator-config.json

    The openapi.json file 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)

Usage

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}")

API Documentation

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.

Development

Setup Development Environment

  1. Clone the repository
  2. Install development dependencies:
    pip install -e ".[dev]"

Running Tests

pytest

Code Style

This project follows PEP 8 guidelines. To check your code:

flake8

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Documentation for API Endpoints

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

Documentation For Models

Documentation For Authorization

Endpoints do not require authorization.

Author

About

Client library for the py-semantic-taxonomy API

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •