morpho
A framework for microservice based document transformation.
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.4%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
A framework for microservice based document transformation.
Basic Info
Statistics
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 19
- Releases: 13
Topics
Metadata Files
README.md

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
- make sure to use at least python 3.8
- clone the repo
git clone https://github.com/B4rtware/morpho.git cd morphoand install dependencies viapoetry install(Poetry) or- use the provided
requirements.txt
⚙️ Server Example
... without options
service.py ```python from morpho.server import Service
def work(document: str) -> str: return document
service = Service(name="Echo", version="0.0.1", worker=work)
if name == "main": service.run() ```
Tested with Python 3.8.1 and morpho v1.0.0b8 ✔️
... with options
service.py ```python 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", worker=work, options_type=Options)
if name == "main": service.run() ```
Tested with Python 3.8.1 and morpho v1.0.0b8 ✔️
🖥️ Client Example
This example expects a service named Echo that was started with the --register option and was registered with the Eureka server with the url http://localhost:8761/eureka/.
client.py ```python from morpho.rest.models import TransformDocumentRequest from morpho.client import Client from morpho.client import ClientConfig
morpho = Client( ClientConfig("http://localhost:8761/eureka/") )
request = TransformDocumentRequest( document="This is a Document!", service_name="Echo" )
response = morpho.transform_document(request=request)
print(response.document)
``
>>> This is a Document!`
Tested with Python 3.8.1 and morpho v1.0.0b8 ✔️
👩🏽💻 Development
Creating a new release
Run the following command
poetry version <version>
Morpho uses the following schema:^\d+\.\d+\.\d+((b|a)\d+)?$Bump the version within the file:
morpho/__version__.py
Make sure it's the same version used when bumping with poetryOpen
Changelog.mdand write the new changelog:- Use the following
#header:v<version> - (dd.mm.yyyy)
Used##headers: - 💌 Added
- 🔨 Fixed
- ♻️ Changed
- Use the following
Stage the modified files and push them with the following commit message:
chore: bump to version
<version>Run the following command
poetry buildto create a tarball and a wheel based on the new versionCreate a new github release and:
- Copy and paste the changelog content without the
#header into the description of the release textbox - Use the
#header style to fill in the Release title (copy it from theChangelog.md) - Copy the version with the
v-prefix into the Tag version
- Copy and paste the changelog content without the
Attach the produced tarball and wheel (
dist/) to the releaseCheck This is a pre-release if it's either an alpha or beta release (a|b) - optional
Publish release
📝 License
MIT
Owner
- Login: B4rtware
- Kind: user
- Repositories: 2
- Profile: https://github.com/B4rtware
GitHub Events
Total
Last Year
Committers
Last synced: over 2 years ago
Top Committers
| Name | Commits | |
|---|---|---|
| B4rtware | 3****e | 444 |
| dependabot[bot] | 4****] | 1 |
Issues and Pull Requests
Last synced: 8 months ago
All Time
- Total issues: 34
- Total pull requests: 4
- Average time to close issues: 3 months
- Average time to close pull requests: 2 days
- Total issue authors: 2
- Total pull request authors: 1
- Average comments per issue: 0.21
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 4
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- B4rtware (33)
- jasonwcfan (1)
Pull Request Authors
- dependabot[bot] (4)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 62 last-month
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 11
- Total maintainers: 1
pypi.org: morpho
A framework for microservice based document transformation.
- Homepage: https://python-morpho.org/
- Documentation: https://morpho.readthedocs.io/
- License: MIT
-
Latest release: 1.0.0b8
published about 5 years ago
Rankings
Maintainers (1)
Dependencies
- certifi 2020.6.20
- chardet 3.0.4
- click 7.1.2
- colorama 0.4.3
- flask 1.1.2
- idna 2.10
- itsdangerous 1.1.0
- jinja2 2.11.2
- markupsafe 1.1.1
- morpho 1.0.0b4
- py-eureka-client 0.7.8
- pydantic 1.6.1
- regex 2020.7.14
- requests 2.24.0
- toml 0.10.1
- urllib3 1.25.10
- waitress 1.4.4
- werkzeug 1.0.1
- morpho ^1.0.0-beta.4
- pydantic ^1.5.1
- python ^3.8
- certifi 2020.6.20
- chardet 3.0.4
- click 7.1.2
- colorama 0.4.3
- flask 1.1.2
- idna 2.10
- itsdangerous 1.1.0
- jinja2 2.11.2
- markupsafe 1.1.1
- morpho 1.0.0b4
- py-eureka-client 0.7.8
- pydantic 1.6.1
- regex 2020.7.14
- requests 2.24.0
- toml 0.10.1
- urllib3 1.25.10
- waitress 1.4.4
- werkzeug 1.0.1
- morpho ^1.0.0-beta.4
- pydantic ^1.5.1
- python ^3.8
- certifi 2020.6.20
- chardet 3.0.4
- click 7.1.2
- colorama 0.4.3
- flask 1.1.2
- idna 2.10
- itsdangerous 1.1.0
- jinja2 2.11.2
- markupsafe 1.1.1
- morpho 1.0.0b4
- py-eureka-client 0.7.8
- pydantic 1.6.1
- regex 2020.7.14
- requests 2.24.0
- toml 0.10.1
- urllib3 1.25.10
- waitress 1.4.4
- werkzeug 1.0.1
- morpho ^1.0.0-beta.4
- pydantic ^1.5.1
- python ^3.8
- python ^3.8
- certifi 2020.6.20
- chardet 3.0.4
- click 7.1.2
- colorama 0.4.3
- flask 1.1.2
- idna 2.10
- itsdangerous 1.1.0
- jinja2 2.11.2
- markupsafe 1.1.1
- morpho 1.0.0b4
- py-eureka-client 0.7.8
- pydantic 1.6.1
- regex 2020.7.14
- requests 2.24.0
- toml 0.10.1
- urllib3 1.25.10
- waitress 1.4.4
- werkzeug 1.0.1
- morpho ^1.0.0-beta.4
- pydantic ^1.5.1
- python ^3.8
- atomicwrites 1.4.0 develop
- attrs 20.2.0 develop
- more-itertools 8.5.0 develop
- packaging 20.4 develop
- pluggy 0.13.1 develop
- py 1.9.0 develop
- pyparsing 2.4.7 develop
- pytest 5.4.3 develop
- six 1.15.0 develop
- wcwidth 0.2.5 develop
- certifi 2020.6.20
- chardet 3.0.4
- click 7.1.2
- colorama 0.4.3
- flask 1.1.2
- idna 2.10
- itsdangerous 1.1.0
- jinja2 2.11.2
- markupsafe 1.1.1
- morpho 1.0.0b6
- py-eureka-client 0.7.9
- pydantic 1.6.1
- regex 2020.9.27
- requests 2.24.0
- toml 0.10.1
- urllib3 1.25.10
- waitress 1.4.4
- werkzeug 1.0.1
- pytest ^5.2 develop
- morpho ^1.0.0-beta.6
- python ^3.8
- alabaster 0.7.12 develop
- appdirs 1.4.4 develop
- astroid 2.5.1 develop
- atomicwrites 1.4.0 develop
- attrs 20.3.0 develop
- babel 2.9.0 develop
- beautifulsoup4 4.9.3 develop
- black 19.10b0 develop
- codecov 2.1.11 develop
- coverage 5.5 develop
- css-html-js-minify 2.5.5 develop
- docutils 0.16 develop
- httpretty 1.0.5 develop
- imagesize 1.2.0 develop
- iniconfig 1.1.1 develop
- invoke 1.5.0 develop
- isort 5.7.0 develop
- jsonschema 3.2.0 develop
- lazy-object-proxy 1.5.2 develop
- lxml 4.6.2 develop
- m2r 0.2.1 develop
- mccabe 0.6.1 develop
- mistune 0.8.4 develop
- packaging 20.9 develop
- pathspec 0.8.1 develop
- pluggy 0.13.1 develop
- py 1.10.0 develop
- pyenchant 3.2.0 develop
- pygments 2.8.1 develop
- pylint 2.7.2 develop
- pyparsing 2.4.7 develop
- pyrsistent 0.17.3 develop
- pytest 6.2.2 develop
- pytest-cov 2.11.1 develop
- python-slugify 4.0.1 develop
- pytz 2021.1 develop
- pyyaml 5.4.1 develop
- six 1.15.0 develop
- snowballstemmer 2.1.0 develop
- soupsieve 2.2 develop
- sphinx 3.5.2 develop
- sphinx-issues 1.2.0 develop
- sphinx-material 0.0.30 develop
- sphinxcontrib-applehelp 1.0.2 develop
- sphinxcontrib-devhelp 1.0.2 develop
- sphinxcontrib-htmlhelp 1.0.3 develop
- sphinxcontrib-httpdomain 1.7.0 develop
- sphinxcontrib-jsmath 1.0.1 develop
- sphinxcontrib-openapi 0.7.0 develop
- sphinxcontrib-qthelp 1.0.3 develop
- sphinxcontrib-serializinghtml 1.1.4 develop
- sphinxcontrib-spelling 5.4.0 develop
- text-unidecode 1.3 develop
- typed-ast 1.4.2 develop
- unidecode 1.2.0 develop
- wrapt 1.12.1 develop
- certifi 2020.12.5
- chardet 4.0.0
- click 7.1.2
- colorama 0.4.4
- flask 1.1.2
- idna 2.10
- itsdangerous 1.1.0
- jinja2 2.11.3
- markupsafe 1.1.1
- py-eureka-client 0.7.9
- pydantic 1.8.1
- regex 2020.11.13
- requests 2.25.1
- toml 0.10.2
- typing-extensions 3.7.4.3
- urllib3 1.26.4
- waitress 1.4.4
- werkzeug 1.0.1
- atomicwrites ==1.4.0
- attrs ==19.3.0
- certifi ==2020.6.20
- chardet ==3.0.4
- click ==7.1.2
- colorama ==0.4.3
- dataclasses-json ==0.3.8
- flask ==1.1.2
- googleapis-common-protos ==1.52.0
- idna ==2.10
- itsdangerous ==1.1.0
- jinja2 ==2.11.2
- markupsafe ==1.1.1
- marshmallow ==3.7.0
- marshmallow-enum ==1.5.1
- more-itertools ==8.4.0
- mypy-extensions ==0.4.3
- packaging ==20.4
- pluggy ==0.13.1
- protobuf ==3.12.2
- py ==1.9.0
- py-eureka-client ==0.7.4
- pydantic ==1.6.1
- pyparsing ==2.4.7
- pytest ==5.4.3
- regex ==2020.7.14
- requests ==2.24.0
- six ==1.15.0
- stringcase ==1.2.0
- toml ==0.10.1
- typing-extensions ==3.7.4.2
- typing-inspect ==0.6.0
- urllib3 ==1.25.9
- waitress ==1.4.4
- wcwidth ==0.2.5
- werkzeug ==1.0.1
- python 3.8-slim-buster build
- python 3.8-alpine build
- b4rtware/morpho-caeser latest
- b4rtware/morpho-eureka latest
- b4rtware/morpho-gateway latest
- b4rtware/morpho-permutation latest
- b4rtware/morpho-vigenere latest
- python 3.8-alpine build
- python 3.8-alpine build
- python 3.8-alpine build
- b4rtware/morpho latest build