Skip to main content

A library to perform machine reading over a model codebase in order to automatically extract key metadata.

Project description

Domain-Model-Examiner (DMX)

The goal of this process is to perform machine reading over the model codebase in order to automatically extract key metadata about:

  • Input files
  • Output files
  • System requirements
  • Software requirements
  • Model entry points
  • Model descriptions
  • Maintainer information

Installation

First, recommended installation is to create a new conda environment and then intall from requirements.txt:

conda create --name=dmx python=3.8
conda activate dmx
conda install uvicorn
pip install -r requirements.txt

Docker Install and Run

docker build -t dmx .
docker run -p 80:80 dmx

Package Install

pip install domainmodelexaminer

Usage

Package Usage

Examine a url:

import domainmodelexaminer as dmx
url = "https://github.com/jataware/dummy-model"
yaml = dmx.examine(url)

List command line options

python main.py --help

Process Local Repository

Clone or download the repository of interest. For example:

cd /tmp
git clone https://github.com/jataware/dummy-model.git

Next, analyze this repo with:

python main.py --repo="/tmp/dummy-model"

Process Remote Repository

python main.py --url="https://github.com/jataware/dummy-model.git"

This creates and deletes a tempory folder 'tmp'.

Output

The application produces a .yaml file with prefix 'dmx-' concatenated with the repo name.

Running the API

Run API:

uvicorn api:app
http://127.0.0.1:8000/

Do not use --reload flag, since the app will download the repo to the api folder.

Testing Repositories

Note that Pythia is a highly abstracted Python version of the DSSAT model.

API Reference

Default port for Docker is 80. Default port for Uvicorn is 8000. Examples given below assume the Uvicorn server is running at port 8000.

Docs

  GET /docs
  e.g. http://127.0.0.1:8000/docs

Confirm the API is available:

  GET /
  e.g. http://127.0.0.1:8000/

Returns

{"status":"running"}

Examine URL

  GET /examine/${url}
  e.g. http://127.0.0.1:8000/examine/?url=https://github.com/jataware/dummy-model.git
Parameter Type Description
url string Required. URL of GitHub repo

Returns

yaml-formatted string

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

domainmodelexaminer-0.0.1.tar.gz (5.8 kB view hashes)

Uploaded Source

Built Distribution

domainmodelexaminer-0.0.1-py2.py3-none-any.whl (6.6 kB view hashes)

Uploaded Python 2 Python 3

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