Skip to main content

PidyTuesday

PidyTuesday is a Python library that ports the functionality of the TidyTuesday CRAN package to Python. It provides a suite of command-line tools for accessing and downloading TidyTuesday datasets hosted on GitHub.

Features

  • Get the most recent Tuesday date: Useful for aligning with TidyTuesday releases.
  • List available datasets: Discover available TidyTuesday datasets across years.
  • Download datasets: Retrieve individual files or complete datasets.
  • Display dataset README: Open the dataset's README in your web browser.
  • Check GitHub API rate limits: Monitor your GitHub API usage.

Installation

Using uv (recommended)

We make extensive use of uv and uv tools to enable command-line scripts without too much managing of virtual environments.

  1. Install uv.

  2. Install PyDyTuesday to your commandline by using uv tool install

    uv tool install pydytuesday
    
    pydytuesday last-tuesday
    

Alternatively, you can use uv tool or uvx to avoid adding the command to your path.

uv tool pydytuesday last-tuesday

or using uvx:

uvx pydytuesday last-tuesday

Using pip

Alternatively, you can install the library directly into your environment using pip.

pip install pydytuesday

pydytuesday last-tuesday

Usage

Once you have installed the library using uv, you should be able to run your commands from anywhere on your system.

  • Last Tuesday

    • Description: Prints the most recent Tuesday date relative to today's date or an optionally provided date.
    • Usage:
      pydytuesday last-tuesday
      pydytuesday last-tuesday 2025-03-10
      
      (The second example passes a specific date argument in YYYY-MM-DD format.)
  • TidyTuesday Available

    • Description: Lists all available TidyTuesday datasets.
    • Usage:
      pydytuesday tt-available
      
  • TidyTuesday Datasets

    • Description: Lists datasets for a specific year.
    • Usage:
      pydytuesday tt-datasets 2025
      
      (Example passes the year as an argument.)
  • Download Specific File

    • Description: Downloads a specified file from a TidyTuesday dataset by date.
    • Usage:
      pydytuesday tt-download-file 2025-03-10 data.csv
      
      (The example downloads the file 'data.csv' from the dataset for March 10, 2025.)
  • Download Dataset Files

    • Description: Downloads all or selected files from a TidyTuesday dataset by date.
    • Usage:
      pydytuesday tt-download 2025-03-10
      pydytuesday tt-download 2025-03-10 data.csv summary.json
      
      (The first example downloads all files from the dataset for March 10, 2025. The second example downloads only the specified files.)
  • Display Dataset README

    • Description: Opens the README for a TidyTuesday dataset in your default web browser.
    • Usage:
      pydytuesday readme 2025-03-10
      
      (The example opens the README for the dataset from March 10, 2025.)
  • Check GitHub Rate Limit

    • Description: Checks the remaining GitHub API rate limit.
    • Usage:
      pydytuesday rate-limit-check
      

Example Workflows

Command-line Workflow

Here's a complete example of how to discover, download, and explore TidyTuesday data using the command-line interface:

# 1. Find the most recent Tuesday date
pydytuesday last-tuesday
# Output: 2025-03-11

# 2. List available datasets for a specific year
pydytuesday tt-datasets 2025
# Output: Lists all datasets for 2025 with dates and titles

# 3. Download a specific file from a dataset by date
pydytuesday tt-download-file 2025-03-11 example.csv
# Output: Successfully saved example.csv to /path/to/example.csv

# 4. After downloading, you can read the CSV file using pandas in Python:
import pandas as pd

# Read the downloaded CSV file
df = pd.read_csv("example.csv")

# Display the first few rows
print(df.head())

# Get basic information about the dataset
print(df.info())

# Generate summary statistics
print(df.describe())

# Perform data analysis and visualization
import matplotlib.pyplot as plt
df.plot(kind='bar', x='category', y='value')
plt.title('TidyTuesday Data Analysis')
plt.show()

This workflow demonstrates how to use the command-line tools to discover and download data, and then use pandas to analyze the downloaded data.

Python Library Workflow

You can also use PyDyTuesday as a Python library directly in your code:

# Option 1: Use PyDyTuesday to download files
import PyDyTuesday

# Download all files from a specific week
PyDyTuesday.get_date('2025-03-18')
# This will save all files from the 2025-03-18 dataset to your current directory

# Download files from a specific week by year and week number
PyDyTuesday.get_week(2025, 3)
# This will download all files from the 3rd week of 2025

# Option 2: Read directly from GitHub
import pandas as pd

# Read a CSV file directly from GitHub without downloading
palmtrees = pd.read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/main/data/2025/2025-03-18/palmtrees.csv')

# Analyze the data
print(palmtrees.head())

This workflow demonstrates how to use PyDyTuesday as a Python library to download data or read it directly from GitHub.

Contributing

Contributions are welcome! Here's how you can help improve PidyTuesday:

  1. Fork the Repository:
    Click on the "Fork" button at the top right of the repository page and create your own copy.

  2. Clone Your Fork:

    git clone https://github.com/your-username/PidyTuesday.git
    cd PidyTuesday
    
  3. Create a New Branch:
    Start a new feature or bugfix branch:

    git checkout -b feature/your-feature-name
    
  4. Make Your Changes:
    Add new features, fix bugs, or improve documentation. Ensure your code adheres to the project's style guidelines.

  5. Commit Your Changes:
    Write clear commit messages that describe your changes:

    git add .
    git commit -m "Description of your changes"
    
  6. Push to Your Fork:

    git push origin feature/your-feature-name
    
  7. Submit a Pull Request:
    Open a pull request on the main repository. Provide a detailed description of your changes and reference any issues your PR addresses.

For larger contributions, consider discussing your ideas by opening an issue first so that we can provide guidance before you start coding.

License

This project is licensed under MIT as per the LICENSE file.

Metadata

Release files for pydytuesday 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pydytuesday 0.1.2
File Size Uploaded
pydytuesday-0.1.2.tar.gz 28.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pydytuesday 0.1.2
File Interpreter ABI Platform
pydytuesday-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 39.5 kB

Release files / pydytuesday-0.1.2.tar.gz

Download URL pydytuesday-0.1.2.tar.gz
Size 28.1 kB
Tags Source
SHA-256 checksum
How to use checksums
13aa0e528f0a3588dbceb1badc85cdd1d38049332f7341d95d6f420210dc6b67
BLAKE2b-256 checksum
How to use checksums
dd6afdb7736b99b6170c9110dbd2b7e98233c33ffbd6dc009fb4a08963f266ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 17, 2025.

Transparency log

Release files / pydytuesday-0.1.2-py3-none-any.whl

Download URL pydytuesday-0.1.2-py3-none-any.whl
Size 11.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
07d956a0017dfa22b0c80ef3b4250147e27273ce81c32ea611fc02be8c523ded
BLAKE2b-256 checksum
How to use checksums
1e223942c5330a402453ca11b2a148a5a207a9b6c76201e97954f782797d6473
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 17, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.0

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page