Skip to main content

A framework for microservice based document transformation.

Project description

Morpho Logo

Python port for the go written doctrans

Morpho is a framework for microservice based web services. It offers the ability to transform a given document with a provided function.

In the first place this framework was created to be used for research purposes.

💡 Installation

pip install morpho

via git

  1. make sure to use at least python 3.8
  2. clone the repo git clone https://github.com/B4rtware/morpho.git
  3. cd morpho and install dependencies via
    • poetry install (Poetry) or
    • use the provided requirements.txt

⚙️ Server Example

... without options

service.py

from morpho.server import Service

def work(document: str) -> str:
    return document

service = Service(name="Echo", version="0.0.1")

if __name__ == "__main__":
    service.run()

... with options

service.py

from morpho.server import Service
from pydantic import BaseModel

class Options(BaseModel):
    name: str

def work(document: str, options: Options) -> str:
    return document + options.name

service = Service(name="AppendName", version="0.0.1", options_type=Options)

if __name__ == "__main__":
    service.run()

🖥️ Client Example

client.py

from morpho.client import Client
from morpho.client import ClientConfig

morpho = Client(ClientConfig("http://localhost:8761/eureka/"))

response = morpho.transform_document(
    "This is a Document!",
    service_name="Echo"
)

print(response.document)

>>> This is a Document!

👩🏽‍💻 Development

Creating a new release

  1. Run the following command poetry version <version>
    Morpho uses the following schema: ^\d+\.\d+\.\d+((b|a)\d+)?$

  2. Bump the version within the file: morpho/__version__.py
    Make sure it's the same version used when bumping with poetry

  3. Open Changelog.md and write the new changelog:

    • Use the following # header: v<version> - (dd.mm.yyyy)
      Used ## headers:
    • 💌 Added
    • 🔨 Fixed
    • ♻️ Changed
  4. Stage the modified files and push them with the following commit message:

    chore: bump to version <version>

  5. Run the following command poetry build to create a tarball and a wheel based on the new version

  6. Create a new github release and:

    1. Copy and paste the changelog content without the # header into the description of the release textbox
    2. Use the # header style to fill in the Release title (copy it from the Changelog.md)
    3. Copy the version with the v-prefix into the Tag version
  7. Attach the produced tarball and wheel (dist/) to the release

  8. Check This is a pre-release if it's either an alpha or beta release (a|b) - optional

  9. Publish release

📝 License

MIT

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

morpho-1.0.0b5.tar.gz (20.1 kB view details)

Uploaded Source

Built Distribution

morpho-1.0.0b5-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file morpho-1.0.0b5.tar.gz.

File metadata

  • Download URL: morpho-1.0.0b5.tar.gz
  • Upload date:
  • Size: 20.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.10 CPython/3.8.5 Linux/4.15.0-1077-aws

File hashes

Hashes for morpho-1.0.0b5.tar.gz
Algorithm Hash digest
SHA256 2c52dc407e7cfd1f07fdf0d4d880032c506b9ee3cce1ce57519817205810d430
MD5 d7750a40fcefaa3925fbf649719faa5a
BLAKE2b-256 c80f1ed8f4d0bd67056a314afc4488cc45f406bab4b89e98d99cf80e31478a48

See more details on using hashes here.

Provenance

File details

Details for the file morpho-1.0.0b5-py3-none-any.whl.

File metadata

  • Download URL: morpho-1.0.0b5-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.10 CPython/3.8.5 Linux/4.15.0-1077-aws

File hashes

Hashes for morpho-1.0.0b5-py3-none-any.whl
Algorithm Hash digest
SHA256 c1620ffd55f71d7629f99ab0c7859e92c8bdd15c61ee18004f8f730ce8e029b6
MD5 5a29385c7912b7c72d4fcc0567b3003f
BLAKE2b-256 9eb5c4fca5b46e1a5d2b59b9ec77043a37e04b786e40f12f742da901db805629

See more details on using hashes here.

Provenance

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