Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v5
Expand Down
13 changes: 3 additions & 10 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,16 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
python-version: ["3.9", "3.10", "3.11", "3.12"]
python-version: ["3.10", "3.11", "3.12", "3.13"]

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install system dependencies
if: runner.os == 'Linux'
run: sudo apt-get install -y libegl1 libzstd1

- name: Install dependencies
run: uv sync --extra test

Expand All @@ -41,16 +37,13 @@ jobs:
name: Test and report on ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v5
with:
python-version: "3.11"

- name: Install system dependencies
run: sudo apt-get install -y libegl1 libzstd1

- name: Install dependencies
run: uv sync --extra test

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/typecheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v5
Expand Down
24 changes: 0 additions & 24 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,29 +1,5 @@
FROM python:3.11-slim

# Install system dependencies:
# build-essential – gcc + libc6-dev (stdlib.h) needed to compile ete4's Cython extensions
# libegl1 – PyQt6 offscreen rendering backend
# libzstd1 – runtime dependency of the PyQt6 wheel
# libglib2.0-0 – GLib/Qt integration
# libgl1 – OpenGL (Qt fallback)
# libdbus-1-3 – D-Bus (Qt platform plugin)
# libxcb1 – X11 client library (loaded even in offscreen mode)
# libfontconfig1 – font handling for Qt
# libxkbcommon0 – keyboard input handling for Qt
# libx11-6 – X11 base library
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libegl1 \
libzstd1 \
libglib2.0-0 \
libgl1 \
libdbus-1-3 \
libxcb1 \
libfontconfig1 \
libxkbcommon0 \
libx11-6 \
&& rm -rf /var/lib/apt/lists/*

# Install uv from its official image
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv

Expand Down
4 changes: 1 addition & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Tree Maker is a Python script that allows you to create and visualize phylogenet

- Produces phylogenetic trees in PDF format.
- Customizable label colors and styles.
- Supports Python 3.8 and higher.
- Supports Python 3.10 and higher.

## Installation

Expand Down Expand Up @@ -66,8 +66,6 @@ uv run mypy make_tree tests

> **Note:** tree_maker requires trees be generated from [Clustal](http://www.clustal.org/)!

> **IMPORTANT:** You will need `libgl1` to use this, `apt install libgl1` for Debian based systems.

To use Tree Maker, run the following command:

```shell
Expand Down
4 changes: 2 additions & 2 deletions make_tree/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from .make_tree import (
COLOUR_LIST,
TreeParseError,
export_tree,
get_optimal_font_size,
get_result_dimensions,
interpolate,
load_tree,
parse_label,
Expand All @@ -12,9 +12,9 @@

__all__ = [
"COLOUR_LIST",
"TreeParseError",
"export_tree",
"get_optimal_font_size",
"get_result_dimensions",
"interpolate",
"load_tree",
"parse_label",
Expand Down
6 changes: 2 additions & 4 deletions make_tree/entrypoint.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
import argparse
import sys

from ete4.parser.newick import NewickError

from .make_tree import export_tree, load_tree
from .make_tree import TreeParseError, export_tree, load_tree


def main() -> None:
Expand All @@ -22,7 +20,7 @@ def main() -> None:

try:
t = load_tree(args.input_path)
except NewickError as e:
except TreeParseError as e:
print(
"Error: The tree file is not in the expected format. Please make sure it uses the standard Newick format. Details: ",
e,
Expand Down
Loading
Loading