Compare commits

..

13 Commits

Author SHA1 Message Date
Acid 6dfe7661ad modified: .github/workflows/autofix.yml
autofix / autofix (push) Failing after 1m7s
2026-05-23 16:43:58 -04:00
Acid b90c4dd3f6 changed dotfiles to dotfiles/desktop/ 2026-05-23 16:37:52 -04:00
Acid f16799956b modified: data.conf 2025-12-05 20:06:32 -05:00
Acid a38fca1cfe modified: pyproject.toml
modified:   uv.lock
2025-12-05 00:17:06 -05:00
Acid f8229dc3c1 removed google drive likns for catppucin themes 2025-12-05 00:12:42 -05:00
Acid 995278a357 modified: README.md 2025-11-14 04:01:48 -05:00
Acid 30fcdc256e fixed dotfiles path resolution to be inside this dir 2025-11-11 21:18:06 -05:00
acidburnmonkey d6df47a532 modified: data.conf 2025-10-28 17:27:34 -04:00
acidburnmonkey f66f8dc6a3 Merge branch 'master' of github.com:acidburnmonkey/rice-cook 2025-10-26 21:03:07 -04:00
acidburnmonkey 84b82bd957 modified: .gitignore
modified:   data.conf
	modified:   rice-cook.py
2025-10-26 21:01:17 -04:00
acidburnmonkey c2d6a80324 Merge pull 2025-08-03 16:32:47 -04:00
anomaloussus b424d8a131 Update README.md
update
2025-08-03 16:31:36 -04:00
acidburnmonkey e4bb139a47 Update README.md 2025-06-10 05:30:59 -04:00
7 changed files with 202 additions and 283 deletions
+47
View File
@@ -0,0 +1,47 @@
name: autofix
on:
push:
branches: ["**"]
permissions:
contents: write
jobs:
autofix:
runs-on: ubuntu-latest
# skip if the last push was already made by this workflow to avoid loops
if: github.actor != 'github-actions[bot]'
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Install tools
run: uv tool install ruff && uv tool install codespell
- name: ruff import sort
run: ruff check --select I --fix .
- name: ruff format
run: ruff format .
- name: codespell
run: codespell --write-changes
- name: Amend commit with fixes
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add -A
if git diff --cached --quiet; then
echo "Nothing to fix, skipping."
else
git commit --amend --no-edit
git push --force-with-lease
fi
+5 -1
View File
@@ -2,4 +2,8 @@ project_vnv
build
dist
rice-cook.spec
__pycache__
test.py
dotfiles/
testdir/
logg.log
+11 -14
View File
@@ -17,7 +17,7 @@ This is a python script made to rice a blank fedora install into my custom hyprl
- 25 fonts, for developers and smooth looking
- Catppuccin themes
- candy-icons
- Hyrland
- Hyprland
- hyprcursor ,hypridle, hyprlang, hyprloc, hyprpaper, hyprpicker, hyprutils
- Waybar
- Finally installs all programs given in data.conf
@@ -45,7 +45,7 @@ git clone https://github.com/acidburnmonkey/rice-cook.git && cd rice-cook
chmod +x preinstall.sh && sudo ./preinstall.sh
```
### Now move `rice-cook.py` & data.conf into dofiles directory and run it:
### copy dotfiles directory into this project
```
sudo uv run rice-cook.py
@@ -54,12 +54,12 @@ sudo uv run rice-cook.py
Should look like this .
```
|-dotfiles
|---nvim
|---ranger
|---etc...
|---data.conf
|---rice-cook.py
|-rice-cook.py
|-data.conf
|---dotfiles
|-----nvim
|-----ranger
|-----etc...
```
### Before reboot
@@ -67,10 +67,11 @@ Should look like this .
Need to correct ownership of home directory
```
sudo chown -R user:user ~/home/username
sudo chown -R "$USER:$USER" $HOME
```
## A snapshot of your current fedora config can be genereted with this script
## A snapshot of your current fedora config can be generated with this script
[link](https://github.com/acidburnmonkey/scripts/blob/main/fedora-apps.py)
@@ -80,12 +81,8 @@ sudo chown -R user:user ~/home/username
## Monero <img src="https://www.getmonero.org/press-kit/symbols/monero-symbol-1280.png" width="60" height="60">
<img src="https://lh3.googleusercontent.com/pw/AJFCJaXk5yBCwXdQRjlyJfkain1Y_VNRaQLrBOzpd-TGANvD6uetoA134EINH1czVS-RpkwnFn2DspjRivfV2kPuTsN5f1NzJjyoT6rl7hhCfIJI7HyUnclACO24NKyyEES5Uly6lmvfig7G3vTH0Sx3Djw=w240-h240-s-no?authuser=0" width="150" height="150">
43Sxiso2FHsYhP7HTqZgsXa3m3uHtxHQdMeHxECqRefyazZfpGVCLVsf1gU68jxJBo1G171AC181q1BqAUaG1m554MLsspG
## Bitcon <img src="https://upload.wikimedia.org/wikipedia/commons/4/46/Bitcoin.svg" width="60" height="60">
<img src="https://lh3.googleusercontent.com/pw/AJFCJaVUsxqiheJBMWH1azt3kO00SdVw-hnJ8brWx1RNf-JozK_yy2-ZXwLpCEDeKePfp78I5Ca63I3A0TWujiMqydrdygMsmujaOvNp-OqZUwafXyleDKbD-enEg75WweataJivtVJmCenNvuIpBzq51mc=w352-h355-s-no?authuser=0" width="150" height="150">
bc1qk06cyheffclx7x434zpxjzcdl50452r9ducw0x
+6 -2
View File
@@ -8,9 +8,9 @@ hyprpaper
hyprpicker
hyprutils
xdg-desktop-portal-hyprland
qt6ct
waybar
wl-copy
alacritty
pip
flatpak
neovim
@@ -28,14 +28,18 @@ network-manager-applet
xdg-desktop-portal-wlr
qt5-qtwayland
qt6-qtwayland
sddm
[Programs]
gnome-font-viewer
alacritty
gnome-software
kitty
ranger
gnome-software
nemo
gtk-murrine-engine
qt5ct
qt6ct
[Flatpak]
-1
View File
@@ -5,7 +5,6 @@ description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"gdown>=5.2.0",
"gitpython>=3.1.44",
"rich>=14.0.0",
]
+111 -87
View File
@@ -10,8 +10,9 @@ import subprocess
import requests
import shutil
import logging
import gdown
from git import Repo
import zipfile
import urllib.request
from rich.console import Console
from rich.theme import Theme
from slimParser import SlimParser
@@ -28,34 +29,23 @@ f_handler.setFormatter(formatter)
logger.addHandler(f_handler)
logging.basicConfig(
format="%(asctime)s | %(levelno)s | %(funcName)s| %(message)s ",
filename='logg.log', level=logging.WARNING
)
format="%(asctime)s | %(levelno)s | %(funcName)s| %(message)s ", filename='logg.log', level=logging.INFO
)
ap_theme = Theme({'ok':'green', 'error':'red', 'checked':'bold cyan','rule':'orange1'})
ap_theme = Theme({'ok': 'green', 'error': 'red', 'checked': 'bold cyan', 'rule': 'orange1'})
console = Console(theme=ap_theme)
user = os.getlogin()
home = os.path.join('/home',user)
home = os.path.join('/home', user)
def main():
setup = ''
# confirm_user =''
local_user = user
sudo_check()
console.print(f"Setting up for user {local_user} ", style='rule')
# while(True):
# confirm_user = input(" y/n ")
# if (confirm_user.lower() == 'n'):
# user := input('Type username : ')
# continue
# elif (confirm_user.lower() == 'y'):
# break
console.print('optimizing dnf.conf', style='ok')
dnf_config()
@@ -64,32 +54,36 @@ def main():
hyprland()
msic_configs()
#This should not need sudo
# Pass D or L to copy_dotfiles function
while (True):
# This should not need sudo
# Pass D or L to copy_dotfiles function
if os.path.exists('dotfiles'):
while True:
console.print('Set up dotfiles for Desktop (D) or Laptop (L) ?', style='rule')
setup = input('>').lower()
if setup == 'l' or setup == 'd':
copy_dotfiles(setup)
break
else:
console.print('Dotfiles not found skipping...', style='error')
executable_scripts()
systemd()
#correcting ownership
subprocess.run(f"chown -R {user}:{user} {home}",shell=True ,stdout=subprocess.DEVNULL)
# correcting ownership
subprocess.run(f"chown -R {user}:{user} {home}", shell=True, stdout=subprocess.DEVNULL)
################
# END OF MAIN #
################
def dnf_config():
console.rule("Configuring dnf", style='checked')
# dnf conf
with open('/etc/dnf/dnf.conf' , 'r+') as f:
with open('/etc/dnf/dnf.conf', 'r+') as f:
text = 'max_parallel_downloads=10 \nfastestmirror=true'
match = re.search(r'(max_parallel_downloads=10)', f.read())
if not match:
@@ -100,24 +94,31 @@ def dnf_config():
else:
console.print(' dnf.conf already optimized :heavy_check_mark:', style='checked')
subprocess.check_call('sudo dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm',stdout=subprocess.DEVNULL, shell=True)
subprocess.check_call('sudo dnf install -y https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm',stdout=subprocess.DEVNULL, shell=True)
subprocess.check_call(
'sudo dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm',
stdout=subprocess.DEVNULL,
shell=True,
)
subprocess.check_call(
'sudo dnf install -y https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm',
stdout=subprocess.DEVNULL,
shell=True,
)
console.print('rpmfusion added to repos :heavy_check_mark:', style='ok')
logger.info('rpmfusion added to repos')
#update Dnf
# update Dnf
subprocess.run('dnf upgrade -y', shell=True)
logger.info('Updated Dnf ')
def hyprland():
console.rule("Configuring hyprland", style='checked')
if not os.path.exists(home +'/.local/bin'):
os.mkdir(home +'/.local/bin')
if not os.path.exists(home + '/.local/bin'):
os.mkdir(home + '/.local/bin')
# create tty launcher
with open(home +'/.local/bin/wrappedhl', 'w+') as file:
with open(home + '/.local/bin/wrappedhl', 'w+') as file:
file.write('''#!/bin/sh
cd ~
export _JAVA_AWT_WM_NONREPARENTING=1
@@ -140,7 +141,7 @@ Type=Application ''')
for line in file:
line.strip()
#making them executable
# making them executable
subprocess.run(f'chmod +x {home}/.local/bin/wrappedhl', shell=True)
subprocess.run('chmod +x /usr/share/wayland-sessions/hyprland.desktop', shell=True)
@@ -158,42 +159,41 @@ def install_programs_dnf():
repos = parser.get('Repolist')
main = parser.get('Main')
programs = parser.get('Programs')
flatpaks= parser.get('Flatpak')
flatpaks = parser.get('Flatpak')
copr = parser.get('Copr')
#try to add repos
# try to add repos
if repos:
for url in repos:
try:
subprocess.run(f'sudo dnf config-manager addrepo --from-repofile={url}', shell=True)
except Exception as e:
console.print(Exception(),":x:" , style='error')
console.print(Exception(), ":x:", style='error')
logging.critical(f"Error adding extra repos: {str(e)}")
if copr:
for id in copr:
try:
subprocess.run(f'sudo dnf copr enable -y {id}',shell=True)
subprocess.run(f'sudo dnf copr enable -y {id}', shell=True)
except Exception as e:
console.print(Exception(),":x:" , style='error')
console.print(Exception(), ":x:", style='error')
logging.critical(f"Err adding Copr: {str(e)}")
#for some reason they have to be passed to dnf individually
# for some reason they have to be passed to dnf individually
# instead of unpacked list *programs
main.extend(programs)
for program in main:
try:
subprocess.run(f'dnf install -y {program} ', shell=True)
except Exception as e:
console.print(Exception(),":x:" , style='error')
console.print(Exception(), ":x:", style='error')
logging.critical(f"Error at Installing programs: {str(e)}")
for fp in flatpaks:
try:
subprocess.run(f'flatpak install flathub -y {fp}', shell=True)
except Exception as e:
console.print(Exception(),":x:" , style='error')
console.print(Exception(), ":x:", style='error')
logging.critical(f"Error at Installing flatpaks: {str(e)}")
logger.info('Installed programs in data.config')
@@ -208,6 +208,7 @@ def sudo_check():
else:
console.print('ok :heavy_check_mark:', style='ok')
# Oh my zsh setup + flathub
def zsh_fonts():
console.rule("Installing Zsh fonts", style='checked')
@@ -215,12 +216,12 @@ def zsh_fonts():
try:
console.print("installing oh my zsh ", style='ok')
#installs oh my zsh
# installs oh my zsh
ohmy_url = "https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh"
zsh_installer = requests.get(ohmy_url, timeout=10)
open('install.sh', 'wb').write(zsh_installer.content)
#removing exec line
# removing exec line
with open('install.sh', 'r') as f:
contents = f.read()
pattern = r'^\s*exec zsh -l$'
@@ -235,11 +236,17 @@ def zsh_fonts():
console.print("installing oh my zsh auto suggestions ", style='ok')
# zsh auto suggestions
subprocess.run(f'git clone https://github.com/zsh-users/zsh-autosuggestions {home}/.oh-my-zsh/custom/plugins/zsh-autosuggestions', shell=True)
subprocess.run(
f'git clone https://github.com/zsh-users/zsh-autosuggestions {home}/.oh-my-zsh/custom/plugins/zsh-autosuggestions',
shell=True,
)
console.print("installing powerlevel10k ", style='ok')
#powerlevel 10k
subprocess.run(f"git clone --depth=1 https://github.com/romkatv/powerlevel10k.git {home}/.oh-my-zsh/custom/themes/powerlevel10k", shell=True)
# powerlevel 10k
subprocess.run(
f"git clone --depth=1 https://github.com/romkatv/powerlevel10k.git {home}/.oh-my-zsh/custom/themes/powerlevel10k",
shell=True,
)
logger.info('Installed Oh_my_zsh , powerlevel10k , autosuggestions')
except Exception as e:
@@ -248,41 +255,48 @@ def zsh_fonts():
console.print("installing flathub", style='ok')
# flathub
subprocess.run('flatpak remote-add --if-not-exists flathub https://flatInstalled programs in data.txthub.org/repo/flathub.flatpakrepo', shell=True, stdout=subprocess.DEVNULL)
subprocess.run(
'flatpak remote-add --if-not-exists flathub https://flatInstalled programs in data.txthub.org/repo/flathub.flatpakrepo',
shell=True,
stdout=subprocess.DEVNULL,
)
logger.info('Installed Flathub')
# copy and override dotfiles
def copy_dotfiles(setup):
console.rule("Copying Dotfiles", style='checked')
# list of relevant configs
lis = os.listdir()
exceptions = ['.git', '.bashrc','.zshrc','retired','data.conf','wrappedhl','Hyprland','install.sh',
'logg.log','README.md','.gitignore','rice-cook.py','Laptop-configs','.ideavimrc']
lis = os.listdir('dotfiles/desktop')
for z in exceptions:
if z in lis:
lis.remove(z)
# filter out .
lis = [item for item in lis if not item.startswith('.')]
destination = os.path.join(home,'.config')
destination = os.path.join(home, '.config')
shutil.copy2('.zshrc',home)
shutil.copy2('.p10k.zsh',home)
shutil.copy2('.vimrc',home)
shutil.copy2('.ideavimrc',home)
shutil.copy2('dotfiles/.zshrc', home)
shutil.copy2('dotfiles/.p10k.zsh', home)
shutil.copy2('dotfiles/.vimrc', home)
shutil.copy2('dotfiles/.ideavimrc', home)
if (setup =='l'):
if setup == 'l':
console.print("Setting up dotfiles for Laptop", style='ok')
# copying files recursively
for dir in lis:
print(subprocess.run(f'cp -r {dir} {destination}', shell=True))
elif (setup =='d'):
elif setup == 'd':
console.print("Setting up dotfiles for Desktop", style='ok')
# copying files recursively
for dir in lis:
print(subprocess.run(f'cp -r {dir} {destination}', shell=True))
source = os.path.join('dotfiles', dir)
dest = os.path.join(destination, dir)
try:
print(shutil.copytree(source, dest, dirs_exist_ok=True))
except NotADirectoryError:
shutil.copy2(source, dest)
console.print("Dotfiles copied :heavy_check_mark:", style='ok')
logger.info('Dotfiles copied')
@@ -291,70 +305,75 @@ def copy_dotfiles(setup):
def executable_scripts():
console.rule('Making scripts executable', style='checked')
for root ,_,files in os.walk(os.path.join(home,'.config')):
for root, _, files in os.walk(os.path.join(home, '.config')):
for element in files:
if '.sh' in element or '.py' in element:
try:
subprocess.run(f"chmod +x {os.path.join(root,element)}", shell=True)
subprocess.run(f"chmod +x {os.path.join(root, element)}", shell=True)
except Exception as e:
logging.critical(f"Error at executable_scripts: {str(e)}")
console.print("Job done :heavy_check_mark:", style='ok')
logger.info('Made scripts in .config executable')
#need sudo
# need sudo
def msic_configs():
console.rule('Setting up final configs', style='checked')
current_dir = os.getcwd()
try :
try:
os.mkdir('misic')
os.mkdir(os.path.join(home,'.themes'))
os.mkdir(os.path.join(home, '.themes'))
except FileExistsError:
pass
os.chdir(os.path.join(current_dir,'misic'))
os.chdir(os.path.join(current_dir, 'misic'))
fonts_url = "https://github.com/acidburnmonkey/fonts"
fonts_dir = os.path.join(home,".fonts")
fonts_dir = os.path.join(home, ".fonts")
try:
Repo.clone_from(fonts_url, fonts_dir)
except Exception as e:
print(f"Failed to clone repository: {e}")
# to system
shutil.copytree(home+"/.fonts",'/usr/share/fonts/', dirs_exist_ok=True)
shutil.copytree(home + "/.fonts", '/usr/share/fonts/', dirs_exist_ok=True)
console.print("Fonts downloaded :heavy_check_mark:", style='ok')
logger.info('Fonts downloaded ')
#Icons
subprocess.run('git clone --depth 1 https://github.com/EliverLara/candy-icons.git /usr/share/icons/candy-icons', shell=True, stdout=subprocess.DEVNULL)
# Icons
subprocess.run(
'git clone --depth 1 https://github.com/EliverLara/candy-icons.git /usr/share/icons/candy-icons',
shell=True,
stdout=subprocess.DEVNULL,
)
console.print("Icons have been downloaded :heavy_check_mark:", style='ok')
logger.info('candy-icons downloaded')
try:
themes_urls =['https://drive.google.com/uc?id=1KkqC5vaBjePSHxjBI_8PWfm3jNW5gO7k','https://drive.google.com/uc?id=1-qq3wmuQhkKHpW_8OrRNS92AHD9LE4un'
,'https://drive.google.com/uc?id=1mxkN9b4Ws7CeqF_KaTlA3dA5e75UUa4y','https://drive.google.com/uc?id=1cYLRsxmWeQJMOS7QEGEgJenRPKxgwN7X']
url = 'https://github.com/catppuccin/gtk/releases/download/v1.0.3/catppuccin-mocha-blue-standard+default.zip'
urllib.request.urlretrieve(url, 'catppuccin-mocha-blue.zip')
for index,file in enumerate(themes_urls):
output = str(index)+'.zip'
gdown.download(file, output ,quiet=False)
subprocess.run(f"unzip {output} -d {os.path.join(home,'.themes')}", shell=True, stdout=subprocess.DEVNULL)
with zipfile.ZipFile('catppuccin-mocha-blue.zip') as zip:
zip.extractall(os.path.join(home, '.themes'))
# to system
shutil.copytree(home+"/.themes",'/usr/share/themes/', dirs_exist_ok=True)
shutil.copytree(home + "/.themes", '/usr/share/themes/', dirs_exist_ok=True)
console.print("Themes have been downloaded :heavy_check_mark:", style='ok')
logger.info('Themes have been downloaded')
## Set themes Gtk
subprocess.run("gsettings set org.gnome.desktop.interface icon-theme 'candy-icons'", shell=True)
subprocess.run("gsettings set org.gnome.desktop.interface gtk-theme 'Catppuccin-Macchiato-Standard-Blue-Dark'", shell=True)
subprocess.run(
"gsettings set org.gnome.desktop.interface gtk-theme 'catppuccin-mocha-blue-standard+default'", shell=True
)
subprocess.run("gsettings set org.gnome.desktop.interface font-name 'Roboto-Regular'", shell=True)
#Flatpak force theme
# Flatpak force theme
subprocess.run("flatpak override --filesystem=$HOME/.themes", shell=True)
subprocess.run("flatpak override --env=GTK_THEME=Catppuccin-Macchiato-Standard-Blue-Dark", shell=True)
subprocess.run("flatpak override --env=GTK_THEME=catppuccin-mocha-blue-standard+default", shell=True)
console.print("Themes have been Set :heavy_check_mark:", style='ok')
logger.info('Themes have been Set')
@@ -365,7 +384,10 @@ def msic_configs():
# codec and multimedia
try:
subprocess.run('dnf swap ffmpeg-free ffmpeg --allowerasing', shell=True)
subprocess.run('dnf update @multimedia --setopt="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin', shell=True)
subprocess.run(
'dnf update @multimedia --setopt="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin',
shell=True,
)
subprocess.run('dnf update @sound-and-video', shell=True)
console.print("ffmpeg non free installed + all codecs :heavy_check_mark:", style='ok')
@@ -376,12 +398,16 @@ def msic_configs():
console.print("Something failed with new codecs :X:", style='error')
def systemd():
console.rule('Enabling user services', style='checked')
user_services = ['gnome-keyring.service', 'ssh-agent.service', 'polkit-gnome-authentication-agent.service',
'hypridle.service','gnome-keyring-daemon.service']
user_services = [
'gnome-keyring.service',
'ssh-agent.service',
'polkit-gnome-authentication-agent.service',
'hypridle.service',
'gnome-keyring-daemon.service',
]
try:
for services in user_services:
@@ -391,7 +417,5 @@ def systemd():
console.print("Error starting some services :X:", style='error')
if __name__ == '__main__':
main()
Generated
+15 -171
View File
@@ -1,84 +1,7 @@
version = 1
revision = 2
revision = 3
requires-python = ">=3.13"
[[package]]
name = "beautifulsoup4"
version = "4.13.4"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "soupsieve" },
{ name = "typing-extensions" },
]
sdist = { url = "https://files.pythonhosted.org/packages/d8/e4/0c4c39e18fd76d6a628d4dd8da40543d136ce2d1752bd6eeeab0791f4d6b/beautifulsoup4-4.13.4.tar.gz", hash = "sha256:dbb3c4e1ceae6aefebdaf2423247260cd062430a410e38c66f2baa50a8437195", size = 621067, upload_time = "2025-04-15T17:05:13.836Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/50/cd/30110dc0ffcf3b131156077b90e9f60ed75711223f306da4db08eff8403b/beautifulsoup4-4.13.4-py3-none-any.whl", hash = "sha256:9bbbb14bfde9d79f38b8cd5f8c7c85f4b8f2523190ebed90e950a8dea4cb1c4b", size = 187285, upload_time = "2025-04-15T17:05:12.221Z" },
]
[[package]]
name = "certifi"
version = "2025.4.26"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/e8/9e/c05b3920a3b7d20d3d3310465f50348e5b3694f4f88c6daf736eef3024c4/certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6", size = 160705, upload_time = "2025-04-26T02:12:29.51Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/4a/7e/3db2bd1b1f9e95f7cddca6d6e75e2f2bd9f51b1246e546d88addca0106bd/certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3", size = 159618, upload_time = "2025-04-26T02:12:27.662Z" },
]
[[package]]
name = "charset-normalizer"
version = "3.4.2"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d/charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63", size = 126367, upload_time = "2025-05-02T08:34:42.01Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/ea/12/a93df3366ed32db1d907d7593a94f1fe6293903e3e92967bebd6950ed12c/charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0", size = 199622, upload_time = "2025-05-02T08:32:56.363Z" },
{ url = "https://files.pythonhosted.org/packages/04/93/bf204e6f344c39d9937d3c13c8cd5bbfc266472e51fc8c07cb7f64fcd2de/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf", size = 143435, upload_time = "2025-05-02T08:32:58.551Z" },
{ url = "https://files.pythonhosted.org/packages/22/2a/ea8a2095b0bafa6c5b5a55ffdc2f924455233ee7b91c69b7edfcc9e02284/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e", size = 153653, upload_time = "2025-05-02T08:33:00.342Z" },
{ url = "https://files.pythonhosted.org/packages/b6/57/1b090ff183d13cef485dfbe272e2fe57622a76694061353c59da52c9a659/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1", size = 146231, upload_time = "2025-05-02T08:33:02.081Z" },
{ url = "https://files.pythonhosted.org/packages/e2/28/ffc026b26f441fc67bd21ab7f03b313ab3fe46714a14b516f931abe1a2d8/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c", size = 148243, upload_time = "2025-05-02T08:33:04.063Z" },
{ url = "https://files.pythonhosted.org/packages/c0/0f/9abe9bd191629c33e69e47c6ef45ef99773320e9ad8e9cb08b8ab4a8d4cb/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691", size = 150442, upload_time = "2025-05-02T08:33:06.418Z" },
{ url = "https://files.pythonhosted.org/packages/67/7c/a123bbcedca91d5916c056407f89a7f5e8fdfce12ba825d7d6b9954a1a3c/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0", size = 145147, upload_time = "2025-05-02T08:33:08.183Z" },
{ url = "https://files.pythonhosted.org/packages/ec/fe/1ac556fa4899d967b83e9893788e86b6af4d83e4726511eaaad035e36595/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b", size = 153057, upload_time = "2025-05-02T08:33:09.986Z" },
{ url = "https://files.pythonhosted.org/packages/2b/ff/acfc0b0a70b19e3e54febdd5301a98b72fa07635e56f24f60502e954c461/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff", size = 156454, upload_time = "2025-05-02T08:33:11.814Z" },
{ url = "https://files.pythonhosted.org/packages/92/08/95b458ce9c740d0645feb0e96cea1f5ec946ea9c580a94adfe0b617f3573/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b", size = 154174, upload_time = "2025-05-02T08:33:13.707Z" },
{ url = "https://files.pythonhosted.org/packages/78/be/8392efc43487ac051eee6c36d5fbd63032d78f7728cb37aebcc98191f1ff/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148", size = 149166, upload_time = "2025-05-02T08:33:15.458Z" },
{ url = "https://files.pythonhosted.org/packages/44/96/392abd49b094d30b91d9fbda6a69519e95802250b777841cf3bda8fe136c/charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7", size = 98064, upload_time = "2025-05-02T08:33:17.06Z" },
{ url = "https://files.pythonhosted.org/packages/e9/b0/0200da600134e001d91851ddc797809e2fe0ea72de90e09bec5a2fbdaccb/charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980", size = 105641, upload_time = "2025-05-02T08:33:18.753Z" },
{ url = "https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0", size = 52626, upload_time = "2025-05-02T08:34:40.053Z" },
]
[[package]]
name = "colorama"
version = "0.4.6"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload_time = "2022-10-25T02:36:22.414Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload_time = "2022-10-25T02:36:20.889Z" },
]
[[package]]
name = "filelock"
version = "3.18.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/0a/10/c23352565a6544bdc5353e0b15fc1c563352101f30e24bf500207a54df9a/filelock-3.18.0.tar.gz", hash = "sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2", size = 18075, upload_time = "2025-03-14T07:11:40.47Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/4d/36/2a115987e2d8c300a974597416d9de88f2444426de9571f4b59b2cca3acc/filelock-3.18.0-py3-none-any.whl", hash = "sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de", size = 16215, upload_time = "2025-03-14T07:11:39.145Z" },
]
[[package]]
name = "gdown"
version = "5.2.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "beautifulsoup4" },
{ name = "filelock" },
{ name = "requests", extra = ["socks"] },
{ name = "tqdm" },
]
sdist = { url = "https://files.pythonhosted.org/packages/09/6a/37e6b70c5bda3161e40265861e63b64a86bfc6ca6a8f1c35328a675c84fd/gdown-5.2.0.tar.gz", hash = "sha256:2145165062d85520a3cd98b356c9ed522c5e7984d408535409fd46f94defc787", size = 284647, upload_time = "2024-05-12T06:45:12.725Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/54/70/e07c381e6488a77094f04c85c9caf1c8008cdc30778f7019bc52e5285ef0/gdown-5.2.0-py3-none-any.whl", hash = "sha256:33083832d82b1101bdd0e9df3edd0fbc0e1c5f14c9d8c38d2a35bf1683b526d6", size = 18235, upload_time = "2024-05-12T06:45:10.017Z" },
]
[[package]]
name = "gitdb"
version = "4.0.12"
@@ -86,9 +9,9 @@ source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "smmap" },
]
sdist = { url = "https://files.pythonhosted.org/packages/72/94/63b0fc47eb32792c7ba1fe1b694daec9a63620db1e313033d18140c2320a/gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571", size = 394684, upload_time = "2025-01-02T07:20:46.413Z" }
sdist = { url = "https://files.pythonhosted.org/packages/72/94/63b0fc47eb32792c7ba1fe1b694daec9a63620db1e313033d18140c2320a/gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571", size = 394684, upload-time = "2025-01-02T07:20:46.413Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf", size = 62794, upload_time = "2025-01-02T07:20:43.624Z" },
{ url = "https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf", size = 62794, upload-time = "2025-01-02T07:20:43.624Z" },
]
[[package]]
@@ -98,18 +21,9 @@ source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "gitdb" },
]
sdist = { url = "https://files.pythonhosted.org/packages/c0/89/37df0b71473153574a5cdef8f242de422a0f5d26d7a9e231e6f169b4ad14/gitpython-3.1.44.tar.gz", hash = "sha256:c87e30b26253bf5418b01b0660f818967f3c503193838337fe5e573331249269", size = 214196, upload_time = "2025-01-02T07:32:43.59Z" }
sdist = { url = "https://files.pythonhosted.org/packages/c0/89/37df0b71473153574a5cdef8f242de422a0f5d26d7a9e231e6f169b4ad14/gitpython-3.1.44.tar.gz", hash = "sha256:c87e30b26253bf5418b01b0660f818967f3c503193838337fe5e573331249269", size = 214196, upload-time = "2025-01-02T07:32:43.59Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/1d/9a/4114a9057db2f1462d5c8f8390ab7383925fe1ac012eaa42402ad65c2963/GitPython-3.1.44-py3-none-any.whl", hash = "sha256:9e0e10cda9bed1ee64bc9a6de50e7e38a9c9943241cd7f585f6df3ed28011110", size = 207599, upload_time = "2025-01-02T07:32:40.731Z" },
]
[[package]]
name = "idna"
version = "3.10"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload_time = "2024-09-15T18:07:39.745Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload_time = "2024-09-15T18:07:37.964Z" },
{ url = "https://files.pythonhosted.org/packages/1d/9a/4114a9057db2f1462d5c8f8390ab7383925fe1ac012eaa42402ad65c2963/GitPython-3.1.44-py3-none-any.whl", hash = "sha256:9e0e10cda9bed1ee64bc9a6de50e7e38a9c9943241cd7f585f6df3ed28011110", size = 207599, upload-time = "2025-01-02T07:32:40.731Z" },
]
[[package]]
@@ -119,56 +33,27 @@ source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "mdurl" },
]
sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596, upload_time = "2023-06-03T06:41:14.443Z" }
sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596, upload-time = "2023-06-03T06:41:14.443Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528, upload_time = "2023-06-03T06:41:11.019Z" },
{ url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528, upload-time = "2023-06-03T06:41:11.019Z" },
]
[[package]]
name = "mdurl"
version = "0.1.2"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload_time = "2022-08-14T12:40:10.846Z" }
sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload_time = "2022-08-14T12:40:09.779Z" },
{ url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" },
]
[[package]]
name = "pygments"
version = "2.19.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581, upload_time = "2025-01-06T17:26:30.443Z" }
sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581, upload-time = "2025-01-06T17:26:30.443Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload_time = "2025-01-06T17:26:25.553Z" },
]
[[package]]
name = "pysocks"
version = "1.7.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0", size = 284429, upload_time = "2019-09-20T02:07:35.714Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725, upload_time = "2019-09-20T02:06:22.938Z" },
]
[[package]]
name = "requests"
version = "2.32.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "certifi" },
{ name = "charset-normalizer" },
{ name = "idna" },
{ name = "urllib3" },
]
sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218, upload_time = "2024-05-29T15:37:49.536Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928, upload_time = "2024-05-29T15:37:47.027Z" },
]
[package.optional-dependencies]
socks = [
{ name = "pysocks" },
{ url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload-time = "2025-01-06T17:26:25.553Z" },
]
[[package]]
@@ -176,14 +61,12 @@ name = "rice-cook"
version = "0.1.0"
source = { virtual = "." }
dependencies = [
{ name = "gdown" },
{ name = "gitpython" },
{ name = "rich" },
]
[package.metadata]
requires-dist = [
{ name = "gdown", specifier = ">=5.2.0" },
{ name = "gitpython", specifier = ">=3.1.44" },
{ name = "rich", specifier = ">=14.0.0" },
]
@@ -196,55 +79,16 @@ dependencies = [
{ name = "markdown-it-py" },
{ name = "pygments" },
]
sdist = { url = "https://files.pythonhosted.org/packages/a1/53/830aa4c3066a8ab0ae9a9955976fb770fe9c6102117c8ec4ab3ea62d89e8/rich-14.0.0.tar.gz", hash = "sha256:82f1bc23a6a21ebca4ae0c45af9bdbc492ed20231dcb63f297d6d1021a9d5725", size = 224078, upload_time = "2025-03-30T14:15:14.23Z" }
sdist = { url = "https://files.pythonhosted.org/packages/a1/53/830aa4c3066a8ab0ae9a9955976fb770fe9c6102117c8ec4ab3ea62d89e8/rich-14.0.0.tar.gz", hash = "sha256:82f1bc23a6a21ebca4ae0c45af9bdbc492ed20231dcb63f297d6d1021a9d5725", size = 224078, upload-time = "2025-03-30T14:15:14.23Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/0d/9b/63f4c7ebc259242c89b3acafdb37b41d1185c07ff0011164674e9076b491/rich-14.0.0-py3-none-any.whl", hash = "sha256:1c9491e1951aac09caffd42f448ee3d04e58923ffe14993f6e83068dc395d7e0", size = 243229, upload_time = "2025-03-30T14:15:12.283Z" },
{ url = "https://files.pythonhosted.org/packages/0d/9b/63f4c7ebc259242c89b3acafdb37b41d1185c07ff0011164674e9076b491/rich-14.0.0-py3-none-any.whl", hash = "sha256:1c9491e1951aac09caffd42f448ee3d04e58923ffe14993f6e83068dc395d7e0", size = 243229, upload-time = "2025-03-30T14:15:12.283Z" },
]
[[package]]
name = "smmap"
version = "5.0.2"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/44/cd/a040c4b3119bbe532e5b0732286f805445375489fceaec1f48306068ee3b/smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5", size = 22329, upload_time = "2025-01-02T07:14:40.909Z" }
sdist = { url = "https://files.pythonhosted.org/packages/44/cd/a040c4b3119bbe532e5b0732286f805445375489fceaec1f48306068ee3b/smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5", size = 22329, upload-time = "2025-01-02T07:14:40.909Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e", size = 24303, upload_time = "2025-01-02T07:14:38.724Z" },
]
[[package]]
name = "soupsieve"
version = "2.7"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/3f/f4/4a80cd6ef364b2e8b65b15816a843c0980f7a5a2b4dc701fc574952aa19f/soupsieve-2.7.tar.gz", hash = "sha256:ad282f9b6926286d2ead4750552c8a6142bc4c783fd66b0293547c8fe6ae126a", size = 103418, upload_time = "2025-04-20T18:50:08.518Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/e7/9c/0e6afc12c269578be5c0c1c9f4b49a8d32770a080260c333ac04cc1c832d/soupsieve-2.7-py3-none-any.whl", hash = "sha256:6e60cc5c1ffaf1cebcc12e8188320b72071e922c2e897f737cadce79ad5d30c4", size = 36677, upload_time = "2025-04-20T18:50:07.196Z" },
]
[[package]]
name = "tqdm"
version = "4.67.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "colorama", marker = "sys_platform == 'win32'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737, upload_time = "2024-11-24T20:12:22.481Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload_time = "2024-11-24T20:12:19.698Z" },
]
[[package]]
name = "typing-extensions"
version = "4.13.2"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/f6/37/23083fcd6e35492953e8d2aaaa68b860eb422b34627b13f2ce3eb6106061/typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef", size = 106967, upload_time = "2025-04-10T14:19:05.416Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/8b/54/b1ae86c0973cc6f0210b53d508ca3641fb6d0c56823f288d108bc7ab3cc8/typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c", size = 45806, upload_time = "2025-04-10T14:19:03.967Z" },
]
[[package]]
name = "urllib3"
version = "2.4.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/8a/78/16493d9c386d8e60e442a35feac5e00f0913c0f4b7c217c11e8ec2ff53e0/urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466", size = 390672, upload_time = "2025-04-10T15:23:39.232Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/6b/11/cc635220681e93a0183390e26485430ca2c7b5f9d33b15c74c2861cb8091/urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813", size = 128680, upload_time = "2025-04-10T15:23:37.377Z" },
{ url = "https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e", size = 24303, upload-time = "2025-01-02T07:14:38.724Z" },
]