| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| papis-0.14-py3-none-any.whl | 2024-11-08 | 254.9 kB | |
| papis-0.14.tar.gz | 2024-11-08 | 1.2 MB | |
| README.md | 2024-11-08 | 12.1 kB | |
| Version v0.14 source code.tar.gz | 2024-11-08 | 1.2 MB | |
| Version v0.14 source code.zip | 2024-11-08 | 1.4 MB | |
| Totals: 5 Items | 3.9 MB | 0 | |
Dependency changes
- Minimum required Python version bumped to 3.8 (#552).
- Moved to
pyproject.tomland removedsetup.pycompletely. We use hatchling as the build backend. - Removed arxiv2bib in favor of arxiv.py (github.com).
- Removed tqdm dependency (using a progress bar from
prompt_toolkitinstead). - Made
chardetan optional dependency. This is an optional dependency ofbs4,requestsandfeedparserand should be installed if possible. - Added markdownify as an optional dependency for the Zenodo downloader.
- Added platformdirs dependency for platform-specific config locations.
Features
New: Improved Windows support
The support for Windows has been significantly improved in this release. On top of a slew of fixes, there is also a build that creates a Windows executable and installer using PyInstaller.
These can currently be found only as artifacts under the Windows release workflow. We do urge anyone knowledgeable and interested to try them out and report any issues, so that they can be improved before they make it into regular releases.
Huge thanks to @kiike for all the work on this!
New: Add cache command (#603)
The cache command has been added in order to provide more control over the papis cache. Accordingly, the equivalent commands papis --cc and papis --clear-cache have been removed and can be replaced by the equivalent
:::sh
papis cache clear
The command can now also update only specific documents using
:::sh
papis cache update QUERY
You can learn more about the cache command in the documentation.
New: EPUB support for the web application
Now you can read EPUB files from the comfort of the web application. The workflow is similar to the existing one for PDFs and it uses the epubjs-reader library.
New: Exporter for the Typst Hayagriva format (#559)
Typst is a new typesetting system with some very cool features and a more modern outlook compared to LaTeX. While it supports BibTeX, it also has its own bibliography format called Hayagriva (a YAML file). Papis can now export directly to this format using
papis export --format typst QUERY
New: Add init command (#620)
A new papis init command was added to initialize a new configuration file and add additional libraries. The command is mainly interactive and sets some standard default options. It can be used as
:::sh
papis init /path/to/my/library
Warning: We currently use the standard Python configparser which does not preserve comments. This means that updating a configuration file using papis init will remove any comments and possibly reorder some options.
New: Add tag command (#648)
A new papis tag command was added to handle adding and removing tags (or keywords) for a document. For example, to add a few tags to a set of documents
papis tag --add cool-project --add from-steve --all QUERY
or change a tag for a mislabeled document
papis tag --remove biology --add neuroscience QUERY
For more examples see the documentation.
Warning: The tag command expects that the tags are a list, not a single string with a separator. You can quickly transform your tags into a list using papis doctor e.g.
:::sh
papis \
--set doctor-key-type-keys '["tags:list"]' \
--set doctor-key-type-separator ' ' \
doctor --fix --all --explain -t key-type QUERY
where you may need to change the separator to match your choice.
Major: Expand update command (#681)
The update command got some major improvements this release. It now allows much more fine-grained modifications of a document without requiring the user to open a full editor. For example, it can now
- Append to a key using
sh
papis update --append title ' (Volume 2)' <QUERY>
- Remove items from a list using
sh
papis update --remove tags 'physics' <QUERY>
- Remove a key completely from the document
sh
papis update --drop eprinttype <QUERY>
For more examples see the documentation.
Major: Expand doctor command
The papis doctor command has seen many additions and modifications in this release. First, the papis add and papis update commands can now automatically run selected fixed with the --auto-doctor flag (#598). This makes it less likely for ill-formatted documents to make it into the library in the first place!
Many checks for BibTeX have been added: biblatex-type-alias, biblatex-key-alias and biblatex-required-keys (#663). These checks ensure that the document has all the keys required by the BibLaTeX engine to output well-formatted entries for each document type.
Other smaller noteworthy changes:
key-type: added fixers that automatically convert some types (#652 #656).keys-exist: added fixers forauthorandauthor_list(#655)duplicated-values: new check for duplicate values inside lists (#695)bibtex-type: add fixer to automatically convert known document types (#732)html-tags: be smarter about removing JATS and MML tags in abstracts. (#881).- #916 added configuration keys with and
-extendsuffix to enable appending instead of overwriting existing lists. For example, you should usedoctor-default-checks-extend = ["html-tags"]to add more default checks.
Minor: Plugin helpers (#680 and #752)
A new module papis.testing was introduced to help with testing Papis-related functionality. They allow easy setup of temporary configurations and temporary libraries for testing purposes.
A new module papis.sphinx_ext was introduced to help with Papis-related documentation. This allows defining configuration options in the Sphinx documentation that describe their types and default values in sync with the ones used in the
code.
These have mostly been promoted to separate module so that plugins can easily make use of the same infrastructure.
Minor: Configuration file location (#745)
The location of the configuration file has been standardized using platformdirs. On Linux-y systems, this should not make any difference, since Papis has been using the XDG environment variables to get the proper location.
However, on other systems, especially Windows and macOS, the location of the configuration files will change. Papis has implemented a simple migration, so this should be fairly automatic.
Other noteworthy features
- Add more BibTeX key conversions (#561 #562).
- Allow setting refs in
papis update(#593). - Add proper extensions to temporary downloaded files to better differentiate (#548).
- Updated
Dockerfileand addedrelease.Dockerfile(#597). - Allow
papis.format.formatto set default values and not leak exceptions into document fields. (#596). - Added a
flake.nixscript for easier use with the nix package manager (#600). - Updated default
opentoolon Windows (#569). papiscommand: when invokingpapiswithout a subcommand the help message is printed. This should avoid some confusions for new users (#603).- Allow multiple
--doc-folderarguments to commands that support it (#635). - Improve ScienceDirect abstract extraction (#637)
- Better support for
--batchinpapis add(#630). - Add
--[no-]download-filesflags topapis add(#641). - Add a downloader for ACL Anthology documents (#575)
- Expand
papis listto list all plugins and other extensions (#716) - Add
biblatex-softwaretypes to our BibTeX module (#719) - Sort tags alphabetically in
papis serve(#730) - Add a
--moveflag topapis add(#740) - Enhance
pythonformatter with some additional conversions (#709) - Fix the
these.frdownloader (#729). - Add a Zenodo downloader (#770). This uses some of the fields from biblatex-software.
- Make file and folder cleanup more configurable (#803).
- Expand the
renamecommand (#810). - Allow configuration for marked lines margins and make marked and unmarked margins span the whole document entry. (#820)
- Be smarter about automatic naming of newly added files. (#831)
- Add nicer library picker. (#856).
- Add an
edit_notesaction to thefzfpicker. (#919) - Add a
browseaction + shortcut to the default pickers. (#922)
Bug fixes
- Fixed Papis to BibTeX key conversions (#555).
- Fix encoding of
info.yamlfiles on Windows (#571). - Fixed quoting in some calls to external commands (#580).
- Warn and specify how external scripts are loaded. (#594).
- Fix manpage generation from Sphinx (#609).
- Ensure that user provided data in
papis addusing--set key valueis not overwritten by importers (#616). - Fix some boolean flags working in an unexpected manner (#636).
- Fix opening multiple files in the default picker (#693)
- Do not escape verbatim BibTeX fields like
url(#739) - Fix loading documents with removed keys. (#896)
- Use formatter for
multiple-authors-format. (#906)