- Cleaner error message when failing to decode latex from input files (issue #20).
- Fix an error when calling
load_entryvia the python API.
- Deprecate
-n / --no-coloroption, replace it with--color <auto|always|force>and environment variables.
- Add command-line tab completion for flags and some choices (field names)
- Simplify and documents ways to call this script from python
- Fix 404 warnings on DOI not found for crossref
- Add
--sf --start-fromflag and clarify message shown on interrupt, plus show instructions on how to resume. Also display a hint that BTAC can be interrupted after 5 minutes if less than half of all entries are completed (issue #18). - Progress bar now only show the number of completed entries, not queries (discussion #17 and issue #19)
- Skip queries to sources if they lag behind (>=10 queries remain or >=60s
delay between queries) when 2/3rds of the other sources have completed. This
avoids having a single source slow down btac considerably. Add the
--ns --no-skipflag to disable this behavior.
- No longer set URL fields to
https://dx.doi.org/<doi>, instead use this to complete the doi field (issue #14) - New flag
-u --copy-doi-to-urlto do the reverse, set the URL field (if absent) to the DOI. - Now writes all entries to a temporary file on keyboard interrupt (Ctrl-C) to avoid data loss
- Fix 404 warnings on DOI not found for unpaywall
- Fix URL escape missing in path (issue #16)
- Fix duplicate silent flag ignored
- Fix application crash when combining authors (issue #16)
- Fix interaction between
--escape-unicodeand--protect-uppercaseoptions - Protect uppercase option now also protects unicode uppercase
- Fix using the
--fa/--align-valuesoption leading to empty output
- Add
-b --filter-fields-by-entrytypeoption (issue #13). - Fix
-c / -Cflags only filtering queries and not results since 1.3.0 - Fix output of some error messages not displaying entry ID
- Add
-D --diffflag - Changes to verbose mode output:
- display per source query counter under the progress bar (hoping to make this even prettier once rsalmei/alive-progress#188 gets resolved)
- display source list on a new line in final output
- Fix a new error occurring when checking DOIs (issue #12)
- Officially support python 3.12
- Build system change: now using
pyproject.tomlinstead ofsetup.pyand ruff instead of black, isort and flake8.
- Add https://openalex.org/ as a source
- Add https://inspirehep.net/ as a source
- Switch entry merging strategy from "pick from the first source" to a majority
vote between the sources. Added advanced normalization and smart merge for each field:
- Authors (and editors) match if they have same last names and, if both first names present, the first name of one is equal/an abbreviation of the other. Author list match if their intersection is non-empty.
- Check ISSN and ISBN format and checksums. Convert ISBN to 13 digit version
- Check URL and DOI format, validate them by querying them online to ensure they exist
- Many fields match with abbreviation detection (journal, institution, booktitle, organization, publisher, school and series)
- Pages format normalized to use
--as separator - All other fields match excluding case and punctuation.
- Add new field formatting option:
--fu/--escape-unicodeto replace unicode character with latex encoding--fpa/--protect-all-uppercaseor--fp/--protect-uppercase <field>or--FP/--dont-protect-uppercase <field>to protect words containing uppercase letters with braces{and}in the given fields
- Fix 404 warning on DOIs not found in semantic-scholar and others
- Remove researchr author disambiguation numbers (it would sometimes return
John Doe 0002, which you don't want in your file) - Fix author names with
vonprefix not formatted correctly - Fix author names with capitalized prefix (
De,Von, ...) not formatted correctly - Fix
btacremoving capital-preserving brackets and converting to unicode in user supplied fields (issue #11).
- Add year check to match algorithm, entry with different year will not match
- Fix some logic in relating to overwrite
-w/-Warguments
- Add
-w --overwriteand-W --dont-overwriteflags - Fix flag
-fbeing ignored in query pre-condition checks, leading to skipping queries even if new data could be obtained.
- Add semantic scholar lookup
- Add
--markand--ignore-markoption and behavior - Allow using
-q --only-queryto change lookup order - Remove DBLP author disambiguation numbers (DBLP would sometimes return
John Doe 0002, which you don't want in your file) - Fix rejection of some valid DOIs on URL check
- A few under the hood improvements and code cleanup
- Add global exception catches to resume work if a single lookup fails
- Fix websites returning invalid URLs leading to errors (issue #8, part 2)
- Fix trying to decode non-text doi response (issue #8)
- Add entry name to error/warning messages
- Allow for infinite timeout with
-t -1 - Increase default timeout to 20s as crossref consistently times out
- Add per DB progress meters below the progress bar
- Fix
btacscript not installing due to bad setup.py options (#6)
- Add
-p / --prefixflag - Add filtered down counter (with
-eand-Eoptions) to output - Add warning for IDs given with
-eand-Ethat don't appear in output - Fix a bug when making output names for multiple files from a directory
- Fix script not installing on Windows CMD (#6)
- Autodetect files in directories: now
btac folder/will autocomplete all bib files in the given folder, excluding.btac.bibfiles unless they are the only files present btacwith no arguments is now same asbtac .- Better indent option
--fi / --indent, now supports using a number of specifying with_,nandtfor easier console input. - Added a hint for timeout warnings
- Clarified some things in README
- Add common authors check when matching entries: if your entries has some author field then entries will no common authors will be ignored and entries with common authors will be boosted (#5)
- Add sanity check for found URLs and DOIs,
btacnow queries them and follows a few redirections to check they resolve to an existing page (#5) - Some prettier messages and resolve hints for connection errors
- Add
-S/--ignore-sslflag (#4) - Add some logic to dispatch crossref's
container-titleand unpaywall'sjournal-titlebetweenjournalandbooktitlefields.
- Fix decoding error when opening utf-8 files on Windows (#3)
- Add extra fields
query-url,query-response-timeandquery-statusto data dumps file - Added github actions
- Now also queries arxiv
- Normalize title before querying, should improve matches for title with special characters
- Added
--dump-dataoption
- Fixed a bug which prevented installation on python 3.8 (#2)
- Dropped python 3.7 support (It didn't work anyway...)
- Fixed failed output write in inplace mode
- Fixed double warning for extra output in inplace mode
- Fix default output names ignoring parent directory
- Clarify new field source priorities
- Fixed unpaywall setting unknown months to 1
- Switch to strict mypy type checking
- Unsupport python 3.6 as alive-progress dropped it
- Switch back to custom logger
- Fixed missing submodules in upload (#1)
- Removed color from progress bar to avoid issues
- Fixed color not being reset on some terminals
- Added wheel for real this time
- Switch to root logger to avoid custom dependency (temporary, until alive-progress is fixed)
- Rewrote README with more detail on options
- Add direct url to svg so that it can show up on PyPi
- Multi-threading requests (one thread per website) vastly improves performance
- Overhauled display log: now with colors and pretty sections
- Added query rate limiter to respect politeness requests
- Print summary of changes in verbose mode
- Stopped writing to stdout -> writes to my_file.btac.bib by default now
Added wheel distributionupload failed- Fixed a bug when setting fields with no data
- Fixed a bug with ignored command line arguments
- Initial version of the script