- Improve performance of rispy's parser and refactor parser
- Add support for Python 3.13 and remove Python 3.8
- Revert strip UTF-8 BOM strip
- (dev) Add benchmark for rispy
- (dev) Switch from Makefile to poethepoet
- (dev) increase test coverage to 99.5%
- (dev) GitHub publish package to PyPI
- Improve performance to yield from file objects instead of loading into memory at once (@scott-8 #57)
- Support Python 3.12
- (dev) Remove black; use ruff format instead
- (dev) Rewrite restructured text docs to markdown
- Update RIS exporter to optionally write list tags or delimited single tags (@scott-8 #55)
Breaking changes:
- Update minimum python version from 3.6 to 3.8
- Improve URL parsing to be more robust and consistent with the spec; saved as a plural "urls" dictionary key instead of the singular "url" (@scott-8/shapiromatron #52)
- Throw a
rispy.paser.ParseErrorinstead of a IOError for invalid parsing (@shapiromatron #54)
Additional updates:
- Write RIS unknown tags (@simon-20 #50)
Tooling updates:
- Support and test python 3.8 through 3.11
- Update black
- Switch to ruff from flake8 + isort
- Switch to flit
- Add basic coverage reports to github actions
- README.rst formatting fixes
New features:
- Allow for subclassing of readers and writers for custom implementations and greater flexibility; these custom classes can be used in all high-level commands (load/loads/dump/dumps) (@scott-8 #36)
- Add encoding param to rispy.load if custom file encoding is needed (@scott-8 #36)
- Add convenience method to pretty-print reference type (@scott-8 #37)
- Updated setup.py and build tooling to use setup.cfg; use wheel for testing in github actions (@KOLANICH #34)
- Relicense to MIT (@shapiromatron #43)
- Support python versions 3.6, 3.7, 3.8, and 3.9 (@shapiromatron #44)
- Changed primary branch from
mastertomain
New features:
- Add new optional
strict=Trueparameter to rispy.load/loads to allow parsing of RIS files with comments or additional metadata which aren't allowed/forbidden in spec (@ShreyRavi) - Allow pathlib.Path objects in rispy.load in addition to file objects
- Enable multiple python environments in github test matrix (python 3.6, 3.7, and 3.8)
New features:
- Strip BOM before processing records
- Accept ER tag without trailing whitespace
New features:
- Rename the package from
RISpytorispy(PEP8 https://www.python.org/dev/peps/pep-0008/#package-and-module-names) - Added the ability to write RIS files (via
dump) in addition to read (@J535D165) - Code formatting rules via black and flake8
- All methods by default return an evaluated list of references, not a generator (to be consistent w/ load/dump behavior)
- Github actions - code formatting check and unit-tests
Breaking changes:
- Rename package from
RISparsertorispy - Revise API for reading RIS files to mirror python APIs (like
json,pickle) SERIS key mapped tosectioninstead ofversion(per wikipedia)NVRIS key mapped tonumber_of_volumesinstead ofnumber_of_VolumesN2RIS key mapped tonotes_abstractinstead ofabstract- Python ≥ 3.6 required
- Allow for blank lines at beginning of input file [fixes #3]
- parser saves unknown tags into an
unknown_tagkey in dict - python2/3 compatible
- Notes (N1) is now a ListType
- Documented testing with pytest
- Remove unused dependency peppercorn