Skip to content

Release v1.5.3

Choose a tag to compare

@github-actions github-actions released this 03 May 15:55
· 52 commits to main since this release

Fixed

  • PDBParser(PDBcode=...) legacy parameter silently swallowed by **kwargs; restored via explicit mapping to source_id/source_db='rcsb'
  • Eight bare except: clauses narrowed to specific exception types throughout
  • Bitwise &= used as logical AND in BaseRecord.empty() replaced with all()
  • str2int_sig raised IndexError on empty-string input; added guard before index access
  • != None / == None comparisons replaced with is not None / is None throughout
  • type(x) == T identity comparisons replaced with isinstance(x, T) throughout
  • elif type(p) == list: in parse_tokens() was unreachable; corrected to isinstance(p, PDBRecordList)
  • Mutable default arguments hold={} and hold=[] in gather_token and header_check replaced with None

Changed

  • Global hex-tripped flag in hex.py replaced with AtomSerialParser callable class; each PDBParser instance owns its own state, eliminating thread-safety hazard and cross-parse contamination
  • mappers default argument changed from a mutable dict literal to None; default built inside __init__
  • Resource YAML files now loaded via importlib.resources.files() instead of os.path.dirname(resources.__file__), ensuring correct behavior inside wheels and zip archives
  • resources/__init__.py removed; resources/ is now a plain data directory, not a sub-package
  • MANIFEST.in removed; hatchling auto-discovers package data from git-tracked files
  • PEP 8 spacing applied throughout all source files
  • parse_embedded() refactored: triggered/capturing boolean pair replaced with explicit _EmbedState enum (SEARCHING, PRE_CAPTURE, CAPTURING); setup phase extracted into _setup_embed_context()

Added

  • CHANGELOG.md with full release history
  • scripts/release.sh for automated version rotation, tagging, and push
  • [test] optional dependency group in pyproject.toml