Download Latest Version Version v0.16.1 source code.zip (1.6 MB) Google Add to Preferred Sources
Home / v0.14
Name Modified Size InfoDownloads / 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.toml and removed setup.py completely. 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_toolkit instead).
  • Made chardet an optional dependency. This is an optional dependency of bs4, requests and feedparser and 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 for author and author_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 -extend suffix to enable appending instead of overwriting existing lists. For example, you should use doctor-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 Dockerfile and added release.Dockerfile (#597).
  • Allow papis.format.format to set default values and not leak exceptions into document fields. (#596).
  • Added a flake.nix script for easier use with the nix package manager (#600).
  • Updated default opentool on Windows (#569).
  • papis command: when invoking papis without a subcommand the help message is printed. This should avoid some confusions for new users (#603).
  • Allow multiple --doc-folder arguments to commands that support it (#635).
  • Improve ScienceDirect abstract extraction (#637)
  • Better support for --batch in papis add (#630).
  • Add --[no-]download-files flags to papis add (#641).
  • Add a downloader for ACL Anthology documents (#575)
  • Expand papis list to list all plugins and other extensions (#716)
  • Add biblatex-software types to our BibTeX module (#719)
  • Sort tags alphabetically in papis serve (#730)
  • Add a --move flag to papis add (#740)
  • Enhance python formatter with some additional conversions (#709)
  • Fix the these.fr downloader (#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 rename command (#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_notes action to the fzf picker. (#919)
  • Add a browse action + shortcut to the default pickers. (#922)

Bug fixes

  • Fixed Papis to BibTeX key conversions (#555).
  • Fix encoding of info.yaml files 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 add using --set key value is 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)
Source: README.md, updated 2024-11-08