Skip to main content

Sherpa knowledge import plugins

Project description

Requirements

  • Python 3.8+
  • Flit to put Python packages and modules on PyPI
  • Pydantic for the data parts.

Installation

pip install flit
pip install pyimporters-dummy

Publish the Python Package to PyPI

  • Increment the version of your package in the __init__.py file:
"""An amazing package!"""

__version__ = 'x.y.z'
  • Publish
flit publish

Write your own pyimporters plugin

  • Git clone the pyimporters_dummy project
git clone git@bitbucket.org:kairntech/pyimporters_dummy.git
  • Rename the project with your own format name <new_format>
mv pyimporters_dummy pyimporters_<new_format>
  • Delete the .git directory
rm -r -f pyimporters_<new_format>/.git
  • Change to the new pyimporters_<new_format> directory
cd pyimporters_<new_format>
  • Rename the package directory project
mv pyimporters_dummy pyimporters_<new_format>
  • Rename the python file implementation
mv pyimporters_<new_format>/dummy.py pyimporters_<new_format>/<new_format>.py
  • Rename the python tests file implementation
mv tests/test_dummy.py tests/test_<new_format>.py
  • Edit the pyproject.toml file to change a few lines and add your additional requirements
[tool.flit.metadata]
module = "pyimporters_<new_format>"
...
requires = [
    "pyimporters_plugins>=0.1.61",
    "additional_requirement1",
    "additional_requirement2",
    ...
    "additional_requirementN",
]
dist-name = "pyimporters-<new_format>"
...
[tool.flit.entrypoints."pyimporters.plugins"]
<new_format> = "pyimporters_<new_format>.<new_format>:NewFormatKnowledgeParser"
  • Write the implementation and test of your new format in python using your favorite IDE
@dataclass
class NewFormatOptions(KnowledgeParserOptions):
    """
    Options for the new format knowledge import
    """
    foo : str = Query("bar", description="Dummy parameter")

NewFormatOptionsModel = NewFormatOptions.__pydantic_model__

class NewFormatKnowledgeParser(KnowledgeParserBase):
    def parse(self, source : Path, options: Union[KnowledgeParserOptions, Dict[str, Any]], bar : Bar) -> Generator[Term, None, None]:
        options = NewFormatOptions(**options) if isinstance(options, dict) else options
        # Initialize the progress indicator number of terms to read so that the progress indicator can send feedback to the end user
        bar.max = 100 
        bar.start()
        # yield as many terms as you want, advancing the progress indicator each time
        bar.next()
        yield Term(identifier=options.foo, preferredForm=options.foo)
        # Terminate the progress indicator
        bar.finish()

    @classmethod
    def get_schema(cls) -> KnowledgeParserOptions:
        return NewFormatOptions

    @classmethod
    def get_model(cls) -> Type[BaseModel]:
        return NewFormatOptionsModel

Download files

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

Source Distribution

pyimporters-dummy-0.1.140.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

pyimporters_dummy-0.1.140-py3-none-any.whl (3.5 kB view details)

Uploaded Python 3

File details

Details for the file pyimporters-dummy-0.1.140.tar.gz.

File metadata

  • Download URL: pyimporters-dummy-0.1.140.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.25.1

File hashes

Hashes for pyimporters-dummy-0.1.140.tar.gz
Algorithm Hash digest
SHA256 c8015b5e5310deaa51ff8d49ddd23e7a0a40a08b783aaacf7275dd3eaa246b01
MD5 4076e507fa1a85624a123ca23606cad3
BLAKE2b-256 17d888f1f331feb54e0d0bfc33435ffd7adf01d737e0c5f80c4dc38b53c294f0

See more details on using hashes here.

File details

Details for the file pyimporters_dummy-0.1.140-py3-none-any.whl.

File metadata

File hashes

Hashes for pyimporters_dummy-0.1.140-py3-none-any.whl
Algorithm Hash digest
SHA256 b0f6eb04033f00595fac462beab480e04b7839b721c55542272eb60fface5df0
MD5 121fd4ab4e5cf93a9f1b9a0eae2f2c9f
BLAKE2b-256 07f0c39f2a4e2aa8c0fa4ebaa4020e5a6831640f65c7b6cce39a92901844ab3b

See more details on using hashes here.

Supported by

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