Fetch and manage Quarto paper repositories
Project description
Quarto Fetch
A command-line tool for managing multiple Quarto paper repositories in a research project. It automatically fetches, updates, and organizes Quarto paper repositories while maintaining their build caches.
Features
- ๐ฆ Manage multiple Quarto paper repositories in a single project
- ๐ Automatically fetch and update papers from Git repositories
- ๐๏ธ Support for both manuscript and default Quarto project types
- โ๏ธ Smart handling of Quarto freeze directories
- ๐ Detailed logging with progress tracking
- โก Efficient updates by tracking commit hashes
- ๐ก๏ธ Built-in validation and error handling
Installation
We recommend using uv
for installation. First, install uv
if you haven't already:
curl -LsSf https://astral.sh/uv/install.sh | sh
Quick Run (Recommended)
Use uvx
to run quartofetch
directly without installation:
uvx quartofetch
Permanent Installation
If you prefer to install the tool permanently:
uv tool install quartofetch
Development Installation
For development work:
git clone https://github.com/MitchellAcoustics/quartofetch
cd quartofetch
uv sync
Quick Start
- Create a configuration file
research/_paper_sources.yml
:
papers:
- repo_url: "https://github.com/username/paper1"
target_folder: "paper1"
branch: "main" # optional
- repo_url: "https://github.com/username/paper2"
target_folder: "paper2"
commit: "abc123" # optional, pin to specific commit
- Run the fetcher:
# Using uvx (recommended)
uvx quartofetch
# Or with specific options
uvx quartofetch --config path/to/config.yml --force --log-level DEBUG
# If permanently installed
quartofetch --config path/to/config.yml
Project Structure
The tool expects and creates the following directory structure:
your-research-project/
โโโ research/
โ โโโ _paper_sources.yml
โ โโโ papers/
โ โโโ paper1/
โ โ โโโ _quarto.yml
โ โ โโโ paper.qmd
โ โ โโโ ...
โ โโโ paper2/
โ โโโ _quarto.yml
โ โโโ manuscript.qmd
โ โโโ ...
โโโ _freeze/
โโโ research/
โโโ papers/
โโโ paper1/
โ โโโ ...
โโโ paper2/
โโโ ...
Configuration
Paper Sources (_paper_sources.yml
)
Field | Description | Required |
---|---|---|
repo_url |
Git repository URL | Yes |
target_folder |
Local folder name | Yes |
branch |
Git branch to use | No |
commit |
Specific commit hash | No |
Command Line Options
Option | Description | Default |
---|---|---|
--config |
Path to configuration file | research/_paper_sources.yml |
--force |
Force update all papers | False |
--log-level |
Set logging level | SUCCESS |
--debug |
Enable debug logging | False |
--log-file |
Path to log file | None |
Error Handling
The tool includes comprehensive error handling for:
- Git operation failures
- Network timeouts
- Authentication issues
- Invalid configurations
- File system operations
Development
Requirements
- Python 3.12+
- Git
Testing
# Install development dependencies
uv sync # or pip install ".[dev]"
# Run tests
pytest
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file quartofetch-0.1.0.dev23.tar.gz
.
File metadata
- Download URL: quartofetch-0.1.0.dev23.tar.gz
- Upload date:
- Size: 19.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 444c26116f0ceba859bc34e057033f9d8a3afebf3924f6e8ac8e42144d5b0362 |
|
MD5 | 8e75d08876388b2fec5b3ea2e8a4708c |
|
BLAKE2b-256 | fc4d9e54c84ec74bcb52a13f7e445b11bc3193d61aae2bb68336e074b21e3ff5 |
Provenance
The following attestation bundles were made for quartofetch-0.1.0.dev23.tar.gz
:
Publisher:
publish.yml
on MitchellAcoustics/quartofetch
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
quartofetch-0.1.0.dev23.tar.gz
- Subject digest:
444c26116f0ceba859bc34e057033f9d8a3afebf3924f6e8ac8e42144d5b0362
- Sigstore transparency entry: 145779660
- Sigstore integration time:
- Predicate type:
File details
Details for the file quartofetch-0.1.0.dev23-py3-none-any.whl
.
File metadata
- Download URL: quartofetch-0.1.0.dev23-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8dfe117e95c4fed43fd9618c3b5b32eb7cdef1c8b918a50622677b0f74cca979 |
|
MD5 | c0a5c6d2b21a224ac15bde794e8209fd |
|
BLAKE2b-256 | 073bf57410f8be32023f7b240f699ec609a833560b772ed39ba4aeccdbfefb72 |
Provenance
The following attestation bundles were made for quartofetch-0.1.0.dev23-py3-none-any.whl
:
Publisher:
publish.yml
on MitchellAcoustics/quartofetch
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
quartofetch-0.1.0.dev23-py3-none-any.whl
- Subject digest:
8dfe117e95c4fed43fd9618c3b5b32eb7cdef1c8b918a50622677b0f74cca979
- Sigstore transparency entry: 145779662
- Sigstore integration time:
- Predicate type: