dhti-elixir-base 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. dhti_elixir_base-0.1.0/.devcontainer/Dockerfile +20 -0
  2. dhti_elixir_base-0.1.0/.devcontainer/devcontainer.json +29 -0
  3. dhti_elixir_base-0.1.0/.devcontainer/postCreateCommand.sh +10 -0
  4. dhti_elixir_base-0.1.0/.github/actions/setup-python-env/action.yml +30 -0
  5. dhti_elixir_base-0.1.0/.github/config.yml +25 -0
  6. dhti_elixir_base-0.1.0/.github/dependabot.yml +12 -0
  7. dhti_elixir_base-0.1.0/.github/workflows/bump.yml +30 -0
  8. dhti_elixir_base-0.1.0/.github/workflows/docs.yml +20 -0
  9. dhti_elixir_base-0.1.0/.github/workflows/publish.yml +26 -0
  10. dhti_elixir_base-0.1.0/.github/workflows/pytest.yml +44 -0
  11. dhti_elixir_base-0.1.0/.github/workflows/tox.yml +27 -0
  12. dhti_elixir_base-0.1.0/.github/workflows/upgrade.yml +27 -0
  13. dhti_elixir_base-0.1.0/.gitignore +54 -0
  14. dhti_elixir_base-0.1.0/AUTHORS.md +3 -0
  15. dhti_elixir_base-0.1.0/CHANGELOG.md +14 -0
  16. dhti_elixir_base-0.1.0/CONTRIBUTING.md +70 -0
  17. dhti_elixir_base-0.1.0/Dockerfile +21 -0
  18. dhti_elixir_base-0.1.0/LICENSE +362 -0
  19. dhti_elixir_base-0.1.0/Makefile +54 -0
  20. dhti_elixir_base-0.1.0/PKG-INFO +104 -0
  21. dhti_elixir_base-0.1.0/README.md +62 -0
  22. dhti_elixir_base-0.1.0/codecov.yaml +9 -0
  23. dhti_elixir_base-0.1.0/docs/index.md +1 -0
  24. dhti_elixir_base-0.1.0/docs/modules.md +18 -0
  25. dhti_elixir_base-0.1.0/examples/chain.md +13 -0
  26. dhti_elixir_base-0.1.0/examples/graph.md +82 -0
  27. dhti_elixir_base-0.1.0/examples/graph_limitations.md +1 -0
  28. dhti_elixir_base-0.1.0/mkdocs.yml +52 -0
  29. dhti_elixir_base-0.1.0/pyproject.toml +169 -0
  30. dhti_elixir_base-0.1.0/src/dhti_elixir_base/__init__.py +27 -0
  31. dhti_elixir_base-0.1.0/src/dhti_elixir_base/agent.py +202 -0
  32. dhti_elixir_base-0.1.0/src/dhti_elixir_base/chain.py +178 -0
  33. dhti_elixir_base-0.1.0/src/dhti_elixir_base/graph.py +165 -0
  34. dhti_elixir_base-0.1.0/src/dhti_elixir_base/llm.py +79 -0
  35. dhti_elixir_base-0.1.0/src/dhti_elixir_base/mcp.py +15 -0
  36. dhti_elixir_base-0.1.0/src/dhti_elixir_base/model.py +47 -0
  37. dhti_elixir_base-0.1.0/src/dhti_elixir_base/mydi.py +16 -0
  38. dhti_elixir_base-0.1.0/src/dhti_elixir_base/server.py +56 -0
  39. dhti_elixir_base-0.1.0/src/dhti_elixir_base/space.py +36 -0
  40. dhti_elixir_base-0.1.0/t_install.py +12 -0
  41. dhti_elixir_base-0.1.0/tests/__init__.py +0 -0
  42. dhti_elixir_base-0.1.0/tests/bootstrap.py +22 -0
  43. dhti_elixir_base-0.1.0/tests/conftest.py +7 -0
  44. dhti_elixir_base-0.1.0/tests/test_agent.py +24 -0
  45. dhti_elixir_base-0.1.0/tests/test_chain.py +37 -0
  46. dhti_elixir_base-0.1.0/tests/test_graph.py +15 -0
  47. dhti_elixir_base-0.1.0/tests/test_llm.py +13 -0
  48. dhti_elixir_base-0.1.0/tests/test_model.py +13 -0
  49. dhti_elixir_base-0.1.0/tests/test_server.py +13 -0
  50. dhti_elixir_base-0.1.0/tests/test_space.py +12 -0
  51. dhti_elixir_base-0.1.0/tox.ini +61 -0
  52. dhti_elixir_base-0.1.0/uv.lock +3312 -0
@@ -0,0 +1,20 @@
1
+ # [Choice] Python version: 3, 3.9, 3.8, 3.7, 3.6
2
+ ARG VARIANT="3.11"
3
+ FROM mcr.microsoft.com/vscode/devcontainers/python:${VARIANT}
4
+
5
+ # [Option] Install Node.js
6
+ ARG INSTALL_NODE="true"
7
+ ARG NODE_VERSION="lts/*"
8
+ RUN if [ "${INSTALL_NODE}" = "true" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
9
+
10
+ # [Optional] If your pip requirements rarely change, uncomment this section to add them to the image.
11
+ # COPY requirements.txt /tmp/pip-tmp/
12
+ # RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \
13
+ # && rm -rf /tmp/pip-tmp
14
+
15
+ # [Optional] Uncomment this section to install additional OS packages.
16
+ # RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
17
+ # && apt-get -y install --no-install-recommends <your-package-list-here>
18
+
19
+ # [Optional] Uncomment this line to install global node packages.
20
+ # RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
@@ -0,0 +1,29 @@
1
+ // For format details, see https://aka.ms/devcontainer.json. For config options, see the
2
+ // README at: https://github.com/devcontainers/templates/tree/main/src/python
3
+ {
4
+ "name": "dhti-elixir-base",
5
+ // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
6
+ "image": "mcr.microsoft.com/devcontainers/python:1-3.11-bullseye",
7
+ "runArgs": [
8
+ // avoid UID/GID remapping under rootless Podman
9
+ "--userns=keep-id"
10
+ ],
11
+ "features": {},
12
+
13
+ // Use 'postCreateCommand' to run commands after the container is created.
14
+ "postCreateCommand": "./.devcontainer/postCreateCommand.sh",
15
+
16
+ // Configure tool-specific properties.
17
+ "customizations": {
18
+ "vscode": {
19
+ "extensions": ["ms-python.python", "editorconfig.editorconfig"],
20
+ "settings": {
21
+ "python.testing.pytestArgs": ["tests"],
22
+ "python.testing.unittestEnabled": false,
23
+ "python.testing.pytestEnabled": true,
24
+ "python.defaultInterpreterPath": "/workspaces/dhti-elixir-base/.venv/bin/python",
25
+ "python.testing.pytestPath": "/workspaces/dhti-elixir-base/.venv/bin/pytest"
26
+ }
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,10 @@
1
+ #! /usr/bin/env bash
2
+
3
+ # Install uv
4
+ curl -LsSf https://astral.sh/uv/install.sh | sh
5
+
6
+ # Install Dependencies
7
+ uv sync
8
+
9
+ # Install pre-commit hooks
10
+ uv run pre-commit install --install-hooks
@@ -0,0 +1,30 @@
1
+ name: "Setup Python Environment"
2
+ description: "Set up Python environment for the given Python version"
3
+
4
+ inputs:
5
+ python-version:
6
+ description: "Python version to use"
7
+ required: true
8
+ default: "3.11"
9
+ uv-version:
10
+ description: "uv version to use"
11
+ required: true
12
+ default: "0.8.8"
13
+
14
+ runs:
15
+ using: "composite"
16
+ steps:
17
+ - uses: actions/setup-python@v5
18
+ with:
19
+ python-version: ${{ inputs.python-version }}
20
+
21
+ - name: Install uv
22
+ uses: astral-sh/setup-uv@v6
23
+ with:
24
+ version: ${{ inputs.uv-version }}
25
+ enable-cache: 'true'
26
+ cache-suffix: ${{ matrix.python-version }}
27
+
28
+ - name: Install Python dependencies
29
+ run: uv sync --frozen
30
+ shell: bash
@@ -0,0 +1,25 @@
1
+ # Configurations for todo: https://probot.github.io/apps/todo/
2
+ # Automatically add issues from @todo with @body
3
+ # /**
4
+ # * @todo What needs to be done
5
+ # * @body How to do it.
6
+ # */
7
+
8
+ # https://github.com/behaviorbot/welcome
9
+ newIssueWelcomeComment: >
10
+ Thank you for raising this issue. We will try and get back to you as soon as possible.
11
+
12
+ Be sure to star ✨ the repository for a priority response!
13
+
14
+ Please make sure you have given us as much context as possible.
15
+
16
+
17
+ newPRWelcomeComment: >
18
+ Thank you for submitting a pull request.
19
+
20
+ Please make sure you have followed our contributing guidelines in CONTRIBUTING.md. We will review it as soon as possible.
21
+
22
+ Be sure to star ✨ the repository.
23
+
24
+ firstPRMergeComment: >
25
+ Congrats on merging your first pull request! 🎉🎉🎉
@@ -0,0 +1,12 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: pip
4
+ directory: "/"
5
+ schedule:
6
+ interval: "weekly"
7
+ # open-pull-requests-limit: 10
8
+
9
+ - package-ecosystem: "github-actions"
10
+ directory: "/"
11
+ schedule:
12
+ interval: "weekly"
@@ -0,0 +1,30 @@
1
+ name: Generate changelog
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - "release/**"
7
+
8
+ jobs:
9
+ build:
10
+
11
+ runs-on: ubuntu-latest
12
+ timeout-minutes: 5
13
+
14
+ steps:
15
+ - name: Checkout Latest Commit
16
+ uses: actions/checkout@v4
17
+
18
+ - name: "✏️ Generate release changelog"
19
+ uses: janheinrichmerker/action-github-changelog-generator@v2.4
20
+ with:
21
+ token: ${{ secrets.GITHUB_TOKEN }}
22
+ user: dermatologist
23
+ maxIssues: 15
24
+ httpCache: true
25
+
26
+ - name: Commit changes
27
+ uses: EndBug/add-and-commit@v9
28
+ with:
29
+ default_author: github_actions
30
+ add: '*.md'
@@ -0,0 +1,20 @@
1
+ name: Generate and publish gh-pages
2
+ # https://docs.github.com/en/actions/guides/building-and-testing-python
3
+ # https://packaging.python.org/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/
4
+ on:
5
+ release:
6
+ types: [published]
7
+
8
+ jobs:
9
+ deploy-docs:
10
+ runs-on: ubuntu-latest
11
+ timeout-minutes: 20
12
+ steps:
13
+ - name: Check out
14
+ uses: actions/checkout@v4
15
+
16
+ - name: Set up the environment
17
+ uses: ./.github/actions/setup-python-env
18
+
19
+ - name: Deploy documentation
20
+ run: uv run mkdocs gh-deploy --force
@@ -0,0 +1,26 @@
1
+ name: Upload Python Package to PyPi
2
+ # https://docs.github.com/en/actions/guides/building-and-testing-python
3
+ # https://packaging.python.org/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/
4
+ on:
5
+ release:
6
+ types: [published]
7
+
8
+ jobs:
9
+ deploy:
10
+ runs-on: ubuntu-latest
11
+ timeout-minutes: 20
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+
15
+ - name: Set up the environment
16
+ uses: ./.github/actions/setup-python-env
17
+
18
+ - name: Build and publish
19
+ run: |
20
+ uv build
21
+ - name: Publish distribution 📦 to PyPI
22
+ if: startsWith(github.ref, 'refs/tags')
23
+ uses: pypa/gh-action-pypi-publish@release/v1
24
+ with:
25
+ user: __token__
26
+ password: ${{ secrets.PYPI_API_TOKEN }}
@@ -0,0 +1,44 @@
1
+ name: Python Test
2
+
3
+ on:
4
+ schedule:
5
+ - cron: '1 1 2,16 * *' # every 2nd and 16th at 01:01. To flag any dependency issues.
6
+ push:
7
+ branches:
8
+ - develop
9
+ pull_request:
10
+ branches:
11
+ - master
12
+ - develop
13
+ - main
14
+
15
+ jobs:
16
+ build:
17
+
18
+ runs-on: ubuntu-latest
19
+ timeout-minutes: 10
20
+ strategy:
21
+ max-parallel: 4
22
+ matrix:
23
+ python-version: ['3.11']
24
+
25
+ steps:
26
+ - uses: actions/checkout@v4
27
+
28
+ - name: Set up the environment
29
+ uses: ./.github/actions/setup-python-env
30
+
31
+ - name: Run tests
32
+ run: uv run python -m pytest tests --cov --cov-config=pyproject.toml --cov-report=xml
33
+
34
+ check-docs:
35
+ runs-on: ubuntu-latest
36
+ steps:
37
+ - name: Check out
38
+ uses: actions/checkout@v4
39
+
40
+ - name: Set up the environment
41
+ uses: ./.github/actions/setup-python-env
42
+
43
+ - name: Check if documentation can be built
44
+ run: uv run mkdocs build -s
@@ -0,0 +1,27 @@
1
+ name: Tox Test
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ - main
8
+
9
+ jobs:
10
+ build:
11
+
12
+ runs-on: ubuntu-latest
13
+ timeout-minutes: 20
14
+ strategy:
15
+ max-parallel: 4
16
+ matrix:
17
+ python-version: ['3.11']
18
+
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+
22
+ - name: Set up the environment
23
+ uses: ./.github/actions/setup-python-env
24
+
25
+ - name: Test with tox
26
+ run: |
27
+ uv run tox
@@ -0,0 +1,27 @@
1
+ name: Dependencies upgrade
2
+
3
+ on: workflow_dispatch
4
+
5
+ jobs:
6
+ flake-update:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - uses: actions/checkout@v4
10
+
11
+ - uses: astral-sh/setup-uv@v6
12
+
13
+ # https://docs.astral.sh/uv/concepts/projects/#upgrading-locked-package-versions
14
+ - run: uv lock --upgrade
15
+
16
+ - name: Create Pull Request
17
+ uses: peter-evans/create-pull-request@v7
18
+ with:
19
+ title: "[Automated] Dependencies upgrade"
20
+ commit-message: "[Automated] Dependencies upgrade"
21
+ branch: "auto/uv-sync-upgrade"
22
+ add-paths: uv.lock
23
+ delete-branch: true
24
+ labels: |
25
+ automated pr
26
+ body-path: result
27
+ draft: true
@@ -0,0 +1,54 @@
1
+ notebooks/fhirdata
2
+ # Temporary and binary files
3
+ *~
4
+ *.py[cod]
5
+ *.so
6
+ *.cfg
7
+ !.isort.cfg
8
+ !setup.cfg
9
+ *.orig
10
+ *.log
11
+ *.pot
12
+ __pycache__/*
13
+ .cache/*
14
+ .*.swp
15
+ */.ipynb_checkpoints/*
16
+ .DS_Store
17
+
18
+ # Project files
19
+ .ropeproject
20
+ .project
21
+ .pydevproject
22
+ .settings
23
+ .idea
24
+ .vscode
25
+ tags
26
+
27
+ # Package files
28
+ *.egg
29
+ *.eggs/
30
+ .installed.cfg
31
+ *.egg-info
32
+
33
+ # Unittest and coverage
34
+ htmlcov/*
35
+ .coverage
36
+ .coverage.*
37
+ .tox
38
+ junit*.xml
39
+ coverage.xml
40
+ .pytest_cache/
41
+
42
+ # Build and docs folder/files
43
+ build/*
44
+ dist/*
45
+ sdist/*
46
+ docs/api/*
47
+ docs/_rst/*
48
+ docs/_build/*
49
+ cover/*
50
+ MANIFEST
51
+ site/*
52
+ # Per-project virtualenvs
53
+ .venv*/
54
+ .conda*/
@@ -0,0 +1,3 @@
1
+ # Contributors
2
+
3
+ * dermatologist [github@gulfdoctor.net](mailto:github@gulfdoctor.net)
@@ -0,0 +1,14 @@
1
+ # Changelog
2
+
3
+ ## [Unreleased](https://github.com/dermatologist/dhti-elixir-base/tree/HEAD)
4
+
5
+ [Full Changelog](https://github.com/dermatologist/dhti-elixir-base/compare/d517931ed8f51462438dab94a86806f10268fd05...HEAD)
6
+
7
+ **Merged pull requests:**
8
+
9
+ - Feature/uv build 1 [\#40](https://github.com/dermatologist/dhti-elixir-base/pull/40) ([dermatologist](https://github.com/dermatologist))
10
+ - Feature/mcp 1 [\#39](https://github.com/dermatologist/dhti-elixir-base/pull/39) ([dermatologist](https://github.com/dermatologist))
11
+
12
+
13
+
14
+ \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
@@ -0,0 +1,70 @@
1
+ # # Contributing to `dhti-elixir-base`
2
+
3
+ ## Please note:
4
+
5
+ * (Optional) We adopt [Git Flow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow). Most feature branches are pushed to the repository and deleted when merged to *develop* branch.
6
+ * (**Important**): Submit pull requests to the *develop* branch or *feature/* branches
7
+ * Use *GitHub Issues* for feature requests and bug reports. Include as much information as possible while reporting bugs.
8
+
9
+
10
+ ## Contributing (Step-by-step)
11
+
12
+ 1. [Fork the repo](http://help.github.com/fork-a-repo) and clone it to your local computer, and set up the upstream remote:
13
+
14
+ git clone https://github.com/YourGitHubHandle/dhti-elixir-base.git
15
+ cd dhti-elixir-base
16
+ git remote add upstream https://github.com/dermatologist/dhti-elixir-base.git
17
+
18
+ 2. Checkout out a new local branch based on your master and update it to the latest (BRANCH-123 is the branch name, You can name it whatever you want. Try to give it a meaningful name. If you are fixing an issue, please include the issue #).
19
+
20
+ git checkout -b BRANCH-123 develop
21
+ git clean -df
22
+ git pull --rebase upstream develop
23
+
24
+ > Please keep your code clean. If you find another bug, you want to fix while being in a new branch, please fix it in a separated branch instead.
25
+
26
+ 3. Push the branch to your fork. Treat it as a backup.
27
+
28
+ git push origin BRANCH-123
29
+
30
+ 4. Code
31
+
32
+ * Adhere to common conventions you see in the existing code.
33
+ * Include tests as much as possible, and ensure they pass.
34
+
35
+ 5. Commit to your branch
36
+
37
+ git commit -m "BRANCH-123: Put change summary here (can be a ticket title)"
38
+
39
+ **NEVER leave the commit message blank!** Provide a detailed, clear, and complete description of your commit!
40
+
41
+ 6. Update your branch to the latest code.
42
+
43
+ git pull --rebase upstream develop
44
+
45
+ 7. **Important** If you have made many commits, please squash them into atomic units of work. (Most Git GUIs such as sourcetree and smartgit offer a squash option)
46
+
47
+
48
+ git checkout develop
49
+ git pull --rebase upstream develop
50
+ git merge --squash BRANCH-123
51
+ git commit -m "fix: 123"
52
+
53
+ Push changes to your fork:
54
+
55
+ git push
56
+
57
+ 8. Issue a Pull Request
58
+
59
+ In order to make a pull request:
60
+ * Click "Pull Request".
61
+ * Choose the develop branch
62
+ * Click 'Create pull request'
63
+ * Fill in some details about your potential patch including a meaningful title.
64
+ * Click "Create pull request".
65
+
66
+ Thanks for that -- we'll get to your pull request ASAP. We love pull requests!
67
+
68
+ ## Feedback
69
+
70
+ If you need to contact me, see my contact details on my profile page.
@@ -0,0 +1,21 @@
1
+ # Install uv
2
+ FROM python:3.12-slim
3
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/uv
4
+
5
+ # Change the working directory to the `app` directory
6
+ WORKDIR /app
7
+
8
+ # Copy the lockfile and `pyproject.toml` into the image
9
+ COPY uv.lock /app/uv.lock
10
+ COPY pyproject.toml /app/pyproject.toml
11
+
12
+ # Install dependencies
13
+ RUN uv sync --frozen --no-install-project
14
+
15
+ # Copy the project into the image
16
+ COPY . /app
17
+
18
+ # Sync the project
19
+ RUN uv sync --frozen
20
+
21
+ CMD [ "python", "src/dhti_elixir_base/foo.py" ]