Skip to content

Commit af49f73

Browse files
initial commit
0 parents  commit af49f73

File tree

17 files changed

+352
-0
lines changed

17 files changed

+352
-0
lines changed

.devcontainer/Dockerfile

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim
2+
3+
ENV UV_COMPILE_BYTECODE=1
4+
ENV UV_NO_CACHE=1
5+
6+
RUN apt update && \
7+
apt install -y --no-install-recommends \
8+
build-essential \
9+
cmake \
10+
curl \
11+
gcc \
12+
git \
13+
&& rm -rf /var/lib/apt/lists/*
14+
15+
WORKDIR /workspaces/opensymbiose

.devcontainer/devcontainer.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"name": "OpenSymbiose DevContainer",
3+
"build": {
4+
"dockerfile": "Dockerfile",
5+
"context": "."
6+
},
7+
"forwardPorts": [
8+
8000
9+
],
10+
"postCreateCommand": "uv sync && make commit",
11+
"remoteUser": "root",
12+
"features": {
13+
"ghcr.io/devcontainers/features/git:1": {}
14+
},
15+
"workspaceFolder": "/workspaces/opensymbiose"
16+
}

.env.sample

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
MISTRAL_API_KEY=azerty

.github/workflows/ci.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: ci
2+
on:
3+
push:
4+
branches:
5+
- master
6+
- main
7+
permissions:
8+
contents: write
9+
jobs:
10+
deploy:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v4
14+
- name: Configure Git Credentials
15+
run: |
16+
git config user.name github-actions[bot]
17+
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
18+
- uses: actions/setup-python@v5
19+
with:
20+
python-version: 3.x
21+
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
22+
- uses: actions/cache@v4
23+
with:
24+
key: mkdocs-material-${{ env.cache_id }}
25+
path: .cache
26+
restore-keys: |
27+
mkdocs-material-
28+
- run: pip install mkdocs-material mkdocstrings mkdocstrings-python mkdocs-include-markdown-plugin
29+
- run: mkdocs gh-deploy --force

.pre-commit-config.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
repos:
2+
- repo: https://github.com/astral-sh/ruff-pre-commit
3+
rev: v0.11.10
4+
hooks:
5+
- id: ruff-check
6+
args: [ --fix, --config=pyproject.toml ]
7+
- id: ruff-format
8+
args: [ --config=pyproject.toml ]

.python-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.13

Dockerfile

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim
2+
3+
ENV UV_COMPILE_BYTECODE=1
4+
ENV UV_NO_CACHE=1
5+
6+
RUN apt update && \
7+
apt install -y --no-install-recommends \
8+
build-essential \
9+
cmake \
10+
curl \
11+
gcc \
12+
git \
13+
&& rm -rf /var/lib/apt/lists/*
14+
15+
WORKDIR /app
16+
COPY README.md /app/
17+
COPY pyproject.toml /app/
18+
RUN uv sync --no-install-project --no-dev
19+
COPY src/opensymbiose /app/opensymbiose
20+
21+
EXPOSE 8000
22+
23+
CMD ["uv", "run", "opensymbiose/main.py"]

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Corentin Meyer
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

Makefile

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
.PHONY: help
2+
3+
help:
4+
@echo "Usage:"
5+
@echo " make dev Run the package with developer settings"
6+
@echo " make prod Run the pacakge with production settings"
7+
@echo " make test CI: Run tests"
8+
@echo " make cov CI: Run test and calculate coverage"
9+
@echo " make check CI: Lint the code"
10+
@echo " make format CI: Format the code"
11+
@echo " make type CI: Check typing"
12+
@echo " make doc Run local documentation server"
13+
@echo " make build Build the package wheel before publishing to Pypi"
14+
@echo " make publish Publish package to Pypi"
15+
@echo " make dockerbuild Build the docker image"
16+
@echo " make dockerrun Run the docker image"
17+
@echo " make allci Run all CI steps (check, format, type, test coverage)"
18+
19+
dev:
20+
uv run opensymbiose
21+
22+
prod:
23+
uv run opensymbiose
24+
25+
test:
26+
uv run pytest tests/
27+
28+
cov:
29+
uv run pytest --cov=src/opensymbiose tests/ --cov-report=term-missing
30+
31+
check:
32+
uv run ruff check $$(git diff --name-only --cached -- '*.py')
33+
34+
format:
35+
uv run ruff format $$(git diff --name-only --cached -- '*.py')
36+
37+
type:
38+
uv run ty check $$(git diff --name-only --cached -- '*.py')
39+
40+
doc:
41+
uvx --with mkdocstrings --with mkdocs-material --with mkdocstrings-python --with mkdocs-include-markdown-plugin mkdocs serve
42+
43+
build:
44+
uv build
45+
46+
publish:
47+
uv publish
48+
49+
commit:
50+
uv run pre-commit
51+
52+
dockerbuild:
53+
docker build -t opensymbiose:latest .
54+
55+
dockerrun:
56+
docker run --rm opensymbiose:latest
57+
58+
allci:
59+
$(MAKE) check
60+
$(MAKE) format
61+
$(MAKE) type
62+
$(MAKE) cov

README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# OpenSymbiose: Open Source Biotechnology AI Agent
2+
3+
OpenSymbiose in an open-source biotechnology / biology research AI agent designed to support researcher.
4+
5+
Creator and Maintainer: [**Corentin Meyer**, PhD](https://cmeyer.fr/) - <[email protected]>
6+
7+
## Installation
8+
9+
From PyPi: `pip install opensymbiose`
10+
11+
## Usage
12+
13+
Placeholder
14+

0 commit comments

Comments
 (0)