Skip to main content

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

Project description

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

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.1.0.tar.gz (28.4 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.1.0-py3-none-any.whl (22.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pyst_client-1.1.0.tar.gz
Algorithm Hash digest
SHA256 f7e657af58fbbac02b14f3dba1e0e4c77a150ad8b6e292ea8116d7d6ba97f7a6
MD5 ff4c526e3283135c63b3dbb61b4cadf6
BLAKE2b-256 377f64d1baf6ee2895b903e7fedcc8d6d993292557453bbfabf30cf137dd9cff

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyst_client-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a587263ca470a8791bf0960e70fdae76e3a0affe927d05d03dfd00af2a5deeb7
MD5 97476b6b48d0808253261011855ab57b
BLAKE2b-256 2bfab7c7ad762d9fd80e3378aae5036264ba3e3db680c7b7a29e67e83a196d5d

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