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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pyimporters-dummy-0.1.250.tar.gz
.
File metadata
- Download URL: pyimporters-dummy-0.1.250.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.25.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7268cd2354b158e526cce1932817e65527c8affbf41aeb5097b6375c9b489c8 |
|
MD5 | c364b6814f73f1fe64e0bf569941359d |
|
BLAKE2b-256 | bf1d7a1016b50ab8b7d717806201580d3a87fc03f6b97d87918bddd617c6ec9b |
File details
Details for the file pyimporters_dummy-0.1.250-py3-none-any.whl
.
File metadata
- Download URL: pyimporters_dummy-0.1.250-py3-none-any.whl
- Upload date:
- Size: 3.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.25.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c808b59998ba63f6a6c5a17c3b91ea182613b7be685e15078396850785c08df0 |
|
MD5 | a598226b8d0ce9f7eff4e6c0f8f5e567 |
|
BLAKE2b-256 | 6a575311962813a939e673777893522565d744628680d2ffe4626c412f4b0a14 |