• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

openvax / pyensembl / 28965583749
85%
master: 83%

Build:
Build:
LAST BUILD BRANCH: v2.10.4
DEFAULT BRANCH: master
Ran 08 Jul 2026 06:22PM UTC
Jobs 6
Files 22
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

08 Jul 2026 06:18PM UTC coverage: 85.472% (-0.02%) from 85.494%
28965583749

push

github

web-flow
Fix #362: don't reconfigure root logger when importing pyensembl.shell (#363)

* Fix #362: don't reconfigure root logger when importing pyensembl.shell

pyensembl/shell.py called logging.config.fileConfig() at module top-level.
fileConfig defaults to disable_existing_loggers=True, so importing the
module (a) attached pyensembl's console handlers to the root logger and set
its level to INFO, and (b) disabled every logger the host application had
created before the import. A library must not configure the root logger or
disable other loggers as an import side effect.

Following the Python logging HOWTO ("Configuring Logging for a Library"):

- Move the fileConfig() call into a configure_logging() helper that is only
  invoked from the CLI entrypoint (run()), and pass
  disable_existing_loggers=False so it never disables application loggers.
- Attach a NullHandler to the "pyensembl" package logger in __init__.py so
  library use emits nothing by default and never warns about missing
  handlers, while leaving the root logger untouched.

Adds regression tests covering the import side-effects and the CLI logging
setup.

Claude-Session: https://claude.ai/code/session_016pKPSmCAts4cacC3CQ9qsL

* test: restore global logging state in configure_logging test

configure_logging() applies logging.conf, which mutates process-global
logging state (replaces the pyensembl logger's NullHandler with a live
console handler and reconfigures root). Snapshot and restore that state in
test_configure_logging_preserves_existing_loggers so it doesn't leak a
console handler into sibling tests running in the same worker.

Claude-Session: https://claude.ai/code/session_016pKPSmCAts4cacC3CQ9qsL

4 of 5 new or added lines in 2 files covered. (80.0%)

1665 of 1948 relevant lines covered (85.47%)

5.13 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
66.2
-0.23% pyensembl/shell.py
Jobs
ID Job ID Ran Files Coverage
1 python-3.10 - 28965583749.1 08 Jul 2026 06:23PM UTC 22
85.47
GitHub Action Run
2 python-3.14 - 28965583749.2 08 Jul 2026 06:22PM UTC 22
85.47
GitHub Action Run
3 python-3.9 - 28965583749.3 08 Jul 2026 06:24PM UTC 22
85.47
GitHub Action Run
4 python-3.13 - 28965583749.4 08 Jul 2026 06:22PM UTC 22
85.47
GitHub Action Run
5 python-3.12 - 28965583749.5 08 Jul 2026 06:23PM UTC 22
85.47
GitHub Action Run
6 python-3.11 - 28965583749.6 08 Jul 2026 06:22PM UTC 22
85.47
GitHub Action Run
Source Files on build 28965583749
  • Tree
  • List 22
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28965583749
  • 1a949113 on github
  • Prev Build on main (#28666872617)
  • Next Build on main (#28965618070)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc