Skip to main content

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

Project description

pyst-client

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyst_client-1.0.0.tar.gz (27.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyst_client-1.0.0-py3-none-any.whl (22.0 kB view details)

Uploaded Python 3

File details

Details for the file pyst_client-1.0.0.tar.gz.

File metadata

  • Download URL: pyst_client-1.0.0.tar.gz
  • Upload date:
  • Size: 27.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for pyst_client-1.0.0.tar.gz
Algorithm Hash digest
SHA256 370e48c61453d202c80c48cb397dfa7e4fb8f38783c55df21d742c9ab6e9b8ac
MD5 8eec92a99d6385856f9d5cd1b466d6ab
BLAKE2b-256 54eafd5e5a46f1aa318a97246aad0010f9a54aea08d956a257df86eb363af3d8

See more details on using hashes here.

File details

Details for the file pyst_client-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pyst_client-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 22.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for pyst_client-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 86889ca4591a05b1d1c0d342cec393148ff1ddaaa65448857ee8a60cc390bd32
MD5 47d31ee9c5870e6a415f775a702d8d26
BLAKE2b-256 4db8d1d06feabb297636932b7cb3864158abff12535a726ea6d659e1405095eb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page