Skip to main content

An MCP service for building queries against SDSS catalogs.

Project description

SSEC-JHU <package_name>

CI Documentation Status codecov Security DOI

SSEC-JHU Logo

Based on https://github.com/nicknochnack/BuildMCPServer

Base repo template to be used by all others.

Things to do when using this template:

What's included in this template:

  • Licence file
  • Code of Conduct
  • Build & Setup, inc. pip dependency requirements.
  • Dependabot GitHub action
  • CI for GitHub actions: lint, pytest, build & publish docker image to GitHub Packages.
  • Dockerfile.
  • Pytest example(s).
  • Githooks.

Quickstart Guide

Add here, streamlined instructions on how to get the code running as swiftly as possible, and provide usage example(s). This shouldn't attempt to cover all OS's and/or build variations - just the canonical. Since users are most likely viewing this README from GitHub.com, assuming a repo context might be best, where instructions look like those below. Alternatively, if this package is distributed on PyPi, perhaps just pip install <package-name>, followed by quick user instructions, will suffice.

  • git clone https://github.com/ssec-jhu/base-template
  • conda create -n package_name python pip
  • conda activate package_name
  • pip pinstall -e .
  • Add user instructions.

Installation, Build, & Run instructions

Conda:

For additional cmds see the Conda cheat-sheet.

  • Download and install either miniconda or anaconda.
  • Create new environment (env) and install conda create -n <environment_name>
  • Activate/switch to new env conda activate <environment_name>
  • cd into repo dir.
  • Install python and pip conda install python=3.11 pip
  • Install all required dependencies (assuming local dev work), there are two ways to do this
    • If working with tox (recommended) pip install -r requirements/dev.txt.
    • If you would like to setup an environment with all requirements to run outside of tox pip install -r requirements/all.txt.

Build:

with Docker:

  • Download & install Docker - see Docker install docs.
  • cd into repo dir.
  • Build image: docker build -t <image_name> .

with Python ecosystem:

  • cd into repo dir.
  • conda activate <environment_name>
  • Build and install package in <environment_name> conda env: pip install .
  • Do the same but in dev/editable mode (changes to repo will be reflected in env installation upon python kernel restart) NOTE: This is the preferred installation method for dev work. pip install -e .. NOTE: If you didn't install dependencies from requirements/dev.txt, you can install a looser constrained set of deps using: pip install -e .[dev].

Run

with Docker:

  • Follow the above Build with Docker instructions.
  • Run container from image: docker run -d -p 8000:8000 <image_name>. NOTE: -p 8000:8000 is specific to the example application using port 8000.
  • Alternatively, images can be pulled from ghcr.io/ssec-jhu/ e.g., docker pull ghcr.io/ssec-jhu/base-template:pr-1.

with Python ecosystem:

Usage:

To be completed by child repo.

Testing

NOTE: The following steps require pip install -r requirements/dev.txt.

Using tox

  • Run tox tox. This will run all of linting, security, test, docs and package building within tox virtual environments.
  • To run an individual step, use tox -e {step} for example, tox -e test, tox -e build-docs, etc.

Typically, the CI tests run in github actions will use tox to run as above. See also ci.yml.

Outside of tox:

The below assume you are running steps without tox, and that all requirements are installed into a conda environment, e.g. with pip install -r requirements/all.txt.

NOTE: Tox will run these for you, this is specifically if there is a requirement to setup environment and run these outside the purview of tox.

Linting:

Facilitates in testing typos, syntax, style, and other simple code analysis tests.

  • cd into repo dir.
  • Switch/activate correct environment: conda activate <environment_name>
  • Run ruff .
  • This can be automatically run (recommended for devs) every time you git push by installing the provided pre-push git hook available in ./githooks. Instructions are in that file - just cp ./githooks/pre-push .git/hooks/;chmod +x .git/hooks/pre-push.

Security Checks:

Facilitates in checking for security concerns using Bandit.

  • cd into repo dir.
  • bandit --severity-level=medium -r package_name

Unit Tests:

Facilitates in testing core package functionality at a modular level.

  • cd into repo dir.
  • Run all available tests: pytest .
  • Run specific test: pytest tests/test_util.py::test_base_dummy.

Regression tests:

Facilitates in testing whether core data results differ during development.

  • WIP

Smoke Tests:

Facilitates in testing at the application and infrastructure level.

  • WIP

Build Docs:

Facilitates in building, testing & viewing the docs.

  • cd into repo dir.
  • pip install -r requirements/docs.txt
  • cd docs
  • make clean
  • make html
  • To view the docs in your default browser run open docs/_build/html/index.html.

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

cas_sdss_mcp-0.2.0.tar.gz (2.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cas_sdss_mcp-0.2.0-py3-none-any.whl (494.9 kB view details)

Uploaded Python 3

File details

Details for the file cas_sdss_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: cas_sdss_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 2.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cas_sdss_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 959ba15407e271a3cc23ed5d8091cf6ae4c1b98733adfff3cdb57e5537637dca
MD5 486a18aa0c279eb15ffc0715995e98d0
BLAKE2b-256 916f94fdace265647df0023fec7b862b96a060a551e837bf863b13e0d0b6dfd6

See more details on using hashes here.

Provenance

The following attestation bundles were made for cas_sdss_mcp-0.2.0.tar.gz:

Publisher: dist.yml on sciserver/cas-jobs-sdss-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cas_sdss_mcp-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: cas_sdss_mcp-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 494.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cas_sdss_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bd011c0f732152d730456ce685b8357c9573f58e60c379cc2e9c21b5082c16f9
MD5 6fe0204f553e07ce3f899315660635c3
BLAKE2b-256 871928bffb3dc8997b2dafb693a6c0a7f72e33587e0a4a796b8e77a0c8bd21c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for cas_sdss_mcp-0.2.0-py3-none-any.whl:

Publisher: dist.yml on sciserver/cas-jobs-sdss-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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